@revisium/orchestrator 0.1.0-alpha.3 → 0.1.0-alpha.5
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/control-plane/bootstrap.config.json +57 -0
- package/control-plane/default-playbook/catalog/pipelines.json +317 -49
- package/control-plane/default-playbook/catalog/roles.json +9 -0
- package/control-plane/default-playbook/prompts/analyst.md +3 -1
- package/control-plane/default-playbook/prompts/developer.md +2 -1
- package/control-plane/default-playbook/prompts/reviewer.md +4 -3
- package/control-plane/default-playbook/prompts/triager.md +51 -0
- package/control-plane/default-playbook/prompts/watcher.md +2 -2
- package/dist/api/graphql-api/filters/graphql-validation-exception.filter.js +36 -0
- package/dist/api/graphql-api/filters/graphql-validation-exception.filter.js.map +1 -0
- package/dist/api/graphql-api/graphql-api.module.js +75 -0
- package/dist/api/graphql-api/graphql-api.module.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/constants.js +9 -0
- package/dist/api/graphql-api/graphql-ws/constants.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/pubsub.module.js +29 -0
- package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js +101 -0
- package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +115 -0
- package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +85 -0
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/ws.js +22 -0
- package/dist/api/graphql-api/graphql-ws/ws.js.map +1 -0
- package/dist/api/graphql-api/inbox/inbox-subscription.resolver.js +56 -0
- package/dist/api/graphql-api/inbox/inbox-subscription.resolver.js.map +1 -0
- package/dist/api/graphql-api/inbox/inbox.resolver.js +125 -0
- package/dist/api/graphql-api/inbox/inbox.resolver.js.map +1 -0
- package/dist/api/graphql-api/inbox/inputs/answer-question.input.js +33 -0
- package/dist/api/graphql-api/inbox/inputs/answer-question.input.js.map +1 -0
- package/dist/api/graphql-api/inbox/inputs/gate-decision.input.js +27 -0
- package/dist/api/graphql-api/inbox/inputs/gate-decision.input.js.map +1 -0
- package/dist/api/graphql-api/inbox/inputs/list-inbox.input.js +28 -0
- package/dist/api/graphql-api/inbox/inputs/list-inbox.input.js.map +1 -0
- package/dist/api/graphql-api/inbox/inputs/resolve-inbox-item.input.js +38 -0
- package/dist/api/graphql-api/inbox/inputs/resolve-inbox-item.input.js.map +1 -0
- package/dist/api/graphql-api/inbox/model/gate-risk.model.js +53 -0
- package/dist/api/graphql-api/inbox/model/gate-risk.model.js.map +1 -0
- package/dist/api/graphql-api/inbox/model/inbox-connection.model.js +16 -0
- package/dist/api/graphql-api/inbox/model/inbox-connection.model.js.map +1 -0
- package/dist/api/graphql-api/inbox/model/inbox-item.model.js +88 -0
- package/dist/api/graphql-api/inbox/model/inbox-item.model.js.map +1 -0
- package/dist/api/graphql-api/inbox/model/inbox-resolution.model.js +48 -0
- package/dist/api/graphql-api/inbox/model/inbox-resolution.model.js.map +1 -0
- package/dist/api/graphql-api/method/inputs/list-method.input.js +15 -0
- package/dist/api/graphql-api/method/inputs/list-method.input.js.map +1 -0
- package/dist/api/graphql-api/method/method.resolver.js +90 -0
- package/dist/api/graphql-api/method/method.resolver.js.map +1 -0
- package/dist/api/graphql-api/method/model/alternative-role-group.model.js +32 -0
- package/dist/api/graphql-api/method/model/alternative-role-group.model.js.map +1 -0
- package/dist/api/graphql-api/method/model/pipeline-connection.model.js +16 -0
- package/dist/api/graphql-api/method/model/pipeline-connection.model.js.map +1 -0
- package/dist/api/graphql-api/method/model/pipeline.model.js +69 -0
- package/dist/api/graphql-api/method/model/pipeline.model.js.map +1 -0
- package/dist/api/graphql-api/method/model/playbook-connection.model.js +16 -0
- package/dist/api/graphql-api/method/model/playbook-connection.model.js.map +1 -0
- package/dist/api/graphql-api/method/model/playbook.model.js +47 -0
- package/dist/api/graphql-api/method/model/playbook.model.js.map +1 -0
- package/dist/api/graphql-api/method/model/role-connection.model.js +16 -0
- package/dist/api/graphql-api/method/model/role-connection.model.js.map +1 -0
- package/dist/api/graphql-api/method/model/role.model.js +98 -0
- package/dist/api/graphql-api/method/model/role.model.js.map +1 -0
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +52 -0
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -0
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js +403 -0
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -0
- package/dist/api/graphql-api/pr/pr.resolver.js +76 -0
- package/dist/api/graphql-api/pr/pr.resolver.js.map +1 -0
- package/dist/api/graphql-api/registerGraphqlEnums.js +4 -0
- package/dist/api/graphql-api/registerGraphqlEnums.js.map +1 -0
- package/dist/api/graphql-api/runs/inputs/create-run.input.js +63 -0
- package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -0
- package/dist/api/graphql-api/runs/inputs/get-run-attempts.input.js +32 -0
- package/dist/api/graphql-api/runs/inputs/get-run-attempts.input.js.map +1 -0
- package/dist/api/graphql-api/runs/inputs/get-run-events.input.js +28 -0
- package/dist/api/graphql-api/runs/inputs/get-run-events.input.js.map +1 -0
- package/dist/api/graphql-api/runs/inputs/list-runs.input.js +23 -0
- package/dist/api/graphql-api/runs/inputs/list-runs.input.js.map +1 -0
- package/dist/api/graphql-api/runs/inputs/simulate-route.input.js +43 -0
- package/dist/api/graphql-api/runs/inputs/simulate-route.input.js.map +1 -0
- package/dist/api/graphql-api/runs/model/create-run-result.model.js +53 -0
- package/dist/api/graphql-api/runs/model/create-run-result.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-attempt.model.js +114 -0
- package/dist/api/graphql-api/runs/model/run-attempt.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-connection.model.js +16 -0
- package/dist/api/graphql-api/runs/model/run-connection.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-cost.model.js +67 -0
- package/dist/api/graphql-api/runs/model/run-cost.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-digest.model.js +41 -0
- package/dist/api/graphql-api/runs/model/run-digest.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-event-connection.model.js +16 -0
- package/dist/api/graphql-api/runs/model/run-event-connection.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-event.model.js +58 -0
- package/dist/api/graphql-api/runs/model/run-event.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-progress.model.js +33 -0
- package/dist/api/graphql-api/runs/model/run-progress.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run-workflow.model.js +287 -0
- package/dist/api/graphql-api/runs/model/run-workflow.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/run.model.js +57 -0
- package/dist/api/graphql-api/runs/model/run.model.js.map +1 -0
- package/dist/api/graphql-api/runs/model/usage.model.js +32 -0
- package/dist/api/graphql-api/runs/model/usage.model.js.map +1 -0
- package/dist/api/graphql-api/runs/run-digest.resolver.js +40 -0
- package/dist/api/graphql-api/runs/run-digest.resolver.js.map +1 -0
- package/dist/api/graphql-api/runs/run-events.resolver.js +45 -0
- package/dist/api/graphql-api/runs/run-events.resolver.js.map +1 -0
- package/dist/api/graphql-api/runs/run-progress.resolver.js +53 -0
- package/dist/api/graphql-api/runs/run-progress.resolver.js.map +1 -0
- package/dist/api/graphql-api/runs/runs-subscription.resolver.js +93 -0
- package/dist/api/graphql-api/runs/runs-subscription.resolver.js.map +1 -0
- package/dist/api/graphql-api/runs/runs.resolver.js +130 -0
- package/dist/api/graphql-api/runs/runs.resolver.js.map +1 -0
- package/dist/api/graphql-api/share/graphql-param-types.js +6 -0
- package/dist/api/graphql-api/share/graphql-param-types.js.map +1 -0
- package/dist/api/graphql-api/share/inputs/connection.input.js +27 -0
- package/dist/api/graphql-api/share/inputs/connection.input.js.map +1 -0
- package/dist/api/graphql-api/share/inputs/run-subscription.input.js +22 -0
- package/dist/api/graphql-api/share/inputs/run-subscription.input.js.map +1 -0
- package/dist/api/graphql-api/share/model/paginated.model.js +75 -0
- package/dist/api/graphql-api/share/model/paginated.model.js.map +1 -0
- package/dist/api/graphql-api/system/model/daemon-status.model.js +47 -0
- package/dist/api/graphql-api/system/model/daemon-status.model.js.map +1 -0
- package/dist/api/graphql-api/system/model/doctor-result.model.js +33 -0
- package/dist/api/graphql-api/system/model/doctor-result.model.js.map +1 -0
- package/dist/api/graphql-api/system/model/project.model.js +37 -0
- package/dist/api/graphql-api/system/model/project.model.js.map +1 -0
- package/dist/api/graphql-api/system/model/repository-context.model.js +70 -0
- package/dist/api/graphql-api/system/model/repository-context.model.js.map +1 -0
- package/dist/api/graphql-api/system/model/repository-validation.model.js +62 -0
- package/dist/api/graphql-api/system/model/repository-validation.model.js.map +1 -0
- package/dist/api/graphql-api/system/model/system-status.model.js +29 -0
- package/dist/api/graphql-api/system/model/system-status.model.js.map +1 -0
- package/dist/api/graphql-api/system/system.resolver.js +83 -0
- package/dist/api/graphql-api/system/system.resolver.js.map +1 -0
- package/dist/cli/commands/inbox.js +1 -1
- package/dist/cli/commands/inbox.js.map +1 -1
- package/dist/cli/commands/run.js +0 -2
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/serve.js +26 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/program.js +2 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -1
- package/dist/control-plane/change-notifications.js +35 -0
- package/dist/control-plane/change-notifications.js.map +1 -0
- package/dist/control-plane/data-access.js +10 -3
- package/dist/control-plane/data-access.js.map +1 -1
- package/dist/control-plane/inbox.js +5 -31
- package/dist/control-plane/inbox.js.map +1 -1
- package/dist/control-plane/index.js +1 -1
- package/dist/control-plane/index.js.map +1 -1
- package/dist/control-plane/json-fields.js +1 -0
- package/dist/control-plane/json-fields.js.map +1 -1
- package/dist/control-plane/resolve-cwd.js +76 -8
- package/dist/control-plane/resolve-cwd.js.map +1 -1
- package/dist/control-plane/schema-migration.js +7 -0
- package/dist/control-plane/schema-migration.js.map +1 -1
- package/dist/control-plane/steps.js +15 -349
- package/dist/control-plane/steps.js.map +1 -1
- package/dist/control-plane/tables.js +1 -0
- package/dist/control-plane/tables.js.map +1 -1
- package/dist/e2e/kit/agents.js +32 -9
- package/dist/e2e/kit/agents.js.map +1 -1
- package/dist/e2e/kit/assertions.js +37 -14
- package/dist/e2e/kit/assertions.js.map +1 -1
- package/dist/e2e/kit/drive.js +0 -4
- package/dist/e2e/kit/drive.js.map +1 -1
- package/dist/e2e/kit/fake-integrator.js +16 -1
- package/dist/e2e/kit/fake-integrator.js.map +1 -1
- package/dist/e2e/kit/gh-emulator.js +173 -10
- package/dist/e2e/kit/gh-emulator.js.map +1 -1
- package/dist/e2e/kit/git-target-repo.js +35 -3
- package/dist/e2e/kit/git-target-repo.js.map +1 -1
- package/dist/e2e/kit/harness.js +4 -2
- package/dist/e2e/kit/harness.js.map +1 -1
- package/dist/engine/dbos.module.js +2 -1
- package/dist/engine/dbos.module.js.map +1 -1
- package/dist/engine/dbos.service.js +69 -18
- package/dist/engine/dbos.service.js.map +1 -1
- package/dist/features/inbox/commands/handlers/inbox-command.handlers.js +80 -0
- package/dist/features/inbox/commands/handlers/inbox-command.handlers.js.map +1 -0
- package/dist/features/inbox/commands/impl/answer-question.command.js +7 -0
- package/dist/features/inbox/commands/impl/answer-question.command.js.map +1 -0
- package/dist/features/inbox/commands/impl/approve-gate.command.js +7 -0
- package/dist/features/inbox/commands/impl/approve-gate.command.js.map +1 -0
- package/dist/features/inbox/commands/impl/reject-gate.command.js +7 -0
- package/dist/features/inbox/commands/impl/reject-gate.command.js.map +1 -0
- package/dist/features/inbox/commands/impl/resolve-inbox-item.command.js +7 -0
- package/dist/features/inbox/commands/impl/resolve-inbox-item.command.js.map +1 -0
- package/dist/features/inbox/commands/index.js +8 -0
- package/dist/features/inbox/commands/index.js.map +1 -0
- package/dist/features/inbox/inbox-api.module.js +23 -0
- package/dist/features/inbox/inbox-api.module.js.map +1 -0
- package/dist/features/inbox/inbox-api.service.js +63 -0
- package/dist/features/inbox/inbox-api.service.js.map +1 -0
- package/dist/features/inbox/queries/handlers/inbox-query.handlers.js +111 -0
- package/dist/features/inbox/queries/handlers/inbox-query.handlers.js.map +1 -0
- package/dist/features/inbox/queries/impl/get-inbox-item.query.js +7 -0
- package/dist/features/inbox/queries/impl/get-inbox-item.query.js.map +1 -0
- package/dist/features/inbox/queries/impl/get-pending-decisions.query.js +7 -0
- package/dist/features/inbox/queries/impl/get-pending-decisions.query.js.map +1 -0
- package/dist/features/inbox/queries/impl/list-inbox.query.js +7 -0
- package/dist/features/inbox/queries/impl/list-inbox.query.js.map +1 -0
- package/dist/features/inbox/queries/impl/summarize-gate-risk.query.js +7 -0
- package/dist/features/inbox/queries/impl/summarize-gate-risk.query.js.map +1 -0
- package/dist/features/inbox/queries/index.js +8 -0
- package/dist/features/inbox/queries/index.js.map +1 -0
- package/dist/features/method/commands/index.js +2 -0
- package/dist/features/method/commands/index.js.map +1 -0
- package/dist/features/method/method-api.module.js +23 -0
- package/dist/features/method/method-api.module.js.map +1 -0
- package/dist/features/method/method-api.service.js +47 -0
- package/dist/features/method/method-api.service.js.map +1 -0
- package/dist/features/method/queries/handlers/method-query.handlers.js +115 -0
- package/dist/features/method/queries/handlers/method-query.handlers.js.map +1 -0
- package/dist/features/method/queries/impl/get-pipeline.query.js +7 -0
- package/dist/features/method/queries/impl/get-pipeline.query.js.map +1 -0
- package/dist/features/method/queries/impl/get-role.query.js +7 -0
- package/dist/features/method/queries/impl/get-role.query.js.map +1 -0
- package/dist/features/method/queries/impl/list-pipelines.query.js +7 -0
- package/dist/features/method/queries/impl/list-pipelines.query.js.map +1 -0
- package/dist/features/method/queries/impl/list-playbooks.query.js +7 -0
- package/dist/features/method/queries/impl/list-playbooks.query.js.map +1 -0
- package/dist/features/method/queries/impl/list-roles.query.js +7 -0
- package/dist/features/method/queries/impl/list-roles.query.js.map +1 -0
- package/dist/features/method/queries/index.js +9 -0
- package/dist/features/method/queries/index.js.map +1 -0
- package/dist/features/pr/commands/index.js +2 -0
- package/dist/features/pr/commands/index.js.map +1 -0
- package/dist/features/pr/pr-api.module.js +23 -0
- package/dist/features/pr/pr-api.module.js.map +1 -0
- package/dist/features/pr/pr-api.service.js +35 -0
- package/dist/features/pr/pr-api.service.js.map +1 -0
- package/dist/features/pr/queries/handlers/pr-query.handlers.js +48 -0
- package/dist/features/pr/queries/handlers/pr-query.handlers.js.map +1 -0
- package/dist/features/pr/queries/impl/get-pr-readiness.query.js +7 -0
- package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -0
- package/dist/features/pr/queries/impl/list-pr-feedback.query.js +7 -0
- package/dist/features/pr/queries/impl/list-pr-feedback.query.js.map +1 -0
- package/dist/features/pr/queries/index.js +3 -0
- package/dist/features/pr/queries/index.js.map +1 -0
- package/dist/features/runs/commands/handlers/runs-command.handlers.js +32 -0
- package/dist/features/runs/commands/handlers/runs-command.handlers.js.map +1 -0
- package/dist/features/runs/commands/impl/create-run.command.js +7 -0
- package/dist/features/runs/commands/impl/create-run.command.js.map +1 -0
- package/dist/features/runs/commands/index.js +3 -0
- package/dist/features/runs/commands/index.js.map +1 -0
- package/dist/features/runs/queries/handlers/runs-query.handlers.js +224 -0
- package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -0
- package/dist/features/runs/queries/impl/get-run-attempts.query.js +7 -0
- package/dist/features/runs/queries/impl/get-run-attempts.query.js.map +1 -0
- package/dist/features/runs/queries/impl/get-run-digest.query.js +7 -0
- package/dist/features/runs/queries/impl/get-run-digest.query.js.map +1 -0
- package/dist/features/runs/queries/impl/get-run-events.query.js +7 -0
- package/dist/features/runs/queries/impl/get-run-events.query.js.map +1 -0
- package/dist/features/runs/queries/impl/get-run-progress.query.js +7 -0
- package/dist/features/runs/queries/impl/get-run-progress.query.js.map +1 -0
- package/dist/features/runs/queries/impl/get-run-workflow.query.js +7 -0
- package/dist/features/runs/queries/impl/get-run-workflow.query.js.map +1 -0
- package/dist/features/runs/queries/impl/get-run.query.js +7 -0
- package/dist/features/runs/queries/impl/get-run.query.js.map +1 -0
- package/dist/features/runs/queries/impl/list-runs.query.js +7 -0
- package/dist/features/runs/queries/impl/list-runs.query.js.map +1 -0
- package/dist/features/runs/queries/impl/simulate-route.query.js +7 -0
- package/dist/features/runs/queries/impl/simulate-route.query.js.map +1 -0
- package/dist/features/runs/queries/index.js +12 -0
- package/dist/features/runs/queries/index.js.map +1 -0
- package/dist/features/runs/runs-api.module.js +23 -0
- package/dist/features/runs/runs-api.module.js.map +1 -0
- package/dist/features/runs/runs-api.service.js +67 -0
- package/dist/features/runs/runs-api.service.js.map +1 -0
- package/dist/features/shared/connection.js +39 -0
- package/dist/features/shared/connection.js.map +1 -0
- package/dist/features/system/commands/index.js +2 -0
- package/dist/features/system/commands/index.js.map +1 -0
- package/dist/features/system/queries/handlers/system-query.handlers.js +96 -0
- package/dist/features/system/queries/handlers/system-query.handlers.js.map +1 -0
- package/dist/features/system/queries/impl/doctor.query.js +4 -0
- package/dist/features/system/queries/impl/doctor.query.js.map +1 -0
- package/dist/features/system/queries/impl/get-project.query.js +4 -0
- package/dist/features/system/queries/impl/get-project.query.js.map +1 -0
- package/dist/features/system/queries/impl/get-repository-context.query.js +7 -0
- package/dist/features/system/queries/impl/get-repository-context.query.js.map +1 -0
- package/dist/features/system/queries/impl/get-status.query.js +4 -0
- package/dist/features/system/queries/impl/get-status.query.js.map +1 -0
- package/dist/features/system/queries/impl/validate-repository.query.js +7 -0
- package/dist/features/system/queries/impl/validate-repository.query.js.map +1 -0
- package/dist/features/system/queries/index.js +9 -0
- package/dist/features/system/queries/index.js.map +1 -0
- package/dist/features/system/system-api.module.js +23 -0
- package/dist/features/system/system-api.module.js.map +1 -0
- package/dist/features/system/system-api.service.js +47 -0
- package/dist/features/system/system-api.service.js.map +1 -0
- package/dist/host/host.lifecycle.js +16 -3
- package/dist/host/host.lifecycle.js.map +1 -1
- package/dist/http/graphql-host.js +50 -0
- package/dist/http/graphql-host.js.map +1 -0
- package/dist/http/graphql-host.module.js +20 -0
- package/dist/http/graphql-host.module.js.map +1 -0
- package/dist/infrastructure/metrics/graphql/graphql-metrics.js +91 -0
- package/dist/infrastructure/metrics/graphql/graphql-metrics.js.map +1 -0
- package/dist/pipeline/await-human.js +8 -4
- package/dist/pipeline/await-human.js.map +1 -1
- package/dist/pipeline/data-driven-task.workflow.js +268 -29
- package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
- package/dist/pipeline/data-driven-template.js +3 -3
- package/dist/pipeline/pipeline.module.js +1 -1
- package/dist/pipeline/pipeline.module.js.map +1 -1
- package/dist/pipeline/{develop-task.workflow.js → pipeline.service.js} +44 -11
- package/dist/pipeline/pipeline.service.js.map +1 -0
- package/dist/pipeline-core/kit/builders.js +2 -0
- package/dist/pipeline-core/kit/builders.js.map +1 -1
- package/dist/pipeline-core/kit/fixtures.js +94 -0
- package/dist/pipeline-core/kit/fixtures.js.map +1 -1
- package/dist/pipeline-core/types.js +8 -0
- package/dist/pipeline-core/types.js.map +1 -1
- package/dist/pipeline-core/validate.js +160 -0
- package/dist/pipeline-core/validate.js.map +1 -1
- package/dist/revisium/run.service.js +24 -7
- package/dist/revisium/run.service.js.map +1 -1
- package/dist/run/create-run.js +5 -31
- package/dist/run/create-run.js.map +1 -1
- package/dist/run/inspect-run.js +2 -29
- package/dist/run/inspect-run.js.map +1 -1
- package/dist/run/run-outputs.js +88 -0
- package/dist/run/run-outputs.js.map +1 -0
- package/dist/run/terminal-run-status.js +7 -30
- package/dist/run/terminal-run-status.js.map +1 -1
- package/dist/runners/claude-code.service.js +1 -0
- package/dist/runners/claude-code.service.js.map +1 -1
- package/dist/runners/integrator.js +241 -5
- package/dist/runners/integrator.js.map +1 -1
- package/dist/runners/runner.module.js +3 -1
- package/dist/runners/runner.module.js.map +1 -1
- package/dist/runners/worktree.service.js +63 -0
- package/dist/runners/worktree.service.js.map +1 -0
- package/dist/task-control-plane/task-control-plane-api.service.js +293 -3
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/task-control-plane/task-control-plane.module.js +1 -2
- package/dist/task-control-plane/task-control-plane.module.js.map +1 -1
- package/dist/worker/build-context.js +17 -0
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +13 -15
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/git-worktree-manager.js +148 -0
- package/dist/worker/git-worktree-manager.js.map +1 -0
- package/dist/worker/result-envelope.js +41 -1
- package/dist/worker/result-envelope.js.map +1 -1
- package/dist/worker/runner.js.map +1 -1
- package/package.json +15 -7
- package/dist/pipeline/develop-task.workflow.js.map +0 -1
- package/dist/worker/worktree-manager.js +0 -7
- package/dist/worker/worktree-manager.js.map +0 -1
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
* • a relative '../…' escape → traversal guard (only relative refs are guarded; an ABSOLUTE
|
|
12
12
|
* ref is taken as the literal target repo, existence-checked).
|
|
13
13
|
*/
|
|
14
|
-
import { resolve, isAbsolute, relative, sep } from 'node:path';
|
|
15
|
-
import { existsSync, realpathSync, statSync } from 'node:fs';
|
|
14
|
+
import { resolve, isAbsolute, relative, sep, join } from 'node:path';
|
|
15
|
+
import { existsSync, lstatSync, realpathSync, statSync } from 'node:fs';
|
|
16
16
|
import { toStr } from './steps.js';
|
|
17
17
|
/** Resolve a repo_ref string to an absolute, existing directory path. */
|
|
18
18
|
export async function resolveRepoCwdFromRef(repoRef, base) {
|
|
@@ -58,16 +58,84 @@ async function readRepoRef(da, taskId) {
|
|
|
58
58
|
}
|
|
59
59
|
return toStr(task.data.repo_ref);
|
|
60
60
|
}
|
|
61
|
+
// ─── Per-run worktree isolation (plan 0017) ────────────────────────────────────
|
|
61
62
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
63
|
+
* Deterministic per-run worktree path: `<dataDir>/worktrees/<runId>`. COMPUTED, never stored —
|
|
64
|
+
* preserving invariant #1 (no durable state in local files; the durable artifact is the pushed
|
|
65
|
+
* branch + DBOS progress, the worktree is execution scratch). Sited under the data dir, NOT inside
|
|
66
|
+
* the target repo, so a live worktree never pollutes the target's own `git status`.
|
|
64
67
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
/** Guard a value used as a single filesystem path segment — refuse separators / traversal so a
|
|
69
|
+
* malformed runId can never make a worktree path escape `<dataDir>/worktrees/` (release rm's it). */
|
|
70
|
+
function assertPathSegment(value, label) {
|
|
71
|
+
if (value === '' || value === '.' || value === '..' || value.includes('/') || value.includes('\\') || value.includes('..') || value.includes('\0')) {
|
|
72
|
+
throw new Error(`${label} ${JSON.stringify(value)} must be a single safe path segment`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function worktreePathFor(dataDir, runId) {
|
|
76
|
+
assertPathSegment(runId, 'runId');
|
|
77
|
+
return join(dataDir, 'worktrees', runId);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Live-run worktree marker: `<dataDir>/worktrees/<runId>.live`. Its presence means "this run is live
|
|
81
|
+
* and MUST resolve to its worktree". It lets the run resolver FAIL LOUD when a live run's worktree is
|
|
82
|
+
* missing/lost instead of silently falling back to the shared base checkout (which would re-introduce
|
|
83
|
+
* the exact cross-run corruption worktree isolation exists to prevent). Written at create, removed at
|
|
84
|
+
* release.
|
|
85
|
+
*/
|
|
86
|
+
export function worktreeMarkerFor(dataDir, runId) {
|
|
87
|
+
assertPathSegment(runId, 'runId');
|
|
88
|
+
return join(dataDir, 'worktrees', `${runId}.live`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A path is a usable LINKED git worktree iff it is a directory carrying a `.git` POINTER FILE (a linked
|
|
92
|
+
* worktree's `.git` is a file `gitdir: …`, never a directory). Requiring a file rejects a normal clone's
|
|
93
|
+
* `.git` directory and stale/corrupt paths, so a live run never silently runs effects in an invalid tree.
|
|
94
|
+
*/
|
|
95
|
+
export function isWorktreeDir(path) {
|
|
96
|
+
try {
|
|
97
|
+
return statSync(path).isDirectory() && lstatSync(join(path, '.git')).isFile();
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* RUN-level resolver (plan 0017) — the cwd for every repo-touching LIVE effect (developer/rework steps
|
|
105
|
+
* + the integrator). Prefers the run's isolated worktree; FAILS LOUD for a live run whose worktree is
|
|
106
|
+
* missing (marker present, worktree gone); falls back to the shared base checkout ONLY for non-live
|
|
107
|
+
* runs (script/stub do no real git, so no worktree/marker is ever created for them).
|
|
108
|
+
*/
|
|
109
|
+
export async function resolveRunCwd(da, dataDir, runId, taskId, base = process.cwd()) {
|
|
110
|
+
const wt = worktreePathFor(dataDir, runId);
|
|
111
|
+
if (isWorktreeDir(wt))
|
|
112
|
+
return wt;
|
|
113
|
+
if (existsSync(worktreeMarkerFor(dataDir, runId))) {
|
|
114
|
+
throw new Error(`resolveRunCwd: live run ${runId} expects an isolated worktree at ${JSON.stringify(wt)} ` +
|
|
115
|
+
`but it is missing or invalid — refusing to fall back to the shared base checkout`);
|
|
116
|
+
}
|
|
117
|
+
return resolveRepoCwdFromRef(await readRepoRef(da, taskId), base);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* STEP-level resolver (M3, plan 0017) — shape expected by the claude runner: (step) => Promise<string>.
|
|
121
|
+
* Now WORKTREE-AWARE: resolves to the run's isolated worktree (keyed by step.runId) for live runs,
|
|
122
|
+
* else the shared base checkout. Reads tasks.repo_ref via the data-access layer for the fallback.
|
|
123
|
+
*/
|
|
124
|
+
export function makeResolveCwd(da, dataDir, base = process.cwd()) {
|
|
125
|
+
return (step) => resolveRunCwd(da, dataDir, step.runId, step.taskId, base);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* RUN-level resolver shape for the integrator: (runId, taskId) => Promise<string>. Same contract as
|
|
129
|
+
* the step resolver but keyed explicitly by runId (concurrent runs share a taskId, so the integrator
|
|
130
|
+
* MUST resolve by runId or two runs collide on one tree).
|
|
131
|
+
*/
|
|
132
|
+
export function makeResolveRunCwd(da, dataDir, base = process.cwd()) {
|
|
133
|
+
return (runId, taskId) => resolveRunCwd(da, dataDir, runId, taskId, base);
|
|
67
134
|
}
|
|
68
135
|
/**
|
|
69
|
-
* TASK-level resolver (M3) —
|
|
70
|
-
*
|
|
136
|
+
* TASK-level resolver (M3) — the BASE checkout, keyed by taskId: (taskId: string) => Promise<string>.
|
|
137
|
+
* Used by the LIVE PREFLIGHT, which must run against the user's base checkout BEFORE the worktree is
|
|
138
|
+
* created (its fetch + clean/freshness checks protect the base repo). NOT worktree-aware by design.
|
|
71
139
|
*/
|
|
72
140
|
export function makeResolveTaskCwd(da, base = process.cwd()) {
|
|
73
141
|
return async (taskId) => resolveRepoCwdFromRef(await readRepoRef(da, taskId), base);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-cwd.js","sourceRoot":"","sources":["../../src/control-plane/resolve-cwd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-cwd.js","sourceRoot":"","sources":["../../src/control-plane/resolve-cwd.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,13 @@ export async function applyAdditiveSchemaMigration(input) {
|
|
|
62
62
|
currentSchema = await draft.getTableSchema(table.id);
|
|
63
63
|
}
|
|
64
64
|
catch {
|
|
65
|
+
// Table absent on an upgraded control-plane (e.g. `run_outputs`, added in 0016). The previous
|
|
66
|
+
// code only PATCHED existing tables, so a brand-new table would never land on an already-
|
|
67
|
+
// bootstrapped control-plane. Create it from the bootstrap schema (fresh bootstrap already
|
|
68
|
+
// creates every config table; this covers the upgrade path).
|
|
69
|
+
await draft.createTable(table.id, table.schema);
|
|
70
|
+
updatedTables.push(table.id);
|
|
71
|
+
patchCount += 1;
|
|
65
72
|
continue;
|
|
66
73
|
}
|
|
67
74
|
const patches = computeAdditiveSchemaPatches(currentSchema, table.schema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-migration.js","sourceRoot":"","sources":["../../src/control-plane/schema-migration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-migration.js","sourceRoot":"","sources":["../../src/control-plane/schema-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Step types + deterministic id / format helpers for the control plane.
|
|
3
|
+
*
|
|
4
|
+
* NOTE: the legacy step-lifecycle verbs (`claimNextStep`/`startAttempt`/`writeResult`/`failStep`/
|
|
5
|
+
* `recoverInFlight`/`createSteps`) were the pre-pivot dumb-loop step queue. They are superseded by the
|
|
6
|
+
* DBOS-driven data-driven engine and were removed (audit §2.1). What remains here is the `Step` shape the
|
|
7
|
+
* runner machinery still consumes (synthesized in-memory by the engine — `RunService.loadPipelineContext` —
|
|
8
|
+
* not read from a `steps` row) plus a few pure id / format helpers reused across the run / inbox / pipeline
|
|
9
|
+
* layers.
|
|
10
|
+
*/
|
|
11
|
+
// ─── id / format helpers ─────────────────────────────────────
|
|
7
12
|
export function compactStamp(date) {
|
|
8
13
|
const pad = (v, l = 2) => String(v).padStart(l, '0');
|
|
9
14
|
return [
|
|
@@ -18,17 +23,10 @@ export function compactStamp(date) {
|
|
|
18
23
|
'Z',
|
|
19
24
|
].join('');
|
|
20
25
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return opts?.idSuffix ?? randomUUID().replaceAll('-', '').slice(0, 8);
|
|
26
|
-
}
|
|
27
|
-
// Non-cryptographic FNV-1a 64-bit hash → 16 hex chars. Used to derive a child step id that is
|
|
28
|
-
// DETERMINISTIC (same parent + index → same id, so a crash-retry is idempotent) yet BOUNDED in
|
|
29
|
-
// length. Revisium rowIds max out at 64 chars; concatenating the parent id per level
|
|
30
|
-
// (`${parent}_ch_${i}`) overflowed on deep chains. Not crypto, so it does not trip the
|
|
31
|
-
// weak-hash security hotspot.
|
|
26
|
+
// Non-cryptographic FNV-1a 64-bit hash → 16 hex chars. Used to derive DETERMINISTIC, BOUNDED row ids
|
|
27
|
+
// (same input → same id, so a crash-retry is idempotent) that fit Revisium's 64-char rowId limit:
|
|
28
|
+
// `inbox_`/`event_`/`cost_`/`attempt_`/`out_`/`step_` + 16 hex stays well under the cap. Not crypto, so
|
|
29
|
+
// it does not trip the weak-hash security hotspot.
|
|
32
30
|
export function fnv1a64Hex(input) {
|
|
33
31
|
let hash = 0xcbf29ce484222325n;
|
|
34
32
|
const prime = 0x100000001b3n;
|
|
@@ -46,336 +44,4 @@ export function toStr(v) {
|
|
|
46
44
|
return String(v);
|
|
47
45
|
return '';
|
|
48
46
|
}
|
|
49
|
-
function mapStep(row) {
|
|
50
|
-
const d = row.data;
|
|
51
|
-
return {
|
|
52
|
-
id: row.rowId,
|
|
53
|
-
taskId: toStr(d.task_id),
|
|
54
|
-
runId: toStr(d.run_id),
|
|
55
|
-
role: toStr(d.role),
|
|
56
|
-
kind: toStr(d.kind),
|
|
57
|
-
status: toStr(d.status),
|
|
58
|
-
input: d.input ?? null,
|
|
59
|
-
output: d.output ?? null,
|
|
60
|
-
modelProfile: toStr(d.model_profile),
|
|
61
|
-
runAfter: toStr(d.run_after),
|
|
62
|
-
attemptCount: Number(d.attempt_count ?? 0),
|
|
63
|
-
maxAttempts: Number(d.max_attempts ?? 3),
|
|
64
|
-
priority: Number(d.priority ?? 0),
|
|
65
|
-
leaseOwner: toStr(d.lease_owner),
|
|
66
|
-
leaseExpiresAt: toStr(d.lease_expires_at),
|
|
67
|
-
deadReason: toStr(d.dead_reason),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
function compareByPriorityThenAge(a, b) {
|
|
71
|
-
const pa = Number(a.data.priority ?? 0);
|
|
72
|
-
const pb = Number(b.data.priority ?? 0);
|
|
73
|
-
if (pb !== pa)
|
|
74
|
-
return pb - pa;
|
|
75
|
-
const ca = toStr(a.data.created_at);
|
|
76
|
-
const cb = toStr(b.data.created_at);
|
|
77
|
-
if (ca < cb)
|
|
78
|
-
return -1;
|
|
79
|
-
if (ca > cb)
|
|
80
|
-
return 1;
|
|
81
|
-
return 0;
|
|
82
|
-
}
|
|
83
|
-
function backoffRunAfter(t, attemptCount) {
|
|
84
|
-
const delayMs = 30_000 * Math.pow(2, attemptCount);
|
|
85
|
-
return new Date(t.getTime() + delayMs).toISOString();
|
|
86
|
-
}
|
|
87
|
-
// ─── exported verbs ──────────────────────────────────────────
|
|
88
|
-
// MVP: single-worker read-then-write is acceptable; atomic claim belongs only here later.
|
|
89
|
-
export async function claimNextStep(da, workerId, roles, opts) {
|
|
90
|
-
const t = clockNow(opts);
|
|
91
|
-
const nowIso = t.toISOString();
|
|
92
|
-
const leaseTtlMs = opts?.leaseTtlMs ?? 30_000;
|
|
93
|
-
const leaseExpiresAt = new Date(t.getTime() + leaseTtlMs).toISOString();
|
|
94
|
-
// Server-side: filter status=ready AND role∈roles, sort by priority desc then createdAt asc.
|
|
95
|
-
// WORKAROUND: JsonFilterDto.equals is typed as { [key: string]: unknown } but accepts scalar
|
|
96
|
-
// strings at runtime; the @revisium/client JSON-path scalar-equality type gap requires the cast.
|
|
97
|
-
// run_after <= now CANNOT be pushed server-side: JsonFilterDto.lte is typed as number only and
|
|
98
|
-
// has no string/date counterpart. The in-process filter below is the authoritative gate, bounded
|
|
99
|
-
// by CLAIM_CAP so future-scheduled steps cannot exhaust the cap if they accumulate.
|
|
100
|
-
// In-process: re-apply all predicates for correctness against fake/unconstrained transports.
|
|
101
|
-
const rows = await da.listRows('steps', {
|
|
102
|
-
first: CLAIM_CAP,
|
|
103
|
-
where: {
|
|
104
|
-
AND: [
|
|
105
|
-
{ data: { path: 'status', equals: 'ready' } },
|
|
106
|
-
{ OR: roles.map((r) => ({ data: { path: 'role', equals: r } })) },
|
|
107
|
-
],
|
|
108
|
-
},
|
|
109
|
-
orderBy: [
|
|
110
|
-
{ field: 'data', direction: 'desc', path: 'priority', type: 'int' },
|
|
111
|
-
{ field: 'createdAt', direction: 'asc' },
|
|
112
|
-
],
|
|
113
|
-
});
|
|
114
|
-
const candidateRow = rows
|
|
115
|
-
.filter((row) => {
|
|
116
|
-
const d = row.data;
|
|
117
|
-
return (toStr(d.status) === 'ready' &&
|
|
118
|
-
roles.includes(toStr(d.role)) &&
|
|
119
|
-
(toStr(d.run_after) === '' || toStr(d.run_after) <= nowIso));
|
|
120
|
-
})
|
|
121
|
-
.sort(compareByPriorityThenAge)
|
|
122
|
-
.at(0);
|
|
123
|
-
if (!candidateRow)
|
|
124
|
-
return null;
|
|
125
|
-
const candidate = mapStep(candidateRow);
|
|
126
|
-
await da.patchRow('steps', candidate.id, [
|
|
127
|
-
{ op: 'replace', path: 'status', value: 'claimed' },
|
|
128
|
-
{ op: 'replace', path: 'lease_owner', value: workerId },
|
|
129
|
-
{ op: 'replace', path: 'lease_expires_at', value: leaseExpiresAt },
|
|
130
|
-
{ op: 'replace', path: 'updated_at', value: nowIso },
|
|
131
|
-
]);
|
|
132
|
-
return { ...candidate, status: 'claimed', leaseOwner: workerId, leaseExpiresAt };
|
|
133
|
-
}
|
|
134
|
-
export async function startAttempt(da, step, opts) {
|
|
135
|
-
const t = clockNow(opts);
|
|
136
|
-
const nowIso = t.toISOString();
|
|
137
|
-
const sfx = clockSuffix(opts);
|
|
138
|
-
const st = compactStamp(t);
|
|
139
|
-
const attemptId = `attempt_${st}_${sfx}`;
|
|
140
|
-
const idempotencyKey = `idem_${st}_${sfx}`;
|
|
141
|
-
// Attempt row is written before step status flips to 'running'.
|
|
142
|
-
await da.createRow('attempts', attemptId, {
|
|
143
|
-
id: attemptId,
|
|
144
|
-
step_id: step.id,
|
|
145
|
-
run_id: step.runId,
|
|
146
|
-
worker_id: opts.workerId,
|
|
147
|
-
attempt_no: step.attemptCount + 1,
|
|
148
|
-
status: 'running',
|
|
149
|
-
idempotency_key: idempotencyKey,
|
|
150
|
-
model_profile: opts.modelProfile ?? step.modelProfile,
|
|
151
|
-
input_tokens: 0,
|
|
152
|
-
output_tokens: 0,
|
|
153
|
-
lesson: '',
|
|
154
|
-
error: '',
|
|
155
|
-
started_at: nowIso,
|
|
156
|
-
finished_at: '',
|
|
157
|
-
});
|
|
158
|
-
// Increment attempt_count here so crash recovery (recoverInFlight) sees the correct value
|
|
159
|
-
// even when failStep is never called. failStep reads the same derived value so no double-count.
|
|
160
|
-
await da.patchRow('steps', step.id, [
|
|
161
|
-
{ op: 'replace', path: 'status', value: 'running' },
|
|
162
|
-
{ op: 'replace', path: 'attempt_count', value: step.attemptCount + 1 },
|
|
163
|
-
{ op: 'replace', path: 'updated_at', value: nowIso },
|
|
164
|
-
]);
|
|
165
|
-
return { attemptId, idempotencyKey };
|
|
166
|
-
}
|
|
167
|
-
export async function writeResult(da, step, attemptId, output, costs, opts) {
|
|
168
|
-
const t = clockNow(opts);
|
|
169
|
-
const nowIso = t.toISOString();
|
|
170
|
-
const sfx = clockSuffix(opts);
|
|
171
|
-
const st = compactStamp(t);
|
|
172
|
-
// 1. Close attempt
|
|
173
|
-
await da.patchRow('attempts', attemptId, [
|
|
174
|
-
{ op: 'replace', path: 'status', value: 'succeeded' },
|
|
175
|
-
{ op: 'replace', path: 'finished_at', value: nowIso },
|
|
176
|
-
]);
|
|
177
|
-
// 2. Append event
|
|
178
|
-
await da.createRow('events', `event_${st}_step-succeeded_${sfx}`, {
|
|
179
|
-
id: `event_${st}_step-succeeded_${sfx}`,
|
|
180
|
-
run_id: step.runId,
|
|
181
|
-
task_id: step.taskId,
|
|
182
|
-
step_id: step.id,
|
|
183
|
-
type: 'step_succeeded',
|
|
184
|
-
payload: { attempt_id: attemptId },
|
|
185
|
-
actor: 'orchestrator',
|
|
186
|
-
created_at: nowIso,
|
|
187
|
-
});
|
|
188
|
-
// 3. Append cost rows
|
|
189
|
-
for (let i = 0; i < costs.length; i++) {
|
|
190
|
-
const cost = costs[i];
|
|
191
|
-
if (!cost)
|
|
192
|
-
continue;
|
|
193
|
-
await da.createRow('cost_ledger', `cost_${st}_${sfx}_${i}`, {
|
|
194
|
-
id: `cost_${st}_${sfx}_${i}`,
|
|
195
|
-
run_id: step.runId,
|
|
196
|
-
step_id: step.id,
|
|
197
|
-
attempt_id: attemptId,
|
|
198
|
-
model_profile: cost.modelProfile,
|
|
199
|
-
input_tokens: cost.inputTokens,
|
|
200
|
-
output_tokens: cost.outputTokens,
|
|
201
|
-
cost_amount: cost.costAmount,
|
|
202
|
-
currency: cost.currency ?? 'USD',
|
|
203
|
-
recorded_at: nowIso,
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
// 4. Last: flip step status to succeeded, clear lease so terminal state is not misleading
|
|
207
|
-
await da.patchRow('steps', step.id, [
|
|
208
|
-
{ op: 'replace', path: 'status', value: 'succeeded' },
|
|
209
|
-
{ op: 'replace', path: 'output', value: output },
|
|
210
|
-
{ op: 'replace', path: 'lease_owner', value: '' },
|
|
211
|
-
{ op: 'replace', path: 'lease_expires_at', value: '' },
|
|
212
|
-
{ op: 'replace', path: 'updated_at', value: nowIso },
|
|
213
|
-
]);
|
|
214
|
-
}
|
|
215
|
-
export async function createSteps(da, steps, opts) {
|
|
216
|
-
const t = clockNow(opts);
|
|
217
|
-
const nowIso = t.toISOString();
|
|
218
|
-
const sfx = clockSuffix(opts);
|
|
219
|
-
const st = compactStamp(t);
|
|
220
|
-
for (let i = 0; i < steps.length; i++) {
|
|
221
|
-
const ns = steps[i];
|
|
222
|
-
if (!ns)
|
|
223
|
-
continue;
|
|
224
|
-
// When parentStepId is supplied, derive a deterministic, BOUNDED-length ID from a hash of
|
|
225
|
-
// (parent id + index) so that a crash-and-retry (new attemptId, same parent) regenerates the
|
|
226
|
-
// exact same child IDs (idempotent: ROW_CONFLICT from createRow means it already exists → skip)
|
|
227
|
-
// WITHOUT growing the id per chain level. Concatenating the full parent id per level
|
|
228
|
-
// (`${parent}_ch_${i}`) overflowed Revisium's 64-char rowId limit on deep chains. The id
|
|
229
|
-
// depends ONLY on (parent id, index) — NOT on role — so the retry contract holds even if a
|
|
230
|
-
// re-run yields a different role for the same logical next step, and the length is fixed
|
|
231
|
-
// ("step_" + 16 hex = 21 chars) regardless of role. The 64-bit hash keeps it collision-resistant.
|
|
232
|
-
const childKey = `${opts?.parentStepId ?? ''}:${i}`;
|
|
233
|
-
const stepId = opts?.parentStepId
|
|
234
|
-
? `step_${fnv1a64Hex(childKey)}`
|
|
235
|
-
: `step_${st}_${ns.role}_${sfx}_${i}`;
|
|
236
|
-
// Steps with unresolved dependencies start 'pending'; promoting them to 'ready' once their
|
|
237
|
-
// depends_on complete is the dependency resolver's job, deferred to a later plan (not Plan 0006).
|
|
238
|
-
const hasDeps = ns.dependsOn !== undefined && ns.dependsOn.length > 0;
|
|
239
|
-
try {
|
|
240
|
-
await da.createRow('steps', stepId, {
|
|
241
|
-
id: stepId,
|
|
242
|
-
task_id: ns.taskId,
|
|
243
|
-
run_id: ns.runId,
|
|
244
|
-
role: ns.role,
|
|
245
|
-
kind: ns.kind,
|
|
246
|
-
status: hasDeps ? 'pending' : 'ready',
|
|
247
|
-
input: ns.input,
|
|
248
|
-
output: null,
|
|
249
|
-
model_profile: ns.modelProfile,
|
|
250
|
-
run_after: ns.runAfter ?? '',
|
|
251
|
-
attempt_count: 0,
|
|
252
|
-
max_attempts: ns.maxAttempts ?? 3,
|
|
253
|
-
priority: ns.priority ?? 0,
|
|
254
|
-
depends_on: ns.dependsOn ?? [],
|
|
255
|
-
lease_owner: '',
|
|
256
|
-
lease_expires_at: '',
|
|
257
|
-
dead_reason: '',
|
|
258
|
-
created_at: nowIso,
|
|
259
|
-
updated_at: nowIso,
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
catch (e) {
|
|
263
|
-
if (e instanceof ControlPlaneError && e.code === 'ROW_CONFLICT' && opts?.parentStepId)
|
|
264
|
-
continue;
|
|
265
|
-
throw e;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
export async function failStep(da, step, attemptId, opts) {
|
|
270
|
-
const t = clockNow(opts);
|
|
271
|
-
const nowIso = t.toISOString();
|
|
272
|
-
const sfx = clockSuffix(opts);
|
|
273
|
-
const st = compactStamp(t);
|
|
274
|
-
// 1. Close attempt
|
|
275
|
-
await da.patchRow('attempts', attemptId, [
|
|
276
|
-
{ op: 'replace', path: 'status', value: 'failed' },
|
|
277
|
-
{ op: 'replace', path: 'lesson', value: opts.lesson ?? '' },
|
|
278
|
-
{ op: 'replace', path: 'error', value: opts.error ?? '' },
|
|
279
|
-
{ op: 'replace', path: 'finished_at', value: nowIso },
|
|
280
|
-
]);
|
|
281
|
-
// 2. Append event
|
|
282
|
-
await da.createRow('events', `event_${st}_step-failed_${sfx}`, {
|
|
283
|
-
id: `event_${st}_step-failed_${sfx}`,
|
|
284
|
-
run_id: step.runId,
|
|
285
|
-
task_id: step.taskId,
|
|
286
|
-
step_id: step.id,
|
|
287
|
-
type: 'step_failed',
|
|
288
|
-
payload: { attempt_id: attemptId, lesson: opts.lesson, error: opts.error },
|
|
289
|
-
actor: 'orchestrator',
|
|
290
|
-
created_at: nowIso,
|
|
291
|
-
});
|
|
292
|
-
// 3. Gate on the PERSISTED attempt_count, never the caller's snapshot. startAttempt owns the
|
|
293
|
-
// increment and already wrote it, so re-deriving here (snapshot + 1) would double-count a step
|
|
294
|
-
// that the worker refetched between startAttempt and failStep, killing it one attempt early.
|
|
295
|
-
// failStep therefore reads the current row and does not write attempt_count itself.
|
|
296
|
-
const current = await da.getRow('steps', step.id);
|
|
297
|
-
const attemptCount = Number(current?.data.attempt_count ?? step.attemptCount);
|
|
298
|
-
const maxAttempts = Number(current?.data.max_attempts ?? step.maxAttempts);
|
|
299
|
-
if (attemptCount < maxAttempts) {
|
|
300
|
-
// 4. Attempts remain: backoff to ready, clear lease (attempt_count left as startAttempt set it)
|
|
301
|
-
await da.patchRow('steps', step.id, [
|
|
302
|
-
{ op: 'replace', path: 'status', value: 'ready' },
|
|
303
|
-
{ op: 'replace', path: 'run_after', value: backoffRunAfter(t, attemptCount) },
|
|
304
|
-
{ op: 'replace', path: 'lease_owner', value: '' },
|
|
305
|
-
{ op: 'replace', path: 'lease_expires_at', value: '' },
|
|
306
|
-
{ op: 'replace', path: 'updated_at', value: nowIso },
|
|
307
|
-
]);
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
// 5. Cap reached: dead, clear lease
|
|
311
|
-
const deadReason = opts.lesson ?? opts.error ?? `exhausted ${maxAttempts} attempt(s)`;
|
|
312
|
-
await da.patchRow('steps', step.id, [
|
|
313
|
-
{ op: 'replace', path: 'status', value: 'dead' },
|
|
314
|
-
{ op: 'replace', path: 'dead_reason', value: deadReason },
|
|
315
|
-
{ op: 'replace', path: 'lease_owner', value: '' },
|
|
316
|
-
{ op: 'replace', path: 'lease_expires_at', value: '' },
|
|
317
|
-
{ op: 'replace', path: 'updated_at', value: nowIso },
|
|
318
|
-
]);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
export async function recoverInFlight(da, workerId, opts) {
|
|
322
|
-
const t = clockNow(opts);
|
|
323
|
-
const nowIso = t.toISOString();
|
|
324
|
-
const sfx = clockSuffix(opts);
|
|
325
|
-
const st = compactStamp(t);
|
|
326
|
-
// Server-side: filter by lease_owner + status to avoid a full-table scan.
|
|
327
|
-
// MVP single-worker startup: first-page result (CLAIM_CAP rows) is acceptable; a multi-worker
|
|
328
|
-
// deployment would need pagination here, but that belongs to a later plan.
|
|
329
|
-
const allSteps = await da.listRows('steps', {
|
|
330
|
-
first: CLAIM_CAP,
|
|
331
|
-
where: {
|
|
332
|
-
AND: [
|
|
333
|
-
{ data: { path: 'lease_owner', equals: workerId } },
|
|
334
|
-
{
|
|
335
|
-
OR: [
|
|
336
|
-
{ data: { path: 'status', equals: 'claimed' } },
|
|
337
|
-
{ data: { path: 'status', equals: 'running' } },
|
|
338
|
-
],
|
|
339
|
-
},
|
|
340
|
-
],
|
|
341
|
-
},
|
|
342
|
-
});
|
|
343
|
-
// In-process filter provides correctness against fake/unconstrained transports.
|
|
344
|
-
const orphans = allSteps
|
|
345
|
-
.map(mapStep)
|
|
346
|
-
.filter((s) => s.leaseOwner === workerId && (s.status === 'claimed' || s.status === 'running'));
|
|
347
|
-
for (let i = 0; i < orphans.length; i++) {
|
|
348
|
-
const orphan = orphans[i];
|
|
349
|
-
if (!orphan)
|
|
350
|
-
continue;
|
|
351
|
-
if (orphan.status === 'running') {
|
|
352
|
-
const allAttempts = await da.listRows('attempts', { first: RECOVERY_ATTEMPT_CAP });
|
|
353
|
-
const runningAttempts = allAttempts.filter((a) => String(a.data.step_id) === orphan.id && String(a.data.status) === 'running');
|
|
354
|
-
for (const attempt of runningAttempts) {
|
|
355
|
-
await da.patchRow('attempts', attempt.rowId, [
|
|
356
|
-
{ op: 'replace', path: 'status', value: 'failed' },
|
|
357
|
-
{ op: 'replace', path: 'lesson', value: 'worker crashed mid-step' },
|
|
358
|
-
{ op: 'replace', path: 'finished_at', value: nowIso },
|
|
359
|
-
]);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
await da.createRow('events', `event_${st}_step-recovered_${sfx}_${i}`, {
|
|
363
|
-
id: `event_${st}_step-recovered_${sfx}_${i}`,
|
|
364
|
-
run_id: orphan.runId,
|
|
365
|
-
task_id: orphan.taskId,
|
|
366
|
-
step_id: orphan.id,
|
|
367
|
-
type: 'step_recovered',
|
|
368
|
-
payload: { worker_id: workerId },
|
|
369
|
-
actor: 'orchestrator',
|
|
370
|
-
created_at: nowIso,
|
|
371
|
-
});
|
|
372
|
-
await da.patchRow('steps', orphan.id, [
|
|
373
|
-
{ op: 'replace', path: 'status', value: 'ready' },
|
|
374
|
-
{ op: 'replace', path: 'lease_owner', value: '' },
|
|
375
|
-
{ op: 'replace', path: 'lease_expires_at', value: '' },
|
|
376
|
-
{ op: 'replace', path: 'updated_at', value: nowIso },
|
|
377
|
-
]);
|
|
378
|
-
}
|
|
379
|
-
return orphans;
|
|
380
|
-
}
|
|
381
47
|
//# sourceMappingURL=steps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/control-plane/steps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/control-plane/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4CH,gEAAgE;AAEhE,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO;QACL,IAAI,CAAC,cAAc,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACjC,GAAG;KACJ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,qGAAqG;AACrG,kGAAkG;AAClG,wGAAwG;AACxG,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,IAAI,GAAG,mBAAmB,CAAC;IAC/B,MAAM,KAAK,GAAG,cAAc,CAAC;IAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAU;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../src/control-plane/tables.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,WAAW;IACX,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,OAAO;IACP,aAAa;CACL,CAAC;AAIX,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAQ,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC"}
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../src/control-plane/tables.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,WAAW;IACX,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,OAAO;IACP,aAAa;IACb,aAAa;CACL,CAAC;AAIX,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAQ,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC"}
|