@revisium/orchestrator 0.0.0 → 0.1.0-alpha.10
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/README.md +202 -1
- package/control-plane/bootstrap.config.json +104 -2
- package/control-plane/default-playbook/catalog/pipelines.json +657 -0
- package/control-plane/default-playbook/catalog/roles.json +65 -0
- package/control-plane/default-playbook/package.json +5 -0
- package/control-plane/default-playbook/playbook.json +13 -0
- package/control-plane/default-playbook/prompts/analyst.md +29 -0
- package/control-plane/default-playbook/prompts/developer.md +26 -0
- package/control-plane/default-playbook/prompts/integrator.md +20 -0
- package/control-plane/default-playbook/prompts/orchestrator.md +23 -0
- package/control-plane/default-playbook/prompts/reviewer.md +28 -0
- package/control-plane/default-playbook/prompts/triager.md +51 -0
- package/control-plane/default-playbook/prompts/watcher.md +24 -0
- package/dist/api/graphql-api/filters/agent-observability-exception.filter.js +24 -0
- package/dist/api/graphql-api/filters/agent-observability-exception.filter.js.map +1 -0
- 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 +77 -0
- package/dist/api/graphql-api/graphql-api.module.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-bridge.service.js +296 -0
- package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-bridge.service.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-mappers.js +64 -0
- package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-mappers.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/constants.js +11 -0
- package/dist/api/graphql-api/graphql-ws/constants.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/pubsub.module.js +32 -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 +9 -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-agent-log.input.js +48 -0
- package/dist/api/graphql-api/runs/inputs/get-agent-log.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/agent-activity.model.js +367 -0
- package/dist/api/graphql-api/runs/model/agent-activity.model.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 +124 -0
- package/dist/api/graphql-api/runs/runs-subscription.resolver.js.map +1 -0
- package/dist/api/graphql-api/runs/runs.resolver.js +165 -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/doctor-report.js +70 -0
- package/dist/cli/commands/doctor-report.js.map +1 -0
- package/dist/cli/commands/lifecycle.js +463 -0
- package/dist/cli/commands/lifecycle.js.map +1 -0
- package/dist/cli/commands/mcp.js +53 -8
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/process-tree.js +87 -0
- package/dist/cli/commands/process-tree.js.map +1 -0
- package/dist/cli/commands/revisium-helpers.js +2 -2
- package/dist/cli/commands/rogue-reaper.js +63 -0
- package/dist/cli/commands/rogue-reaper.js.map +1 -0
- package/dist/cli/index.js +5 -29
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/program.js +7 -23
- package/dist/cli/program.js.map +1 -1
- package/dist/config.js +79 -1
- package/dist/config.js.map +1 -1
- package/dist/control-plane/bootstrap.js +101 -0
- package/dist/control-plane/bootstrap.js.map +1 -0
- package/dist/control-plane/change-notifications.js +35 -0
- package/dist/control-plane/change-notifications.js.map +1 -0
- package/dist/control-plane/client-transport.js +74 -41
- package/dist/control-plane/client-transport.js.map +1 -1
- package/dist/control-plane/data-access.js +13 -5
- package/dist/control-plane/data-access.js.map +1 -1
- package/dist/control-plane/definitions.js +1 -1
- package/dist/control-plane/definitions.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 +2 -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 +82 -0
- package/dist/control-plane/schema-migration.js.map +1 -0
- package/dist/control-plane/seed-default-playbook.js +141 -0
- package/dist/control-plane/seed-default-playbook.js.map +1 -0
- 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 +148 -0
- package/dist/e2e/kit/agents.js.map +1 -0
- package/dist/e2e/kit/assertions.js +163 -0
- package/dist/e2e/kit/assertions.js.map +1 -0
- package/dist/e2e/kit/crash.js +44 -0
- package/dist/e2e/kit/crash.js.map +1 -0
- package/dist/e2e/kit/drive.js +45 -0
- package/dist/e2e/kit/drive.js.map +1 -0
- package/dist/e2e/kit/env.js +16 -0
- package/dist/e2e/kit/env.js.map +1 -0
- package/dist/e2e/kit/fake-integrator.js +57 -0
- package/dist/e2e/kit/fake-integrator.js.map +1 -0
- package/dist/e2e/kit/gh-emulator.js +213 -0
- package/dist/e2e/kit/gh-emulator.js.map +1 -0
- package/dist/e2e/kit/git-target-repo.js +115 -0
- package/dist/e2e/kit/git-target-repo.js.map +1 -0
- package/dist/e2e/kit/harness.js +72 -0
- package/dist/e2e/kit/harness.js.map +1 -0
- package/dist/e2e/kit/index.js +14 -0
- package/dist/e2e/kit/index.js.map +1 -0
- package/dist/e2e/kit/mcp.js +32 -0
- package/dist/e2e/kit/mcp.js.map +1 -0
- package/dist/e2e/kit/scenarios.js +196 -0
- package/dist/e2e/kit/scenarios.js.map +1 -0
- package/dist/e2e/recovery-crash-child.js +29 -0
- package/dist/e2e/recovery-crash-child.js.map +1 -0
- package/dist/e2e/recovery-dd-crash-child.js +43 -0
- package/dist/e2e/recovery-dd-crash-child.js.map +1 -0
- package/dist/engine/dbos.module.js +2 -1
- package/dist/engine/dbos.module.js.map +1 -1
- package/dist/engine/dbos.service.js +89 -18
- package/dist/engine/dbos.service.js.map +1 -1
- package/dist/engine/ensure-postgres.js +18 -4
- package/dist/engine/ensure-postgres.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 +359 -0
- package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -0
- package/dist/features/runs/queries/impl/get-agent-activity.query.js +7 -0
- package/dist/features/runs/queries/impl/get-agent-activity.query.js.map +1 -0
- package/dist/features/runs/queries/impl/get-agent-attempts.query.js +7 -0
- package/dist/features/runs/queries/impl/get-agent-attempts.query.js.map +1 -0
- package/dist/features/runs/queries/impl/get-agent-log.query.js +7 -0
- package/dist/features/runs/queries/impl/get-agent-log.query.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 +15 -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 +79 -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/daemon.js +99 -0
- package/dist/host/daemon.js.map +1 -0
- package/dist/host/dbos-identity.js +42 -0
- package/dist/host/dbos-identity.js.map +1 -0
- package/dist/host/ensure-host.js +120 -0
- package/dist/host/ensure-host.js.map +1 -0
- package/dist/host/host-runtime.js +90 -0
- package/dist/host/host-runtime.js.map +1 -0
- package/dist/host/host.lifecycle.js +16 -3
- package/dist/host/host.lifecycle.js.map +1 -1
- package/dist/host/queue-ownership.js +70 -0
- package/dist/host/queue-ownership.js.map +1 -0
- package/dist/host/queue-poller-census.js +47 -0
- package/dist/host/queue-poller-census.js.map +1 -0
- package/dist/http/graphql-host.js +56 -0
- package/dist/http/graphql-host.js.map +1 -0
- package/dist/{mcp/mcp.module.js → http/graphql-host.module.js} +12 -10
- 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/mcp/mcp-capabilities.js +9 -1
- package/dist/mcp/mcp-capabilities.js.map +1 -1
- package/dist/mcp/mcp-facade.service.js +68 -5
- package/dist/mcp/mcp-facade.service.js.map +1 -1
- package/dist/mcp/mcp-http.service.js +95 -0
- package/dist/mcp/mcp-http.service.js.map +1 -0
- package/dist/mcp/mcp-tools.js +93 -7
- package/dist/mcp/mcp-tools.js.map +1 -1
- package/dist/observability/agent-activity-reporter.js +185 -0
- package/dist/observability/agent-activity-reporter.js.map +1 -0
- package/dist/observability/agent-observability.service.js +1142 -0
- package/dist/observability/agent-observability.service.js.map +1 -0
- package/dist/observability/index.js +4 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/types.js +11 -0
- package/dist/observability/types.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 +667 -0
- package/dist/pipeline/data-driven-task.workflow.js.map +1 -0
- package/dist/pipeline/data-driven-template.js +57 -0
- package/dist/pipeline/data-driven-template.js.map +1 -0
- package/dist/pipeline/pipeline.module.js +2 -2
- package/dist/pipeline/pipeline.module.js.map +1 -1
- package/dist/pipeline/pipeline.service.js +412 -0
- package/dist/pipeline/pipeline.service.js.map +1 -0
- package/dist/pipeline/route-contract.js +82 -0
- package/dist/pipeline/route-contract.js.map +1 -0
- package/dist/pipeline-core/index.js +16 -0
- package/dist/pipeline-core/index.js.map +1 -0
- package/dist/pipeline-core/interpret.js +353 -0
- package/dist/pipeline-core/interpret.js.map +1 -0
- package/dist/pipeline-core/kit/assertions.js +61 -0
- package/dist/pipeline-core/kit/assertions.js.map +1 -0
- package/dist/pipeline-core/kit/builders.js +138 -0
- package/dist/pipeline-core/kit/builders.js.map +1 -0
- package/dist/pipeline-core/kit/drive.js +96 -0
- package/dist/pipeline-core/kit/drive.js.map +1 -0
- package/dist/pipeline-core/kit/fixtures.js +342 -0
- package/dist/pipeline-core/kit/fixtures.js.map +1 -0
- package/dist/pipeline-core/kit/index.js +13 -0
- package/dist/pipeline-core/kit/index.js.map +1 -0
- package/dist/pipeline-core/types.js +134 -0
- package/dist/pipeline-core/types.js.map +1 -0
- package/dist/pipeline-core/validate-capability.js +23 -0
- package/dist/pipeline-core/validate-capability.js.map +1 -0
- package/dist/pipeline-core/validate-conflicts.js +37 -0
- package/dist/pipeline-core/validate-conflicts.js.map +1 -0
- package/dist/pipeline-core/validate-dataflow.js +212 -0
- package/dist/pipeline-core/validate-dataflow.js.map +1 -0
- package/dist/pipeline-core/validate-diff.js +158 -0
- package/dist/pipeline-core/validate-diff.js.map +1 -0
- package/dist/pipeline-core/validate-edges.js +44 -0
- package/dist/pipeline-core/validate-edges.js.map +1 -0
- package/dist/pipeline-core/validate-graph.js +123 -0
- package/dist/pipeline-core/validate-graph.js.map +1 -0
- package/dist/pipeline-core/validate-loops.js +226 -0
- package/dist/pipeline-core/validate-loops.js.map +1 -0
- package/dist/pipeline-core/validate-parallel.js +132 -0
- package/dist/pipeline-core/validate-parallel.js.map +1 -0
- package/dist/pipeline-core/validate-sink.js +27 -0
- package/dist/pipeline-core/validate-sink.js.map +1 -0
- package/dist/pipeline-core/validate-topology.js +140 -0
- package/dist/pipeline-core/validate-topology.js.map +1 -0
- package/dist/pipeline-core/validate-verdict.js +72 -0
- package/dist/pipeline-core/validate-verdict.js.map +1 -0
- package/dist/pipeline-core/validate.js +119 -0
- package/dist/pipeline-core/validate.js.map +1 -0
- package/dist/playbook/catalog-loader.js +14 -1
- package/dist/playbook/catalog-loader.js.map +1 -1
- package/dist/playbook/import-mapper.js +14 -38
- package/dist/playbook/import-mapper.js.map +1 -1
- package/dist/playbook/manifest.js +1 -1
- package/dist/revisium/playbooks.service.js +107 -19
- package/dist/revisium/playbooks.service.js.map +1 -1
- package/dist/revisium/roles.service.js +1 -1
- package/dist/revisium/roles.service.js.map +1 -1
- package/dist/revisium/run.service.js +55 -8
- package/dist/revisium/run.service.js.map +1 -1
- package/dist/run/append-event.js +24 -1
- package/dist/run/append-event.js.map +1 -1
- package/dist/run/block-run.js +17 -0
- package/dist/run/block-run.js.map +1 -0
- package/dist/run/complete-run.js +18 -0
- package/dist/run/complete-run.js.map +1 -0
- package/dist/run/create-run.js +33 -36
- package/dist/run/create-run.js.map +1 -1
- package/dist/run/inspect-run.js +31 -30
- 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 +66 -7
- package/dist/run/terminal-run-status.js.map +1 -1
- package/dist/runners/claude-code.service.js +5 -0
- package/dist/runners/claude-code.service.js.map +1 -1
- package/dist/runners/codex.service.js +51 -0
- package/dist/runners/codex.service.js.map +1 -0
- package/dist/runners/integrator-branch-naming.js +39 -0
- package/dist/runners/integrator-branch-naming.js.map +1 -0
- package/dist/runners/integrator-git.js +84 -0
- package/dist/runners/integrator-git.js.map +1 -0
- package/dist/runners/integrator-remote.js +34 -0
- package/dist/runners/integrator-remote.js.map +1 -0
- package/dist/runners/integrator-types.js +9 -0
- package/dist/runners/integrator-types.js.map +1 -0
- package/dist/runners/integrator.js +327 -147
- package/dist/runners/integrator.js.map +1 -1
- package/dist/runners/runner.module.js +7 -3
- 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/smoke/cli.js +47 -0
- package/dist/smoke/cli.js.map +1 -0
- package/dist/smoke/isolation.js +113 -0
- package/dist/smoke/isolation.js.map +1 -0
- package/dist/task-control-plane/run-watch.service.js +281 -0
- package/dist/task-control-plane/run-watch.service.js.map +1 -0
- package/dist/task-control-plane/task-control-plane-api.service.js +569 -23
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/task-control-plane/task-control-plane.module.js +22 -3
- package/dist/task-control-plane/task-control-plane.module.js.map +1 -1
- package/dist/worker/artifact-store.js +116 -0
- package/dist/worker/artifact-store.js.map +1 -0
- package/dist/worker/build-context.js +169 -2
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +159 -68
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/codex-runner.js +474 -0
- package/dist/worker/codex-runner.js.map +1 -0
- package/dist/worker/git-worktree-manager.js +129 -65
- package/dist/worker/git-worktree-manager.js.map +1 -1
- package/dist/worker/process-executor.js +23 -2
- package/dist/worker/process-executor.js.map +1 -1
- package/dist/worker/result-envelope.js +115 -57
- package/dist/worker/result-envelope.js.map +1 -1
- package/dist/worker/runner-common.js +106 -0
- package/dist/worker/runner-common.js.map +1 -0
- package/dist/worker/runner-dispatch.js +4 -1
- package/dist/worker/runner-dispatch.js.map +1 -1
- package/dist/worker/runner.js +11 -1
- package/dist/worker/runner.js.map +1 -1
- package/dist/worker/stub-runner.js +7 -45
- package/dist/worker/stub-runner.js.map +1 -1
- package/package.json +32 -7
- package/dist/app.module.js +0 -28
- package/dist/app.module.js.map +0 -1
- package/dist/cli/commands/bootstrap.js +0 -39
- package/dist/cli/commands/bootstrap.js.map +0 -1
- package/dist/cli/commands/dev.js +0 -143
- package/dist/cli/commands/dev.js.map +0 -1
- package/dist/cli/commands/inbox.js +0 -288
- package/dist/cli/commands/inbox.js.map +0 -1
- package/dist/cli/commands/playbook.js +0 -74
- package/dist/cli/commands/playbook.js.map +0 -1
- package/dist/cli/commands/poll-workflow-state.js +0 -144
- package/dist/cli/commands/poll-workflow-state.js.map +0 -1
- package/dist/cli/commands/revisium-context.js +0 -23
- package/dist/cli/commands/revisium-context.js.map +0 -1
- package/dist/cli/commands/revisium.js +0 -89
- package/dist/cli/commands/revisium.js.map +0 -1
- package/dist/cli/commands/run.js +0 -426
- package/dist/cli/commands/run.js.map +0 -1
- package/dist/cli/commands/work.js +0 -149
- package/dist/cli/commands/work.js.map +0 -1
- package/dist/cli/live-guard.js +0 -49
- package/dist/cli/live-guard.js.map +0 -1
- package/dist/cli/needs-host.js +0 -78
- package/dist/cli/needs-host.js.map +0 -1
- package/dist/mcp/mcp-stdio.service.js +0 -48
- package/dist/mcp/mcp-stdio.service.js.map +0 -1
- package/dist/mcp/mcp.module.js.map +0 -1
- package/dist/pipeline/develop-task.workflow.js +0 -497
- package/dist/pipeline/develop-task.workflow.js.map +0 -1
- package/dist/worker/loop.js +0 -122
- package/dist/worker/loop.js.map +0 -1
- package/dist/worker/script-runner.js +0 -28
- package/dist/worker/script-runner.js.map +0 -1
- package/dist/worker/worker-id.js +0 -18
- package/dist/worker/worker-id.js.map +0 -1
- package/dist/worker/worktree-manager.js +0 -7
- package/dist/worker/worktree-manager.js.map +0 -1
|
@@ -1,11 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { RunAgentError } from './runner.js';
|
|
2
|
+
import { AGENT_RESULT_SCHEMA, STRUCTURED_RESULT_NOTE, agentResultFromStructured, extractTerminalResult, parseTransportEnvelope, } from './result-envelope.js';
|
|
3
|
+
import { boundedPreview, buildAttemptResult, buildUsageCosts, runnerError, tail } from './runner-common.js';
|
|
3
4
|
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
4
5
|
const DEFAULT_COMMAND = 'claude';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
function hasPermissionDenials(value) {
|
|
7
|
+
if (Array.isArray(value))
|
|
8
|
+
return value.length > 0;
|
|
9
|
+
if (typeof value === 'string')
|
|
10
|
+
return value.trim().length > 0;
|
|
11
|
+
if (value && typeof value === 'object')
|
|
12
|
+
return Object.keys(value).length > 0;
|
|
13
|
+
return value === true;
|
|
14
|
+
}
|
|
15
|
+
function permissionDenialsPreview(transport) {
|
|
16
|
+
return boundedPreview({ permission_denials: transport.permissionDenials });
|
|
17
|
+
}
|
|
18
|
+
function hasUsageSummary(transport) {
|
|
19
|
+
return transport.costUsd !== undefined || transport.inputTokens !== undefined || transport.outputTokens !== undefined;
|
|
20
|
+
}
|
|
21
|
+
function reportTransportMetadata(reporter, transport) {
|
|
22
|
+
if (transport.isError) {
|
|
23
|
+
reporter?.parsed({ type: 'is_error', preview: boundedPreview({ is_error: true }) });
|
|
24
|
+
}
|
|
25
|
+
if (hasUsageSummary(transport)) {
|
|
26
|
+
reporter?.parsed({
|
|
27
|
+
type: 'usage',
|
|
28
|
+
preview: boundedPreview({
|
|
29
|
+
total_cost_usd: transport.costUsd,
|
|
30
|
+
input_tokens: transport.inputTokens,
|
|
31
|
+
output_tokens: transport.outputTokens,
|
|
32
|
+
}),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (transport.sessionId) {
|
|
36
|
+
reporter?.parsed({ type: 'session_id', preview: boundedPreview({ session_id: transport.sessionId }) });
|
|
37
|
+
}
|
|
38
|
+
if (transport.terminalReason) {
|
|
39
|
+
reporter?.parsed({
|
|
40
|
+
type: 'terminal_reason',
|
|
41
|
+
preview: boundedPreview({ terminal_reason: transport.terminalReason }),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (hasPermissionDenials(transport.permissionDenials)) {
|
|
45
|
+
reporter?.parsed({
|
|
46
|
+
type: 'permission_denials',
|
|
47
|
+
preview: permissionDenialsPreview(transport),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
9
50
|
}
|
|
10
51
|
/** Read a positive number from a parsed model_profiles.params object, trying camel + snake keys. */
|
|
11
52
|
function readParamNum(params, ...keys) {
|
|
@@ -20,13 +61,43 @@ function readParamNum(params, ...keys) {
|
|
|
20
61
|
}
|
|
21
62
|
return undefined;
|
|
22
63
|
}
|
|
64
|
+
// Summarize one stream-json event into a short, redaction-safe preview for the observability feed.
|
|
65
|
+
// Assistant turns surface their text + tool names; tool results are marked; anything else by type.
|
|
66
|
+
function streamEventPreview(evt) {
|
|
67
|
+
const message = evt.message;
|
|
68
|
+
const content = message?.content;
|
|
69
|
+
if (Array.isArray(content)) {
|
|
70
|
+
const parts = content.map((raw) => {
|
|
71
|
+
const block = raw;
|
|
72
|
+
if (block.type === 'text' && typeof block.text === 'string')
|
|
73
|
+
return block.text;
|
|
74
|
+
if (block.type === 'tool_use' && typeof block.name === 'string')
|
|
75
|
+
return `[tool_use:${block.name}]`;
|
|
76
|
+
if (block.type === 'tool_result')
|
|
77
|
+
return '[tool_result]';
|
|
78
|
+
return `[${String(block.type)}]`;
|
|
79
|
+
});
|
|
80
|
+
const joined = parts.join(' ').trim();
|
|
81
|
+
return joined.length > 0 ? joined.slice(0, 500) : undefined;
|
|
82
|
+
}
|
|
83
|
+
if (typeof evt.result === 'string')
|
|
84
|
+
return evt.result.slice(0, 500);
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
23
87
|
// CLI invocation — the only place flags are assembled. EXACT flag set is confirmed by the manual
|
|
24
88
|
// Step-6 smoke before --runner defaults to auto. The permission mode keeps the headless run
|
|
25
89
|
// non-interactive: a tool not in allowedTools is auto-denied (no TTY can prompt in -p mode).
|
|
26
90
|
// 0008 #5: permissionMode is now per-role DATA (was hardcoded 'default'); model_profiles.params
|
|
27
91
|
// (previously unused "{}") is threaded in — a configured maxTurns maps to claude's --max-turns.
|
|
28
92
|
function buildArgs(modelId, allowedTools, permissionMode, params) {
|
|
29
|
-
|
|
93
|
+
// stream-json (NOT json): claude emits a JSONL transcript — one event per turn (assistant text,
|
|
94
|
+
// tool_use, tool_result) plus a terminal `result` line — so the runner can stream live per-turn
|
|
95
|
+
// observability AND still extract the final structured result. `--verbose` is required by claude
|
|
96
|
+
// for stream-json in `-p` mode. Confirmed by experiment before this change (slice 128).
|
|
97
|
+
const args = ['-p', '--model', modelId, '--output-format', 'stream-json', '--verbose', '--permission-mode', permissionMode];
|
|
98
|
+
// Constrain the final message to the agent-result schema -> a reliable `verdict` in structured_output.
|
|
99
|
+
// No prose fallback is accepted.
|
|
100
|
+
args.push('--json-schema', AGENT_RESULT_SCHEMA);
|
|
30
101
|
// Empty list → pass NO tools (most restrictive; text/plan-only). Never widen beyond role.allowedTools.
|
|
31
102
|
if (allowedTools.length > 0) {
|
|
32
103
|
args.push('--allowedTools', allowedTools.join(','));
|
|
@@ -37,95 +108,115 @@ function buildArgs(modelId, allowedTools, permissionMode, params) {
|
|
|
37
108
|
}
|
|
38
109
|
return args;
|
|
39
110
|
}
|
|
40
|
-
// Prompt order (design decision 6): context → attemptId line →
|
|
41
|
-
//
|
|
42
|
-
// told how to emit on EVERY attempt, including retries.
|
|
111
|
+
// Prompt order (design decision 6): context → attemptId line → structured-result note. Appending the
|
|
112
|
+
// output instruction here keeps the result contract transport-owned, not buried in role prompts.
|
|
43
113
|
function buildPrompt(context, attemptId) {
|
|
44
114
|
const idempotencyLine = `Attempt-Id: ${attemptId} — idempotency key. Reference it on any external effect you create.`;
|
|
45
|
-
return [context, idempotencyLine,
|
|
46
|
-
}
|
|
47
|
-
// One CostRecord from the transport envelope. Prefer the CLI-reported USD; else compute from tokens.
|
|
48
|
-
// Zero tokens with no reported cost → empty costs (keeps zero-cost paths truly free).
|
|
49
|
-
function buildCosts(step, profile, env) {
|
|
50
|
-
const inputTokens = env.inputTokens ?? 0;
|
|
51
|
-
const outputTokens = env.outputTokens ?? 0;
|
|
52
|
-
const reportedUsd = (typeof env.costUsd === 'number' && Number.isFinite(env.costUsd)) ? env.costUsd : undefined;
|
|
53
|
-
if (inputTokens === 0 && outputTokens === 0 && reportedUsd === undefined)
|
|
54
|
-
return [];
|
|
55
|
-
const computed = (inputTokens / 1_000_000) * profile.costPerInput +
|
|
56
|
-
(outputTokens / 1_000_000) * profile.costPerOutput;
|
|
57
|
-
return [
|
|
58
|
-
{
|
|
59
|
-
modelProfile: step.modelProfile,
|
|
60
|
-
inputTokens,
|
|
61
|
-
outputTokens,
|
|
62
|
-
costAmount: reportedUsd ?? computed,
|
|
63
|
-
currency: 'USD',
|
|
64
|
-
},
|
|
65
|
-
];
|
|
115
|
+
return [context, idempotencyLine, STRUCTURED_RESULT_NOTE].join('\n');
|
|
66
116
|
}
|
|
67
117
|
export function createClaudeCodeRunner(deps) {
|
|
68
118
|
const fallbackTimeoutMs = deps.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
69
119
|
const command = deps.command ?? DEFAULT_COMMAND;
|
|
70
|
-
return async ({ role, profile, context, attemptId, step }) => {
|
|
120
|
+
return async ({ role, profile, context, attemptId, step, reporter }) => {
|
|
71
121
|
// attemptId is already minted by startAttempt (loop) — consumed here, never re-minted.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const cwd = await manager.create(step.id, baseCwd);
|
|
122
|
+
// cwd is worktree-aware (plan 0017): for a live run, resolveCwd returns the run's isolated worktree
|
|
123
|
+
// (keyed by step.runId); per-run worktree lifecycle is owned by the workflow, NOT the runner.
|
|
75
124
|
// 0008 #5: per-role data overrides the hardcoded defaults (timeout + permission mode).
|
|
76
125
|
const timeoutMs = role.timeoutMs ?? fallbackTimeoutMs;
|
|
77
126
|
const permissionMode = role.permissionMode ?? 'default';
|
|
127
|
+
let processArtifact;
|
|
78
128
|
try {
|
|
129
|
+
const cwd = await deps.resolveCwd(step);
|
|
130
|
+
const args = buildArgs(profile.modelId, role.allowedTools, permissionMode, profile.params);
|
|
131
|
+
processArtifact = deps.artifactStore?.startProcess({
|
|
132
|
+
runId: step.runId,
|
|
133
|
+
attemptId,
|
|
134
|
+
stepId: step.id,
|
|
135
|
+
role: role.name,
|
|
136
|
+
command,
|
|
137
|
+
args,
|
|
138
|
+
cwd,
|
|
139
|
+
timeoutMs,
|
|
140
|
+
});
|
|
141
|
+
reporter?.started();
|
|
142
|
+
// stream-json arrives as JSONL; buffer partial chunks and report ONE observability event per
|
|
143
|
+
// COMPLETE line — this is the live per-turn transcript. The terminal `result` line is skipped
|
|
144
|
+
// here and reported below via reportTransportMetadata (after extraction), to avoid duplication.
|
|
145
|
+
let stdoutLineBuffer = '';
|
|
146
|
+
const reportStreamLine = (line) => {
|
|
147
|
+
const trimmed = line.trim();
|
|
148
|
+
if (trimmed === '')
|
|
149
|
+
return;
|
|
150
|
+
let evt;
|
|
151
|
+
try {
|
|
152
|
+
evt = JSON.parse(trimmed);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return; // a partial or non-JSON line — ignore
|
|
156
|
+
}
|
|
157
|
+
const type = typeof evt.type === 'string' ? evt.type : 'event';
|
|
158
|
+
if (type === 'result')
|
|
159
|
+
return;
|
|
160
|
+
reporter?.parsed({ type, preview: streamEventPreview(evt) });
|
|
161
|
+
};
|
|
79
162
|
const req = {
|
|
80
163
|
command,
|
|
81
|
-
args
|
|
164
|
+
args,
|
|
82
165
|
cwd,
|
|
83
166
|
timeoutMs,
|
|
84
167
|
input: buildPrompt(context, attemptId),
|
|
168
|
+
onSpawn: (pid) => reporter?.spawned(pid),
|
|
169
|
+
onStdoutChunk: (chunk) => {
|
|
170
|
+
processArtifact?.appendStdout(chunk);
|
|
171
|
+
stdoutLineBuffer += chunk;
|
|
172
|
+
let nl;
|
|
173
|
+
while ((nl = stdoutLineBuffer.indexOf('\n')) >= 0) {
|
|
174
|
+
reportStreamLine(stdoutLineBuffer.slice(0, nl));
|
|
175
|
+
stdoutLineBuffer = stdoutLineBuffer.slice(nl + 1);
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
onStderrChunk: (chunk) => {
|
|
179
|
+
processArtifact?.appendStderr(chunk);
|
|
180
|
+
reporter?.output('stderr', chunk);
|
|
181
|
+
},
|
|
85
182
|
};
|
|
86
183
|
const result = await deps.executor(req);
|
|
184
|
+
// Flush a trailing partial line (the result line normally ends in \n, so this is usually empty).
|
|
185
|
+
if (stdoutLineBuffer.trim() !== '')
|
|
186
|
+
reportStreamLine(stdoutLineBuffer);
|
|
187
|
+
const processSnapshot = processArtifact?.finish({ code: result.code, timedOut: result.timedOut });
|
|
87
188
|
// Timeout / process failure → throw; the loop's catch → failStep returns the step to ready
|
|
88
189
|
// (backoff) or dead at the attempt cap. No loop change needed.
|
|
89
190
|
if (result.timedOut) {
|
|
90
|
-
|
|
191
|
+
reporter?.failed(`claude-code runner exceeded ${timeoutMs}ms`, { timedOut: true, exitCode: result.code });
|
|
192
|
+
throw runnerError(`claude-code runner exceeded ${timeoutMs}ms`, processSnapshot);
|
|
91
193
|
}
|
|
92
194
|
if (result.code !== 0) {
|
|
93
|
-
|
|
195
|
+
reporter?.failed(`claude-code runner exited with code ${String(result.code)}`, { exitCode: result.code });
|
|
196
|
+
throw runnerError(`claude-code runner exited with code ${String(result.code)}: ${tail(result.stderr || result.stdout)}`, processSnapshot);
|
|
94
197
|
}
|
|
95
|
-
const transport = parseTransportEnvelope(result.stdout);
|
|
198
|
+
const transport = parseTransportEnvelope(extractTerminalResult(result.stdout));
|
|
199
|
+
reporter?.parsed({ type: 'result', preview: transport.text });
|
|
200
|
+
reportTransportMetadata(reporter, transport);
|
|
96
201
|
if (transport.isError) {
|
|
97
|
-
|
|
202
|
+
reporter?.failed(`claude-code runner reported is_error: ${tail(transport.text)}`, { exitCode: result.code });
|
|
203
|
+
throw runnerError(`claude-code runner reported is_error: ${tail(transport.text)}`, processSnapshot);
|
|
98
204
|
}
|
|
99
|
-
const agent =
|
|
100
|
-
const costs =
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
nextSteps: [],
|
|
106
|
-
costs,
|
|
107
|
-
needsHuman: true,
|
|
108
|
-
lesson: agent.lesson,
|
|
109
|
-
};
|
|
110
|
-
return parked;
|
|
205
|
+
const agent = agentResultFromStructured(transport.structuredOutput);
|
|
206
|
+
const costs = buildUsageCosts(step, profile, transport);
|
|
207
|
+
const attemptResult = buildAttemptResult(agent, step, costs, processSnapshot);
|
|
208
|
+
reporter?.finished({ exitCode: result.code, timedOut: result.timedOut });
|
|
209
|
+
if (hasPermissionDenials(transport.permissionDenials)) {
|
|
210
|
+
reporter?.status('permission_blocked', { preview: permissionDenialsPreview(transport) });
|
|
111
211
|
}
|
|
112
|
-
|
|
113
|
-
output: agent.output,
|
|
114
|
-
artifacts: agent.artifacts,
|
|
115
|
-
nextSteps: normalizeNextSteps(agent.nextSteps, step),
|
|
116
|
-
costs,
|
|
117
|
-
needsHuman: false,
|
|
118
|
-
lesson: agent.lesson,
|
|
119
|
-
};
|
|
120
|
-
return success;
|
|
212
|
+
return attemptResult;
|
|
121
213
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
if (err instanceof RunAgentError)
|
|
216
|
+
throw err;
|
|
217
|
+
const processSnapshot = processArtifact?.finish({ error: String(err) });
|
|
218
|
+
reporter?.failed(err);
|
|
219
|
+
throw runnerError(String(err), processSnapshot);
|
|
129
220
|
}
|
|
130
221
|
};
|
|
131
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../src/worker/claude-code-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../src/worker/claude-code-runner.ts"],"names":[],"mappings":"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"}
|