@cleocode/core 2026.6.12 → 2026.6.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/ops.d.ts +4 -0
- package/dist/admin/ops.d.ts.map +1 -1
- package/dist/check/index.d.ts +12 -0
- package/dist/check/index.d.ts.map +1 -0
- package/dist/check/index.js +12 -0
- package/dist/check/index.js.map +1 -0
- package/dist/check/pr-gate.d.ts +179 -0
- package/dist/check/pr-gate.d.ts.map +1 -0
- package/dist/check/pr-gate.js +366 -0
- package/dist/check/pr-gate.js.map +1 -0
- package/dist/conduit/delivery-router.d.ts +134 -0
- package/dist/conduit/delivery-router.d.ts.map +1 -0
- package/dist/conduit/delivery-router.js +0 -0
- package/dist/conduit/delivery-router.js.map +1 -0
- package/dist/conduit/index.d.ts +5 -2
- package/dist/conduit/index.d.ts.map +1 -1
- package/dist/conduit/index.js +5 -2
- package/dist/conduit/index.js.map +1 -1
- package/dist/conduit/local-transport.d.ts +12 -0
- package/dist/conduit/local-transport.d.ts.map +1 -1
- package/dist/conduit/local-transport.js +53 -23
- package/dist/conduit/local-transport.js.map +1 -1
- package/dist/conduit/local-tui-adapter.d.ts +89 -0
- package/dist/conduit/local-tui-adapter.d.ts.map +1 -0
- package/dist/conduit/local-tui-adapter.js +225 -0
- package/dist/conduit/local-tui-adapter.js.map +1 -0
- package/dist/config/registry.d.ts +54 -0
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +94 -2
- package/dist/config/registry.js.map +1 -1
- package/dist/crypto/credentials.d.ts +37 -0
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +110 -0
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/deriver/queue-manager.d.ts +30 -2
- package/dist/deriver/queue-manager.d.ts.map +1 -1
- package/dist/deriver/queue-manager.js +54 -9
- package/dist/deriver/queue-manager.js.map +1 -1
- package/dist/dispatch/config-domain-handler.d.ts +125 -0
- package/dist/dispatch/config-domain-handler.d.ts.map +1 -0
- package/dist/dispatch/config-domain-handler.js +160 -0
- package/dist/dispatch/config-domain-handler.js.map +1 -0
- package/dist/dispatch/contracts/derive-output-contract.d.ts +86 -0
- package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -0
- package/dist/dispatch/contracts/derive-output-contract.js +347 -0
- package/dist/dispatch/contracts/derive-output-contract.js.map +1 -0
- package/dist/dispatch/contracts/ensures-schema.d.ts +77 -0
- package/dist/dispatch/contracts/ensures-schema.d.ts.map +1 -0
- package/dist/dispatch/contracts/ensures-schema.js +91 -0
- package/dist/dispatch/contracts/ensures-schema.js.map +1 -0
- package/dist/dispatch/contracts/input-contracts.d.ts.map +1 -1
- package/dist/dispatch/contracts/input-contracts.js +19 -1
- package/dist/dispatch/contracts/input-contracts.js.map +1 -1
- package/dist/dispatch/contracts/output-contracts.d.ts +27 -5
- package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
- package/dist/dispatch/contracts/output-contracts.js +29 -6
- package/dist/dispatch/contracts/output-contracts.js.map +1 -1
- package/dist/docs/export-document.js +5413 -1345
- package/dist/docs/export-document.js.map +3 -3
- package/dist/gateway-client/client.d.ts +123 -0
- package/dist/gateway-client/client.d.ts.map +1 -0
- package/dist/gateway-client/client.js +93 -0
- package/dist/gateway-client/client.js.map +1 -0
- package/dist/gateway-client/generated/client/client.gen.d.ts +3 -0
- package/dist/gateway-client/generated/client/client.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/client.gen.js +217 -0
- package/dist/gateway-client/generated/client/client.gen.js.map +1 -0
- package/dist/gateway-client/generated/client/index.d.ts +11 -0
- package/dist/gateway-client/generated/client/index.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/index.js +7 -0
- package/dist/gateway-client/generated/client/index.js.map +1 -0
- package/dist/gateway-client/generated/client/types.gen.d.ts +121 -0
- package/dist/gateway-client/generated/client/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/types.gen.js +3 -0
- package/dist/gateway-client/generated/client/types.gen.js.map +1 -0
- package/dist/gateway-client/generated/client/utils.gen.d.ts +38 -0
- package/dist/gateway-client/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/utils.gen.js +229 -0
- package/dist/gateway-client/generated/client/utils.gen.js.map +1 -0
- package/dist/gateway-client/generated/client.gen.d.ts +13 -0
- package/dist/gateway-client/generated/client.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client.gen.js +4 -0
- package/dist/gateway-client/generated/client.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/auth.gen.d.ts +26 -0
- package/dist/gateway-client/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/auth.gen.js +15 -0
- package/dist/gateway-client/generated/core/auth.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.js +58 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/params.gen.d.ts +44 -0
- package/dist/gateway-client/generated/core/params.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/params.gen.js +101 -0
- package/dist/gateway-client/generated/core/params.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.js +107 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.js +93 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.js +133 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/types.gen.d.ts +84 -0
- package/dist/gateway-client/generated/core/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/types.gen.js +3 -0
- package/dist/gateway-client/generated/core/types.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/utils.gen.d.ts +20 -0
- package/dist/gateway-client/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/utils.gen.js +88 -0
- package/dist/gateway-client/generated/core/utils.gen.js.map +1 -0
- package/dist/gateway-client/generated/index.d.ts +3 -0
- package/dist/gateway-client/generated/index.d.ts.map +1 -0
- package/dist/gateway-client/generated/index.js +3 -0
- package/dist/gateway-client/generated/index.js.map +1 -0
- package/dist/gateway-client/generated/namespaces.gen.d.ts +512 -0
- package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/namespaces.gen.js +521 -0
- package/dist/gateway-client/generated/namespaces.gen.js.map +1 -0
- package/dist/gateway-client/generated/sdk.gen.d.ts +1780 -0
- package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/sdk.gen.js +3811 -0
- package/dist/gateway-client/generated/sdk.gen.js.map +1 -0
- package/dist/gateway-client/generated/types.gen.d.ts +14681 -0
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/types.gen.js +3 -0
- package/dist/gateway-client/generated/types.gen.js.map +1 -0
- package/dist/gateway-client/index.d.ts +27 -0
- package/dist/gateway-client/index.d.ts.map +1 -0
- package/dist/gateway-client/index.js +25 -0
- package/dist/gateway-client/index.js.map +1 -0
- package/dist/go/driver.d.ts +132 -7
- package/dist/go/driver.d.ts.map +1 -1
- package/dist/go/driver.js +135 -10
- package/dist/go/driver.js.map +1 -1
- package/dist/go/index.d.ts +1 -1
- package/dist/go/index.d.ts.map +1 -1
- package/dist/go/index.js +1 -1
- package/dist/go/index.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +28 -0
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +23 -11
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +29 -12
- package/dist/internal.js.map +1 -1
- package/dist/lifecycle/engine-ops.d.ts.map +1 -1
- package/dist/lifecycle/engine-ops.js +7 -4
- package/dist/lifecycle/engine-ops.js.map +1 -1
- package/dist/lifecycle/ivtr-loop.d.ts +108 -183
- package/dist/lifecycle/ivtr-loop.d.ts.map +1 -1
- package/dist/lifecycle/ivtr-loop.js +207 -522
- package/dist/lifecycle/ivtr-loop.js.map +1 -1
- package/dist/llm/auxiliary-fallback.js +1 -1
- package/dist/llm/auxiliary-fallback.js.map +1 -1
- package/dist/llm/catalog-model-resolver.d.ts +19 -0
- package/dist/llm/catalog-model-resolver.d.ts.map +1 -1
- package/dist/llm/catalog-model-resolver.js +36 -0
- package/dist/llm/catalog-model-resolver.js.map +1 -1
- package/dist/llm/catalog-resolver.d.ts +112 -0
- package/dist/llm/catalog-resolver.d.ts.map +1 -0
- package/dist/llm/catalog-resolver.js +207 -0
- package/dist/llm/catalog-resolver.js.map +1 -0
- package/dist/llm/catalog-seeder.d.ts +96 -0
- package/dist/llm/catalog-seeder.d.ts.map +1 -0
- package/dist/llm/catalog-seeder.js +189 -0
- package/dist/llm/catalog-seeder.js.map +1 -0
- package/dist/llm/cli-ops.d.ts +14 -1
- package/dist/llm/cli-ops.d.ts.map +1 -1
- package/dist/llm/cli-ops.js +46 -17
- package/dist/llm/cli-ops.js.map +1 -1
- package/dist/llm/complexity-classifier.d.ts +208 -0
- package/dist/llm/complexity-classifier.d.ts.map +1 -0
- package/dist/llm/complexity-classifier.js +359 -0
- package/dist/llm/complexity-classifier.js.map +1 -0
- package/dist/llm/concrete-session.d.ts.map +1 -1
- package/dist/llm/concrete-session.js +4 -0
- package/dist/llm/concrete-session.js.map +1 -1
- package/dist/llm/credential-pool.d.ts +2 -0
- package/dist/llm/credential-pool.d.ts.map +1 -1
- package/dist/llm/credential-pool.js +5 -2
- package/dist/llm/credential-pool.js.map +1 -1
- package/dist/llm/credentials-store.d.ts +10 -14
- package/dist/llm/credentials-store.d.ts.map +1 -1
- package/dist/llm/credentials-store.js.map +1 -1
- package/dist/llm/credentials.d.ts +35 -0
- package/dist/llm/credentials.d.ts.map +1 -1
- package/dist/llm/credentials.js +49 -0
- package/dist/llm/credentials.js.map +1 -1
- package/dist/llm/entity-ops.d.ts +299 -0
- package/dist/llm/entity-ops.d.ts.map +1 -0
- package/dist/llm/entity-ops.js +441 -0
- package/dist/llm/entity-ops.js.map +1 -0
- package/dist/llm/index.d.ts +19 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +12 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm-queue-admit.d.ts +118 -0
- package/dist/llm/llm-queue-admit.d.ts.map +1 -0
- package/dist/llm/llm-queue-admit.js +275 -0
- package/dist/llm/llm-queue-admit.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +2 -8
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/oauth/google-pkce.d.ts.map +1 -1
- package/dist/llm/oauth/google-pkce.js +2 -18
- package/dist/llm/oauth/google-pkce.js.map +1 -1
- package/dist/llm/oauth/pkce.d.ts +70 -0
- package/dist/llm/oauth/pkce.d.ts.map +1 -1
- package/dist/llm/oauth/pkce.js +106 -29
- package/dist/llm/oauth/pkce.js.map +1 -1
- package/dist/llm/onboarding/front-door.d.ts +146 -0
- package/dist/llm/onboarding/front-door.d.ts.map +1 -0
- package/dist/llm/onboarding/front-door.js +153 -0
- package/dist/llm/onboarding/front-door.js.map +1 -0
- package/dist/llm/onboarding/login-engine.d.ts +175 -0
- package/dist/llm/onboarding/login-engine.d.ts.map +1 -0
- package/dist/llm/onboarding/login-engine.js +286 -0
- package/dist/llm/onboarding/login-engine.js.map +1 -0
- package/dist/llm/pi/gondolin-loader.d.ts +241 -0
- package/dist/llm/pi/gondolin-loader.d.ts.map +1 -0
- package/dist/llm/pi/gondolin-loader.js +195 -0
- package/dist/llm/pi/gondolin-loader.js.map +1 -0
- package/dist/llm/pi/index.d.ts +28 -0
- package/dist/llm/pi/index.d.ts.map +1 -0
- package/dist/llm/pi/index.js +27 -0
- package/dist/llm/pi/index.js.map +1 -0
- package/dist/llm/pi/pi-agent-adapter.d.ts +135 -0
- package/dist/llm/pi/pi-agent-adapter.d.ts.map +1 -0
- package/dist/llm/pi/pi-agent-adapter.js +329 -0
- package/dist/llm/pi/pi-agent-adapter.js.map +1 -0
- package/dist/llm/pi/pi-errors.d.ts +161 -0
- package/dist/llm/pi/pi-errors.d.ts.map +1 -0
- package/dist/llm/pi/pi-errors.js +296 -0
- package/dist/llm/pi/pi-errors.js.map +1 -0
- package/dist/llm/pi/pi-execution-env.d.ts +286 -0
- package/dist/llm/pi/pi-execution-env.d.ts.map +1 -0
- package/dist/llm/pi/pi-execution-env.js +406 -0
- package/dist/llm/pi/pi-execution-env.js.map +1 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts +250 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -0
- package/dist/llm/pi/pi-gondolin-env.js +541 -0
- package/dist/llm/pi/pi-gondolin-env.js.map +1 -0
- package/dist/llm/pi/pi-session-storage.d.ts +154 -0
- package/dist/llm/pi/pi-session-storage.d.ts.map +1 -0
- package/dist/llm/pi/pi-session-storage.js +314 -0
- package/dist/llm/pi/pi-session-storage.js.map +1 -0
- package/dist/llm/pi/pi-stream-fn.d.ts +124 -0
- package/dist/llm/pi/pi-stream-fn.d.ts.map +1 -0
- package/dist/llm/pi/pi-stream-fn.js +504 -0
- package/dist/llm/pi/pi-stream-fn.js.map +1 -0
- package/dist/llm/pi/pi-tool-bridge.d.ts +99 -0
- package/dist/llm/pi/pi-tool-bridge.d.ts.map +1 -0
- package/dist/llm/pi/pi-tool-bridge.js +117 -0
- package/dist/llm/pi/pi-tool-bridge.js.map +1 -0
- package/dist/llm/pi/pi-types.d.ts +56 -0
- package/dist/llm/pi/pi-types.d.ts.map +1 -0
- package/dist/llm/pi/pi-types.js +16 -0
- package/dist/llm/pi/pi-types.js.map +1 -0
- package/dist/llm/pi/resolve-execution-env.d.ts +194 -0
- package/dist/llm/pi/resolve-execution-env.d.ts.map +1 -0
- package/dist/llm/pi/resolve-execution-env.js +132 -0
- package/dist/llm/pi/resolve-execution-env.js.map +1 -0
- package/dist/llm/plugin-facade.js +5472 -1331
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/anthropic.js +23 -10
- package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
- package/dist/llm/provider-registry/provider-alias.d.ts +62 -0
- package/dist/llm/provider-registry/provider-alias.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-alias.js +85 -0
- package/dist/llm/provider-registry/provider-alias.js.map +1 -0
- package/dist/llm/provider-registry/provider-defs.d.ts +45 -0
- package/dist/llm/provider-registry/provider-defs.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-defs.js +145 -0
- package/dist/llm/provider-registry/provider-defs.js.map +1 -0
- package/dist/llm/provider-registry/provider-seed.d.ts +78 -0
- package/dist/llm/provider-registry/provider-seed.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-seed.js +113 -0
- package/dist/llm/provider-registry/provider-seed.js.map +1 -0
- package/dist/llm/role-executor.d.ts.map +1 -1
- package/dist/llm/role-executor.js +44 -5
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts +46 -14
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +185 -20
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/sealed-credential.d.ts +125 -0
- package/dist/llm/sealed-credential.d.ts.map +1 -0
- package/dist/llm/sealed-credential.js +133 -0
- package/dist/llm/sealed-credential.js.map +1 -0
- package/dist/llm/session-factory.d.ts.map +1 -1
- package/dist/llm/session-factory.js +6 -2
- package/dist/llm/session-factory.js.map +1 -1
- package/dist/llm/system-key.d.ts +67 -0
- package/dist/llm/system-key.d.ts.map +1 -0
- package/dist/llm/system-key.js +87 -0
- package/dist/llm/system-key.js.map +1 -0
- package/dist/llm/system-of-use-registry.d.ts +119 -0
- package/dist/llm/system-of-use-registry.d.ts.map +1 -0
- package/dist/llm/system-of-use-registry.js +200 -0
- package/dist/llm/system-of-use-registry.js.map +1 -0
- package/dist/llm/system-resolver.d.ts +32 -10
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +138 -35
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/memory/brain-writer-thread.d.ts.map +1 -1
- package/dist/memory/brain-writer-thread.js +116 -11
- package/dist/memory/brain-writer-thread.js.map +1 -1
- package/dist/memory/claude-mem-migration.d.ts.map +1 -1
- package/dist/memory/claude-mem-migration.js +21 -0
- package/dist/memory/claude-mem-migration.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +32 -25
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/learnings.d.ts +4 -0
- package/dist/memory/learnings.d.ts.map +1 -1
- package/dist/memory/llm-backend-resolver.js +23 -5
- package/dist/memory/llm-backend-resolver.js.map +1 -1
- package/dist/memory/patterns.d.ts +4 -0
- package/dist/memory/patterns.d.ts.map +1 -1
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +1 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
- package/dist/nexus/migrations/M-split-graph.js +60 -53
- package/dist/nexus/migrations/M-split-graph.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +20 -2
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestration/spawn.d.ts +89 -0
- package/dist/orchestration/spawn.d.ts.map +1 -1
- package/dist/orchestration/spawn.js +68 -0
- package/dist/orchestration/spawn.js.map +1 -1
- package/dist/playbooks/cantbook-profile.d.ts +96 -0
- package/dist/playbooks/cantbook-profile.d.ts.map +1 -0
- package/dist/playbooks/cantbook-profile.js +97 -0
- package/dist/playbooks/cantbook-profile.js.map +1 -0
- package/dist/playbooks/guarded-deterministic-runner.d.ts +153 -0
- package/dist/playbooks/guarded-deterministic-runner.d.ts.map +1 -0
- package/dist/playbooks/guarded-deterministic-runner.js +155 -0
- package/dist/playbooks/guarded-deterministic-runner.js.map +1 -0
- package/dist/playbooks/index.d.ts +2 -0
- package/dist/playbooks/index.d.ts.map +1 -1
- package/dist/playbooks/index.js +10 -0
- package/dist/playbooks/index.js.map +1 -1
- package/dist/playbooks/pi-runner-wiring.d.ts +75 -0
- package/dist/playbooks/pi-runner-wiring.d.ts.map +1 -0
- package/dist/playbooks/pi-runner-wiring.js +82 -0
- package/dist/playbooks/pi-runner-wiring.js.map +1 -0
- package/dist/release/engine-ops.js +2 -2
- package/dist/release/engine-ops.js.map +1 -1
- package/dist/routing/capability-matrix.d.ts.map +1 -1
- package/dist/routing/capability-matrix.js +0 -57
- package/dist/routing/capability-matrix.js.map +1 -1
- package/dist/runtime/openapi/generate-openapi.d.ts +211 -0
- package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -0
- package/dist/runtime/openapi/generate-openapi.js +300 -0
- package/dist/runtime/openapi/generate-openapi.js.map +1 -0
- package/dist/runtime/openapi/index.d.ts +16 -0
- package/dist/runtime/openapi/index.d.ts.map +1 -0
- package/dist/runtime/openapi/index.js +16 -0
- package/dist/runtime/openapi/index.js.map +1 -0
- package/dist/selfimprove/budget.d.ts +206 -0
- package/dist/selfimprove/budget.d.ts.map +1 -0
- package/dist/selfimprove/budget.js +203 -0
- package/dist/selfimprove/budget.js.map +1 -0
- package/dist/selfimprove/dhq-adapter.d.ts +105 -0
- package/dist/selfimprove/dhq-adapter.d.ts.map +1 -0
- package/dist/selfimprove/dhq-adapter.js +95 -0
- package/dist/selfimprove/dhq-adapter.js.map +1 -0
- package/dist/selfimprove/draft-pr.d.ts +129 -0
- package/dist/selfimprove/draft-pr.d.ts.map +1 -0
- package/dist/selfimprove/draft-pr.js +158 -0
- package/dist/selfimprove/draft-pr.js.map +1 -0
- package/dist/selfimprove/envelope-diff.d.ts +162 -0
- package/dist/selfimprove/envelope-diff.d.ts.map +1 -0
- package/dist/selfimprove/envelope-diff.js +321 -0
- package/dist/selfimprove/envelope-diff.js.map +1 -0
- package/dist/selfimprove/replay.d.ts +121 -0
- package/dist/selfimprove/replay.d.ts.map +1 -0
- package/dist/selfimprove/replay.js +109 -0
- package/dist/selfimprove/replay.js.map +1 -0
- package/dist/selfimprove/run-loop.d.ts +148 -0
- package/dist/selfimprove/run-loop.d.ts.map +1 -0
- package/dist/selfimprove/run-loop.js +240 -0
- package/dist/selfimprove/run-loop.js.map +1 -0
- package/dist/selfimprove/scenario.d.ts +145 -0
- package/dist/selfimprove/scenario.d.ts.map +1 -0
- package/dist/selfimprove/scenario.js +243 -0
- package/dist/selfimprove/scenario.js.map +1 -0
- package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +32 -0
- package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -0
- package/dist/sentient/daemon-entry.js +5 -0
- package/dist/sentient/daemon-entry.js.map +1 -1
- package/dist/sentient/daemon.d.ts.map +1 -1
- package/dist/sentient/daemon.js +19 -0
- package/dist/sentient/daemon.js.map +1 -1
- package/dist/sentient/hygiene-scan.d.ts.map +1 -1
- package/dist/sentient/hygiene-scan.js +14 -6
- package/dist/sentient/hygiene-scan.js.map +1 -1
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +13 -9
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/connection-session-handle.d.ts +161 -0
- package/dist/sessions/connection-session-handle.d.ts.map +1 -0
- package/dist/sessions/connection-session-handle.js +168 -0
- package/dist/sessions/connection-session-handle.js.map +1 -0
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -0
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +31 -1
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-id.d.ts +34 -0
- package/dist/sessions/session-id.d.ts.map +1 -1
- package/dist/sessions/session-id.js +37 -0
- package/dist/sessions/session-id.js.map +1 -1
- package/dist/sessions/session-manifest-mirror.d.ts +115 -0
- package/dist/sessions/session-manifest-mirror.d.ts.map +1 -0
- package/dist/sessions/session-manifest-mirror.js +250 -0
- package/dist/sessions/session-manifest-mirror.js.map +1 -0
- package/dist/sessions/session-switch.d.ts.map +1 -1
- package/dist/sessions/session-switch.js +5 -2
- package/dist/sessions/session-switch.js.map +1 -1
- package/dist/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +14 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +23 -11
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +25 -12
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/llm.d.ts +28 -1
- package/dist/setup/sections/llm.d.ts.map +1 -1
- package/dist/setup/sections/llm.js +27 -6
- package/dist/setup/sections/llm.js.map +1 -1
- package/dist/setup/sections/models-roles.d.ts +40 -0
- package/dist/setup/sections/models-roles.d.ts.map +1 -0
- package/dist/setup/sections/models-roles.js +219 -0
- package/dist/setup/sections/models-roles.js.map +1 -0
- package/dist/setup/wizard.d.ts +19 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +2 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +2 -0
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +87 -47
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/pi-session-store.d.ts +151 -0
- package/dist/store/pi-session-store.d.ts.map +1 -0
- package/dist/store/pi-session-store.js +166 -0
- package/dist/store/pi-session-store.js.map +1 -0
- package/dist/store/safety-data-accessor.d.ts +1 -0
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +5 -0
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schedule-schema.d.ts +195 -0
- package/dist/store/schedule-schema.d.ts.map +1 -0
- package/dist/store/schedule-schema.js +84 -0
- package/dist/store/schedule-schema.js.map +1 -0
- package/dist/store/schedule-store.d.ts +144 -0
- package/dist/store/schedule-store.d.ts.map +1 -0
- package/dist/store/schedule-store.js +162 -0
- package/dist/store/schedule-store.js.map +1 -0
- package/dist/store/schema/attachments.d.ts +1 -1
- package/dist/store/schema/cleo-global/accounts.d.ts +357 -0
- package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/accounts.js +136 -0
- package/dist/store/schema/cleo-global/accounts.js.map +1 -0
- package/dist/store/schema/cleo-global/index.d.ts +5 -0
- package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/index.js +7 -0
- package/dist/store/schema/cleo-global/index.js.map +1 -1
- package/dist/store/schema/cleo-global/models-catalog.d.ts +359 -0
- package/dist/store/schema/cleo-global/models-catalog.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/models-catalog.js +114 -0
- package/dist/store/schema/cleo-global/models-catalog.js.map +1 -0
- package/dist/store/schema/cleo-global/providers.d.ts +279 -0
- package/dist/store/schema/cleo-global/providers.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/providers.js +94 -0
- package/dist/store/schema/cleo-global/providers.js.map +1 -0
- package/dist/store/schema/cleo-global/services.d.ts +493 -0
- package/dist/store/schema/cleo-global/services.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/services.js +200 -0
- package/dist/store/schema/cleo-global/services.js.map +1 -0
- package/dist/store/schema/cleo-global/session-manifest.d.ts +217 -0
- package/dist/store/schema/cleo-global/session-manifest.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/session-manifest.js +99 -0
- package/dist/store/schema/cleo-global/session-manifest.js.map +1 -0
- package/dist/store/schema/cleo-project/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +14 -0
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
- package/dist/store/schema/memory-schema.d.ts +182 -2
- package/dist/store/schema/memory-schema.d.ts.map +1 -1
- package/dist/store/schema/memory-schema.js +111 -2
- package/dist/store/schema/memory-schema.js.map +1 -1
- package/dist/store/schema/provenance/releases.d.ts +1 -1
- package/dist/store/schema/tasks.d.ts +16 -0
- package/dist/store/schema/tasks.d.ts.map +1 -1
- package/dist/store/schema/tasks.js +10 -0
- package/dist/store/schema/tasks.js.map +1 -1
- package/dist/store/selfimprove-dhq-schema.d.ts +284 -0
- package/dist/store/selfimprove-dhq-schema.d.ts.map +1 -0
- package/dist/store/selfimprove-dhq-schema.js +128 -0
- package/dist/store/selfimprove-dhq-schema.js.map +1 -0
- package/dist/store/selfimprove-dhq-store.d.ts +175 -0
- package/dist/store/selfimprove-dhq-store.d.ts.map +1 -0
- package/dist/store/selfimprove-dhq-store.js +182 -0
- package/dist/store/selfimprove-dhq-store.js.map +1 -0
- package/dist/store/service-connections-accessor.d.ts +313 -0
- package/dist/store/service-connections-accessor.d.ts.map +1 -0
- package/dist/store/service-connections-accessor.js +464 -0
- package/dist/store/service-connections-accessor.js.map +1 -0
- package/dist/store/service-host-matcher.d.ts +70 -0
- package/dist/store/service-host-matcher.d.ts.map +1 -0
- package/dist/store/service-host-matcher.js +127 -0
- package/dist/store/service-host-matcher.js.map +1 -0
- package/dist/store/service-injection.d.ts +152 -0
- package/dist/store/service-injection.d.ts.map +1 -0
- package/dist/store/service-injection.js +225 -0
- package/dist/store/service-injection.js.map +1 -0
- package/dist/store/service-oauth.d.ts +287 -0
- package/dist/store/service-oauth.d.ts.map +1 -0
- package/dist/store/service-oauth.js +524 -0
- package/dist/store/service-oauth.js.map +1 -0
- package/dist/store/service-trust-gate.d.ts +164 -0
- package/dist/store/service-trust-gate.d.ts.map +1 -0
- package/dist/store/service-trust-gate.js +122 -0
- package/dist/store/service-trust-gate.js.map +1 -0
- package/dist/store/session-store.d.ts +52 -13
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +71 -13
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +7 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +1 -0
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +5 -0
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +36 -4
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/writer-lease-schema.d.ts +392 -0
- package/dist/store/writer-lease-schema.d.ts.map +1 -0
- package/dist/store/writer-lease-schema.js +142 -0
- package/dist/store/writer-lease-schema.js.map +1 -0
- package/dist/store/writer-lease.d.ts +368 -0
- package/dist/store/writer-lease.d.ts.map +1 -0
- package/dist/store/writer-lease.js +1002 -0
- package/dist/store/writer-lease.js.map +1 -0
- package/dist/tasks/agent-lifecycle-lane.d.ts +175 -0
- package/dist/tasks/agent-lifecycle-lane.d.ts.map +1 -0
- package/dist/tasks/agent-lifecycle-lane.js +176 -0
- package/dist/tasks/agent-lifecycle-lane.js.map +1 -0
- package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
- package/dist/tasks/backfill-child-projections.js +14 -9
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/complete.d.ts +17 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +60 -20
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/depends-waiver-audit.d.ts +52 -0
- package/dist/tasks/depends-waiver-audit.d.ts.map +1 -0
- package/dist/tasks/depends-waiver-audit.js +36 -0
- package/dist/tasks/depends-waiver-audit.js.map +1 -0
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +14 -7
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap.d.ts +36 -2
- package/dist/tasks/engine-wrap.d.ts.map +1 -1
- package/dist/tasks/engine-wrap.js +44 -2
- package/dist/tasks/engine-wrap.js.map +1 -1
- package/dist/tasks/index.d.ts +1 -0
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -0
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/ops.d.ts +3 -0
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/task-ops.d.ts +1 -1
- package/dist/tasks/task-ops.d.ts.map +1 -1
- package/dist/tasks/task-ops.js +3 -1
- package/dist/tasks/task-ops.js.map +1 -1
- package/dist/tasks/task-reparent.d.ts +90 -0
- package/dist/tasks/task-reparent.d.ts.map +1 -1
- package/dist/tasks/task-reparent.js +171 -0
- package/dist/tasks/task-reparent.js.map +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +10 -4
- package/dist/telemetry/index.js.map +1 -1
- package/dist/tools/agent-registry.d.ts +250 -0
- package/dist/tools/agent-registry.d.ts.map +1 -0
- package/dist/tools/agent-registry.js +292 -0
- package/dist/tools/agent-registry.js.map +1 -0
- package/dist/tools/agent-tool-families.d.ts +107 -0
- package/dist/tools/agent-tool-families.d.ts.map +1 -0
- package/dist/tools/agent-tool-families.js +527 -0
- package/dist/tools/agent-tool-families.js.map +1 -0
- package/dist/tools/browser-driver.d.ts +183 -0
- package/dist/tools/browser-driver.d.ts.map +1 -0
- package/dist/tools/browser-driver.js +242 -0
- package/dist/tools/browser-driver.js.map +1 -0
- package/dist/tools/builtin-agent-tools.d.ts +36 -0
- package/dist/tools/builtin-agent-tools.d.ts.map +1 -0
- package/dist/tools/builtin-agent-tools.js +191 -0
- package/dist/tools/builtin-agent-tools.js.map +1 -0
- package/dist/tools/dispatch.d.ts +370 -0
- package/dist/tools/dispatch.d.ts.map +1 -0
- package/dist/tools/dispatch.js +505 -0
- package/dist/tools/dispatch.js.map +1 -0
- package/dist/tools/env-scrub.d.ts +93 -0
- package/dist/tools/env-scrub.d.ts.map +1 -0
- package/dist/tools/env-scrub.js +176 -0
- package/dist/tools/env-scrub.js.map +1 -0
- package/dist/tools/exec-code-agent-tool.d.ts +179 -0
- package/dist/tools/exec-code-agent-tool.d.ts.map +1 -0
- package/dist/tools/exec-code-agent-tool.js +239 -0
- package/dist/tools/exec-code-agent-tool.js.map +1 -0
- package/dist/tools/fs.d.ts +30 -0
- package/dist/tools/fs.d.ts.map +1 -1
- package/dist/tools/fs.js +55 -2
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/guard.d.ts +15 -0
- package/dist/tools/guard.d.ts.map +1 -1
- package/dist/tools/guard.js +49 -12
- package/dist/tools/guard.js.map +1 -1
- package/dist/tools/index.d.ts +16 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-agent-tool.d.ts +189 -0
- package/dist/tools/mcp-agent-tool.d.ts.map +1 -0
- package/dist/tools/mcp-agent-tool.js +243 -0
- package/dist/tools/mcp-agent-tool.js.map +1 -0
- package/dist/tools/media-agent-tools.d.ts +105 -0
- package/dist/tools/media-agent-tools.d.ts.map +1 -0
- package/dist/tools/media-agent-tools.js +255 -0
- package/dist/tools/media-agent-tools.js.map +1 -0
- package/dist/tools/memory-agent-tools.d.ts +99 -0
- package/dist/tools/memory-agent-tools.d.ts.map +1 -0
- package/dist/tools/memory-agent-tools.js +190 -0
- package/dist/tools/memory-agent-tools.js.map +1 -0
- package/dist/tools/pty.d.ts +45 -0
- package/dist/tools/pty.d.ts.map +1 -0
- package/dist/tools/pty.js +166 -0
- package/dist/tools/pty.js.map +1 -0
- package/dist/tools/schedule-agent-tools.d.ts +151 -0
- package/dist/tools/schedule-agent-tools.d.ts.map +1 -0
- package/dist/tools/schedule-agent-tools.js +238 -0
- package/dist/tools/schedule-agent-tools.js.map +1 -0
- package/dist/tools/schema-gen.d.ts +57 -0
- package/dist/tools/schema-gen.d.ts.map +1 -0
- package/dist/tools/schema-gen.js +52 -0
- package/dist/tools/schema-gen.js.map +1 -0
- package/dist/tools/shell.d.ts +12 -0
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/shell.js +14 -1
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/skill-agent-tool.d.ts +108 -0
- package/dist/tools/skill-agent-tool.d.ts.map +1 -0
- package/dist/tools/skill-agent-tool.js +135 -0
- package/dist/tools/skill-agent-tool.js.map +1 -0
- package/dist/tools/web-agent-tools.d.ts +72 -0
- package/dist/tools/web-agent-tools.d.ts.map +1 -0
- package/dist/tools/web-agent-tools.js +393 -0
- package/dist/tools/web-agent-tools.js.map +1 -0
- package/dist/tools/web-search-backends.d.ts +156 -0
- package/dist/tools/web-search-backends.d.ts.map +1 -0
- package/dist/tools/web-search-backends.js +290 -0
- package/dist/tools/web-search-backends.js.map +1 -0
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +17 -1
- package/dist/validation/engine-ops.js.map +1 -1
- package/dist/validation/ops.d.ts +1 -15
- package/dist/validation/ops.d.ts.map +1 -1
- package/dist/validation/ops.js +0 -20
- package/dist/validation/ops.js.map +1 -1
- package/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -0
- package/migrations/drizzle-cleo-global/20260607000000_t11891-writer-leases/migration.sql +55 -0
- package/migrations/drizzle-cleo-global/20260607010000_t11639-session-manifest/migration.sql +43 -0
- package/migrations/drizzle-cleo-global/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
- package/migrations/drizzle-cleo-global/20260608010000_t11709-accounts-credential-pool/migration.sql +72 -0
- package/migrations/drizzle-cleo-global/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
- package/migrations/drizzle-cleo-global/20260609000000_t11937-service-vault/migration.sql +93 -0
- package/migrations/drizzle-cleo-global/20260609010000_t11733-models-catalog/migration.sql +65 -0
- package/migrations/drizzle-cleo-global/20260609020000_t11703-providers/migration.sql +52 -0
- package/migrations/drizzle-cleo-global/20260610000000_t11962-schedules/migration.sql +48 -0
- package/migrations/drizzle-cleo-project/20260607000000_t11891-writer-leases/migration.sql +55 -0
- package/migrations/drizzle-cleo-project/20260607010000_t11639-session-parent/migration.sql +22 -0
- package/migrations/drizzle-cleo-project/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
- package/migrations/drizzle-cleo-project/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
- package/migrations/drizzle-cleo-project/20260610000000_t11962-schedules/migration.sql +48 -0
- package/package.json +26 -14
- package/dist/lifecycle/chain-composition.d.ts +0 -30
- package/dist/lifecycle/chain-composition.d.ts.map +0 -1
- package/dist/lifecycle/chain-composition.js +0 -152
- package/dist/lifecycle/chain-composition.js.map +0 -1
- package/dist/lifecycle/chain-store.d.ts +0 -70
- package/dist/lifecycle/chain-store.d.ts.map +0 -1
- package/dist/lifecycle/chain-store.js +0 -246
- package/dist/lifecycle/chain-store.js.map +0 -1
- package/dist/lifecycle/default-chain.d.ts +0 -39
- package/dist/lifecycle/default-chain.d.ts.map +0 -1
- package/dist/lifecycle/default-chain.js +0 -176
- package/dist/lifecycle/default-chain.js.map +0 -1
- package/dist/lifecycle/tessera-engine.d.ts +0 -48
- package/dist/lifecycle/tessera-engine.d.ts.map +0 -1
- package/dist/lifecycle/tessera-engine.js +0 -249
- package/dist/lifecycle/tessera-engine.js.map +0 -1
- package/dist/validation/chain-validation.d.ts +0 -43
- package/dist/validation/chain-validation.d.ts.map +0 -1
- package/dist/validation/chain-validation.js +0 -146
- package/dist/validation/chain-validation.js.map +0 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* generateOpenApi — projects the CLEO operations registry into an OpenAPI 3.1
|
|
3
|
+
* document (DHQ-033/057 SDK-projection · T11918 · AC2 · M5/E-API-STANDARD-FOUNDATION
|
|
4
|
+
* T11769).
|
|
5
|
+
*
|
|
6
|
+
* ## Why this exists
|
|
7
|
+
*
|
|
8
|
+
* The `/v1` REST gateway routes `POST /v1/<domain>/<operation>` for every entry
|
|
9
|
+
* in the 413-row {@link OPERATIONS} registry. Downstream task T11920 generates a
|
|
10
|
+
* typed SDK client; its projection source is an OpenAPI 3.1 spec. Hand-authoring
|
|
11
|
+
* 413 path objects (and keeping them in lock-step with the registry) is exactly
|
|
12
|
+
* the drift trap the schema-first SSoT (`inputSchema`/`outputSchema`) was built
|
|
13
|
+
* to close. This builder DERIVES the whole spec from the single source of truth:
|
|
14
|
+
*
|
|
15
|
+
* - paths ← {@link OPERATIONS} (`POST /v1/<domain>/<operation>`)
|
|
16
|
+
* - requestBody ← {@link getInputContract}(op).schema, else a JSON Schema
|
|
17
|
+
* synthesised from `def.params` (richest available input shape)
|
|
18
|
+
* - 200 response ← {@link getOutputContract}(op).dataSchema (hand-authored
|
|
19
|
+
* {@link OUTPUT_CONTRACTS}, else {@link deriveOutputContract})
|
|
20
|
+
*
|
|
21
|
+
* Because `OperationInputContract.schema` and `OperationOutputContract.dataSchema`
|
|
22
|
+
* are ALREADY JSON Schema (draft-07) documents, and OpenAPI 3.1's Schema Object
|
|
23
|
+
* IS a superset of JSON Schema (it adopts the JSON Schema 2020-12 vocabulary),
|
|
24
|
+
* the schemas embed directly — no zod→OpenAPI conversion pass, no `zod-to-openapi`
|
|
25
|
+
* dependency. Zod (v4) is the authoring substrate for the contracts upstream; by
|
|
26
|
+
* the time a schema reaches this builder it is already plain JSON Schema, so this
|
|
27
|
+
* module stays a zero-runtime-dependency projection over the registry.
|
|
28
|
+
*
|
|
29
|
+
* ## Boundary
|
|
30
|
+
*
|
|
31
|
+
* Lives in `core/src/runtime` (NOT `contracts`): it reads {@link getOutputContract}
|
|
32
|
+
* / {@link getInputContract}, which are core-resident bodied resolvers, and it is
|
|
33
|
+
* itself a bodied runtime helper (the contracts-purity Gate 10 forbids net-new
|
|
34
|
+
* bodied functions in `contracts`). Import-time side-effect-free: it builds
|
|
35
|
+
* nothing at module load, only when {@link generateOpenApi} is called.
|
|
36
|
+
*
|
|
37
|
+
* @packageDocumentation
|
|
38
|
+
* @module @cleocode/core/runtime/openapi/generate-openapi
|
|
39
|
+
*
|
|
40
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0 | OpenAPI 3.1.0 Specification}
|
|
41
|
+
* @see OperationOutputContract — the OUTPUT-side JSON Schema SSoT this projects
|
|
42
|
+
* @see OperationInputContract — the INPUT-side JSON Schema SSoT this projects
|
|
43
|
+
*
|
|
44
|
+
* @epic T11769
|
|
45
|
+
* @task T11918 — AC2: zod→OpenAPI 3.1 bridge + `cleo gateway openapi`
|
|
46
|
+
*/
|
|
47
|
+
import { type JsonSchema } from '@cleocode/contracts';
|
|
48
|
+
/**
|
|
49
|
+
* OpenAPI 3.1 `info` object — API identity surfaced to SDK generators and docs
|
|
50
|
+
* tooling.
|
|
51
|
+
*
|
|
52
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0#info-object}
|
|
53
|
+
*/
|
|
54
|
+
export interface OpenApiInfo {
|
|
55
|
+
/** Human-readable API title. */
|
|
56
|
+
title: string;
|
|
57
|
+
/**
|
|
58
|
+
* Semantic version of the API surface (NOT the package version). The `/v1`
|
|
59
|
+
* REST gateway is version `1.x`; defaults to `'1.0.0'`.
|
|
60
|
+
*/
|
|
61
|
+
version: string;
|
|
62
|
+
/** Optional one-line summary (OpenAPI 3.1 adds `summary` to the info object). */
|
|
63
|
+
summary?: string;
|
|
64
|
+
/** Optional CommonMark description. */
|
|
65
|
+
description?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* OpenAPI 3.1 Media Type object — pairs a content type with its schema.
|
|
69
|
+
*
|
|
70
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0#media-type-object}
|
|
71
|
+
*/
|
|
72
|
+
export interface OpenApiMediaType {
|
|
73
|
+
/** The JSON Schema (2020-12 vocabulary) describing the payload. */
|
|
74
|
+
schema: JsonSchema;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* OpenAPI 3.1 Request Body object.
|
|
78
|
+
*
|
|
79
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0#request-body-object}
|
|
80
|
+
*/
|
|
81
|
+
export interface OpenApiRequestBody {
|
|
82
|
+
/** Content keyed by media type (always `application/json` here). */
|
|
83
|
+
content: Record<string, OpenApiMediaType>;
|
|
84
|
+
/** Whether the request body is required (true iff the op has required params). */
|
|
85
|
+
required: boolean;
|
|
86
|
+
/** Optional human description. */
|
|
87
|
+
description?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* OpenAPI 3.1 Response object.
|
|
91
|
+
*
|
|
92
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0#response-object}
|
|
93
|
+
*/
|
|
94
|
+
export interface OpenApiResponse {
|
|
95
|
+
/** Required CommonMark description of the response. */
|
|
96
|
+
description: string;
|
|
97
|
+
/** Optional content keyed by media type. */
|
|
98
|
+
content?: Record<string, OpenApiMediaType>;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* OpenAPI 3.1 Operation object — one HTTP operation on a path.
|
|
102
|
+
*
|
|
103
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0#operation-object}
|
|
104
|
+
*/
|
|
105
|
+
export interface OpenApiOperation {
|
|
106
|
+
/** Unique, machine-friendly id (`<gateway>.<domain>.<operation>`) for SDK method naming. */
|
|
107
|
+
operationId: string;
|
|
108
|
+
/** Short summary (the registry `description`). */
|
|
109
|
+
summary: string;
|
|
110
|
+
/** Grouping tags — the canonical domain. */
|
|
111
|
+
tags: string[];
|
|
112
|
+
/** Request body, omitted when the op declares no input params. */
|
|
113
|
+
requestBody?: OpenApiRequestBody;
|
|
114
|
+
/** Responses keyed by HTTP status code (always at least `'200'`). */
|
|
115
|
+
responses: Record<string, OpenApiResponse>;
|
|
116
|
+
/**
|
|
117
|
+
* Vendor extension carrying the CQRS gateway (`'query'` | `'mutate'`) this
|
|
118
|
+
* operation routes through. The clean `/v1/<domain>/<operation>` path omits the
|
|
119
|
+
* gateway for readability, so the SDK reads this extension to pick the right
|
|
120
|
+
* dispatch gateway. OpenAPI tooling ignores `x-`-prefixed members it does not
|
|
121
|
+
* recognise, so emitting it keeps the document valid.
|
|
122
|
+
*/
|
|
123
|
+
'x-cleo-gateway': 'query' | 'mutate';
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* OpenAPI 3.1 Path Item object — the set of HTTP operations on one path. The
|
|
127
|
+
* CLEO `/v1` gateway only routes `POST`, so only `post` is ever populated.
|
|
128
|
+
*
|
|
129
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0#path-item-object}
|
|
130
|
+
*/
|
|
131
|
+
export interface OpenApiPathItem {
|
|
132
|
+
/** The single `POST` operation served at this path. */
|
|
133
|
+
post: OpenApiOperation;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* A minimal, structurally-typed OpenAPI 3.1 document — exactly the members
|
|
137
|
+
* {@link generateOpenApi} emits. The `openapi` field is pinned to the `3.1.x`
|
|
138
|
+
* literal family so consumers can statically assert the version.
|
|
139
|
+
*
|
|
140
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0#openapi-object}
|
|
141
|
+
*/
|
|
142
|
+
export interface OpenApiDocument {
|
|
143
|
+
/** OpenAPI version string — always `'3.1.0'`. */
|
|
144
|
+
openapi: '3.1.0';
|
|
145
|
+
/** API identity. */
|
|
146
|
+
info: OpenApiInfo;
|
|
147
|
+
/**
|
|
148
|
+
* The JSON Schema dialect every embedded Schema Object uses, declared once at
|
|
149
|
+
* the document root per OpenAPI 3.1. The contracts ship draft-07 schemas,
|
|
150
|
+
* which validate under the 2020-12 dialect OpenAPI 3.1 mandates.
|
|
151
|
+
*/
|
|
152
|
+
jsonSchemaDialect: string;
|
|
153
|
+
/**
|
|
154
|
+
* Path → path-item map, keyed by `<pathPrefix>/<domain>/<operation>` (with a
|
|
155
|
+
* trailing `/<gateway>` segment for the cross-gateway collision pairs).
|
|
156
|
+
*/
|
|
157
|
+
paths: Record<string, OpenApiPathItem>;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Options for {@link generateOpenApi}.
|
|
161
|
+
*/
|
|
162
|
+
export interface GenerateOpenApiOptions {
|
|
163
|
+
/**
|
|
164
|
+
* Semantic version stamped into `info.version`. This is the API-surface
|
|
165
|
+
* version (the `/v1` gateway), NOT the npm package version.
|
|
166
|
+
*
|
|
167
|
+
* @default '1.0.0'
|
|
168
|
+
*/
|
|
169
|
+
version?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Path prefix prepended to every operation route. The SDK-facing REST surface
|
|
172
|
+
* is versioned under `/v1` (T11769); each op maps to
|
|
173
|
+
* `POST <pathPrefix>/<domain>/<operation>`.
|
|
174
|
+
*
|
|
175
|
+
* @default '/v1'
|
|
176
|
+
*/
|
|
177
|
+
pathPrefix?: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Project the {@link OPERATIONS} registry into a complete OpenAPI 3.1 document.
|
|
181
|
+
*
|
|
182
|
+
* Walks every registry entry, mapping each to a `POST` path whose `requestBody`
|
|
183
|
+
* is the resolved input schema and whose `200` response is the resolved output
|
|
184
|
+
* schema (`deriveOutputContract` coverage), wrapped in the LAFS envelope.
|
|
185
|
+
*
|
|
186
|
+
* Routing: the clean form is `POST <pathPrefix>/<domain>/<operation>`. Because
|
|
187
|
+
* the registry has cross-gateway collisions on `<domain>/<operation>` (the same
|
|
188
|
+
* pair under both `query` and `mutate`), a colliding entry is disambiguated by
|
|
189
|
+
* appending its gateway segment (`<pathPrefix>/<domain>/<operation>/<gateway>`).
|
|
190
|
+
* Each operation also carries an `x-cleo-gateway` extension so the SDK knows
|
|
191
|
+
* which CQRS gateway to dispatch through regardless of the path form.
|
|
192
|
+
*
|
|
193
|
+
* The number of paths in the returned document equals `OPERATIONS.length` (AC5):
|
|
194
|
+
* every registry entry gets a unique route (and a unique operationId).
|
|
195
|
+
*
|
|
196
|
+
* @param options - {@link GenerateOpenApiOptions} (version, path prefix).
|
|
197
|
+
* @returns A structurally-valid OpenAPI 3.1 {@link OpenApiDocument}.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```ts
|
|
201
|
+
* const doc = generateOpenApi();
|
|
202
|
+
* doc.openapi; // '3.1.0'
|
|
203
|
+
* Object.keys(doc.paths).length; // === OPERATIONS.length
|
|
204
|
+
* doc.paths['/v1/tasks/show'].post.operationId; // 'query.tasks.show'
|
|
205
|
+
* doc.paths['/v1/tasks/show'].post['x-cleo-gateway'];// 'query'
|
|
206
|
+
* ```
|
|
207
|
+
*
|
|
208
|
+
* @task T11918 — AC1/AC2/AC5
|
|
209
|
+
*/
|
|
210
|
+
export declare function generateOpenApi(options?: GenerateOpenApiOptions): OpenApiDocument;
|
|
211
|
+
//# sourceMappingURL=generate-openapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-openapi.d.ts","sourceRoot":"","sources":["../../../src/runtime/openapi/generate-openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAgD,MAAM,qBAAqB,CAAC;AAQpG;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,kFAAkF;IAClF,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC5C;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,kEAAkE;IAClE,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C;;;;;;OAMG;IACH,gBAAgB,EAAE,OAAO,GAAG,QAAQ,CAAC;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACxC;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA+LD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAkDrF"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* generateOpenApi — projects the CLEO operations registry into an OpenAPI 3.1
|
|
3
|
+
* document (DHQ-033/057 SDK-projection · T11918 · AC2 · M5/E-API-STANDARD-FOUNDATION
|
|
4
|
+
* T11769).
|
|
5
|
+
*
|
|
6
|
+
* ## Why this exists
|
|
7
|
+
*
|
|
8
|
+
* The `/v1` REST gateway routes `POST /v1/<domain>/<operation>` for every entry
|
|
9
|
+
* in the 413-row {@link OPERATIONS} registry. Downstream task T11920 generates a
|
|
10
|
+
* typed SDK client; its projection source is an OpenAPI 3.1 spec. Hand-authoring
|
|
11
|
+
* 413 path objects (and keeping them in lock-step with the registry) is exactly
|
|
12
|
+
* the drift trap the schema-first SSoT (`inputSchema`/`outputSchema`) was built
|
|
13
|
+
* to close. This builder DERIVES the whole spec from the single source of truth:
|
|
14
|
+
*
|
|
15
|
+
* - paths ← {@link OPERATIONS} (`POST /v1/<domain>/<operation>`)
|
|
16
|
+
* - requestBody ← {@link getInputContract}(op).schema, else a JSON Schema
|
|
17
|
+
* synthesised from `def.params` (richest available input shape)
|
|
18
|
+
* - 200 response ← {@link getOutputContract}(op).dataSchema (hand-authored
|
|
19
|
+
* {@link OUTPUT_CONTRACTS}, else {@link deriveOutputContract})
|
|
20
|
+
*
|
|
21
|
+
* Because `OperationInputContract.schema` and `OperationOutputContract.dataSchema`
|
|
22
|
+
* are ALREADY JSON Schema (draft-07) documents, and OpenAPI 3.1's Schema Object
|
|
23
|
+
* IS a superset of JSON Schema (it adopts the JSON Schema 2020-12 vocabulary),
|
|
24
|
+
* the schemas embed directly — no zod→OpenAPI conversion pass, no `zod-to-openapi`
|
|
25
|
+
* dependency. Zod (v4) is the authoring substrate for the contracts upstream; by
|
|
26
|
+
* the time a schema reaches this builder it is already plain JSON Schema, so this
|
|
27
|
+
* module stays a zero-runtime-dependency projection over the registry.
|
|
28
|
+
*
|
|
29
|
+
* ## Boundary
|
|
30
|
+
*
|
|
31
|
+
* Lives in `core/src/runtime` (NOT `contracts`): it reads {@link getOutputContract}
|
|
32
|
+
* / {@link getInputContract}, which are core-resident bodied resolvers, and it is
|
|
33
|
+
* itself a bodied runtime helper (the contracts-purity Gate 10 forbids net-new
|
|
34
|
+
* bodied functions in `contracts`). Import-time side-effect-free: it builds
|
|
35
|
+
* nothing at module load, only when {@link generateOpenApi} is called.
|
|
36
|
+
*
|
|
37
|
+
* @packageDocumentation
|
|
38
|
+
* @module @cleocode/core/runtime/openapi/generate-openapi
|
|
39
|
+
*
|
|
40
|
+
* @see {@link https://spec.openapis.org/oas/v3.1.0 | OpenAPI 3.1.0 Specification}
|
|
41
|
+
* @see OperationOutputContract — the OUTPUT-side JSON Schema SSoT this projects
|
|
42
|
+
* @see OperationInputContract — the INPUT-side JSON Schema SSoT this projects
|
|
43
|
+
*
|
|
44
|
+
* @epic T11769
|
|
45
|
+
* @task T11918 — AC2: zod→OpenAPI 3.1 bridge + `cleo gateway openapi`
|
|
46
|
+
*/
|
|
47
|
+
import { OPERATIONS } from '@cleocode/contracts';
|
|
48
|
+
import { getInputContract } from '../../dispatch/contracts/input-contracts.js';
|
|
49
|
+
import { getOutputContract } from '../../dispatch/contracts/output-contracts.js';
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Input-schema derivation
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Map a {@link ParamDef.type} to its JSON Schema `type` keyword.
|
|
55
|
+
*
|
|
56
|
+
* `array` params are modelled as `{ type: 'array', items: { type: 'string' } }`
|
|
57
|
+
* — the CLI/dispatch layer accepts array params as comma-separated or repeated
|
|
58
|
+
* strings, so a string-item array is the faithful wire shape.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
function paramSchema(param) {
|
|
63
|
+
const base = { description: param.description };
|
|
64
|
+
if (param.enum !== undefined && param.enum.length > 0) {
|
|
65
|
+
return { ...base, type: 'string', enum: [...param.enum] };
|
|
66
|
+
}
|
|
67
|
+
switch (param.type) {
|
|
68
|
+
case 'number':
|
|
69
|
+
return { ...base, type: 'number' };
|
|
70
|
+
case 'boolean':
|
|
71
|
+
return { ...base, type: 'boolean' };
|
|
72
|
+
case 'array':
|
|
73
|
+
return { ...base, type: 'array', items: { type: 'string' } };
|
|
74
|
+
default:
|
|
75
|
+
return { ...base, type: 'string' };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Synthesise a JSON Schema `object` from an operation's `params` (or, when
|
|
80
|
+
* `params` is absent/empty, from its `requiredParams`). Hidden params are
|
|
81
|
+
* excluded — they are CLI-only knobs (`--dry-run`, `--offset`) and not part of
|
|
82
|
+
* the public API surface (see {@link ParamDef.hidden}).
|
|
83
|
+
*
|
|
84
|
+
* Returns `null` when the operation declares no API-visible input at all, so the
|
|
85
|
+
* caller can omit the `requestBody` entirely.
|
|
86
|
+
*
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
function inputSchemaFromParams(def) {
|
|
90
|
+
const params = (def.params ?? []).filter((p) => p.hidden !== true);
|
|
91
|
+
if (params.length > 0) {
|
|
92
|
+
const properties = {};
|
|
93
|
+
const required = [];
|
|
94
|
+
for (const p of params) {
|
|
95
|
+
properties[p.name] = paramSchema(p);
|
|
96
|
+
if (p.required)
|
|
97
|
+
required.push(p.name);
|
|
98
|
+
}
|
|
99
|
+
const schema = { type: 'object', properties, additionalProperties: false };
|
|
100
|
+
if (required.length > 0)
|
|
101
|
+
schema.required = required;
|
|
102
|
+
return schema;
|
|
103
|
+
}
|
|
104
|
+
// Legacy ops with no `params` array but a `requiredParams` list: emit a
|
|
105
|
+
// minimal object so the contract is still expressed.
|
|
106
|
+
if (def.requiredParams.length > 0) {
|
|
107
|
+
const properties = {};
|
|
108
|
+
for (const name of def.requiredParams)
|
|
109
|
+
properties[name] = { type: 'string' };
|
|
110
|
+
return {
|
|
111
|
+
type: 'object',
|
|
112
|
+
properties,
|
|
113
|
+
required: [...def.requiredParams],
|
|
114
|
+
additionalProperties: true,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Resolve the richest available JSON Schema for an operation's request body.
|
|
121
|
+
*
|
|
122
|
+
* Precedence: a hand-authored {@link getInputContract}(op) wins (it carries
|
|
123
|
+
* curated constraints + examples); otherwise the schema is derived from the
|
|
124
|
+
* operation's `params`. A `null` return means "no API-visible input" and the
|
|
125
|
+
* caller omits `requestBody`.
|
|
126
|
+
*
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
function resolveRequestSchema(def) {
|
|
130
|
+
const key = `${def.domain}.${def.operation}`;
|
|
131
|
+
const contract = getInputContract(key);
|
|
132
|
+
if (contract !== null)
|
|
133
|
+
return contract.schema;
|
|
134
|
+
return inputSchemaFromParams(def);
|
|
135
|
+
}
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
// Builder
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
/**
|
|
140
|
+
* Build one OpenAPI 3.1 {@link OpenApiOperation} from a single registry entry.
|
|
141
|
+
*
|
|
142
|
+
* @param def - The registry operation definition.
|
|
143
|
+
* @param operationId - The document-unique operationId assigned by the caller
|
|
144
|
+
* (the caller owns uniqueness because two registry entries can share a
|
|
145
|
+
* `<domain>.<operation>` across gateways).
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
function buildOperation(def, operationId) {
|
|
149
|
+
// The output contract is keyed on canonical `<domain>.<operation>` (NOT the
|
|
150
|
+
// disambiguated operationId), so resolve it from the registry coordinates.
|
|
151
|
+
const contractKey = `${def.domain}.${def.operation}`;
|
|
152
|
+
const operation = {
|
|
153
|
+
operationId,
|
|
154
|
+
summary: def.description,
|
|
155
|
+
tags: [def.domain],
|
|
156
|
+
'x-cleo-gateway': def.gateway,
|
|
157
|
+
responses: {
|
|
158
|
+
'200': buildSuccessResponse(contractKey),
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
const requestSchema = resolveRequestSchema(def);
|
|
162
|
+
if (requestSchema !== null) {
|
|
163
|
+
operation.requestBody = {
|
|
164
|
+
required: def.requiredParams.length > 0,
|
|
165
|
+
content: { 'application/json': { schema: requestSchema } },
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return operation;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Build the `200` response object for an operation, wrapping the resolved
|
|
172
|
+
* `dataSchema` in the canonical LAFS envelope shape
|
|
173
|
+
* (`{ success, data, meta }`) so the spec describes the ACTUAL wire response —
|
|
174
|
+
* not just the inner `data` payload.
|
|
175
|
+
*
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
function buildSuccessResponse(operationId) {
|
|
179
|
+
const output = getOutputContract(operationId);
|
|
180
|
+
const dataSchema = output?.dataSchema ?? {
|
|
181
|
+
type: 'object',
|
|
182
|
+
additionalProperties: true,
|
|
183
|
+
};
|
|
184
|
+
const description = output?.shapeNote ?? 'Successful LAFS response envelope.';
|
|
185
|
+
const envelopeSchema = {
|
|
186
|
+
type: 'object',
|
|
187
|
+
required: ['success', 'data', 'meta'],
|
|
188
|
+
properties: {
|
|
189
|
+
success: { type: 'boolean', const: true },
|
|
190
|
+
data: dataSchema,
|
|
191
|
+
meta: { type: 'object', additionalProperties: true, description: 'LAFS response metadata.' },
|
|
192
|
+
},
|
|
193
|
+
additionalProperties: true,
|
|
194
|
+
};
|
|
195
|
+
return {
|
|
196
|
+
description,
|
|
197
|
+
content: { 'application/json': { schema: envelopeSchema } },
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Allocate a document-unique key from a desired base, appending `/2`, `/3`, …
|
|
202
|
+
* (or `.2`, `.3`, … for dotted ids) only when the base is already taken.
|
|
203
|
+
*
|
|
204
|
+
* Used for BOTH path routes and operationIds. The CLEO operations registry is
|
|
205
|
+
* NOT collision-free on `<domain>/<operation>`: 8 ops appear under both the
|
|
206
|
+
* `query` AND `mutate` gateways (e.g. `admin/map`, `release/gate`), and one op
|
|
207
|
+
* (`tasks/tree`) is a genuine same-gateway duplicate. OpenAPI mandates unique
|
|
208
|
+
* path keys and unique operationIds, so each registry entry MUST still map to a
|
|
209
|
+
* distinct slot to keep the path count equal to `OPERATIONS.length` (AC5). The
|
|
210
|
+
* cross-gateway collisions are disambiguated by the caller (gateway suffix); a
|
|
211
|
+
* residual exact duplicate falls back to the numeric suffix here.
|
|
212
|
+
*
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
function uniqueKey(base, taken, sep) {
|
|
216
|
+
if (!taken.has(base)) {
|
|
217
|
+
taken.add(base);
|
|
218
|
+
return base;
|
|
219
|
+
}
|
|
220
|
+
let n = 2;
|
|
221
|
+
let candidate = `${base}${sep}${n}`;
|
|
222
|
+
while (taken.has(candidate)) {
|
|
223
|
+
n++;
|
|
224
|
+
candidate = `${base}${sep}${n}`;
|
|
225
|
+
}
|
|
226
|
+
taken.add(candidate);
|
|
227
|
+
return candidate;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Project the {@link OPERATIONS} registry into a complete OpenAPI 3.1 document.
|
|
231
|
+
*
|
|
232
|
+
* Walks every registry entry, mapping each to a `POST` path whose `requestBody`
|
|
233
|
+
* is the resolved input schema and whose `200` response is the resolved output
|
|
234
|
+
* schema (`deriveOutputContract` coverage), wrapped in the LAFS envelope.
|
|
235
|
+
*
|
|
236
|
+
* Routing: the clean form is `POST <pathPrefix>/<domain>/<operation>`. Because
|
|
237
|
+
* the registry has cross-gateway collisions on `<domain>/<operation>` (the same
|
|
238
|
+
* pair under both `query` and `mutate`), a colliding entry is disambiguated by
|
|
239
|
+
* appending its gateway segment (`<pathPrefix>/<domain>/<operation>/<gateway>`).
|
|
240
|
+
* Each operation also carries an `x-cleo-gateway` extension so the SDK knows
|
|
241
|
+
* which CQRS gateway to dispatch through regardless of the path form.
|
|
242
|
+
*
|
|
243
|
+
* The number of paths in the returned document equals `OPERATIONS.length` (AC5):
|
|
244
|
+
* every registry entry gets a unique route (and a unique operationId).
|
|
245
|
+
*
|
|
246
|
+
* @param options - {@link GenerateOpenApiOptions} (version, path prefix).
|
|
247
|
+
* @returns A structurally-valid OpenAPI 3.1 {@link OpenApiDocument}.
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```ts
|
|
251
|
+
* const doc = generateOpenApi();
|
|
252
|
+
* doc.openapi; // '3.1.0'
|
|
253
|
+
* Object.keys(doc.paths).length; // === OPERATIONS.length
|
|
254
|
+
* doc.paths['/v1/tasks/show'].post.operationId; // 'query.tasks.show'
|
|
255
|
+
* doc.paths['/v1/tasks/show'].post['x-cleo-gateway'];// 'query'
|
|
256
|
+
* ```
|
|
257
|
+
*
|
|
258
|
+
* @task T11918 — AC1/AC2/AC5
|
|
259
|
+
*/
|
|
260
|
+
export function generateOpenApi(options = {}) {
|
|
261
|
+
const version = options.version ?? '1.0.0';
|
|
262
|
+
const pathPrefix = options.pathPrefix ?? '/v1';
|
|
263
|
+
// Pre-compute which `<domain>/<operation>` pairs collide across gateways so
|
|
264
|
+
// only the colliding ones take the gateway-suffixed path (keeping the clean
|
|
265
|
+
// `/v1/<domain>/<operation>` form for the unambiguous majority).
|
|
266
|
+
const pairCounts = new Map();
|
|
267
|
+
for (const def of OPERATIONS) {
|
|
268
|
+
const pair = `${def.domain}/${def.operation}`;
|
|
269
|
+
pairCounts.set(pair, (pairCounts.get(pair) ?? 0) + 1);
|
|
270
|
+
}
|
|
271
|
+
const paths = {};
|
|
272
|
+
const takenRoutes = new Set();
|
|
273
|
+
const takenOperationIds = new Set();
|
|
274
|
+
for (const def of OPERATIONS) {
|
|
275
|
+
const pair = `${def.domain}/${def.operation}`;
|
|
276
|
+
const collides = (pairCounts.get(pair) ?? 0) > 1;
|
|
277
|
+
const baseRoute = collides
|
|
278
|
+
? `${pathPrefix}/${def.domain}/${def.operation}/${def.gateway}`
|
|
279
|
+
: `${pathPrefix}/${def.domain}/${def.operation}`;
|
|
280
|
+
const route = uniqueKey(baseRoute, takenRoutes, '/');
|
|
281
|
+
// operationId is always gateway-qualified so it is unique even for the
|
|
282
|
+
// cross-gateway pairs; a residual same-gateway dup gets a numeric suffix.
|
|
283
|
+
const operationId = uniqueKey(`${def.gateway}.${def.domain}.${def.operation}`, takenOperationIds, '.');
|
|
284
|
+
paths[route] = { post: buildOperation(def, operationId) };
|
|
285
|
+
}
|
|
286
|
+
return {
|
|
287
|
+
openapi: '3.1.0',
|
|
288
|
+
info: {
|
|
289
|
+
title: 'CLEO Gateway API',
|
|
290
|
+
version,
|
|
291
|
+
summary: 'CQRS operations gateway projected from the CLEO operations registry.',
|
|
292
|
+
description: 'Auto-generated from the canonical OPERATIONS registry. Every operation is reachable ' +
|
|
293
|
+
`via POST ${pathPrefix}/<domain>/<operation> with a JSON request body and a LAFS ` +
|
|
294
|
+
'response envelope. This document is the projection source for the generated SDK client.',
|
|
295
|
+
},
|
|
296
|
+
jsonSchemaDialect: 'https://json-schema.org/draft/2020-12/schema',
|
|
297
|
+
paths,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=generate-openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-openapi.js","sourceRoot":"","sources":["../../../src/runtime/openapi/generate-openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAmB,UAAU,EAAoC,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAqJjF,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,KAAe;IAClC,MAAM,IAAI,GAAe,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACrC,KAAK,SAAS;YACZ,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACtC,KAAK,OAAO;YACV,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC/D;YACE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,qBAAqB,CAAC,GAAiB;IAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAA+B,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,MAAM,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;QACvF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,qDAAqD;IACrD,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,UAAU,GAA+B,EAAE,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,cAAc;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7E,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU;YACV,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC;YACjC,oBAAoB,EAAE,IAAI;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,GAAiB;IAC7C,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC9C,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAiB,EAAE,WAAmB;IAC5D,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;IACrD,MAAM,SAAS,GAAqB;QAClC,WAAW;QACX,OAAO,EAAE,GAAG,CAAC,WAAW;QACxB,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;QAClB,gBAAgB,EAAE,GAAG,CAAC,OAAO;QAC7B,SAAS,EAAE;YACT,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC;SACzC;KACF,CAAC;IAEF,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,SAAS,CAAC,WAAW,GAAG;YACtB,QAAQ,EAAE,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACvC,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;SAC3D,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAe,MAAM,EAAE,UAAU,IAAI;QACnD,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,IAAI;KAC3B,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,EAAE,SAAS,IAAI,oCAAoC,CAAC;IAE9E,MAAM,cAAc,GAAe;QACjC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QACrC,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;YACzC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;SAC7F;QACD,oBAAoB,EAAE,IAAI;KAC3B,CAAC;IAEF,OAAO;QACL,WAAW;QACX,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;KAC5D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,KAAkB,EAAE,GAAW;IAC9D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,CAAC,EAAE,CAAC;QACJ,SAAS,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkC,EAAE;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;IAE/C,4EAA4E;IAC5E,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,KAAK,GAAoC,EAAE,CAAC;IAClD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE5C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE;YAC/D,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QAErD,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,WAAW,GAAG,SAAS,CAC3B,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,EAC/C,iBAAiB,EACjB,GAAG,CACJ,CAAC;QAEF,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,KAAK,EAAE,kBAAkB;YACzB,OAAO;YACP,OAAO,EAAE,sEAAsE;YAC/E,WAAW,EACT,sFAAsF;gBACtF,YAAY,UAAU,4DAA4D;gBAClF,yFAAyF;SAC5F;QACD,iBAAiB,EAAE,8CAA8C;QACjE,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI 3.1 projection — public surface.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the {@link generateOpenApi} builder and its OpenAPI 3.1 document
|
|
5
|
+
* types. The builder projects the canonical {@link OPERATIONS} registry into an
|
|
6
|
+
* OpenAPI 3.1 spec consumed by `cleo gateway openapi` and the downstream
|
|
7
|
+
* generated SDK client (T11920).
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
* @module @cleocode/core/runtime/openapi
|
|
11
|
+
*
|
|
12
|
+
* @epic T11769
|
|
13
|
+
* @task T11918
|
|
14
|
+
*/
|
|
15
|
+
export { type GenerateOpenApiOptions, generateOpenApi, type OpenApiDocument, type OpenApiInfo, type OpenApiMediaType, type OpenApiOperation, type OpenApiPathItem, type OpenApiRequestBody, type OpenApiResponse, } from './generate-openapi.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/openapi/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,KAAK,sBAAsB,EAC3B,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI 3.1 projection — public surface.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the {@link generateOpenApi} builder and its OpenAPI 3.1 document
|
|
5
|
+
* types. The builder projects the canonical {@link OPERATIONS} registry into an
|
|
6
|
+
* OpenAPI 3.1 spec consumed by `cleo gateway openapi` and the downstream
|
|
7
|
+
* generated SDK client (T11920).
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
* @module @cleocode/core/runtime/openapi
|
|
11
|
+
*
|
|
12
|
+
* @epic T11769
|
|
13
|
+
* @task T11918
|
|
14
|
+
*/
|
|
15
|
+
export { generateOpenApi, } from './generate-openapi.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/openapi/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAEL,eAAe,GAQhB,MAAM,uBAAuB,CAAC"}
|