@telora/daemon 0.15.1 → 0.15.3
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 +15 -15
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +76 -76
- 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/focus-completion.d.ts +85 -0
- package/dist/focus-completion.d.ts.map +1 -0
- package/dist/focus-completion.js +459 -0
- package/dist/focus-completion.js.map +1 -0
- package/dist/focus-engine.d.ts +47 -0
- package/dist/focus-engine.d.ts.map +1 -0
- package/dist/focus-engine.js +421 -0
- 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/focus-executor.js +549 -0
- 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/focus-lifecycle.js +544 -0
- package/dist/focus-lifecycle.js.map +1 -0
- package/dist/focus-merge.d.ts +77 -0
- package/dist/focus-merge.d.ts.map +1 -0
- package/dist/focus-merge.js +378 -0
- package/dist/focus-merge.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/focus-prompt-builder.js +138 -0
- 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/focus-spawn-helpers.d.ts +67 -0
- package/dist/focus-spawn-helpers.d.ts.map +1 -0
- package/dist/focus-spawn-helpers.js +160 -0
- package/dist/focus-spawn-helpers.js.map +1 -0
- package/dist/focus-team-lifecycle.d.ts +50 -0
- package/dist/focus-team-lifecycle.d.ts.map +1 -0
- package/dist/focus-team-lifecycle.js +256 -0
- 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/focus-team-state.js +43 -0
- 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/focus-worktree-state.js +104 -0
- 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 +17 -15
- package/dist/planning-prompt-builder.d.ts.map +1 -1
- package/dist/planning-prompt-builder.js +34 -32
- 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 +28 -24
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +32 -28
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +97 -0
- package/dist/queries/focuses.d.ts.map +1 -0
- package/dist/queries/focuses.js +136 -0
- 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 +40 -34
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +31 -26
- 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/strategy-completion-event.d.ts +37 -3
- package/dist/strategy-completion-event.d.ts.map +1 -1
- package/dist/strategy-completion-event.js +78 -9
- package/dist/strategy-completion-event.js.map +1 -1
- package/dist/strategy-completion.d.ts +11 -0
- package/dist/strategy-completion.d.ts.map +1 -1
- package/dist/strategy-completion.js +22 -1
- package/dist/strategy-completion.js.map +1 -1
- package/dist/strategy-executor.d.ts.map +1 -1
- package/dist/strategy-executor.js +46 -14
- package/dist/strategy-executor.js.map +1 -1
- package/dist/strategy-merge.d.ts.map +1 -1
- package/dist/strategy-merge.js +4 -0
- package/dist/strategy-merge.js.map +1 -1
- package/dist/strategy-team-lifecycle.d.ts.map +1 -1
- package/dist/strategy-team-lifecycle.js +3 -0
- package/dist/strategy-team-lifecycle.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 +59 -19
- package/dist/team-prompt-base.d.ts.map +1 -1
- package/dist/team-prompt-base.js +206 -25
- 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 +87 -83
- 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/focus.d.ts +214 -0
- 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/types/strategy.d.ts +7 -0
- package/dist/types/strategy.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-focus.d.ts +69 -0
- package/dist/worktree-focus.d.ts.map +1 -0
- package/dist/worktree-focus.js +214 -0
- 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 +2 -2
package/dist/loop-engine.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* LoopEngine -- ExecutionEngine adapter for the Loop Agent (differential receiver).
|
|
3
3
|
*
|
|
4
4
|
* The Loop Agent is a monitoring-only engine that does NOT spawn Claude Code
|
|
5
|
-
* processes. It polls for
|
|
5
|
+
* processes. It polls for focuses with loop data, computes variance between
|
|
6
6
|
* intent (loop documents/questions) and forecasted reality (metrics/projections),
|
|
7
7
|
* and when variance shifts enough, calls the LLM to re-evaluate loop data.
|
|
8
8
|
*
|
|
@@ -20,7 +20,7 @@ import { callLoopLLM } from './loop-llm-client.js';
|
|
|
20
20
|
import { onLoopTrigger } from './loop-event-bus.js';
|
|
21
21
|
const DEFAULT_EVENT_TRIGGERS = {
|
|
22
22
|
deliveryCompleted: true,
|
|
23
|
-
|
|
23
|
+
focusStatusChanged: true,
|
|
24
24
|
reviewCompleted: true,
|
|
25
25
|
};
|
|
26
26
|
const DEFAULT_LOOP_CONFIG = {
|
|
@@ -41,16 +41,16 @@ export class LoopEngine {
|
|
|
41
41
|
governor = null;
|
|
42
42
|
pollTimeout = null;
|
|
43
43
|
shuttingDown = false;
|
|
44
|
-
/** Number of active
|
|
45
|
-
|
|
44
|
+
/** Number of active focuses with loop data from last poll. */
|
|
45
|
+
activeFocusCount = 0;
|
|
46
46
|
/** Last poll timestamp for health reporting. */
|
|
47
47
|
lastPollAt = null;
|
|
48
|
-
/** Per-
|
|
48
|
+
/** Per-focus last LLM evaluation timestamp. */
|
|
49
49
|
lastEvaluationAt = new Map();
|
|
50
|
-
/** Per-
|
|
50
|
+
/** Per-focus last computed variance (for threshold comparison). */
|
|
51
51
|
lastVariance = new Map();
|
|
52
|
-
/**
|
|
53
|
-
|
|
52
|
+
/** Focuses that have been triggered by lifecycle events (pending immediate evaluation). */
|
|
53
|
+
triggeredFocuses = new Set();
|
|
54
54
|
/** Cleanup function for event bus subscription. */
|
|
55
55
|
unsubscribeEvents = null;
|
|
56
56
|
// -----------------------------------------------------------------------
|
|
@@ -76,7 +76,7 @@ export class LoopEngine {
|
|
|
76
76
|
const et = etRaw;
|
|
77
77
|
eventTriggers = {
|
|
78
78
|
deliveryCompleted: typeof et.deliveryCompleted === 'boolean' ? et.deliveryCompleted : DEFAULT_EVENT_TRIGGERS.deliveryCompleted,
|
|
79
|
-
|
|
79
|
+
focusStatusChanged: typeof et.focusStatusChanged === 'boolean' ? et.focusStatusChanged : DEFAULT_EVENT_TRIGGERS.focusStatusChanged,
|
|
80
80
|
reviewCompleted: typeof et.reviewCompleted === 'boolean' ? et.reviewCompleted : DEFAULT_EVENT_TRIGGERS.reviewCompleted,
|
|
81
81
|
};
|
|
82
82
|
}
|
|
@@ -104,7 +104,7 @@ export class LoopEngine {
|
|
|
104
104
|
// -----------------------------------------------------------------------
|
|
105
105
|
async start() {
|
|
106
106
|
this.shuttingDown = false;
|
|
107
|
-
// Subscribe to lifecycle events from the
|
|
107
|
+
// Subscribe to lifecycle events from the focus engine
|
|
108
108
|
this.unsubscribeEvents = onLoopTrigger((event) => this.handleLifecycleEvent(event));
|
|
109
109
|
// Run initial poll immediately
|
|
110
110
|
await this.runPollCycle();
|
|
@@ -138,11 +138,11 @@ export class LoopEngine {
|
|
|
138
138
|
healthCheck() {
|
|
139
139
|
return {
|
|
140
140
|
status: this.config ? 'healthy' : 'unhealthy',
|
|
141
|
-
activeWorkItems: this.
|
|
141
|
+
activeWorkItems: this.activeFocusCount,
|
|
142
142
|
details: {
|
|
143
|
-
|
|
143
|
+
activeFocusCount: this.activeFocusCount,
|
|
144
144
|
lastPollAt: this.lastPollAt?.toISOString() ?? null,
|
|
145
|
-
currentPollIntervalMs: this.
|
|
145
|
+
currentPollIntervalMs: this.activeFocusCount > 0
|
|
146
146
|
? this.loopConfig.activeIntervalMs
|
|
147
147
|
: this.loopConfig.idleIntervalMs,
|
|
148
148
|
},
|
|
@@ -165,98 +165,98 @@ export class LoopEngine {
|
|
|
165
165
|
if (!config)
|
|
166
166
|
return;
|
|
167
167
|
this.lastPollAt = new Date();
|
|
168
|
-
let
|
|
168
|
+
let totalActiveFocuses = 0;
|
|
169
169
|
for (const product of config.products) {
|
|
170
170
|
try {
|
|
171
171
|
const count = await this.pollProduct(product.id);
|
|
172
|
-
|
|
172
|
+
totalActiveFocuses += count;
|
|
173
173
|
}
|
|
174
174
|
catch (err) {
|
|
175
175
|
console.log(`[Loop] Poll failed for product ${product.id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
this.
|
|
178
|
+
this.activeFocusCount = totalActiveFocuses;
|
|
179
179
|
}
|
|
180
180
|
/**
|
|
181
|
-
* Poll a single product for
|
|
182
|
-
* Returns the number of active
|
|
181
|
+
* Poll a single product for focuses with loop data.
|
|
182
|
+
* Returns the number of active focuses processed.
|
|
183
183
|
*/
|
|
184
184
|
async pollProduct(productId) {
|
|
185
|
-
// Fetch active
|
|
186
|
-
let
|
|
185
|
+
// Fetch active focuses for this product
|
|
186
|
+
let focuses;
|
|
187
187
|
try {
|
|
188
|
-
const result = await callApi('
|
|
188
|
+
const result = await callApi('focus_list', {
|
|
189
189
|
productId,
|
|
190
190
|
status: 'active',
|
|
191
191
|
});
|
|
192
|
-
|
|
192
|
+
focuses = result.items ?? [];
|
|
193
193
|
}
|
|
194
194
|
catch (err) {
|
|
195
|
-
console.log(`[Loop] Failed to fetch
|
|
195
|
+
console.log(`[Loop] Failed to fetch focuses for product ${productId}: ${err instanceof Error ? err.message : String(err)}`);
|
|
196
196
|
return 0;
|
|
197
197
|
}
|
|
198
|
-
if (
|
|
198
|
+
if (focuses.length === 0)
|
|
199
199
|
return 0;
|
|
200
200
|
let processed = 0;
|
|
201
|
-
for (const
|
|
201
|
+
for (const focus of focuses) {
|
|
202
202
|
try {
|
|
203
|
-
await this.
|
|
203
|
+
await this.processFocus(focus);
|
|
204
204
|
processed++;
|
|
205
205
|
}
|
|
206
206
|
catch (err) {
|
|
207
|
-
console.log(`[Loop] Failed to process
|
|
207
|
+
console.log(`[Loop] Failed to process focus ${focus.id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
return processed;
|
|
211
211
|
}
|
|
212
212
|
/**
|
|
213
|
-
* Process a single
|
|
213
|
+
* Process a single focus: load intent + reality, compute variance,
|
|
214
214
|
* optionally call LLM for updates, persist variance snapshot.
|
|
215
215
|
*/
|
|
216
|
-
async
|
|
216
|
+
async processFocus(focus) {
|
|
217
217
|
// 1. Load intent data (loop documents + questions + answers)
|
|
218
|
-
const intent = await this.loadIntentData(
|
|
219
|
-
// Skip
|
|
218
|
+
const intent = await this.loadIntentData(focus.id);
|
|
219
|
+
// Skip focuses with no loop data (not yet initialized)
|
|
220
220
|
if (intent.documents.length === 0 && intent.questions.length === 0) {
|
|
221
221
|
return;
|
|
222
222
|
}
|
|
223
223
|
// 2. Load reality data (metrics + projections)
|
|
224
|
-
const reality = await this.loadRealityData(
|
|
224
|
+
const reality = await this.loadRealityData(focus.id);
|
|
225
225
|
// 3. Compute variance (pass previous for trend direction)
|
|
226
|
-
const previousVariance = this.lastVariance.get(
|
|
227
|
-
const variance = computeVariance(intent, reality,
|
|
226
|
+
const previousVariance = this.lastVariance.get(focus.id) ?? null;
|
|
227
|
+
const variance = computeVariance(intent, reality, focus.targetDate ?? null, previousVariance);
|
|
228
228
|
// 4. Persist variance snapshot
|
|
229
|
-
await this.persistVarianceSnapshot(
|
|
229
|
+
await this.persistVarianceSnapshot(focus, variance);
|
|
230
230
|
// 5. Determine if LLM update is needed
|
|
231
|
-
const shouldUpdate = this.shouldTriggerLLMUpdate(
|
|
231
|
+
const shouldUpdate = this.shouldTriggerLLMUpdate(focus.id, variance, reality);
|
|
232
232
|
if (shouldUpdate) {
|
|
233
|
-
console.log(`[Loop] Triggering LLM update for
|
|
234
|
-
await this.runLLMUpdate(
|
|
235
|
-
this.lastEvaluationAt.set(
|
|
233
|
+
console.log(`[Loop] Triggering LLM update for focus "${focus.name}" (${focus.id.slice(0, 8)}) -- lock: ${variance.lockStatus}`);
|
|
234
|
+
await this.runLLMUpdate(focus, intent, reality, variance);
|
|
235
|
+
this.lastEvaluationAt.set(focus.id, Date.now());
|
|
236
236
|
}
|
|
237
237
|
// 6. Store variance for threshold comparison
|
|
238
|
-
this.lastVariance.set(
|
|
238
|
+
this.lastVariance.set(focus.id, variance);
|
|
239
239
|
}
|
|
240
240
|
/**
|
|
241
|
-
* Load loop data (intent) for a
|
|
241
|
+
* Load loop data (intent) for a focus.
|
|
242
242
|
*/
|
|
243
|
-
async loadIntentData(
|
|
243
|
+
async loadIntentData(focusId) {
|
|
244
244
|
const [docsResult, questionsResult, personaResult] = await Promise.all([
|
|
245
245
|
callApi('loop_document_list', {
|
|
246
|
-
entityType: '
|
|
247
|
-
entityId:
|
|
246
|
+
entityType: 'focus',
|
|
247
|
+
entityId: focusId,
|
|
248
248
|
detail: 'full',
|
|
249
249
|
limit: 50,
|
|
250
250
|
}).catch(() => ({ items: [] })),
|
|
251
251
|
callApi('loop_question_list', {
|
|
252
|
-
entityType: '
|
|
253
|
-
entityId:
|
|
252
|
+
entityType: 'focus',
|
|
253
|
+
entityId: focusId,
|
|
254
254
|
detail: 'full',
|
|
255
255
|
limit: 50,
|
|
256
256
|
}).catch(() => ({ items: [] })),
|
|
257
257
|
callApi('loop_persona_get', {
|
|
258
|
-
entityType: '
|
|
259
|
-
entityId:
|
|
258
|
+
entityType: 'focus',
|
|
259
|
+
entityId: focusId,
|
|
260
260
|
}).catch(() => ({ persona: null })),
|
|
261
261
|
]);
|
|
262
262
|
// Fetch answers for each question
|
|
@@ -282,12 +282,12 @@ export class LoopEngine {
|
|
|
282
282
|
};
|
|
283
283
|
}
|
|
284
284
|
/**
|
|
285
|
-
* Load reality data (metrics + projections) for a
|
|
285
|
+
* Load reality data (metrics + projections) for a focus.
|
|
286
286
|
*/
|
|
287
|
-
async loadRealityData(
|
|
287
|
+
async loadRealityData(focusId) {
|
|
288
288
|
try {
|
|
289
|
-
const result = await callApi('
|
|
290
|
-
|
|
289
|
+
const result = await callApi('reality_metrics_focus', {
|
|
290
|
+
focusId,
|
|
291
291
|
});
|
|
292
292
|
return {
|
|
293
293
|
metrics: result.metrics,
|
|
@@ -295,23 +295,23 @@ export class LoopEngine {
|
|
|
295
295
|
};
|
|
296
296
|
}
|
|
297
297
|
catch (err) {
|
|
298
|
-
console.log(`[Loop] Failed to load reality data for
|
|
298
|
+
console.log(`[Loop] Failed to load reality data for focus ${focusId}: ${err instanceof Error ? err.message : String(err)}`);
|
|
299
299
|
return { metrics: null, projections: { completion: null, cost: null } };
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
/**
|
|
303
303
|
* Persist variance snapshot to the database.
|
|
304
304
|
*/
|
|
305
|
-
async persistVarianceSnapshot(
|
|
305
|
+
async persistVarianceSnapshot(focus, variance) {
|
|
306
306
|
try {
|
|
307
307
|
await callApi('loop_variance_upsert', {
|
|
308
|
-
entityType: '
|
|
309
|
-
entityId:
|
|
308
|
+
entityType: 'focus',
|
|
309
|
+
entityId: focus.id,
|
|
310
310
|
varianceData: variance,
|
|
311
311
|
});
|
|
312
312
|
}
|
|
313
313
|
catch (err) {
|
|
314
|
-
console.log(`[Loop] Failed to persist variance snapshot for
|
|
314
|
+
console.log(`[Loop] Failed to persist variance snapshot for focus ${focus.id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
317
|
/**
|
|
@@ -321,9 +321,9 @@ export class LoopEngine {
|
|
|
321
321
|
* - Variance change beyond threshold
|
|
322
322
|
* - Stale loop data
|
|
323
323
|
*/
|
|
324
|
-
shouldTriggerLLMUpdate(
|
|
324
|
+
shouldTriggerLLMUpdate(focusId, variance, reality) {
|
|
325
325
|
const now = Date.now();
|
|
326
|
-
const lastEval = this.lastEvaluationAt.get(
|
|
326
|
+
const lastEval = this.lastEvaluationAt.get(focusId) ?? 0;
|
|
327
327
|
// Enforce minimum interval (debounce bursts)
|
|
328
328
|
if (now - lastEval < this.loopConfig.minEvaluationIntervalMs) {
|
|
329
329
|
return false;
|
|
@@ -332,9 +332,9 @@ export class LoopEngine {
|
|
|
332
332
|
if (now - lastEval > this.loopConfig.staleThresholdMs) {
|
|
333
333
|
return true;
|
|
334
334
|
}
|
|
335
|
-
// Event-driven trigger: lifecycle event flagged this
|
|
336
|
-
if (this.
|
|
337
|
-
this.
|
|
335
|
+
// Event-driven trigger: lifecycle event flagged this focus for re-evaluation
|
|
336
|
+
if (this.triggeredFocuses.has(focusId)) {
|
|
337
|
+
this.triggeredFocuses.delete(focusId);
|
|
338
338
|
return true;
|
|
339
339
|
}
|
|
340
340
|
// Event-aware trigger: check if new activity occurred since last evaluation
|
|
@@ -347,7 +347,7 @@ export class LoopEngine {
|
|
|
347
347
|
}
|
|
348
348
|
}
|
|
349
349
|
// Compare with previous variance
|
|
350
|
-
const prevVariance = this.lastVariance.get(
|
|
350
|
+
const prevVariance = this.lastVariance.get(focusId);
|
|
351
351
|
if (!prevVariance) {
|
|
352
352
|
// First evaluation -- always run
|
|
353
353
|
return true;
|
|
@@ -377,40 +377,40 @@ export class LoopEngine {
|
|
|
377
377
|
/**
|
|
378
378
|
* Run the LLM to re-evaluate loop data given current variance.
|
|
379
379
|
*/
|
|
380
|
-
async runLLMUpdate(
|
|
380
|
+
async runLLMUpdate(focus, intent, reality, variance) {
|
|
381
381
|
try {
|
|
382
382
|
// Build the prompt
|
|
383
383
|
const prompt = buildLoopUpdatePrompt(intent, reality, variance);
|
|
384
384
|
// Call the LLM
|
|
385
|
-
const rawResponse = await callLoopLLM(
|
|
385
|
+
const rawResponse = await callLoopLLM(focus.organizationId, prompt);
|
|
386
386
|
if (!rawResponse) {
|
|
387
|
-
console.log(`[Loop] LLM returned empty response for
|
|
387
|
+
console.log(`[Loop] LLM returned empty response for focus ${focus.id}`);
|
|
388
388
|
return;
|
|
389
389
|
}
|
|
390
390
|
// Parse the response
|
|
391
391
|
const updates = parseLoopUpdateResponse(rawResponse);
|
|
392
392
|
// Write updates back
|
|
393
|
-
await this.applyLoopUpdates(
|
|
394
|
-
console.log(`[Loop] Applied updates for
|
|
393
|
+
await this.applyLoopUpdates(focus.id, updates);
|
|
394
|
+
console.log(`[Loop] Applied updates for focus "${focus.name}": ` +
|
|
395
395
|
`${updates.documentReorders.length} re-ranks, ` +
|
|
396
396
|
`${updates.answerUpdates.length} answers, ` +
|
|
397
397
|
`${updates.newQuestions.length} new questions` +
|
|
398
398
|
`${updates.personaProposal ? ', 1 persona proposal' : ''}`);
|
|
399
399
|
}
|
|
400
400
|
catch (err) {
|
|
401
|
-
console.log(`[Loop] LLM update failed for
|
|
401
|
+
console.log(`[Loop] LLM update failed for focus ${focus.id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
/**
|
|
405
405
|
* Apply parsed LLM updates back to loop data via edge function.
|
|
406
406
|
*/
|
|
407
|
-
async applyLoopUpdates(
|
|
407
|
+
async applyLoopUpdates(focusId, updates) {
|
|
408
408
|
// Re-rank documents
|
|
409
409
|
if (updates.documentReorders.length > 0) {
|
|
410
410
|
try {
|
|
411
411
|
await callApi('loop_document_reorder', {
|
|
412
|
-
entityType: '
|
|
413
|
-
entityId:
|
|
412
|
+
entityType: 'focus',
|
|
413
|
+
entityId: focusId,
|
|
414
414
|
documentIds: updates.documentReorders,
|
|
415
415
|
});
|
|
416
416
|
}
|
|
@@ -434,8 +434,8 @@ export class LoopEngine {
|
|
|
434
434
|
for (const newQuestion of updates.newQuestions) {
|
|
435
435
|
try {
|
|
436
436
|
await callApi('loop_question_create', {
|
|
437
|
-
entityType: '
|
|
438
|
-
entityId:
|
|
437
|
+
entityType: 'focus',
|
|
438
|
+
entityId: focusId,
|
|
439
439
|
text: newQuestion.text,
|
|
440
440
|
questionType: 'generated',
|
|
441
441
|
});
|
|
@@ -448,8 +448,8 @@ export class LoopEngine {
|
|
|
448
448
|
if (updates.personaProposal) {
|
|
449
449
|
try {
|
|
450
450
|
await callApi('loop_persona_propose', {
|
|
451
|
-
entityType: '
|
|
452
|
-
entityId:
|
|
451
|
+
entityType: 'focus',
|
|
452
|
+
entityId: focusId,
|
|
453
453
|
proposedContent: updates.personaProposal,
|
|
454
454
|
});
|
|
455
455
|
}
|
|
@@ -459,19 +459,19 @@ export class LoopEngine {
|
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
461
|
/**
|
|
462
|
-
* Handle a lifecycle event from the
|
|
463
|
-
* Marks the
|
|
462
|
+
* Handle a lifecycle event from the focus engine.
|
|
463
|
+
* Marks the focus for immediate re-evaluation on the next poll cycle.
|
|
464
464
|
*/
|
|
465
465
|
handleLifecycleEvent(event) {
|
|
466
466
|
const triggers = this.loopConfig.eventTriggers;
|
|
467
467
|
// Check if this event type is enabled
|
|
468
468
|
const eventEnabled = (event.type === 'delivery_completed' && triggers.deliveryCompleted) ||
|
|
469
|
-
(event.type === '
|
|
469
|
+
(event.type === 'focus_status_changed' && triggers.focusStatusChanged) ||
|
|
470
470
|
(event.type === 'review_completed' && triggers.reviewCompleted);
|
|
471
471
|
if (!eventEnabled)
|
|
472
472
|
return;
|
|
473
|
-
this.
|
|
474
|
-
console.log(`[Loop] Event trigger: ${event.type} for
|
|
473
|
+
this.triggeredFocuses.add(event.focusId);
|
|
474
|
+
console.log(`[Loop] Event trigger: ${event.type} for focus ${event.focusId.slice(0, 8)}${event.detail ? ` (${event.detail})` : ''}`);
|
|
475
475
|
}
|
|
476
476
|
/**
|
|
477
477
|
* Schedule the next poll cycle using adaptive interval.
|
|
@@ -479,7 +479,7 @@ export class LoopEngine {
|
|
|
479
479
|
scheduleNextPoll() {
|
|
480
480
|
if (this.shuttingDown)
|
|
481
481
|
return;
|
|
482
|
-
const intervalMs = this.
|
|
482
|
+
const intervalMs = this.activeFocusCount > 0
|
|
483
483
|
? this.loopConfig.activeIntervalMs
|
|
484
484
|
: this.loopConfig.idleIntervalMs;
|
|
485
485
|
this.pollTimeout = setTimeout(async () => {
|
package/dist/loop-engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-engine.js","sourceRoot":"","sources":["../src/loop-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop-engine.js","sourceRoot":"","sources":["../src/loop-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/loop-event-bus.d.ts
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
* Loop Event Bus -- lightweight pub/sub for lifecycle events that trigger
|
|
3
3
|
* Loop Agent re-evaluation.
|
|
4
4
|
*
|
|
5
|
-
* The
|
|
5
|
+
* The focus engine emits events when deliveries complete, focuses change,
|
|
6
6
|
* or reviews finish. The Loop Engine subscribes and schedules immediate
|
|
7
|
-
* re-evaluation for the affected
|
|
7
|
+
* re-evaluation for the affected focus (subject to debounce).
|
|
8
8
|
*
|
|
9
9
|
* Singleton pattern: both emitter and subscriber import this module.
|
|
10
10
|
*/
|
|
11
|
-
export type LoopTriggerEventType = 'delivery_completed' | '
|
|
11
|
+
export type LoopTriggerEventType = 'delivery_completed' | 'focus_status_changed' | 'review_completed';
|
|
12
12
|
export interface LoopTriggerEvent {
|
|
13
13
|
type: LoopTriggerEventType;
|
|
14
|
-
|
|
14
|
+
focusId: string;
|
|
15
15
|
/** Optional context about what triggered the event. */
|
|
16
16
|
detail?: string;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Emit a lifecycle event that may trigger Loop Agent re-evaluation.
|
|
20
|
-
* Called from
|
|
20
|
+
* Called from focus engine components (delivery-lifecycle, state-cascade, etc.).
|
|
21
21
|
*/
|
|
22
22
|
export declare function emitLoopTrigger(event: LoopTriggerEvent): void;
|
|
23
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-event-bus.d.ts","sourceRoot":"","sources":["../src/loop-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,
|
|
1
|
+
{"version":3,"file":"loop-event-bus.d.ts","sourceRoot":"","sources":["../src/loop-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAKpF"}
|
package/dist/loop-event-bus.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Loop Event Bus -- lightweight pub/sub for lifecycle events that trigger
|
|
3
3
|
* Loop Agent re-evaluation.
|
|
4
4
|
*
|
|
5
|
-
* The
|
|
5
|
+
* The focus engine emits events when deliveries complete, focuses change,
|
|
6
6
|
* or reviews finish. The Loop Engine subscribes and schedules immediate
|
|
7
|
-
* re-evaluation for the affected
|
|
7
|
+
* re-evaluation for the affected focus (subject to debounce).
|
|
8
8
|
*
|
|
9
9
|
* Singleton pattern: both emitter and subscriber import this module.
|
|
10
10
|
*/
|
|
@@ -17,7 +17,7 @@ bus.setMaxListeners(10);
|
|
|
17
17
|
const LOOP_TRIGGER_EVENT = 'loop:trigger';
|
|
18
18
|
/**
|
|
19
19
|
* Emit a lifecycle event that may trigger Loop Agent re-evaluation.
|
|
20
|
-
* Called from
|
|
20
|
+
* Called from focus engine components (delivery-lifecycle, state-cascade, etc.).
|
|
21
21
|
*/
|
|
22
22
|
export function emitLoopTrigger(event) {
|
|
23
23
|
bus.emit(LOOP_TRIGGER_EVENT, event);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* LLM client for loop data updates.
|
|
3
3
|
*
|
|
4
4
|
* Calls the Anthropic API using the organization's LLM secret
|
|
5
|
-
* (fetched via edge function RPC). One call per
|
|
5
|
+
* (fetched via edge function RPC). One call per focus per cycle maximum.
|
|
6
6
|
*/
|
|
7
7
|
import type { LoopUpdatePrompt } from './loop-prompt-builder.js';
|
|
8
8
|
/**
|
package/dist/loop-llm-client.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* LLM client for loop data updates.
|
|
3
3
|
*
|
|
4
4
|
* Calls the Anthropic API using the organization's LLM secret
|
|
5
|
-
* (fetched via edge function RPC). One call per
|
|
5
|
+
* (fetched via edge function RPC). One call per focus per cycle maximum.
|
|
6
6
|
*/
|
|
7
7
|
import { callApi } from './queries/shared.js';
|
|
8
8
|
// ---------------------------------------------------------------------------
|
package/dist/loop-variance.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export interface VarianceResult {
|
|
|
81
81
|
*
|
|
82
82
|
* @param intent - Loop data (documents, questions, answers, persona)
|
|
83
83
|
* @param reality - Reality metrics and projections
|
|
84
|
-
* @param targetDate -
|
|
84
|
+
* @param targetDate - Focus target date (ISO string or null)
|
|
85
85
|
* @param previousVariance - Previous variance result for trend computation (optional)
|
|
86
86
|
* @returns Structured variance result
|
|
87
87
|
*/
|
package/dist/loop-variance.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @param intent - Loop data (documents, questions, answers, persona)
|
|
14
14
|
* @param reality - Reality metrics and projections
|
|
15
|
-
* @param targetDate -
|
|
15
|
+
* @param targetDate - Focus target date (ISO string or null)
|
|
16
16
|
* @param previousVariance - Previous variance result for trend computation (optional)
|
|
17
17
|
* @returns Structured variance result
|
|
18
18
|
*/
|
package/dist/merge-detector.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Merge detection for
|
|
2
|
+
* Merge detection for focus branches.
|
|
3
3
|
*
|
|
4
4
|
* Scans the integration branch for merge commits that originated from
|
|
5
|
-
*
|
|
6
|
-
* product-api so they appear in the
|
|
5
|
+
* focus worktree branches. Records newly detected merges via the
|
|
6
|
+
* product-api so they appear in the focus commit history.
|
|
7
7
|
*
|
|
8
8
|
* Called from the daemon poll loop. Uses fire-and-forget recording
|
|
9
9
|
* to avoid blocking the poll cycle.
|
|
10
10
|
*/
|
|
11
11
|
import type { DaemonConfig } from './types.js';
|
|
12
12
|
/**
|
|
13
|
-
* Detect new merge commits for all active
|
|
13
|
+
* Detect new merge commits for all active focuses.
|
|
14
14
|
*
|
|
15
|
-
* For each
|
|
15
|
+
* For each focus with a known worktree branch, scans the integration
|
|
16
16
|
* branch for merge commits from that branch. Records any new merges
|
|
17
17
|
* via the product-api with merged_by='detected'.
|
|
18
18
|
*
|
|
19
19
|
* Called from the poll loop in listener.ts.
|
|
20
20
|
*/
|
|
21
|
-
export declare function
|
|
21
|
+
export declare function detectFocusMerges(config: DaemonConfig): Promise<void>;
|
|
22
22
|
//# sourceMappingURL=merge-detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-detector.d.ts","sourceRoot":"","sources":["../src/merge-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoM/C;;;;;;;;GAQG;AACH,wBAAsB,
|
|
1
|
+
{"version":3,"file":"merge-detector.d.ts","sourceRoot":"","sources":["../src/merge-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoM/C;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE3E"}
|