@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
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { Result, TenantId } from '@kindgi/types';
|
|
2
|
+
/**
|
|
3
|
+
* `EventBusBinding` — caller-plugged pub/sub surface for push-based event
|
|
4
|
+
* delivery. When wired, `runsRouter`'s `GET /:runId/stream` uses it
|
|
5
|
+
* instead of polling the journal every 200 ms.
|
|
6
|
+
*
|
|
7
|
+
* The API package doesn't own event-bus persistence. Deployments plug in
|
|
8
|
+
* a binding via `CreateAppInput.eventBus` (the Kindgi runtime provides a
|
|
9
|
+
* Postgres-backed one). When absent, SSE endpoints fall back to journal
|
|
10
|
+
* polling — no regression for callers who don't wire the binding.
|
|
11
|
+
*
|
|
12
|
+
* ## Semantics
|
|
13
|
+
*
|
|
14
|
+
* - **Per-tenant, per-channel FIFO.** `seq` monotonically increases per
|
|
15
|
+
* `(tenantId, channel)` tuple. Subscribers may catch up from a specific
|
|
16
|
+
* `sinceSeq` after reconnect.
|
|
17
|
+
* - **Durable log.** Every publish is persisted before notification;
|
|
18
|
+
* subscribers can backfill from the log after connection loss. The
|
|
19
|
+
* notification is a fast-path signal; the log is the source of truth.
|
|
20
|
+
* - **Tenant isolation.** The binding keeps channels per tenant and
|
|
21
|
+
* filters log reads by tenant. A correctly-implemented binding never
|
|
22
|
+
* delivers another tenant's events.
|
|
23
|
+
*
|
|
24
|
+
* ## Wire shape
|
|
25
|
+
*
|
|
26
|
+
* `EventPayload` is what subscribers receive. `publish` accepts only
|
|
27
|
+
* `doc` — the binding assigns `v`, `seq`, `timestamp` and fills in
|
|
28
|
+
* `channel` + `tenantId` from its arguments. Callers never build the
|
|
29
|
+
* envelope directly.
|
|
30
|
+
*/
|
|
31
|
+
export interface EventBusBinding {
|
|
32
|
+
/**
|
|
33
|
+
* Publish `doc` to `(tenantId, channel)`. The binding assigns a
|
|
34
|
+
* monotonic `seq` per `(tenantId, channel)`, persists the event to its
|
|
35
|
+
* log, and notifies subscribers. Returns `{ kind: 'ok' }` after the
|
|
36
|
+
* event is durable. The notification only needs to identify the new
|
|
37
|
+
* entry — subscribers read large `doc` payloads from the log (a
|
|
38
|
+
* Postgres NOTIFY payload, for example, is limited to 8000 bytes).
|
|
39
|
+
*/
|
|
40
|
+
publish(tenantId: TenantId, channel: string, doc: unknown): Promise<Result<void, EventBusError>>;
|
|
41
|
+
/**
|
|
42
|
+
* Publish `docs` to `(tenantId, channel)` in order, as one write: the
|
|
43
|
+
* same as `publish` for each, with consecutive `seq`s and one
|
|
44
|
+
* notification. Optional — a publisher with a batch calls it when the
|
|
45
|
+
* binding has it.
|
|
46
|
+
*/
|
|
47
|
+
publishMany?(tenantId: TenantId, channel: string, docs: readonly unknown[]): Promise<Result<void, EventBusError>>;
|
|
48
|
+
/**
|
|
49
|
+
* Subscribe to `(tenantId, channel)`. `onEvent` is invoked for each
|
|
50
|
+
* published payload in `seq` order, starting from `options.sinceSeq`
|
|
51
|
+
* (default: current tail — new events only). Returns a `Subscription`
|
|
52
|
+
* whose `unsubscribe()` tears down the underlying listener.
|
|
53
|
+
*
|
|
54
|
+
* `signal.abort()` unsubscribes atomically. Callers usually pass an
|
|
55
|
+
* AbortController tied to the SSE stream's lifetime.
|
|
56
|
+
*
|
|
57
|
+
* On connection loss the binding reconnects transparently and
|
|
58
|
+
* backfills from `lastSeen + 1` — subscribers observe no gaps.
|
|
59
|
+
* A binding whose push channel is unavailable may fall back to
|
|
60
|
+
* polling its log without breaking the subscriber contract.
|
|
61
|
+
*/
|
|
62
|
+
subscribe(tenantId: TenantId, channel: string, onEvent: (payload: EventPayload) => void, signal: AbortSignal, options?: SubscribeOptions): Promise<Result<Subscription, EventBusError>>;
|
|
63
|
+
}
|
|
64
|
+
/** Options for `subscribe`. */
|
|
65
|
+
export interface SubscribeOptions {
|
|
66
|
+
/**
|
|
67
|
+
* Deliver rows with `seq > sinceSeq` before entering push mode.
|
|
68
|
+
* When omitted, the subscriber joins at the current tail (new
|
|
69
|
+
* events only) — appropriate for a fresh SSE connect with no
|
|
70
|
+
* `Last-Event-Id`. When present, must be a non-negative integer.
|
|
71
|
+
*/
|
|
72
|
+
readonly sinceSeq?: number;
|
|
73
|
+
}
|
|
74
|
+
/** Envelope subscribers receive on every push. */
|
|
75
|
+
export interface EventPayload {
|
|
76
|
+
readonly v: 1;
|
|
77
|
+
readonly channel: string;
|
|
78
|
+
readonly tenantId: TenantId;
|
|
79
|
+
/** Monotonic sequence per `(tenantId, channel)`. Starts at 1. */
|
|
80
|
+
readonly seq: number;
|
|
81
|
+
/** ISO-8601 timestamp assigned at persist time. */
|
|
82
|
+
readonly timestamp: string;
|
|
83
|
+
/** Caller-supplied doc — the runtime shape flowing through the bus. */
|
|
84
|
+
readonly doc: unknown;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Handle returned from `subscribe`. Callers must `unsubscribe()` to
|
|
88
|
+
* release the underlying listener. Equivalent to aborting
|
|
89
|
+
* the `signal` passed at subscribe time — either releases the same
|
|
90
|
+
* resources.
|
|
91
|
+
*/
|
|
92
|
+
export interface Subscription {
|
|
93
|
+
/**
|
|
94
|
+
* Tear down the subscription. Safe to call multiple times; idempotent
|
|
95
|
+
* after the first call.
|
|
96
|
+
*/
|
|
97
|
+
unsubscribe(): Promise<void>;
|
|
98
|
+
}
|
|
99
|
+
/** Non-transient errors from `publish` / `subscribe`. */
|
|
100
|
+
export interface EventBusError {
|
|
101
|
+
readonly code: 'publish-failed' | 'subscribe-failed' | 'bad-input' | 'not-supported';
|
|
102
|
+
readonly message: string;
|
|
103
|
+
readonly cause?: unknown;
|
|
104
|
+
}
|
|
105
|
+
/** Envelope version — bumped only when the payload shape changes. */
|
|
106
|
+
export declare const CURRENT_EVENT_BUS_ENVELOPE_VERSION: 1;
|
|
107
|
+
//# sourceMappingURL=event-bus-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-binding.d.ts","sourceRoot":"","sources":["../src/event-bus-binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjG;;;;;OAKG;IACH,WAAW,CAAC,CACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAExC;;;;;;;;;;;;;OAaG;IACH,SAAS,CACP,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,EACxC,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;CACjD;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,GAAG,eAAe,CAAC;IACrF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qEAAqE;AACrE,eAAO,MAAM,kCAAkC,EAAG,CAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-binding.js","sourceRoot":"","sources":["../src/event-bus-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AA4HjC,qEAAqE;AACrE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAU,CAAC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import type { TupleEnqueueHook } from '@kindgi/authz';
|
|
2
|
+
import type { Flow } from '@kindgi/flow';
|
|
3
|
+
import type { Scope } from '@kindgi/platform';
|
|
4
|
+
import type { Cursor, FlowId, ProjectId, TenantId } from '@kindgi/types';
|
|
5
|
+
/**
|
|
6
|
+
* Caller-plugged surface for the flow catalog. Mirrors
|
|
7
|
+
* `AgentRegistryBinding` 1:1 — the API package does NOT own registry
|
|
8
|
+
* persistence. Deployments wire an in-memory `Map`-backed store — or a
|
|
9
|
+
* durable pack-backed store — through this binding.
|
|
10
|
+
*
|
|
11
|
+
* Publish is data-as-code: the route validates the wire body via
|
|
12
|
+
* `loadFlow(...)` from `@kindgi/flow` before calling; the binding
|
|
13
|
+
* receives a well-formed `Flow`. Handler-as-code uploads (a flow
|
|
14
|
+
* carrying inline node handlers) are not supported.
|
|
15
|
+
*
|
|
16
|
+
* Every method is tenant-scoped: callers pass `tenantId` explicitly so
|
|
17
|
+
* multi-tenant deployments can partition storage without exposing the
|
|
18
|
+
* scoping inside the API package.
|
|
19
|
+
*
|
|
20
|
+
* Cursors are opaque — the binding chooses its encoding (index-based,
|
|
21
|
+
* `id@version`, ISO timestamps). The API layer only validates that a
|
|
22
|
+
* cursor round-trips as a string; it never inspects the payload.
|
|
23
|
+
*/
|
|
24
|
+
export interface FlowRegistryBinding {
|
|
25
|
+
/**
|
|
26
|
+
* Cursor-paginated list of flows (latest version per id, sorted by
|
|
27
|
+
* flow id ascending). Optional `nameFilter` is a prefix match on the
|
|
28
|
+
* flow id — the runtime uses dotted namespaces (`ingest.contract-pdf`),
|
|
29
|
+
* so prefix matching is the natural filter shape.
|
|
30
|
+
*/
|
|
31
|
+
list(input: FlowListInput): Promise<FlowPage>;
|
|
32
|
+
/**
|
|
33
|
+
* Latest version of the given flow id, or `null` if unknown. The
|
|
34
|
+
* route surfaces `null` as `404 flow-not-found`.
|
|
35
|
+
*/
|
|
36
|
+
get(input: FlowGetInput): Promise<Flow | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Specific `(flowId, version)` lookup, or `null` if unknown.
|
|
39
|
+
* Returns tombstoned versions too — provenance paths need to
|
|
40
|
+
* resolve historical run references.
|
|
41
|
+
*/
|
|
42
|
+
getVersion(input: FlowGetVersionInput): Promise<Flow | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Head-row existence check. Lets `GET /v1/flows/{id}` distinguish
|
|
45
|
+
* `410 gone` (identity exists, no active version) from `404 not-
|
|
46
|
+
* found` (never registered).
|
|
47
|
+
*/
|
|
48
|
+
headExists(input: FlowGetInput): Promise<boolean>;
|
|
49
|
+
/**
|
|
50
|
+
* Cursor-paginated list of versions for a specific flow id. Sort
|
|
51
|
+
* order is binding-defined (for example ascending semver). Returns an empty page (no error) when the id
|
|
52
|
+
* is unknown — the route flips that to `404` via a prior `get`.
|
|
53
|
+
*/
|
|
54
|
+
listVersions(input: FlowListVersionsInput): Promise<FlowPage>;
|
|
55
|
+
/**
|
|
56
|
+
* Publish a validated flow definition. The API route validates
|
|
57
|
+
* shape via `loadFlow(...)` before calling — the binding receives a
|
|
58
|
+
* well-formed `Flow`. Bindings MAY reject with `already-registered`
|
|
59
|
+
* when the same `(flowId, version)` is re-published; the route maps
|
|
60
|
+
* that to `409`.
|
|
61
|
+
*/
|
|
62
|
+
publish(input: FlowPublishInput): Promise<FlowPublishOutcome>;
|
|
63
|
+
/**
|
|
64
|
+
* Soft-tombstone a specific `(flowId, version)`. When this leaves
|
|
65
|
+
* NO active versions, the flow has no latest version — it enters the
|
|
66
|
+
* derived "retired" state (GET returns 410 gone).
|
|
67
|
+
* Publish of a new version reactivates.
|
|
68
|
+
*/
|
|
69
|
+
unregister(input: FlowUnregisterInput): Promise<FlowUnregisterOutcome>;
|
|
70
|
+
/**
|
|
71
|
+
* Un-tombstone a specific `(flowId, version)`. Recomputes the flow's
|
|
72
|
+
* latest version. Restores manifest bytes verbatim (semver
|
|
73
|
+
* hygiene). Idempotent.
|
|
74
|
+
*/
|
|
75
|
+
reinstateVersion(input: FlowReinstateVersionInput): Promise<FlowReinstateVersionOutcome>;
|
|
76
|
+
}
|
|
77
|
+
export interface FlowListInput {
|
|
78
|
+
readonly tenantId: TenantId;
|
|
79
|
+
readonly limit: number;
|
|
80
|
+
readonly cursor?: Cursor;
|
|
81
|
+
/** Prefix match on `Flow.id`. Undefined = no filter. */
|
|
82
|
+
readonly nameFilter?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Narrow the list to a specific scope. Absent = no scope narrow
|
|
85
|
+
* (return every row in the tenant the caller can see — admin/audit
|
|
86
|
+
* default).
|
|
87
|
+
*
|
|
88
|
+
* Content-scoped semantics (this binding):
|
|
89
|
+
* - `{ kind: 'project', projectId }` — rows in that project.
|
|
90
|
+
* - `{ kind: 'org', orgId }` — rows in every project belonging to
|
|
91
|
+
* that org.
|
|
92
|
+
* - `{ kind: 'tenant', tenantId }` — every row in the tenant.
|
|
93
|
+
*
|
|
94
|
+
* Content rows always belong to a project, so `inherit` has no
|
|
95
|
+
* effect here.
|
|
96
|
+
*/
|
|
97
|
+
readonly scope?: Scope;
|
|
98
|
+
/**
|
|
99
|
+
* `false` = literal-at-this-scope only (admin/audit view).
|
|
100
|
+
* `true` (default) = inheritance walk (user-facing view).
|
|
101
|
+
* No-op for content-scoped bindings (rows only exist at
|
|
102
|
+
* project-level — there is no upward hierarchy to walk). Kept for
|
|
103
|
+
* uniformity: scope-aware bindings share one filter shape across the
|
|
104
|
+
* SDK and OpenAPI schemas.
|
|
105
|
+
*/
|
|
106
|
+
readonly inherit?: boolean;
|
|
107
|
+
}
|
|
108
|
+
export interface FlowGetInput {
|
|
109
|
+
readonly tenantId: TenantId;
|
|
110
|
+
readonly flowId: FlowId;
|
|
111
|
+
}
|
|
112
|
+
export interface FlowGetVersionInput {
|
|
113
|
+
readonly tenantId: TenantId;
|
|
114
|
+
readonly flowId: FlowId;
|
|
115
|
+
readonly version: string;
|
|
116
|
+
}
|
|
117
|
+
export interface FlowListVersionsInput {
|
|
118
|
+
readonly tenantId: TenantId;
|
|
119
|
+
readonly flowId: FlowId;
|
|
120
|
+
readonly limit: number;
|
|
121
|
+
readonly cursor?: Cursor;
|
|
122
|
+
}
|
|
123
|
+
export interface FlowPublishInput {
|
|
124
|
+
readonly tenantId: TenantId;
|
|
125
|
+
/**
|
|
126
|
+
* Project the flow is published into. REQUIRED. Callers that
|
|
127
|
+
* don't naturally know a projectId
|
|
128
|
+
* (deployment route) resolve the tenant's Default via
|
|
129
|
+
* `projectBinding.getDefault(tenantId)` at THEIR layer and thread
|
|
130
|
+
* the resolved id here — the storage adapter never silently falls
|
|
131
|
+
* back to Default.
|
|
132
|
+
*/
|
|
133
|
+
readonly projectId: ProjectId;
|
|
134
|
+
readonly flow: Flow;
|
|
135
|
+
/**
|
|
136
|
+
* REQUIRED. Called inside the binding's write transaction after the
|
|
137
|
+
* head + version rows are inserted, receiving the FGA subject id
|
|
138
|
+
* (business `flowId`). Returns the `TupleIntent[]` to enqueue in
|
|
139
|
+
* the same tx — typically `tuplesForCreate({kind:'flow', ...})`.
|
|
140
|
+
* See `AgentPublishInput.enqueueTuples` for the design rationale.
|
|
141
|
+
*/
|
|
142
|
+
readonly enqueueTuples: TupleEnqueueHook;
|
|
143
|
+
}
|
|
144
|
+
export interface FlowUnregisterInput {
|
|
145
|
+
readonly tenantId: TenantId;
|
|
146
|
+
readonly flowId: FlowId;
|
|
147
|
+
readonly version: string;
|
|
148
|
+
}
|
|
149
|
+
export interface FlowReinstateVersionInput {
|
|
150
|
+
readonly tenantId: TenantId;
|
|
151
|
+
readonly flowId: FlowId;
|
|
152
|
+
readonly version: string;
|
|
153
|
+
}
|
|
154
|
+
export interface FlowPage {
|
|
155
|
+
readonly data: readonly Flow[];
|
|
156
|
+
readonly nextCursor?: Cursor;
|
|
157
|
+
}
|
|
158
|
+
export type FlowPublishOutcome = {
|
|
159
|
+
readonly kind: 'ok';
|
|
160
|
+
readonly flowId: FlowId;
|
|
161
|
+
readonly version: string;
|
|
162
|
+
} | {
|
|
163
|
+
readonly kind: 'already-registered';
|
|
164
|
+
readonly flowId: FlowId;
|
|
165
|
+
readonly version: string;
|
|
166
|
+
} | {
|
|
167
|
+
/**
|
|
168
|
+
* The caller-supplied `projectId` does not resolve to a real
|
|
169
|
+
* project row in this tenant. Distinct from
|
|
170
|
+
* `already-registered` so callers can surface a clean error (the
|
|
171
|
+
* flows route answers `400 bad-input`) rather than the
|
|
172
|
+
* misleading `already-registered` fallback. Implementations
|
|
173
|
+
* detect a missing project at publish time (a SQL store typically
|
|
174
|
+
* from its foreign-key violation).
|
|
175
|
+
*/
|
|
176
|
+
readonly kind: 'project-not-found';
|
|
177
|
+
readonly flowId: FlowId;
|
|
178
|
+
readonly version: string;
|
|
179
|
+
readonly projectId: ProjectId;
|
|
180
|
+
};
|
|
181
|
+
export type FlowUnregisterOutcome = {
|
|
182
|
+
readonly unregistered: boolean;
|
|
183
|
+
};
|
|
184
|
+
export type FlowReinstateVersionOutcome = {
|
|
185
|
+
readonly kind: 'ok';
|
|
186
|
+
readonly flowId: FlowId;
|
|
187
|
+
readonly version: string;
|
|
188
|
+
readonly wasTombstoned: boolean;
|
|
189
|
+
} | {
|
|
190
|
+
readonly kind: 'not-found';
|
|
191
|
+
readonly flowId: FlowId;
|
|
192
|
+
readonly version: string;
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=flow-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-binding.d.ts","sourceRoot":"","sources":["../src/flow-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-binding.js","sourceRoot":"","sources":["../src/flow-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { TupleEnqueueHook } from '@kindgi/authz';
|
|
2
|
+
import type { Guardrail } from '@kindgi/guardrails';
|
|
3
|
+
import type { Scope } from '@kindgi/platform';
|
|
4
|
+
import type { Cursor, GuardrailId, ProjectId, TenantId } from '@kindgi/types';
|
|
5
|
+
/**
|
|
6
|
+
* Caller-plugged surface for the guardrail catalog. Same shape as
|
|
7
|
+
* `AgentRegistryBinding` / `ToolRegistryBinding`: the API package does
|
|
8
|
+
* NOT own registry persistence.
|
|
9
|
+
*
|
|
10
|
+
* The surface is metadata-only: a `Guardrail` references a `check` id
|
|
11
|
+
* whose implementation lives server-side (a pure function in the
|
|
12
|
+
* runtime's `CheckRegistry`). The wire body is a full `Guardrail` shape
|
|
13
|
+
* (id + kind + check-id + action); the actual check implementation must
|
|
14
|
+
* already be registered with the runtime. Check code is not uploaded
|
|
15
|
+
* over this surface.
|
|
16
|
+
*
|
|
17
|
+
* Every method is tenant-scoped: callers pass `tenantId` explicitly so
|
|
18
|
+
* multi-tenant deployments can partition storage without exposing the
|
|
19
|
+
* scoping inside the API package.
|
|
20
|
+
*
|
|
21
|
+
* Cursors are opaque — the binding chooses its encoding. The API layer
|
|
22
|
+
* only validates that a cursor round-trips as a string; it never
|
|
23
|
+
* inspects the payload.
|
|
24
|
+
*/
|
|
25
|
+
export interface GuardrailRegistryBinding {
|
|
26
|
+
/**
|
|
27
|
+
* Cursor-paginated list of guardrails sorted by id ascending.
|
|
28
|
+
* Optional `nameFilter` is a prefix match on the guardrail id —
|
|
29
|
+
* guardrails often use dotted namespaces (`acme.no-fabricated-quotes`),
|
|
30
|
+
* so prefix matching is the natural filter shape.
|
|
31
|
+
*/
|
|
32
|
+
list(input: GuardrailListInput): Promise<GuardrailPage>;
|
|
33
|
+
/**
|
|
34
|
+
* The guardrail for the given id, or `null` if unknown. The route
|
|
35
|
+
* surfaces `null` as `404 guardrail-not-found`.
|
|
36
|
+
*/
|
|
37
|
+
get(input: GuardrailGetInput): Promise<Guardrail | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Register a validated guardrail spec. The API route validates shape
|
|
40
|
+
* via `validateGuardrailSpec(...)` before calling — the binding
|
|
41
|
+
* receives a well-formed `Guardrail`. Bindings MAY reject with
|
|
42
|
+
* `already-registered` when the same id is re-registered; the route
|
|
43
|
+
* maps that to `409`.
|
|
44
|
+
*/
|
|
45
|
+
register(input: GuardrailRegisterInput): Promise<GuardrailRegisterOutcome>;
|
|
46
|
+
/**
|
|
47
|
+
* Remove a guardrail by id. Returns `{ unregistered: true }` on
|
|
48
|
+
* success; `{ unregistered: false }` when the id was unknown — the
|
|
49
|
+
* route flips the latter to `404`.
|
|
50
|
+
*/
|
|
51
|
+
unregister(input: GuardrailUnregisterInput): Promise<GuardrailUnregisterOutcome>;
|
|
52
|
+
}
|
|
53
|
+
export interface GuardrailListInput {
|
|
54
|
+
readonly tenantId: TenantId;
|
|
55
|
+
readonly limit: number;
|
|
56
|
+
readonly cursor?: Cursor;
|
|
57
|
+
/** Prefix match on `Guardrail.id`. Undefined = no filter. */
|
|
58
|
+
readonly nameFilter?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Narrow the list to a specific scope. Absent = no scope narrow
|
|
61
|
+
* (return every row in the tenant the caller can see — admin/audit
|
|
62
|
+
* default).
|
|
63
|
+
*
|
|
64
|
+
* Content-scoped semantics (this binding):
|
|
65
|
+
* - `{ kind: 'project', projectId }` — rows in that project.
|
|
66
|
+
* - `{ kind: 'org', orgId }` — rows in every project belonging to
|
|
67
|
+
* that org.
|
|
68
|
+
* - `{ kind: 'tenant', tenantId }` — every row in the tenant.
|
|
69
|
+
*
|
|
70
|
+
* Content rows always belong to a project, so `inherit` has no
|
|
71
|
+
* effect here.
|
|
72
|
+
*/
|
|
73
|
+
readonly scope?: Scope;
|
|
74
|
+
/**
|
|
75
|
+
* `false` = literal-at-this-scope only (admin/audit view).
|
|
76
|
+
* `true` (default) = inheritance walk (user-facing view).
|
|
77
|
+
* No-op for content-scoped bindings (rows only exist at
|
|
78
|
+
* project-level — there is no upward hierarchy to walk). Kept for
|
|
79
|
+
* uniformity: scope-aware bindings share one filter shape.
|
|
80
|
+
*/
|
|
81
|
+
readonly inherit?: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface GuardrailGetInput {
|
|
84
|
+
readonly tenantId: TenantId;
|
|
85
|
+
readonly guardrailId: GuardrailId;
|
|
86
|
+
}
|
|
87
|
+
export interface GuardrailRegisterInput {
|
|
88
|
+
readonly tenantId: TenantId;
|
|
89
|
+
/**
|
|
90
|
+
* Project the guardrail is registered into. REQUIRED. Callers that
|
|
91
|
+
* don't naturally know a projectId
|
|
92
|
+
* (deployment route) resolve the tenant's Default via
|
|
93
|
+
* `projectBinding.getDefault(tenantId)` at THEIR layer and thread
|
|
94
|
+
* the resolved id here — the storage adapter never silently falls
|
|
95
|
+
* back to Default.
|
|
96
|
+
*/
|
|
97
|
+
readonly projectId: ProjectId;
|
|
98
|
+
readonly guardrail: Guardrail;
|
|
99
|
+
/**
|
|
100
|
+
* REQUIRED. Called inside the binding's write tx after row insert,
|
|
101
|
+
* receiving the business `guardrailId`. Returns tuples for the tx.
|
|
102
|
+
* See `AgentPublishInput.enqueueTuples` for the design rationale.
|
|
103
|
+
*/
|
|
104
|
+
readonly enqueueTuples: TupleEnqueueHook;
|
|
105
|
+
}
|
|
106
|
+
export interface GuardrailUnregisterInput {
|
|
107
|
+
readonly tenantId: TenantId;
|
|
108
|
+
readonly guardrailId: GuardrailId;
|
|
109
|
+
}
|
|
110
|
+
export interface GuardrailPage {
|
|
111
|
+
readonly data: readonly Guardrail[];
|
|
112
|
+
readonly nextCursor?: Cursor;
|
|
113
|
+
}
|
|
114
|
+
export type GuardrailRegisterOutcome = {
|
|
115
|
+
readonly kind: 'ok';
|
|
116
|
+
readonly guardrailId: GuardrailId;
|
|
117
|
+
} | {
|
|
118
|
+
readonly kind: 'already-registered';
|
|
119
|
+
readonly guardrailId: GuardrailId;
|
|
120
|
+
} | {
|
|
121
|
+
/**
|
|
122
|
+
* The caller-supplied `projectId` does not resolve to a real
|
|
123
|
+
* project row in this tenant. Distinct from
|
|
124
|
+
* `already-registered` so the route + deployment guardrails-loop
|
|
125
|
+
* can surface a clean `400 bad-input` (per their own error
|
|
126
|
+
* contracts) rather than the misleading `already-registered`
|
|
127
|
+
* fallback. Database-backed implementations typically detect this
|
|
128
|
+
* from the foreign-key violation; in-memory implementations check
|
|
129
|
+
* the project id explicitly at register time.
|
|
130
|
+
*/
|
|
131
|
+
readonly kind: 'project-not-found';
|
|
132
|
+
readonly guardrailId: GuardrailId;
|
|
133
|
+
readonly projectId: ProjectId;
|
|
134
|
+
};
|
|
135
|
+
export type GuardrailUnregisterOutcome = {
|
|
136
|
+
readonly unregistered: boolean;
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=guardrail-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrail-binding.d.ts","sourceRoot":"","sources":["../src/guardrail-binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACzD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3E;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,GACD;IACE;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B,CAAC;AAEN,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrail-binding.js","sourceRoot":"","sources":["../src/guardrail-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { AgentId } from '@kindgi/agents';
|
|
2
|
+
import type { FlowId, ProjectId, RunId, Semver, TenantId } from '@kindgi/types';
|
|
3
|
+
/**
|
|
4
|
+
* Callback the platform HTTP surface hands off to when it receives
|
|
5
|
+
* `POST /v1/runs`. The API package intentionally does NOT depend on
|
|
6
|
+
* `AgentRegistry`, `ProviderRegistry`, `ToolRegistry`, or the wiring
|
|
7
|
+
* that assembles an `InvokeAgentBindings` — the caller wires those and
|
|
8
|
+
* exposes them through this thin binding.
|
|
9
|
+
*
|
|
10
|
+
* Why: keeps `@kindgi/api` narrow (Hono + routing + error mapping)
|
|
11
|
+
* while letting deployments — a local dev server, a hosted platform, a
|
|
12
|
+
* self-hosted install — assemble the runtime dependencies however they
|
|
13
|
+
* need to. Same pattern as `TokenResolver` for auth.
|
|
14
|
+
*
|
|
15
|
+
* Both methods block until the run reaches a terminal or suspended
|
|
16
|
+
* state — unless the input's `wait` is `false`, in which case they
|
|
17
|
+
* return the `runId` as soon as the run exists. The API layer only
|
|
18
|
+
* needs the `runId` to re-read the row and respond.
|
|
19
|
+
*
|
|
20
|
+
* Domain errors are returned as `RunHandlerFailure`; the route layer
|
|
21
|
+
* maps `code` to the HTTP status via `ERROR_CODE_TO_STATUS`.
|
|
22
|
+
*/
|
|
23
|
+
export interface RunHandlerBinding {
|
|
24
|
+
/**
|
|
25
|
+
* Called when the request body has `{ agent: AgentId, ... }`. The
|
|
26
|
+
* binding is expected to look up the agent, build the invocation
|
|
27
|
+
* bindings, and call `invokeAgent` from `@kindgi/agents` (or an
|
|
28
|
+
* equivalent). Return the underlying `RunId` on success.
|
|
29
|
+
*/
|
|
30
|
+
invokeAgent(input: InvokeAgentBindingInput): Promise<RunHandlerOutcome>;
|
|
31
|
+
/**
|
|
32
|
+
* Called when the request body has `{ flow: FlowId, ... }`. The
|
|
33
|
+
* binding is expected to resolve the flow to its `Flow` value +
|
|
34
|
+
* `HandlerRegistry` and start it with `RunBinding.runGraph`
|
|
35
|
+
* (`@kindgi/runtime`).
|
|
36
|
+
*/
|
|
37
|
+
invokeFlow(input: InvokeFlowBindingInput): Promise<RunHandlerOutcome>;
|
|
38
|
+
/**
|
|
39
|
+
* Resume a suspended run — invoked after a waitpoint resolves (e.g. a
|
|
40
|
+
* reviewer's decision writes `wait.resumed`; a timeout writes
|
|
41
|
+
* `wait.cancelled`). The binding reconstructs the same flow + handler
|
|
42
|
+
* context the run started with and calls `RunBinding.resumeRun`,
|
|
43
|
+
* blocking until the run reaches its next terminal state (or the next
|
|
44
|
+
* suspension). Same runId, same conversation, same provenance record —
|
|
45
|
+
* park-and-resume preserves audit-trail continuity across HITL cycles.
|
|
46
|
+
*
|
|
47
|
+
* Returns the same shape as `invokeAgent` / `invokeFlow`: the runId
|
|
48
|
+
* on success; a `RunHandlerFailure` when the resume path errors before
|
|
49
|
+
* the run is picked up.
|
|
50
|
+
*/
|
|
51
|
+
resumeRun(input: ResumeRunBindingInput): Promise<RunHandlerOutcome>;
|
|
52
|
+
}
|
|
53
|
+
export interface ResumeRunBindingInput {
|
|
54
|
+
readonly tenantId: TenantId;
|
|
55
|
+
readonly runId: RunId;
|
|
56
|
+
}
|
|
57
|
+
export interface InvokeAgentBindingInput {
|
|
58
|
+
readonly tenantId: TenantId;
|
|
59
|
+
/**
|
|
60
|
+
* Content-scope anchor. Omit → the binding
|
|
61
|
+
* resolves the tenant's Default via `projectBinding.getDefault(...)`
|
|
62
|
+
* at its own caller layer. Route callers who supply a project id in
|
|
63
|
+
* the body thread it through here.
|
|
64
|
+
*/
|
|
65
|
+
readonly projectId?: ProjectId;
|
|
66
|
+
readonly agentId: AgentId;
|
|
67
|
+
/** Omit → binding chooses the latest registered version. */
|
|
68
|
+
readonly agentVersion?: Semver;
|
|
69
|
+
/**
|
|
70
|
+
* Opaque payload forwarded from the request body's `input` field.
|
|
71
|
+
* The binding is responsible for coercing this into whatever shape
|
|
72
|
+
* `invokeAgent` expects (typically `{ userMessage, conversationId?, parameters?, participantId? }`).
|
|
73
|
+
* Coercion failures should surface as `code: 'bad-input'`.
|
|
74
|
+
*/
|
|
75
|
+
readonly input: unknown;
|
|
76
|
+
readonly dryRun?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* `false` → return the run id as soon as the run exists and finish it
|
|
79
|
+
* in the background (the route answers `202`; callers poll
|
|
80
|
+
* `GET /v1/runs/:runId`). Absent or `true` → return once the run
|
|
81
|
+
* reaches a terminal or suspended state. A binding that
|
|
82
|
+
* can't run in the background may treat `false` like `true`.
|
|
83
|
+
*/
|
|
84
|
+
readonly wait?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface InvokeFlowBindingInput {
|
|
87
|
+
readonly tenantId: TenantId;
|
|
88
|
+
readonly projectId?: ProjectId;
|
|
89
|
+
readonly flowId: FlowId;
|
|
90
|
+
readonly flowVersion?: Semver;
|
|
91
|
+
readonly input: unknown;
|
|
92
|
+
readonly dryRun?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* `false` → return the run id as soon as the run exists and finish it
|
|
95
|
+
* in the background (the route answers `202`; callers poll
|
|
96
|
+
* `GET /v1/runs/:runId`). Absent or `true` → return once the run
|
|
97
|
+
* reaches a terminal or suspended state. A binding that
|
|
98
|
+
* can't run in the background may treat `false` like `true`.
|
|
99
|
+
*/
|
|
100
|
+
readonly wait?: boolean;
|
|
101
|
+
}
|
|
102
|
+
export type RunHandlerOutcome = {
|
|
103
|
+
readonly kind: 'ok';
|
|
104
|
+
readonly runId: RunId;
|
|
105
|
+
} | {
|
|
106
|
+
readonly kind: 'err';
|
|
107
|
+
readonly error: RunHandlerFailure;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Domain error surfaced by the binding. `code` should be a value the
|
|
111
|
+
* error mapper knows how to translate (e.g. `agent-not-found`,
|
|
112
|
+
* `bad-input`, `unresolved-tool`, `guardrail-violation`). Unknown
|
|
113
|
+
* codes fall through to 500.
|
|
114
|
+
*/
|
|
115
|
+
export interface RunHandlerFailure {
|
|
116
|
+
readonly code: string;
|
|
117
|
+
readonly message: string;
|
|
118
|
+
/**
|
|
119
|
+
* The domain error's structured fields — sent as the wire error's
|
|
120
|
+
* `details`, which clients hydrate into typed errors. A binding
|
|
121
|
+
* forwards them as-is: for `guardrail-violation`, `violations` and
|
|
122
|
+
* `evaluationErrors` from `@kindgi/agents`' `GuardrailViolationError`.
|
|
123
|
+
*/
|
|
124
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=handler-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-binding.d.ts","sourceRoot":"","sources":["../src/handler-binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExE;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEtE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-binding.js","sourceRoot":"","sources":["../src/handler-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC"}
|