Files
psf-bch-api/dev-docs/update-logs/2026-04-01.md
T

2.8 KiB

2026-04-01 Update Log

Summary

Added x402-gated discovery endpoints for agent/tool self-discovery, built a docs-derived artifact pipeline from apiDoc annotations, and documented the new flow and behavior.

Changes Made

  • Added new discovery controller/router:
    • src/controllers/discovery/controller.js
    • src/controllers/discovery/router.js
  • Added five root-path discovery endpoints:
    • GET /.well-known/x402
    • GET /openapi.json
    • GET /swagger.json
    • GET /llms.txt
    • GET /.well-known/agent.json
  • Added x402-enabled gating:
    • All five endpoints now return 404 when X402_ENABLED=false.
    • When enabled, payloads are returned with x402-bch v2-oriented metadata.
  • Added apiDoc-derived document builder:
    • src/discovery/build-documents.js
    • Parses @api annotations and builds OpenAPI, Swagger, llms, and agent documents.
    • Uses docs/discovery-artifacts.json if present, otherwise builds in-process.
  • Added artifact generation script:
    • scripts/build-discovery-artifacts.js
    • Writes docs/discovery-artifacts.json
  • Updated npm scripts in package.json:
    • docs:discovery
    • docs:all (runs docs then docs:discovery)
  • Wired discovery routes into server bootstrap:
    • bin/server.js
  • Added tests:
    • test/unit/controllers/discovery-controller-unit.js
    • test/unit/controllers/discovery-router-unit.js
    • test/unit/controllers/discovery-documents-unit.js
  • Updated docs/config examples:
    • README.md (discovery endpoints + docs workflow)
    • .env-example (x402 gating note for discovery endpoints)

Why This Was Changed

  • Endpoint probes for discovery paths are common from API tooling and AI agents.
  • Serving structured discovery metadata improves machine interoperability for:
    • API clients and SDK tooling (openapi.json, swagger.json)
    • LLM retrieval workflows (llms.txt)
    • Agent capability discovery (agent.json)
    • x402 payment discovery (/.well-known/x402)
  • Gating by X402_ENABLED keeps discovery aligned with monetization mode and avoids advertising payment surfaces when x402 is disabled.

Validation Notes

  • Lint passed.
  • New discovery-focused unit tests passed.
  • Full npm test run showed one pre-existing timeout failure in test/unit/use-cases/price-use-cases-unit.js unrelated to discovery endpoint changes.

References