@kindgi/api 0.0.0-bootstrap.0 → 0.1.0
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/LICENSE +201 -0
- package/README.md +216 -1
- package/dist/adapter-binding.d.ts +177 -0
- package/dist/adapter-binding.d.ts.map +1 -0
- package/dist/adapter-binding.js +12 -0
- package/dist/adapter-binding.js.map +1 -0
- package/dist/agent-binding.d.ts +207 -0
- package/dist/agent-binding.d.ts.map +1 -0
- package/dist/agent-binding.js +4 -0
- package/dist/agent-binding.js.map +1 -0
- package/dist/app.d.ts +770 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +396 -0
- package/dist/app.js.map +1 -0
- package/dist/capability-binding.d.ts +76 -0
- package/dist/capability-binding.d.ts.map +1 -0
- package/dist/capability-binding.js +4 -0
- package/dist/capability-binding.js.map +1 -0
- package/dist/cost-binding.d.ts +175 -0
- package/dist/cost-binding.d.ts.map +1 -0
- package/dist/cost-binding.js +13 -0
- package/dist/cost-binding.js.map +1 -0
- package/dist/deployment-binding.d.ts +201 -0
- package/dist/deployment-binding.d.ts.map +1 -0
- package/dist/deployment-binding.js +4 -0
- package/dist/deployment-binding.js.map +1 -0
- package/dist/env-binding.d.ts +132 -0
- package/dist/env-binding.d.ts.map +1 -0
- package/dist/env-binding.js +4 -0
- package/dist/env-binding.js.map +1 -0
- package/dist/errors.d.ts +37 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +264 -0
- package/dist/errors.js.map +1 -0
- package/dist/eval-run-binding.d.ts +196 -0
- package/dist/eval-run-binding.d.ts.map +1 -0
- package/dist/eval-run-binding.js +16 -0
- package/dist/eval-run-binding.js.map +1 -0
- package/dist/eval-run-dispatcher.d.ts +131 -0
- package/dist/eval-run-dispatcher.d.ts.map +1 -0
- package/dist/eval-run-dispatcher.js +368 -0
- package/dist/eval-run-dispatcher.js.map +1 -0
- package/dist/eval-suite-binding.d.ts +227 -0
- package/dist/eval-suite-binding.d.ts.map +1 -0
- package/dist/eval-suite-binding.js +24 -0
- package/dist/eval-suite-binding.js.map +1 -0
- package/dist/event-bus-binding.d.ts +107 -0
- package/dist/event-bus-binding.d.ts.map +1 -0
- package/dist/event-bus-binding.js +5 -0
- package/dist/event-bus-binding.js.map +1 -0
- package/dist/flow-binding.d.ts +194 -0
- package/dist/flow-binding.d.ts.map +1 -0
- package/dist/flow-binding.js +4 -0
- package/dist/flow-binding.js.map +1 -0
- package/dist/guardrail-binding.d.ts +138 -0
- package/dist/guardrail-binding.d.ts.map +1 -0
- package/dist/guardrail-binding.js +4 -0
- package/dist/guardrail-binding.js.map +1 -0
- package/dist/handler-binding.d.ts +126 -0
- package/dist/handler-binding.d.ts.map +1 -0
- package/dist/handler-binding.js +4 -0
- package/dist/handler-binding.js.map +1 -0
- package/dist/hitl-binding.d.ts +115 -0
- package/dist/hitl-binding.d.ts.map +1 -0
- package/dist/hitl-binding.js +4 -0
- package/dist/hitl-binding.js.map +1 -0
- package/dist/identity-directory-binding.d.ts +116 -0
- package/dist/identity-directory-binding.d.ts.map +1 -0
- package/dist/identity-directory-binding.js +4 -0
- package/dist/identity-directory-binding.js.map +1 -0
- package/dist/identity-provider-binding.d.ts +184 -0
- package/dist/identity-provider-binding.d.ts.map +1 -0
- package/dist/identity-provider-binding.js +4 -0
- package/dist/identity-provider-binding.js.map +1 -0
- package/dist/image-registry-binding.d.ts +165 -0
- package/dist/image-registry-binding.d.ts.map +1 -0
- package/dist/image-registry-binding.js +4 -0
- package/dist/image-registry-binding.js.map +1 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/key-management-binding.d.ts +101 -0
- package/dist/key-management-binding.d.ts.map +1 -0
- package/dist/key-management-binding.js +4 -0
- package/dist/key-management-binding.js.map +1 -0
- package/dist/mcp-endpoint-binding.d.ts +312 -0
- package/dist/mcp-endpoint-binding.d.ts.map +1 -0
- package/dist/mcp-endpoint-binding.js +12 -0
- package/dist/mcp-endpoint-binding.js.map +1 -0
- package/dist/memory-binding.d.ts +209 -0
- package/dist/memory-binding.d.ts.map +1 -0
- package/dist/memory-binding.js +4 -0
- package/dist/memory-binding.js.map +1 -0
- package/dist/middleware/auth.d.ts +168 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +247 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/authorize.d.ts +26 -0
- package/dist/middleware/authorize.d.ts.map +1 -0
- package/dist/middleware/authorize.js +65 -0
- package/dist/middleware/authorize.js.map +1 -0
- package/dist/middleware/error-mapper.d.ts +13 -0
- package/dist/middleware/error-mapper.d.ts.map +1 -0
- package/dist/middleware/error-mapper.js +32 -0
- package/dist/middleware/error-mapper.js.map +1 -0
- package/dist/middleware/idempotency.d.ts +43 -0
- package/dist/middleware/idempotency.d.ts.map +1 -0
- package/dist/middleware/idempotency.js +118 -0
- package/dist/middleware/idempotency.js.map +1 -0
- package/dist/middleware/principal.d.ts +4 -0
- package/dist/middleware/principal.d.ts.map +1 -0
- package/dist/middleware/principal.js +42 -0
- package/dist/middleware/principal.js.map +1 -0
- package/dist/middleware/public-run-routes.d.ts +16 -0
- package/dist/middleware/public-run-routes.d.ts.map +1 -0
- package/dist/middleware/public-run-routes.js +43 -0
- package/dist/middleware/public-run-routes.js.map +1 -0
- package/dist/middleware/request-id.d.ts +14 -0
- package/dist/middleware/request-id.d.ts.map +1 -0
- package/dist/middleware/request-id.js +24 -0
- package/dist/middleware/request-id.js.map +1 -0
- package/dist/middleware/sigv4-verify.d.ts +64 -0
- package/dist/middleware/sigv4-verify.d.ts.map +1 -0
- package/dist/middleware/sigv4-verify.js +286 -0
- package/dist/middleware/sigv4-verify.js.map +1 -0
- package/dist/middleware/sigv4.d.ts +25 -0
- package/dist/middleware/sigv4.d.ts.map +1 -0
- package/dist/middleware/sigv4.js +120 -0
- package/dist/middleware/sigv4.js.map +1 -0
- package/dist/openapi/generate.d.ts +15 -0
- package/dist/openapi/generate.d.ts.map +1 -0
- package/dist/openapi/generate.js +241 -0
- package/dist/openapi/generate.js.map +1 -0
- package/dist/openapi/operations.d.ts +70 -0
- package/dist/openapi/operations.d.ts.map +1 -0
- package/dist/openapi/operations.js +5051 -0
- package/dist/openapi/operations.js.map +1 -0
- package/dist/openapi/schemas.d.ts +590 -0
- package/dist/openapi/schemas.d.ts.map +1 -0
- package/dist/openapi/schemas.js +5820 -0
- package/dist/openapi/schemas.js.map +1 -0
- package/dist/provenance-binding.d.ts +116 -0
- package/dist/provenance-binding.d.ts.map +1 -0
- package/dist/provenance-binding.js +31 -0
- package/dist/provenance-binding.js.map +1 -0
- package/dist/provider-binding.d.ts +174 -0
- package/dist/provider-binding.d.ts.map +1 -0
- package/dist/provider-binding.js +4 -0
- package/dist/provider-binding.js.map +1 -0
- package/dist/public-run-token.d.ts +97 -0
- package/dist/public-run-token.d.ts.map +1 -0
- package/dist/public-run-token.js +167 -0
- package/dist/public-run-token.js.map +1 -0
- package/dist/retention-binding.d.ts +69 -0
- package/dist/retention-binding.d.ts.map +1 -0
- package/dist/retention-binding.js +4 -0
- package/dist/retention-binding.js.map +1 -0
- package/dist/reviewer-binding.d.ts +84 -0
- package/dist/reviewer-binding.d.ts.map +1 -0
- package/dist/reviewer-binding.js +4 -0
- package/dist/reviewer-binding.js.map +1 -0
- package/dist/rotation-status-store.d.ts +96 -0
- package/dist/rotation-status-store.d.ts.map +1 -0
- package/dist/rotation-status-store.js +106 -0
- package/dist/rotation-status-store.js.map +1 -0
- package/dist/routes/adapters.d.ts +29 -0
- package/dist/routes/adapters.d.ts.map +1 -0
- package/dist/routes/adapters.js +230 -0
- package/dist/routes/adapters.js.map +1 -0
- package/dist/routes/agents.d.ts +17 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +342 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/approvals.d.ts +37 -0
- package/dist/routes/approvals.d.ts.map +1 -0
- package/dist/routes/approvals.js +551 -0
- package/dist/routes/approvals.js.map +1 -0
- package/dist/routes/artifacts.d.ts +25 -0
- package/dist/routes/artifacts.d.ts.map +1 -0
- package/dist/routes/artifacts.js +265 -0
- package/dist/routes/artifacts.js.map +1 -0
- package/dist/routes/audit.d.ts +6 -0
- package/dist/routes/audit.d.ts.map +1 -0
- package/dist/routes/audit.js +162 -0
- package/dist/routes/audit.js.map +1 -0
- package/dist/routes/auth.d.ts +47 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +630 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/capabilities.d.ts +14 -0
- package/dist/routes/capabilities.d.ts.map +1 -0
- package/dist/routes/capabilities.js +62 -0
- package/dist/routes/capabilities.js.map +1 -0
- package/dist/routes/compliance.d.ts +37 -0
- package/dist/routes/compliance.d.ts.map +1 -0
- package/dist/routes/compliance.js +321 -0
- package/dist/routes/compliance.js.map +1 -0
- package/dist/routes/conversations.d.ts +13 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +295 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/cost.d.ts +24 -0
- package/dist/routes/cost.d.ts.map +1 -0
- package/dist/routes/cost.js +243 -0
- package/dist/routes/cost.js.map +1 -0
- package/dist/routes/deployments.d.ts +122 -0
- package/dist/routes/deployments.d.ts.map +1 -0
- package/dist/routes/deployments.js +1036 -0
- package/dist/routes/deployments.js.map +1 -0
- package/dist/routes/env.d.ts +62 -0
- package/dist/routes/env.d.ts.map +1 -0
- package/dist/routes/env.js +311 -0
- package/dist/routes/env.js.map +1 -0
- package/dist/routes/eval-runs.d.ts +28 -0
- package/dist/routes/eval-runs.d.ts.map +1 -0
- package/dist/routes/eval-runs.js +479 -0
- package/dist/routes/eval-runs.js.map +1 -0
- package/dist/routes/eval-suites.d.ts +24 -0
- package/dist/routes/eval-suites.d.ts.map +1 -0
- package/dist/routes/eval-suites.js +381 -0
- package/dist/routes/eval-suites.js.map +1 -0
- package/dist/routes/event-triggers.d.ts +12 -0
- package/dist/routes/event-triggers.d.ts.map +1 -0
- package/dist/routes/event-triggers.js +218 -0
- package/dist/routes/event-triggers.js.map +1 -0
- package/dist/routes/flows.d.ts +23 -0
- package/dist/routes/flows.d.ts.map +1 -0
- package/dist/routes/flows.js +344 -0
- package/dist/routes/flows.js.map +1 -0
- package/dist/routes/guardrails.d.ts +33 -0
- package/dist/routes/guardrails.d.ts.map +1 -0
- package/dist/routes/guardrails.js +236 -0
- package/dist/routes/guardrails.js.map +1 -0
- package/dist/routes/identity.d.ts +39 -0
- package/dist/routes/identity.d.ts.map +1 -0
- package/dist/routes/identity.js +138 -0
- package/dist/routes/identity.js.map +1 -0
- package/dist/routes/mcp.d.ts +23 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +727 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/memory.d.ts +16 -0
- package/dist/routes/memory.d.ts.map +1 -0
- package/dist/routes/memory.js +353 -0
- package/dist/routes/memory.js.map +1 -0
- package/dist/routes/observations.d.ts +19 -0
- package/dist/routes/observations.d.ts.map +1 -0
- package/dist/routes/observations.js +135 -0
- package/dist/routes/observations.js.map +1 -0
- package/dist/routes/orgs.d.ts +24 -0
- package/dist/routes/orgs.d.ts.map +1 -0
- package/dist/routes/orgs.js +208 -0
- package/dist/routes/orgs.js.map +1 -0
- package/dist/routes/pagination.d.ts +18 -0
- package/dist/routes/pagination.d.ts.map +1 -0
- package/dist/routes/pagination.js +35 -0
- package/dist/routes/pagination.js.map +1 -0
- package/dist/routes/policies.d.ts +23 -0
- package/dist/routes/policies.d.ts.map +1 -0
- package/dist/routes/policies.js +314 -0
- package/dist/routes/policies.js.map +1 -0
- package/dist/routes/projects.d.ts +45 -0
- package/dist/routes/projects.d.ts.map +1 -0
- package/dist/routes/projects.js +485 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/proposals.d.ts +24 -0
- package/dist/routes/proposals.d.ts.map +1 -0
- package/dist/routes/proposals.js +581 -0
- package/dist/routes/proposals.js.map +1 -0
- package/dist/routes/provenance.d.ts +34 -0
- package/dist/routes/provenance.d.ts.map +1 -0
- package/dist/routes/provenance.js +274 -0
- package/dist/routes/provenance.js.map +1 -0
- package/dist/routes/providers.d.ts +32 -0
- package/dist/routes/providers.d.ts.map +1 -0
- package/dist/routes/providers.js +490 -0
- package/dist/routes/providers.js.map +1 -0
- package/dist/routes/public-run-tokens.d.ts +17 -0
- package/dist/routes/public-run-tokens.d.ts.map +1 -0
- package/dist/routes/public-run-tokens.js +69 -0
- package/dist/routes/public-run-tokens.js.map +1 -0
- package/dist/routes/retention.d.ts +19 -0
- package/dist/routes/retention.d.ts.map +1 -0
- package/dist/routes/retention.js +152 -0
- package/dist/routes/retention.js.map +1 -0
- package/dist/routes/reviewers.d.ts +5 -0
- package/dist/routes/reviewers.d.ts.map +1 -0
- package/dist/routes/reviewers.js +161 -0
- package/dist/routes/reviewers.js.map +1 -0
- package/dist/routes/runs.d.ts +34 -0
- package/dist/routes/runs.d.ts.map +1 -0
- package/dist/routes/runs.js +773 -0
- package/dist/routes/runs.js.map +1 -0
- package/dist/routes/s3.d.ts +31 -0
- package/dist/routes/s3.d.ts.map +1 -0
- package/dist/routes/s3.js +433 -0
- package/dist/routes/s3.js.map +1 -0
- package/dist/routes/schedules.d.ts +20 -0
- package/dist/routes/schedules.d.ts.map +1 -0
- package/dist/routes/schedules.js +234 -0
- package/dist/routes/schedules.js.map +1 -0
- package/dist/routes/scope-params.d.ts +57 -0
- package/dist/routes/scope-params.d.ts.map +1 -0
- package/dist/routes/scope-params.js +105 -0
- package/dist/routes/scope-params.js.map +1 -0
- package/dist/routes/secret-ref.d.ts +20 -0
- package/dist/routes/secret-ref.d.ts.map +1 -0
- package/dist/routes/secret-ref.js +42 -0
- package/dist/routes/secret-ref.js.map +1 -0
- package/dist/routes/secrets.d.ts +53 -0
- package/dist/routes/secrets.d.ts.map +1 -0
- package/dist/routes/secrets.js +715 -0
- package/dist/routes/secrets.js.map +1 -0
- package/dist/routes/signing-keys.d.ts +23 -0
- package/dist/routes/signing-keys.d.ts.map +1 -0
- package/dist/routes/signing-keys.js +212 -0
- package/dist/routes/signing-keys.js.map +1 -0
- package/dist/routes/sse.d.ts +58 -0
- package/dist/routes/sse.d.ts.map +1 -0
- package/dist/routes/sse.js +92 -0
- package/dist/routes/sse.js.map +1 -0
- package/dist/routes/teams.d.ts +30 -0
- package/dist/routes/teams.d.ts.map +1 -0
- package/dist/routes/teams.js +443 -0
- package/dist/routes/teams.js.map +1 -0
- package/dist/routes/tenant.d.ts +57 -0
- package/dist/routes/tenant.d.ts.map +1 -0
- package/dist/routes/tenant.js +352 -0
- package/dist/routes/tenant.js.map +1 -0
- package/dist/routes/tokens.d.ts +14 -0
- package/dist/routes/tokens.d.ts.map +1 -0
- package/dist/routes/tokens.js +231 -0
- package/dist/routes/tokens.js.map +1 -0
- package/dist/routes/tools.d.ts +33 -0
- package/dist/routes/tools.d.ts.map +1 -0
- package/dist/routes/tools.js +380 -0
- package/dist/routes/tools.js.map +1 -0
- package/dist/routes/webhook-endpoints.d.ts +10 -0
- package/dist/routes/webhook-endpoints.d.ts.map +1 -0
- package/dist/routes/webhook-endpoints.js +407 -0
- package/dist/routes/webhook-endpoints.js.map +1 -0
- package/dist/routes/webhooks.d.ts +21 -0
- package/dist/routes/webhooks.d.ts.map +1 -0
- package/dist/routes/webhooks.js +228 -0
- package/dist/routes/webhooks.js.map +1 -0
- package/dist/s3-credential-binding.d.ts +54 -0
- package/dist/s3-credential-binding.d.ts.map +1 -0
- package/dist/s3-credential-binding.js +4 -0
- package/dist/s3-credential-binding.js.map +1 -0
- package/dist/secrets-binding.d.ts +281 -0
- package/dist/secrets-binding.d.ts.map +1 -0
- package/dist/secrets-binding.js +10 -0
- package/dist/secrets-binding.js.map +1 -0
- package/dist/secrets-provider-binding.d.ts +164 -0
- package/dist/secrets-provider-binding.d.ts.map +1 -0
- package/dist/secrets-provider-binding.js +4 -0
- package/dist/secrets-provider-binding.js.map +1 -0
- package/dist/session-store-binding.d.ts +148 -0
- package/dist/session-store-binding.d.ts.map +1 -0
- package/dist/session-store-binding.js +4 -0
- package/dist/session-store-binding.js.map +1 -0
- package/dist/signing-key-binding.d.ts +210 -0
- package/dist/signing-key-binding.d.ts.map +1 -0
- package/dist/signing-key-binding.js +4 -0
- package/dist/signing-key-binding.js.map +1 -0
- package/dist/state-store-binding.d.ts +53 -0
- package/dist/state-store-binding.d.ts.map +1 -0
- package/dist/state-store-binding.js +38 -0
- package/dist/state-store-binding.js.map +1 -0
- package/dist/supervisor-binding.d.ts +526 -0
- package/dist/supervisor-binding.d.ts.map +1 -0
- package/dist/supervisor-binding.js +4 -0
- package/dist/supervisor-binding.js.map +1 -0
- package/dist/tenant-host-access.d.ts +41 -0
- package/dist/tenant-host-access.d.ts.map +1 -0
- package/dist/tenant-host-access.js +42 -0
- package/dist/tenant-host-access.js.map +1 -0
- package/dist/token-admin.d.ts +99 -0
- package/dist/token-admin.d.ts.map +1 -0
- package/dist/token-admin.js +4 -0
- package/dist/token-admin.js.map +1 -0
- package/dist/tool-binding.d.ts +247 -0
- package/dist/tool-binding.d.ts.map +1 -0
- package/dist/tool-binding.js +4 -0
- package/dist/tool-binding.js.map +1 -0
- package/dist/trigger-binding.d.ts +13 -0
- package/dist/trigger-binding.d.ts.map +1 -0
- package/dist/trigger-binding.js +4 -0
- package/dist/trigger-binding.js.map +1 -0
- package/dist/types.d.ts +71 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/webhook-endpoint-binding.d.ts +230 -0
- package/dist/webhook-endpoint-binding.d.ts.map +1 -0
- package/dist/webhook-endpoint-binding.js +12 -0
- package/dist/webhook-endpoint-binding.js.map +1 -0
- package/dist/xml.d.ts +79 -0
- package/dist/xml.d.ts.map +1 -0
- package/dist/xml.js +115 -0
- package/dist/xml.js.map +1 -0
- package/openapi.json +29659 -0
- package/package.json +76 -4
- package/scripts/emit-openapi.mjs +44 -0
- package/src/adapter-binding.ts +204 -0
- package/src/agent-binding.ts +231 -0
- package/src/app.ts +1285 -0
- package/src/capability-binding.ts +83 -0
- package/src/cost-binding.ts +213 -0
- package/src/deployment-binding.ts +225 -0
- package/src/env-binding.ts +140 -0
- package/src/errors.ts +291 -0
- package/src/eval-run-binding.ts +209 -0
- package/src/eval-run-dispatcher.ts +497 -0
- package/src/eval-suite-binding.ts +257 -0
- package/src/event-bus-binding.ts +127 -0
- package/src/flow-binding.ts +213 -0
- package/src/guardrail-binding.ts +151 -0
- package/src/handler-binding.ts +132 -0
- package/src/hitl-binding.ts +172 -0
- package/src/identity-directory-binding.ts +128 -0
- package/src/identity-provider-binding.ts +203 -0
- package/src/image-registry-binding.ts +193 -0
- package/src/index.ts +606 -0
- package/src/key-management-binding.ts +91 -0
- package/src/mcp-endpoint-binding.ts +311 -0
- package/src/memory-binding.ts +239 -0
- package/src/middleware/auth.ts +437 -0
- package/src/middleware/authorize.ts +125 -0
- package/src/middleware/error-mapper.ts +37 -0
- package/src/middleware/idempotency.ts +160 -0
- package/src/middleware/principal.ts +64 -0
- package/src/middleware/public-run-routes.ts +50 -0
- package/src/middleware/request-id.ts +28 -0
- package/src/middleware/sigv4-verify.ts +374 -0
- package/src/middleware/sigv4.ts +165 -0
- package/src/openapi/generate.ts +307 -0
- package/src/openapi/operations.ts +5445 -0
- package/src/openapi/schemas.ts +6363 -0
- package/src/provenance-binding.ts +169 -0
- package/src/provider-binding.ts +196 -0
- package/src/public-run-token.ts +263 -0
- package/src/retention-binding.ts +78 -0
- package/src/reviewer-binding.ts +99 -0
- package/src/rotation-status-store.ts +209 -0
- package/src/routes/adapters.ts +319 -0
- package/src/routes/agents.ts +424 -0
- package/src/routes/approvals.ts +759 -0
- package/src/routes/artifacts.ts +317 -0
- package/src/routes/audit.ts +219 -0
- package/src/routes/auth.ts +806 -0
- package/src/routes/capabilities.ts +79 -0
- package/src/routes/compliance.ts +482 -0
- package/src/routes/conversations.ts +369 -0
- package/src/routes/cost.ts +327 -0
- package/src/routes/deployments.ts +1493 -0
- package/src/routes/env.ts +429 -0
- package/src/routes/eval-runs.ts +631 -0
- package/src/routes/eval-suites.ts +490 -0
- package/src/routes/event-triggers.ts +283 -0
- package/src/routes/flows.ts +423 -0
- package/src/routes/guardrails.ts +320 -0
- package/src/routes/identity.ts +203 -0
- package/src/routes/mcp.ts +940 -0
- package/src/routes/memory.ts +430 -0
- package/src/routes/observations.ts +175 -0
- package/src/routes/orgs.ts +273 -0
- package/src/routes/pagination.ts +51 -0
- package/src/routes/policies.ts +413 -0
- package/src/routes/projects.ts +634 -0
- package/src/routes/proposals.ts +719 -0
- package/src/routes/provenance.ts +406 -0
- package/src/routes/providers.ts +624 -0
- package/src/routes/public-run-tokens.ts +104 -0
- package/src/routes/retention.ts +193 -0
- package/src/routes/reviewers.ts +209 -0
- package/src/routes/runs.ts +981 -0
- package/src/routes/s3.ts +519 -0
- package/src/routes/schedules.ts +300 -0
- package/src/routes/scope-params.ts +133 -0
- package/src/routes/secret-ref.ts +52 -0
- package/src/routes/secrets.ts +975 -0
- package/src/routes/signing-keys.ts +259 -0
- package/src/routes/sse.ts +148 -0
- package/src/routes/teams.ts +584 -0
- package/src/routes/tenant.ts +530 -0
- package/src/routes/tokens.ts +285 -0
- package/src/routes/tools.ts +491 -0
- package/src/routes/webhook-endpoints.ts +534 -0
- package/src/routes/webhooks.ts +296 -0
- package/src/s3-credential-binding.ts +58 -0
- package/src/secrets-binding.ts +308 -0
- package/src/secrets-provider-binding.ts +167 -0
- package/src/session-store-binding.ts +163 -0
- package/src/signing-key-binding.ts +235 -0
- package/src/state-store-binding.ts +84 -0
- package/src/supervisor-binding.ts +554 -0
- package/src/tenant-host-access.ts +62 -0
- package/src/token-admin.ts +104 -0
- package/src/tool-binding.ts +274 -0
- package/src/trigger-binding.ts +38 -0
- package/src/types.ts +74 -0
- package/src/webhook-endpoint-binding.ts +246 -0
- package/src/xml.ts +196 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { Scope } from '@kindgi/platform';
|
|
2
|
+
import type { EnvName } from '@kindgi/types';
|
|
3
|
+
/**
|
|
4
|
+
* Rotation-status store — durable substrate for the
|
|
5
|
+
* async-rotation wire. When a
|
|
6
|
+
* `SecretProviderBinding.rotateSecret` call returns the
|
|
7
|
+
* `rotation-pending` variant, the HTTP route mints a `rotationId` via
|
|
8
|
+
* this store, records the pending status, and returns 202 with a
|
|
9
|
+
* `statusUrl` + `eventsUrl` a caller can poll or subscribe to.
|
|
10
|
+
*
|
|
11
|
+
* A background reaper (not owned by this store) drives the pending
|
|
12
|
+
* rotation to terminal by polling the provider with the recorded
|
|
13
|
+
* `resumeToken`, then calling `update({ status: 'succeeded' | 'failed',
|
|
14
|
+
* … })`. Subscribed SSE streams receive the update via `subscribe`.
|
|
15
|
+
*
|
|
16
|
+
* The bundled implementation (`createInMemoryRotationStatusStore`) is
|
|
17
|
+
* in-memory only (dev + tests). Production deployments plug in a durable
|
|
18
|
+
* adapter that survives process restarts — an async rotation can take
|
|
19
|
+
* minutes to hours, so process-local state is not sufficient.
|
|
20
|
+
*/
|
|
21
|
+
export interface RotationStatusStore {
|
|
22
|
+
/**
|
|
23
|
+
* Mint a new rotation-status row. Returns the freshly-minted
|
|
24
|
+
* `rotationId` (UUID) that the wire response echoes back to the
|
|
25
|
+
* caller. `resumeToken` + `provider` are the opaque provider-side
|
|
26
|
+
* handles the reaper uses to poll the async workflow; the wire
|
|
27
|
+
* response NEVER exposes them.
|
|
28
|
+
*/
|
|
29
|
+
create(input: RotationStatusCreateInput): Promise<{
|
|
30
|
+
readonly rotationId: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** Read the current status, or `null` when unknown / cross-scope. */
|
|
33
|
+
get(input: RotationStatusGetInput): Promise<RotationStatus | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Terminal-transition write. Called by the reaper (or an explicit
|
|
36
|
+
* admin op) when the async workflow completes. Publishes to every
|
|
37
|
+
* live SSE subscription for the `rotationId`.
|
|
38
|
+
*/
|
|
39
|
+
update(input: RotationStatusUpdateInput): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Subscribe to lifecycle updates for a single `rotationId`. Returns
|
|
42
|
+
* an unsubscribe function that the caller MUST call on stream close
|
|
43
|
+
* / client disconnect to avoid memory leaks.
|
|
44
|
+
*/
|
|
45
|
+
subscribe(input: RotationStatusSubscribeInput): () => void;
|
|
46
|
+
}
|
|
47
|
+
export interface RotationStatusCreateInput {
|
|
48
|
+
readonly scope: Scope;
|
|
49
|
+
readonly envName: EnvName;
|
|
50
|
+
readonly name: string;
|
|
51
|
+
readonly provider: string;
|
|
52
|
+
readonly resumeToken: string;
|
|
53
|
+
}
|
|
54
|
+
export interface RotationStatusGetInput {
|
|
55
|
+
readonly scope: Scope;
|
|
56
|
+
readonly envName: EnvName;
|
|
57
|
+
readonly name: string;
|
|
58
|
+
readonly rotationId: string;
|
|
59
|
+
}
|
|
60
|
+
export interface RotationStatusUpdateInput {
|
|
61
|
+
readonly rotationId: string;
|
|
62
|
+
readonly status: 'succeeded' | 'failed';
|
|
63
|
+
readonly newVersionId?: number;
|
|
64
|
+
readonly oldVersionId?: number;
|
|
65
|
+
readonly error?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface RotationStatusSubscribeInput {
|
|
68
|
+
readonly rotationId: string;
|
|
69
|
+
readonly onUpdate: (status: RotationStatus) => void;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Wire-safe rotation-status shape. `startedAt` + `updatedAt` are ISO
|
|
73
|
+
* 8601 strings. Terminal states populate `newVersionId` /
|
|
74
|
+
* `oldVersionId` (on `succeeded`) or `error` (on `failed`); pending
|
|
75
|
+
* states leave them absent.
|
|
76
|
+
*/
|
|
77
|
+
export interface RotationStatus {
|
|
78
|
+
readonly rotationId: string;
|
|
79
|
+
readonly status: 'pending' | 'succeeded' | 'failed';
|
|
80
|
+
readonly startedAt: string;
|
|
81
|
+
readonly updatedAt: string;
|
|
82
|
+
readonly newVersionId?: number;
|
|
83
|
+
readonly oldVersionId?: number;
|
|
84
|
+
readonly error?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* In-memory reference `RotationStatusStore` — dev + tests only.
|
|
88
|
+
* Retains a `Map<rotationId, InternalRow>` for the lifetime of the
|
|
89
|
+
* process; multi-pod deployments MUST plug in a durable adapter (the
|
|
90
|
+
* rotation-status row must survive between the pod that minted the
|
|
91
|
+
* `rotationId` and any pod handling a poll or SSE subscribe).
|
|
92
|
+
*/
|
|
93
|
+
export declare function createInMemoryRotationStatusStore(options?: {
|
|
94
|
+
readonly now?: () => number;
|
|
95
|
+
}): RotationStatusStore;
|
|
96
|
+
//# sourceMappingURL=rotation-status-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rotation-status-store.d.ts","sourceRoot":"","sources":["../src/rotation-status-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEnF,qEAAqE;IACrE,GAAG,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEnE;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CACrD;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,CAAC,EAAE;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B,GAAG,mBAAmB,CA0FtB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
/**
|
|
5
|
+
* In-memory reference `RotationStatusStore` — dev + tests only.
|
|
6
|
+
* Retains a `Map<rotationId, InternalRow>` for the lifetime of the
|
|
7
|
+
* process; multi-pod deployments MUST plug in a durable adapter (the
|
|
8
|
+
* rotation-status row must survive between the pod that minted the
|
|
9
|
+
* `rotationId` and any pod handling a poll or SSE subscribe).
|
|
10
|
+
*/
|
|
11
|
+
export function createInMemoryRotationStatusStore(options) {
|
|
12
|
+
const rows = new Map();
|
|
13
|
+
const subscribers = new Map();
|
|
14
|
+
const now = options?.now ?? (() => Date.now());
|
|
15
|
+
const toStatus = (row) => ({
|
|
16
|
+
rotationId: row.rotationId,
|
|
17
|
+
status: row.status,
|
|
18
|
+
startedAt: row.startedAt,
|
|
19
|
+
updatedAt: row.updatedAt,
|
|
20
|
+
...(row.newVersionId !== undefined && { newVersionId: row.newVersionId }),
|
|
21
|
+
...(row.oldVersionId !== undefined && { oldVersionId: row.oldVersionId }),
|
|
22
|
+
...(row.error !== undefined && { error: row.error }),
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
async create(input) {
|
|
26
|
+
const rotationId = randomUUID();
|
|
27
|
+
const ts = new Date(now()).toISOString();
|
|
28
|
+
rows.set(rotationId, {
|
|
29
|
+
rotationId,
|
|
30
|
+
scopeKey: scopeKey(input.scope),
|
|
31
|
+
envName: input.envName,
|
|
32
|
+
name: input.name,
|
|
33
|
+
provider: input.provider,
|
|
34
|
+
resumeToken: input.resumeToken,
|
|
35
|
+
status: 'pending',
|
|
36
|
+
startedAt: ts,
|
|
37
|
+
updatedAt: ts,
|
|
38
|
+
});
|
|
39
|
+
return { rotationId };
|
|
40
|
+
},
|
|
41
|
+
async get(input) {
|
|
42
|
+
const row = rows.get(input.rotationId);
|
|
43
|
+
if (row === undefined)
|
|
44
|
+
return null;
|
|
45
|
+
// Cross-scope + cross-name reads return null — a caller looking
|
|
46
|
+
// for the rotation of secret X in project A cannot inadvertently
|
|
47
|
+
// observe the rotation of secret Y in project B.
|
|
48
|
+
if (row.scopeKey !== scopeKey(input.scope))
|
|
49
|
+
return null;
|
|
50
|
+
if (row.envName !== input.envName)
|
|
51
|
+
return null;
|
|
52
|
+
if (row.name !== input.name)
|
|
53
|
+
return null;
|
|
54
|
+
return toStatus(row);
|
|
55
|
+
},
|
|
56
|
+
async update(input) {
|
|
57
|
+
const row = rows.get(input.rotationId);
|
|
58
|
+
if (row === undefined)
|
|
59
|
+
return;
|
|
60
|
+
row.status = input.status;
|
|
61
|
+
row.updatedAt = new Date(now()).toISOString();
|
|
62
|
+
if (input.newVersionId !== undefined)
|
|
63
|
+
row.newVersionId = input.newVersionId;
|
|
64
|
+
if (input.oldVersionId !== undefined)
|
|
65
|
+
row.oldVersionId = input.oldVersionId;
|
|
66
|
+
if (input.error !== undefined)
|
|
67
|
+
row.error = input.error;
|
|
68
|
+
const status = toStatus(row);
|
|
69
|
+
const subs = subscribers.get(input.rotationId);
|
|
70
|
+
if (subs !== undefined) {
|
|
71
|
+
for (const cb of subs) {
|
|
72
|
+
try {
|
|
73
|
+
cb(status);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Subscriber-side crashes MUST NOT poison the store.
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
subscribe(input) {
|
|
82
|
+
const set = subscribers.get(input.rotationId) ?? new Set();
|
|
83
|
+
set.add(input.onUpdate);
|
|
84
|
+
subscribers.set(input.rotationId, set);
|
|
85
|
+
return () => {
|
|
86
|
+
const cur = subscribers.get(input.rotationId);
|
|
87
|
+
if (cur === undefined)
|
|
88
|
+
return;
|
|
89
|
+
cur.delete(input.onUpdate);
|
|
90
|
+
if (cur.size === 0)
|
|
91
|
+
subscribers.delete(input.rotationId);
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function scopeKey(s) {
|
|
97
|
+
switch (s.kind) {
|
|
98
|
+
case 'tenant':
|
|
99
|
+
return `tenant:${s.tenantId}`;
|
|
100
|
+
case 'org':
|
|
101
|
+
return `org:${s.tenantId}:${s.orgId}`;
|
|
102
|
+
case 'project':
|
|
103
|
+
return `project:${s.tenantId}:${s.projectId}`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=rotation-status-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rotation-status-store.js","sourceRoot":"","sources":["../src/rotation-status-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import type { AdapterFactoryRegistry } from '@kindgi/capabilities';
|
|
3
|
+
import { type AdapterRegistryBinding } from '../adapter-binding.js';
|
|
4
|
+
import type { AppEnv } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Adapters resource routes — part of the admin control plane. Unified
|
|
7
|
+
* surface over every adapter kind the deployment wired: model
|
|
8
|
+
* providers, embedding providers, blob storage, sandbox providers,
|
|
9
|
+
* eval judges.
|
|
10
|
+
*
|
|
11
|
+
* Read-only over HTTP, plus a smoke-test probe and a prepare stream:
|
|
12
|
+
*
|
|
13
|
+
* - `GET /v1/adapters` — cursor-paginated list with
|
|
14
|
+
* optional `kind` / `status` filters.
|
|
15
|
+
* - `GET /v1/adapters/:adapterId` — single adapter (404 if unknown).
|
|
16
|
+
* - `POST /v1/adapters/:adapterId/test` — probe. Idempotency-Key applies.
|
|
17
|
+
* - `POST /v1/adapters/:adapterId/prepare` — SSE stream of the
|
|
18
|
+
* adapter's `prepare()` events.
|
|
19
|
+
*
|
|
20
|
+
* Adapter lifecycle (register / unregister / reconfigure) is a
|
|
21
|
+
* deployment concern — see `AdapterRegistryBinding` JSDoc. The routes
|
|
22
|
+
* here never mutate the wired set.
|
|
23
|
+
*
|
|
24
|
+
* Probe failures return HTTP 200 with `ok: false` — a failed probe is a
|
|
25
|
+
* valid observation, not a server error (`docs/API-ROUTE-CONVENTIONS.md` §4).
|
|
26
|
+
* The route only maps 5xx when the probe machinery itself broke.
|
|
27
|
+
*/
|
|
28
|
+
export declare function adaptersRouter(binding: AdapterRegistryBinding, factories?: AdapterFactoryRegistry): Hono<AppEnv>;
|
|
29
|
+
//# sourceMappingURL=adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/routes/adapters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,sBAAsB,EAAgB,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EAKL,KAAK,sBAAsB,EAG5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,sBAAsB,EAC/B,SAAS,CAAC,EAAE,sBAAsB,GACjC,IAAI,CAAC,MAAM,CAAC,CAyPd"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
import { Hono } from 'hono';
|
|
4
|
+
import { streamSSE } from 'hono/streaming';
|
|
5
|
+
import { ADAPTER_KINDS, ADAPTER_STATUSES, } from '../adapter-binding.js';
|
|
6
|
+
import { statusFor, toWireError } from '../errors.js';
|
|
7
|
+
import { clampLimit } from './pagination.js';
|
|
8
|
+
/**
|
|
9
|
+
* Adapters resource routes — part of the admin control plane. Unified
|
|
10
|
+
* surface over every adapter kind the deployment wired: model
|
|
11
|
+
* providers, embedding providers, blob storage, sandbox providers,
|
|
12
|
+
* eval judges.
|
|
13
|
+
*
|
|
14
|
+
* Read-only over HTTP, plus a smoke-test probe and a prepare stream:
|
|
15
|
+
*
|
|
16
|
+
* - `GET /v1/adapters` — cursor-paginated list with
|
|
17
|
+
* optional `kind` / `status` filters.
|
|
18
|
+
* - `GET /v1/adapters/:adapterId` — single adapter (404 if unknown).
|
|
19
|
+
* - `POST /v1/adapters/:adapterId/test` — probe. Idempotency-Key applies.
|
|
20
|
+
* - `POST /v1/adapters/:adapterId/prepare` — SSE stream of the
|
|
21
|
+
* adapter's `prepare()` events.
|
|
22
|
+
*
|
|
23
|
+
* Adapter lifecycle (register / unregister / reconfigure) is a
|
|
24
|
+
* deployment concern — see `AdapterRegistryBinding` JSDoc. The routes
|
|
25
|
+
* here never mutate the wired set.
|
|
26
|
+
*
|
|
27
|
+
* Probe failures return HTTP 200 with `ok: false` — a failed probe is a
|
|
28
|
+
* valid observation, not a server error (`docs/API-ROUTE-CONVENTIONS.md` §4).
|
|
29
|
+
* The route only maps 5xx when the probe machinery itself broke.
|
|
30
|
+
*/
|
|
31
|
+
export function adaptersRouter(binding, factories) {
|
|
32
|
+
const r = new Hono();
|
|
33
|
+
// ---------- GET / (list, cursor-paginated) ----------
|
|
34
|
+
r.get('/', async (c) => {
|
|
35
|
+
const requestId = c.get('requestId');
|
|
36
|
+
const tenantId = c.get('tenantId');
|
|
37
|
+
const limit = clampLimit(c.req.query('limit'));
|
|
38
|
+
const cursorRaw = c.req.query('cursor');
|
|
39
|
+
const kindRaw = c.req.query('kind');
|
|
40
|
+
const statusRaw = c.req.query('status');
|
|
41
|
+
let kindFilter;
|
|
42
|
+
if (kindRaw !== undefined && kindRaw.length > 0) {
|
|
43
|
+
if (!ADAPTER_KINDS.includes(kindRaw)) {
|
|
44
|
+
c.status(statusFor('bad-input'));
|
|
45
|
+
return c.json(toWireError({
|
|
46
|
+
code: 'bad-input',
|
|
47
|
+
message: `\`kind\` "${kindRaw}" is not a known adapter kind (one of: ${ADAPTER_KINDS.join(', ')})`,
|
|
48
|
+
}, requestId));
|
|
49
|
+
}
|
|
50
|
+
kindFilter = kindRaw;
|
|
51
|
+
}
|
|
52
|
+
let statusFilter;
|
|
53
|
+
if (statusRaw !== undefined && statusRaw.length > 0) {
|
|
54
|
+
if (!ADAPTER_STATUSES.includes(statusRaw)) {
|
|
55
|
+
c.status(statusFor('bad-input'));
|
|
56
|
+
return c.json(toWireError({
|
|
57
|
+
code: 'bad-input',
|
|
58
|
+
message: `\`status\` "${statusRaw}" is not a known adapter status (one of: ${ADAPTER_STATUSES.join(', ')})`,
|
|
59
|
+
}, requestId));
|
|
60
|
+
}
|
|
61
|
+
statusFilter = statusRaw;
|
|
62
|
+
}
|
|
63
|
+
const hasFilter = kindFilter !== undefined || statusFilter !== undefined;
|
|
64
|
+
const page = await binding.list({
|
|
65
|
+
tenantId,
|
|
66
|
+
limit,
|
|
67
|
+
...(cursorRaw !== undefined && cursorRaw.length > 0 && { cursor: cursorRaw }),
|
|
68
|
+
...(hasFilter && {
|
|
69
|
+
filter: {
|
|
70
|
+
...(kindFilter !== undefined && { kind: kindFilter }),
|
|
71
|
+
...(statusFilter !== undefined && { status: statusFilter }),
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
return c.json({
|
|
76
|
+
data: page.data.map(serializeAdapter),
|
|
77
|
+
hasMore: page.nextCursor !== undefined,
|
|
78
|
+
...(page.nextCursor !== undefined && { nextCursor: page.nextCursor }),
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
// ---------- GET /:adapterId ----------
|
|
82
|
+
r.get('/:adapterId', async (c) => {
|
|
83
|
+
const requestId = c.get('requestId');
|
|
84
|
+
const tenantId = c.get('tenantId');
|
|
85
|
+
const adapterId = c.req.param('adapterId');
|
|
86
|
+
const adapter = await binding.get({ tenantId, adapterId });
|
|
87
|
+
if (adapter === null) {
|
|
88
|
+
c.status(statusFor('adapter-not-found'));
|
|
89
|
+
return c.json(toWireError({
|
|
90
|
+
code: 'adapter-not-found',
|
|
91
|
+
message: `No adapter registered with id "${adapterId}"`,
|
|
92
|
+
adapterId,
|
|
93
|
+
}, requestId));
|
|
94
|
+
}
|
|
95
|
+
return c.json(serializeAdapter(adapter));
|
|
96
|
+
});
|
|
97
|
+
// ---------- POST /:adapterId/test ----------
|
|
98
|
+
r.post('/:adapterId/test', async (c) => {
|
|
99
|
+
const requestId = c.get('requestId');
|
|
100
|
+
const tenantId = c.get('tenantId');
|
|
101
|
+
const adapterId = c.req.param('adapterId');
|
|
102
|
+
// Body is optional. Empty body OR `{}` OR omitted body → no
|
|
103
|
+
// `input` handed to the binding (it picks the default probe).
|
|
104
|
+
let probeInput;
|
|
105
|
+
const raw = await c.req.text();
|
|
106
|
+
if (raw.length > 0) {
|
|
107
|
+
let parsed;
|
|
108
|
+
try {
|
|
109
|
+
parsed = JSON.parse(raw);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
c.status(statusFor('bad-input'));
|
|
113
|
+
return c.json(toWireError({ code: 'bad-input', message: 'Request body must be valid JSON' }, requestId));
|
|
114
|
+
}
|
|
115
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
116
|
+
c.status(statusFor('bad-input'));
|
|
117
|
+
return c.json(toWireError({ code: 'bad-input', message: 'Request body must be a JSON object' }, requestId));
|
|
118
|
+
}
|
|
119
|
+
probeInput = parsed;
|
|
120
|
+
}
|
|
121
|
+
const outcome = await binding.test({
|
|
122
|
+
tenantId,
|
|
123
|
+
adapterId,
|
|
124
|
+
...(probeInput !== undefined && { input: probeInput }),
|
|
125
|
+
});
|
|
126
|
+
if (outcome === null) {
|
|
127
|
+
c.status(statusFor('adapter-not-found'));
|
|
128
|
+
return c.json(toWireError({
|
|
129
|
+
code: 'adapter-not-found',
|
|
130
|
+
message: `No adapter registered with id "${adapterId}"`,
|
|
131
|
+
adapterId,
|
|
132
|
+
}, requestId));
|
|
133
|
+
}
|
|
134
|
+
// Probe failure is data — HTTP 200 with `ok: false` in the body.
|
|
135
|
+
return c.json(serializeTestOutcome(outcome));
|
|
136
|
+
});
|
|
137
|
+
// ---------- POST /:adapterId/prepare ----------
|
|
138
|
+
// SSE stream — iterates `entry.prepare(params)` and pushes each
|
|
139
|
+
// PrepareEvent as an SSE `data:` line. Returns 404 if the adapter
|
|
140
|
+
// id is unknown to the in-process factory registry, 400 if the
|
|
141
|
+
// adapter has no `prepare()` (e.g. anthropic — nothing to
|
|
142
|
+
// download), and 501 if the deployment didn't wire an
|
|
143
|
+
// `adapterFactories` binding at all.
|
|
144
|
+
r.post('/:adapterId/prepare', async (c) => {
|
|
145
|
+
const requestId = c.get('requestId');
|
|
146
|
+
const adapterId = c.req.param('adapterId');
|
|
147
|
+
if (factories === undefined) {
|
|
148
|
+
c.status(statusFor('bad-input'));
|
|
149
|
+
return c.json(toWireError({
|
|
150
|
+
code: 'bad-input',
|
|
151
|
+
message: 'Adapter prepare is not available — this deployment did not wire an adapterFactories binding.',
|
|
152
|
+
}, requestId));
|
|
153
|
+
}
|
|
154
|
+
const entry = factories.get(adapterId);
|
|
155
|
+
if (entry === undefined) {
|
|
156
|
+
c.status(statusFor('adapter-not-found'));
|
|
157
|
+
return c.json(toWireError({
|
|
158
|
+
code: 'adapter-not-found',
|
|
159
|
+
message: `No adapter registered with id "${adapterId}"`,
|
|
160
|
+
adapterId,
|
|
161
|
+
}, requestId));
|
|
162
|
+
}
|
|
163
|
+
if (entry.prepare === undefined) {
|
|
164
|
+
c.status(statusFor('bad-input'));
|
|
165
|
+
return c.json(toWireError({
|
|
166
|
+
code: 'bad-input',
|
|
167
|
+
message: `Adapter "${adapterId}" does not require preparation (no prepare() implemented).`,
|
|
168
|
+
}, requestId));
|
|
169
|
+
}
|
|
170
|
+
// Body carries adapter-specific `params` — passed through
|
|
171
|
+
// unchanged (e.g. `{model: 'smollm2-360m'}` for in-process).
|
|
172
|
+
let params;
|
|
173
|
+
const bodyText = await c.req.text();
|
|
174
|
+
if (bodyText.length > 0) {
|
|
175
|
+
try {
|
|
176
|
+
const parsed = JSON.parse(bodyText);
|
|
177
|
+
if (parsed.params !== undefined) {
|
|
178
|
+
if (parsed.params === null || typeof parsed.params !== 'object') {
|
|
179
|
+
c.status(statusFor('bad-input'));
|
|
180
|
+
return c.json(toWireError({ code: 'bad-input', message: '`params` must be an object when present.' }, requestId));
|
|
181
|
+
}
|
|
182
|
+
params = parsed.params;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
c.status(statusFor('bad-input'));
|
|
187
|
+
return c.json(toWireError({ code: 'bad-input', message: 'Request body must be valid JSON.' }, requestId));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
const prepareStream = entry.prepare(params);
|
|
191
|
+
return streamSSE(c, async (stream) => {
|
|
192
|
+
try {
|
|
193
|
+
for await (const event of prepareStream) {
|
|
194
|
+
await stream.writeSSE({
|
|
195
|
+
event: event.kind,
|
|
196
|
+
data: JSON.stringify(event),
|
|
197
|
+
});
|
|
198
|
+
if (event.kind === 'ready' || event.kind === 'error')
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
204
|
+
const errorEvent = { kind: 'error', message };
|
|
205
|
+
await stream.writeSSE({ event: 'error', data: JSON.stringify(errorEvent) });
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
return r;
|
|
210
|
+
}
|
|
211
|
+
function serializeAdapter(a) {
|
|
212
|
+
return {
|
|
213
|
+
adapterId: a.adapterId,
|
|
214
|
+
kind: a.kind,
|
|
215
|
+
name: a.name,
|
|
216
|
+
version: a.version,
|
|
217
|
+
capabilities: a.capabilities,
|
|
218
|
+
status: a.status,
|
|
219
|
+
...(a.config !== undefined && { config: a.config }),
|
|
220
|
+
...(a.statusReason !== undefined && { statusReason: a.statusReason }),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function serializeTestOutcome(o) {
|
|
224
|
+
return {
|
|
225
|
+
ok: o.ok,
|
|
226
|
+
latencyMs: o.latencyMs,
|
|
227
|
+
probe: o.probe,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/routes/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import type { AgentRegistryBinding } from '../agent-binding.js';
|
|
3
|
+
import type { Authorizer } from '../middleware/authorize.js';
|
|
4
|
+
import type { AppEnv } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Agents resource routes.
|
|
7
|
+
*
|
|
8
|
+
* Registry storage is caller-plugged via `AgentRegistryBinding`. The
|
|
9
|
+
* API package does not own persistence — the binding implementation
|
|
10
|
+
* supplies the store (tests wrap the in-memory `AgentRegistry` from
|
|
11
|
+
* `@kindgi/agents`).
|
|
12
|
+
*
|
|
13
|
+
* Publish is data-as-code: the body is a full `DefineAgentSpec` (the
|
|
14
|
+
* same value `defineAgent(...)` accepts).
|
|
15
|
+
*/
|
|
16
|
+
export declare function agentsRouter(binding: AgentRegistryBinding, authorizer?: Authorizer): Hono<AppEnv>;
|
|
17
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAwXjG"}
|