Skip to content

Commit 0e83db2

Browse files
feat: add api catalog discovery with list, describe, and search subcommands
Refactor 'godaddy api' from a single raw-request command into a parent command with discovery subcommands so agents can explore API endpoints before making requests. New subcommands: - godaddy api list [--domain <name>] - browse API domains and endpoints - godaddy api describe <operationId-or-path> - full schema detail - godaddy api search <query> - keyword search across all endpoints - godaddy api call <endpoint> - the original raw request behavior Build-time pipeline: - scripts/generate-api-catalog.ts reads OpenAPI specs from spec submodules (starting with location.addresses-specification), resolves all external $ref URLs recursively, and outputs self-contained JSON catalog files that esbuild inlines into the bundle. The catalog loader (src/cli/schemas/api/index.ts) uses Effect throughout: Effect.succeed, Effect.sync, Effect.gen, and Option for all public APIs.
1 parent b3cba2f commit 0e83db2

File tree

9 files changed

+1659
-35
lines changed

9 files changed

+1659
-35
lines changed

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"format": "pnpm biome format --write",
2020
"lint": "pnpm biome lint --write",
2121
"check": "pnpm biome check --fix --unsafe",
22+
"generate:api-catalog": "pnpm tsx scripts/generate-api-catalog.ts",
2223
"build": "node build.mjs",
2324
"build:dev": "NODE_ENV=development node build.mjs --dev && NODE_OPTIONS=--enable-source-maps node dist/cli-dev.js",
2425
"prepare": "pnpm run build",
@@ -43,7 +44,8 @@
4344
"ms": "^2.1.3",
4445
"msw": "^2.4.0",
4546
"tsx": "^4.19.3",
46-
"vitest": "^3.2.2"
47+
"vitest": "^3.2.2",
48+
"yaml": "^2.8.2"
4749
},
4850
"peerDependencies": {
4951
"typescript": "^5.0.0"

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)