@telora/daemon 0.15.2 → 0.15.4
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 +11 -11
- package/build-info.json +2 -2
- package/dist/assembly-engine.d.ts +1 -1
- package/dist/assembly-engine.d.ts.map +1 -1
- package/dist/assembly-resolvers.js +41 -41
- package/dist/assembly-resolvers.js.map +1 -1
- package/dist/branch-status.d.ts +4 -4
- package/dist/branch-status.d.ts.map +1 -1
- package/dist/branch-status.js +23 -23
- package/dist/branch-status.js.map +1 -1
- package/dist/cli/connect.js +1 -1
- package/dist/cli/connect.js.map +1 -1
- package/dist/completion-detector.d.ts +1 -1
- package/dist/completion-detector.js +1 -1
- package/dist/completion-handler.d.ts +1 -1
- package/dist/completion-handler.js +4 -4
- package/dist/completion-handler.js.map +1 -1
- package/dist/condition-evaluators.js +4 -4
- package/dist/condition-evaluators.js.map +1 -1
- package/dist/control-state.d.ts +6 -6
- package/dist/control-state.d.ts.map +1 -1
- package/dist/control-state.js +43 -43
- package/dist/control-state.js.map +1 -1
- package/dist/crash-recovery-scan.d.ts +1 -1
- package/dist/crash-recovery-scan.js +20 -20
- package/dist/crash-recovery-scan.js.map +1 -1
- package/dist/crash-recovery-types.d.ts +3 -3
- package/dist/crash-recovery-types.d.ts.map +1 -1
- package/dist/crash-recovery-types.js +2 -2
- package/dist/crash-recovery-types.js.map +1 -1
- package/dist/crash-recovery.d.ts +3 -3
- package/dist/crash-recovery.d.ts.map +1 -1
- package/dist/crash-recovery.js +21 -21
- package/dist/crash-recovery.js.map +1 -1
- package/dist/daemon-process.d.ts +1 -1
- package/dist/daemon-process.d.ts.map +1 -1
- package/dist/dag-validator.d.ts +6 -6
- package/dist/dag-validator.d.ts.map +1 -1
- package/dist/dag-validator.js +2 -2
- package/dist/dag-validator.js.map +1 -1
- package/dist/delivery-guards.d.ts +1 -1
- package/dist/delivery-guards.js +1 -1
- package/dist/delivery-lifecycle.d.ts +5 -5
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +12 -12
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/delivery-merge.js +1 -1
- package/dist/delivery-merge.js.map +1 -1
- package/dist/dependency-resolver.d.ts +7 -7
- package/dist/dependency-resolver.d.ts.map +1 -1
- package/dist/dependency-resolver.js.map +1 -1
- package/dist/directive-executor.d.ts +32 -17
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +119 -78
- package/dist/directive-executor.js.map +1 -1
- package/dist/evaluation-context.d.ts +2 -2
- package/dist/evaluation-context.d.ts.map +1 -1
- package/dist/evaluation-context.js +4 -4
- package/dist/evaluation-context.js.map +1 -1
- package/dist/focus-completion-event.d.ts +97 -0
- package/dist/focus-completion-event.d.ts.map +1 -0
- package/dist/focus-completion-event.js +257 -0
- package/dist/focus-completion-event.js.map +1 -0
- package/dist/{strategy-completion.d.ts → focus-completion.d.ts} +11 -11
- package/dist/focus-completion.d.ts.map +1 -0
- package/dist/{strategy-completion.js → focus-completion.js} +68 -68
- package/dist/focus-completion.js.map +1 -0
- package/dist/{strategy-engine.d.ts → focus-engine.d.ts} +5 -5
- package/dist/focus-engine.d.ts.map +1 -0
- package/dist/{strategy-engine.js → focus-engine.js} +35 -35
- package/dist/focus-engine.js.map +1 -0
- package/dist/focus-executor.d.ts +55 -0
- package/dist/focus-executor.d.ts.map +1 -0
- package/dist/{strategy-executor.js → focus-executor.js} +167 -120
- package/dist/focus-executor.js.map +1 -0
- package/dist/focus-lifecycle.d.ts +61 -0
- package/dist/focus-lifecycle.d.ts.map +1 -0
- package/dist/{strategy-lifecycle.js → focus-lifecycle.js} +164 -164
- package/dist/focus-lifecycle.js.map +1 -0
- package/dist/{strategy-merge.d.ts → focus-merge.d.ts} +10 -10
- package/dist/focus-merge.d.ts.map +1 -0
- package/dist/{strategy-merge.js → focus-merge.js} +51 -51
- package/dist/focus-merge.js.map +1 -0
- package/dist/focus-phase.d.ts +22 -0
- package/dist/focus-phase.d.ts.map +1 -0
- package/dist/focus-phase.js +54 -0
- package/dist/focus-phase.js.map +1 -0
- package/dist/focus-prompt-builder.d.ts +35 -0
- package/dist/focus-prompt-builder.d.ts.map +1 -0
- package/dist/{strategy-prompt-builder.js → focus-prompt-builder.js} +55 -4
- package/dist/focus-prompt-builder.js.map +1 -0
- package/dist/focus-provisioning.d.ts +16 -0
- package/dist/focus-provisioning.d.ts.map +1 -0
- package/dist/focus-provisioning.js +119 -0
- package/dist/focus-provisioning.js.map +1 -0
- package/dist/{strategy-spawn-helpers.d.ts → focus-spawn-helpers.d.ts} +15 -15
- package/dist/focus-spawn-helpers.d.ts.map +1 -0
- package/dist/{strategy-spawn-helpers.js → focus-spawn-helpers.js} +28 -28
- package/dist/focus-spawn-helpers.js.map +1 -0
- package/dist/{strategy-team-lifecycle.d.ts → focus-team-lifecycle.d.ts} +13 -13
- package/dist/focus-team-lifecycle.d.ts.map +1 -0
- package/dist/{strategy-team-lifecycle.js → focus-team-lifecycle.js} +57 -57
- package/dist/focus-team-lifecycle.js.map +1 -0
- package/dist/focus-team-state.d.ts +24 -0
- package/dist/focus-team-state.d.ts.map +1 -0
- package/dist/{strategy-team-state.js → focus-team-state.js} +9 -9
- package/dist/focus-team-state.js.map +1 -0
- package/dist/focus-worktree-state.d.ts +47 -0
- package/dist/focus-worktree-state.d.ts.map +1 -0
- package/dist/{strategy-worktree-state.js → focus-worktree-state.js} +29 -29
- package/dist/focus-worktree-state.js.map +1 -0
- package/dist/git-merge.d.ts +5 -5
- package/dist/git-merge.d.ts.map +1 -1
- package/dist/git-merge.js +5 -5
- package/dist/git-merge.js.map +1 -1
- package/dist/git-state-detector.d.ts +1 -1
- package/dist/git-state-detector.js +9 -9
- package/dist/git-state-detector.js.map +1 -1
- package/dist/git-utils.d.ts +1 -1
- package/dist/git-utils.js +1 -1
- package/dist/git.d.ts +2 -2
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +3 -3
- package/dist/git.js.map +1 -1
- package/dist/heartbeat.d.ts +4 -4
- package/dist/heartbeat.d.ts.map +1 -1
- package/dist/heartbeat.js +7 -7
- package/dist/heartbeat.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/listener-auto-advance.d.ts +2 -2
- package/dist/listener-auto-advance.js +21 -21
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts +12 -12
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +80 -75
- package/dist/listener.js.map +1 -1
- package/dist/loop-engine.d.ts +20 -20
- package/dist/loop-engine.d.ts.map +1 -1
- package/dist/loop-engine.js +82 -82
- package/dist/loop-engine.js.map +1 -1
- package/dist/loop-event-bus.d.ts +5 -5
- package/dist/loop-event-bus.d.ts.map +1 -1
- package/dist/loop-event-bus.js +3 -3
- package/dist/loop-llm-client.d.ts +1 -1
- package/dist/loop-llm-client.js +1 -1
- package/dist/loop-variance.d.ts +1 -1
- package/dist/loop-variance.js +1 -1
- package/dist/merge-detector.d.ts +6 -6
- package/dist/merge-detector.d.ts.map +1 -1
- package/dist/merge-detector.js +47 -47
- package/dist/merge-detector.js.map +1 -1
- package/dist/otlp-log-parser.js +2 -2
- package/dist/otlp-log-parser.js.map +1 -1
- package/dist/otlp-metric-parser.js +1 -1
- package/dist/otlp-metric-parser.js.map +1 -1
- package/dist/otlp-receiver.d.ts +1 -1
- package/dist/otlp-receiver.js +7 -7
- package/dist/otlp-receiver.js.map +1 -1
- package/dist/otlp-types.d.ts +1 -1
- package/dist/otlp-types.d.ts.map +1 -1
- package/dist/otlp-types.js +3 -3
- package/dist/otlp-types.js.map +1 -1
- package/dist/output-monitor.d.ts +6 -6
- package/dist/output-monitor.d.ts.map +1 -1
- package/dist/output-monitor.js +11 -11
- package/dist/output-monitor.js.map +1 -1
- package/dist/planning-prompt-builder.d.ts +11 -11
- package/dist/planning-prompt-builder.d.ts.map +1 -1
- package/dist/planning-prompt-builder.js +28 -28
- package/dist/planning-prompt-builder.js.map +1 -1
- package/dist/pm/mitigation-correlator.d.ts +7 -7
- package/dist/pm/mitigation-correlator.d.ts.map +1 -1
- package/dist/pm/mitigation-correlator.js +33 -33
- package/dist/pm/mitigation-correlator.js.map +1 -1
- package/dist/pm-engine.js +1 -1
- package/dist/pm-engine.js.map +1 -1
- package/dist/prompt-builder.d.ts +1 -1
- package/dist/prompt-builder.js +9 -9
- package/dist/prompt-builder.js.map +1 -1
- package/dist/prompts/starter-prompt.d.ts +2 -2
- package/dist/prompts/starter-prompt.d.ts.map +1 -1
- package/dist/prompts/starter-prompt.js +6 -6
- package/dist/qa-crash-recovery.d.ts +10 -10
- package/dist/qa-crash-recovery.d.ts.map +1 -1
- package/dist/qa-crash-recovery.js +32 -32
- package/dist/qa-crash-recovery.js.map +1 -1
- package/dist/qa-dev-server.d.ts +3 -3
- package/dist/qa-dev-server.d.ts.map +1 -1
- package/dist/qa-dev-server.js +3 -3
- package/dist/qa-dev-server.js.map +1 -1
- package/dist/qa-orchestrator.d.ts +18 -18
- package/dist/qa-orchestrator.d.ts.map +1 -1
- package/dist/qa-orchestrator.js +47 -47
- package/dist/qa-orchestrator.js.map +1 -1
- package/dist/qa-provisioner.d.ts +3 -3
- package/dist/qa-provisioner.d.ts.map +1 -1
- package/dist/qa-provisioner.js +14 -14
- package/dist/qa-provisioner.js.map +1 -1
- package/dist/qa-state.d.ts +10 -10
- package/dist/qa-state.d.ts.map +1 -1
- package/dist/qa-state.js +11 -11
- package/dist/qa-state.js.map +1 -1
- package/dist/queries/control-state.d.ts +5 -5
- package/dist/queries/control-state.d.ts.map +1 -1
- package/dist/queries/control-state.js +4 -4
- package/dist/queries/control-state.js.map +1 -1
- package/dist/queries/deliveries.d.ts +24 -23
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +30 -29
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/{strategies.d.ts → focuses.d.ts} +24 -21
- package/dist/queries/focuses.d.ts.map +1 -0
- package/dist/queries/{strategies.js → focuses.js} +39 -31
- package/dist/queries/focuses.js.map +1 -0
- package/dist/queries/index.d.ts +3 -3
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +2 -2
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/qa.d.ts +16 -16
- package/dist/queries/qa.d.ts.map +1 -1
- package/dist/queries/qa.js +22 -22
- package/dist/queries/qa.js.map +1 -1
- package/dist/queries/schemas.d.ts +36 -30
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +28 -25
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/sessions.d.ts +1 -1
- package/dist/queries/sessions.d.ts.map +1 -1
- package/dist/queries/sessions.js +2 -2
- package/dist/queries/sessions.js.map +1 -1
- package/dist/queries/shared.js +10 -10
- package/dist/queries/shared.js.map +1 -1
- package/dist/queries/workflows.d.ts +1 -1
- package/dist/queries/workflows.js +1 -1
- package/dist/queries/worktrees.d.ts +7 -7
- package/dist/queries/worktrees.d.ts.map +1 -1
- package/dist/queries/worktrees.js +7 -7
- package/dist/queries/worktrees.js.map +1 -1
- package/dist/review-defect-detector.d.ts +125 -0
- package/dist/review-defect-detector.d.ts.map +1 -0
- package/dist/review-defect-detector.js +289 -0
- package/dist/review-defect-detector.js.map +1 -0
- package/dist/session-lifecycle.d.ts +17 -17
- package/dist/session-lifecycle.d.ts.map +1 -1
- package/dist/session-lifecycle.js +82 -82
- package/dist/session-lifecycle.js.map +1 -1
- package/dist/spawn-cooldown.d.ts +8 -8
- package/dist/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn-cooldown.js +15 -15
- package/dist/spawn-cooldown.js.map +1 -1
- package/dist/spawn-environment.d.ts +2 -2
- package/dist/spawn-environment.d.ts.map +1 -1
- package/dist/spawn-environment.js +3 -3
- package/dist/spawn-environment.js.map +1 -1
- package/dist/spawner-lifecycle.d.ts +2 -2
- package/dist/spawner-lifecycle.d.ts.map +1 -1
- package/dist/spawner-lifecycle.js +3 -3
- package/dist/spawner-lifecycle.js.map +1 -1
- package/dist/spawner-resolution.d.ts +3 -3
- package/dist/spawner-resolution.d.ts.map +1 -1
- package/dist/spawner-resolution.js +4 -4
- package/dist/spawner-resolution.js.map +1 -1
- package/dist/spawner-stream-handlers.js +2 -2
- package/dist/spawner-stream-handlers.js.map +1 -1
- package/dist/spawner.d.ts +1 -1
- package/dist/spawner.d.ts.map +1 -1
- package/dist/spawner.js +6 -6
- package/dist/spawner.js.map +1 -1
- package/dist/stage-classifier.d.ts +1 -1
- package/dist/stage-classifier.js +1 -1
- package/dist/state-cascade.d.ts +25 -25
- package/dist/state-cascade.d.ts.map +1 -1
- package/dist/state-cascade.js +89 -89
- package/dist/state-cascade.js.map +1 -1
- package/dist/supabase.d.ts +4 -4
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +5 -5
- package/dist/supabase.js.map +1 -1
- package/dist/task-converter.d.ts +4 -4
- package/dist/task-converter.d.ts.map +1 -1
- package/dist/task-converter.js +1 -1
- package/dist/task-converter.js.map +1 -1
- package/dist/team-prompt-base.d.ts +49 -22
- package/dist/team-prompt-base.d.ts.map +1 -1
- package/dist/team-prompt-base.js +96 -32
- package/dist/team-prompt-base.js.map +1 -1
- package/dist/team-spawner.d.ts +9 -9
- package/dist/team-spawner.d.ts.map +1 -1
- package/dist/team-spawner.js +84 -82
- package/dist/team-spawner.js.map +1 -1
- package/dist/telemetry-writer.d.ts +2 -2
- package/dist/telemetry-writer.d.ts.map +1 -1
- package/dist/templates/claude-md.js +8 -8
- package/dist/templates/claude-settings.d.ts +1 -1
- package/dist/templates/claude-settings.js +2 -2
- package/dist/templates/claude-settings.js.map +1 -1
- package/dist/trigger-executor.d.ts +4 -4
- package/dist/trigger-executor.d.ts.map +1 -1
- package/dist/trigger-executor.js +11 -11
- package/dist/trigger-executor.js.map +1 -1
- package/dist/types/dag.d.ts +1 -1
- package/dist/types/delivery.d.ts +3 -3
- package/dist/types/delivery.d.ts.map +1 -1
- package/dist/types/{strategy.d.ts → focus.d.ts} +65 -31
- package/dist/types/focus.d.ts.map +1 -0
- package/dist/types/focus.js +5 -0
- package/dist/types/focus.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/merge.d.ts +1 -1
- package/dist/types/session.d.ts +2 -2
- package/dist/types/session.d.ts.map +1 -1
- package/dist/unified-engine-lifecycle.js +11 -11
- package/dist/unified-engine-lifecycle.js.map +1 -1
- package/dist/unified-init.d.ts +1 -1
- package/dist/unified-init.js +9 -9
- package/dist/unified-init.js.map +1 -1
- package/dist/unified-shell-config.d.ts +4 -4
- package/dist/unified-shell-config.d.ts.map +1 -1
- package/dist/unified-shell-config.js +5 -5
- package/dist/unified-shell-config.js.map +1 -1
- package/dist/unified-shell-status.js +3 -3
- package/dist/unified-shell-status.js.map +1 -1
- package/dist/unified-shell.d.ts +1 -1
- package/dist/unified-shell.js +4 -4
- package/dist/unified-shell.js.map +1 -1
- package/dist/workflow-engine.d.ts +1 -1
- package/dist/workflow-engine.d.ts.map +1 -1
- package/dist/{worktree-strategy.d.ts → worktree-focus.d.ts} +15 -15
- package/dist/worktree-focus.d.ts.map +1 -0
- package/dist/{worktree-strategy.js → worktree-focus.js} +37 -37
- package/dist/worktree-focus.js.map +1 -0
- package/dist/worktree.d.ts +10 -10
- package/dist/worktree.d.ts.map +1 -1
- package/dist/worktree.js +39 -39
- package/dist/worktree.js.map +1 -1
- package/package.json +3 -3
- package/dist/listener-review.d.ts +0 -37
- package/dist/listener-review.d.ts.map +0 -1
- package/dist/listener-review.js +0 -217
- package/dist/listener-review.js.map +0 -1
- package/dist/queries/strategies.d.ts.map +0 -1
- package/dist/queries/strategies.js.map +0 -1
- package/dist/review-spawner.d.ts +0 -32
- package/dist/review-spawner.d.ts.map +0 -1
- package/dist/review-spawner.js +0 -170
- package/dist/review-spawner.js.map +0 -1
- package/dist/strategy-completion-event.d.ts +0 -63
- package/dist/strategy-completion-event.d.ts.map +0 -1
- package/dist/strategy-completion-event.js +0 -138
- package/dist/strategy-completion-event.js.map +0 -1
- package/dist/strategy-completion.d.ts.map +0 -1
- package/dist/strategy-completion.js.map +0 -1
- package/dist/strategy-engine.d.ts.map +0 -1
- package/dist/strategy-engine.js.map +0 -1
- package/dist/strategy-executor.d.ts +0 -55
- package/dist/strategy-executor.d.ts.map +0 -1
- package/dist/strategy-executor.js.map +0 -1
- package/dist/strategy-lifecycle.d.ts +0 -61
- package/dist/strategy-lifecycle.d.ts.map +0 -1
- package/dist/strategy-lifecycle.js.map +0 -1
- package/dist/strategy-merge.d.ts.map +0 -1
- package/dist/strategy-merge.js.map +0 -1
- package/dist/strategy-prompt-builder.d.ts +0 -24
- package/dist/strategy-prompt-builder.d.ts.map +0 -1
- package/dist/strategy-prompt-builder.js.map +0 -1
- package/dist/strategy-provisioning.d.ts +0 -16
- package/dist/strategy-provisioning.d.ts.map +0 -1
- package/dist/strategy-provisioning.js +0 -119
- package/dist/strategy-provisioning.js.map +0 -1
- package/dist/strategy-spawn-helpers.d.ts.map +0 -1
- package/dist/strategy-spawn-helpers.js.map +0 -1
- package/dist/strategy-team-lifecycle.d.ts.map +0 -1
- package/dist/strategy-team-lifecycle.js.map +0 -1
- package/dist/strategy-team-state.d.ts +0 -24
- package/dist/strategy-team-state.d.ts.map +0 -1
- package/dist/strategy-team-state.js.map +0 -1
- package/dist/strategy-teardown.d.ts +0 -24
- package/dist/strategy-teardown.d.ts.map +0 -1
- package/dist/strategy-teardown.js +0 -158
- package/dist/strategy-teardown.js.map +0 -1
- package/dist/strategy-worktree-state.d.ts +0 -47
- package/dist/strategy-worktree-state.d.ts.map +0 -1
- package/dist/strategy-worktree-state.js.map +0 -1
- package/dist/team-prompt-variants.d.ts +0 -17
- package/dist/team-prompt-variants.d.ts.map +0 -1
- package/dist/team-prompt-variants.js +0 -79
- package/dist/team-prompt-variants.js.map +0 -1
- package/dist/types/strategy.d.ts.map +0 -1
- package/dist/types/strategy.js +0 -5
- package/dist/types/strategy.js.map +0 -1
- package/dist/worktree-merge.d.ts +0 -23
- package/dist/worktree-merge.d.ts.map +0 -1
- package/dist/worktree-merge.js +0 -57
- package/dist/worktree-merge.js.map +0 -1
- package/dist/worktree-strategy.d.ts.map +0 -1
- package/dist/worktree-strategy.js.map +0 -1
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Focus team completion handling.
|
|
3
3
|
*
|
|
4
4
|
* Manages the post-execution lifecycle: advancing delivery statuses
|
|
5
|
-
* based on issue completion, merging the
|
|
5
|
+
* based on issue completion, merging the focus branch, cleaning up
|
|
6
6
|
* worktrees, and updating session records.
|
|
7
7
|
*/
|
|
8
8
|
import { filterWorkIssues, filterContextGroups, ACTIVE_WORK_STATUSES } from './constants.js';
|
|
9
|
-
import { updateSession, reportGitState, getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, fetchEffectiveWorkflow, updateDeliveryStatus,
|
|
9
|
+
import { updateSession, reportGitState, getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, fetchEffectiveWorkflow, updateDeliveryStatus, getActiveFocuses, } from './supabase.js';
|
|
10
10
|
import { hasPendingSpawnDirective } from './directive-executor.js';
|
|
11
11
|
import { advanceDeliveryStage } from './delivery-lifecycle.js';
|
|
12
12
|
import { withRetry } from '@telora/daemon-core';
|
|
13
|
-
import {
|
|
13
|
+
import { mergeFocusBranch, escalateMergeConflict } from './focus-merge.js';
|
|
14
14
|
import { mergeIntegrationToMain } from './git-merge.js';
|
|
15
15
|
import { recordSessionCompleted } from './agent-state.js';
|
|
16
16
|
import { triggerCheck } from './listener.js';
|
|
17
17
|
import { emitLoopTrigger } from './loop-event-bus.js';
|
|
18
|
-
import { getActiveTeams } from './
|
|
18
|
+
import { getActiveTeams } from './focus-team-state.js';
|
|
19
19
|
import { commitWipChanges, worktreeHasUncommittedChanges, branchHasUnmergedCommits, runGitSync } from './git.js';
|
|
20
20
|
import { computeGitDiffStats } from './git-utils.js';
|
|
21
|
-
import {
|
|
21
|
+
import { getFocusDeliveries, updateFocusStatus, fetchFocusWorkflowWithTransitions } from './queries/focuses.js';
|
|
22
22
|
// ── Stage classification (re-exported for consumers) ─────────────────
|
|
23
23
|
import { isStatusAgentActionable } from './stage-classifier.js';
|
|
24
24
|
export { isStatusTerminal, isStatusAgentActionable } from './stage-classifier.js';
|
|
25
25
|
// ── Merge gate ───────────────────────────────────────────────────────
|
|
26
26
|
/**
|
|
27
|
-
* Decide whether to attempt
|
|
27
|
+
* Decide whether to attempt mergeFocusBranch on team exit.
|
|
28
28
|
*
|
|
29
29
|
* Skip merge when:
|
|
30
30
|
* - The team did not succeed (failed exit or unclean shutdown), OR
|
|
@@ -42,7 +42,7 @@ export function shouldAttemptMerge(succeeded, teamState) {
|
|
|
42
42
|
* Responsibilities:
|
|
43
43
|
* - Report git state for all known deliveries
|
|
44
44
|
* - Advance delivery statuses based on issue completion
|
|
45
|
-
* - Merge
|
|
45
|
+
* - Merge focus branch to integration (if successful)
|
|
46
46
|
* - Clean up worktree
|
|
47
47
|
* - Update session record
|
|
48
48
|
* - Record heartbeat counters
|
|
@@ -50,7 +50,7 @@ export function shouldAttemptMerge(succeeded, teamState) {
|
|
|
50
50
|
*/
|
|
51
51
|
export async function handleTeamCompletion(params) {
|
|
52
52
|
const { config, teamState, sessionId, code, signal } = params;
|
|
53
|
-
const {
|
|
53
|
+
const { focusId, focusName, organizationId, branchName } = teamState;
|
|
54
54
|
const worktreePath = teamState.worktreePath;
|
|
55
55
|
const exitCode = code ?? 1;
|
|
56
56
|
// Proactive termination: when the daemon terminates a team because all work
|
|
@@ -63,21 +63,21 @@ export async function handleTeamCompletion(params) {
|
|
|
63
63
|
teamState.shutdownReason === 'work_complete';
|
|
64
64
|
const succeeded = exitCode === 0 || proactivelyTerminated;
|
|
65
65
|
let exitReason = exitCode === 0
|
|
66
|
-
? '
|
|
66
|
+
? 'Focus team completed.'
|
|
67
67
|
: proactivelyTerminated
|
|
68
68
|
? teamState.mergedDeliveryIds.size > 0
|
|
69
|
-
? `
|
|
70
|
-
: '
|
|
69
|
+
? `Focus team terminated: ${teamState.mergedDeliveryIds.size} deliveries merged.`
|
|
70
|
+
: 'Focus team terminated: all work complete.'
|
|
71
71
|
: signal
|
|
72
72
|
? `Team lead terminated by signal: ${signal}`
|
|
73
73
|
: `Team lead exited with code: ${exitCode}`;
|
|
74
74
|
// Fetch fresh delivery list to include mid-flight additions
|
|
75
75
|
let allDeliveries;
|
|
76
76
|
try {
|
|
77
|
-
allDeliveries = await
|
|
77
|
+
allDeliveries = await getFocusDeliveries(focusId);
|
|
78
78
|
}
|
|
79
79
|
catch (err) {
|
|
80
|
-
console.warn(`[
|
|
80
|
+
console.warn(`[focus-executor] Failed to fetch deliveries for gitState reporting, falling back to knownDeliveryIds:`, err.message);
|
|
81
81
|
// Empty knownDeliveryIds (planning teams that exited without scoping) yields
|
|
82
82
|
// an empty fallback array -- subsequent loops are intentional no-ops.
|
|
83
83
|
allDeliveries = [...teamState.knownDeliveryIds].map(id => ({
|
|
@@ -97,7 +97,7 @@ export async function handleTeamCompletion(params) {
|
|
|
97
97
|
.map(d => d.id);
|
|
98
98
|
// Report worktree_complete for worked deliveries only
|
|
99
99
|
for (const deliveryId of workedDeliveryIds) {
|
|
100
|
-
reportGitState(deliveryId, 'worktree_complete').catch(err => console.warn(`[
|
|
100
|
+
reportGitState(deliveryId, 'worktree_complete').catch(err => console.warn(`[focus-executor] reportGitState worktree_complete failed for ${deliveryId}:`, err.message));
|
|
101
101
|
}
|
|
102
102
|
// ── Read-only audit safety net ──────────────────────────────────
|
|
103
103
|
// If this was a read-only session, revert any file modifications and
|
|
@@ -106,13 +106,13 @@ export async function handleTeamCompletion(params) {
|
|
|
106
106
|
// Revert any uncommitted changes
|
|
107
107
|
const hasChanges = worktreeHasUncommittedChanges(worktreePath);
|
|
108
108
|
if (hasChanges) {
|
|
109
|
-
console.warn(`[
|
|
109
|
+
console.warn(`[focus-executor] Read-only audit "${focusName}" left uncommitted changes. Reverting.`);
|
|
110
110
|
runGitSync(['checkout', '.'], worktreePath);
|
|
111
111
|
runGitSync(['clean', '-fd'], worktreePath);
|
|
112
112
|
}
|
|
113
113
|
// Check if the agent somehow committed (bypassed hook)
|
|
114
114
|
if (branchHasUnmergedCommits(branchName, config.integrationBranch, config.repoPath)) {
|
|
115
|
-
console.error(`[
|
|
115
|
+
console.error(`[focus-executor] READ-ONLY VIOLATION: Audit "${focusName}" has commits on ${branchName}. ` +
|
|
116
116
|
`These will NOT be merged. Manual review required.`);
|
|
117
117
|
exitReason = `Read-only audit violation: commits detected on ${branchName}. Merge skipped.`;
|
|
118
118
|
// Update session as failed due to read-only violation
|
|
@@ -125,13 +125,13 @@ export async function handleTeamCompletion(params) {
|
|
|
125
125
|
}), { maxAttempts: 3, baseDelayMs: 1000, label: 'session-update-readonly-violation' });
|
|
126
126
|
}
|
|
127
127
|
catch (err) {
|
|
128
|
-
console.warn(`[
|
|
128
|
+
console.warn(`[focus-executor] Failed to update session after retries:`, err.message);
|
|
129
129
|
}
|
|
130
130
|
// Record heartbeat and clean up
|
|
131
131
|
recordSessionCompleted(0, 0);
|
|
132
132
|
const activeTeams = getActiveTeams();
|
|
133
133
|
teamState.phase = 'terminated';
|
|
134
|
-
activeTeams.delete(
|
|
134
|
+
activeTeams.delete(focusId);
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -140,17 +140,17 @@ export async function handleTeamCompletion(params) {
|
|
|
140
140
|
// agent committed its own work.
|
|
141
141
|
if (!succeeded) {
|
|
142
142
|
try {
|
|
143
|
-
commitWipChanges(worktreePath,
|
|
143
|
+
commitWipChanges(worktreePath, focusName);
|
|
144
144
|
}
|
|
145
145
|
catch (err) {
|
|
146
|
-
console.warn(`[
|
|
146
|
+
console.warn(`[focus-executor] WIP commit failed for "${focusName}": ${err.message}`);
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
// Advance delivery statuses based on issue completion
|
|
150
150
|
if (succeeded) {
|
|
151
151
|
await advanceDeliveryStatuses(config, teamState, sessionId);
|
|
152
152
|
}
|
|
153
|
-
// Merge
|
|
153
|
+
// Merge focus branch to integration if team succeeded.
|
|
154
154
|
// For proactive terminations, this is a no-op merge since all deliveries
|
|
155
155
|
// were already merged mid-flight. The merge still runs for safety
|
|
156
156
|
// (handles any commits the team lead made after the last incremental merge).
|
|
@@ -163,7 +163,7 @@ export async function handleTeamCompletion(params) {
|
|
|
163
163
|
// path explicit for cancellation mid-planning.
|
|
164
164
|
let mergeSucceeded = false;
|
|
165
165
|
if (shouldAttemptMerge(succeeded, teamState)) {
|
|
166
|
-
const mergeResult = await
|
|
166
|
+
const mergeResult = await mergeFocusBranch(config, teamState, sessionId, branchName, workedDeliveryIds);
|
|
167
167
|
mergeSucceeded = mergeResult.mergeSucceeded;
|
|
168
168
|
if (mergeResult.exitReason) {
|
|
169
169
|
exitReason += ` ${mergeResult.exitReason}`;
|
|
@@ -176,30 +176,30 @@ export async function handleTeamCompletion(params) {
|
|
|
176
176
|
organizationId,
|
|
177
177
|
sessionId,
|
|
178
178
|
deliveryId,
|
|
179
|
-
deliveryName:
|
|
179
|
+
deliveryName: focusName,
|
|
180
180
|
branchName,
|
|
181
181
|
integrationBranch: config.integrationBranch,
|
|
182
182
|
mergeError: mergeResult.exitReason,
|
|
183
|
-
}).catch(err => console.warn(`[
|
|
183
|
+
}).catch(err => console.warn(`[focus-executor] escalateMergeConflict failed for ${deliveryId}:`, err.message));
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
// ── CI: merge integration → main ──────────────────────────────
|
|
189
189
|
// When CI is enabled, merge the integration branch into main after
|
|
190
|
-
// a successful
|
|
190
|
+
// a successful focus merge. CD additionally pushes main to remote.
|
|
191
191
|
if (mergeSucceeded && teamState.pipelineConfig?.ci?.enabled) {
|
|
192
192
|
const pushToRemote = teamState.pipelineConfig?.cd?.enabled ?? false;
|
|
193
193
|
const ciLabel = pushToRemote ? 'CI+CD' : 'CI';
|
|
194
|
-
console.log(`[${ciLabel}] Merging integration to main for "${
|
|
194
|
+
console.log(`[${ciLabel}] Merging integration to main for "${focusName}"${pushToRemote ? ' (will push to remote)' : ''}`);
|
|
195
195
|
try {
|
|
196
196
|
const ciResult = await mergeIntegrationToMain({
|
|
197
197
|
config,
|
|
198
|
-
|
|
198
|
+
focusName,
|
|
199
199
|
pushToRemote,
|
|
200
200
|
});
|
|
201
201
|
if (ciResult.success) {
|
|
202
|
-
console.log(`[${ciLabel}] Successfully merged integration to main for "${
|
|
202
|
+
console.log(`[${ciLabel}] Successfully merged integration to main for "${focusName}"`);
|
|
203
203
|
// Update git state for worked deliveries
|
|
204
204
|
for (const deliveryId of workedDeliveryIds) {
|
|
205
205
|
const newState = pushToRemote ? 'pushed_to_remote' : 'merged_to_main';
|
|
@@ -208,25 +208,25 @@ export async function handleTeamCompletion(params) {
|
|
|
208
208
|
exitReason += ` ${ciLabel}: merged to main${pushToRemote ? ' and pushed to remote' : ''}.`;
|
|
209
209
|
}
|
|
210
210
|
else {
|
|
211
|
-
console.error(`[${ciLabel}] Failed to merge integration to main for "${
|
|
211
|
+
console.error(`[${ciLabel}] Failed to merge integration to main for "${focusName}": ${ciResult.error}`);
|
|
212
212
|
exitReason += ` ${ciLabel} failed: ${ciResult.error}`;
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
catch (err) {
|
|
216
|
-
console.error(`[${ciLabel}] Error merging integration to main for "${
|
|
216
|
+
console.error(`[${ciLabel}] Error merging integration to main for "${focusName}":`, err.message);
|
|
217
217
|
exitReason += ` ${ciLabel} error: ${err.message}`;
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
|
-
// Worktree is
|
|
220
|
+
// Worktree is focus-owned — do NOT remove on team completion.
|
|
221
221
|
// It persists for the next team session or QA use.
|
|
222
|
-
// Removal only happens via coordinated teardown when
|
|
222
|
+
// Removal only happens via coordinated teardown when focus is deactivated.
|
|
223
223
|
// Compute git diff stats from all commits on this branch since integration
|
|
224
224
|
let diffStats = { linesAdded: 0, linesRemoved: 0 };
|
|
225
225
|
try {
|
|
226
226
|
diffStats = computeGitDiffStats(worktreePath, `${config.integrationBranch}..${branchName}`);
|
|
227
227
|
}
|
|
228
228
|
catch (err) {
|
|
229
|
-
console.debug(`[
|
|
229
|
+
console.debug(`[focus-executor] Failed to compute git diff stats for "${focusName}":`, err.message);
|
|
230
230
|
}
|
|
231
231
|
// Determine exit category for failed sessions
|
|
232
232
|
const exitCategory = succeeded
|
|
@@ -246,28 +246,28 @@ export async function handleTeamCompletion(params) {
|
|
|
246
246
|
}), { maxAttempts: 3, baseDelayMs: 1000, label: 'session-update-completion' });
|
|
247
247
|
}
|
|
248
248
|
catch (err) {
|
|
249
|
-
console.warn(`[
|
|
249
|
+
console.warn(`[focus-executor] Failed to update session after retries:`, err.message);
|
|
250
250
|
}
|
|
251
|
-
// Review exit handler: if the
|
|
251
|
+
// Review exit handler: if the focus is in in_review when the review
|
|
252
252
|
// team exits, route deliveries based on outcome:
|
|
253
253
|
// - Deliveries with open issues → iterating (review found gaps)
|
|
254
254
|
// - Deliveries with no open issues → done (review passed)
|
|
255
|
-
// Then move the
|
|
255
|
+
// Then move the focus back to verify.
|
|
256
256
|
try {
|
|
257
|
-
const
|
|
258
|
-
const current =
|
|
257
|
+
const focuses = await getActiveFocuses(organizationId, teamState.productId);
|
|
258
|
+
const current = focuses.find(s => s.focus_id === focusId);
|
|
259
259
|
if (current?.status === 'in_review') {
|
|
260
260
|
// If a spawn directive is pending, the team was terminated to make room
|
|
261
261
|
// for a new team (e.g., directive executor spawning the review team).
|
|
262
262
|
// Don't run the review exit handler — the new team will handle it.
|
|
263
|
-
if (hasPendingSpawnDirective(
|
|
264
|
-
console.log(`[
|
|
263
|
+
if (hasPendingSpawnDirective(focusId)) {
|
|
264
|
+
console.log(`[focus-executor] Skipping review exit handler for "${focusName}" -- pending spawn directive`);
|
|
265
265
|
}
|
|
266
266
|
else {
|
|
267
267
|
// Route in_review deliveries based on review outcome:
|
|
268
268
|
// - Has open issues (review found gaps) → iterating
|
|
269
269
|
// - No open issues (review passed) → done
|
|
270
|
-
const reviewDeliveries = await
|
|
270
|
+
const reviewDeliveries = await getFocusDeliveries(focusId);
|
|
271
271
|
for (const d of reviewDeliveries) {
|
|
272
272
|
if (d.executionStatus === 'in_review') {
|
|
273
273
|
try {
|
|
@@ -281,52 +281,52 @@ export async function handleTeamCompletion(params) {
|
|
|
281
281
|
// Review created issues — send back to iterating for the team to address
|
|
282
282
|
const iteratingStage = dWorkflow.stages.find(s => s.name === 'iterating');
|
|
283
283
|
await updateDeliveryStatus(d.id, 'iterating', iteratingStage?.id ?? null);
|
|
284
|
-
console.log(`[
|
|
284
|
+
console.log(`[focus-executor] Delivery "${d.name}" moved from in_review to iterating: ${openWork.length} open issue(s)`);
|
|
285
285
|
}
|
|
286
286
|
else {
|
|
287
287
|
// Review passed — move to done
|
|
288
288
|
const doneStage = dWorkflow.stages.find(s => s.name === 'done');
|
|
289
289
|
await updateDeliveryStatus(d.id, 'done', doneStage?.id ?? null);
|
|
290
|
-
console.log(`[
|
|
290
|
+
console.log(`[focus-executor] Delivery "${d.name}" moved from in_review to done (review passed)`);
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
293
|
catch (err) {
|
|
294
|
-
console.warn(`[
|
|
294
|
+
console.warn(`[focus-executor] Failed to route delivery "${d.name}" after review: ${err.message}`);
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
|
-
// Move
|
|
299
|
-
const workflow = await
|
|
298
|
+
// Move focus back to verify
|
|
299
|
+
const workflow = await fetchFocusWorkflowWithTransitions(focusId);
|
|
300
300
|
const verifyStage = workflow.stages.find(s => s.name === 'verify');
|
|
301
301
|
if (verifyStage) {
|
|
302
|
-
await
|
|
303
|
-
console.log(`[
|
|
302
|
+
await updateFocusStatus(focusId, 'verify', verifyStage.id, { reviewRequestedAt: null });
|
|
303
|
+
console.log(`[focus-executor] Review complete for "${focusName}" -- focus moved to verify`);
|
|
304
304
|
emitLoopTrigger({
|
|
305
305
|
type: 'review_completed',
|
|
306
|
-
|
|
307
|
-
detail: `review complete -- "${
|
|
306
|
+
focusId,
|
|
307
|
+
detail: `review complete -- "${focusName}" moved to verify`,
|
|
308
308
|
});
|
|
309
309
|
}
|
|
310
310
|
} // end if !hasPendingSpawnDirective
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
catch (err) {
|
|
314
|
-
console.warn(`[
|
|
314
|
+
console.warn(`[focus-executor] Review exit handler failed for "${focusName}":`, err.message);
|
|
315
315
|
}
|
|
316
316
|
// Record heartbeat
|
|
317
317
|
recordSessionCompleted(0, 0);
|
|
318
318
|
// Clean up team state
|
|
319
319
|
const activeTeams = getActiveTeams();
|
|
320
320
|
teamState.phase = 'terminated';
|
|
321
|
-
activeTeams.delete(
|
|
321
|
+
activeTeams.delete(focusId);
|
|
322
322
|
// Trigger re-poll to pick up next work
|
|
323
323
|
if (succeeded) {
|
|
324
324
|
triggerCheck();
|
|
325
325
|
}
|
|
326
|
-
console.log(`[
|
|
326
|
+
console.log(`[focus-executor] Team for "${focusName}" cleaned up (merge: ${mergeSucceeded ? 'yes' : 'no'})`);
|
|
327
327
|
}
|
|
328
328
|
const defaultDeps = {
|
|
329
|
-
|
|
329
|
+
getFocusDeliveries,
|
|
330
330
|
getDeliveryIssues,
|
|
331
331
|
getDeliverySessionCount,
|
|
332
332
|
updateIssueStatus,
|
|
@@ -337,7 +337,7 @@ const defaultDeps = {
|
|
|
337
337
|
/**
|
|
338
338
|
* Advance delivery statuses after team completion.
|
|
339
339
|
*
|
|
340
|
-
* Re-queries all deliveries for the
|
|
340
|
+
* Re-queries all deliveries for the focus from the database rather
|
|
341
341
|
* than relying on the spawn-time snapshot in teamState.knownDeliveryIds.
|
|
342
342
|
* This ensures deliveries added mid-flight (after the team was spawned)
|
|
343
343
|
* are discovered and advanced, and that stale deliveryStageIds don't
|
|
@@ -351,10 +351,10 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
351
351
|
// Re-query deliveries fresh from the DB to discover mid-flight additions
|
|
352
352
|
let deliveries;
|
|
353
353
|
try {
|
|
354
|
-
deliveries = await deps.
|
|
354
|
+
deliveries = await deps.getFocusDeliveries(teamState.focusId);
|
|
355
355
|
}
|
|
356
356
|
catch (err) {
|
|
357
|
-
console.warn(`[
|
|
357
|
+
console.warn(`[focus-executor] Failed to fetch deliveries for focus ${teamState.focusId}:`, err.message);
|
|
358
358
|
return;
|
|
359
359
|
}
|
|
360
360
|
for (const delivery of deliveries) {
|
|
@@ -383,7 +383,7 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
383
383
|
?? teamState.deliveryStageIds.get(delivery.id)
|
|
384
384
|
?? null;
|
|
385
385
|
if (!currentStageId) {
|
|
386
|
-
console.warn(`[
|
|
386
|
+
console.warn(`[focus-executor] Delivery ${delivery.id}: no workflow stage ID, skipping advance`);
|
|
387
387
|
continue;
|
|
388
388
|
}
|
|
389
389
|
// Re-queue deliveries with open work issues so the next team picks them up
|
|
@@ -394,12 +394,12 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
394
394
|
}
|
|
395
395
|
const queuedStage = workflow.stages.find(s => s.name === 'queued');
|
|
396
396
|
if (queuedStage) {
|
|
397
|
-
console.log(`[
|
|
397
|
+
console.log(`[focus-executor] Delivery ${delivery.id}: ${openCount}/${totalWork} work issues still open, re-queuing`);
|
|
398
398
|
await deps.updateDeliveryStatus(delivery.id, 'queued', queuedStage.id);
|
|
399
399
|
teamState.deliveryStageIds.set(delivery.id, queuedStage.id);
|
|
400
400
|
}
|
|
401
401
|
else {
|
|
402
|
-
console.warn(`[
|
|
402
|
+
console.warn(`[focus-executor] Delivery ${delivery.id}: ${openCount}/${totalWork} work issues still open, no queued stage in workflow — leaving in ${delivery.executionStatus}`);
|
|
403
403
|
}
|
|
404
404
|
continue;
|
|
405
405
|
}
|
|
@@ -408,10 +408,10 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
408
408
|
if (cg.status !== 'Done') {
|
|
409
409
|
try {
|
|
410
410
|
await deps.updateIssueStatus(cg.id, 'Done');
|
|
411
|
-
console.log(`[
|
|
411
|
+
console.log(`[focus-executor] Auto-closed Context Group "${cg.title}" (all work issues done)`);
|
|
412
412
|
}
|
|
413
413
|
catch (err) {
|
|
414
|
-
console.warn(`[
|
|
414
|
+
console.warn(`[focus-executor] Failed to auto-close Context Group "${cg.title}":`, err.message);
|
|
415
415
|
}
|
|
416
416
|
}
|
|
417
417
|
}
|
|
@@ -422,12 +422,12 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
422
422
|
if (delivery.executionStatus === 'queued') {
|
|
423
423
|
const codingStage = workflow.stages.find(s => s.name === 'coding');
|
|
424
424
|
if (codingStage) {
|
|
425
|
-
console.log(`[
|
|
425
|
+
console.log(`[focus-executor] Delivery ${delivery.id}: stepping queued -> coding before verify advance`);
|
|
426
426
|
await deps.updateDeliveryStatus(delivery.id, 'coding', codingStage.id);
|
|
427
427
|
effectiveStageId = codingStage.id;
|
|
428
428
|
}
|
|
429
429
|
}
|
|
430
|
-
console.log(`[
|
|
430
|
+
console.log(`[focus-executor] Delivery ${delivery.id}: ${totalWork === 0 ? 'no issues' : `all ${totalWork} work issues done`}, advancing via workflow`);
|
|
431
431
|
const result = await deps.advanceDeliveryStage({
|
|
432
432
|
deliveryId: delivery.id,
|
|
433
433
|
deliveryName: delivery.name,
|
|
@@ -446,14 +446,14 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
446
446
|
if (result.advanced && (result.deliveryStatus === 'verify' || result.deliveryStatus === 'done')) {
|
|
447
447
|
emitLoopTrigger({
|
|
448
448
|
type: 'delivery_completed',
|
|
449
|
-
|
|
449
|
+
focusId: teamState.focusId,
|
|
450
450
|
detail: `${delivery.name} -> ${result.deliveryStatus}`,
|
|
451
451
|
});
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
catch (err) {
|
|
455
|
-
console.warn(`[
|
|
455
|
+
console.warn(`[focus-executor] Failed to check/advance delivery ${delivery.id}:`, err.message);
|
|
456
456
|
}
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
|
-
//# sourceMappingURL=
|
|
459
|
+
//# sourceMappingURL=focus-completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-completion.js","sourceRoot":"","sources":["../src/focus-completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* FocusEngine -- ExecutionEngine adapter for the focus-based daemon.
|
|
3
3
|
*
|
|
4
4
|
* Wraps the existing daemon modules (listener, heartbeat, spawner, git, etc.)
|
|
5
5
|
* behind the ExecutionEngine interface from @telora/daemon-core. This allows
|
|
6
|
-
* the unified process shell to manage the
|
|
6
|
+
* the unified process shell to manage the focus engine without knowing
|
|
7
7
|
* its internals.
|
|
8
8
|
*
|
|
9
9
|
* Lifecycle (called by the process shell):
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { ExecutionEngine, EngineHealth, ResourceUsage, BaseConfig } from '@telora/daemon-core';
|
|
17
17
|
import { ResourceGovernor } from '@telora/daemon-core';
|
|
18
|
-
export declare class
|
|
19
|
-
readonly name = "
|
|
18
|
+
export declare class FocusEngine implements ExecutionEngine {
|
|
19
|
+
readonly name = "focus";
|
|
20
20
|
/** Daemon config, set during init(). */
|
|
21
21
|
private config;
|
|
22
22
|
/** Optional resource governor for global concurrency limiting. */
|
|
@@ -44,4 +44,4 @@ export declare class StrategyEngine implements ExecutionEngine {
|
|
|
44
44
|
*/
|
|
45
45
|
private requireConfig;
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=focus-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-engine.d.ts","sourceRoot":"","sources":["../src/focus-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA0ChF,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,WAAW;IAExB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAiC;IAEjD,sEAAsE;IACtE,OAAO,CAAC,SAAS,CAAwC;IAEzD,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB,CAA6B;IAE1D;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAUlC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCjE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoGjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAkEd,wBAAwB;IA+BtC,IAAI,IAAI,IAAI;IAeN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsH/B,WAAW,IAAI,YAAY;IA0D3B,gBAAgB,IAAI,aAAa;IAwBjC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAStB"}
|