@kindgi/api 0.0.0-bootstrap.0 → 0.1.1
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 +397 -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 +268 -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 +20 -0
- package/dist/middleware/error-mapper.d.ts.map +1 -0
- package/dist/middleware/error-mapper.js +34 -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 +5050 -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 +705 -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 +29649 -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 +1286 -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 +295 -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 +40 -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 +5444 -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 +892 -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
package/dist/errors.js
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* Maps a domain error `code` to the HTTP status the route layer should
|
|
5
|
+
* return. Codes not in this map fall through to `500` — the middleware
|
|
6
|
+
* treats that as a bug (unmapped code) rather than a plausible domain
|
|
7
|
+
* error. New codes MUST have a row here.
|
|
8
|
+
*/
|
|
9
|
+
export const ERROR_CODE_TO_STATUS = {
|
|
10
|
+
// 400 — bad request
|
|
11
|
+
'validation-failed': 400,
|
|
12
|
+
'unknown-field': 400,
|
|
13
|
+
'bad-input': 400,
|
|
14
|
+
'unresolved-tool': 400,
|
|
15
|
+
'unresolved-guardrail': 400,
|
|
16
|
+
'schema-validation-failed': 400,
|
|
17
|
+
// Platform hierarchy scope filter.
|
|
18
|
+
'scope-invalid': 400,
|
|
19
|
+
// 401 — auth
|
|
20
|
+
'auth-missing': 401,
|
|
21
|
+
'auth-expired': 401,
|
|
22
|
+
'auth-revoked': 401,
|
|
23
|
+
// 403
|
|
24
|
+
'permission-denied': 403,
|
|
25
|
+
// A deployment refuses tenant configuration that reaches its host
|
|
26
|
+
// (KINDGI_TENANT_HOST_ACCESS): a stdio MCP endpoint.
|
|
27
|
+
'host-access-denied': 403,
|
|
28
|
+
// 404
|
|
29
|
+
'not-found': 404,
|
|
30
|
+
'run-not-found': 404,
|
|
31
|
+
'agent-not-found': 404,
|
|
32
|
+
'conversation-not-found': 404,
|
|
33
|
+
'tool-not-found': 404,
|
|
34
|
+
'guardrail-not-found': 404,
|
|
35
|
+
'fact-not-found': 404,
|
|
36
|
+
'flow-not-found': 404,
|
|
37
|
+
// 409 — conflict
|
|
38
|
+
'already-terminal': 409,
|
|
39
|
+
'run-already-terminal': 409,
|
|
40
|
+
'run-lease-lost': 409,
|
|
41
|
+
'idempotency-key-body-mismatch': 409,
|
|
42
|
+
'hitl-required': 409,
|
|
43
|
+
'duplicate-node-id': 409,
|
|
44
|
+
'duplicate-edge-id': 409,
|
|
45
|
+
'agent-version-mismatch': 409,
|
|
46
|
+
'agent-already-registered': 409,
|
|
47
|
+
'agent-gone': 410,
|
|
48
|
+
'flow-gone': 410,
|
|
49
|
+
'policy-gone': 410,
|
|
50
|
+
'eval-suite-gone': 410,
|
|
51
|
+
'tool-gone': 410,
|
|
52
|
+
'tool-already-registered': 409,
|
|
53
|
+
'guardrail-already-registered': 409,
|
|
54
|
+
'flow-already-registered': 409,
|
|
55
|
+
'conversation-closed': 409,
|
|
56
|
+
'invalid-agent': 400,
|
|
57
|
+
'invalid-tool-definition': 400,
|
|
58
|
+
'invalid-schema': 400,
|
|
59
|
+
'unknown-effect': 400,
|
|
60
|
+
'invalid-guardrail': 400,
|
|
61
|
+
// 422 — unprocessable entity
|
|
62
|
+
'guardrail-violation': 422,
|
|
63
|
+
'agent-turn-aborted': 422,
|
|
64
|
+
'budget-exceeded': 422,
|
|
65
|
+
'output-schema-violation': 422,
|
|
66
|
+
'model-invocation-failed': 422,
|
|
67
|
+
'tool-invocation-failed': 422,
|
|
68
|
+
'capability-routing-failed': 422,
|
|
69
|
+
'runtime-not-configured': 422,
|
|
70
|
+
// A run the runtime can't start or resume yet: a flow with a node no
|
|
71
|
+
// handler is bound for, or a run shape the host's run handler doesn't
|
|
72
|
+
// support.
|
|
73
|
+
'flow-unbound': 422,
|
|
74
|
+
'flow-runs-not-supported': 422,
|
|
75
|
+
'flow-resume-not-supported': 422,
|
|
76
|
+
// `POST /v1/runs/{runId}/resume` in this release: every waitpoint
|
|
77
|
+
// belongs to an approval (decided through the approvals routes, which
|
|
78
|
+
// check the reviewer and record the decision) or to the runtime itself.
|
|
79
|
+
'run-resume-not-supported': 422,
|
|
80
|
+
// 429 — rate limit. No route in this package emits it; a rate limiter
|
|
81
|
+
// in front of the routes can.
|
|
82
|
+
'rate-limit-exceeded': 429,
|
|
83
|
+
// 500 — server
|
|
84
|
+
'internal-server-error': 500,
|
|
85
|
+
'journal-error': 500,
|
|
86
|
+
stuck: 500,
|
|
87
|
+
// Waitpoint domain: "no pending token" or "already resolved" are
|
|
88
|
+
// 409-shaped (a caller conflict with the run's current state).
|
|
89
|
+
'waitpoint-error': 409,
|
|
90
|
+
// HITL (approvals + reviewers).
|
|
91
|
+
'approval-not-found': 404,
|
|
92
|
+
'reviewer-not-found': 404,
|
|
93
|
+
'reviewer-deactivated': 409,
|
|
94
|
+
'insufficient-role': 403,
|
|
95
|
+
'approval-terminal': 409,
|
|
96
|
+
'approval-already-decided': 409,
|
|
97
|
+
'invalid-transition': 409,
|
|
98
|
+
'audit-bundle-not-found': 404,
|
|
99
|
+
'approval-not-decided': 409,
|
|
100
|
+
'export-key-error': 500,
|
|
101
|
+
'persistence-error': 500,
|
|
102
|
+
// Supervisor observations query — same discriminants.
|
|
103
|
+
'observation-not-found': 404,
|
|
104
|
+
// Provenance routes.
|
|
105
|
+
'provenance-not-found': 404,
|
|
106
|
+
'signing-not-configured': 404,
|
|
107
|
+
'signing-key-not-found': 404,
|
|
108
|
+
'signing-key-conflict': 409,
|
|
109
|
+
'signing-key-revoked': 409,
|
|
110
|
+
'signing-key-algorithm-unsupported': 400,
|
|
111
|
+
'signing-key-store-error': 500,
|
|
112
|
+
// Supervisor proposals lifecycle.
|
|
113
|
+
'proposal-not-found': 404,
|
|
114
|
+
'proposal-invalid-state-transition': 409,
|
|
115
|
+
'proposal-terminal': 409,
|
|
116
|
+
'baseline-mismatch': 422,
|
|
117
|
+
'apply-change-failed': 422,
|
|
118
|
+
'ground-layer-violation': 422,
|
|
119
|
+
'agent-not-in-registry': 422,
|
|
120
|
+
'version-already-exists': 409,
|
|
121
|
+
'invalid-new-version': 400,
|
|
122
|
+
'supervisor-header-missing': 400,
|
|
123
|
+
// Artifacts.
|
|
124
|
+
'blob-not-found': 404,
|
|
125
|
+
'blob-hash-mismatch': 400,
|
|
126
|
+
'blob-size-mismatch': 400,
|
|
127
|
+
'blob-storage-error': 500,
|
|
128
|
+
// Admin plane — capabilities + providers.
|
|
129
|
+
'capability-not-found': 404,
|
|
130
|
+
'provider-not-found': 404,
|
|
131
|
+
'provider-already-registered': 409,
|
|
132
|
+
'invalid-provider': 400,
|
|
133
|
+
// Admin plane — cost readback.
|
|
134
|
+
'cost-record-not-found': 404,
|
|
135
|
+
// Admin plane — adapters.
|
|
136
|
+
'adapter-not-found': 404,
|
|
137
|
+
// Admin plane — policies.
|
|
138
|
+
'policy-not-found': 404,
|
|
139
|
+
'policy-already-registered': 409,
|
|
140
|
+
// Admin plane — eval suites.
|
|
141
|
+
'eval-suite-not-found': 404,
|
|
142
|
+
'eval-suite-already-registered': 409,
|
|
143
|
+
// Admin plane — eval-run dispatch.
|
|
144
|
+
'eval-run-not-found': 404,
|
|
145
|
+
'eval-run-already-terminal': 409,
|
|
146
|
+
'dispatcher-not-registered': 422,
|
|
147
|
+
'dispatcher-input-invalid': 400,
|
|
148
|
+
// Interop plane — MCP endpoint registry.
|
|
149
|
+
'mcp-endpoint-not-found': 404,
|
|
150
|
+
'mcp-endpoint-already-registered': 409,
|
|
151
|
+
'invalid-mcp-endpoint': 400,
|
|
152
|
+
// Interop plane — MCP resources + prompts.
|
|
153
|
+
'mcp-resource-not-found': 404,
|
|
154
|
+
'mcp-prompt-not-found': 404,
|
|
155
|
+
'mcp-resource-read-failed': 502,
|
|
156
|
+
'mcp-prompt-get-failed': 502,
|
|
157
|
+
// Auth surface — OAuth + sessions.
|
|
158
|
+
'session-not-found': 404,
|
|
159
|
+
'session-revoked': 409,
|
|
160
|
+
// NOTE: `session-expired` is a middleware-tier auth failure (401) —
|
|
161
|
+
// the token authenticated but the session's absolute TTL has elapsed.
|
|
162
|
+
// Distinct from `auth-expired` (bearer-token expiry) so callers can
|
|
163
|
+
// tell static bearer-token expiry from session TTL.
|
|
164
|
+
'session-expired': 401,
|
|
165
|
+
'session-inactive': 401,
|
|
166
|
+
'identity-provider-not-found': 404,
|
|
167
|
+
'identity-provider-already-registered': 409,
|
|
168
|
+
'oauth-state-invalid': 400,
|
|
169
|
+
'oauth-code-exchange-failed': 422,
|
|
170
|
+
'oauth-refresh-failed': 422,
|
|
171
|
+
'oauth-refresh-not-supported': 422,
|
|
172
|
+
'invalid-provider-config': 400,
|
|
173
|
+
'auth-not-session-token': 400,
|
|
174
|
+
// OAuth redirect URIs + refresh.
|
|
175
|
+
'redirect-uri-not-allowed': 400,
|
|
176
|
+
'redirect-uri-mismatch': 400,
|
|
177
|
+
'refresh-token-invalid': 401,
|
|
178
|
+
// Admin plane — identity directory.
|
|
179
|
+
'identity-user-not-found': 404,
|
|
180
|
+
'identity-revoke-failed': 500,
|
|
181
|
+
// Signed deployments.
|
|
182
|
+
'signature-invalid': 400,
|
|
183
|
+
'signer-not-trusted': 403,
|
|
184
|
+
'image-unverifiable': 400,
|
|
185
|
+
'deployment-validation-failed': 400,
|
|
186
|
+
'deployment-not-found': 404,
|
|
187
|
+
// Compliance routes.
|
|
188
|
+
'compliance-evidence-not-found': 404,
|
|
189
|
+
'compliance-export-failed': 500,
|
|
190
|
+
// Platform hierarchy.
|
|
191
|
+
'org-not-found': 404,
|
|
192
|
+
'team-not-found': 404,
|
|
193
|
+
'project-not-found': 404,
|
|
194
|
+
'team-membership-not-found': 404,
|
|
195
|
+
'project-membership-not-found': 404,
|
|
196
|
+
'tenant-not-found': 404,
|
|
197
|
+
'tenant-config-not-found': 404,
|
|
198
|
+
'tenant-config-revision-conflict': 409,
|
|
199
|
+
'authz-denied': 403,
|
|
200
|
+
'authz-backend-unavailable': 503,
|
|
201
|
+
// A tenant policy an agent turn must apply couldn't be (its store
|
|
202
|
+
// failed, or a stored spec is invalid): the turn fails closed.
|
|
203
|
+
'tenant-policy-unavailable': 503,
|
|
204
|
+
// Env + Secrets.
|
|
205
|
+
'env-not-found': 404,
|
|
206
|
+
'secret-not-found': 404,
|
|
207
|
+
'secret-revoked': 404,
|
|
208
|
+
'secret-version-not-found': 404,
|
|
209
|
+
'scope-kind-required': 400,
|
|
210
|
+
'scope-mismatch': 400,
|
|
211
|
+
'env-name-required': 400,
|
|
212
|
+
'env-name-mismatch': 400,
|
|
213
|
+
'env-cross-scope': 400,
|
|
214
|
+
'reserved-name-prefix': 400,
|
|
215
|
+
'secret-value-too-large': 400,
|
|
216
|
+
'secret-write-conflict': 409,
|
|
217
|
+
'env-write-conflict': 409,
|
|
218
|
+
'secret-encryption-failed': 500,
|
|
219
|
+
'secret-decryption-failed': 500,
|
|
220
|
+
'secret-provider-unavailable': 503,
|
|
221
|
+
'secret-provider-unauthorized': 502,
|
|
222
|
+
'secret-provider-rate-limited': 429,
|
|
223
|
+
'secret-store-error': 500,
|
|
224
|
+
'env-store-error': 500,
|
|
225
|
+
// Trigger HTTP surface.
|
|
226
|
+
'trigger-not-found': 404,
|
|
227
|
+
'trigger-invalid-config': 400,
|
|
228
|
+
'trigger-webhook-id-conflict': 409,
|
|
229
|
+
'trigger-already-in-state': 409,
|
|
230
|
+
'trigger-register-failed': 500,
|
|
231
|
+
'trigger-update-failed': 500,
|
|
232
|
+
'trigger-lifecycle-failed': 500,
|
|
233
|
+
'webhook-signature-invalid': 401,
|
|
234
|
+
'webhook-inactive': 410,
|
|
235
|
+
'webhook-secret-missing': 500,
|
|
236
|
+
'webhook-flow-not-found': 502,
|
|
237
|
+
// Outbound webhook endpoints.
|
|
238
|
+
'webhook-endpoint-not-found': 404,
|
|
239
|
+
'webhook-delivery-not-found': 404,
|
|
240
|
+
'webhook-url-refused': 400,
|
|
241
|
+
'webhook-secret-not-found': 400,
|
|
242
|
+
'webhook-secret-too-weak': 400,
|
|
243
|
+
// Public run tokens.
|
|
244
|
+
'token-mint-failed': 500,
|
|
245
|
+
};
|
|
246
|
+
/**
|
|
247
|
+
* Look up the HTTP status for a domain error code. Unmapped codes
|
|
248
|
+
* return `500` — the caller should log a warning; this indicates a
|
|
249
|
+
* mapping-table gap.
|
|
250
|
+
*/
|
|
251
|
+
export function statusFor(code) {
|
|
252
|
+
return ERROR_CODE_TO_STATUS[code] ?? 500;
|
|
253
|
+
}
|
|
254
|
+
/** Build a wire error body from a domain error + requestId. */
|
|
255
|
+
export function toWireError(err, requestId) {
|
|
256
|
+
const { code, message, ...rest } = err;
|
|
257
|
+
const detailKeys = Object.keys(rest).filter((k) => k !== 'cause');
|
|
258
|
+
const details = detailKeys.length > 0 ? Object.fromEntries(detailKeys.map((k) => [k, rest[k]])) : undefined;
|
|
259
|
+
return {
|
|
260
|
+
error: {
|
|
261
|
+
code: String(code),
|
|
262
|
+
message: String(message),
|
|
263
|
+
...(details !== undefined && { details }),
|
|
264
|
+
requestId,
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import type { AgentId } from '@kindgi/agents';
|
|
2
|
+
import type { Scope } from '@kindgi/platform';
|
|
3
|
+
import type { Cursor, FlowId, ProjectId, RunId, Semver, TenantId, Timestamp } from '@kindgi/types';
|
|
4
|
+
import type { EvalKind } from './eval-suite-binding.js';
|
|
5
|
+
/**
|
|
6
|
+
* Caller-plugged surface for the evaluation-run data plane — the
|
|
7
|
+
* companion to the eval-suite registry that closes the loop by adding
|
|
8
|
+
* *execution*.
|
|
9
|
+
* Same pattern as every other admin binding: the API package does NOT
|
|
10
|
+
* own persistence. Deployments wire this binding to a runtime that
|
|
11
|
+
* dispatches per `EvalSuite.kind` (see `eval-run-dispatcher.ts` for
|
|
12
|
+
* the reference accuracy dispatcher).
|
|
13
|
+
*
|
|
14
|
+
* The wire shape mirrors the run surface. A durable implementation can
|
|
15
|
+
* make every `EvalRun` a specialized run (started with `runGraph`),
|
|
16
|
+
* inheriting durability, replay, and cancel semantics while adding
|
|
17
|
+
* eval-specific fields (`suiteId`, `suiteVersion`, `kind`, `result`);
|
|
18
|
+
* the in-process reference in `eval-run-dispatcher.ts` keeps runs in
|
|
19
|
+
* memory.
|
|
20
|
+
*
|
|
21
|
+
* `result` is kind-specific opaque JSON on the wire. For the
|
|
22
|
+
* `accuracy` reference dispatcher it is
|
|
23
|
+
* `{ passCount, totalCount, meanScore, perCase[] }`; other kinds define
|
|
24
|
+
* their own shapes.
|
|
25
|
+
*/
|
|
26
|
+
export interface EvalRunBinding {
|
|
27
|
+
/**
|
|
28
|
+
* Start a new eval run against a specific suite id (the dispatcher
|
|
29
|
+
* resolves the suite version internally — bindings MAY reject with
|
|
30
|
+
* `suite-not-found` when the suiteId is unknown for the tenant).
|
|
31
|
+
*/
|
|
32
|
+
start(input: EvalRunStartInput): Promise<EvalRunStartOutcome>;
|
|
33
|
+
/**
|
|
34
|
+
* Fetch a single eval run by id, or `null` if unknown. The route
|
|
35
|
+
* surfaces `null` as `404 eval-run-not-found`.
|
|
36
|
+
*/
|
|
37
|
+
get(input: EvalRunGetInput): Promise<EvalRun | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Cursor-paginated list of eval runs. Optional filters — see
|
|
40
|
+
* `EvalRunFilter`. Sort order is fixed: `startedAt` descending, id
|
|
41
|
+
* descending as tie-breaker (same shape as `/v1/runs`).
|
|
42
|
+
*/
|
|
43
|
+
list(input: EvalRunListInput): Promise<EvalRunPage>;
|
|
44
|
+
/**
|
|
45
|
+
* Cancel an eval run. Returns `{ cancelled: true }` on success;
|
|
46
|
+
* `{ cancelled: false, reason: 'not-found' | 'already-terminal' }`
|
|
47
|
+
* otherwise — the route flips each `reason` to the appropriate
|
|
48
|
+
* 4xx status.
|
|
49
|
+
*/
|
|
50
|
+
cancel(input: EvalRunCancelInput): Promise<EvalRunCancelOutcome>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* How the caller identifies the eval subject on `start`. Exactly one
|
|
54
|
+
* of `agentRef` / `flowRef` MUST be supplied — the route enforces
|
|
55
|
+
* that mutual exclusion before calling the binding.
|
|
56
|
+
*/
|
|
57
|
+
export interface AgentRef {
|
|
58
|
+
readonly agentId: AgentId;
|
|
59
|
+
readonly version?: Semver;
|
|
60
|
+
}
|
|
61
|
+
export interface FlowRef {
|
|
62
|
+
readonly flowId: FlowId;
|
|
63
|
+
readonly version?: Semver;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Terminal statuses match the run vocabulary. `pending` is a
|
|
67
|
+
* pre-execution state a dispatcher MAY use if it queues the run
|
|
68
|
+
* before starting it; the reference in-process dispatcher goes
|
|
69
|
+
* straight to `running`.
|
|
70
|
+
*/
|
|
71
|
+
export declare const EVAL_RUN_STATUSES: readonly ["pending", "running", "completed", "failed", "cancelled"];
|
|
72
|
+
export type EvalRunStatus = (typeof EVAL_RUN_STATUSES)[number];
|
|
73
|
+
/**
|
|
74
|
+
* Wire shape for a single evaluation run. `result` is kind-specific
|
|
75
|
+
* opaque JSON (accuracy writes `{ passCount, totalCount, meanScore,
|
|
76
|
+
* perCase[] }`; other kinds define their own shapes). `error`
|
|
77
|
+
* carries the failure message when `status === 'failed'`.
|
|
78
|
+
*/
|
|
79
|
+
export interface EvalRun {
|
|
80
|
+
readonly runId: RunId;
|
|
81
|
+
readonly tenantId: TenantId;
|
|
82
|
+
readonly suiteId: string;
|
|
83
|
+
readonly suiteVersion: string;
|
|
84
|
+
readonly kind: EvalKind;
|
|
85
|
+
readonly agentRef?: AgentRef;
|
|
86
|
+
readonly flowRef?: FlowRef;
|
|
87
|
+
readonly status: EvalRunStatus;
|
|
88
|
+
readonly dryRun: boolean;
|
|
89
|
+
readonly startedAt: Timestamp;
|
|
90
|
+
readonly completedAt?: Timestamp;
|
|
91
|
+
readonly result?: Readonly<Record<string, unknown>>;
|
|
92
|
+
readonly error?: string;
|
|
93
|
+
readonly correlationId?: string;
|
|
94
|
+
}
|
|
95
|
+
export interface EvalRunFilter {
|
|
96
|
+
readonly suiteId?: string;
|
|
97
|
+
readonly status?: EvalRunStatus;
|
|
98
|
+
readonly agentId?: AgentId;
|
|
99
|
+
readonly flowId?: FlowId;
|
|
100
|
+
readonly from?: Timestamp;
|
|
101
|
+
readonly to?: Timestamp;
|
|
102
|
+
}
|
|
103
|
+
export interface EvalRunStartInput {
|
|
104
|
+
readonly tenantId: TenantId;
|
|
105
|
+
/**
|
|
106
|
+
* Content-scope anchor. REQUIRED — every
|
|
107
|
+
* eval-run row is anchored to a project. The caller resolves this at
|
|
108
|
+
* ITS layer; storage adapters treat a missing / bogus id as a
|
|
109
|
+
* `project-not-found` outcome. No silent fallback to a tenant Default here.
|
|
110
|
+
*/
|
|
111
|
+
readonly projectId: ProjectId;
|
|
112
|
+
readonly suiteId: string;
|
|
113
|
+
readonly agentRef?: AgentRef;
|
|
114
|
+
readonly flowRef?: FlowRef;
|
|
115
|
+
readonly dryRun?: boolean;
|
|
116
|
+
readonly correlationId?: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* `start` outcomes. `ok` returns the newly-minted `runId`; other
|
|
120
|
+
* shapes carry the domain error the route flips to a 4xx.
|
|
121
|
+
*/
|
|
122
|
+
export type EvalRunStartOutcome = {
|
|
123
|
+
readonly kind: 'ok';
|
|
124
|
+
readonly runId: RunId;
|
|
125
|
+
readonly dryRunPreview?: Readonly<Record<string, unknown>>;
|
|
126
|
+
} | {
|
|
127
|
+
readonly kind: 'suite-not-found';
|
|
128
|
+
readonly suiteId: string;
|
|
129
|
+
} | {
|
|
130
|
+
readonly kind: 'dispatcher-not-registered';
|
|
131
|
+
readonly evalKind: EvalKind;
|
|
132
|
+
} | {
|
|
133
|
+
readonly kind: 'dispatcher-input-invalid';
|
|
134
|
+
readonly message: string;
|
|
135
|
+
} | {
|
|
136
|
+
/**
|
|
137
|
+
* The caller-supplied `projectId` does not resolve to a real
|
|
138
|
+
* project row in this tenant. Distinct from
|
|
139
|
+
* `dispatcher-input-invalid` so the route can surface a clean
|
|
140
|
+
* 4xx with the offending id rather than a generic dispatcher
|
|
141
|
+
* error.
|
|
142
|
+
*/
|
|
143
|
+
readonly kind: 'project-not-found';
|
|
144
|
+
readonly projectId: ProjectId;
|
|
145
|
+
};
|
|
146
|
+
export interface EvalRunGetInput {
|
|
147
|
+
readonly tenantId: TenantId;
|
|
148
|
+
readonly runId: RunId;
|
|
149
|
+
}
|
|
150
|
+
export interface EvalRunListInput {
|
|
151
|
+
readonly tenantId: TenantId;
|
|
152
|
+
readonly limit: number;
|
|
153
|
+
readonly cursor?: Cursor;
|
|
154
|
+
readonly filter?: EvalRunFilter;
|
|
155
|
+
/**
|
|
156
|
+
* Narrow the list to a specific scope. Absent = no scope narrow
|
|
157
|
+
* (return every row in the tenant the caller can see — admin/audit
|
|
158
|
+
* default).
|
|
159
|
+
*
|
|
160
|
+
* Content-scoped semantics (this binding):
|
|
161
|
+
* - `{ kind: 'project', projectId }` — rows in that project.
|
|
162
|
+
* - `{ kind: 'org', orgId }` — rows in every project belonging to
|
|
163
|
+
* that org.
|
|
164
|
+
* - `{ kind: 'tenant', tenantId }` — every row in the tenant.
|
|
165
|
+
*
|
|
166
|
+
* Content rows always belong to a project, so `inherit` has no
|
|
167
|
+
* effect here.
|
|
168
|
+
*/
|
|
169
|
+
readonly scope?: Scope;
|
|
170
|
+
/**
|
|
171
|
+
* `false` = literal-at-this-scope only (admin/audit view).
|
|
172
|
+
* `true` (default) = inheritance walk (user-facing view).
|
|
173
|
+
* No-op for content-scoped bindings (rows only exist at
|
|
174
|
+
* project-level — there is no upward hierarchy to walk). Kept for
|
|
175
|
+
* uniformity: scope-aware bindings share one filter shape across the
|
|
176
|
+
* SDK and OpenAPI schemas.
|
|
177
|
+
*/
|
|
178
|
+
readonly inherit?: boolean;
|
|
179
|
+
}
|
|
180
|
+
export interface EvalRunPage {
|
|
181
|
+
readonly data: readonly EvalRun[];
|
|
182
|
+
readonly nextCursor?: Cursor;
|
|
183
|
+
}
|
|
184
|
+
export interface EvalRunCancelInput {
|
|
185
|
+
readonly tenantId: TenantId;
|
|
186
|
+
readonly runId: RunId;
|
|
187
|
+
}
|
|
188
|
+
export type EvalRunCancelOutcome = {
|
|
189
|
+
readonly kind: 'ok';
|
|
190
|
+
} | {
|
|
191
|
+
readonly kind: 'not-found';
|
|
192
|
+
} | {
|
|
193
|
+
readonly kind: 'already-terminal';
|
|
194
|
+
readonly status: EvalRunStatus;
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=eval-run-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-run-binding.d.ts","sourceRoot":"","sources":["../src/eval-run-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* Terminal statuses match the run vocabulary. `pending` is a
|
|
5
|
+
* pre-execution state a dispatcher MAY use if it queues the run
|
|
6
|
+
* before starting it; the reference in-process dispatcher goes
|
|
7
|
+
* straight to `running`.
|
|
8
|
+
*/
|
|
9
|
+
export const EVAL_RUN_STATUSES = [
|
|
10
|
+
'pending',
|
|
11
|
+
'running',
|
|
12
|
+
'completed',
|
|
13
|
+
'failed',
|
|
14
|
+
'cancelled',
|
|
15
|
+
];
|
|
16
|
+
//# sourceMappingURL=eval-run-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-run-binding.js","sourceRoot":"","sources":["../src/eval-run-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAsEjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,WAAW;CACH,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { RunId, TenantId } from '@kindgi/types';
|
|
2
|
+
import type { AgentRef, EvalRunBinding, FlowRef } from './eval-run-binding.js';
|
|
3
|
+
import { EVAL_RUN_STATUSES } from './eval-run-binding.js';
|
|
4
|
+
import type { EvalKind, EvalSuite, EvalSuiteRegistryBinding } from './eval-suite-binding.js';
|
|
5
|
+
/**
|
|
6
|
+
* Reference eval-run dispatcher — proves the pattern end-to-end for
|
|
7
|
+
* the `accuracy` kind with an in-process `EvalRunBinding` that wraps
|
|
8
|
+
* an in-memory run store. Durable deployments swap this for a
|
|
9
|
+
* dispatcher that starts real runs (`runGraph`) so the EvalRun is a
|
|
10
|
+
* specialized run and inherits durability + replay + cancel.
|
|
11
|
+
*
|
|
12
|
+
* The in-process shape lets tests wire a subject invoker + a judge
|
|
13
|
+
* without booting a full runtime — the surface (`EvalRunBinding`) is
|
|
14
|
+
* identical to what a durable deployment exposes.
|
|
15
|
+
*/
|
|
16
|
+
export interface EvalCase {
|
|
17
|
+
readonly id?: string;
|
|
18
|
+
readonly input: unknown;
|
|
19
|
+
readonly expected?: unknown;
|
|
20
|
+
readonly expectedOutput?: unknown;
|
|
21
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
22
|
+
}
|
|
23
|
+
export interface EvalRunSubjectInvokeInput {
|
|
24
|
+
readonly tenantId: TenantId;
|
|
25
|
+
readonly target: AgentRef | FlowRef;
|
|
26
|
+
readonly input: unknown;
|
|
27
|
+
readonly dryRun: boolean;
|
|
28
|
+
readonly abortSignal: AbortSignal;
|
|
29
|
+
}
|
|
30
|
+
export interface EvalRunSubjectInvokeOutcome {
|
|
31
|
+
readonly output?: unknown;
|
|
32
|
+
readonly error?: string;
|
|
33
|
+
readonly costUsd?: number;
|
|
34
|
+
readonly durationMs?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Caller-plugged subject invoker. Real deployments route this into
|
|
38
|
+
* `RunHandlerBinding.invokeAgent` / `invokeFlow` (the same surface
|
|
39
|
+
* `/v1/runs` uses); tests pass a synchronous stub.
|
|
40
|
+
*/
|
|
41
|
+
export interface EvalSubjectInvoker {
|
|
42
|
+
invoke(input: EvalRunSubjectInvokeInput): Promise<EvalRunSubjectInvokeOutcome>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Grader contract used by the reference accuracy dispatcher —
|
|
46
|
+
* deployments can plug in an eval-judge adapter or an LLM judge. Kept
|
|
47
|
+
* local to `@kindgi/api` so the API package does not depend on an
|
|
48
|
+
* evals package (it stays consumer-neutral).
|
|
49
|
+
*/
|
|
50
|
+
export interface EvalGrader {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
grade(input: EvalGraderInput): Promise<EvalGraderOutcome>;
|
|
53
|
+
}
|
|
54
|
+
export interface EvalGraderInput {
|
|
55
|
+
readonly caseInput: unknown;
|
|
56
|
+
readonly actualOutput: unknown;
|
|
57
|
+
readonly expected: unknown;
|
|
58
|
+
}
|
|
59
|
+
export interface EvalGraderOutcome {
|
|
60
|
+
readonly pass: boolean;
|
|
61
|
+
readonly score: number;
|
|
62
|
+
readonly reason?: string;
|
|
63
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
64
|
+
}
|
|
65
|
+
export interface DispatchContext {
|
|
66
|
+
readonly tenantId: TenantId;
|
|
67
|
+
readonly runId: RunId;
|
|
68
|
+
readonly suite: EvalSuite;
|
|
69
|
+
readonly target: AgentRef | FlowRef;
|
|
70
|
+
readonly dryRun: boolean;
|
|
71
|
+
readonly abortSignal: AbortSignal;
|
|
72
|
+
readonly subject: EvalSubjectInvoker;
|
|
73
|
+
onProgress(perCase: Readonly<Record<string, unknown>>): void;
|
|
74
|
+
}
|
|
75
|
+
export interface DispatchResult {
|
|
76
|
+
readonly result: Readonly<Record<string, unknown>>;
|
|
77
|
+
readonly error?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface EvalRunDispatcher {
|
|
80
|
+
readonly kind: EvalKind;
|
|
81
|
+
validate?(suite: EvalSuite, target: AgentRef | FlowRef): {
|
|
82
|
+
kind: 'ok';
|
|
83
|
+
} | {
|
|
84
|
+
kind: 'err';
|
|
85
|
+
message: string;
|
|
86
|
+
};
|
|
87
|
+
dispatch(ctx: DispatchContext): Promise<DispatchResult>;
|
|
88
|
+
}
|
|
89
|
+
export interface AccuracyDispatcherOptions {
|
|
90
|
+
readonly grader: EvalGrader;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Reference dispatcher for `EvalKind === 'accuracy'`. Reads
|
|
94
|
+
* `spec.cases` from the registered suite; for each case, invokes the
|
|
95
|
+
* subject with `case.input`, grades `(caseInput, actualOutput,
|
|
96
|
+
* case.expected ?? case.expectedOutput)` through the injected
|
|
97
|
+
* `EvalGrader`, and aggregates `{ passCount, totalCount, meanScore,
|
|
98
|
+
* perCase[] }`.
|
|
99
|
+
*
|
|
100
|
+
* A dry-run echoes the plan (case count + first-case preview) without
|
|
101
|
+
* invoking the subject — proves the same envelope is available on
|
|
102
|
+
* `dryRun: true` requests. Callers use it as a sanity check before
|
|
103
|
+
* paying for the real run.
|
|
104
|
+
*/
|
|
105
|
+
export declare function createAccuracyDispatcher(options: AccuracyDispatcherOptions): EvalRunDispatcher;
|
|
106
|
+
export interface InProcessEvalRunBindingOptions {
|
|
107
|
+
readonly suiteRegistry: EvalSuiteRegistryBinding;
|
|
108
|
+
readonly subject: EvalSubjectInvoker;
|
|
109
|
+
readonly dispatchers: Partial<Record<EvalKind, EvalRunDispatcher>>;
|
|
110
|
+
/**
|
|
111
|
+
* Optional clock override — tests inject a monotonic stub so
|
|
112
|
+
* timestamps are deterministic. Defaults to `() => new Date()`.
|
|
113
|
+
*/
|
|
114
|
+
readonly now?: () => Date;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Reference in-process `EvalRunBinding`. Persists eval-run rows in a
|
|
118
|
+
* `Map<runId, EvalRun>`; suitable for tests and dev deployments.
|
|
119
|
+
* Production deployments swap in a durable binding that starts real
|
|
120
|
+
* runs (`runGraph`) — the surface is identical, only the persistence +
|
|
121
|
+
* execution substrate changes.
|
|
122
|
+
*
|
|
123
|
+
* A run starts as `running`, resolves per its dispatcher's outcome,
|
|
124
|
+
* and can be cancelled via `AbortController.abort()` on the wrapped
|
|
125
|
+
* controller. Cancellation is best-effort — a dispatcher that has
|
|
126
|
+
* already returned cannot be undone; the row transitions to
|
|
127
|
+
* `cancelled` and any partial `perCase` results are preserved.
|
|
128
|
+
*/
|
|
129
|
+
export declare function createInProcessEvalRunBinding(options: InProcessEvalRunBindingOptions): EvalRunBinding;
|
|
130
|
+
export { EVAL_RUN_STATUSES };
|
|
131
|
+
//# sourceMappingURL=eval-run-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-run-dispatcher.d.ts","sourceRoot":"","sources":["../src/eval-run-dispatcher.ts"],"names":[],"mappings":"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"}
|