@sema-agent/server 1.185.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +102 -0
- package/README.md +207 -0
- package/deploy/sema-up/README.md +145 -0
- package/deploy/sema-up/chart/Chart.yaml +11 -0
- package/deploy/sema-up/chart/templates/gitea.yaml +63 -0
- package/deploy/sema-up/chart/templates/minio.yaml +62 -0
- package/deploy/sema-up/chart/templates/namespace-sandbox.yaml +9 -0
- package/deploy/sema-up/chart/templates/pg-cluster.yaml +57 -0
- package/deploy/sema-up/chart/templates/registry.yaml +88 -0
- package/deploy/sema-up/chart/templates/sandbox-rbac.yaml +45 -0
- package/deploy/sema-up/chart/templates/server-v4pro.yaml +76 -0
- package/deploy/sema-up/chart/templates/server.yaml +88 -0
- package/deploy/sema-up/chart/values-full-single.yaml +9 -0
- package/deploy/sema-up/chart/values.yaml +100 -0
- package/deploy/sema-up/cluster-up.sh +432 -0
- package/deploy/sema-up/kube-up.sh +377 -0
- package/deploy/sema-up/lib/parse-machines.py +117 -0
- package/deploy/sema-up/machines.example.yaml +53 -0
- package/deploy/sema-up/preflight.sh +168 -0
- package/deploy/sema-up/sema-up.sh +758 -0
- package/deploy/sema-up/smoke.sh +100 -0
- package/deploy/sema-up/stack/compose.dataroot.yaml +16 -0
- package/deploy/sema-up/stack/compose.yaml +155 -0
- package/deploy/sema-up/stack/sema-stack-cluster.yaml +189 -0
- package/dist/approval.d.ts +27 -0
- package/dist/approval.d.ts.map +1 -0
- package/dist/approval.js +127 -0
- package/dist/approval.js.map +1 -0
- package/dist/audit.d.ts +29 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +95 -0
- package/dist/audit.js.map +1 -0
- package/dist/auth-bridge.d.ts +29 -0
- package/dist/auth-bridge.d.ts.map +1 -0
- package/dist/auth-bridge.js +145 -0
- package/dist/auth-bridge.js.map +1 -0
- package/dist/bake-runner/main.d.ts +20 -0
- package/dist/bake-runner/main.d.ts.map +1 -0
- package/dist/bake-runner/main.js +216 -0
- package/dist/bake-runner/main.js.map +1 -0
- package/dist/bake-runner/protocol.d.ts +49 -0
- package/dist/bake-runner/protocol.d.ts.map +1 -0
- package/dist/bake-runner/protocol.js +86 -0
- package/dist/bake-runner/protocol.js.map +1 -0
- package/dist/bake-runner/runner.d.ts +86 -0
- package/dist/bake-runner/runner.d.ts.map +1 -0
- package/dist/bake-runner/runner.js +228 -0
- package/dist/bake-runner/runner.js.map +1 -0
- package/dist/bench/l8/artifact.d.ts +62 -0
- package/dist/bench/l8/artifact.d.ts.map +1 -0
- package/dist/bench/l8/artifact.js +129 -0
- package/dist/bench/l8/artifact.js.map +1 -0
- package/dist/bench/l8/escape.d.ts +18 -0
- package/dist/bench/l8/escape.d.ts.map +1 -0
- package/dist/bench/l8/escape.js +9 -0
- package/dist/bench/l8/escape.js.map +1 -0
- package/dist/bench/l8/index.d.ts +5 -0
- package/dist/bench/l8/index.d.ts.map +1 -0
- package/dist/bench/l8/index.js +5 -0
- package/dist/bench/l8/index.js.map +1 -0
- package/dist/bench/l8/probes.d.ts +75 -0
- package/dist/bench/l8/probes.d.ts.map +1 -0
- package/dist/bench/l8/probes.js +178 -0
- package/dist/bench/l8/probes.js.map +1 -0
- package/dist/bench/l8/run-probes.d.ts +21 -0
- package/dist/bench/l8/run-probes.d.ts.map +1 -0
- package/dist/bench/l8/run-probes.js +130 -0
- package/dist/bench/l8/run-probes.js.map +1 -0
- package/dist/bench/s1/arms.d.ts +84 -0
- package/dist/bench/s1/arms.d.ts.map +1 -0
- package/dist/bench/s1/arms.js +329 -0
- package/dist/bench/s1/arms.js.map +1 -0
- package/dist/bench/s1/live-deps.d.ts +25 -0
- package/dist/bench/s1/live-deps.d.ts.map +1 -0
- package/dist/bench/s1/live-deps.js +449 -0
- package/dist/bench/s1/live-deps.js.map +1 -0
- package/dist/bench/s1/oracle.d.ts +34 -0
- package/dist/bench/s1/oracle.d.ts.map +1 -0
- package/dist/bench/s1/oracle.js +29 -0
- package/dist/bench/s1/oracle.js.map +1 -0
- package/dist/bench/s1/repair-oracle-adapter.d.ts +9 -0
- package/dist/bench/s1/repair-oracle-adapter.d.ts.map +1 -0
- package/dist/bench/s1/repair-oracle-adapter.js +27 -0
- package/dist/bench/s1/repair-oracle-adapter.js.map +1 -0
- package/dist/bench/s1/reviewer.d.ts +31 -0
- package/dist/bench/s1/reviewer.d.ts.map +1 -0
- package/dist/bench/s1/reviewer.js +26 -0
- package/dist/bench/s1/reviewer.js.map +1 -0
- package/dist/bench/s1/row.d.ts +29 -0
- package/dist/bench/s1/row.d.ts.map +1 -0
- package/dist/bench/s1/row.js +55 -0
- package/dist/bench/s1/row.js.map +1 -0
- package/dist/bench/s1/run-firm.d.ts +49 -0
- package/dist/bench/s1/run-firm.d.ts.map +1 -0
- package/dist/bench/s1/run-firm.js +291 -0
- package/dist/bench/s1/run-firm.js.map +1 -0
- package/dist/bench/s1/runner-ctx.d.ts +44 -0
- package/dist/bench/s1/runner-ctx.d.ts.map +1 -0
- package/dist/bench/s1/runner-ctx.js +59 -0
- package/dist/bench/s1/runner-ctx.js.map +1 -0
- package/dist/bench/s1/tasks.d.ts +48 -0
- package/dist/bench/s1/tasks.d.ts.map +1 -0
- package/dist/bench/s1/tasks.js +194 -0
- package/dist/bench/s1/tasks.js.map +1 -0
- package/dist/boot-reclaim.d.ts +10 -0
- package/dist/boot-reclaim.d.ts.map +1 -0
- package/dist/boot-reclaim.js +13 -0
- package/dist/boot-reclaim.js.map +1 -0
- package/dist/brain.d.ts +8 -0
- package/dist/brain.d.ts.map +1 -0
- package/dist/brain.js +83 -0
- package/dist/brain.js.map +1 -0
- package/dist/budget.d.ts +25 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +107 -0
- package/dist/budget.js.map +1 -0
- package/dist/capabilities/builtin-tools.d.ts +3 -0
- package/dist/capabilities/builtin-tools.d.ts.map +1 -0
- package/dist/capabilities/builtin-tools.js +11 -0
- package/dist/capabilities/builtin-tools.js.map +1 -0
- package/dist/capabilities/code-review-council.d.ts +21 -0
- package/dist/capabilities/code-review-council.d.ts.map +1 -0
- package/dist/capabilities/code-review-council.js +113 -0
- package/dist/capabilities/code-review-council.js.map +1 -0
- package/dist/capabilities/collab-wire.d.ts +34 -0
- package/dist/capabilities/collab-wire.d.ts.map +1 -0
- package/dist/capabilities/collab-wire.js +2 -0
- package/dist/capabilities/collab-wire.js.map +1 -0
- package/dist/capabilities/collab-workflows.d.ts +40 -0
- package/dist/capabilities/collab-workflows.d.ts.map +1 -0
- package/dist/capabilities/collab-workflows.js +90 -0
- package/dist/capabilities/collab-workflows.js.map +1 -0
- package/dist/capabilities/oa-tools.d.ts +9 -0
- package/dist/capabilities/oa-tools.d.ts.map +1 -0
- package/dist/capabilities/oa-tools.js +44 -0
- package/dist/capabilities/oa-tools.js.map +1 -0
- package/dist/capabilities/prompt.d.ts +3 -0
- package/dist/capabilities/prompt.d.ts.map +1 -0
- package/dist/capabilities/prompt.js +6 -0
- package/dist/capabilities/prompt.js.map +1 -0
- package/dist/capabilities/prompts/code-review.d.ts +11 -0
- package/dist/capabilities/prompts/code-review.d.ts.map +1 -0
- package/dist/capabilities/prompts/code-review.js +39 -0
- package/dist/capabilities/prompts/code-review.js.map +1 -0
- package/dist/capabilities/prompts/identity.d.ts +2 -0
- package/dist/capabilities/prompts/identity.d.ts.map +1 -0
- package/dist/capabilities/prompts/identity.js +6 -0
- package/dist/capabilities/prompts/identity.js.map +1 -0
- package/dist/capabilities/prompts/team.d.ts +6 -0
- package/dist/capabilities/prompts/team.d.ts.map +1 -0
- package/dist/capabilities/prompts/team.js +6 -0
- package/dist/capabilities/prompts/team.js.map +1 -0
- package/dist/capabilities/repo-tools.d.ts +19 -0
- package/dist/capabilities/repo-tools.d.ts.map +1 -0
- package/dist/capabilities/repo-tools.js +98 -0
- package/dist/capabilities/repo-tools.js.map +1 -0
- package/dist/capabilities/scenarios.d.ts +72 -0
- package/dist/capabilities/scenarios.d.ts.map +1 -0
- package/dist/capabilities/scenarios.js +241 -0
- package/dist/capabilities/scenarios.js.map +1 -0
- package/dist/capabilities/select-environment-tool.d.ts +22 -0
- package/dist/capabilities/select-environment-tool.d.ts.map +1 -0
- package/dist/capabilities/select-environment-tool.js +86 -0
- package/dist/capabilities/select-environment-tool.js.map +1 -0
- package/dist/capabilities/skills.d.ts +12 -0
- package/dist/capabilities/skills.d.ts.map +1 -0
- package/dist/capabilities/skills.js +50 -0
- package/dist/capabilities/skills.js.map +1 -0
- package/dist/capabilities/team.d.ts +31 -0
- package/dist/capabilities/team.d.ts.map +1 -0
- package/dist/capabilities/team.js +66 -0
- package/dist/capabilities/team.js.map +1 -0
- package/dist/config-provider.d.ts +47 -0
- package/dist/config-provider.d.ts.map +1 -0
- package/dist/config-provider.js +156 -0
- package/dist/config-provider.js.map +1 -0
- package/dist/config.d.ts +272 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +605 -0
- package/dist/config.js.map +1 -0
- package/dist/degenerate-instrument.d.ts +17 -0
- package/dist/degenerate-instrument.d.ts.map +1 -0
- package/dist/degenerate-instrument.js +113 -0
- package/dist/degenerate-instrument.js.map +1 -0
- package/dist/elicitation.d.ts +47 -0
- package/dist/elicitation.d.ts.map +1 -0
- package/dist/elicitation.js +151 -0
- package/dist/elicitation.js.map +1 -0
- package/dist/env-facts.d.ts +18 -0
- package/dist/env-facts.d.ts.map +1 -0
- package/dist/env-facts.js +26 -0
- package/dist/env-facts.js.map +1 -0
- package/dist/finance/cost-taxonomy.d.ts +34 -0
- package/dist/finance/cost-taxonomy.d.ts.map +1 -0
- package/dist/finance/cost-taxonomy.js +26 -0
- package/dist/finance/cost-taxonomy.js.map +1 -0
- package/dist/fleet/fleet-bus.d.ts +137 -0
- package/dist/fleet/fleet-bus.d.ts.map +1 -0
- package/dist/fleet/fleet-bus.js +249 -0
- package/dist/fleet/fleet-bus.js.map +1 -0
- package/dist/fleet-client.d.ts +50 -0
- package/dist/fleet-client.d.ts.map +1 -0
- package/dist/fleet-client.js +150 -0
- package/dist/fleet-client.js.map +1 -0
- package/dist/fleet-lease.d.ts +76 -0
- package/dist/fleet-lease.d.ts.map +1 -0
- package/dist/fleet-lease.js +124 -0
- package/dist/fleet-lease.js.map +1 -0
- package/dist/hooks/hook-runner.d.ts +41 -0
- package/dist/hooks/hook-runner.d.ts.map +1 -0
- package/dist/hooks/hook-runner.js +975 -0
- package/dist/hooks/hook-runner.js.map +1 -0
- package/dist/http/idempotency.d.ts +12 -0
- package/dist/http/idempotency.d.ts.map +1 -0
- package/dist/http/idempotency.js +49 -0
- package/dist/http/idempotency.js.map +1 -0
- package/dist/http/server.d.ts +185 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +4845 -0
- package/dist/http/server.js.map +1 -0
- package/dist/http/wire-gate.d.ts +3 -0
- package/dist/http/wire-gate.d.ts.map +1 -0
- package/dist/http/wire-gate.js +6 -0
- package/dist/http/wire-gate.js.map +1 -0
- package/dist/images/bake-validate.d.ts +41 -0
- package/dist/images/bake-validate.d.ts.map +1 -0
- package/dist/images/bake-validate.js +183 -0
- package/dist/images/bake-validate.js.map +1 -0
- package/dist/images/manifest.d.ts +36 -0
- package/dist/images/manifest.d.ts.map +1 -0
- package/dist/images/manifest.js +69 -0
- package/dist/images/manifest.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/key-resolver.d.ts +5 -0
- package/dist/key-resolver.d.ts.map +1 -0
- package/dist/key-resolver.js +15 -0
- package/dist/key-resolver.js.map +1 -0
- package/dist/leader/diffout.d.ts +24 -0
- package/dist/leader/diffout.d.ts.map +1 -0
- package/dist/leader/diffout.js +54 -0
- package/dist/leader/diffout.js.map +1 -0
- package/dist/leader/diffup.d.ts +14 -0
- package/dist/leader/diffup.d.ts.map +1 -0
- package/dist/leader/diffup.js +81 -0
- package/dist/leader/diffup.js.map +1 -0
- package/dist/leader/endpoint.d.ts +30 -0
- package/dist/leader/endpoint.d.ts.map +1 -0
- package/dist/leader/endpoint.js +76 -0
- package/dist/leader/endpoint.js.map +1 -0
- package/dist/leader/fanout.d.ts +46 -0
- package/dist/leader/fanout.d.ts.map +1 -0
- package/dist/leader/fanout.js +109 -0
- package/dist/leader/fanout.js.map +1 -0
- package/dist/leader/grader-env-factory.d.ts +36 -0
- package/dist/leader/grader-env-factory.d.ts.map +1 -0
- package/dist/leader/grader-env-factory.js +73 -0
- package/dist/leader/grader-env-factory.js.map +1 -0
- package/dist/leader/leader.d.ts +102 -0
- package/dist/leader/leader.d.ts.map +1 -0
- package/dist/leader/leader.js +354 -0
- package/dist/leader/leader.js.map +1 -0
- package/dist/leader/merge.d.ts +109 -0
- package/dist/leader/merge.d.ts.map +1 -0
- package/dist/leader/merge.js +184 -0
- package/dist/leader/merge.js.map +1 -0
- package/dist/leader/planner.d.ts +26 -0
- package/dist/leader/planner.d.ts.map +1 -0
- package/dist/leader/planner.js +137 -0
- package/dist/leader/planner.js.map +1 -0
- package/dist/leader/repair-oracle.d.ts +34 -0
- package/dist/leader/repair-oracle.d.ts.map +1 -0
- package/dist/leader/repair-oracle.js +83 -0
- package/dist/leader/repair-oracle.js.map +1 -0
- package/dist/leader/repair-wire.d.ts +49 -0
- package/dist/leader/repair-wire.d.ts.map +1 -0
- package/dist/leader/repair-wire.js +90 -0
- package/dist/leader/repair-wire.js.map +1 -0
- package/dist/leader/wire.d.ts +66 -0
- package/dist/leader/wire.d.ts.map +1 -0
- package/dist/leader/wire.js +452 -0
- package/dist/leader/wire.js.map +1 -0
- package/dist/lsp/e2b-bridge.d.ts +8 -0
- package/dist/lsp/e2b-bridge.d.ts.map +1 -0
- package/dist/lsp/e2b-bridge.js +71 -0
- package/dist/lsp/e2b-bridge.js.map +1 -0
- package/dist/lsp/e2b-manager.d.ts +16 -0
- package/dist/lsp/e2b-manager.d.ts.map +1 -0
- package/dist/lsp/e2b-manager.js +49 -0
- package/dist/lsp/e2b-manager.js.map +1 -0
- package/dist/lsp/lsp-frames.d.ts +2 -0
- package/dist/lsp/lsp-frames.d.ts.map +1 -0
- package/dist/lsp/lsp-frames.js +25 -0
- package/dist/lsp/lsp-frames.js.map +1 -0
- package/dist/lsp/manager.d.ts +41 -0
- package/dist/lsp/manager.d.ts.map +1 -0
- package/dist/lsp/manager.js +84 -0
- package/dist/lsp/manager.js.map +1 -0
- package/dist/lsp/types.d.ts +2 -0
- package/dist/lsp/types.d.ts.map +1 -0
- package/dist/lsp/types.js +2 -0
- package/dist/lsp/types.js.map +1 -0
- package/dist/lsp/ws-transport.d.ts +28 -0
- package/dist/lsp/ws-transport.d.ts.map +1 -0
- package/dist/lsp/ws-transport.js +209 -0
- package/dist/lsp/ws-transport.js.map +1 -0
- package/dist/lsp-evict.d.ts +2 -0
- package/dist/lsp-evict.d.ts.map +1 -0
- package/dist/lsp-evict.js +14 -0
- package/dist/lsp-evict.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +1526 -0
- package/dist/main.js.map +1 -0
- package/dist/memory-export.d.ts +3 -0
- package/dist/memory-export.d.ts.map +1 -0
- package/dist/memory-export.js +8 -0
- package/dist/memory-export.js.map +1 -0
- package/dist/memory-sync-client.d.ts +29 -0
- package/dist/memory-sync-client.d.ts.map +1 -0
- package/dist/memory-sync-client.js +133 -0
- package/dist/memory-sync-client.js.map +1 -0
- package/dist/memory-sync.d.ts +41 -0
- package/dist/memory-sync.d.ts.map +1 -0
- package/dist/memory-sync.js +183 -0
- package/dist/memory-sync.js.map +1 -0
- package/dist/model-select.d.ts +8 -0
- package/dist/model-select.d.ts.map +1 -0
- package/dist/model-select.js +12 -0
- package/dist/model-select.js.map +1 -0
- package/dist/observability/cost-quota.d.ts +21 -0
- package/dist/observability/cost-quota.d.ts.map +1 -0
- package/dist/observability/cost-quota.js +42 -0
- package/dist/observability/cost-quota.js.map +1 -0
- package/dist/observability/logger.d.ts +9 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +35 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +76 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +263 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/otel-exporter.d.ts +37 -0
- package/dist/observability/otel-exporter.d.ts.map +1 -0
- package/dist/observability/otel-exporter.js +95 -0
- package/dist/observability/otel-exporter.js.map +1 -0
- package/dist/observability/principal-context.d.ts +5 -0
- package/dist/observability/principal-context.d.ts.map +1 -0
- package/dist/observability/principal-context.js +9 -0
- package/dist/observability/principal-context.js.map +1 -0
- package/dist/observability/rate-limit.d.ts +18 -0
- package/dist/observability/rate-limit.d.ts.map +1 -0
- package/dist/observability/rate-limit.js +30 -0
- package/dist/observability/rate-limit.js.map +1 -0
- package/dist/observability/tool-trace.d.ts +6 -0
- package/dist/observability/tool-trace.d.ts.map +1 -0
- package/dist/observability/tool-trace.js +73 -0
- package/dist/observability/tool-trace.js.map +1 -0
- package/dist/orchestration/hardened-vm-runner.d.ts +26 -0
- package/dist/orchestration/hardened-vm-runner.d.ts.map +1 -0
- package/dist/orchestration/hardened-vm-runner.js +217 -0
- package/dist/orchestration/hardened-vm-runner.js.map +1 -0
- package/dist/orchestration/hardened-vm-worker-runner.d.ts +4 -0
- package/dist/orchestration/hardened-vm-worker-runner.d.ts.map +1 -0
- package/dist/orchestration/hardened-vm-worker-runner.js +79 -0
- package/dist/orchestration/hardened-vm-worker-runner.js.map +1 -0
- package/dist/orchestration/hardened-vm-worker.d.ts +2 -0
- package/dist/orchestration/hardened-vm-worker.d.ts.map +1 -0
- package/dist/orchestration/hardened-vm-worker.js +80 -0
- package/dist/orchestration/hardened-vm-worker.js.map +1 -0
- package/dist/orchestration/subagent-steer.d.ts +12 -0
- package/dist/orchestration/subagent-steer.d.ts.map +1 -0
- package/dist/orchestration/subagent-steer.js +45 -0
- package/dist/orchestration/subagent-steer.js.map +1 -0
- package/dist/orchestration/workflow-agent-steer.d.ts +14 -0
- package/dist/orchestration/workflow-agent-steer.d.ts.map +1 -0
- package/dist/orchestration/workflow-agent-steer.js +41 -0
- package/dist/orchestration/workflow-agent-steer.js.map +1 -0
- package/dist/orchestration/workflow-completion-inbox.d.ts +101 -0
- package/dist/orchestration/workflow-completion-inbox.d.ts.map +1 -0
- package/dist/orchestration/workflow-completion-inbox.js +327 -0
- package/dist/orchestration/workflow-completion-inbox.js.map +1 -0
- package/dist/orchestration/workflow-notify-journal.d.ts +120 -0
- package/dist/orchestration/workflow-notify-journal.d.ts.map +1 -0
- package/dist/orchestration/workflow-notify-journal.js +297 -0
- package/dist/orchestration/workflow-notify-journal.js.map +1 -0
- package/dist/per-task-image.d.ts +27 -0
- package/dist/per-task-image.d.ts.map +1 -0
- package/dist/per-task-image.js +37 -0
- package/dist/per-task-image.js.map +1 -0
- package/dist/plan-cache-probe.d.ts +21 -0
- package/dist/plan-cache-probe.d.ts.map +1 -0
- package/dist/plan-cache-probe.js +79 -0
- package/dist/plan-cache-probe.js.map +1 -0
- package/dist/plugins/approval-exemption-store.d.ts +56 -0
- package/dist/plugins/approval-exemption-store.d.ts.map +1 -0
- package/dist/plugins/approval-exemption-store.js +216 -0
- package/dist/plugins/approval-exemption-store.js.map +1 -0
- package/dist/plugins/background-shell-support.d.ts +64 -0
- package/dist/plugins/background-shell-support.d.ts.map +1 -0
- package/dist/plugins/background-shell-support.js +235 -0
- package/dist/plugins/background-shell-support.js.map +1 -0
- package/dist/plugins/blob-backend.d.ts +44 -0
- package/dist/plugins/blob-backend.d.ts.map +1 -0
- package/dist/plugins/blob-backend.js +188 -0
- package/dist/plugins/blob-backend.js.map +1 -0
- package/dist/plugins/caching-session-store.d.ts +51 -0
- package/dist/plugins/caching-session-store.d.ts.map +1 -0
- package/dist/plugins/caching-session-store.js +142 -0
- package/dist/plugins/caching-session-store.js.map +1 -0
- package/dist/plugins/file-outcome-sink.d.ts +20 -0
- package/dist/plugins/file-outcome-sink.d.ts.map +1 -0
- package/dist/plugins/file-outcome-sink.js +14 -0
- package/dist/plugins/file-outcome-sink.js.map +1 -0
- package/dist/plugins/file-resume-anchor-store.d.ts +19 -0
- package/dist/plugins/file-resume-anchor-store.d.ts.map +1 -0
- package/dist/plugins/file-resume-anchor-store.js +103 -0
- package/dist/plugins/file-resume-anchor-store.js.map +1 -0
- package/dist/plugins/file-run-store.d.ts +95 -0
- package/dist/plugins/file-run-store.d.ts.map +1 -0
- package/dist/plugins/file-run-store.js +446 -0
- package/dist/plugins/file-run-store.js.map +1 -0
- package/dist/plugins/file-workflow-journal-store.d.ts +2 -0
- package/dist/plugins/file-workflow-journal-store.d.ts.map +1 -0
- package/dist/plugins/file-workflow-journal-store.js +2 -0
- package/dist/plugins/file-workflow-journal-store.js.map +1 -0
- package/dist/plugins/host-platform.d.ts +19 -0
- package/dist/plugins/host-platform.d.ts.map +1 -0
- package/dist/plugins/host-platform.js +71 -0
- package/dist/plugins/host-platform.js.map +1 -0
- package/dist/plugins/local-checkpoint-store.d.ts +41 -0
- package/dist/plugins/local-checkpoint-store.d.ts.map +1 -0
- package/dist/plugins/local-checkpoint-store.js +217 -0
- package/dist/plugins/local-checkpoint-store.js.map +1 -0
- package/dist/plugins/local-session-store.d.ts +69 -0
- package/dist/plugins/local-session-store.d.ts.map +1 -0
- package/dist/plugins/local-session-store.js +431 -0
- package/dist/plugins/local-session-store.js.map +1 -0
- package/dist/plugins/memory-engine-pg.d.ts +47 -0
- package/dist/plugins/memory-engine-pg.d.ts.map +1 -0
- package/dist/plugins/memory-engine-pg.js +306 -0
- package/dist/plugins/memory-engine-pg.js.map +1 -0
- package/dist/plugins/memory-engine-tidb.d.ts +40 -0
- package/dist/plugins/memory-engine-tidb.d.ts.map +1 -0
- package/dist/plugins/memory-engine-tidb.js +296 -0
- package/dist/plugins/memory-engine-tidb.js.map +1 -0
- package/dist/plugins/memory-engine-vector-util.d.ts +2 -0
- package/dist/plugins/memory-engine-vector-util.d.ts.map +1 -0
- package/dist/plugins/memory-engine-vector-util.js +2 -0
- package/dist/plugins/memory-engine-vector-util.js.map +1 -0
- package/dist/plugins/memory-resume-anchor-store.d.ts +12 -0
- package/dist/plugins/memory-resume-anchor-store.d.ts.map +1 -0
- package/dist/plugins/memory-resume-anchor-store.js +31 -0
- package/dist/plugins/memory-resume-anchor-store.js.map +1 -0
- package/dist/plugins/memory-run-store.d.ts +75 -0
- package/dist/plugins/memory-run-store.d.ts.map +1 -0
- package/dist/plugins/memory-run-store.js +267 -0
- package/dist/plugins/memory-run-store.js.map +1 -0
- package/dist/plugins/memory-sync-store-pg.d.ts +78 -0
- package/dist/plugins/memory-sync-store-pg.d.ts.map +1 -0
- package/dist/plugins/memory-sync-store-pg.js +152 -0
- package/dist/plugins/memory-sync-store-pg.js.map +1 -0
- package/dist/plugins/memory-sync-store-tidb.d.ts +32 -0
- package/dist/plugins/memory-sync-store-tidb.d.ts.map +1 -0
- package/dist/plugins/memory-sync-store-tidb.js +146 -0
- package/dist/plugins/memory-sync-store-tidb.js.map +1 -0
- package/dist/plugins/pg-approval-store.d.ts +28 -0
- package/dist/plugins/pg-approval-store.d.ts.map +1 -0
- package/dist/plugins/pg-approval-store.js +107 -0
- package/dist/plugins/pg-approval-store.js.map +1 -0
- package/dist/plugins/pg-breaker-state.d.ts +20 -0
- package/dist/plugins/pg-breaker-state.d.ts.map +1 -0
- package/dist/plugins/pg-breaker-state.js +89 -0
- package/dist/plugins/pg-breaker-state.js.map +1 -0
- package/dist/plugins/pg-checkpoint-store.d.ts +34 -0
- package/dist/plugins/pg-checkpoint-store.d.ts.map +1 -0
- package/dist/plugins/pg-checkpoint-store.js +193 -0
- package/dist/plugins/pg-checkpoint-store.js.map +1 -0
- package/dist/plugins/pg-cost-quota.d.ts +18 -0
- package/dist/plugins/pg-cost-quota.d.ts.map +1 -0
- package/dist/plugins/pg-cost-quota.js +189 -0
- package/dist/plugins/pg-cost-quota.js.map +1 -0
- package/dist/plugins/pg-file-snapshot-store.d.ts +26 -0
- package/dist/plugins/pg-file-snapshot-store.d.ts.map +1 -0
- package/dist/plugins/pg-file-snapshot-store.js +181 -0
- package/dist/plugins/pg-file-snapshot-store.js.map +1 -0
- package/dist/plugins/pg-image-bake.d.ts +42 -0
- package/dist/plugins/pg-image-bake.d.ts.map +1 -0
- package/dist/plugins/pg-image-bake.js +471 -0
- package/dist/plugins/pg-image-bake.js.map +1 -0
- package/dist/plugins/pg-image-index.d.ts +23 -0
- package/dist/plugins/pg-image-index.d.ts.map +1 -0
- package/dist/plugins/pg-image-index.js +252 -0
- package/dist/plugins/pg-image-index.js.map +1 -0
- package/dist/plugins/pg-outcome-ledger.d.ts +23 -0
- package/dist/plugins/pg-outcome-ledger.d.ts.map +1 -0
- package/dist/plugins/pg-outcome-ledger.js +102 -0
- package/dist/plugins/pg-outcome-ledger.js.map +1 -0
- package/dist/plugins/pg-pool.d.ts +7 -0
- package/dist/plugins/pg-pool.d.ts.map +1 -0
- package/dist/plugins/pg-pool.js +233 -0
- package/dist/plugins/pg-pool.js.map +1 -0
- package/dist/plugins/pg-rate-limiter.d.ts +49 -0
- package/dist/plugins/pg-rate-limiter.d.ts.map +1 -0
- package/dist/plugins/pg-rate-limiter.js +193 -0
- package/dist/plugins/pg-rate-limiter.js.map +1 -0
- package/dist/plugins/pg-resume-anchor-store.d.ts +14 -0
- package/dist/plugins/pg-resume-anchor-store.d.ts.map +1 -0
- package/dist/plugins/pg-resume-anchor-store.js +23 -0
- package/dist/plugins/pg-resume-anchor-store.js.map +1 -0
- package/dist/plugins/pg-run-store.d.ts +76 -0
- package/dist/plugins/pg-run-store.d.ts.map +1 -0
- package/dist/plugins/pg-run-store.js +301 -0
- package/dist/plugins/pg-run-store.js.map +1 -0
- package/dist/plugins/pg-session-policy-store.d.ts +12 -0
- package/dist/plugins/pg-session-policy-store.d.ts.map +1 -0
- package/dist/plugins/pg-session-policy-store.js +88 -0
- package/dist/plugins/pg-session-policy-store.js.map +1 -0
- package/dist/plugins/pg-session-storage.d.ts +59 -0
- package/dist/plugins/pg-session-storage.d.ts.map +1 -0
- package/dist/plugins/pg-session-storage.js +484 -0
- package/dist/plugins/pg-session-storage.js.map +1 -0
- package/dist/plugins/pg-session-store.d.ts +2 -0
- package/dist/plugins/pg-session-store.d.ts.map +1 -0
- package/dist/plugins/pg-session-store.js +2 -0
- package/dist/plugins/pg-session-store.js.map +1 -0
- package/dist/plugins/pg-tool-result-store.d.ts +16 -0
- package/dist/plugins/pg-tool-result-store.d.ts.map +1 -0
- package/dist/plugins/pg-tool-result-store.js +52 -0
- package/dist/plugins/pg-tool-result-store.js.map +1 -0
- package/dist/plugins/pg-workflow-journal-store.d.ts +11 -0
- package/dist/plugins/pg-workflow-journal-store.d.ts.map +1 -0
- package/dist/plugins/pg-workflow-journal-store.js +28 -0
- package/dist/plugins/pg-workflow-journal-store.js.map +1 -0
- package/dist/plugins/pg-workflow-run-store.d.ts +55 -0
- package/dist/plugins/pg-workflow-run-store.d.ts.map +1 -0
- package/dist/plugins/pg-workflow-run-store.js +216 -0
- package/dist/plugins/pg-workflow-run-store.js.map +1 -0
- package/dist/plugins/remote-env-adb.d.ts +119 -0
- package/dist/plugins/remote-env-adb.d.ts.map +1 -0
- package/dist/plugins/remote-env-adb.js +502 -0
- package/dist/plugins/remote-env-adb.js.map +1 -0
- package/dist/plugins/remote-env-e2b.d.ts +162 -0
- package/dist/plugins/remote-env-e2b.d.ts.map +1 -0
- package/dist/plugins/remote-env-e2b.js +931 -0
- package/dist/plugins/remote-env-e2b.js.map +1 -0
- package/dist/plugins/remote-env-host.d.ts +141 -0
- package/dist/plugins/remote-env-host.d.ts.map +1 -0
- package/dist/plugins/remote-env-host.js +868 -0
- package/dist/plugins/remote-env-host.js.map +1 -0
- package/dist/plugins/remote-env-k8s.d.ts +209 -0
- package/dist/plugins/remote-env-k8s.d.ts.map +1 -0
- package/dist/plugins/remote-env-k8s.js +1206 -0
- package/dist/plugins/remote-env-k8s.js.map +1 -0
- package/dist/plugins/remote-env-local-docker.d.ts +124 -0
- package/dist/plugins/remote-env-local-docker.d.ts.map +1 -0
- package/dist/plugins/remote-env-local-docker.js +597 -0
- package/dist/plugins/remote-env-local-docker.js.map +1 -0
- package/dist/plugins/remote-env-ssh.d.ts +122 -0
- package/dist/plugins/remote-env-ssh.d.ts.map +1 -0
- package/dist/plugins/remote-env-ssh.js +511 -0
- package/dist/plugins/remote-env-ssh.js.map +1 -0
- package/dist/plugins/remote-shell.d.ts +7 -0
- package/dist/plugins/remote-shell.d.ts.map +1 -0
- package/dist/plugins/remote-shell.js +25 -0
- package/dist/plugins/remote-shell.js.map +1 -0
- package/dist/plugins/s3-presign.d.ts +13 -0
- package/dist/plugins/s3-presign.d.ts.map +1 -0
- package/dist/plugins/s3-presign.js +55 -0
- package/dist/plugins/s3-presign.js.map +1 -0
- package/dist/plugins/scheduler-support.d.ts +39 -0
- package/dist/plugins/scheduler-support.d.ts.map +1 -0
- package/dist/plugins/scheduler-support.js +141 -0
- package/dist/plugins/scheduler-support.js.map +1 -0
- package/dist/plugins/session-store.d.ts +7 -0
- package/dist/plugins/session-store.d.ts.map +1 -0
- package/dist/plugins/session-store.js +14 -0
- package/dist/plugins/session-store.js.map +1 -0
- package/dist/plugins/store-backend.d.ts +88 -0
- package/dist/plugins/store-backend.d.ts.map +1 -0
- package/dist/plugins/store-backend.js +197 -0
- package/dist/plugins/store-backend.js.map +1 -0
- package/dist/plugins/tidb-approval-store.d.ts +39 -0
- package/dist/plugins/tidb-approval-store.d.ts.map +1 -0
- package/dist/plugins/tidb-approval-store.js +81 -0
- package/dist/plugins/tidb-approval-store.js.map +1 -0
- package/dist/plugins/tidb-breaker-state.d.ts +18 -0
- package/dist/plugins/tidb-breaker-state.d.ts.map +1 -0
- package/dist/plugins/tidb-breaker-state.js +75 -0
- package/dist/plugins/tidb-breaker-state.js.map +1 -0
- package/dist/plugins/tidb-checkpoint-store.d.ts +50 -0
- package/dist/plugins/tidb-checkpoint-store.d.ts.map +1 -0
- package/dist/plugins/tidb-checkpoint-store.js +196 -0
- package/dist/plugins/tidb-checkpoint-store.js.map +1 -0
- package/dist/plugins/tidb-cost-quota.d.ts +16 -0
- package/dist/plugins/tidb-cost-quota.d.ts.map +1 -0
- package/dist/plugins/tidb-cost-quota.js +34 -0
- package/dist/plugins/tidb-cost-quota.js.map +1 -0
- package/dist/plugins/tidb-file-snapshot-store.d.ts +26 -0
- package/dist/plugins/tidb-file-snapshot-store.d.ts.map +1 -0
- package/dist/plugins/tidb-file-snapshot-store.js +183 -0
- package/dist/plugins/tidb-file-snapshot-store.js.map +1 -0
- package/dist/plugins/tidb-image-bake.d.ts +102 -0
- package/dist/plugins/tidb-image-bake.d.ts.map +1 -0
- package/dist/plugins/tidb-image-bake.js +400 -0
- package/dist/plugins/tidb-image-bake.js.map +1 -0
- package/dist/plugins/tidb-image-index.d.ts +71 -0
- package/dist/plugins/tidb-image-index.d.ts.map +1 -0
- package/dist/plugins/tidb-image-index.js +192 -0
- package/dist/plugins/tidb-image-index.js.map +1 -0
- package/dist/plugins/tidb-outcome-ledger.d.ts +58 -0
- package/dist/plugins/tidb-outcome-ledger.d.ts.map +1 -0
- package/dist/plugins/tidb-outcome-ledger.js +98 -0
- package/dist/plugins/tidb-outcome-ledger.js.map +1 -0
- package/dist/plugins/tidb-pool.d.ts +11 -0
- package/dist/plugins/tidb-pool.d.ts.map +1 -0
- package/dist/plugins/tidb-pool.js +485 -0
- package/dist/plugins/tidb-pool.js.map +1 -0
- package/dist/plugins/tidb-rate-limiter.d.ts +15 -0
- package/dist/plugins/tidb-rate-limiter.d.ts.map +1 -0
- package/dist/plugins/tidb-rate-limiter.js +34 -0
- package/dist/plugins/tidb-rate-limiter.js.map +1 -0
- package/dist/plugins/tidb-resume-anchor-store.d.ts +14 -0
- package/dist/plugins/tidb-resume-anchor-store.d.ts.map +1 -0
- package/dist/plugins/tidb-resume-anchor-store.js +23 -0
- package/dist/plugins/tidb-resume-anchor-store.js.map +1 -0
- package/dist/plugins/tidb-run-store.d.ts +107 -0
- package/dist/plugins/tidb-run-store.d.ts.map +1 -0
- package/dist/plugins/tidb-run-store.js +321 -0
- package/dist/plugins/tidb-run-store.js.map +1 -0
- package/dist/plugins/tidb-session-policy-store.d.ts +12 -0
- package/dist/plugins/tidb-session-policy-store.d.ts.map +1 -0
- package/dist/plugins/tidb-session-policy-store.js +88 -0
- package/dist/plugins/tidb-session-policy-store.js.map +1 -0
- package/dist/plugins/tidb-session-storage.d.ts +15 -0
- package/dist/plugins/tidb-session-storage.d.ts.map +1 -0
- package/dist/plugins/tidb-session-storage.js +101 -0
- package/dist/plugins/tidb-session-storage.js.map +1 -0
- package/dist/plugins/tidb-session-store.d.ts +46 -0
- package/dist/plugins/tidb-session-store.d.ts.map +1 -0
- package/dist/plugins/tidb-session-store.js +360 -0
- package/dist/plugins/tidb-session-store.js.map +1 -0
- package/dist/plugins/tidb-tool-result-store.d.ts +15 -0
- package/dist/plugins/tidb-tool-result-store.d.ts.map +1 -0
- package/dist/plugins/tidb-tool-result-store.js +41 -0
- package/dist/plugins/tidb-tool-result-store.js.map +1 -0
- package/dist/plugins/tidb-workflow-journal-store.d.ts +11 -0
- package/dist/plugins/tidb-workflow-journal-store.d.ts.map +1 -0
- package/dist/plugins/tidb-workflow-journal-store.js +28 -0
- package/dist/plugins/tidb-workflow-journal-store.js.map +1 -0
- package/dist/plugins/tidb-workflow-run-store.d.ts +61 -0
- package/dist/plugins/tidb-workflow-run-store.d.ts.map +1 -0
- package/dist/plugins/tidb-workflow-run-store.js +227 -0
- package/dist/plugins/tidb-workflow-run-store.js.map +1 -0
- package/dist/plugins/web-search.d.ts +27 -0
- package/dist/plugins/web-search.d.ts.map +1 -0
- package/dist/plugins/web-search.js +143 -0
- package/dist/plugins/web-search.js.map +1 -0
- package/dist/plugins/workflow-journal-limits.d.ts +2 -0
- package/dist/plugins/workflow-journal-limits.d.ts.map +1 -0
- package/dist/plugins/workflow-journal-limits.js +2 -0
- package/dist/plugins/workflow-journal-limits.js.map +1 -0
- package/dist/plugins/worktree-isolation.d.ts +16 -0
- package/dist/plugins/worktree-isolation.d.ts.map +1 -0
- package/dist/plugins/worktree-isolation.js +55 -0
- package/dist/plugins/worktree-isolation.js.map +1 -0
- package/dist/plugins/write-behind-counter.d.ts +43 -0
- package/dist/plugins/write-behind-counter.d.ts.map +1 -0
- package/dist/plugins/write-behind-counter.js +144 -0
- package/dist/plugins/write-behind-counter.js.map +1 -0
- package/dist/project-memory.d.ts +14 -0
- package/dist/project-memory.d.ts.map +1 -0
- package/dist/project-memory.js +96 -0
- package/dist/project-memory.js.map +1 -0
- package/dist/question.d.ts +42 -0
- package/dist/question.d.ts.map +1 -0
- package/dist/question.js +140 -0
- package/dist/question.js.map +1 -0
- package/dist/resource-suspend.d.ts +11 -0
- package/dist/resource-suspend.d.ts.map +1 -0
- package/dist/resource-suspend.js +6 -0
- package/dist/resource-suspend.js.map +1 -0
- package/dist/router/route-orchestration.d.ts +31 -0
- package/dist/router/route-orchestration.d.ts.map +1 -0
- package/dist/router/route-orchestration.js +49 -0
- package/dist/router/route-orchestration.js.map +1 -0
- package/dist/run-local.d.ts +26 -0
- package/dist/run-local.d.ts.map +1 -0
- package/dist/run-local.js +337 -0
- package/dist/run-local.js.map +1 -0
- package/dist/runs.d.ts +39 -0
- package/dist/runs.d.ts.map +1 -0
- package/dist/runs.js +392 -0
- package/dist/runs.js.map +1 -0
- package/dist/runtime-caps-resolver.d.ts +32 -0
- package/dist/runtime-caps-resolver.d.ts.map +1 -0
- package/dist/runtime-caps-resolver.js +134 -0
- package/dist/runtime-caps-resolver.js.map +1 -0
- package/dist/runtime-governance.d.ts +18 -0
- package/dist/runtime-governance.d.ts.map +1 -0
- package/dist/runtime-governance.js +103 -0
- package/dist/runtime-governance.js.map +1 -0
- package/dist/sandbox-pkg-source.d.ts +11 -0
- package/dist/sandbox-pkg-source.d.ts.map +1 -0
- package/dist/sandbox-pkg-source.js +56 -0
- package/dist/sandbox-pkg-source.js.map +1 -0
- package/dist/sealed-key.d.ts +29 -0
- package/dist/sealed-key.d.ts.map +1 -0
- package/dist/sealed-key.js +122 -0
- package/dist/sealed-key.js.map +1 -0
- package/dist/security.d.ts +153 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +292 -0
- package/dist/security.js.map +1 -0
- package/dist/sema-registry.d.ts +187 -0
- package/dist/sema-registry.d.ts.map +1 -0
- package/dist/sema-registry.js +456 -0
- package/dist/sema-registry.js.map +1 -0
- package/dist/session-sync.d.ts +96 -0
- package/dist/session-sync.d.ts.map +1 -0
- package/dist/session-sync.js +181 -0
- package/dist/session-sync.js.map +1 -0
- package/dist/session-titler.d.ts +30 -0
- package/dist/session-titler.d.ts.map +1 -0
- package/dist/session-titler.js +77 -0
- package/dist/session-titler.js.map +1 -0
- package/dist/spec-fields.d.ts +5 -0
- package/dist/spec-fields.d.ts.map +1 -0
- package/dist/spec-fields.js +43 -0
- package/dist/spec-fields.js.map +1 -0
- package/dist/task-cwd.d.ts +15 -0
- package/dist/task-cwd.d.ts.map +1 -0
- package/dist/task-cwd.js +33 -0
- package/dist/task-cwd.js.map +1 -0
- package/dist/task-mcp.d.ts +20 -0
- package/dist/task-mcp.d.ts.map +1 -0
- package/dist/task-mcp.js +93 -0
- package/dist/task-mcp.js.map +1 -0
- package/dist/task-settings.d.ts +36 -0
- package/dist/task-settings.d.ts.map +1 -0
- package/dist/task-settings.js +141 -0
- package/dist/task-settings.js.map +1 -0
- package/dist/task-workflow.d.ts +25 -0
- package/dist/task-workflow.d.ts.map +1 -0
- package/dist/task-workflow.js +43 -0
- package/dist/task-workflow.js.map +1 -0
- package/dist/trace/artifacts.d.ts +17 -0
- package/dist/trace/artifacts.d.ts.map +1 -0
- package/dist/trace/artifacts.js +65 -0
- package/dist/trace/artifacts.js.map +1 -0
- package/dist/trace/project.d.ts +170 -0
- package/dist/trace/project.d.ts.map +1 -0
- package/dist/trace/project.js +239 -0
- package/dist/trace/project.js.map +1 -0
- package/dist/trace/redact.d.ts +5 -0
- package/dist/trace/redact.d.ts.map +1 -0
- package/dist/trace/redact.js +83 -0
- package/dist/trace/redact.js.map +1 -0
- package/dist/usage-analytics.d.ts +36 -0
- package/dist/usage-analytics.d.ts.map +1 -0
- package/dist/usage-analytics.js +89 -0
- package/dist/usage-analytics.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
import mysql from "mysql2/promise";
|
|
2
|
+
export function tidbPoolOptions(tidb) {
|
|
3
|
+
const { host, port, user, password, database, connectionLimit } = tidb;
|
|
4
|
+
const limit = connectionLimit ?? 10;
|
|
5
|
+
return {
|
|
6
|
+
host,
|
|
7
|
+
port,
|
|
8
|
+
user,
|
|
9
|
+
password,
|
|
10
|
+
database,
|
|
11
|
+
waitForConnections: true,
|
|
12
|
+
connectionLimit: limit,
|
|
13
|
+
maxIdle: limit,
|
|
14
|
+
idleTimeout: 60_000,
|
|
15
|
+
enableKeepAlive: true,
|
|
16
|
+
queueLimit: limit * 32,
|
|
17
|
+
timezone: "Z",
|
|
18
|
+
charset: "utf8mb4",
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function createTidbPool(config) {
|
|
22
|
+
if (!config.tidb) {
|
|
23
|
+
throw new Error("TiDB config missing. Set TIDB_HOST / TIDB_USER / TIDB_DATABASE (and TIDB_PASSWORD/PORT) " +
|
|
24
|
+
"when SESSION_BACKEND=tidb.");
|
|
25
|
+
}
|
|
26
|
+
return mysql.createPool(tidbPoolOptions(config.tidb));
|
|
27
|
+
}
|
|
28
|
+
export const SCHEMA_STATEMENTS = [
|
|
29
|
+
`CREATE TABLE IF NOT EXISTS session_meta (
|
|
30
|
+
session_id VARCHAR(64) NOT NULL,
|
|
31
|
+
owner VARCHAR(190) NULL,
|
|
32
|
+
created_at DATETIME(3) NOT NULL,
|
|
33
|
+
updated_at DATETIME(3) NOT NULL,
|
|
34
|
+
leaf_id VARCHAR(64) NULL,
|
|
35
|
+
leaf_seq BIGINT NOT NULL DEFAULT 0,
|
|
36
|
+
title VARCHAR(120) NULL,
|
|
37
|
+
PRIMARY KEY (session_id),
|
|
38
|
+
KEY idx_owner (owner)
|
|
39
|
+
)`,
|
|
40
|
+
`CREATE TABLE IF NOT EXISTS session_event (
|
|
41
|
+
session_id VARCHAR(64) NOT NULL,
|
|
42
|
+
seq BIGINT NOT NULL,
|
|
43
|
+
entry_id VARCHAR(64) NOT NULL,
|
|
44
|
+
parent_id VARCHAR(64) NULL,
|
|
45
|
+
type VARCHAR(32) NOT NULL,
|
|
46
|
+
payload JSON NOT NULL,
|
|
47
|
+
ts DATETIME(3) NOT NULL,
|
|
48
|
+
PRIMARY KEY (session_id, seq),
|
|
49
|
+
UNIQUE KEY uk_entry (session_id, entry_id)
|
|
50
|
+
)`,
|
|
51
|
+
`CREATE TABLE IF NOT EXISTS task_run (
|
|
52
|
+
task_id VARCHAR(64) NOT NULL,
|
|
53
|
+
session_id VARCHAR(64) NOT NULL,
|
|
54
|
+
owner VARCHAR(190) NULL,
|
|
55
|
+
status VARCHAR(16) NOT NULL,
|
|
56
|
+
result JSON NULL,
|
|
57
|
+
error TEXT NULL,
|
|
58
|
+
error_code VARCHAR(64) NULL,
|
|
59
|
+
instance_id VARCHAR(64) NULL,
|
|
60
|
+
job_id VARCHAR(64) NULL,
|
|
61
|
+
source VARCHAR(64) NULL,
|
|
62
|
+
objective_preview VARCHAR(160) NULL,
|
|
63
|
+
cancel_requested TINYINT(1) NOT NULL DEFAULT 0,
|
|
64
|
+
preempt_requested TINYINT(1) NOT NULL DEFAULT 0,
|
|
65
|
+
created_at DATETIME(3) NOT NULL,
|
|
66
|
+
updated_at DATETIME(3) NOT NULL,
|
|
67
|
+
PRIMARY KEY (task_id),
|
|
68
|
+
KEY idx_session_status (session_id, status),
|
|
69
|
+
KEY idx_owner (owner),
|
|
70
|
+
KEY idx_error_code (error_code),
|
|
71
|
+
KEY idx_job (job_id),
|
|
72
|
+
KEY idx_created (created_at)
|
|
73
|
+
)`,
|
|
74
|
+
`CREATE TABLE IF NOT EXISTS circuit_breaker (
|
|
75
|
+
breaker_key VARCHAR(190) NOT NULL,
|
|
76
|
+
phase VARCHAR(16) NOT NULL,
|
|
77
|
+
failures INT NOT NULL DEFAULT 0,
|
|
78
|
+
opened_at DATETIME(3) NULL,
|
|
79
|
+
updated_at DATETIME(3) NOT NULL,
|
|
80
|
+
PRIMARY KEY (breaker_key)
|
|
81
|
+
)`,
|
|
82
|
+
`CREATE TABLE IF NOT EXISTS cost_quota (
|
|
83
|
+
scope_key VARCHAR(190) NOT NULL,
|
|
84
|
+
window_bucket BIGINT NOT NULL,
|
|
85
|
+
micro BIGINT NOT NULL DEFAULT 0,
|
|
86
|
+
updated_at DATETIME(3) NOT NULL,
|
|
87
|
+
PRIMARY KEY (scope_key, window_bucket),
|
|
88
|
+
KEY idx_window (window_bucket)
|
|
89
|
+
)`,
|
|
90
|
+
`CREATE TABLE IF NOT EXISTS rate_limit (
|
|
91
|
+
limit_key VARCHAR(190) NOT NULL,
|
|
92
|
+
window_bucket BIGINT NOT NULL,
|
|
93
|
+
n INT NOT NULL DEFAULT 0,
|
|
94
|
+
updated_at DATETIME(3) NOT NULL,
|
|
95
|
+
PRIMARY KEY (limit_key, window_bucket),
|
|
96
|
+
KEY idx_window (window_bucket)
|
|
97
|
+
)`,
|
|
98
|
+
`CREATE TABLE IF NOT EXISTS tool_result (
|
|
99
|
+
ref VARCHAR(190) NOT NULL,
|
|
100
|
+
content LONGTEXT NOT NULL,
|
|
101
|
+
created_at DATETIME(3) NOT NULL,
|
|
102
|
+
PRIMARY KEY (ref),
|
|
103
|
+
KEY idx_created (created_at)
|
|
104
|
+
)`,
|
|
105
|
+
`CREATE TABLE IF NOT EXISTS task_event (
|
|
106
|
+
task_id VARCHAR(64) NOT NULL,
|
|
107
|
+
seq BIGINT NOT NULL,
|
|
108
|
+
type VARCHAR(24) NOT NULL,
|
|
109
|
+
data JSON NULL,
|
|
110
|
+
ts DATETIME(3) NOT NULL,
|
|
111
|
+
PRIMARY KEY (task_id, seq)
|
|
112
|
+
)`,
|
|
113
|
+
`CREATE TABLE IF NOT EXISTS task_active (
|
|
114
|
+
session_id VARCHAR(64) NOT NULL,
|
|
115
|
+
task_id VARCHAR(64) NOT NULL,
|
|
116
|
+
since DATETIME(3) NOT NULL,
|
|
117
|
+
PRIMARY KEY (session_id),
|
|
118
|
+
KEY idx_task (task_id)
|
|
119
|
+
)`,
|
|
120
|
+
`CREATE TABLE IF NOT EXISTS approval (
|
|
121
|
+
id VARCHAR(64) NOT NULL,
|
|
122
|
+
task_id VARCHAR(64) NULL,
|
|
123
|
+
session_id VARCHAR(64) NULL,
|
|
124
|
+
owner VARCHAR(190) NULL,
|
|
125
|
+
scope VARCHAR(190) NULL,
|
|
126
|
+
tool_name VARCHAR(190) NOT NULL,
|
|
127
|
+
args JSON NULL,
|
|
128
|
+
status VARCHAR(16) NOT NULL,
|
|
129
|
+
reason TEXT NULL,
|
|
130
|
+
decided_by VARCHAR(190) NULL,
|
|
131
|
+
created_at DATETIME(3) NOT NULL,
|
|
132
|
+
decided_at DATETIME(3) NULL,
|
|
133
|
+
PRIMARY KEY (id),
|
|
134
|
+
KEY idx_owner_status (owner, status),
|
|
135
|
+
KEY idx_scope_status (scope, status),
|
|
136
|
+
KEY idx_status (status)
|
|
137
|
+
)`,
|
|
138
|
+
`CREATE TABLE IF NOT EXISTS checkpoint (
|
|
139
|
+
token VARCHAR(120) NOT NULL,
|
|
140
|
+
scope VARCHAR(190) NOT NULL,
|
|
141
|
+
session_id VARCHAR(190) NOT NULL,
|
|
142
|
+
version INT NOT NULL DEFAULT 1,
|
|
143
|
+
status VARCHAR(16) NOT NULL DEFAULT 'pending',
|
|
144
|
+
tool_name VARCHAR(190) NULL,
|
|
145
|
+
tool_call_id VARCHAR(190) NULL,
|
|
146
|
+
tool_input JSON NULL,
|
|
147
|
+
checkpoint JSON NOT NULL,
|
|
148
|
+
outcome JSON NULL,
|
|
149
|
+
deadline BIGINT NULL,
|
|
150
|
+
created_at BIGINT NOT NULL,
|
|
151
|
+
decided_at BIGINT NULL,
|
|
152
|
+
rev BIGINT NOT NULL DEFAULT 0,
|
|
153
|
+
reopen_reason VARCHAR(32) NULL,
|
|
154
|
+
terminal_at BIGINT NULL,
|
|
155
|
+
gate_kind VARCHAR(32) NULL,
|
|
156
|
+
bound_input_hash VARCHAR(190) NULL,
|
|
157
|
+
pending_steer TEXT NULL,
|
|
158
|
+
risk_descriptor TEXT NULL,
|
|
159
|
+
PRIMARY KEY (token),
|
|
160
|
+
KEY idx_status_deadline (status, deadline),
|
|
161
|
+
KEY idx_session_status (session_id, status)
|
|
162
|
+
)`,
|
|
163
|
+
`CREATE TABLE IF NOT EXISTS checkpoint_ctx (
|
|
164
|
+
session_id VARCHAR(190) NOT NULL,
|
|
165
|
+
ctx JSON NOT NULL,
|
|
166
|
+
updated_at BIGINT NOT NULL,
|
|
167
|
+
PRIMARY KEY (session_id)
|
|
168
|
+
)`,
|
|
169
|
+
`CREATE TABLE IF NOT EXISTS resume_anchor (
|
|
170
|
+
session_id VARCHAR(64) NOT NULL,
|
|
171
|
+
event_id VARCHAR(64) NOT NULL,
|
|
172
|
+
entry_id VARCHAR(64) NOT NULL,
|
|
173
|
+
owner VARCHAR(190) NULL,
|
|
174
|
+
created_at DATETIME(3) NOT NULL,
|
|
175
|
+
PRIMARY KEY (session_id, event_id),
|
|
176
|
+
KEY idx_resume_anchor_session (session_id)
|
|
177
|
+
)`,
|
|
178
|
+
`CREATE TABLE IF NOT EXISTS approval_exemption (
|
|
179
|
+
session_id VARCHAR(64) NOT NULL,
|
|
180
|
+
tool_name VARCHAR(190) NOT NULL,
|
|
181
|
+
granted_by VARCHAR(190) NULL,
|
|
182
|
+
created_at DATETIME(3) NOT NULL,
|
|
183
|
+
PRIMARY KEY (session_id, tool_name)
|
|
184
|
+
)`,
|
|
185
|
+
`CREATE TABLE IF NOT EXISTS session_policy (
|
|
186
|
+
policy_key CHAR(64) NOT NULL,
|
|
187
|
+
session_id VARCHAR(64) NOT NULL,
|
|
188
|
+
principal VARCHAR(190) NULL,
|
|
189
|
+
rules JSON NOT NULL,
|
|
190
|
+
rev BIGINT NOT NULL,
|
|
191
|
+
created_at DATETIME(3) NOT NULL,
|
|
192
|
+
updated_at DATETIME(3) NOT NULL,
|
|
193
|
+
PRIMARY KEY (policy_key),
|
|
194
|
+
KEY idx_session_policy_session (session_id)
|
|
195
|
+
)`,
|
|
196
|
+
`CREATE TABLE IF NOT EXISTS snapshot_manifest (
|
|
197
|
+
scope VARCHAR(64) NOT NULL,
|
|
198
|
+
snap_key VARCHAR(64) NOT NULL,
|
|
199
|
+
rel_path VARCHAR(1024) NOT NULL,
|
|
200
|
+
blob_hash CHAR(64) NOT NULL,
|
|
201
|
+
KEY idx_snapshot_manifest_sk (scope, snap_key),
|
|
202
|
+
KEY idx_snapshot_manifest_blob (blob_hash)
|
|
203
|
+
)`,
|
|
204
|
+
`CREATE TABLE IF NOT EXISTS snapshot_blob (
|
|
205
|
+
blob_hash CHAR(64) NOT NULL,
|
|
206
|
+
byte_len BIGINT NOT NULL,
|
|
207
|
+
bytes LONGBLOB NULL,
|
|
208
|
+
created_at DATETIME(3) NOT NULL,
|
|
209
|
+
PRIMARY KEY (blob_hash),
|
|
210
|
+
KEY idx_snapshot_blob_created (created_at)
|
|
211
|
+
)`,
|
|
212
|
+
`CREATE TABLE IF NOT EXISTS workflow_journal (
|
|
213
|
+
run_id VARCHAR(191) NOT NULL,
|
|
214
|
+
ordinal INT NOT NULL,
|
|
215
|
+
scope VARCHAR(190) NOT NULL DEFAULT '',
|
|
216
|
+
call_key VARCHAR(255) NOT NULL,
|
|
217
|
+
result MEDIUMTEXT NOT NULL,
|
|
218
|
+
created_at BIGINT NOT NULL,
|
|
219
|
+
PRIMARY KEY (run_id, ordinal)
|
|
220
|
+
)`,
|
|
221
|
+
`CREATE TABLE IF NOT EXISTS workflow_run (
|
|
222
|
+
id VARCHAR(191) NOT NULL,
|
|
223
|
+
scope VARCHAR(190) NOT NULL,
|
|
224
|
+
status VARCHAR(16) NOT NULL,
|
|
225
|
+
run MEDIUMTEXT NOT NULL,
|
|
226
|
+
rev INT NOT NULL DEFAULT 0,
|
|
227
|
+
created_at BIGINT NOT NULL,
|
|
228
|
+
ended_at BIGINT NULL,
|
|
229
|
+
PRIMARY KEY (id),
|
|
230
|
+
KEY idx_wfrun_scope_created (scope, created_at),
|
|
231
|
+
KEY idx_wfrun_scope_status (scope, status)
|
|
232
|
+
)`,
|
|
233
|
+
`CREATE TABLE IF NOT EXISTS workflow_completion_inbox (
|
|
234
|
+
seq BIGINT NOT NULL AUTO_INCREMENT,
|
|
235
|
+
session_id VARCHAR(190) NOT NULL,
|
|
236
|
+
run_id VARCHAR(191) NOT NULL,
|
|
237
|
+
owner VARCHAR(190) NULL,
|
|
238
|
+
status VARCHAR(16) NOT NULL,
|
|
239
|
+
summary TEXT NOT NULL,
|
|
240
|
+
enqueued_at BIGINT NOT NULL,
|
|
241
|
+
kind VARCHAR(24) NULL,
|
|
242
|
+
payload TEXT NULL,
|
|
243
|
+
PRIMARY KEY (session_id, run_id),
|
|
244
|
+
UNIQUE KEY uq_wfinbox_seq (seq),
|
|
245
|
+
KEY idx_wfinbox_session_seq (session_id, seq)
|
|
246
|
+
)`,
|
|
247
|
+
`CREATE TABLE IF NOT EXISTS workflow_inbox_fence (
|
|
248
|
+
session_id VARCHAR(190) NOT NULL,
|
|
249
|
+
kind VARCHAR(8) NOT NULL,
|
|
250
|
+
run_id VARCHAR(191) NOT NULL DEFAULT '',
|
|
251
|
+
owner VARCHAR(190) NULL,
|
|
252
|
+
owner_known TINYINT(1) NOT NULL DEFAULT 0,
|
|
253
|
+
until_ms BIGINT NOT NULL,
|
|
254
|
+
PRIMARY KEY (session_id, kind, run_id),
|
|
255
|
+
KEY idx_wffence_until (until_ms)
|
|
256
|
+
)`,
|
|
257
|
+
`CREATE TABLE IF NOT EXISTS workflow_notify_journal (
|
|
258
|
+
run_id VARCHAR(191) NOT NULL,
|
|
259
|
+
scope VARCHAR(190) NOT NULL,
|
|
260
|
+
acked TINYINT(1) NOT NULL DEFAULT 0,
|
|
261
|
+
source_task_id VARCHAR(191) NULL,
|
|
262
|
+
principal VARCHAR(190) NULL,
|
|
263
|
+
created_at BIGINT NOT NULL,
|
|
264
|
+
acked_at BIGINT NULL,
|
|
265
|
+
PRIMARY KEY (run_id),
|
|
266
|
+
KEY idx_wfnotify_acked (acked)
|
|
267
|
+
)`,
|
|
268
|
+
`CREATE TABLE IF NOT EXISTS outcome_ledger (
|
|
269
|
+
id VARCHAR(64) NOT NULL,
|
|
270
|
+
task_signature VARCHAR(190) NOT NULL,
|
|
271
|
+
model VARCHAR(190) NOT NULL,
|
|
272
|
+
task_id VARCHAR(64) NULL,
|
|
273
|
+
run_status VARCHAR(20) NOT NULL DEFAULT 'completed-graded',
|
|
274
|
+
route VARCHAR(16) NULL,
|
|
275
|
+
worker_count INT NULL,
|
|
276
|
+
oracle_passed INT NULL,
|
|
277
|
+
oracle_total INT NULL,
|
|
278
|
+
assemble_exit INT NULL,
|
|
279
|
+
lint_exit INT NULL,
|
|
280
|
+
merge_ok TINYINT(1) NULL,
|
|
281
|
+
replan_triggers JSON NULL,
|
|
282
|
+
cost_micro_usd BIGINT NULL,
|
|
283
|
+
turns INT NULL,
|
|
284
|
+
outcome VARCHAR(8) NULL,
|
|
285
|
+
llm_assisted JSON NULL,
|
|
286
|
+
signature_inputs JSON NULL,
|
|
287
|
+
core_outcome JSON NULL,
|
|
288
|
+
created_at DATETIME(3) NOT NULL,
|
|
289
|
+
PRIMARY KEY (id),
|
|
290
|
+
KEY idx_sig_model (task_signature, model, run_status),
|
|
291
|
+
KEY idx_outcome (outcome),
|
|
292
|
+
KEY idx_created (created_at)
|
|
293
|
+
)`,
|
|
294
|
+
`CREATE TABLE IF NOT EXISTS sandbox_image_index (
|
|
295
|
+
id VARCHAR(64) NOT NULL,
|
|
296
|
+
profile VARCHAR(64) NOT NULL,
|
|
297
|
+
bands JSON NULL,
|
|
298
|
+
repo VARCHAR(255) NOT NULL,
|
|
299
|
+
tag VARCHAR(128) NOT NULL,
|
|
300
|
+
digest VARCHAR(80) NOT NULL,
|
|
301
|
+
toolchain_versions JSON NULL,
|
|
302
|
+
capabilities JSON NULL,
|
|
303
|
+
pod_contract JSON NULL,
|
|
304
|
+
size_bytes BIGINT NULL,
|
|
305
|
+
status VARCHAR(16) NOT NULL DEFAULT 'building',
|
|
306
|
+
visibility VARCHAR(16) NOT NULL DEFAULT 'public',
|
|
307
|
+
tenant_id VARCHAR(64) NULL,
|
|
308
|
+
manifest_sha VARCHAR(64) NULL,
|
|
309
|
+
recipe_git_sha VARCHAR(64) NULL,
|
|
310
|
+
generator_version VARCHAR(32) NULL,
|
|
311
|
+
build_date DATETIME(3) NULL,
|
|
312
|
+
supersedes VARCHAR(64) NULL,
|
|
313
|
+
signed TINYINT(1) NOT NULL DEFAULT 0,
|
|
314
|
+
created_at DATETIME(3) NOT NULL,
|
|
315
|
+
updated_at DATETIME(3) NOT NULL,
|
|
316
|
+
PRIMARY KEY (id),
|
|
317
|
+
UNIQUE KEY uq_repo_digest (repo, digest),
|
|
318
|
+
KEY idx_profile_status (profile, status, visibility),
|
|
319
|
+
KEY idx_digest (digest),
|
|
320
|
+
KEY idx_tenant (tenant_id, status)
|
|
321
|
+
)`,
|
|
322
|
+
`CREATE TABLE IF NOT EXISTS image_bake (
|
|
323
|
+
bake_id VARCHAR(64) NOT NULL,
|
|
324
|
+
profile VARCHAR(128) NOT NULL,
|
|
325
|
+
bands JSON NULL,
|
|
326
|
+
base_ref VARCHAR(255) NULL,
|
|
327
|
+
push TINYINT NOT NULL DEFAULT 0,
|
|
328
|
+
dry_run TINYINT NOT NULL DEFAULT 0,
|
|
329
|
+
logs TINYINT NOT NULL DEFAULT 0,
|
|
330
|
+
argv JSON NOT NULL,
|
|
331
|
+
status VARCHAR(16) NOT NULL,
|
|
332
|
+
state VARCHAR(16) NULL,
|
|
333
|
+
digest VARCHAR(255) NULL,
|
|
334
|
+
repo VARCHAR(255) NULL,
|
|
335
|
+
ref VARCHAR(320) NULL,
|
|
336
|
+
index_id VARCHAR(64) NULL,
|
|
337
|
+
exit_code INT NULL,
|
|
338
|
+
error TEXT NULL,
|
|
339
|
+
error_code VARCHAR(32) NULL,
|
|
340
|
+
manifest_sha VARCHAR(64) NULL,
|
|
341
|
+
tag VARCHAR(255) NULL,
|
|
342
|
+
idem_key VARCHAR(255) NULL,
|
|
343
|
+
ingest_secret VARCHAR(64) NULL,
|
|
344
|
+
runner_id VARCHAR(64) NULL,
|
|
345
|
+
lease_until DATETIME(3) NULL,
|
|
346
|
+
cancel_requested TINYINT NOT NULL DEFAULT 0,
|
|
347
|
+
requested_by VARCHAR(128) NULL,
|
|
348
|
+
created_at DATETIME(3) NOT NULL,
|
|
349
|
+
updated_at DATETIME(3) NOT NULL,
|
|
350
|
+
PRIMARY KEY (bake_id),
|
|
351
|
+
UNIQUE KEY uq_idem (idem_key),
|
|
352
|
+
KEY idx_status (status),
|
|
353
|
+
KEY idx_created (created_at)
|
|
354
|
+
)`,
|
|
355
|
+
`CREATE TABLE IF NOT EXISTS image_bake_event (
|
|
356
|
+
bake_id VARCHAR(64) NOT NULL,
|
|
357
|
+
seq INT NOT NULL,
|
|
358
|
+
line_ord INT NULL,
|
|
359
|
+
kind VARCHAR(24) NOT NULL,
|
|
360
|
+
level VARCHAR(8) NULL,
|
|
361
|
+
data JSON NULL,
|
|
362
|
+
ts DATETIME(3) NOT NULL,
|
|
363
|
+
PRIMARY KEY (bake_id, seq),
|
|
364
|
+
UNIQUE KEY uq_line (bake_id, line_ord)
|
|
365
|
+
)`,
|
|
366
|
+
`CREATE TABLE IF NOT EXISTS image_bake_lease (
|
|
367
|
+
pool VARCHAR(32) NOT NULL DEFAULT 'standard',
|
|
368
|
+
bake_id VARCHAR(64) NOT NULL,
|
|
369
|
+
acquired_at DATETIME(3) NOT NULL,
|
|
370
|
+
expires_at DATETIME(3) NOT NULL,
|
|
371
|
+
PRIMARY KEY (pool)
|
|
372
|
+
)`,
|
|
373
|
+
`CREATE TABLE IF NOT EXISTS image_bake_admit (
|
|
374
|
+
pool VARCHAR(32) NOT NULL,
|
|
375
|
+
PRIMARY KEY (pool)
|
|
376
|
+
)`,
|
|
377
|
+
];
|
|
378
|
+
const COLUMN_MIGRATIONS = [
|
|
379
|
+
{ table: "session_meta", column: "title", ddl: "ALTER TABLE session_meta ADD COLUMN title VARCHAR(120) NULL" },
|
|
380
|
+
{ table: "outcome_ledger", column: "core_outcome", ddl: "ALTER TABLE outcome_ledger ADD COLUMN core_outcome JSON NULL" },
|
|
381
|
+
{ table: "workflow_completion_inbox", column: "kind", ddl: "ALTER TABLE workflow_completion_inbox ADD COLUMN kind VARCHAR(24) NULL" },
|
|
382
|
+
{ table: "workflow_completion_inbox", column: "payload", ddl: "ALTER TABLE workflow_completion_inbox ADD COLUMN payload TEXT NULL" },
|
|
383
|
+
{ table: "task_run", column: "error_code", ddl: "ALTER TABLE task_run ADD COLUMN error_code VARCHAR(64) NULL" },
|
|
384
|
+
{ table: "task_run", column: "job_id", ddl: "ALTER TABLE task_run ADD COLUMN job_id VARCHAR(64) NULL" },
|
|
385
|
+
{ table: "task_run", column: "cancel_requested", ddl: "ALTER TABLE task_run ADD COLUMN cancel_requested TINYINT(1) NOT NULL DEFAULT 0" },
|
|
386
|
+
{ table: "task_run", column: "preempt_requested", ddl: "ALTER TABLE task_run ADD COLUMN preempt_requested TINYINT(1) NOT NULL DEFAULT 0" },
|
|
387
|
+
{ table: "task_run", column: "source", ddl: "ALTER TABLE task_run ADD COLUMN source VARCHAR(64) NULL" },
|
|
388
|
+
{ table: "task_run", column: "objective_preview", ddl: "ALTER TABLE task_run ADD COLUMN objective_preview VARCHAR(160) NULL" },
|
|
389
|
+
{ table: "checkpoint", column: "tool_input", ddl: "ALTER TABLE checkpoint ADD COLUMN tool_input JSON NULL" },
|
|
390
|
+
{ table: "checkpoint", column: "rev", ddl: "ALTER TABLE checkpoint ADD COLUMN rev BIGINT NOT NULL DEFAULT 0" },
|
|
391
|
+
{ table: "checkpoint", column: "reopen_reason", ddl: "ALTER TABLE checkpoint ADD COLUMN reopen_reason VARCHAR(32) NULL" },
|
|
392
|
+
{ table: "checkpoint", column: "terminal_at", ddl: "ALTER TABLE checkpoint ADD COLUMN terminal_at BIGINT NULL" },
|
|
393
|
+
{ table: "checkpoint", column: "gate_kind", ddl: "ALTER TABLE checkpoint ADD COLUMN gate_kind VARCHAR(32) NULL" },
|
|
394
|
+
{ table: "checkpoint", column: "bound_input_hash", ddl: "ALTER TABLE checkpoint ADD COLUMN bound_input_hash VARCHAR(190) NULL" },
|
|
395
|
+
{ table: "checkpoint", column: "pending_steer", ddl: "ALTER TABLE checkpoint ADD COLUMN pending_steer TEXT NULL" },
|
|
396
|
+
{ table: "checkpoint", column: "risk_descriptor", ddl: "ALTER TABLE checkpoint ADD COLUMN risk_descriptor TEXT NULL" },
|
|
397
|
+
{ table: "approval", column: "scope", ddl: "ALTER TABLE approval ADD COLUMN scope VARCHAR(190) NULL" },
|
|
398
|
+
{ table: "session_policy", column: "principal", ddl: "ALTER TABLE session_policy ADD COLUMN principal VARCHAR(190) NULL" },
|
|
399
|
+
{ table: "workflow_journal", column: "scope", ddl: "ALTER TABLE workflow_journal ADD COLUMN scope VARCHAR(190) NOT NULL DEFAULT ''" },
|
|
400
|
+
];
|
|
401
|
+
const INDEX_MIGRATIONS = [
|
|
402
|
+
{ table: "task_run", index: "idx_job", ddl: "CREATE INDEX idx_job ON task_run (job_id)" },
|
|
403
|
+
{ table: "task_run", index: "idx_created", ddl: "CREATE INDEX idx_created ON task_run (created_at)" },
|
|
404
|
+
{ table: "approval", index: "idx_scope_status", ddl: "CREATE INDEX idx_scope_status ON approval (scope, status)" },
|
|
405
|
+
];
|
|
406
|
+
const NULLABILITY_MIGRATIONS = [
|
|
407
|
+
{ table: "snapshot_blob", column: "bytes", ddl: "ALTER TABLE snapshot_blob MODIFY COLUMN bytes LONGBLOB NULL" },
|
|
408
|
+
];
|
|
409
|
+
export const ENSURE_SCHEMA_LOCK = "sema_ensure_schema";
|
|
410
|
+
export async function acquireEnsureSchemaLock(conn, tag = "ensureSchema") {
|
|
411
|
+
await new Promise((r) => setTimeout(r, Math.floor(Math.random() * 400)));
|
|
412
|
+
for (let attempt = 0; attempt < 40; attempt++) {
|
|
413
|
+
try {
|
|
414
|
+
const [rows] = await conn.query("SELECT GET_LOCK(?, 0) AS got", [ENSURE_SCHEMA_LOCK]);
|
|
415
|
+
if (Number(rows[0]?.got) === 1)
|
|
416
|
+
return true;
|
|
417
|
+
}
|
|
418
|
+
catch (err) {
|
|
419
|
+
console.warn(`[${tag}] GET_LOCK('${ENSURE_SCHEMA_LOCK}') attempt ${attempt + 1}/40:`, err?.message ?? err);
|
|
420
|
+
}
|
|
421
|
+
await new Promise((r) => setTimeout(r, 100 + Math.min(attempt, 3) * 100 + Math.floor(Math.random() * 150)));
|
|
422
|
+
}
|
|
423
|
+
console.warn(`[${tag}] could not acquire '${ENSURE_SCHEMA_LOCK}' after retries`);
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
426
|
+
export async function releaseEnsureSchemaLock(conn, tag = "ensureSchema") {
|
|
427
|
+
try {
|
|
428
|
+
await conn.query("SELECT RELEASE_LOCK(?)", [ENSURE_SCHEMA_LOCK]);
|
|
429
|
+
}
|
|
430
|
+
catch (err) {
|
|
431
|
+
console.warn(`[${tag}] RELEASE_LOCK('${ENSURE_SCHEMA_LOCK}') failed (lock auto-frees on connection close):`, err);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
export async function ensureSchema(pool) {
|
|
435
|
+
const conn = await pool.getConnection();
|
|
436
|
+
const locked = await acquireEnsureSchemaLock(conn);
|
|
437
|
+
try {
|
|
438
|
+
for (const stmt of SCHEMA_STATEMENTS) {
|
|
439
|
+
await conn.query(stmt);
|
|
440
|
+
}
|
|
441
|
+
await conn.query("INSERT IGNORE INTO image_bake_admit (pool) VALUES ('standard')");
|
|
442
|
+
for (const m of COLUMN_MIGRATIONS) {
|
|
443
|
+
const [rows] = await conn.query("SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = ? AND column_name = ? LIMIT 1", [m.table, m.column]);
|
|
444
|
+
if (rows.length === 0) {
|
|
445
|
+
try {
|
|
446
|
+
await conn.query(m.ddl);
|
|
447
|
+
}
|
|
448
|
+
catch (err) {
|
|
449
|
+
if (Number(err.errno) !== 1060)
|
|
450
|
+
throw err;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
for (const m of INDEX_MIGRATIONS) {
|
|
455
|
+
const [rows] = await conn.query("SELECT 1 FROM information_schema.statistics WHERE table_schema = DATABASE() AND table_name = ? AND index_name = ? LIMIT 1", [m.table, m.index]);
|
|
456
|
+
if (rows.length === 0) {
|
|
457
|
+
try {
|
|
458
|
+
await conn.query(m.ddl);
|
|
459
|
+
}
|
|
460
|
+
catch (err) {
|
|
461
|
+
if (Number(err.errno) !== 1061)
|
|
462
|
+
throw err;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
for (const m of NULLABILITY_MIGRATIONS) {
|
|
467
|
+
const [rows] = await conn.query("SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = ? AND column_name = ? AND is_nullable = 'YES' LIMIT 1", [m.table, m.column]);
|
|
468
|
+
if (rows.length === 0) {
|
|
469
|
+
try {
|
|
470
|
+
await conn.query(m.ddl);
|
|
471
|
+
}
|
|
472
|
+
catch (err) {
|
|
473
|
+
if (Number(err.errno) !== 1060)
|
|
474
|
+
throw err;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
finally {
|
|
480
|
+
if (locked)
|
|
481
|
+
await releaseEnsureSchemaLock(conn);
|
|
482
|
+
conn.release();
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
//# sourceMappingURL=tidb-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tidb-pool.js","sourceRoot":"","sources":["../../src/plugins/tidb-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Pool } from "mysql2/promise";
|
|
2
|
+
import type { RateDecision, RateGate } from "../observability/rate-limit.js";
|
|
3
|
+
import { type CounterDegradeHook } from "./write-behind-counter.js";
|
|
4
|
+
export declare class TiDBRateLimiter implements RateGate {
|
|
5
|
+
private readonly limit;
|
|
6
|
+
private readonly counter;
|
|
7
|
+
constructor(pool: Pool, limit: number, windowMs?: number, now?: () => number, onDegraded?: CounterDegradeHook, queryTimeoutMs?: number);
|
|
8
|
+
check(key: string): RateDecision;
|
|
9
|
+
sweep(): void;
|
|
10
|
+
flush(): Promise<void>;
|
|
11
|
+
refresh(): Promise<void>;
|
|
12
|
+
startRefresh(intervalMs?: number): this;
|
|
13
|
+
stop(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=tidb-rate-limiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tidb-rate-limiter.d.ts","sourceRoot":"","sources":["../../src/plugins/tidb-rate-limiter.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAExF,qBAAa,eAAgB,YAAW,QAAQ;IAGtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAF9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,IAAI,EAAE,IAAI,EAAmB,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,MAAM,EAAE,UAAU,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,EAAE,MAAM;IAIvJ,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAUhC,KAAK,IAAI,IAAI;IAKb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAGtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvC,IAAI,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { WriteBehindCounter } from "./write-behind-counter.js";
|
|
2
|
+
export class TiDBRateLimiter {
|
|
3
|
+
limit;
|
|
4
|
+
counter;
|
|
5
|
+
constructor(pool, limit, windowMs = 60_000, now, onDegraded, queryTimeoutMs) {
|
|
6
|
+
this.limit = limit;
|
|
7
|
+
this.counter = new WriteBehindCounter(pool, { table: "rate_limit", keyCol: "limit_key", valCol: "n" }, windowMs, now, onDegraded, queryTimeoutMs);
|
|
8
|
+
}
|
|
9
|
+
check(key) {
|
|
10
|
+
if (this.limit <= 0)
|
|
11
|
+
return { allowed: true, retryAfterSec: 0, remaining: Number.POSITIVE_INFINITY };
|
|
12
|
+
const usedBefore = this.counter.used(key);
|
|
13
|
+
this.counter.addLocal(key, 1);
|
|
14
|
+
return usedBefore < this.limit
|
|
15
|
+
? { allowed: true, retryAfterSec: 0, remaining: this.limit - usedBefore - 1 }
|
|
16
|
+
: { allowed: false, retryAfterSec: Math.max(1, this.counter.retryAfterSec()), remaining: 0 };
|
|
17
|
+
}
|
|
18
|
+
sweep() {
|
|
19
|
+
}
|
|
20
|
+
flush() {
|
|
21
|
+
return this.counter.flush();
|
|
22
|
+
}
|
|
23
|
+
refresh() {
|
|
24
|
+
return this.counter.refresh();
|
|
25
|
+
}
|
|
26
|
+
startRefresh(intervalMs) {
|
|
27
|
+
this.counter.startRefresh(intervalMs);
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
stop() {
|
|
31
|
+
this.counter.stop();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=tidb-rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tidb-rate-limiter.js","sourceRoot":"","sources":["../../src/plugins/tidb-rate-limiter.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAC;AAExF,MAAM,OAAO,eAAe;IAGe;IAFxB,OAAO,CAAqB;IAE7C,YAAY,IAAU,EAAmB,KAAa,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAkB,EAAE,UAA+B,EAAE,cAAuB;QAA9G,UAAK,GAAL,KAAK,CAAQ;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACpJ,CAAC;IAED,KAAK,CAAC,GAAW;QACf,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACrG,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,UAAU,GAAG,IAAI,CAAC,KAAK;YAC5B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE;YAC7E,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACjG,CAAC;IAGD,KAAK;IAEL,CAAC;IAGD,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,UAAmB;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Pool } from "mysql2/promise";
|
|
2
|
+
export declare class TiDBResumeAnchorStore {
|
|
3
|
+
private readonly pool;
|
|
4
|
+
constructor(pool: Pool);
|
|
5
|
+
put(sessionId: string, eventId: string, entryId: string, owner: string | null): Promise<void>;
|
|
6
|
+
resolve(sessionId: string, eventId: string, owner: string | null): Promise<string | undefined>;
|
|
7
|
+
listBySession(sessionId: string): Promise<Array<{
|
|
8
|
+
eventId: string;
|
|
9
|
+
entryId: string;
|
|
10
|
+
owner: string | null;
|
|
11
|
+
}>>;
|
|
12
|
+
deleteBySession(sessionId: string): Promise<number>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=tidb-resume-anchor-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tidb-resume-anchor-store.d.ts","sourceRoot":"","sources":["../../src/plugins/tidb-resume-anchor-store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAkC,MAAM,gBAAgB,CAAC;AAE3E,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAGjC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7F,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW9F,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAU5G,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class TiDBResumeAnchorStore {
|
|
2
|
+
pool;
|
|
3
|
+
constructor(pool) {
|
|
4
|
+
this.pool = pool;
|
|
5
|
+
}
|
|
6
|
+
async put(sessionId, eventId, entryId, owner) {
|
|
7
|
+
await this.pool.query("INSERT INTO resume_anchor (session_id, event_id, entry_id, owner, created_at) VALUES (?,?,?,?,?) " +
|
|
8
|
+
"ON DUPLICATE KEY UPDATE entry_id = VALUES(entry_id), owner = VALUES(owner)", [sessionId, eventId, entryId, owner, new Date()]);
|
|
9
|
+
}
|
|
10
|
+
async resolve(sessionId, eventId, owner) {
|
|
11
|
+
const [rows] = await this.pool.query("SELECT entry_id FROM resume_anchor WHERE session_id = ? AND event_id = ? AND owner <=> ?", [sessionId, eventId, owner]);
|
|
12
|
+
return rows[0] ? String(rows[0].entry_id) : undefined;
|
|
13
|
+
}
|
|
14
|
+
async listBySession(sessionId) {
|
|
15
|
+
const [rows] = await this.pool.query("SELECT event_id, entry_id, owner FROM resume_anchor WHERE session_id = ?", [sessionId]);
|
|
16
|
+
return rows.map((r) => ({ eventId: String(r.event_id), entryId: String(r.entry_id), owner: r.owner == null ? null : String(r.owner) }));
|
|
17
|
+
}
|
|
18
|
+
async deleteBySession(sessionId) {
|
|
19
|
+
const [r] = await this.pool.query("DELETE FROM resume_anchor WHERE session_id = ?", [sessionId]);
|
|
20
|
+
return r.affectedRows;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=tidb-resume-anchor-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tidb-resume-anchor-store.js","sourceRoot":"","sources":["../../src/plugins/tidb-resume-anchor-store.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAG3C,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAE,OAAe,EAAE,KAAoB;QACjF,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,mGAAmG;YACjG,4EAA4E,EAC9E,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CACjD,CAAC;IACJ,CAAC;IAGD,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,OAAe,EAAE,KAAoB;QACpE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,0FAA0F,EAC1F,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAC5B,CAAC;QACF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IAKD,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,0EAA0E,EAC1E,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1I,CAAC;IAID,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAC/B,gDAAgD,EAChD,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,OAAO,CAAC,CAAC,YAAY,CAAC;IACxB,CAAC;CACF"}
|