@kindgi/api 0.1.4 → 0.1.5-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-binding.d.ts +13 -0
- package/dist/agent-binding.d.ts.map +1 -1
- package/dist/agent-pins.d.ts.map +1 -1
- package/dist/agent-pins.js +18 -2
- package/dist/agent-pins.js.map +1 -1
- package/dist/app.d.ts +110 -17
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +163 -35
- package/dist/app.js.map +1 -1
- package/dist/block-publish.d.ts +56 -0
- package/dist/block-publish.d.ts.map +1 -0
- package/dist/block-publish.js +132 -0
- package/dist/block-publish.js.map +1 -0
- package/dist/caller.d.ts +24 -0
- package/dist/caller.d.ts.map +1 -0
- package/dist/caller.js +47 -0
- package/dist/caller.js.map +1 -0
- package/dist/capability-binding.d.ts +11 -0
- package/dist/capability-binding.d.ts.map +1 -1
- package/dist/derive-agent-version.d.ts +7 -0
- package/dist/derive-agent-version.d.ts.map +1 -1
- package/dist/derive-agent-version.js +4 -0
- package/dist/derive-agent-version.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +73 -7
- package/dist/errors.js.map +1 -1
- package/dist/eval-case-binding.d.ts +16 -4
- package/dist/eval-case-binding.d.ts.map +1 -1
- package/dist/eval-run-binding.d.ts +31 -0
- package/dist/eval-run-binding.d.ts.map +1 -1
- package/dist/eval-run-dispatcher.d.ts +7 -0
- package/dist/eval-run-dispatcher.d.ts.map +1 -1
- package/dist/eval-run-dispatcher.js.map +1 -1
- package/dist/eval-sample.d.ts +11 -0
- package/dist/eval-sample.d.ts.map +1 -0
- package/dist/eval-sample.js +34 -0
- package/dist/eval-sample.js.map +1 -0
- package/dist/eval-suite-binding.d.ts +13 -0
- package/dist/eval-suite-binding.d.ts.map +1 -1
- package/dist/eval-suite-binding.js.map +1 -1
- package/dist/flow-binding.d.ts +18 -0
- package/dist/flow-binding.d.ts.map +1 -1
- package/dist/flow-pins.d.ts.map +1 -1
- package/dist/flow-pins.js +18 -2
- package/dist/flow-pins.js.map +1 -1
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +25 -0
- package/dist/gate.js.map +1 -1
- package/dist/handler-binding.d.ts +32 -0
- package/dist/handler-binding.d.ts.map +1 -1
- package/dist/hitl-binding.d.ts +23 -0
- package/dist/hitl-binding.d.ts.map +1 -1
- package/dist/identity-directory-binding.d.ts +82 -4
- package/dist/identity-directory-binding.d.ts.map +1 -1
- package/dist/identity-provider-binding.d.ts +197 -17
- package/dist/identity-provider-binding.d.ts.map +1 -1
- package/dist/improvement-pass-binding.d.ts +196 -0
- package/dist/improvement-pass-binding.d.ts.map +1 -0
- package/dist/improvement-pass-binding.js +9 -0
- package/dist/improvement-pass-binding.js.map +1 -0
- package/dist/index.d.ts +35 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/judged-dispatcher.d.ts +25 -4
- package/dist/judged-dispatcher.d.ts.map +1 -1
- package/dist/judged-dispatcher.js +43 -6
- package/dist/judged-dispatcher.js.map +1 -1
- package/dist/judgment-binding.d.ts +25 -1
- package/dist/judgment-binding.d.ts.map +1 -1
- package/dist/mcp-endpoint-binding.d.ts +7 -0
- package/dist/mcp-endpoint-binding.d.ts.map +1 -1
- package/dist/memory-binding.d.ts +124 -17
- package/dist/memory-binding.d.ts.map +1 -1
- package/dist/memory-erasure-binding.d.ts +145 -0
- package/dist/memory-erasure-binding.d.ts.map +1 -0
- package/dist/memory-erasure-binding.js +4 -0
- package/dist/memory-erasure-binding.js.map +1 -0
- package/dist/middleware/auth.d.ts +66 -13
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +150 -50
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/authorize.d.ts +6 -0
- package/dist/middleware/authorize.d.ts.map +1 -1
- package/dist/middleware/authorize.js +113 -4
- package/dist/middleware/authorize.js.map +1 -1
- package/dist/middleware/error-mapper.d.ts +5 -0
- package/dist/middleware/error-mapper.d.ts.map +1 -1
- package/dist/middleware/error-mapper.js +14 -1
- package/dist/middleware/error-mapper.js.map +1 -1
- package/dist/middleware/idempotency.d.ts +70 -5
- package/dist/middleware/idempotency.d.ts.map +1 -1
- package/dist/middleware/idempotency.js +174 -41
- package/dist/middleware/idempotency.js.map +1 -1
- package/dist/middleware/key-project.d.ts +17 -0
- package/dist/middleware/key-project.d.ts.map +1 -0
- package/dist/middleware/key-project.js +75 -0
- package/dist/middleware/key-project.js.map +1 -0
- package/dist/middleware/principal.d.ts.map +1 -1
- package/dist/middleware/principal.js +9 -5
- package/dist/middleware/principal.js.map +1 -1
- package/dist/middleware/project-ref.d.ts.map +1 -1
- package/dist/middleware/project-ref.js +3 -0
- package/dist/middleware/project-ref.js.map +1 -1
- package/dist/openapi/generate.d.ts.map +1 -1
- package/dist/openapi/generate.js +5 -2
- package/dist/openapi/generate.js.map +1 -1
- package/dist/openapi/operations.d.ts.map +1 -1
- package/dist/openapi/operations.js +918 -139
- package/dist/openapi/operations.js.map +1 -1
- package/dist/openapi/schemas.d.ts +90 -13
- package/dist/openapi/schemas.d.ts.map +1 -1
- package/dist/openapi/schemas.js +2081 -359
- package/dist/openapi/schemas.js.map +1 -1
- package/dist/person-grants-binding.d.ts +77 -0
- package/dist/person-grants-binding.d.ts.map +1 -0
- package/dist/person-grants-binding.js +4 -0
- package/dist/person-grants-binding.js.map +1 -0
- package/dist/proposal-service.d.ts +121 -0
- package/dist/proposal-service.d.ts.map +1 -0
- package/dist/proposal-service.js +447 -0
- package/dist/proposal-service.js.map +1 -0
- package/dist/proposal-status.d.ts +60 -0
- package/dist/proposal-status.d.ts.map +1 -0
- package/dist/proposal-status.js +109 -0
- package/dist/proposal-status.js.map +1 -0
- package/dist/provider-binding.d.ts +10 -0
- package/dist/provider-binding.d.ts.map +1 -1
- package/dist/publish-refused.d.ts +18 -3
- package/dist/publish-refused.d.ts.map +1 -1
- package/dist/publish-refused.js +18 -3
- package/dist/publish-refused.js.map +1 -1
- package/dist/routes/adapters.d.ts +2 -1
- package/dist/routes/adapters.d.ts.map +1 -1
- package/dist/routes/adapters.js +3 -1
- package/dist/routes/adapters.js.map +1 -1
- package/dist/routes/agent-releases.d.ts +55 -3
- package/dist/routes/agent-releases.d.ts.map +1 -1
- package/dist/routes/agent-releases.js +85 -55
- package/dist/routes/agent-releases.js.map +1 -1
- package/dist/routes/agents.d.ts +12 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +100 -2
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/approvals.d.ts +15 -3
- package/dist/routes/approvals.d.ts.map +1 -1
- package/dist/routes/approvals.js +133 -122
- package/dist/routes/approvals.js.map +1 -1
- package/dist/routes/artifacts.d.ts +25 -3
- package/dist/routes/artifacts.d.ts.map +1 -1
- package/dist/routes/artifacts.js +116 -7
- package/dist/routes/artifacts.js.map +1 -1
- package/dist/routes/auth.d.ts +25 -1
- package/dist/routes/auth.d.ts.map +1 -1
- package/dist/routes/auth.js +655 -281
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/blocks.d.ts.map +1 -1
- package/dist/routes/blocks.js +2 -42
- package/dist/routes/blocks.js.map +1 -1
- package/dist/routes/capabilities.d.ts +2 -1
- package/dist/routes/capabilities.d.ts.map +1 -1
- package/dist/routes/capabilities.js +6 -1
- package/dist/routes/capabilities.js.map +1 -1
- package/dist/routes/compliance.d.ts +9 -10
- package/dist/routes/compliance.d.ts.map +1 -1
- package/dist/routes/compliance.js +42 -61
- package/dist/routes/compliance.js.map +1 -1
- package/dist/routes/conversations.d.ts +8 -1
- package/dist/routes/conversations.d.ts.map +1 -1
- package/dist/routes/conversations.js +87 -8
- package/dist/routes/conversations.js.map +1 -1
- package/dist/routes/cost.d.ts +7 -1
- package/dist/routes/cost.d.ts.map +1 -1
- package/dist/routes/cost.js +22 -3
- package/dist/routes/cost.js.map +1 -1
- package/dist/routes/denied.d.ts +11 -0
- package/dist/routes/denied.d.ts.map +1 -0
- package/dist/routes/denied.js +17 -0
- package/dist/routes/denied.js.map +1 -0
- package/dist/routes/deployments.d.ts +2 -1
- package/dist/routes/deployments.d.ts.map +1 -1
- package/dist/routes/deployments.js +44 -12
- package/dist/routes/deployments.js.map +1 -1
- package/dist/routes/eval-comparison.d.ts.map +1 -1
- package/dist/routes/eval-comparison.js +69 -1
- package/dist/routes/eval-comparison.js.map +1 -1
- package/dist/routes/eval-overrides.d.ts +18 -0
- package/dist/routes/eval-overrides.d.ts.map +1 -0
- package/dist/routes/eval-overrides.js +81 -0
- package/dist/routes/eval-overrides.js.map +1 -0
- package/dist/routes/eval-runs.d.ts +10 -1
- package/dist/routes/eval-runs.d.ts.map +1 -1
- package/dist/routes/eval-runs.js +63 -7
- package/dist/routes/eval-runs.js.map +1 -1
- package/dist/routes/eval-suites.d.ts.map +1 -1
- package/dist/routes/eval-suites.js +20 -1
- package/dist/routes/eval-suites.js.map +1 -1
- package/dist/routes/event-triggers.d.ts +5 -1
- package/dist/routes/event-triggers.d.ts.map +1 -1
- package/dist/routes/event-triggers.js +26 -3
- package/dist/routes/event-triggers.js.map +1 -1
- package/dist/routes/export-signing-keys.d.ts +12 -0
- package/dist/routes/export-signing-keys.d.ts.map +1 -0
- package/dist/routes/export-signing-keys.js +24 -0
- package/dist/routes/export-signing-keys.js.map +1 -0
- package/dist/routes/flows.d.ts.map +1 -1
- package/dist/routes/flows.js +9 -1
- package/dist/routes/flows.js.map +1 -1
- package/dist/routes/gate-policies.d.ts +4 -1
- package/dist/routes/gate-policies.d.ts.map +1 -1
- package/dist/routes/gate-policies.js +29 -5
- package/dist/routes/gate-policies.js.map +1 -1
- package/dist/routes/guardrails.d.ts +16 -14
- package/dist/routes/guardrails.d.ts.map +1 -1
- package/dist/routes/guardrails.js +39 -3
- package/dist/routes/guardrails.js.map +1 -1
- package/dist/routes/identity.d.ts +20 -4
- package/dist/routes/identity.d.ts.map +1 -1
- package/dist/routes/identity.js +246 -6
- package/dist/routes/identity.js.map +1 -1
- package/dist/routes/improvement-passes.d.ts +52 -0
- package/dist/routes/improvement-passes.d.ts.map +1 -0
- package/dist/routes/improvement-passes.js +449 -0
- package/dist/routes/improvement-passes.js.map +1 -0
- package/dist/routes/judged-suites.d.ts +50 -0
- package/dist/routes/judged-suites.d.ts.map +1 -1
- package/dist/routes/judged-suites.js +66 -27
- package/dist/routes/judged-suites.js.map +1 -1
- package/dist/routes/judgment-context.d.ts +18 -2
- package/dist/routes/judgment-context.d.ts.map +1 -1
- package/dist/routes/judgment-context.js +63 -5
- package/dist/routes/judgment-context.js.map +1 -1
- package/dist/routes/judgment-flow-context.d.ts.map +1 -1
- package/dist/routes/judgment-flow-context.js +14 -2
- package/dist/routes/judgment-flow-context.js.map +1 -1
- package/dist/routes/judgments.d.ts.map +1 -1
- package/dist/routes/judgments.js +8 -1
- package/dist/routes/judgments.js.map +1 -1
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +26 -1
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/memory-access.d.ts +43 -0
- package/dist/routes/memory-access.d.ts.map +1 -0
- package/dist/routes/memory-access.js +129 -0
- package/dist/routes/memory-access.js.map +1 -0
- package/dist/routes/memory-erasures.d.ts +25 -0
- package/dist/routes/memory-erasures.d.ts.map +1 -0
- package/dist/routes/memory-erasures.js +214 -0
- package/dist/routes/memory-erasures.js.map +1 -0
- package/dist/routes/memory-parse.d.ts +38 -0
- package/dist/routes/memory-parse.d.ts.map +1 -0
- package/dist/routes/memory-parse.js +199 -0
- package/dist/routes/memory-parse.js.map +1 -0
- package/dist/routes/memory.d.ts +9 -4
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +226 -234
- package/dist/routes/memory.js.map +1 -1
- package/dist/routes/observations.d.ts +4 -1
- package/dist/routes/observations.d.ts.map +1 -1
- package/dist/routes/observations.js +8 -2
- package/dist/routes/observations.js.map +1 -1
- package/dist/routes/pagination.d.ts +7 -0
- package/dist/routes/pagination.d.ts.map +1 -1
- package/dist/routes/pagination.js +10 -0
- package/dist/routes/pagination.js.map +1 -1
- package/dist/routes/policies.d.ts +2 -1
- package/dist/routes/policies.d.ts.map +1 -1
- package/dist/routes/policies.js +3 -1
- package/dist/routes/policies.js.map +1 -1
- package/dist/routes/project-mismatch.d.ts +22 -0
- package/dist/routes/project-mismatch.d.ts.map +1 -0
- package/dist/routes/project-mismatch.js +34 -0
- package/dist/routes/project-mismatch.js.map +1 -0
- package/dist/routes/projects.d.ts +15 -4
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +100 -9
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/proposals.d.ts +25 -17
- package/dist/routes/proposals.d.ts.map +1 -1
- package/dist/routes/proposals.js +340 -507
- package/dist/routes/proposals.js.map +1 -1
- package/dist/routes/provenance.d.ts +17 -3
- package/dist/routes/provenance.d.ts.map +1 -1
- package/dist/routes/provenance.js +79 -103
- package/dist/routes/provenance.js.map +1 -1
- package/dist/routes/providers.d.ts +17 -1
- package/dist/routes/providers.d.ts.map +1 -1
- package/dist/routes/providers.js +110 -3
- package/dist/routes/providers.js.map +1 -1
- package/dist/routes/public-run-tokens.d.ts.map +1 -1
- package/dist/routes/public-run-tokens.js +3 -0
- package/dist/routes/public-run-tokens.js.map +1 -1
- package/dist/routes/runs.d.ts +10 -0
- package/dist/routes/runs.d.ts.map +1 -1
- package/dist/routes/runs.js +92 -42
- package/dist/routes/runs.js.map +1 -1
- package/dist/routes/schedules.d.ts +21 -13
- package/dist/routes/schedules.d.ts.map +1 -1
- package/dist/routes/schedules.js +416 -55
- package/dist/routes/schedules.js.map +1 -1
- package/dist/routes/segments.d.ts +2 -0
- package/dist/routes/segments.d.ts.map +1 -1
- package/dist/routes/segments.js +5 -0
- package/dist/routes/segments.js.map +1 -1
- package/dist/routes/service-accounts.d.ts +17 -0
- package/dist/routes/service-accounts.d.ts.map +1 -0
- package/dist/routes/service-accounts.js +212 -0
- package/dist/routes/service-accounts.js.map +1 -0
- package/dist/routes/sign-in-options.d.ts +50 -0
- package/dist/routes/sign-in-options.d.ts.map +1 -0
- package/dist/routes/sign-in-options.js +98 -0
- package/dist/routes/sign-in-options.js.map +1 -0
- package/dist/routes/signing-keys.d.ts +2 -1
- package/dist/routes/signing-keys.d.ts.map +1 -1
- package/dist/routes/signing-keys.js +3 -1
- package/dist/routes/signing-keys.js.map +1 -1
- package/dist/routes/tenant-access.d.ts +13 -0
- package/dist/routes/tenant-access.d.ts.map +1 -0
- package/dist/routes/tenant-access.js +26 -0
- package/dist/routes/tenant-access.js.map +1 -0
- package/dist/routes/tenant.d.ts.map +1 -1
- package/dist/routes/tenant.js +4 -0
- package/dist/routes/tenant.js.map +1 -1
- package/dist/routes/token-sign-in.d.ts +36 -0
- package/dist/routes/token-sign-in.d.ts.map +1 -0
- package/dist/routes/token-sign-in.js +101 -0
- package/dist/routes/token-sign-in.js.map +1 -0
- package/dist/routes/tokens.d.ts +15 -5
- package/dist/routes/tokens.d.ts.map +1 -1
- package/dist/routes/tokens.js +162 -43
- package/dist/routes/tokens.js.map +1 -1
- package/dist/routes/tools.d.ts.map +1 -1
- package/dist/routes/tools.js +9 -1
- package/dist/routes/tools.js.map +1 -1
- package/dist/routes/trigger-access.d.ts +29 -0
- package/dist/routes/trigger-access.d.ts.map +1 -0
- package/dist/routes/trigger-access.js +33 -0
- package/dist/routes/trigger-access.js.map +1 -0
- package/dist/routes/webhook-endpoints.d.ts +2 -1
- package/dist/routes/webhook-endpoints.d.ts.map +1 -1
- package/dist/routes/webhook-endpoints.js +11 -3
- package/dist/routes/webhook-endpoints.js.map +1 -1
- package/dist/routes/webhooks.d.ts +5 -1
- package/dist/routes/webhooks.d.ts.map +1 -1
- package/dist/routes/webhooks.js +25 -2
- package/dist/routes/webhooks.js.map +1 -1
- package/dist/run-failure.d.ts +21 -0
- package/dist/run-failure.d.ts.map +1 -0
- package/dist/run-failure.js +29 -0
- package/dist/run-failure.js.map +1 -0
- package/dist/service-account-binding.d.ts +108 -0
- package/dist/service-account-binding.d.ts.map +1 -0
- package/dist/service-account-binding.js +4 -0
- package/dist/service-account-binding.js.map +1 -0
- package/dist/session-store-binding.d.ts +61 -13
- package/dist/session-store-binding.d.ts.map +1 -1
- package/dist/signed-export.d.ts +89 -0
- package/dist/signed-export.d.ts.map +1 -0
- package/dist/signed-export.js +149 -0
- package/dist/signed-export.js.map +1 -0
- package/dist/supervisor-binding.d.ts +186 -413
- package/dist/supervisor-binding.d.ts.map +1 -1
- package/dist/testing/app-bindings.d.ts +33 -0
- package/dist/testing/app-bindings.d.ts.map +1 -0
- package/dist/testing/app-bindings.js +112 -0
- package/dist/testing/app-bindings.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +13 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/stub-binding.d.ts +34 -0
- package/dist/testing/stub-binding.d.ts.map +1 -0
- package/dist/testing/stub-binding.js +42 -0
- package/dist/testing/stub-binding.js.map +1 -0
- package/dist/testing/trigger-registry.d.ts +21 -0
- package/dist/testing/trigger-registry.d.ts.map +1 -0
- package/dist/testing/trigger-registry.js +206 -0
- package/dist/testing/trigger-registry.js.map +1 -0
- package/dist/token-admin.d.ts +46 -8
- package/dist/token-admin.d.ts.map +1 -1
- package/dist/token-admin.js.map +1 -1
- package/dist/tool-binding.d.ts +13 -0
- package/dist/tool-binding.d.ts.map +1 -1
- package/dist/trigger-binding.d.ts +2 -2
- package/dist/trigger-binding.d.ts.map +1 -1
- package/dist/trigger-binding.js +1 -1
- package/dist/trigger-binding.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/webhook-endpoint-binding.d.ts +19 -3
- package/dist/webhook-endpoint-binding.d.ts.map +1 -1
- package/dist/webhook-endpoint-binding.js +1 -1
- package/dist/webhook-endpoint-binding.js.map +1 -1
- package/openapi.json +15385 -8788
- package/package.json +26 -22
- package/src/agent-binding.ts +14 -0
- package/src/agent-pins.ts +18 -2
- package/src/app.ts +366 -80
- package/src/block-publish.ts +181 -0
- package/src/caller.ts +62 -0
- package/src/capability-binding.ts +12 -0
- package/src/derive-agent-version.ts +9 -1
- package/src/errors.ts +73 -7
- package/src/eval-case-binding.ts +17 -1
- package/src/eval-run-binding.ts +31 -0
- package/src/eval-run-dispatcher.ts +7 -0
- package/src/eval-sample.ts +42 -0
- package/src/eval-suite-binding.ts +14 -0
- package/src/flow-binding.ts +19 -0
- package/src/flow-pins.ts +18 -2
- package/src/gate.ts +26 -0
- package/src/handler-binding.ts +36 -1
- package/src/hitl-binding.ts +24 -0
- package/src/identity-directory-binding.ts +85 -4
- package/src/identity-provider-binding.ts +216 -21
- package/src/improvement-pass-binding.ts +193 -0
- package/src/index.ts +153 -31
- package/src/judged-dispatcher.ts +78 -11
- package/src/judgment-binding.ts +25 -1
- package/src/mcp-endpoint-binding.ts +7 -0
- package/src/memory-binding.ts +121 -17
- package/src/memory-erasure-binding.ts +156 -0
- package/src/middleware/auth.ts +228 -62
- package/src/middleware/authorize.ts +139 -3
- package/src/middleware/error-mapper.ts +15 -1
- package/src/middleware/idempotency.ts +230 -43
- package/src/middleware/key-project.ts +86 -0
- package/src/middleware/principal.ts +9 -5
- package/src/middleware/project-ref.ts +3 -0
- package/src/openapi/generate.ts +11 -2
- package/src/openapi/operations.ts +1059 -142
- package/src/openapi/schemas.ts +2387 -469
- package/src/person-grants-binding.ts +76 -0
- package/src/proposal-service.ts +640 -0
- package/src/proposal-status.ts +176 -0
- package/src/provider-binding.ts +10 -0
- package/src/publish-refused.ts +38 -9
- package/src/routes/adapters.ts +4 -0
- package/src/routes/agent-releases.ts +121 -69
- package/src/routes/agents.ts +128 -1
- package/src/routes/approvals.ts +164 -154
- package/src/routes/artifacts.ts +181 -11
- package/src/routes/auth.ts +804 -336
- package/src/routes/blocks.ts +2 -53
- package/src/routes/capabilities.ts +10 -1
- package/src/routes/compliance.ts +60 -99
- package/src/routes/conversations.ts +101 -7
- package/src/routes/cost.ts +32 -3
- package/src/routes/denied.ts +28 -0
- package/src/routes/deployments.ts +62 -16
- package/src/routes/eval-comparison.ts +81 -2
- package/src/routes/eval-overrides.ts +108 -0
- package/src/routes/eval-runs.ts +86 -6
- package/src/routes/eval-suites.ts +25 -1
- package/src/routes/event-triggers.ts +27 -3
- package/src/routes/export-signing-keys.ts +31 -0
- package/src/routes/flows.ts +12 -1
- package/src/routes/gate-policies.ts +37 -6
- package/src/routes/guardrails.ts +61 -2
- package/src/routes/identity.ts +328 -10
- package/src/routes/improvement-passes.ts +541 -0
- package/src/routes/judged-suites.ts +113 -43
- package/src/routes/judgment-context.ts +76 -5
- package/src/routes/judgment-flow-context.ts +16 -2
- package/src/routes/judgments.ts +17 -3
- package/src/routes/mcp.ts +29 -1
- package/src/routes/memory-access.ts +179 -0
- package/src/routes/memory-erasures.ts +240 -0
- package/src/routes/memory-parse.ts +250 -0
- package/src/routes/memory.ts +244 -286
- package/src/routes/observations.ts +15 -2
- package/src/routes/pagination.ts +12 -0
- package/src/routes/policies.ts +7 -1
- package/src/routes/project-mismatch.ts +56 -0
- package/src/routes/projects.ts +107 -13
- package/src/routes/proposals.ts +370 -611
- package/src/routes/provenance.ts +99 -133
- package/src/routes/providers.ts +142 -3
- package/src/routes/public-run-tokens.ts +3 -0
- package/src/routes/runs.ts +119 -39
- package/src/routes/schedules.ts +472 -60
- package/src/routes/segments.ts +11 -0
- package/src/routes/service-accounts.ts +262 -0
- package/src/routes/sign-in-options.ts +168 -0
- package/src/routes/signing-keys.ts +7 -1
- package/src/routes/tenant-access.ts +37 -0
- package/src/routes/tenant.ts +6 -0
- package/src/routes/token-sign-in.ts +161 -0
- package/src/routes/tokens.ts +172 -46
- package/src/routes/tools.ts +12 -1
- package/src/routes/trigger-access.ts +72 -0
- package/src/routes/webhook-endpoints.ts +15 -3
- package/src/routes/webhooks.ts +26 -2
- package/src/run-failure.ts +42 -0
- package/src/service-account-binding.ts +113 -0
- package/src/session-store-binding.ts +65 -13
- package/src/signed-export.ts +250 -0
- package/src/supervisor-binding.ts +169 -409
- package/src/testing/app-bindings.ts +142 -0
- package/src/testing/index.ts +21 -0
- package/src/testing/stub-binding.ts +53 -0
- package/src/testing/trigger-registry.ts +259 -0
- package/src/token-admin.ts +40 -8
- package/src/tool-binding.ts +14 -0
- package/src/trigger-binding.ts +8 -1
- package/src/types.ts +16 -0
- package/src/webhook-endpoint-binding.ts +18 -3
package/src/routes/runs.ts
CHANGED
|
@@ -13,9 +13,10 @@ import type {
|
|
|
13
13
|
ScopeSegment,
|
|
14
14
|
Semver,
|
|
15
15
|
TenantId,
|
|
16
|
+
TriggerId,
|
|
16
17
|
} from '@kindgi/types';
|
|
17
18
|
|
|
18
|
-
import { ref } from '@kindgi/authz';
|
|
19
|
+
import { type Principal, denyPayload, ref } from '@kindgi/authz';
|
|
19
20
|
|
|
20
21
|
import { type WireErrorBody, statusFor, toWireError } from '../errors.js';
|
|
21
22
|
import type { EventBusBinding, EventPayload, Subscription } from '../event-bus-binding.js';
|
|
@@ -27,10 +28,12 @@ import type {
|
|
|
27
28
|
} from '../handler-binding.js';
|
|
28
29
|
import type { Authorizer } from '../middleware/authorize.js';
|
|
29
30
|
import type { MintPublicRunTokenResult } from '../public-run-token.js';
|
|
31
|
+
import { type RunFailure, runFailure } from '../run-failure.js';
|
|
30
32
|
import type { AppEnv } from '../types.js';
|
|
33
|
+
import { deniedBy } from './denied.js';
|
|
31
34
|
import { liveScopeToWire } from './live-scope-wire.js';
|
|
32
35
|
import type { DecodedCursor } from './pagination.js';
|
|
33
|
-
import { clampLimit, decodeCursor } from './pagination.js';
|
|
36
|
+
import { clampLimit, decodeCursor, isCursorTime } from './pagination.js';
|
|
34
37
|
import { parseListScope } from './scope-params.js';
|
|
35
38
|
import { parseSegmentsBody } from './segments.js';
|
|
36
39
|
import {
|
|
@@ -60,6 +63,16 @@ export interface RunsRouterOptions {
|
|
|
60
63
|
readonly publicRunTokens?: {
|
|
61
64
|
readonly mint: (tenantId: TenantId, runIds: readonly RunId[]) => MintPublicRunTokenResult;
|
|
62
65
|
};
|
|
66
|
+
/**
|
|
67
|
+
* Whether the tenant has the agent or flow a run names. With an
|
|
68
|
+
* authorizer, starting a run needs `execute` on an existing target; one
|
|
69
|
+
* that doesn't exist is left to the run handler's 404. Absent: the
|
|
70
|
+
* check always runs.
|
|
71
|
+
*/
|
|
72
|
+
readonly targetExists?: (
|
|
73
|
+
tenantId: TenantId,
|
|
74
|
+
target: { readonly kind: 'agent' | 'flow'; readonly id: string },
|
|
75
|
+
) => Promise<boolean>;
|
|
63
76
|
}
|
|
64
77
|
|
|
65
78
|
/** How far up the parent chain a public token's grant reaches. */
|
|
@@ -88,58 +101,55 @@ export function runsRouter(
|
|
|
88
101
|
// Each check resolves the run's project (by run id) and asks the
|
|
89
102
|
// authorizer about that project:
|
|
90
103
|
//
|
|
91
|
-
// POST / —
|
|
92
|
-
//
|
|
104
|
+
// POST / — execute on the agent or flow it names (an
|
|
105
|
+
// existing one; a missing one is the handler's 404)
|
|
93
106
|
// GET /:runId — read on the run's project
|
|
94
107
|
// POST /:runId/cancel — write on the run's project
|
|
95
|
-
// POST /:runId/resume —
|
|
108
|
+
// POST /:runId/resume — write on the run's project
|
|
96
109
|
// GET /:runId/journal — read on the run's project
|
|
97
110
|
// GET /:runId/stream — read on the run's project
|
|
98
|
-
// GET / — list;
|
|
99
|
-
// further (rows are not filtered per permission)
|
|
111
|
+
// GET / — list; rows filtered to `read` on their project
|
|
100
112
|
if (authorizer !== undefined) {
|
|
113
|
+
// A run that isn't there is the handler's 404: `read` on the tenant
|
|
114
|
+
// (which every reader has) lets it through without masking it. An id
|
|
115
|
+
// that isn't a run id is never looked up (its uuid cast would fail
|
|
116
|
+
// the query as a 500): the route's own 400 answers it.
|
|
101
117
|
const projectFromRun = async (c: import('hono').Context<AppEnv>) => {
|
|
102
118
|
const tenantId = c.get('tenantId') as TenantId;
|
|
103
119
|
const runId = c.req.param('runId') ?? '';
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// 404 rather than the middleware masking it as 403.
|
|
109
|
-
return ref('tenant', tenantId as unknown as string);
|
|
110
|
-
}
|
|
111
|
-
return ref('project', row.projectId as unknown as string);
|
|
120
|
+
const row = UUID_RE.test(runId) ? await runBinding.getRun(tenantId, runId as RunId) : null;
|
|
121
|
+
return row === null
|
|
122
|
+
? ref('tenant', tenantId as unknown as string)
|
|
123
|
+
: ref('project', row.projectId as unknown as string);
|
|
112
124
|
};
|
|
125
|
+
const onRunProject =
|
|
126
|
+
(action: 'read' | 'write') =>
|
|
127
|
+
async (c: import('hono').Context<AppEnv>, next: import('hono').Next) => {
|
|
128
|
+
const resource = await projectFromRun(c);
|
|
129
|
+
const mw = authorizer.authorize(
|
|
130
|
+
resource.type === 'tenant' ? 'read' : action,
|
|
131
|
+
() => resource,
|
|
132
|
+
);
|
|
133
|
+
return mw(c, next);
|
|
134
|
+
};
|
|
113
135
|
r.use('/:runId', async (c, next) => {
|
|
114
136
|
if (c.req.method !== 'GET') return next();
|
|
115
|
-
|
|
116
|
-
return mw(c, next);
|
|
117
|
-
});
|
|
118
|
-
r.use('/:runId/journal', async (c, next) => {
|
|
119
|
-
const mw = authorizer.authorize('read', projectFromRun);
|
|
120
|
-
return mw(c, next);
|
|
121
|
-
});
|
|
122
|
-
r.use('/:runId/stream', async (c, next) => {
|
|
123
|
-
const mw = authorizer.authorize('read', projectFromRun);
|
|
124
|
-
return mw(c, next);
|
|
137
|
+
return onRunProject('read')(c, next);
|
|
125
138
|
});
|
|
139
|
+
r.use('/:runId/journal', onRunProject('read'));
|
|
140
|
+
r.use('/:runId/stream', onRunProject('read'));
|
|
126
141
|
// Progress: `read` for API tokens. A public run token has no
|
|
127
142
|
// principal; the handlers check that its grant covers the run.
|
|
128
143
|
const progressAuth = async (c: import('hono').Context<AppEnv>, next: import('hono').Next) => {
|
|
129
144
|
if (c.get('tokenKind') === 'public-run') return next();
|
|
130
|
-
|
|
131
|
-
return mw(c, next);
|
|
145
|
+
return onRunProject('read')(c, next);
|
|
132
146
|
};
|
|
133
147
|
r.use('/:runId/progress', progressAuth);
|
|
134
148
|
r.use('/:runId/progress/stream', progressAuth);
|
|
135
|
-
r.use('/:runId/cancel',
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
r.use('/:runId/resume', async (c, next) => {
|
|
140
|
-
const mw = authorizer.authorize('execute', projectFromRun);
|
|
141
|
-
return mw(c, next);
|
|
142
|
-
});
|
|
149
|
+
r.use('/:runId/cancel', onRunProject('write'));
|
|
150
|
+
// As cancel: changing a run is `write` on its project (a project has
|
|
151
|
+
// no `execute`; asking for it refused everyone, T243 A).
|
|
152
|
+
r.use('/:runId/resume', onRunProject('write'));
|
|
143
153
|
}
|
|
144
154
|
|
|
145
155
|
// ---------- POST / (start a run — agent | flow) ----------
|
|
@@ -162,11 +172,46 @@ export function runsRouter(
|
|
|
162
172
|
return c.json(toWireError(parsed.error, requestId));
|
|
163
173
|
}
|
|
164
174
|
|
|
175
|
+
const target =
|
|
176
|
+
parsed.value.kind === 'agent'
|
|
177
|
+
? { kind: 'agent' as const, id: parsed.value.agentId as unknown as string }
|
|
178
|
+
: { kind: 'flow' as const, id: parsed.value.flowId as unknown as string };
|
|
179
|
+
if ((await options.targetExists?.(tenantId, target)) !== false) {
|
|
180
|
+
const refused = await deniedBy(authorizer, c, 'execute', ref(target.kind, target.id));
|
|
181
|
+
if (refused !== undefined) return refused;
|
|
182
|
+
}
|
|
183
|
+
// A run filed under a project the caller names needs `write` on it:
|
|
184
|
+
// the run lands there, readable by that project's viewers (T307).
|
|
185
|
+
// Unnamed, the runtime files it under the conversation's, the agent's
|
|
186
|
+
// or the flow's own project, so a caller who may only run it needs no
|
|
187
|
+
// more, and the refusal says so.
|
|
188
|
+
if (authorizer !== undefined && parsed.value.projectId !== undefined) {
|
|
189
|
+
const named = ref('project', parsed.value.projectId as unknown as string);
|
|
190
|
+
const decision = await authorizer.check(c, 'write', named);
|
|
191
|
+
if (!decision.allowed) {
|
|
192
|
+
const deny = denyPayload('write', named.type, named.id, decision.reason);
|
|
193
|
+
c.status(403);
|
|
194
|
+
return c.json(
|
|
195
|
+
toWireError(
|
|
196
|
+
{
|
|
197
|
+
code: deny.code,
|
|
198
|
+
message: `Permission denied: naming project ${named.id} needs write on it; omit \`projectId\` to run in the ${target.kind}'s own project`,
|
|
199
|
+
action: deny.action,
|
|
200
|
+
resource: deny.resource,
|
|
201
|
+
reason: deny.reason,
|
|
202
|
+
},
|
|
203
|
+
requestId,
|
|
204
|
+
),
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
165
209
|
const trace = c.get('trace');
|
|
166
210
|
const invocation = await invokeFromBody(
|
|
167
211
|
binding,
|
|
168
212
|
tenantId,
|
|
169
213
|
parsed.value,
|
|
214
|
+
c.get('principal') as Principal | undefined,
|
|
170
215
|
trace !== undefined ? { traceId: trace.traceId, spanId: trace.spanId } : undefined,
|
|
171
216
|
);
|
|
172
217
|
|
|
@@ -245,7 +290,7 @@ export function runsRouter(
|
|
|
245
290
|
const rawCursor = c.req.query('cursor');
|
|
246
291
|
if (rawCursor !== undefined && rawCursor.length > 0) {
|
|
247
292
|
const decoded = decodeCursor(rawCursor);
|
|
248
|
-
if (decoded === null) {
|
|
293
|
+
if (decoded === null || !isCursorTime(decoded.createdAt)) {
|
|
249
294
|
c.status(statusFor('bad-input') as never);
|
|
250
295
|
return c.json(
|
|
251
296
|
toWireError({ code: 'bad-input', message: '`cursor` is malformed' }, requestId),
|
|
@@ -277,8 +322,14 @@ export function runsRouter(
|
|
|
277
322
|
filter: listFilter.value,
|
|
278
323
|
}),
|
|
279
324
|
);
|
|
325
|
+
const visible =
|
|
326
|
+
authorizer === undefined
|
|
327
|
+
? page.data
|
|
328
|
+
: await authorizer.filterByCan(c, 'read', page.data, (row) =>
|
|
329
|
+
ref('project', row.projectId as unknown as string),
|
|
330
|
+
);
|
|
280
331
|
return c.json({
|
|
281
|
-
data:
|
|
332
|
+
data: visible.map((row) => serializeRun(row, { output: includeOutput })),
|
|
282
333
|
hasMore: page.nextCursor !== undefined,
|
|
283
334
|
...(page.nextCursor !== undefined && { nextCursor: page.nextCursor as unknown as string }),
|
|
284
335
|
});
|
|
@@ -631,10 +682,13 @@ function invokeFromBody(
|
|
|
631
682
|
binding: RunHandlerBinding,
|
|
632
683
|
tenantId: TenantId,
|
|
633
684
|
body: ParsedStartRunBody,
|
|
685
|
+
principal: Principal | undefined,
|
|
634
686
|
trace?: RunTrace,
|
|
635
687
|
): Promise<RunHandlerOutcome> {
|
|
636
688
|
const common = {
|
|
637
689
|
tenantId,
|
|
690
|
+
// Whom the run acts for: the authenticated caller, never the body.
|
|
691
|
+
...(principal !== undefined && { principal }),
|
|
638
692
|
...(trace !== undefined && { trace }),
|
|
639
693
|
...(body.projectId !== undefined && { projectId: body.projectId }),
|
|
640
694
|
input: body.input,
|
|
@@ -678,6 +732,7 @@ function serializeRun(
|
|
|
678
732
|
updatedAt: row.updatedAt as unknown as string,
|
|
679
733
|
completedAt: row.completedAt ?? undefined,
|
|
680
734
|
failureMessage: row.failureMessage ?? undefined,
|
|
735
|
+
...withFailure(row),
|
|
681
736
|
...(opts.output && row.output !== undefined && { output: row.output }),
|
|
682
737
|
...(row.parentRunId != null && { parentRunId: row.parentRunId as unknown as string }),
|
|
683
738
|
...(row.parentNodeId != null && { parentNodeId: row.parentNodeId as unknown as string }),
|
|
@@ -694,7 +749,20 @@ function serializeRun(
|
|
|
694
749
|
}),
|
|
695
750
|
...(row.replayOf != null && { replayOf: row.replayOf as unknown as string }),
|
|
696
751
|
...(row.evalRunId != null && { evalRunId: row.evalRunId }),
|
|
752
|
+
...(row.trigger !== undefined && {
|
|
753
|
+
trigger: {
|
|
754
|
+
triggerId: row.trigger.triggerId as unknown as string,
|
|
755
|
+
kind: row.trigger.kind,
|
|
756
|
+
fireId: row.trigger.fireId,
|
|
757
|
+
...(row.trigger.scheduledFor !== undefined && {
|
|
758
|
+
scheduledFor: row.trigger.scheduledFor as unknown as string,
|
|
759
|
+
}),
|
|
760
|
+
},
|
|
761
|
+
}),
|
|
697
762
|
...(row.versions != null && { versions: row.versions }),
|
|
763
|
+
...(row.contentErasedAt !== undefined && {
|
|
764
|
+
contentErasedAt: row.contentErasedAt as unknown as string,
|
|
765
|
+
}),
|
|
698
766
|
...(row.segments !== undefined &&
|
|
699
767
|
row.segments.length > 0 && {
|
|
700
768
|
segments: row.segments.map(({ key, value }) => ({ key, value })),
|
|
@@ -703,6 +771,12 @@ function serializeRun(
|
|
|
703
771
|
};
|
|
704
772
|
}
|
|
705
773
|
|
|
774
|
+
/** `failure` on a failed run's wire row: its error, decoded once, here. */
|
|
775
|
+
function withFailure(row: KernelRunRecord): { readonly failure?: RunFailure } {
|
|
776
|
+
const failure = runFailure(row);
|
|
777
|
+
return failure !== undefined ? { failure } : {};
|
|
778
|
+
}
|
|
779
|
+
|
|
706
780
|
/** A run's progress: status and timing, no data. */
|
|
707
781
|
function serializeRunProgress(row: KernelRunRecord): Record<string, unknown> {
|
|
708
782
|
return {
|
|
@@ -762,6 +836,7 @@ function listRunsInput(input: {
|
|
|
762
836
|
...(filter.agentId !== undefined && { agentId: filter.agentId }),
|
|
763
837
|
replays: filter.replays,
|
|
764
838
|
...(filter.evalRunId !== undefined && { evalRunId: filter.evalRunId }),
|
|
839
|
+
...(filter.triggerId !== undefined && { triggerId: filter.triggerId }),
|
|
765
840
|
};
|
|
766
841
|
}
|
|
767
842
|
|
|
@@ -771,6 +846,7 @@ interface RunListFilter {
|
|
|
771
846
|
readonly agentId?: string;
|
|
772
847
|
readonly replays: 'exclude' | 'include' | 'only';
|
|
773
848
|
readonly evalRunId?: string;
|
|
849
|
+
readonly triggerId?: TriggerId;
|
|
774
850
|
readonly includeOutput: boolean;
|
|
775
851
|
}
|
|
776
852
|
|
|
@@ -778,12 +854,15 @@ interface RunListFilter {
|
|
|
778
854
|
* `?parentRunId=` (children of a run), `?topLevel=true`, `?agentId=` (an
|
|
779
855
|
* agent's turns), `?replays=exclude|include|only` (default `exclude`),
|
|
780
856
|
* `?evalRunId=` (one eval run's replays; implies they are included),
|
|
781
|
-
* `?include=output`.
|
|
857
|
+
* `?triggerId=` (the runs a trigger started), `?include=output`.
|
|
782
858
|
*/
|
|
783
859
|
function parseRunListFilter(
|
|
784
860
|
query: Readonly<Record<string, string>>,
|
|
785
861
|
): { kind: 'ok'; value: RunListFilter } | { kind: 'err'; message: string } {
|
|
786
|
-
const { parentRunId, topLevel, agentId, replays, evalRunId, include } = query;
|
|
862
|
+
const { parentRunId, topLevel, agentId, replays, evalRunId, triggerId, include } = query;
|
|
863
|
+
if (triggerId !== undefined && !UUID_RE.test(triggerId)) {
|
|
864
|
+
return { kind: 'err', message: '`triggerId` must be a trigger id (a UUID)' };
|
|
865
|
+
}
|
|
787
866
|
if (agentId !== undefined && agentId.trim() === '') {
|
|
788
867
|
return { kind: 'err', message: '`agentId` must not be empty' };
|
|
789
868
|
}
|
|
@@ -824,6 +903,7 @@ function parseRunListFilter(
|
|
|
824
903
|
...(agentId !== undefined && { agentId }),
|
|
825
904
|
replays: replays ?? (evalRunId !== undefined ? 'include' : 'exclude'),
|
|
826
905
|
...(evalRunId !== undefined && { evalRunId }),
|
|
906
|
+
...(triggerId !== undefined && { triggerId: triggerId as TriggerId }),
|
|
827
907
|
includeOutput: includes.includes('output'),
|
|
828
908
|
},
|
|
829
909
|
};
|