{
"$schema": "https://cmn.dev/schemas/v1/spore-core.json",
"id": "agent-first-psql",
"name": "Agent-First PSQL",
"version": "0.6.3",
"domain": "agentfirstkit.com",
"key": "ed25519.BwbSzqdDYyMN1pPW5snRk3afrJAovHn8aueMvDpfNKVw",
"synopsis": "A PostgreSQL interface for AI agents: reliable, structured, explicit, and read-only by default.",
"intent": [
"Give AI agents a persistent PostgreSQL client that reuses long-lived database connections and sessions, so agents send SQL requests as JSONL and receive structured JSONL responses without managing connection setup",
"Bridge ad-hoc psql shell usage and protocol-specific integrations by providing transport-neutral, agent-native request and response framing",
"Provide predictable machine-readable outputs for row sets, command status, and errors so agent workflows can branch without parsing human-formatted terminal output"
],
"license": "MIT",
"mutations": [
"Add `afpsql inspect` for schema discovery — list databases, schemas, tables, and columns without hand-writing catalog queries",
"Add --dry-run to prepare and validate a statement server-side without executing it",
"Add --explain and --explain-analyze to wrap a query in its execution plan",
"Add pipe-mode begin/commit/rollback requests for explicit multi-statement transactions on a session",
"Soft-truncate oversized inline result sets instead of erroring out, so large reads degrade gracefully",
"Eliminate the cancel race with an atomic terminal-emit claim so a cancelled query can never double-emit a terminal frame",
"Harden value decoding — surface decode errors instead of silently emitting null, and correctly handle bytea and array types",
"Preserve the --param string form and bind NUMERIC values without precision loss",
"Unify the error code dispatch and report connection identity in session_info responses",
"Upgrade to rustc 1.96 and refresh workspace dependencies"
],
"bonds": [
{
"relation": "depends_on",
"uri": "cmn://agentfirstkit.com/b3.DLwVyPLJRtv7KwfXD25E7zkpveZVykRgo2RQJkHp9zZZ",
"id": "agent-first-data",
"reason": "All request/response fields use Agent-First Data suffix conventions and output formats"
}
],
"tree": {
"algorithm": "blob_tree_blake3_nfc",
"exclude_names": [
".git",
".cmn"
],
"follow_rules": [
".gitignore"
]
}
}