agent-first-psql 0.2.0

Persistent PostgreSQL client for AI agents — SQL-native JSONL in, JSONL out
{
  "id": "agent-first-psql",
  "name": "Agent-First PSQL",
  "domain": "cmn.dev",
  "synopsis": "Persistent PostgreSQL client for AI agents — JSONL in, JSONL out, connection lifecycle managed transparently",
  "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"
  ],
  "changes": [
    "Add startup log event emitted when --log startup or --verbose is used, reporting version, argv, all resolved CLI arguments, environment variable snapshot (AFPSQL_* and standard PG* vars), and full runtime config — giving agents observability into what connection parameters were actually resolved at startup",
    "Add standard PostgreSQL environment variable fallback (PGHOST, PGPORT, PGUSER, PGDATABASE) with lower precedence than AFPSQL_* vars, allowing afpsql to pick up connection settings from environments where these variables are already set (CI, Docker, local dev shells)",
    "Add Unix socket path support in connection string resolution — when host begins with '/', afpsql uses conninfo format instead of a URL, enabling connections through local Unix domain sockets (e.g. /var/run/postgresql) without manual DSN construction"
  ],
  "license": "MIT",
  "references": [
    {
      "uri": "cmn://cmn.dev/spore/blake3_eeb9f29b968d51855c8b8d60d8f97b64beff48e92405e005b7890b40503415e3",
      "relation": "follows",
      "reason": "All request/response fields use Agent-First Data suffix conventions and output formats"
    },
    {
      "uri": "cmn://cmn.dev/spore/blake3_2a01314cb7f17a60ced10d02eb41bdde5d892577552bdb3c0199e361f96b5423",
      "relation": "spawned_from"
    }
  ],
  "tree": {
    "algorithm": "blob_tree_blake3_nfc",
    "excludes": [
      ".git"
    ],
    "ignore_rules": [
      ".gitignore"
    ]
  }
}