@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
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "orchestrator",
|
|
4
|
+
"path": "prompts/orchestrator.md",
|
|
5
|
+
"surface": "any",
|
|
6
|
+
"rights": "read-only",
|
|
7
|
+
"allowed_tools": ["Read", "Grep", "Glob"],
|
|
8
|
+
"default_model_level": "deep",
|
|
9
|
+
"runner_id": "claude-code"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "analyst",
|
|
13
|
+
"path": "prompts/analyst.md",
|
|
14
|
+
"surface": "any",
|
|
15
|
+
"rights": "read-only",
|
|
16
|
+
"allowed_tools": ["Read", "Grep", "Glob"],
|
|
17
|
+
"default_model_level": "deep",
|
|
18
|
+
"runner_id": "claude-code"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "reviewer",
|
|
22
|
+
"path": "prompts/reviewer.md",
|
|
23
|
+
"surface": "any",
|
|
24
|
+
"rights": "read-only",
|
|
25
|
+
"allowed_tools": ["Read", "Grep", "Glob"],
|
|
26
|
+
"default_model_level": "deep",
|
|
27
|
+
"runner_id": "claude-code"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "developer",
|
|
31
|
+
"path": "prompts/developer.md",
|
|
32
|
+
"surface": "any",
|
|
33
|
+
"rights": "write-working-tree",
|
|
34
|
+
"allowed_tools": ["Read", "Grep", "Glob", "Edit", "Write", "Bash"],
|
|
35
|
+
"default_model_level": "standard",
|
|
36
|
+
"runner_id": "claude-code"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "integrator",
|
|
40
|
+
"path": "prompts/integrator.md",
|
|
41
|
+
"surface": "repo",
|
|
42
|
+
"rights": "git-gh",
|
|
43
|
+
"allowed_tools": ["Read", "Bash"],
|
|
44
|
+
"default_model_level": "standard",
|
|
45
|
+
"runner_id": "revo-integrator"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "watcher",
|
|
49
|
+
"path": "prompts/watcher.md",
|
|
50
|
+
"surface": "repo",
|
|
51
|
+
"rights": "read-only",
|
|
52
|
+
"allowed_tools": ["Read", "Grep", "Glob", "Bash"],
|
|
53
|
+
"default_model_level": "cheap",
|
|
54
|
+
"runner_id": "claude-code"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "triager",
|
|
58
|
+
"path": "prompts/triager.md",
|
|
59
|
+
"surface": "repo",
|
|
60
|
+
"rights": "read-only",
|
|
61
|
+
"allowed_tools": ["Read", "Grep", "Glob", "Bash"],
|
|
62
|
+
"default_model_level": "deep",
|
|
63
|
+
"runner_id": "claude-code"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "revisium-default",
|
|
3
|
+
"name": "Revisium Default Playbook",
|
|
4
|
+
"schema_version": 2,
|
|
5
|
+
"package": "@revisium/orchestrator-default-playbook",
|
|
6
|
+
"catalogs": {
|
|
7
|
+
"roles": "catalog/roles.json",
|
|
8
|
+
"pipelines": "catalog/pipelines.json"
|
|
9
|
+
},
|
|
10
|
+
"supported_runtimes": [
|
|
11
|
+
"revo"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Analyst
|
|
2
|
+
|
|
3
|
+
You are the **analyst** role in a software delivery pipeline. You run FIRST, before any
|
|
4
|
+
code is written, and you do not edit files — you read and reason.
|
|
5
|
+
|
|
6
|
+
## Goal
|
|
7
|
+
|
|
8
|
+
Turn the task request into a concrete, reviewable **plan** the developer can implement and a
|
|
9
|
+
reviewer can check against. The plan is the artifact a human approves at the plan gate.
|
|
10
|
+
|
|
11
|
+
## What to do
|
|
12
|
+
|
|
13
|
+
1. Read the relevant code, configuration, and docs to understand the current behavior.
|
|
14
|
+
2. State the problem precisely: what is being asked, what is in scope, what is explicitly out.
|
|
15
|
+
3. Identify the files/modules that must change and the key risks (data, contracts, security,
|
|
16
|
+
migrations, concurrency, public API).
|
|
17
|
+
4. Produce a short, ordered implementation plan with verification steps.
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
|
|
21
|
+
Put the full ordered plan (problem, scope, files to change, steps, risks, verification) in the result
|
|
22
|
+
`output` — the plan reviewer and the developer receive it verbatim as their input. Set the `verdict` field
|
|
23
|
+
to EXACTLY one of:
|
|
24
|
+
|
|
25
|
+
- `approved` — the task is well understood and the plan is ready for a developer.
|
|
26
|
+
- `changes_requested` — the request is ambiguous or under-specified; explain what is missing.
|
|
27
|
+
- `blocker` — the task cannot proceed as stated (e.g. conflicts with an invariant); explain why.
|
|
28
|
+
|
|
29
|
+
Keep it concise. You are read-only: never modify the working tree.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Developer
|
|
2
|
+
|
|
3
|
+
You are the **developer** role. You implement the approved plan and you are the only role
|
|
4
|
+
that writes to the working tree.
|
|
5
|
+
|
|
6
|
+
## Goal
|
|
7
|
+
|
|
8
|
+
Make the smallest correct change that satisfies the approved plan, with verification, so the
|
|
9
|
+
reviewer can approve it and the integrator can ship it.
|
|
10
|
+
|
|
11
|
+
## What to do
|
|
12
|
+
|
|
13
|
+
1. Implement the plan provided in the **`## Inputs (from previous steps)`** section (the analyst's
|
|
14
|
+
`plan`). Do not gold-plate and do not expand scope beyond what was approved.
|
|
15
|
+
2. Follow the existing conventions of the codebase you are editing.
|
|
16
|
+
3. Run the project's verification (build, lint, tests) and fix what you broke.
|
|
17
|
+
4. On a rework pass (reviewer requested changes), address each reviewer finding directly.
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
|
|
21
|
+
Summarize what you changed and how you verified it, then end with a verdict token:
|
|
22
|
+
|
|
23
|
+
- `approved` — the change is implemented and verification passes.
|
|
24
|
+
- `blocker` — you could not complete the change (explain the obstacle for a human).
|
|
25
|
+
|
|
26
|
+
You may read, edit, write, and run commands in the working tree, scoped to the task repo.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Integrator
|
|
2
|
+
|
|
3
|
+
The **integrator** is a built-in SYSTEM SCRIPT, not an LLM agent. The engine dispatches it via
|
|
4
|
+
the `revo-integrator` runner; this file documents its contract.
|
|
5
|
+
|
|
6
|
+
## Goal
|
|
7
|
+
|
|
8
|
+
Take the developer's approved change and integrate it: stage the working-tree diff onto a
|
|
9
|
+
feature branch and open (or update) a pull request via `git` + `gh`.
|
|
10
|
+
|
|
11
|
+
## Behavior
|
|
12
|
+
|
|
13
|
+
- Commits the change on a feature branch derived from the task id.
|
|
14
|
+
- Opens a draft PR (or reuses an existing one for the same branch).
|
|
15
|
+
- Reports an integration result the pipeline routes on:
|
|
16
|
+
- success — proceed to the post-integration watcher.
|
|
17
|
+
- `revo.ScriptBlocked` — a precondition failed (e.g. dirty base); the run blocks for a human.
|
|
18
|
+
- `revo.ScriptFailed` — git/gh failed; the run fails.
|
|
19
|
+
|
|
20
|
+
The integrator never authors product code — it only ships what the developer produced.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Orchestrator
|
|
2
|
+
|
|
3
|
+
You are the **orchestrator** role. You route and coordinate; you do not write code.
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
Understand the incoming task well enough to confirm the selected pipeline fits, and frame the
|
|
8
|
+
work for the roles that follow (analyst, developer, …).
|
|
9
|
+
|
|
10
|
+
## What to do
|
|
11
|
+
|
|
12
|
+
1. Read the task request and the target repository context.
|
|
13
|
+
2. Confirm scope and the chosen pipeline are appropriate; surface mismatches early.
|
|
14
|
+
3. Hand off cleanly to the next role in the pipeline.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
|
|
18
|
+
End your output with a verdict token:
|
|
19
|
+
|
|
20
|
+
- `approved` — the task is framed and ready to proceed.
|
|
21
|
+
- `blocker` — the task cannot proceed as routed (explain for a human).
|
|
22
|
+
|
|
23
|
+
You are read-only: never modify the working tree.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Reviewer
|
|
2
|
+
|
|
3
|
+
You are the **reviewer** role. You are read-only and decorrelated from the developer: you
|
|
4
|
+
never wrote the change you are reviewing, and you must not edit it.
|
|
5
|
+
|
|
6
|
+
## Goal
|
|
7
|
+
|
|
8
|
+
Judge whether the work in front of you is correct, complete, and safe to proceed. You review
|
|
9
|
+
both **plans** (before development) and **code** (after development), depending on where you
|
|
10
|
+
are invoked in the pipeline.
|
|
11
|
+
|
|
12
|
+
## What to do
|
|
13
|
+
|
|
14
|
+
1. Read the `plan` provided in the **`## Inputs (from previous steps)`** section (plan review), or
|
|
15
|
+
the diff in the working tree (code review), and the surrounding code it touches.
|
|
16
|
+
2. Check correctness, scope creep, missing tests/verification, and risk (data, contracts,
|
|
17
|
+
security, migrations, concurrency, public API).
|
|
18
|
+
3. Be specific: cite the file and the concern. Distinguish must-fix from nice-to-have.
|
|
19
|
+
|
|
20
|
+
## Output
|
|
21
|
+
|
|
22
|
+
Set the result `verdict` field (the pipeline routes on it) to EXACTLY one of these tokens:
|
|
23
|
+
|
|
24
|
+
- `approved` — proceed; the work is correct and complete (nits are acceptable to defer).
|
|
25
|
+
- `changes_requested` — fixable issues that must be addressed before proceeding.
|
|
26
|
+
- `blocker` — a serious defect or risk that must be resolved (drives the bounded rework loop).
|
|
27
|
+
|
|
28
|
+
Put your actionable findings in `output`. You are read-only: never modify the working tree.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Triager
|
|
2
|
+
|
|
3
|
+
You are the **triager** role in a software delivery pipeline. You run AFTER the PR is open, when a
|
|
4
|
+
poll has found **unresolved review comments** (from human reviewers or review bots like CodeRabbit).
|
|
5
|
+
You read the actual diff and the threads, then decide — per thread — *whether* and *how* to respond.
|
|
6
|
+
You do not edit files; you read and reason.
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Convert each unresolved review thread into a concrete decision the developer and the reply step can
|
|
11
|
+
act on. Your output drives the next step: a `fix` is implemented by the developer and the threads are
|
|
12
|
+
replied + resolved; a `wontfix` is replied + resolved with your reason; a `question` is escalated to a
|
|
13
|
+
human at the review-question gate.
|
|
14
|
+
|
|
15
|
+
## Inputs
|
|
16
|
+
|
|
17
|
+
You receive (in the `## Inputs` section) the approved **plan** and the **prFeedback** the poll produced:
|
|
18
|
+
the PR number, head sha, failing CI checks, and the unresolved `reviewThreads`
|
|
19
|
+
(`{threadId, path, line, author, body}`). Read the diff (`git diff origin/<base>`) in the worktree to
|
|
20
|
+
judge each comment against the real change.
|
|
21
|
+
|
|
22
|
+
## What to do
|
|
23
|
+
|
|
24
|
+
1. Read the diff and the files each thread points at.
|
|
25
|
+
2. For EVERY unresolved thread, decide one of: `fix`, `wontfix`, or `question`.
|
|
26
|
+
- `fix` — the comment is valid; the developer should change the code. Give precise `guidance`.
|
|
27
|
+
- `wontfix` — the comment does not apply / is out of scope / is already handled. Give a short,
|
|
28
|
+
respectful `replyText` stating the reason (it is posted and the thread is auto-resolved).
|
|
29
|
+
- `question` — the comment is genuinely ambiguous and needs a human to decide. Put the question in
|
|
30
|
+
`replyText`; it is surfaced at the review-question gate.
|
|
31
|
+
3. If CI also failed, summarize the fix direction in `ciGuidance` for the developer.
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
|
|
35
|
+
Set the result `output` to a `triage` object:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
{
|
|
39
|
+
"items": [ { "threadId": "<id>", "decision": "fix|wontfix|question", "guidance": "<for the dev>", "replyText": "<to post>" } ],
|
|
40
|
+
"ciGuidance": "<optional>",
|
|
41
|
+
"needsHuman": <true if any item is a question>
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Set the `verdict` field to EXACTLY one of (decision order):
|
|
46
|
+
|
|
47
|
+
- `question` — at least one thread is a question (the human gate fires first).
|
|
48
|
+
- `fix` — no questions, but at least one thread needs a code change.
|
|
49
|
+
- `wontfix` — every thread is a wontfix (reply + resolve, no code change).
|
|
50
|
+
|
|
51
|
+
Keep it concise. You are read-only: never modify the working tree.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Watcher
|
|
2
|
+
|
|
3
|
+
You are the **watcher** role. You run AFTER integration (the PR is open) and you are read-only.
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
Confirm the integrated change is healthy before it reaches the merge gate: the PR exists, CI
|
|
8
|
+
is not red, and nothing obviously broke.
|
|
9
|
+
|
|
10
|
+
## What to do
|
|
11
|
+
|
|
12
|
+
1. Inspect the opened pull request and its checks.
|
|
13
|
+
2. Look for failing CI, merge conflicts, or missing required status.
|
|
14
|
+
3. Do not edit code — if something is wrong, report it so the pipeline can rework or block.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
|
|
18
|
+
Set the result `verdict` field (the pipeline routes on it) to EXACTLY one of these tokens:
|
|
19
|
+
|
|
20
|
+
- `clean` — the integrated change is healthy; proceed to the merge gate.
|
|
21
|
+
- `dirty` — something is wrong with the integration (drives rework/fail per the pipeline).
|
|
22
|
+
- `blocker` — a hard problem a human must resolve.
|
|
23
|
+
|
|
24
|
+
Put your findings in `output`. You are read-only: never modify the working tree.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Catch } from '@nestjs/common';
|
|
8
|
+
import { GraphQLError } from 'graphql';
|
|
9
|
+
import { AgentObservabilityError } from '../../../observability/types.js';
|
|
10
|
+
let AgentObservabilityExceptionFilter = class AgentObservabilityExceptionFilter {
|
|
11
|
+
catch(exception, host) {
|
|
12
|
+
if (host.getType() !== 'graphql') {
|
|
13
|
+
throw exception;
|
|
14
|
+
}
|
|
15
|
+
throw new GraphQLError(exception.message, {
|
|
16
|
+
extensions: { code: exception.code },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
AgentObservabilityExceptionFilter = __decorate([
|
|
21
|
+
Catch(AgentObservabilityError)
|
|
22
|
+
], AgentObservabilityExceptionFilter);
|
|
23
|
+
export { AgentObservabilityExceptionFilter };
|
|
24
|
+
//# sourceMappingURL=agent-observability-exception.filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-observability-exception.filter.js","sourceRoot":"","sources":["../../../../src/api/graphql-api/filters/agent-observability-exception.filter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAiB,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAC5C,KAAK,CAAC,SAAkC,EAAE,IAAmB;QAC3D,IAAI,IAAI,CAAC,OAAO,EAAkB,KAAK,SAAS,EAAE,CAAC;YACjD,MAAM,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE;YACxC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAVY,iCAAiC;IAD7C,KAAK,CAAC,uBAAuB,CAAC;GAClB,iCAAiC,CAU7C"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BadRequestException, Catch } from '@nestjs/common';
|
|
8
|
+
import { GraphQLError } from 'graphql';
|
|
9
|
+
let GraphQLValidationExceptionFilter = class GraphQLValidationExceptionFilter {
|
|
10
|
+
catch(exception, host) {
|
|
11
|
+
if (host.getType() !== 'graphql') {
|
|
12
|
+
throw exception;
|
|
13
|
+
}
|
|
14
|
+
const response = exception.getResponse();
|
|
15
|
+
throw new GraphQLError(this.extractMessage(response, exception), {
|
|
16
|
+
extensions: {
|
|
17
|
+
code: response.code ?? 'BAD_REQUEST',
|
|
18
|
+
details: response.details,
|
|
19
|
+
context: response.context,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
extractMessage(response, exception) {
|
|
24
|
+
const message = response.message;
|
|
25
|
+
if (Array.isArray(message))
|
|
26
|
+
return message.join(', ');
|
|
27
|
+
if (typeof message === 'string')
|
|
28
|
+
return message;
|
|
29
|
+
return exception.message;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
GraphQLValidationExceptionFilter = __decorate([
|
|
33
|
+
Catch(BadRequestException)
|
|
34
|
+
], GraphQLValidationExceptionFilter);
|
|
35
|
+
export { GraphQLValidationExceptionFilter };
|
|
36
|
+
//# sourceMappingURL=graphql-validation-exception.filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql-validation-exception.filter.js","sourceRoot":"","sources":["../../../../src/api/graphql-api/filters/graphql-validation-exception.filter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAiB,mBAAmB,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAUhC,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAC3C,KAAK,CAAC,SAA8B,EAAE,IAAmB;QACvD,IAAI,IAAI,CAAC,OAAO,EAAkB,KAAK,SAAS,EAAE,CAAC;YACjD,MAAM,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAwB,CAAC;QAC/D,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;YAC/D,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,aAAa;gBACpC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,QAA4B,EAAE,SAA8B;QACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAChD,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;CACF,CAAA;AAtBY,gCAAgC;IAD5C,KAAK,CAAC,mBAAmB,CAAC;GACd,gCAAgC,CAsB5C"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { YogaDriver } from '@graphql-yoga/nestjs';
|
|
8
|
+
import { Module } from '@nestjs/common';
|
|
9
|
+
import { APP_FILTER } from '@nestjs/core';
|
|
10
|
+
import { GraphQLModule } from '@nestjs/graphql';
|
|
11
|
+
import { DateTimeResolver, JSONResolver } from 'graphql-scalars';
|
|
12
|
+
import { InboxApiModule } from '../../features/inbox/inbox-api.module.js';
|
|
13
|
+
import { MethodApiModule } from '../../features/method/method-api.module.js';
|
|
14
|
+
import { PrApiModule } from '../../features/pr/pr-api.module.js';
|
|
15
|
+
import { RunsApiModule } from '../../features/runs/runs-api.module.js';
|
|
16
|
+
import { SystemApiModule } from '../../features/system/system-api.module.js';
|
|
17
|
+
import { createGraphqlMetricsPlugin } from '../../infrastructure/metrics/graphql/graphql-metrics.js';
|
|
18
|
+
import { AgentObservabilityExceptionFilter } from './filters/agent-observability-exception.filter.js';
|
|
19
|
+
import { GraphQLValidationExceptionFilter } from './filters/graphql-validation-exception.filter.js';
|
|
20
|
+
import { PubSubModule } from './graphql-ws/pubsub.module.js';
|
|
21
|
+
import { InboxResolver } from './inbox/inbox.resolver.js';
|
|
22
|
+
import { InboxSubscriptionResolver } from './inbox/inbox-subscription.resolver.js';
|
|
23
|
+
import { MethodResolver } from './method/method.resolver.js';
|
|
24
|
+
import { PrResolver } from './pr/pr.resolver.js';
|
|
25
|
+
import { registerGraphqlEnums } from './registerGraphqlEnums.js';
|
|
26
|
+
import { RunDigestResolver } from './runs/run-digest.resolver.js';
|
|
27
|
+
import { RunEventsResolver } from './runs/run-events.resolver.js';
|
|
28
|
+
import { RunProgressResolver } from './runs/run-progress.resolver.js';
|
|
29
|
+
import { RunsResolver } from './runs/runs.resolver.js';
|
|
30
|
+
import { RunsSubscriptionResolver } from './runs/runs-subscription.resolver.js';
|
|
31
|
+
import { SystemResolver } from './system/system.resolver.js';
|
|
32
|
+
let GraphqlApiModule = class GraphqlApiModule {
|
|
33
|
+
};
|
|
34
|
+
GraphqlApiModule = __decorate([
|
|
35
|
+
Module({
|
|
36
|
+
imports: [
|
|
37
|
+
InboxApiModule,
|
|
38
|
+
MethodApiModule,
|
|
39
|
+
PrApiModule,
|
|
40
|
+
PubSubModule,
|
|
41
|
+
RunsApiModule,
|
|
42
|
+
SystemApiModule,
|
|
43
|
+
GraphQLModule.forRootAsync({
|
|
44
|
+
driver: YogaDriver,
|
|
45
|
+
useFactory: () => ({
|
|
46
|
+
path: '/graphql',
|
|
47
|
+
autoSchemaFile: true,
|
|
48
|
+
sortSchema: true,
|
|
49
|
+
introspection: true,
|
|
50
|
+
resolvers: { DateTime: DateTimeResolver, JSON: JSONResolver },
|
|
51
|
+
resolverValidationOptions: {
|
|
52
|
+
requireResolversToMatchSchema: 'ignore',
|
|
53
|
+
},
|
|
54
|
+
maskedErrors: process.env.NODE_ENV !== 'development',
|
|
55
|
+
plugins: [createGraphqlMetricsPlugin()],
|
|
56
|
+
}),
|
|
57
|
+
}),
|
|
58
|
+
],
|
|
59
|
+
providers: [
|
|
60
|
+
{ provide: APP_FILTER, useClass: AgentObservabilityExceptionFilter },
|
|
61
|
+
{ provide: APP_FILTER, useClass: GraphQLValidationExceptionFilter },
|
|
62
|
+
InboxResolver,
|
|
63
|
+
InboxSubscriptionResolver,
|
|
64
|
+
MethodResolver,
|
|
65
|
+
PrResolver,
|
|
66
|
+
RunDigestResolver,
|
|
67
|
+
RunEventsResolver,
|
|
68
|
+
RunProgressResolver,
|
|
69
|
+
RunsResolver,
|
|
70
|
+
RunsSubscriptionResolver,
|
|
71
|
+
SystemResolver,
|
|
72
|
+
],
|
|
73
|
+
})
|
|
74
|
+
], GraphqlApiModule);
|
|
75
|
+
export { GraphqlApiModule };
|
|
76
|
+
registerGraphqlEnums();
|
|
77
|
+
//# sourceMappingURL=graphql-api.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql-api.module.js","sourceRoot":"","sources":["../../../src/api/graphql-api/graphql-api.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,iCAAiC,EAAE,MAAM,mDAAmD,CAAC;AACtG,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAyCtD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAvC5B,MAAM,CAAC;QACN,OAAO,EAAE;YACP,cAAc;YACd,eAAe;YACf,WAAW;YACX,YAAY;YACZ,aAAa;YACb,eAAe;YACf,aAAa,CAAC,YAAY,CAAmB;gBAC3C,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjB,IAAI,EAAE,UAAU;oBAChB,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,IAAI;oBACnB,SAAS,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE;oBAC7D,yBAAyB,EAAE;wBACzB,6BAA6B,EAAE,QAAQ;qBACxC;oBACD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;oBACpD,OAAO,EAAE,CAAC,0BAA0B,EAAE,CAAC;iBACxC,CAAC;aACH,CAAC;SACH;QACD,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,iCAAiC,EAAE;YACpE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gCAAgC,EAAE;YACnE,aAAa;YACb,yBAAyB;YACzB,cAAc;YACd,UAAU;YACV,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,YAAY;YACZ,wBAAwB;YACxB,cAAc;SACf;KACF,CAAC;GACW,gBAAgB,CAAG;;AAEhC,oBAAoB,EAAE,CAAC"}
|