@telora/daemon 0.12.33
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/.env.example +64 -0
- package/README.md +229 -0
- package/build-info.json +4 -0
- package/dist/activity-tracker.d.ts +13 -0
- package/dist/activity-tracker.d.ts.map +1 -0
- package/dist/activity-tracker.js +19 -0
- package/dist/activity-tracker.js.map +1 -0
- package/dist/agent-state.d.ts +45 -0
- package/dist/agent-state.d.ts.map +1 -0
- package/dist/agent-state.js +61 -0
- package/dist/agent-state.js.map +1 -0
- package/dist/audit-hooks.d.ts +12 -0
- package/dist/audit-hooks.d.ts.map +1 -0
- package/dist/audit-hooks.js +45 -0
- package/dist/audit-hooks.js.map +1 -0
- package/dist/auto-update.d.ts +42 -0
- package/dist/auto-update.d.ts.map +1 -0
- package/dist/auto-update.js +96 -0
- package/dist/auto-update.js.map +1 -0
- package/dist/branch-status.d.ts +40 -0
- package/dist/branch-status.d.ts.map +1 -0
- package/dist/branch-status.js +107 -0
- package/dist/branch-status.js.map +1 -0
- package/dist/completion-detector.d.ts +87 -0
- package/dist/completion-detector.d.ts.map +1 -0
- package/dist/completion-detector.js +160 -0
- package/dist/completion-detector.js.map +1 -0
- package/dist/completion-handler.d.ts +48 -0
- package/dist/completion-handler.d.ts.map +1 -0
- package/dist/completion-handler.js +200 -0
- package/dist/completion-handler.js.map +1 -0
- package/dist/condition-evaluators.d.ts +31 -0
- package/dist/condition-evaluators.d.ts.map +1 -0
- package/dist/condition-evaluators.js +416 -0
- package/dist/condition-evaluators.js.map +1 -0
- package/dist/config.d.ts +55 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +311 -0
- package/dist/config.js.map +1 -0
- package/dist/control-state.d.ts +41 -0
- package/dist/control-state.d.ts.map +1 -0
- package/dist/control-state.js +204 -0
- package/dist/control-state.js.map +1 -0
- package/dist/crash-recovery-cleanup.d.ts +21 -0
- package/dist/crash-recovery-cleanup.d.ts.map +1 -0
- package/dist/crash-recovery-cleanup.js +198 -0
- package/dist/crash-recovery-cleanup.js.map +1 -0
- package/dist/crash-recovery-scan.d.ts +19 -0
- package/dist/crash-recovery-scan.d.ts.map +1 -0
- package/dist/crash-recovery-scan.js +145 -0
- package/dist/crash-recovery-scan.js.map +1 -0
- package/dist/crash-recovery-types.d.ts +54 -0
- package/dist/crash-recovery-types.d.ts.map +1 -0
- package/dist/crash-recovery-types.js +13 -0
- package/dist/crash-recovery-types.js.map +1 -0
- package/dist/crash-recovery.d.ts +88 -0
- package/dist/crash-recovery.d.ts.map +1 -0
- package/dist/crash-recovery.js +448 -0
- package/dist/crash-recovery.js.map +1 -0
- package/dist/daemon-logs.d.ts +19 -0
- package/dist/daemon-logs.d.ts.map +1 -0
- package/dist/daemon-logs.js +81 -0
- package/dist/daemon-logs.js.map +1 -0
- package/dist/daemon-process.d.ts +154 -0
- package/dist/daemon-process.d.ts.map +1 -0
- package/dist/daemon-process.js +427 -0
- package/dist/daemon-process.js.map +1 -0
- package/dist/dag-validator.d.ts +52 -0
- package/dist/dag-validator.d.ts.map +1 -0
- package/dist/dag-validator.js +199 -0
- package/dist/dag-validator.js.map +1 -0
- package/dist/delivery-guards.d.ts +41 -0
- package/dist/delivery-guards.d.ts.map +1 -0
- package/dist/delivery-guards.js +195 -0
- package/dist/delivery-guards.js.map +1 -0
- package/dist/delivery-lifecycle.d.ts +110 -0
- package/dist/delivery-lifecycle.d.ts.map +1 -0
- package/dist/delivery-lifecycle.js +353 -0
- package/dist/delivery-lifecycle.js.map +1 -0
- package/dist/delivery-merge.d.ts +17 -0
- package/dist/delivery-merge.d.ts.map +1 -0
- package/dist/delivery-merge.js +89 -0
- package/dist/delivery-merge.js.map +1 -0
- package/dist/dependency-resolver.d.ts +77 -0
- package/dist/dependency-resolver.d.ts.map +1 -0
- package/dist/dependency-resolver.js +337 -0
- package/dist/dependency-resolver.js.map +1 -0
- package/dist/evaluation-context.d.ts +49 -0
- package/dist/evaluation-context.d.ts.map +1 -0
- package/dist/evaluation-context.js +98 -0
- package/dist/evaluation-context.js.map +1 -0
- package/dist/git-activity.d.ts +24 -0
- package/dist/git-activity.d.ts.map +1 -0
- package/dist/git-activity.js +97 -0
- package/dist/git-activity.js.map +1 -0
- package/dist/git-branch.d.ts +33 -0
- package/dist/git-branch.d.ts.map +1 -0
- package/dist/git-branch.js +88 -0
- package/dist/git-branch.js.map +1 -0
- package/dist/git-integration.d.ts +27 -0
- package/dist/git-integration.d.ts.map +1 -0
- package/dist/git-integration.js +82 -0
- package/dist/git-integration.js.map +1 -0
- package/dist/git-merge-helpers.d.ts +48 -0
- package/dist/git-merge-helpers.d.ts.map +1 -0
- package/dist/git-merge-helpers.js +105 -0
- package/dist/git-merge-helpers.js.map +1 -0
- package/dist/git-merge-lock.d.ts +67 -0
- package/dist/git-merge-lock.d.ts.map +1 -0
- package/dist/git-merge-lock.js +157 -0
- package/dist/git-merge-lock.js.map +1 -0
- package/dist/git-merge-strategies.d.ts +39 -0
- package/dist/git-merge-strategies.d.ts.map +1 -0
- package/dist/git-merge-strategies.js +127 -0
- package/dist/git-merge-strategies.js.map +1 -0
- package/dist/git-merge.d.ts +80 -0
- package/dist/git-merge.d.ts.map +1 -0
- package/dist/git-merge.js +373 -0
- package/dist/git-merge.js.map +1 -0
- package/dist/git-state-detector.d.ts +24 -0
- package/dist/git-state-detector.d.ts.map +1 -0
- package/dist/git-state-detector.js +122 -0
- package/dist/git-state-detector.js.map +1 -0
- package/dist/git-types.d.ts +40 -0
- package/dist/git-types.d.ts.map +1 -0
- package/dist/git-types.js +23 -0
- package/dist/git-types.js.map +1 -0
- package/dist/git-utils.d.ts +28 -0
- package/dist/git-utils.d.ts.map +1 -0
- package/dist/git-utils.js +57 -0
- package/dist/git-utils.js.map +1 -0
- package/dist/git.d.ts +24 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +64 -0
- package/dist/git.js.map +1 -0
- package/dist/guard-engine.d.ts +19 -0
- package/dist/guard-engine.d.ts.map +1 -0
- package/dist/guard-engine.js +21 -0
- package/dist/guard-engine.js.map +1 -0
- package/dist/guard-evaluator.d.ts +47 -0
- package/dist/guard-evaluator.d.ts.map +1 -0
- package/dist/guard-evaluator.js +193 -0
- package/dist/guard-evaluator.js.map +1 -0
- package/dist/heartbeat.d.ts +73 -0
- package/dist/heartbeat.d.ts.map +1 -0
- package/dist/heartbeat.js +306 -0
- package/dist/heartbeat.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +493 -0
- package/dist/index.js.map +1 -0
- package/dist/listener-auto-advance.d.ts +29 -0
- package/dist/listener-auto-advance.d.ts.map +1 -0
- package/dist/listener-auto-advance.js +172 -0
- package/dist/listener-auto-advance.js.map +1 -0
- package/dist/listener-review.d.ts +37 -0
- package/dist/listener-review.d.ts.map +1 -0
- package/dist/listener-review.js +217 -0
- package/dist/listener-review.js.map +1 -0
- package/dist/listener.d.ts +57 -0
- package/dist/listener.d.ts.map +1 -0
- package/dist/listener.js +361 -0
- package/dist/listener.js.map +1 -0
- package/dist/log-manager.d.ts +18 -0
- package/dist/log-manager.d.ts.map +1 -0
- package/dist/log-manager.js +18 -0
- package/dist/log-manager.js.map +1 -0
- package/dist/otlp-log-parser.d.ts +21 -0
- package/dist/otlp-log-parser.d.ts.map +1 -0
- package/dist/otlp-log-parser.js +143 -0
- package/dist/otlp-log-parser.js.map +1 -0
- package/dist/otlp-metric-parser.d.ts +20 -0
- package/dist/otlp-metric-parser.d.ts.map +1 -0
- package/dist/otlp-metric-parser.js +113 -0
- package/dist/otlp-metric-parser.js.map +1 -0
- package/dist/otlp-port-manager.d.ts +26 -0
- package/dist/otlp-port-manager.d.ts.map +1 -0
- package/dist/otlp-port-manager.js +130 -0
- package/dist/otlp-port-manager.js.map +1 -0
- package/dist/otlp-receiver.d.ts +51 -0
- package/dist/otlp-receiver.d.ts.map +1 -0
- package/dist/otlp-receiver.js +663 -0
- package/dist/otlp-receiver.js.map +1 -0
- package/dist/otlp-types.d.ts +92 -0
- package/dist/otlp-types.d.ts.map +1 -0
- package/dist/otlp-types.js +133 -0
- package/dist/otlp-types.js.map +1 -0
- package/dist/output-monitor.d.ts +33 -0
- package/dist/output-monitor.d.ts.map +1 -0
- package/dist/output-monitor.js +67 -0
- package/dist/output-monitor.js.map +1 -0
- package/dist/planning-prompt-builder.d.ts +67 -0
- package/dist/planning-prompt-builder.d.ts.map +1 -0
- package/dist/planning-prompt-builder.js +515 -0
- package/dist/planning-prompt-builder.js.map +1 -0
- package/dist/prompt-builder.d.ts +14 -0
- package/dist/prompt-builder.d.ts.map +1 -0
- package/dist/prompt-builder.js +174 -0
- package/dist/prompt-builder.js.map +1 -0
- package/dist/qa-crash-recovery.d.ts +77 -0
- package/dist/qa-crash-recovery.d.ts.map +1 -0
- package/dist/qa-crash-recovery.js +243 -0
- package/dist/qa-crash-recovery.js.map +1 -0
- package/dist/qa-dev-server.d.ts +73 -0
- package/dist/qa-dev-server.d.ts.map +1 -0
- package/dist/qa-dev-server.js +279 -0
- package/dist/qa-dev-server.js.map +1 -0
- package/dist/qa-orchestrator.d.ts +79 -0
- package/dist/qa-orchestrator.d.ts.map +1 -0
- package/dist/qa-orchestrator.js +349 -0
- package/dist/qa-orchestrator.js.map +1 -0
- package/dist/qa-port-allocator.d.ts +34 -0
- package/dist/qa-port-allocator.d.ts.map +1 -0
- package/dist/qa-port-allocator.js +75 -0
- package/dist/qa-port-allocator.js.map +1 -0
- package/dist/qa-provisioner.d.ts +33 -0
- package/dist/qa-provisioner.d.ts.map +1 -0
- package/dist/qa-provisioner.js +141 -0
- package/dist/qa-provisioner.js.map +1 -0
- package/dist/qa-state.d.ts +93 -0
- package/dist/qa-state.d.ts.map +1 -0
- package/dist/qa-state.js +74 -0
- package/dist/qa-state.js.map +1 -0
- package/dist/queries/control-state.d.ts +25 -0
- package/dist/queries/control-state.d.ts.map +1 -0
- package/dist/queries/control-state.js +34 -0
- package/dist/queries/control-state.js.map +1 -0
- package/dist/queries/daemon-connection.d.ts +25 -0
- package/dist/queries/daemon-connection.d.ts.map +1 -0
- package/dist/queries/daemon-connection.js +28 -0
- package/dist/queries/daemon-connection.js.map +1 -0
- package/dist/queries/deliveries.d.ts +100 -0
- package/dist/queries/deliveries.d.ts.map +1 -0
- package/dist/queries/deliveries.js +184 -0
- package/dist/queries/deliveries.js.map +1 -0
- package/dist/queries/git-activity.d.ts +20 -0
- package/dist/queries/git-activity.d.ts.map +1 -0
- package/dist/queries/git-activity.js +22 -0
- package/dist/queries/git-activity.js.map +1 -0
- package/dist/queries/guards.d.ts +47 -0
- package/dist/queries/guards.d.ts.map +1 -0
- package/dist/queries/guards.js +138 -0
- package/dist/queries/guards.js.map +1 -0
- package/dist/queries/index.d.ts +19 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +17 -0
- package/dist/queries/index.js.map +1 -0
- package/dist/queries/issues.d.ts +41 -0
- package/dist/queries/issues.d.ts.map +1 -0
- package/dist/queries/issues.js +67 -0
- package/dist/queries/issues.js.map +1 -0
- package/dist/queries/qa.d.ts +79 -0
- package/dist/queries/qa.d.ts.map +1 -0
- package/dist/queries/qa.js +85 -0
- package/dist/queries/qa.js.map +1 -0
- package/dist/queries/roles.d.ts +13 -0
- package/dist/queries/roles.d.ts.map +1 -0
- package/dist/queries/roles.js +39 -0
- package/dist/queries/roles.js.map +1 -0
- package/dist/queries/schemas.d.ts +777 -0
- package/dist/queries/schemas.d.ts.map +1 -0
- package/dist/queries/schemas.js +391 -0
- package/dist/queries/schemas.js.map +1 -0
- package/dist/queries/sessions.d.ts +64 -0
- package/dist/queries/sessions.d.ts.map +1 -0
- package/dist/queries/sessions.js +100 -0
- package/dist/queries/sessions.js.map +1 -0
- package/dist/queries/shared.d.ts +61 -0
- package/dist/queries/shared.d.ts.map +1 -0
- package/dist/queries/shared.js +187 -0
- package/dist/queries/shared.js.map +1 -0
- package/dist/queries/strategies.d.ts +69 -0
- package/dist/queries/strategies.d.ts.map +1 -0
- package/dist/queries/strategies.js +80 -0
- package/dist/queries/strategies.js.map +1 -0
- package/dist/queries/workflows.d.ts +17 -0
- package/dist/queries/workflows.d.ts.map +1 -0
- package/dist/queries/workflows.js +49 -0
- package/dist/queries/workflows.js.map +1 -0
- package/dist/queries/worktrees.d.ts +38 -0
- package/dist/queries/worktrees.d.ts.map +1 -0
- package/dist/queries/worktrees.js +37 -0
- package/dist/queries/worktrees.js.map +1 -0
- package/dist/self-update.d.ts +94 -0
- package/dist/self-update.d.ts.map +1 -0
- package/dist/self-update.js +438 -0
- package/dist/self-update.js.map +1 -0
- package/dist/session-lifecycle.d.ts +77 -0
- package/dist/session-lifecycle.d.ts.map +1 -0
- package/dist/session-lifecycle.js +379 -0
- package/dist/session-lifecycle.js.map +1 -0
- package/dist/shutdown-state.d.ts +17 -0
- package/dist/shutdown-state.d.ts.map +1 -0
- package/dist/shutdown-state.js +22 -0
- package/dist/shutdown-state.js.map +1 -0
- package/dist/spawn-cooldown.d.ts +14 -0
- package/dist/spawn-cooldown.d.ts.map +1 -0
- package/dist/spawn-cooldown.js +34 -0
- package/dist/spawn-cooldown.js.map +1 -0
- package/dist/spawn-environment.d.ts +35 -0
- package/dist/spawn-environment.d.ts.map +1 -0
- package/dist/spawn-environment.js +48 -0
- package/dist/spawn-environment.js.map +1 -0
- package/dist/spawner-liveness.d.ts +23 -0
- package/dist/spawner-liveness.d.ts.map +1 -0
- package/dist/spawner-liveness.js +99 -0
- package/dist/spawner-liveness.js.map +1 -0
- package/dist/spawner-resolution.d.ts +27 -0
- package/dist/spawner-resolution.d.ts.map +1 -0
- package/dist/spawner-resolution.js +99 -0
- package/dist/spawner-resolution.js.map +1 -0
- package/dist/spawner-timeout.d.ts +32 -0
- package/dist/spawner-timeout.d.ts.map +1 -0
- package/dist/spawner-timeout.js +124 -0
- package/dist/spawner-timeout.js.map +1 -0
- package/dist/spawner.d.ts +77 -0
- package/dist/spawner.d.ts.map +1 -0
- package/dist/spawner.js +734 -0
- package/dist/spawner.js.map +1 -0
- package/dist/strategy-completion.d.ts +110 -0
- package/dist/strategy-completion.d.ts.map +1 -0
- package/dist/strategy-completion.js +434 -0
- package/dist/strategy-completion.js.map +1 -0
- package/dist/strategy-engine.d.ts +47 -0
- package/dist/strategy-engine.d.ts.map +1 -0
- package/dist/strategy-engine.js +419 -0
- package/dist/strategy-engine.js.map +1 -0
- package/dist/strategy-executor.d.ts +93 -0
- package/dist/strategy-executor.d.ts.map +1 -0
- package/dist/strategy-executor.js +775 -0
- package/dist/strategy-executor.js.map +1 -0
- package/dist/strategy-lifecycle.d.ts +61 -0
- package/dist/strategy-lifecycle.d.ts.map +1 -0
- package/dist/strategy-lifecycle.js +516 -0
- package/dist/strategy-lifecycle.js.map +1 -0
- package/dist/strategy-merge.d.ts +72 -0
- package/dist/strategy-merge.d.ts.map +1 -0
- package/dist/strategy-merge.js +371 -0
- package/dist/strategy-merge.js.map +1 -0
- package/dist/strategy-prompt-builder.d.ts +62 -0
- package/dist/strategy-prompt-builder.d.ts.map +1 -0
- package/dist/strategy-prompt-builder.js +538 -0
- package/dist/strategy-prompt-builder.js.map +1 -0
- package/dist/strategy-provisioning.d.ts +16 -0
- package/dist/strategy-provisioning.d.ts.map +1 -0
- package/dist/strategy-provisioning.js +119 -0
- package/dist/strategy-provisioning.js.map +1 -0
- package/dist/strategy-team-state.d.ts +24 -0
- package/dist/strategy-team-state.d.ts.map +1 -0
- package/dist/strategy-team-state.js +43 -0
- package/dist/strategy-team-state.js.map +1 -0
- package/dist/strategy-teardown.d.ts +24 -0
- package/dist/strategy-teardown.d.ts.map +1 -0
- package/dist/strategy-teardown.js +158 -0
- package/dist/strategy-teardown.js.map +1 -0
- package/dist/strategy-worktree-state.d.ts +47 -0
- package/dist/strategy-worktree-state.d.ts.map +1 -0
- package/dist/strategy-worktree-state.js +104 -0
- package/dist/strategy-worktree-state.js.map +1 -0
- package/dist/supabase.d.ts +36 -0
- package/dist/supabase.d.ts.map +1 -0
- package/dist/supabase.js +50 -0
- package/dist/supabase.js.map +1 -0
- package/dist/task-converter.d.ts +61 -0
- package/dist/task-converter.d.ts.map +1 -0
- package/dist/task-converter.js +286 -0
- package/dist/task-converter.js.map +1 -0
- package/dist/task-dag-builder.d.ts +14 -0
- package/dist/task-dag-builder.d.ts.map +1 -0
- package/dist/task-dag-builder.js +17 -0
- package/dist/task-dag-builder.js.map +1 -0
- package/dist/team-prompt-base.d.ts +114 -0
- package/dist/team-prompt-base.d.ts.map +1 -0
- package/dist/team-prompt-base.js +531 -0
- package/dist/team-prompt-base.js.map +1 -0
- package/dist/team-prompt-variants.d.ts +27 -0
- package/dist/team-prompt-variants.d.ts.map +1 -0
- package/dist/team-prompt-variants.js +134 -0
- package/dist/team-prompt-variants.js.map +1 -0
- package/dist/team-spawner.d.ts +50 -0
- package/dist/team-spawner.d.ts.map +1 -0
- package/dist/team-spawner.js +410 -0
- package/dist/team-spawner.js.map +1 -0
- package/dist/telemetry-writer.d.ts +66 -0
- package/dist/telemetry-writer.d.ts.map +1 -0
- package/dist/telemetry-writer.js +96 -0
- package/dist/telemetry-writer.js.map +1 -0
- package/dist/trigger-executor.d.ts +56 -0
- package/dist/trigger-executor.d.ts.map +1 -0
- package/dist/trigger-executor.js +313 -0
- package/dist/trigger-executor.js.map +1 -0
- package/dist/types/config.d.ts +60 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dag.d.ts +53 -0
- package/dist/types/dag.d.ts.map +1 -0
- package/dist/types/dag.js +5 -0
- package/dist/types/dag.js.map +1 -0
- package/dist/types/delivery.d.ts +71 -0
- package/dist/types/delivery.d.ts.map +1 -0
- package/dist/types/delivery.js +5 -0
- package/dist/types/delivery.js.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/issue.d.ts +22 -0
- package/dist/types/issue.d.ts.map +1 -0
- package/dist/types/issue.js +5 -0
- package/dist/types/issue.js.map +1 -0
- package/dist/types/merge.d.ts +28 -0
- package/dist/types/merge.d.ts.map +1 -0
- package/dist/types/merge.js +5 -0
- package/dist/types/merge.js.map +1 -0
- package/dist/types/session.d.ts +98 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +5 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/strategy.d.ts +175 -0
- package/dist/types/strategy.d.ts.map +1 -0
- package/dist/types/strategy.js +5 -0
- package/dist/types/strategy.js.map +1 -0
- package/dist/types/workflow.d.ts +34 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +9 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/unified-init.d.ts +16 -0
- package/dist/unified-init.d.ts.map +1 -0
- package/dist/unified-init.js +183 -0
- package/dist/unified-init.js.map +1 -0
- package/dist/unified-shell-config.d.ts +34 -0
- package/dist/unified-shell-config.d.ts.map +1 -0
- package/dist/unified-shell-config.js +238 -0
- package/dist/unified-shell-config.js.map +1 -0
- package/dist/unified-shell-status.d.ts +15 -0
- package/dist/unified-shell-status.d.ts.map +1 -0
- package/dist/unified-shell-status.js +100 -0
- package/dist/unified-shell-status.js.map +1 -0
- package/dist/unified-shell.d.ts +50 -0
- package/dist/unified-shell.d.ts.map +1 -0
- package/dist/unified-shell.js +682 -0
- package/dist/unified-shell.js.map +1 -0
- package/dist/version-check.d.ts +19 -0
- package/dist/version-check.d.ts.map +1 -0
- package/dist/version-check.js +67 -0
- package/dist/version-check.js.map +1 -0
- package/dist/workflow-engine.d.ts +95 -0
- package/dist/workflow-engine.d.ts.map +1 -0
- package/dist/workflow-engine.js +165 -0
- package/dist/workflow-engine.js.map +1 -0
- package/dist/worktree-merge.d.ts +23 -0
- package/dist/worktree-merge.d.ts.map +1 -0
- package/dist/worktree-merge.js +57 -0
- package/dist/worktree-merge.js.map +1 -0
- package/dist/worktree-safety.d.ts +48 -0
- package/dist/worktree-safety.d.ts.map +1 -0
- package/dist/worktree-safety.js +113 -0
- package/dist/worktree-safety.js.map +1 -0
- package/dist/worktree-strategy.d.ts +69 -0
- package/dist/worktree-strategy.d.ts.map +1 -0
- package/dist/worktree-strategy.js +214 -0
- package/dist/worktree-strategy.js.map +1 -0
- package/dist/worktree.d.ts +159 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +512 -0
- package/dist/worktree.js.map +1 -0
- package/package.json +76 -0
- package/scripts/telora-daemon-wrapper.sh +31 -0
package/dist/supabase.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telora API client for the daemon.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports all query functions from domain-specific modules
|
|
5
|
+
* under queries/. The API client infrastructure (callApi, circuit breaker,
|
|
6
|
+
* config) lives in queries/shared.ts.
|
|
7
|
+
*
|
|
8
|
+
* All existing imports from './supabase.js' continue to work unchanged.
|
|
9
|
+
*/
|
|
10
|
+
// -- Core client initialization --
|
|
11
|
+
export { initSupabase, validateTrackerAuth } from './queries/shared.js';
|
|
12
|
+
// -- Agent Roles --
|
|
13
|
+
export { getAgentRoles, getAgentRole } from './queries/roles.js';
|
|
14
|
+
// -- Agent Sessions --
|
|
15
|
+
export { getActiveSessions, getActiveSessionCountByRole, getCompletedSessionAggregates, createSession, updateSession, } from './queries/sessions.js';
|
|
16
|
+
// -- Deliveries & Strategies --
|
|
17
|
+
export { getReadyDeliveries, getDeliveryContext, updateDeliveryStatus, updateDeliveryMergeCommitSha, getDoneDeliveries, getReadyStrategies, getActiveStrategies, getMergeConflictDeliveries, reportGitState, } from './queries/deliveries.js';
|
|
18
|
+
// -- Workflows --
|
|
19
|
+
export { fetchEffectiveWorkflow, fetchEffectiveWorkflowWithTransitions } from './queries/workflows.js';
|
|
20
|
+
// -- Issues & Escalations --
|
|
21
|
+
export { getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, createEscalation, createIssue, } from './queries/issues.js';
|
|
22
|
+
// -- Guards (Workflow System) --
|
|
23
|
+
export { fetchTransitionGuards, createTransitionEvaluation, createTransitionBlock, getActiveTransitionBlock, getResolvedTransitionBlockForDelivery, } from './queries/guards.js';
|
|
24
|
+
// -- Daemon Connection --
|
|
25
|
+
export { sendHeartbeat, sendDisconnect } from './queries/daemon-connection.js';
|
|
26
|
+
// -- Strategy Queries (Team Execution) --
|
|
27
|
+
export { getStrategyDeliveries, getStrategyIssues, getReviewRequests, clearReviewRequest, } from './queries/strategies.js';
|
|
28
|
+
// -- Worktree State --
|
|
29
|
+
export { upsertWorktreeRecord, removeWorktreeRecord, listWorktreeRecords, } from './queries/worktrees.js';
|
|
30
|
+
// -- QA Environment --
|
|
31
|
+
export { getQaRequests, updateQaStatus, getDeactivatedQaStrategies, getQaStrategies } from './queries/qa.js';
|
|
32
|
+
// -- Product QA Environment --
|
|
33
|
+
export { getProductQaRequests, updateProductQaStatus, getProductQaStatus } from './queries/qa.js';
|
|
34
|
+
// -- Control State --
|
|
35
|
+
export { getControlStateChanges, setControlStateRunning, } from './queries/control-state.js';
|
|
36
|
+
// -- Legacy compatibility (no longer used) --
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Use getReadyDeliveries instead
|
|
39
|
+
*/
|
|
40
|
+
export async function getAgentAssignedIssues(_organizationId) {
|
|
41
|
+
console.warn('getAgentAssignedIssues is deprecated - daemon uses delivery-level assignment');
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated Not needed with HTTP API
|
|
46
|
+
*/
|
|
47
|
+
export function getSupabase() {
|
|
48
|
+
throw new Error('getSupabase() is no longer available. Use the API functions directly.');
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=supabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase.js","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAExE,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE,uBAAuB;AACvB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAG/B,gCAAgC;AAChC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EAAE,sBAAsB,EAAE,qCAAqC,EAAE,MAAM,wBAAwB,CAAC;AAEvG,6BAA6B;AAC7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,iCAAiC;AACjC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAE7B,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAE/E,0CAA0C;AAC1C,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,uBAAuB;AACvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,uBAAuB;AACvB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE7G,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAElG,sBAAsB;AACtB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,8CAA8C;AAE9C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,eAAuB;IAClE,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC7F,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC3F,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery-to-task and issue-to-task conversion.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from task-dag-builder.ts. Contains functions that transform
|
|
5
|
+
* database entities (deliveries, issues) into task graph nodes, and
|
|
6
|
+
* DAG query/manipulation helpers that operate on the resulting TaskDAG.
|
|
7
|
+
*
|
|
8
|
+
* Pure functions only (no side effects, no API calls).
|
|
9
|
+
*/
|
|
10
|
+
import type { TaskDAG, TaskNode, StrategyDeliveryInfo, StrategyIssueInfo } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Build a task dependency graph from deliveries and issues.
|
|
13
|
+
*
|
|
14
|
+
* @param deliveries - All deliveries for the strategy, ordered by priorityRank
|
|
15
|
+
* @param issues - All issues across all deliveries
|
|
16
|
+
* @returns A TaskDAG with nodes and dependency edges
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildTaskDAG(deliveries: StrategyDeliveryInfo[], issues: StrategyIssueInfo[]): TaskDAG;
|
|
19
|
+
/**
|
|
20
|
+
* Get all task nodes that are ready to execute (no pending blockers).
|
|
21
|
+
*/
|
|
22
|
+
export declare function getReadyTasks(dag: TaskDAG): TaskNode[];
|
|
23
|
+
/**
|
|
24
|
+
* Mark a task as completed and update blocked-by sets of dependent tasks.
|
|
25
|
+
* Returns the list of tasks that became newly ready.
|
|
26
|
+
*/
|
|
27
|
+
export declare function completeTask(dag: TaskDAG, issueId: string): TaskNode[];
|
|
28
|
+
/**
|
|
29
|
+
* Mark a task as failed.
|
|
30
|
+
*/
|
|
31
|
+
export declare function failTask(dag: TaskDAG, issueId: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Mark a task as in progress with a worker assignment.
|
|
34
|
+
*/
|
|
35
|
+
export declare function claimTask(dag: TaskDAG, issueId: string, workerSessionId: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Check if all tasks for a specific delivery are completed.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isDeliveryComplete(dag: TaskDAG, deliveryId: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Get issue completion counts for a delivery.
|
|
42
|
+
*/
|
|
43
|
+
export declare function getDeliveryIssueCounts(dag: TaskDAG, deliveryId: string): {
|
|
44
|
+
done: number;
|
|
45
|
+
total: number;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Check if all tasks in the DAG are in a terminal state (completed, failed, or skipped).
|
|
49
|
+
*/
|
|
50
|
+
export declare function isDAGComplete(dag: TaskDAG): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Add new issues to an existing DAG (for dynamic delivery pickup).
|
|
53
|
+
* The new issues are integrated with proper cross-delivery, CG-level,
|
|
54
|
+
* and file-overlap dependencies.
|
|
55
|
+
*/
|
|
56
|
+
export declare function addIssuesToDAG(dag: TaskDAG, newDelivery: StrategyDeliveryInfo, newIssues: StrategyIssueInfo[], existingDeliveries: StrategyDeliveryInfo[]): TaskNode[];
|
|
57
|
+
/**
|
|
58
|
+
* Get a summary of the DAG for logging.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getDAGSummary(dag: TaskDAG): string;
|
|
61
|
+
//# sourceMappingURL=task-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-converter.d.ts","sourceRoot":"","sources":["../src/task-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAWpB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,oBAAoB,EAAE,EAClC,MAAM,EAAE,iBAAiB,EAAE,GAC1B,OAAO,CAmFT;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,EAAE,CAatD;AAeD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAsBtE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAK5D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAMtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYxG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,oBAAoB,EACjC,SAAS,EAAE,iBAAiB,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,GACzC,QAAQ,EAAE,CA4EZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAalD"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery-to-task and issue-to-task conversion.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from task-dag-builder.ts. Contains functions that transform
|
|
5
|
+
* database entities (deliveries, issues) into task graph nodes, and
|
|
6
|
+
* DAG query/manipulation helpers that operate on the resulting TaskDAG.
|
|
7
|
+
*
|
|
8
|
+
* Pure functions only (no side effects, no API calls).
|
|
9
|
+
*/
|
|
10
|
+
import { addCrossDeliveryDependencies, addCGDependencies, addFileOverlapDependencies, addCGDependenciesForDelivery, addFileOverlapForDelivery, } from './dependency-resolver.js';
|
|
11
|
+
// ── DAG builder ──────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Build a task dependency graph from deliveries and issues.
|
|
14
|
+
*
|
|
15
|
+
* @param deliveries - All deliveries for the strategy, ordered by priorityRank
|
|
16
|
+
* @param issues - All issues across all deliveries
|
|
17
|
+
* @returns A TaskDAG with nodes and dependency edges
|
|
18
|
+
*/
|
|
19
|
+
export function buildTaskDAG(deliveries, issues) {
|
|
20
|
+
const nodes = new Map();
|
|
21
|
+
const deliveryIds = new Set();
|
|
22
|
+
// Sort deliveries by priority rank (lower = higher priority)
|
|
23
|
+
const sortedDeliveries = [...deliveries].sort((a, b) => a.priorityRank - b.priorityRank);
|
|
24
|
+
// Group issues by delivery
|
|
25
|
+
const issuesByDelivery = new Map();
|
|
26
|
+
for (const issue of issues) {
|
|
27
|
+
const existing = issuesByDelivery.get(issue.deliveryId) ?? [];
|
|
28
|
+
existing.push(issue);
|
|
29
|
+
issuesByDelivery.set(issue.deliveryId, existing);
|
|
30
|
+
}
|
|
31
|
+
// Build context group lookup: contextGroupId -> context group issue
|
|
32
|
+
const contextGroups = new Map();
|
|
33
|
+
for (const issue of issues) {
|
|
34
|
+
if (issue.issueType === 'Context Group') {
|
|
35
|
+
contextGroups.set(issue.id, issue);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Track which delivery rank each issue belongs to (for cross-delivery dependencies)
|
|
39
|
+
const issueDeliveryRank = new Map();
|
|
40
|
+
// Phase 1: Create task nodes for all actionable issues (not Context Groups)
|
|
41
|
+
for (let deliveryIndex = 0; deliveryIndex < sortedDeliveries.length; deliveryIndex++) {
|
|
42
|
+
const delivery = sortedDeliveries[deliveryIndex];
|
|
43
|
+
deliveryIds.add(delivery.id);
|
|
44
|
+
const deliveryIssues = issuesByDelivery.get(delivery.id) ?? [];
|
|
45
|
+
for (const issue of deliveryIssues) {
|
|
46
|
+
// Context Groups are organizational -- not tasks to execute
|
|
47
|
+
if (issue.issueType === 'Context Group')
|
|
48
|
+
continue;
|
|
49
|
+
// Skip already-done issues
|
|
50
|
+
if (issue.status === 'Done')
|
|
51
|
+
continue;
|
|
52
|
+
// Get context from parent context group
|
|
53
|
+
const parentGroup = issue.parentIssueId ? contextGroups.get(issue.parentIssueId) : null;
|
|
54
|
+
const node = {
|
|
55
|
+
issueId: issue.id,
|
|
56
|
+
issueKey: issue.key,
|
|
57
|
+
title: issue.title,
|
|
58
|
+
description: issue.description,
|
|
59
|
+
issueType: issue.issueType,
|
|
60
|
+
priority: issue.priority,
|
|
61
|
+
deliveryId: delivery.id,
|
|
62
|
+
deliveryName: delivery.name,
|
|
63
|
+
deliveryPriorityRank: delivery.priorityRank,
|
|
64
|
+
contextGroupId: issue.parentIssueId,
|
|
65
|
+
context: parentGroup?.context ?? null,
|
|
66
|
+
relevantFiles: parentGroup?.relevantFiles ?? issue.relevantFiles,
|
|
67
|
+
blockedBy: new Set(),
|
|
68
|
+
status: 'pending',
|
|
69
|
+
assignedWorkerSessionId: null,
|
|
70
|
+
};
|
|
71
|
+
nodes.set(issue.id, node);
|
|
72
|
+
issueDeliveryRank.set(issue.id, deliveryIndex);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Phase 2: Add cross-delivery dependencies
|
|
76
|
+
addCrossDeliveryDependencies(nodes, sortedDeliveries, issuesByDelivery, issueDeliveryRank);
|
|
77
|
+
// Phase 2.5: Add CG-level dependency enforcement within each delivery
|
|
78
|
+
addCGDependencies(nodes, sortedDeliveries, issuesByDelivery, contextGroups);
|
|
79
|
+
// Phase 3: Add file overlap dependencies within the same delivery
|
|
80
|
+
addFileOverlapDependencies(nodes, sortedDeliveries, issuesByDelivery, contextGroups);
|
|
81
|
+
// Phase 4: Mark initially ready nodes
|
|
82
|
+
for (const node of nodes.values()) {
|
|
83
|
+
if (node.blockedBy.size === 0) {
|
|
84
|
+
node.status = 'ready';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { nodes, deliveryIds };
|
|
88
|
+
}
|
|
89
|
+
// ── DAG query helpers ────────────────────────────────────────────
|
|
90
|
+
/**
|
|
91
|
+
* Get all task nodes that are ready to execute (no pending blockers).
|
|
92
|
+
*/
|
|
93
|
+
export function getReadyTasks(dag) {
|
|
94
|
+
const ready = [];
|
|
95
|
+
for (const node of dag.nodes.values()) {
|
|
96
|
+
if (node.status === 'ready') {
|
|
97
|
+
ready.push(node);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Sort by priority: P0 first, then by delivery rank
|
|
101
|
+
return ready.sort((a, b) => {
|
|
102
|
+
const priorityOrder = getPriorityOrder(a.priority) - getPriorityOrder(b.priority);
|
|
103
|
+
if (priorityOrder !== 0)
|
|
104
|
+
return priorityOrder;
|
|
105
|
+
return a.deliveryPriorityRank - b.deliveryPriorityRank;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get priority sort order (lower = higher priority).
|
|
110
|
+
*/
|
|
111
|
+
function getPriorityOrder(priority) {
|
|
112
|
+
switch (priority) {
|
|
113
|
+
case 'P0': return 0;
|
|
114
|
+
case 'P1': return 1;
|
|
115
|
+
case 'P2': return 2;
|
|
116
|
+
case 'P3': return 3;
|
|
117
|
+
default: return 4;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Mark a task as completed and update blocked-by sets of dependent tasks.
|
|
122
|
+
* Returns the list of tasks that became newly ready.
|
|
123
|
+
*/
|
|
124
|
+
export function completeTask(dag, issueId) {
|
|
125
|
+
const completedNode = dag.nodes.get(issueId);
|
|
126
|
+
if (!completedNode)
|
|
127
|
+
return [];
|
|
128
|
+
completedNode.status = 'completed';
|
|
129
|
+
const newlyReady = [];
|
|
130
|
+
// Remove this task from all blockedBy sets
|
|
131
|
+
for (const node of dag.nodes.values()) {
|
|
132
|
+
if (node.blockedBy.has(issueId)) {
|
|
133
|
+
node.blockedBy.delete(issueId);
|
|
134
|
+
// If all blockers resolved and still pending, mark as ready
|
|
135
|
+
if (node.blockedBy.size === 0 && node.status === 'pending') {
|
|
136
|
+
node.status = 'ready';
|
|
137
|
+
newlyReady.push(node);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return newlyReady;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Mark a task as failed.
|
|
145
|
+
*/
|
|
146
|
+
export function failTask(dag, issueId) {
|
|
147
|
+
const node = dag.nodes.get(issueId);
|
|
148
|
+
if (node) {
|
|
149
|
+
node.status = 'failed';
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Mark a task as in progress with a worker assignment.
|
|
154
|
+
*/
|
|
155
|
+
export function claimTask(dag, issueId, workerSessionId) {
|
|
156
|
+
const node = dag.nodes.get(issueId);
|
|
157
|
+
if (node) {
|
|
158
|
+
node.status = 'in_progress';
|
|
159
|
+
node.assignedWorkerSessionId = workerSessionId;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Check if all tasks for a specific delivery are completed.
|
|
164
|
+
*/
|
|
165
|
+
export function isDeliveryComplete(dag, deliveryId) {
|
|
166
|
+
for (const node of dag.nodes.values()) {
|
|
167
|
+
if (node.deliveryId === deliveryId && node.status !== 'completed' && node.status !== 'skipped') {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get issue completion counts for a delivery.
|
|
175
|
+
*/
|
|
176
|
+
export function getDeliveryIssueCounts(dag, deliveryId) {
|
|
177
|
+
let done = 0;
|
|
178
|
+
let total = 0;
|
|
179
|
+
for (const node of dag.nodes.values()) {
|
|
180
|
+
if (node.deliveryId === deliveryId) {
|
|
181
|
+
total++;
|
|
182
|
+
if (node.status === 'completed' || node.status === 'skipped') {
|
|
183
|
+
done++;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return { done, total };
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Check if all tasks in the DAG are in a terminal state (completed, failed, or skipped).
|
|
191
|
+
*/
|
|
192
|
+
export function isDAGComplete(dag) {
|
|
193
|
+
for (const node of dag.nodes.values()) {
|
|
194
|
+
if (node.status !== 'completed' && node.status !== 'failed' && node.status !== 'skipped') {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Add new issues to an existing DAG (for dynamic delivery pickup).
|
|
202
|
+
* The new issues are integrated with proper cross-delivery, CG-level,
|
|
203
|
+
* and file-overlap dependencies.
|
|
204
|
+
*/
|
|
205
|
+
export function addIssuesToDAG(dag, newDelivery, newIssues, existingDeliveries) {
|
|
206
|
+
const addedNodes = [];
|
|
207
|
+
// Build context group lookup for the new issues
|
|
208
|
+
const newContextGroups = new Map();
|
|
209
|
+
for (const issue of newIssues) {
|
|
210
|
+
if (issue.issueType === 'Context Group') {
|
|
211
|
+
newContextGroups.set(issue.id, issue);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Find the highest priority delivery that's still in-progress
|
|
215
|
+
// to establish blocking dependencies
|
|
216
|
+
const sortedExisting = [...existingDeliveries].sort((a, b) => a.priorityRank - b.priorityRank);
|
|
217
|
+
// Find blocking issues from existing deliveries with higher priority
|
|
218
|
+
const blockingIssueIds = [];
|
|
219
|
+
for (const existingDelivery of sortedExisting) {
|
|
220
|
+
if (existingDelivery.priorityRank < newDelivery.priorityRank) {
|
|
221
|
+
for (const node of dag.nodes.values()) {
|
|
222
|
+
if (node.deliveryId === existingDelivery.id &&
|
|
223
|
+
node.status !== 'completed' && node.status !== 'skipped') {
|
|
224
|
+
blockingIssueIds.push(node.issueId);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Create nodes for new actionable issues
|
|
230
|
+
for (const issue of newIssues) {
|
|
231
|
+
if (issue.issueType === 'Context Group')
|
|
232
|
+
continue;
|
|
233
|
+
if (issue.status === 'Done')
|
|
234
|
+
continue;
|
|
235
|
+
if (dag.nodes.has(issue.id))
|
|
236
|
+
continue; // Already in DAG
|
|
237
|
+
const parentGroup = issue.parentIssueId ? newContextGroups.get(issue.parentIssueId) : null;
|
|
238
|
+
const node = {
|
|
239
|
+
issueId: issue.id,
|
|
240
|
+
issueKey: issue.key,
|
|
241
|
+
title: issue.title,
|
|
242
|
+
description: issue.description,
|
|
243
|
+
issueType: issue.issueType,
|
|
244
|
+
priority: issue.priority,
|
|
245
|
+
deliveryId: newDelivery.id,
|
|
246
|
+
deliveryName: newDelivery.name,
|
|
247
|
+
deliveryPriorityRank: newDelivery.priorityRank,
|
|
248
|
+
contextGroupId: issue.parentIssueId,
|
|
249
|
+
context: parentGroup?.context ?? null,
|
|
250
|
+
relevantFiles: parentGroup?.relevantFiles ?? issue.relevantFiles,
|
|
251
|
+
blockedBy: new Set(blockingIssueIds),
|
|
252
|
+
status: blockingIssueIds.length === 0 ? 'ready' : 'pending',
|
|
253
|
+
assignedWorkerSessionId: null,
|
|
254
|
+
};
|
|
255
|
+
dag.nodes.set(issue.id, node);
|
|
256
|
+
addedNodes.push(node);
|
|
257
|
+
}
|
|
258
|
+
// Apply CG-level dependency enforcement within the new delivery.
|
|
259
|
+
// This mirrors Phase 2.5 of buildTaskDAG for dynamically added issues.
|
|
260
|
+
addCGDependenciesForDelivery(dag.nodes, newDelivery, newIssues, newContextGroups);
|
|
261
|
+
// Apply file-overlap dependencies within the new delivery.
|
|
262
|
+
// This mirrors Phase 3 of buildTaskDAG for dynamically added issues.
|
|
263
|
+
addFileOverlapForDelivery(dag.nodes, newIssues, newContextGroups);
|
|
264
|
+
// Re-evaluate ready status: some nodes may have gained new blockers
|
|
265
|
+
for (const node of addedNodes) {
|
|
266
|
+
node.status = node.blockedBy.size === 0 ? 'ready' : 'pending';
|
|
267
|
+
}
|
|
268
|
+
dag.deliveryIds.add(newDelivery.id);
|
|
269
|
+
return addedNodes;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Get a summary of the DAG for logging.
|
|
273
|
+
*/
|
|
274
|
+
export function getDAGSummary(dag) {
|
|
275
|
+
const byStatus = new Map();
|
|
276
|
+
for (const node of dag.nodes.values()) {
|
|
277
|
+
byStatus.set(node.status, (byStatus.get(node.status) ?? 0) + 1);
|
|
278
|
+
}
|
|
279
|
+
const parts = [`Total tasks: ${dag.nodes.size}`];
|
|
280
|
+
for (const [status, count] of byStatus) {
|
|
281
|
+
parts.push(`${status}: ${count}`);
|
|
282
|
+
}
|
|
283
|
+
parts.push(`Deliveries: ${dag.deliveryIds.size}`);
|
|
284
|
+
return parts.join(', ');
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=task-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-converter.js","sourceRoot":"","sources":["../src/task-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task DAG builder -- barrel re-export.
|
|
3
|
+
*
|
|
4
|
+
* The implementation has been split into focused modules:
|
|
5
|
+
* - dependency-resolver.ts -- file overlap detection, CG/cross-delivery dependency edges
|
|
6
|
+
* - dag-validator.ts -- delivery dependency inference, cycle detection
|
|
7
|
+
* - task-converter.ts -- DAG building, task operations, DAG queries
|
|
8
|
+
*
|
|
9
|
+
* This file preserves the original import path for consumers (tests, etc.).
|
|
10
|
+
*/
|
|
11
|
+
export { parseRelevantFiles, hasFileOverlap, addCrossDeliveryDependencies, addCGDependencies, getCGExecutionWaves, addFileOverlapDependencies, addCGDependenciesForDelivery, addFileOverlapForDelivery, } from './dependency-resolver.js';
|
|
12
|
+
export { inferDeliveryDependencies, detectDeliveryCycles, buildDeliveryDAGFromCGDeps, } from './dag-validator.js';
|
|
13
|
+
export { buildTaskDAG, getReadyTasks, completeTask, failTask, claimTask, isDeliveryComplete, getDeliveryIssueCounts, isDAGComplete, addIssuesToDAG, getDAGSummary, } from './task-converter.js';
|
|
14
|
+
//# sourceMappingURL=task-dag-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-dag-builder.d.ts","sourceRoot":"","sources":["../src/task-dag-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,4BAA4B,EAC5B,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task DAG builder -- barrel re-export.
|
|
3
|
+
*
|
|
4
|
+
* The implementation has been split into focused modules:
|
|
5
|
+
* - dependency-resolver.ts -- file overlap detection, CG/cross-delivery dependency edges
|
|
6
|
+
* - dag-validator.ts -- delivery dependency inference, cycle detection
|
|
7
|
+
* - task-converter.ts -- DAG building, task operations, DAG queries
|
|
8
|
+
*
|
|
9
|
+
* This file preserves the original import path for consumers (tests, etc.).
|
|
10
|
+
*/
|
|
11
|
+
// Dependency resolution: file overlap, CG deps, cross-delivery deps
|
|
12
|
+
export { parseRelevantFiles, hasFileOverlap, addCrossDeliveryDependencies, addCGDependencies, getCGExecutionWaves, addFileOverlapDependencies, addCGDependenciesForDelivery, addFileOverlapForDelivery, } from './dependency-resolver.js';
|
|
13
|
+
// DAG validation: delivery dependency inference, cycle detection
|
|
14
|
+
export { inferDeliveryDependencies, detectDeliveryCycles, buildDeliveryDAGFromCGDeps, } from './dag-validator.js';
|
|
15
|
+
// DAG building and task operations
|
|
16
|
+
export { buildTaskDAG, getReadyTasks, completeTask, failTask, claimTask, isDeliveryComplete, getDeliveryIssueCounts, isDAGComplete, addIssuesToDAG, getDAGSummary, } from './task-converter.js';
|
|
17
|
+
//# sourceMappingURL=task-dag-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-dag-builder.js","sourceRoot":"","sources":["../src/task-dag-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oEAAoE;AACpE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,4BAA4B,EAC5B,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,iEAAiE;AACjE,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,mCAAmC;AACnC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core prompt building infrastructure for strategy team prompts.
|
|
3
|
+
*
|
|
4
|
+
* Contains shared section builders used across multiple prompt variants,
|
|
5
|
+
* plus the main buildStrategyTeamPrompt function which composes them.
|
|
6
|
+
*
|
|
7
|
+
* Extracted from strategy-prompt-builder.ts for maintainability.
|
|
8
|
+
*/
|
|
9
|
+
import type { AgentRole, StrategyDeliveryInfo, StrategyIssueInfo, StrategyExecutionConfig, PipelineConfig } from './types.js';
|
|
10
|
+
import type { ProductContextDoc } from './queries/strategies.js';
|
|
11
|
+
export interface DeploymentProfileSnapshotContext {
|
|
12
|
+
name: string;
|
|
13
|
+
inceptionPrompt: string | null;
|
|
14
|
+
guidelines: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface StrategyTeamPromptContext {
|
|
17
|
+
strategyId: string;
|
|
18
|
+
strategyName: string;
|
|
19
|
+
organizationId: string;
|
|
20
|
+
productId: string;
|
|
21
|
+
deliveries: StrategyDeliveryInfo[];
|
|
22
|
+
issues: StrategyIssueInfo[];
|
|
23
|
+
executionConfig: StrategyExecutionConfig;
|
|
24
|
+
pipelineConfig: PipelineConfig | null;
|
|
25
|
+
productContextDocs?: ProductContextDoc[];
|
|
26
|
+
deploymentProfileSnapshot?: DeploymentProfileSnapshotContext | null;
|
|
27
|
+
readOnly?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build the role context section from the agent role's system prompt template.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildRoleSection(role: AgentRole): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Build the domain boundaries section from allowed file patterns.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildDomainBoundariesSection(role: AgentRole): string[];
|
|
37
|
+
/**
|
|
38
|
+
* Build the team lead role description section.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildTeamLeadRoleSection(): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Build the read-only audit mode notice section.
|
|
43
|
+
* Returns empty array if not in read-only mode.
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildReadOnlyAuditSection(readOnly?: boolean): string[];
|
|
46
|
+
/**
|
|
47
|
+
* Build the strategy context section (strategy ID, name, product ID).
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildStrategyContextSection(context: StrategyTeamPromptContext): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Build the product context documents section.
|
|
52
|
+
* Deduplicates documents by title. Returns empty array if no docs.
|
|
53
|
+
*/
|
|
54
|
+
export declare function buildProductContextSection(docs?: ProductContextDoc[]): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Build the deployment profile section (inception prompt + guidelines).
|
|
57
|
+
* Returns empty array if no snapshot provided.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildDeploymentProfileSection(snapshot?: DeploymentProfileSnapshotContext | null): string[];
|
|
60
|
+
/**
|
|
61
|
+
* Build the execution config section (max workers, poll interval).
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildExecutionConfigSection(config: StrategyExecutionConfig): string[];
|
|
64
|
+
/**
|
|
65
|
+
* Build the delivery listing sections: other deliveries (brief) + team deliveries (detailed).
|
|
66
|
+
*
|
|
67
|
+
* Partitions deliveries into team work (queued/coding) and other (human-owned).
|
|
68
|
+
* Renders issue counts, context groups, and standalone issues for team deliveries.
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildDeliveryListingSection(deliveries: StrategyDeliveryInfo[], issues: StrategyIssueInfo[]): string[];
|
|
71
|
+
/**
|
|
72
|
+
* Build the mandatory status update rules section.
|
|
73
|
+
*/
|
|
74
|
+
export declare function buildStatusUpdateRulesSection(): string[];
|
|
75
|
+
/**
|
|
76
|
+
* Build the execution instructions section (Phase 1: Setup).
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildExecutionInstructionsSection(productId: string): string[];
|
|
79
|
+
/**
|
|
80
|
+
* Build the worker management section (Phase 2 / TEL-4).
|
|
81
|
+
*/
|
|
82
|
+
export declare function buildWorkerManagementSection(maxWorkers: number): string[];
|
|
83
|
+
/**
|
|
84
|
+
* Build the delivery stage progression section (Phase 3 / TEL-5).
|
|
85
|
+
*/
|
|
86
|
+
export declare function buildDeliveryStageProgressionSection(): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Build the rescoping and splitting deliveries section.
|
|
89
|
+
*/
|
|
90
|
+
export declare function buildRescopingSection(strategyId: string, productId: string): string[];
|
|
91
|
+
/**
|
|
92
|
+
* Build the new work delivery section (Phase 5 -- daemon-push model).
|
|
93
|
+
*/
|
|
94
|
+
export declare function buildNewWorkDeliverySection(): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Build the error handling and escalation section (TEL-6).
|
|
97
|
+
*/
|
|
98
|
+
export declare function buildErrorHandlingSection(): string[];
|
|
99
|
+
/**
|
|
100
|
+
* Build the merge conflict resolution protocol section.
|
|
101
|
+
*/
|
|
102
|
+
export declare function buildMergeConflictSection(): string[];
|
|
103
|
+
/**
|
|
104
|
+
* Build the completion section.
|
|
105
|
+
*/
|
|
106
|
+
export declare function buildCompletionSection(): string[];
|
|
107
|
+
/**
|
|
108
|
+
* Build the prompt for the strategy team lead agent.
|
|
109
|
+
*
|
|
110
|
+
* Composes the prompt from individual section builders for maintainability.
|
|
111
|
+
* The output is identical to the original monolithic implementation.
|
|
112
|
+
*/
|
|
113
|
+
export declare function buildStrategyTeamPrompt(role: AgentRole, context: StrategyTeamPromptContext): string;
|
|
114
|
+
//# sourceMappingURL=team-prompt-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-prompt-base.d.ts","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"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"}
|