@telora/daemon 0.19.14 → 0.19.17

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/build-info.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "commitSha": "749db6f01",
3
- "builtAt": "2026-06-30T02:49:47.662Z",
2
+ "commitSha": "a66c844dd",
3
+ "builtAt": "2026-06-30T10:45:04.804Z",
4
4
  "expectedMigrations": [
5
5
  "20250829113330_create_org_nodes_table.sql",
6
6
  "20250829113402_fix_function_security_search_path.sql",
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * @module focus-loop
19
19
  */
20
- import { type FocusPhase, type FocusPhaseOutcome, type FocusCycleEvaluation } from './queries/focus-cycle-evaluations.js';
20
+ import { createFocusCycleEvaluation, getRecentFocusCycleEvaluation, type FocusPhase, type FocusPhaseOutcome, type FocusCycleEvaluation } from './queries/focus-cycle-evaluations.js';
21
21
  import { type ApplyRatifiedResult } from './realign-apply.js';
22
22
  import { type AuditPhaseResult } from './audit-phase.js';
23
23
  import type { FocusDeliveryInfo } from './types.js';
@@ -26,6 +26,8 @@ export interface FocusLoopDeps {
26
26
  getFocusDeliveries: (focusId: string) => Promise<FocusDeliveryInfo[]>;
27
27
  applyRatifiedProposals: (focusId: string) => Promise<ApplyRatifiedResult>;
28
28
  runAuditPhase: (focusId: string) => Promise<AuditPhaseResult>;
29
+ getRecentFocusCycleEvaluation: typeof getRecentFocusCycleEvaluation;
30
+ createFocusCycleEvaluation: typeof createFocusCycleEvaluation;
29
31
  }
30
32
  /** Decide which phase to run next given the most recent evaluation row. */
31
33
  export declare function nextPhase(prev: FocusCycleEvaluation | null): {
@@ -1 +1 @@
1
- {"version":3,"file":"focus-loop.d.ts","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtE,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1E,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/D;AAuBD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAqBvG;AAMD,UAAU,WAAW;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAeD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAA2B,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBjH;AA4ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAA2B,GAAG,OAAO,CAAC,WAAW,CAAC,CA8B/G;AAyCD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,aAA2B,GAChC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAoCtC"}
1
+ {"version":3,"file":"focus-loop.d.ts","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtE,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1E,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9D,6BAA6B,EAAE,OAAO,6BAA6B,CAAC;IACpE,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;CAC/D;AAyBD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAqBvG;AAMD,UAAU,WAAW;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAeD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAA2B,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBjH;AA4ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAA2B,GAAG,OAAO,CAAC,WAAW,CAAC,CA8B/G;AAyCD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,aAA2B,GAChC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAoCtC"}
@@ -25,6 +25,8 @@ const defaultDeps = {
25
25
  getFocusDeliveries: defaultGetFocusDeliveries,
26
26
  applyRatifiedProposals: (focusId) => defaultApplyRatifiedProposals(focusId),
27
27
  runAuditPhase: (focusId) => defaultRunAuditPhase(focusId),
28
+ getRecentFocusCycleEvaluation,
29
+ createFocusCycleEvaluation,
28
30
  };
29
31
  // ---------------------------------------------------------------------------
30
32
  // Phase ordering
@@ -258,10 +260,10 @@ const PHASE_RUNNERS = {
258
260
  * if the loop is on a terminal evaluation row that has not changed.
259
261
  */
260
262
  export async function runFocusLoopOnce(focusId, deps = defaultDeps) {
261
- const prev = await getRecentFocusCycleEvaluation(focusId);
263
+ const prev = await deps.getRecentFocusCycleEvaluation(focusId);
262
264
  const { phase, cycleNumber } = nextPhase(prev);
263
265
  if (cycleNumber > MAX_FOCUS_ITERATIONS) {
264
- return await createFocusCycleEvaluation({
266
+ return await deps.createFocusCycleEvaluation({
265
267
  focusId,
266
268
  cycleNumber,
267
269
  phase,
@@ -279,7 +281,7 @@ export async function runFocusLoopOnce(focusId, deps = defaultDeps) {
279
281
  prev.outcome === result.outcome) {
280
282
  return null;
281
283
  }
282
- return await createFocusCycleEvaluation({
284
+ return await deps.createFocusCycleEvaluation({
283
285
  focusId,
284
286
  cycleNumber,
285
287
  phase,
@@ -1 +1 @@
1
- {"version":3,"file":"focus-loop.js","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus-loop.js","sourceRoot":"","sources":["../src/focus-loop.ts"],"names":[],"mappings":"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"}
@@ -36,4 +36,14 @@ export declare function readWorktreeHeadSha(worktreePath: string): string | null
36
36
  * to start scanning from.
37
37
  */
38
38
  export declare function scanGitActivity(repoPath: string, since: string): GitActivityBucket[];
39
+ /**
40
+ * Pure parser/bucketer for `git log --numstat --format=COMMIT:%H %aI` output.
41
+ *
42
+ * Extracted from scanGitActivity so the parse + hour-bucketing logic can be
43
+ * tested without a git process. Handles: COMMIT header lines (hash + author
44
+ * date), numstat lines, binary-file entries (`-\t-`) which are skipped, and
45
+ * empty/garbage input. Buckets are floored to the hour and returned sorted
46
+ * ascending by intervalStart.
47
+ */
48
+ export declare function bucketGitActivity(output: string): GitActivityBucket[];
39
49
  //# sourceMappingURL=git-activity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-activity.d.ts","sourceRoot":"","sources":["../src/git-activity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvE;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,iBAAiB,EAAE,CAkFrB"}
1
+ {"version":3,"file":"git-activity.d.ts","sourceRoot":"","sources":["../src/git-activity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvE;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,iBAAiB,EAAE,CAYrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAuErE"}
@@ -58,7 +58,18 @@ export function scanGitActivity(repoPath, since) {
58
58
  if (!result.success) {
59
59
  return [];
60
60
  }
61
- const output = result.output;
61
+ return bucketGitActivity(result.output ?? '');
62
+ }
63
+ /**
64
+ * Pure parser/bucketer for `git log --numstat --format=COMMIT:%H %aI` output.
65
+ *
66
+ * Extracted from scanGitActivity so the parse + hour-bucketing logic can be
67
+ * tested without a git process. Handles: COMMIT header lines (hash + author
68
+ * date), numstat lines, binary-file entries (`-\t-`) which are skipped, and
69
+ * empty/garbage input. Buckets are floored to the hour and returned sorted
70
+ * ascending by intervalStart.
71
+ */
72
+ export function bucketGitActivity(output) {
62
73
  if (!output) {
63
74
  return [];
64
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git-activity.js","sourceRoot":"","sources":["../src/git-activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-activity.js","sourceRoot":"","sources":["../src/git-activity.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,27 @@
8
8
  *
9
9
  * Called from the daemon poll loop alongside other periodic checks.
10
10
  */
11
- import type { DaemonConfig } from './types.js';
11
+ import type { DaemonConfig, GitState } from './types.js';
12
+ /** Which branch class a containment probe targets, in descending state priority. */
13
+ export type ContainmentTarget = 'remote' | 'main' | 'integration';
14
+ /**
15
+ * Decide the forward git state to report for a delivery, given its current
16
+ * state and a lazy containment probe.
17
+ *
18
+ * Pure classification core extracted from detectGitStates so the
19
+ * forward-only / highest-state-first / no-downgrade semantics can be tested
20
+ * deterministically without a git process:
21
+ * - Probes in descending priority order (remote -> main -> integration) and
22
+ * stops at the first hit (so detectGitStates issues at most one extra git
23
+ * call per delivery, never three).
24
+ * - A state class is only considered when the current state's priority is
25
+ * strictly below it -- this is what prevents a DOWNGRADE (e.g. a delivery
26
+ * already pushed_to_remote returns null and is never probed).
27
+ *
28
+ * Returns the GitState to report, or null when nothing should change.
29
+ * `isContainedIn(target)` is invoked lazily and only for eligible targets.
30
+ */
31
+ export declare function decideForwardGitState(currentState: string | null | undefined, isContainedIn: (target: ContainmentTarget) => boolean): GitState | null;
12
32
  /**
13
33
  * Detect and update git states for deliveries based on branch containment.
14
34
  *
@@ -1 +1 @@
1
- {"version":3,"file":"git-state-detector.d.ts","sourceRoot":"","sources":["../src/git-state-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AAmFzD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HzE"}
1
+ {"version":3,"file":"git-state-detector.d.ts","sourceRoot":"","sources":["../src/git-state-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoEzD,oFAAoF;AACpF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,aAAa,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,GACpD,QAAQ,GAAG,IAAI,CAajB;AAiBD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GzE"}
@@ -63,6 +63,36 @@ const GIT_STATE_PRIORITY = {
63
63
  'merged_to_main': 6,
64
64
  'pushed_to_remote': 7,
65
65
  };
66
+ /**
67
+ * Decide the forward git state to report for a delivery, given its current
68
+ * state and a lazy containment probe.
69
+ *
70
+ * Pure classification core extracted from detectGitStates so the
71
+ * forward-only / highest-state-first / no-downgrade semantics can be tested
72
+ * deterministically without a git process:
73
+ * - Probes in descending priority order (remote -> main -> integration) and
74
+ * stops at the first hit (so detectGitStates issues at most one extra git
75
+ * call per delivery, never three).
76
+ * - A state class is only considered when the current state's priority is
77
+ * strictly below it -- this is what prevents a DOWNGRADE (e.g. a delivery
78
+ * already pushed_to_remote returns null and is never probed).
79
+ *
80
+ * Returns the GitState to report, or null when nothing should change.
81
+ * `isContainedIn(target)` is invoked lazily and only for eligible targets.
82
+ */
83
+ export function decideForwardGitState(currentState, isContainedIn) {
84
+ const currentPriority = GIT_STATE_PRIORITY[currentState ?? ''] ?? -1;
85
+ if (currentPriority < GIT_STATE_PRIORITY['pushed_to_remote'] && isContainedIn('remote')) {
86
+ return 'pushed_to_remote';
87
+ }
88
+ if (currentPriority < GIT_STATE_PRIORITY['merged_to_main'] && isContainedIn('main')) {
89
+ return 'merged_to_main';
90
+ }
91
+ if (currentPriority < GIT_STATE_PRIORITY['merged_to_integration'] && isContainedIn('integration')) {
92
+ return 'merged_to_integration';
93
+ }
94
+ return null;
95
+ }
66
96
  /**
67
97
  * Check if a commit SHA is an ancestor of (i.e., contained in) a branch.
68
98
  *
@@ -167,28 +197,17 @@ export async function detectGitStates(config) {
167
197
  for (const delivery of deliveries) {
168
198
  if (!delivery.mergeCommitSha)
169
199
  continue;
170
- const currentPriority = GIT_STATE_PRIORITY[delivery.gitState ?? ''] ?? -1;
171
200
  const sha = delivery.mergeCommitSha;
172
- // Check highest state first: pushed_to_remote
173
- if (currentPriority < GIT_STATE_PRIORITY['pushed_to_remote']) {
174
- if (isContainedIn(sha, `origin/${defaultBranch}`, repoPath)) {
175
- reportGitState(delivery.id, 'pushed_to_remote').catch(err => console.warn(`[git-state-detector] pushed_to_remote failed for ${delivery.id}:`, err.message));
176
- continue;
177
- }
178
- }
179
- // Check: merged_to_main
180
- if (currentPriority < GIT_STATE_PRIORITY['merged_to_main']) {
181
- if (isContainedIn(sha, defaultBranch, repoPath)) {
182
- reportGitState(delivery.id, 'merged_to_main').catch(err => console.warn(`[git-state-detector] merged_to_main failed for ${delivery.id}:`, err.message));
183
- continue;
184
- }
185
- }
186
- // Check: merged_to_integration
187
- if (currentPriority < GIT_STATE_PRIORITY['merged_to_integration']) {
188
- if (isContainedIn(sha, integrationBranch, repoPath)) {
189
- reportGitState(delivery.id, 'merged_to_integration').catch(err => console.warn(`[git-state-detector] merged_to_integration failed for ${delivery.id}:`, err.message));
190
- continue;
191
- }
201
+ const branchFor = {
202
+ remote: `origin/${defaultBranch}`,
203
+ main: defaultBranch,
204
+ integration: integrationBranch,
205
+ };
206
+ // Decide the highest forward state; probes containment lazily in priority
207
+ // order and never downgrades. Returns null when no state change applies.
208
+ const newState = decideForwardGitState(delivery.gitState, (target) => isContainedIn(sha, branchFor[target], repoPath));
209
+ if (newState) {
210
+ reportGitState(delivery.id, newState).catch(err => console.warn(`[git-state-detector] ${newState} failed for ${delivery.id}:`, err.message));
192
211
  }
193
212
  }
194
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git-state-detector.js","sourceRoot":"","sources":["../src/git-state-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-state-detector.js","sourceRoot":"","sources":["../src/git-state-detector.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,35 @@ export declare function startDeliveryListener(): void;
27
27
  * Kept for API compatibility with the original implementation.
28
28
  */
29
29
  export declare function startSessionListener(): void;
30
+ /**
31
+ * The per-focus spawn-gate decision -- the heart of the event/advance loop
32
+ * dispatch. Given a single ready focus's resolved gate state, decide what the
33
+ * processReadyFocuses loop should do with it. Extracted as a pure function so
34
+ * the dispatch ordering (which a regression here turns into a missed spawn, a
35
+ * double-spawn, or a capacity-overrun) can be tested directly.
36
+ *
37
+ * Order matters and mirrors the original inline checks exactly:
38
+ * 1. unknown role -> skip this focus (logged error)
39
+ * 2. already has a team -> skip (do not double-spawn)
40
+ * 3. in spawn cooldown -> skip (recently torn down)
41
+ * 4. at total capacity -> STOP the whole loop (break)
42
+ * 5. otherwise -> spawn
43
+ *
44
+ * The capacity check reads the LIVE active-team count, so the caller passes a
45
+ * freshly-sampled count per focus (a successful spawn raises it for the next
46
+ * focus; a skipped spawn does not).
47
+ */
48
+ export type FocusSpawnAction = 'spawn' | 'skip_unknown_role' | 'skip_active_team' | 'skip_cooldown' | 'stop_capacity';
49
+ export interface FocusSpawnGate {
50
+ /** Whether the focus's assigned_agent_role_id resolves to a known role. */
51
+ hasRole: boolean;
52
+ hasActiveTeam: boolean;
53
+ inSpawnCooldown: boolean;
54
+ /** Live count of active teams as of this focus's turn. */
55
+ activeTeamCount: number;
56
+ maxTotalSessions: number;
57
+ }
58
+ export declare function decideFocusSpawn(gate: FocusSpawnGate): FocusSpawnAction;
30
59
  /**
31
60
  * Process any focuses ready for agent work.
32
61
  *
@@ -1 +1 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,YAAY,CAAC;AAsC1D;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AA8BD;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAqF5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6JzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CA0GhE;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoIxD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAUlD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,YAAY,CAAC;AAsC1D;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AA8BD;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAqF5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4KzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CA0GhE;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoIxD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAUlD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
package/dist/listener.js CHANGED
@@ -222,6 +222,17 @@ export function startSessionListener() {
222
222
  // In polling mode, session changes are handled by checking ready focuses
223
223
  console.log('Session monitoring via polling (included in focus polling)');
224
224
  }
225
+ export function decideFocusSpawn(gate) {
226
+ if (!gate.hasRole)
227
+ return 'skip_unknown_role';
228
+ if (gate.hasActiveTeam)
229
+ return 'skip_active_team';
230
+ if (gate.inSpawnCooldown)
231
+ return 'skip_cooldown';
232
+ if (gate.activeTeamCount >= gate.maxTotalSessions)
233
+ return 'stop_capacity';
234
+ return 'spawn';
235
+ }
225
236
  /**
226
237
  * Process any focuses ready for agent work.
227
238
  *
@@ -303,13 +314,21 @@ export async function processReadyFocuses() {
303
314
  console.log(`Found ${readyFocuses.length} ready focuses${productLabel}`);
304
315
  for (const focus of readyFocuses) {
305
316
  const role = roles.get(focus.assigned_agent_role_id);
306
- if (!role) {
317
+ // Resolve the per-focus spawn-gate decision (pure; see decideFocusSpawn).
318
+ // The capacity input is the LIVE team count sampled this iteration, so a
319
+ // spawn earlier in this loop is reflected for the next focus.
320
+ const action = decideFocusSpawn({
321
+ hasRole: role !== undefined,
322
+ hasActiveTeam: hasActiveTeam(focus.focus_id),
323
+ inSpawnCooldown: isInSpawnCooldown(focus.focus_id),
324
+ activeTeamCount: getActiveTeamCount(),
325
+ maxTotalSessions: config.maxTotalSessions,
326
+ });
327
+ if (action === 'skip_unknown_role') {
307
328
  console.error(`Unknown agent role: ${focus.assigned_agent_role_id}`);
308
329
  continue;
309
330
  }
310
- const isRearm = focus.answer_rearm_requested_at != null;
311
- // Check if we already have an active team for this focus
312
- if (hasActiveTeam(focus.focus_id)) {
331
+ if (action === 'skip_active_team') {
313
332
  // Focus is active -- clear idle state so we re-log if it goes idle again
314
333
  idleLoggedFocuses.delete(focus.focus_id);
315
334
  // A re-arm flag may have landed while a team is up. Do NOT clear it here:
@@ -321,15 +340,20 @@ export async function processReadyFocuses() {
321
340
  // below (one answer -> one re-spawn).
322
341
  continue;
323
342
  }
324
- // Check spawn cooldown: skip focuses that were recently torn down
325
- if (isInSpawnCooldown(focus.focus_id)) {
343
+ // Skip focuses that were recently torn down (spawn cooldown).
344
+ if (action === 'skip_cooldown') {
326
345
  continue;
327
346
  }
328
- // Check total capacity
329
- if (getActiveTeamCount() >= config.maxTotalSessions) {
347
+ // Total capacity reached -- stop the whole loop, not just this focus.
348
+ if (action === 'stop_capacity') {
330
349
  console.log(`Total session limit reached, stopping`);
331
350
  break;
332
351
  }
352
+ // action === 'spawn'. role is guaranteed defined (hasRole was true);
353
+ // this guard narrows the type and is otherwise unreachable.
354
+ if (!role)
355
+ continue;
356
+ const isRearm = focus.answer_rearm_requested_at != null;
333
357
  // Clear idle state before spawn attempt -- if spawn succeeds,
334
358
  // the focus is active. If it skips (no actionable deliveries),
335
359
  // spawnFocusTeam logs the skip and we mark it idle here.
@@ -1 +1 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAClI,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,0EAA0E;AAC1E,iFAAiF;AACjF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE5C,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,6DAA6D;AAC7D,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,IAAI,MAAM,GAAwB,IAAI,CAAC;AACvC,MAAM,KAAK,GAA2B,IAAI,GAAG,EAAE,CAAC;AAChD,IAAI,YAAY,GAA0C,IAAI,CAAC;AAS/D,IAAI,SAAS,GAAc,MAAM,CAAC;AAElC,yDAAyD;AACzD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,kEAAkE;AAClE,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAC7D,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAE3B,mFAAmF;AACnF,IAAI,8BAA8B,GAAG,CAAC,CAAC;AACvC,MAAM,4BAA4B,GAAG,EAAE,CAAC,CAAC,qCAAqC;AAE9E,uEAAuE;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAA0B;IAC3D,MAAM,GAAG,YAAY,CAAC;IAEtB,iBAAiB;IACjB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC;QAEhD,4DAA4D;QAC5D,oEAAoE;QACpE,EAAE;QACF,4DAA4D;QAC5D,iEAAiE;QACjE,gEAAgE;QAChE,kEAAkE;QAClE,iEAAiE;QACjE,+DAA+D;QAC/D,8DAA8D;QAC9D,UAAU;QACV,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,yBAAyB;wBAAE,SAAS;oBAC/C,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;wBAC9B,kBAAkB,EAAE,CAAC;wBACrB,SAAS;oBACX,CAAC;oBACD,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBACxE,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,0DAA0D,OAAO,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,kDAAkD,WAAW,iBAAiB,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,kCAAkC,kBAAkB,kEAAkE,CAAC,CAAC;QACtI,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAI,KAAe,CAAC,OAAO,IAAI,EAAE,CAAC;QAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,oDAAoD,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACb,0FAA0F;kBACxF,0FAA0F;kBAC1F,0FAA0F;kBAC1F,+DAA+D,CAClE,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,gBAAgB;IAChB,mBAAmB,EAAE,CAAC;IAEtB,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,YAAY,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE;QACrC,KAAK,MAAM,OAAO,IAAI,MAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,oBAAoB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC;YACnC,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC;YACnC,MAAM,kCAAkC,CAAC,EAAE,CAAC,CAAC;YAC7C,wEAAwE;YACxE,0DAA0D;YAC1D,sEAAsE;YACtE,kFAAkF;YAClF,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACjC,wEAAwE;YACxE,yEAAyE;YACzE,6EAA6E;YAC7E,mDAAmD;YACnD,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC9B,4EAA4E;YAC5E,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAChC,uEAAuE;YACvE,yEAAyE;YACzE,oDAAoD;YACpD,MAAM,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACrC,6EAA6E;YAC7E,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAChC,2EAA2E;YAC3E,sEAAsE;YACtE,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,mEAAmE;QACnE,KAAK,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1C,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAG,GAAa,CAAC,OAAO,CAAC,CAC1E,CAAC;QACF,MAAM,mBAAmB,EAAE,CAAC;QAC5B,MAAM,gCAAgC,CAAC,MAAO,CAAC,CAAC;QAChD,+CAA+C;QAC/C,qEAAqE;QACrE,kEAAkE;QAClE,qEAAqE;QACrE,+DAA+D;QAC/D,MAAM,eAAe,CAAC,MAAO,CAAC,CAAC;QAC/B,kEAAkE;QAClE,oEAAoE;QACpE,uCAAuC;QACvC,MAAM,0BAA0B,EAAE,CAAC;QACnC,gEAAgE;QAChE,oEAAoE;QACpE,gEAAgE;QAChE,sEAAsE;QACtE,+CAA+C;QAC/C,MAAM,gBAAgB,CAAC,MAAO,CAAC,CAAC;QAChC,iDAAiD;QACjD,2DAA2D;QAC3D,sDAAsD;QACtD,oEAAoE;QACpE,iEAAiE;QACjE,yDAAyD;QACzD,MAAM,4BAA4B,CAAC,MAAO,CAAC,CAAC;QAC5C,MAAM,2BAA2B,CAAC,MAAO,CAAC,CAAC;QAC3C,MAAM,eAAe,CAAC,MAAO,CAAC,CAAC;QAC/B,MAAM,iBAAiB,CAAC,MAAO,CAAC,CAAC;QACjC,6EAA6E;QAC7E,4EAA4E;QAC5E,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAC,gCAAgC,gBAAgB,GAAG,IAAI,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,yEAAyE;IACzE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAC5E,CAAC;AAqCD,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,mBAAmB,CAAC;IAC9C,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,kBAAkB,CAAC;IAClD,IAAI,IAAI,CAAC,eAAe;QAAE,OAAO,eAAe,CAAC;IACjD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB;QAAE,OAAO,eAAe,CAAC;IAC1E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,6EAA6E;IAC7E,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAC9D,OAAO;IACT,CAAC;IACD,SAAS,GAAG,YAAY,CAAC;IAEzB,IAAI,CAAC;QACH,sDAAsD;QACtD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,GAAG,yBAAyB,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC5D,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBACD,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,qCAAqC,KAAK,CAAC,IAAI,gBAAgB,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,6CAA8C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,cAAc,EAAE,CAAC;QAEjB,+DAA+D;QAC/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7D,wEAAwE;QACxE,wDAAwD;QAExD,mDAAmD;QACnD,MAAM,YAAY,GAAgD,EAAE,CAAC;QACrE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBACzE,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,wDAAwD,OAAO,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,sEAAsE;QACtE,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC;QAE1C,8DAA8D;QAC9D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEjE,iEAAiE;QACjE,8DAA8D;QAC9D,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9F,MAAM,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,+CAA+C,WAAW,GAAG,CAAC,CAAC;gBACnH,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,6EAA6E;QAC7E,6EAA6E;QAC7E,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CACT,2DAA2D,YAAY,CAAC,MAAM,2CAA2C,CAC1H,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;YAChD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,MAAM,iBAAiB,YAAY,EAAE,CAAC,CAAC;QAEzE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAErD,0EAA0E;YAC1E,yEAAyE;YACzE,8DAA8D;YAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC;gBAC9B,OAAO,EAAE,IAAI,KAAK,SAAS;gBAC3B,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC5C,eAAe,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAClD,eAAe,EAAE,kBAAkB,EAAE;gBACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;aAC1C,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,mBAAmB,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC;gBACrE,SAAS;YACX,CAAC;YAED,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBAClC,yEAAyE;gBACzE,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzC,0EAA0E;gBAC1E,2EAA2E;gBAC3E,uEAAuE;gBACvE,0EAA0E;gBAC1E,yEAAyE;gBACzE,uEAAuE;gBACvE,sCAAsC;gBACtC,SAAS;YACX,CAAC;YAED,8DAA8D;YAC9D,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,sEAAsE;YACtE,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,MAAM;YACR,CAAC;YAED,qEAAqE;YACrE,4DAA4D;YAC5D,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,OAAO,GAAG,KAAK,CAAC,yBAAyB,IAAI,IAAI,CAAC;YAExD,8DAA8D;YAC9D,+DAA+D;YAC/D,yDAAyD;YACzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEzC,kEAAkE;YAClE,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1F,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAEnF,sEAAsE;YACtE,mEAAmE;YACnE,6BAA6B;YAC7B,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,EAAE,cAAc,EAAE,KAAK,CAAC,eAAe,EAAE,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YAEna,yEAAyE;YACzE,4EAA4E;YAC5E,yEAAyE;YACzE,0EAA0E;YAC1E,uEAAuE;YACvE,sEAAsE;YACtE,yBAAyB;YACzB,IAAI,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,MAAM,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACnD,OAAO,CAAC,IAAI,CAAC,iDAAiD,KAAK,CAAC,UAAU,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAC9G,CAAC;YACJ,CAAC;YAED,sEAAsE;YACtE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/C,MAAM,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,UAAU,qEAAqE,WAAW,GAAG,CAAC,CAAC;gBAClJ,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;YAAS,CAAC;QACT,SAAS,GAAG,8BAA8B,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,oBAAoB,EAAE;QAAE,OAAO;IAEnC,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEpC,oEAAoE;IACpE,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgE,CAAC;IACjG,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,qFAAqF,OAAO,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,gDAAgD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,sCAAsC;gBACzG,0DAA0D,CAC3D,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CACV,gDAAgD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,oCAAoC;gBAC7H,iBAAiB,CAClB,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CACV,gDAAgD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,8BAA8B,KAAK,CAAC,sBAAsB,IAAI;gBACvJ,iBAAiB,CAClB,CAAC;YACF,SAAS;QACX,CAAC;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,oEAAoE;QACpE,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,qDAAqD;QACrD,IAAI,MAAM,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,oEAAoE;QACpE,4EAA4E;QAC5E,qCAAqC;QACrC,IAAI,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,wEAAwE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YACzG,MAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEnF,OAAO,CAAC,GAAG,CACT,uCAAuC,KAAK,CAAC,UAAU,gCAAgC;YACvF,qDAAqD,CACtD,CAAC;QACF,MAAM,cAAc,CAAC;YACnB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,KAAK,CAAC,QAAQ;YACvB,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,IAAI;YACJ,cAAc,EAAE,KAAK,CAAC,eAAe;YACrC,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,mBAAmB,EAAE,IAAI;YACzB,gBAAgB,EAAE,KAAK,CAAC,kBAAkB;YAC1C,cAAc,EAAE,KAAK,CAAC,eAAe;YACrC,kBAAkB,EAAE,KAAK,CAAC,oBAAoB;YAC9C,gBAAgB,EAAE,KAAK,CAAC,kBAAkB;SAC3C,CAAC,CAAC;QAEH,4EAA4E;QAC5E,sEAAsE;QACtE,wEAAwE;QACxE,4EAA4E;QAC5E,qEAAqE;QACrE,sDAAsD;QACtD,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;IAEnD,8DAA8D;IAC9D,wEAAwE;IACxE,IAAI,8BAA8B,GAAG,CAAC,EAAE,CAAC;QACvC,wDAAwD;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,4BAA4B,CAAC,CAAC;QAC1F,8BAA8B,EAAE,CAAC;QACjC,IAAI,8BAA8B,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,kBAAkB;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,8BAA8B,yCAAyC,UAAU,UAAU,CAAC,CAAC;IACtI,CAAC;IAED,2DAA2D;IAC3D,MAAM,cAAc,GAAkD,EAAE,CAAC;IACzE,IAAI,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrD,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,2BAA2B;QAC3B,IAAI,8BAA8B,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,iDAAiD,8BAA8B,WAAW,CAAC,CAAC;YACxG,8BAA8B,GAAG,CAAC,CAAC;YACnC,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8BAA8B,EAAE,CAAC;QACjC,SAAS,GAAG,aAAa,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,sDAAsD,8BAA8B,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACjI,OAAO;IACT,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,cAAc,CAAC,MAAM,2CAA2C,CAAC,CAAC;IAEnG,gEAAgE;IAChE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,8DAA8D;QAC9D,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,iEAAiE;QACjE,qEAAqE;QACrE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,qDAAqD;YACrD,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QAED,+DAA+D;QAC/D,gEAAgE;QAChE,oEAAoE;QACpE,EAAE;QACF,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,iFAAiF;QACjF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,oCAAoC;gBAC1D,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;gBACzC,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CACV,oBAAoB,OAAO,CAAC,EAAE,kCAAkC,GAAG,uCAAuC;oBAC1G,WAAW,OAAO,CAAC,QAAQ,IAAI,MAAM,qBAAqB,eAAe,GAAG,CAC7E,CAAC;gBACF,SAAS;YACX,CAAC;YAAC,MAAM,CAAC;gBACP,0EAA0E;YAC5E,CAAC;QACH,CAAC;QAED,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CACV,uCAAuC,OAAO,CAAC,EAAE,GAAG;YACpD,WAAW,OAAO,CAAC,MAAM,SAAS,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;YACtE,SAAS,OAAO,CAAC,QAAQ,IAAI,MAAM,cAAc,OAAO,CAAC,WAAW,IAAI,MAAM,GAAG,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,eAAe,CAAC,MAAM,gCAAgC,CAAC,CAAC;IAExF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAC5C,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAC9B,SAAS,CACP,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;QAC7B,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gEAAgE;QAC7E,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC,EACF,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAC5E,CACF,CACF,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CACX,mCAAmC,eAAe,CAAC,CAAC,CAAC,eAAgB,MAAM,CAAC,MAAgB,CAAC,OAAO,EAAE,CACvG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,YAAY,EAAE,CAAC;QACjB,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5B,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,oBAAoB,EAAE;QAAE,OAAO;IACnC,mBAAmB,EAAE,CAAC;AACxB,CAAC;AAED,mFAAmF;AACnF,6EAA6E;AAC7E,6FAA6F;AAC7F,qFAAqF;AACrF,0FAA0F;AAC1F,yFAAyF"}
@@ -9,6 +9,39 @@
9
9
  * to avoid blocking the poll cycle.
10
10
  */
11
11
  import type { DaemonConfig } from './types.js';
12
+ /**
13
+ * Parsed merge commit from git log.
14
+ */
15
+ export interface DetectedMerge {
16
+ /** The merge commit SHA on the integration branch. */
17
+ mergeCommitSha: string;
18
+ /** ISO timestamp of the merge commit. */
19
+ mergedAt: string;
20
+ /** Git author name of the merge commit. */
21
+ authorName: string;
22
+ /** Git author email of the merge commit. */
23
+ authorEmail: string;
24
+ /** SHAs of commits included in this merge (from second parent). */
25
+ constituentCommitShas: string[];
26
+ }
27
+ /**
28
+ * Pure parse + classification core extracted from findMergeCommitsForBranch.
29
+ *
30
+ * Given the raw `git log --merges --first-parent --format=%H|%aI|%an|%ae|%P`
31
+ * output, the set of commits unique to the focus branch, and a callback that
32
+ * yields the constituent commits for a merge, selects the merges that actually
33
+ * came from this focus. This is the MISCLASSIFICATION-prone logic, isolated so
34
+ * it can be tested without a git process:
35
+ * - malformed lines (< 5 pipe fields) are skipped;
36
+ * - non-merge commits (< 2 parents) are skipped;
37
+ * - a merge is attributed to this focus ONLY when its SECOND parent is a
38
+ * commit unique to the focus branch -- this is what prevents matching an
39
+ * unrelated historical merge from another branch;
40
+ * - constituents are resolved lazily and only for attributed merges.
41
+ *
42
+ * Order is preserved from the input (git returns newest-first).
43
+ */
44
+ export declare function selectFocusMerges(mergeLogOutput: string, focusCommits: ReadonlySet<string>, getConstituents: (firstParent: string, secondParent: string) => string[]): DetectedMerge[];
12
45
  /**
13
46
  * Detect new merge commits for all active focuses.
14
47
  *
@@ -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,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE3E"}
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;AAgB/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EACjC,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,EAAE,GACvE,aAAa,EAAE,CAiCjB;AAwID;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE3E"}
@@ -20,6 +20,53 @@ const GIT_TIMEOUT_MS = 10_000;
20
20
  * Avoids re-scanning the full integration history on every poll cycle.
21
21
  */
22
22
  const lastCheckedMergeSha = new Map();
23
+ /**
24
+ * Pure parse + classification core extracted from findMergeCommitsForBranch.
25
+ *
26
+ * Given the raw `git log --merges --first-parent --format=%H|%aI|%an|%ae|%P`
27
+ * output, the set of commits unique to the focus branch, and a callback that
28
+ * yields the constituent commits for a merge, selects the merges that actually
29
+ * came from this focus. This is the MISCLASSIFICATION-prone logic, isolated so
30
+ * it can be tested without a git process:
31
+ * - malformed lines (< 5 pipe fields) are skipped;
32
+ * - non-merge commits (< 2 parents) are skipped;
33
+ * - a merge is attributed to this focus ONLY when its SECOND parent is a
34
+ * commit unique to the focus branch -- this is what prevents matching an
35
+ * unrelated historical merge from another branch;
36
+ * - constituents are resolved lazily and only for attributed merges.
37
+ *
38
+ * Order is preserved from the input (git returns newest-first).
39
+ */
40
+ export function selectFocusMerges(mergeLogOutput, focusCommits, getConstituents) {
41
+ // If the focus branch has no unique commits, there's nothing to detect.
42
+ if (focusCommits.size === 0)
43
+ return [];
44
+ const lines = mergeLogOutput.trim().split('\n').filter(Boolean);
45
+ const merges = [];
46
+ for (const line of lines) {
47
+ const parts = line.split('|');
48
+ if (parts.length < 5)
49
+ continue;
50
+ const [sha, date, authorName, authorEmail, parentStr] = parts;
51
+ const parents = parentStr.split(' ').filter(Boolean);
52
+ // A merge commit has 2+ parents. The second parent is the merged branch.
53
+ if (parents.length < 2)
54
+ continue;
55
+ const secondParent = parents[1];
56
+ // Only match if the second parent is a commit unique to the focus branch.
57
+ // This prevents matching historical merges from other branches.
58
+ if (!focusCommits.has(secondParent))
59
+ continue;
60
+ merges.push({
61
+ mergeCommitSha: sha,
62
+ mergedAt: date,
63
+ authorName,
64
+ authorEmail,
65
+ constituentCommitShas: getConstituents(parents[0], secondParent),
66
+ });
67
+ }
68
+ return merges;
69
+ }
23
70
  /**
24
71
  * Find merge commits on the integration branch that merged a specific
25
72
  * focus branch.
@@ -56,40 +103,15 @@ function findMergeCommitsForBranch(repoPath, integrationBranch, focusBranch, sin
56
103
  const focusCommits = new Set(branchCommitsResult.success
57
104
  ? branchCommitsResult.output.trim().split('\n').filter(Boolean)
58
105
  : []);
59
- // If the focus branch has no unique commits, there's nothing to detect
60
- if (focusCommits.size === 0)
61
- return [];
62
- const lines = logResult.output.trim().split('\n').filter(Boolean);
63
- const merges = [];
64
- for (const line of lines) {
65
- const parts = line.split('|');
66
- if (parts.length < 5)
67
- continue;
68
- const [sha, date, authorName, authorEmail, parentStr] = parts;
69
- const parents = parentStr.split(' ').filter(Boolean);
70
- // A merge commit has 2+ parents. The second parent is the merged branch.
71
- if (parents.length < 2)
72
- continue;
73
- const secondParent = parents[1];
74
- // Only match if the second parent is a commit unique to the focus branch.
75
- // This prevents matching historical merges from other branches.
76
- if (!focusCommits.has(secondParent))
77
- continue;
78
- // Get constituent commits: all commits reachable from the second parent
79
- // but not from the first parent (i.e., the commits that were merged in).
80
- const constituentResult = runGitSync(['log', '--format=%H', `${parents[0]}..${secondParent}`], repoPath, { timeoutMs: GIT_TIMEOUT_MS });
81
- const constituentCommitShas = constituentResult.success
106
+ // Parse + attribute via the pure core; constituents are resolved lazily for
107
+ // attributed merges only (all commits reachable from the second parent but
108
+ // not the first -- i.e. the commits that were merged in).
109
+ return selectFocusMerges(logResult.output, focusCommits, (firstParent, secondParent) => {
110
+ const constituentResult = runGitSync(['log', '--format=%H', `${firstParent}..${secondParent}`], repoPath, { timeoutMs: GIT_TIMEOUT_MS });
111
+ return constituentResult.success
82
112
  ? constituentResult.output.trim().split('\n').filter(Boolean)
83
113
  : [];
84
- merges.push({
85
- mergeCommitSha: sha,
86
- mergedAt: date,
87
- authorName,
88
- authorEmail,
89
- constituentCommitShas,
90
- });
91
- }
92
- return merges;
114
+ });
93
115
  }
94
116
  /**
95
117
  * Record a detected merge via the product-api.
@@ -1 +1 @@
1
- {"version":3,"file":"merge-detector.js","sourceRoot":"","sources":["../src/merge-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,wEAAwE;AACxE,MAAM,cAAc,GAAG,MAAM,CAAC;AAE9B;;;GAGG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAkBtD;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAChC,QAAgB,EAChB,iBAAyB,EACzB,WAAmB,EACnB,QAAiB;IAEjB,yEAAyE;IACzE,8DAA8D;IAC9D,MAAM,UAAU,GAAG,UAAU,CAC3B,CAAC,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAC9C,QAAQ,EACR,EAAE,SAAS,EAAE,cAAc,EAAE,CAC9B,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAE3C,kEAAkE;IAClE,MAAM,SAAS,GAAG,QAAQ,IAAI,SAAS,CAAC;IAExC,yDAAyD;IACzD,4DAA4D;IAC5D,MAAM,SAAS,GAAG,UAAU,CAC1B;QACE,KAAK;QACL,UAAU;QACV,gBAAgB;QAChB,4BAA4B;QAC5B,GAAG,SAAS,KAAK,iBAAiB,EAAE;KACrC,EACD,QAAQ,EACR,EAAE,SAAS,EAAE,cAAc,EAAE,CAC9B,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,UAAU,CACpC,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,iBAAiB,KAAK,WAAW,EAAE,CAAC,EAC9D,QAAQ,EACR,EAAE,SAAS,EAAE,cAAc,EAAE,CAC9B,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,mBAAmB,CAAC,OAAO;QACzB,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/D,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,uEAAuE;IACvE,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAE/B,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;QAC9D,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErD,yEAAyE;QACzE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEhC,0EAA0E;QAC1E,gEAAgE;QAChE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,SAAS;QAE9C,wEAAwE;QACxE,yEAAyE;QACzE,MAAM,iBAAiB,GAAG,UAAU,CAClC,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC,EACxD,QAAQ,EACR,EAAE,SAAS,EAAE,cAAc,EAAE,CAC9B,CAAC;QACF,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,OAAO;YACrD,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7D,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,CAAC,IAAI,CAAC;YACV,cAAc,EAAE,GAAG;YACnB,QAAQ,EAAE,IAAI;YACd,UAAU;YACV,WAAW;YACX,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,OAAe,EACf,KAAoB;IAEpB,OAAO,CAAC,2BAA2B,EAAE;QACnC,OAAO;QACP,MAAM,EAAE;YACN,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,UAAU,EAAE,KAAK,CAAC,qBAAqB;YACvC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,IAAI;SACjB;KACF,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,wDAAwD;QACxD,oDAAoD;QACpD,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,IAAI,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,KAAK,CACX,+CAA+C,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;gBAClF,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,2CAA2C,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;gBAC9E,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,uBAAuB,CAAC,OAAe;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,kBAAkB,EAClB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CACtB,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qDAAqD;QACrD,mCAAmC;QACnC,OAAO,CAAC,KAAK,CACX,uDAAuD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;YAC9E,GAAI,GAAa,CAAC,OAAO,EAAE,CAC5B,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAoB;IAC1D,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;IAE/C,oCAAoC;IACpC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAEtC,6DAA6D;IAC7D,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,6DAA6D;IAC7D,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY;YAAE,SAAS;QAE5B,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAE3C,uCAAuC;QACvC,MAAM,WAAW,GAAG,UAAU,CAC5B,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EACrC,QAAQ,EACR,EAAE,SAAS,EAAE,cAAc,EAAE,CAC9B,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,SAAS;QAEnC,qEAAqE;QACrE,IAAI,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;QACxE,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,yBAAyB,CACtC,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,OAAO,CAAC,GAAG,CACT,0BAA0B,MAAM,CAAC,MAAM,0BAA0B;YACjE,IAAI,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CACxD,CAAC;QAEF,sCAAsC;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,uDAAuD;QACvD,oEAAoE;QACpE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"merge-detector.js","sourceRoot":"","sources":["../src/merge-detector.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,33 @@ export interface SafeRemoveResult {
47
47
  * Returns structured result so callers can count cleaned/preserved and log.
48
48
  */
49
49
  export declare function safeRemoveFocusWorktree(params: SafeRemoveFocusWorktreeParams): Promise<SafeRemoveResult>;
50
+ /** Minimal active-focus shape needed to derive its expected worktree dir name. */
51
+ export interface ActiveFocusForOrphanScan {
52
+ focus_id: string;
53
+ agent_role_name: string | null;
54
+ focus_name: string;
55
+ }
56
+ /**
57
+ * Identify orphan focus worktree dirs: `agent-*` directories that do NOT
58
+ * correspond to any active focus.
59
+ *
60
+ * Extracted from cleanupOrphanFocusWorktrees because misclassifying a LIVE
61
+ * focus's worktree as an orphan deletes in-flight work -- this is the
62
+ * irreversible decision and must be tested directly. The matching mirrors the
63
+ * spawn-time dir naming (`agent-<role>-<name>-<shortId>`) with a fallback that
64
+ * treats any entry ending in the focus's 8-char short id as belonging to that
65
+ * focus, so a sanitization mismatch can never orphan a live worktree.
66
+ *
67
+ * Only `agent-*` dirs are ever considered orphans; anything else is left alone.
68
+ */
69
+ export declare function identifyOrphanWorktrees(entries: string[], activeFocuses: ActiveFocusForOrphanScan[]): string[];
70
+ /**
71
+ * Parse `git worktree list --porcelain` output into a resolved-path -> branch
72
+ * map. Extracted for direct testing; mirrors the porcelain record format
73
+ * (a `worktree <path>` line, an optional `branch refs/heads/<name>` line, then
74
+ * a blank separator). Detached worktrees (no branch line) are simply absent.
75
+ */
76
+ export declare function parseWorktreeBranches(porcelainOutput: string): Map<string, string>;
50
77
  /**
51
78
  * Clean up orphan focus worktrees on daemon startup.
52
79
  *
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-focus.d.ts","sourceRoot":"","sources":["../src/worktree-focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CA8D3B;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAsHjD"}
1
+ {"version":3,"file":"worktree-focus.d.ts","sourceRoot":"","sources":["../src/worktree-focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CA8D3B;AAID,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,wBAAwB,EAAE,GACxC,MAAM,EAAE,CAuBV;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAclF;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAoFjD"}
@@ -88,6 +88,67 @@ export async function safeRemoveFocusWorktree(params) {
88
88
  }
89
89
  return { removed, merged, mergeError };
90
90
  }
91
+ /**
92
+ * Identify orphan focus worktree dirs: `agent-*` directories that do NOT
93
+ * correspond to any active focus.
94
+ *
95
+ * Extracted from cleanupOrphanFocusWorktrees because misclassifying a LIVE
96
+ * focus's worktree as an orphan deletes in-flight work -- this is the
97
+ * irreversible decision and must be tested directly. The matching mirrors the
98
+ * spawn-time dir naming (`agent-<role>-<name>-<shortId>`) with a fallback that
99
+ * treats any entry ending in the focus's 8-char short id as belonging to that
100
+ * focus, so a sanitization mismatch can never orphan a live worktree.
101
+ *
102
+ * Only `agent-*` dirs are ever considered orphans; anything else is left alone.
103
+ */
104
+ export function identifyOrphanWorktrees(entries, activeFocuses) {
105
+ const activeFocusBranchDirs = new Set();
106
+ for (const s of activeFocuses) {
107
+ const shortId = s.focus_id.slice(0, 8);
108
+ const sanitizedRole = sanitizeGitSegment(s.agent_role_name ?? 'reviewer');
109
+ const sanitizedName = sanitizeGitSegment(s.focus_name);
110
+ const expectedDir = `agent-${sanitizedRole}-${sanitizedName}-${shortId}`;
111
+ if (entries.includes(expectedDir)) {
112
+ activeFocusBranchDirs.add(expectedDir);
113
+ }
114
+ else {
115
+ // Fallback: match by focus ID prefix in case sanitization differs.
116
+ for (const entry of entries) {
117
+ if (entry.endsWith(shortId)) {
118
+ activeFocusBranchDirs.add(entry);
119
+ }
120
+ }
121
+ }
122
+ }
123
+ return entries.filter((entry) => {
124
+ if (!entry.startsWith('agent-'))
125
+ return false;
126
+ return !activeFocusBranchDirs.has(entry);
127
+ });
128
+ }
129
+ /**
130
+ * Parse `git worktree list --porcelain` output into a resolved-path -> branch
131
+ * map. Extracted for direct testing; mirrors the porcelain record format
132
+ * (a `worktree <path>` line, an optional `branch refs/heads/<name>` line, then
133
+ * a blank separator). Detached worktrees (no branch line) are simply absent.
134
+ */
135
+ export function parseWorktreeBranches(porcelainOutput) {
136
+ const pathToBranch = new Map();
137
+ let currentPath = null;
138
+ for (const line of porcelainOutput.split('\n')) {
139
+ if (line.startsWith('worktree ')) {
140
+ currentPath = line.slice('worktree '.length);
141
+ }
142
+ else if (line.startsWith('branch refs/heads/') && currentPath) {
143
+ pathToBranch.set(resolve(currentPath), line.slice('branch refs/heads/'.length));
144
+ currentPath = null;
145
+ }
146
+ else if (line === '') {
147
+ currentPath = null;
148
+ }
149
+ }
150
+ return pathToBranch;
151
+ }
91
152
  // ── Orphan focus worktree cleanup ──────────────────────────────
92
153
  /**
93
154
  * Clean up orphan focus worktrees on daemon startup.
@@ -131,40 +192,17 @@ export async function cleanupOrphanFocusWorktrees(config) {
131
192
  if (entries.length === 0) {
132
193
  return { cleaned, preserved };
133
194
  }
134
- // 2. Query active focuses
135
- let activeFocusBranchDirs;
195
+ // 2. Query active focuses, then 3. identify orphans via the pure classifier.
196
+ let orphanDirs;
136
197
  try {
137
198
  const activeFocusesList = await getActiveFocuses(organizationId, productId);
138
- activeFocusBranchDirs = new Set();
139
- for (const s of activeFocusesList) {
140
- const shortId = s.focus_id.slice(0, 8);
141
- const sanitizedRole = sanitizeGitSegment(s.agent_role_name ?? 'reviewer');
142
- const sanitizedName = sanitizeGitSegment(s.focus_name);
143
- const expectedDir = `agent-${sanitizedRole}-${sanitizedName}-${shortId}`;
144
- if (entries.includes(expectedDir)) {
145
- activeFocusBranchDirs.add(expectedDir);
146
- }
147
- else {
148
- // Fallback: match by focus ID prefix in case sanitization differs
149
- for (const entry of entries) {
150
- if (entry.endsWith(shortId)) {
151
- activeFocusBranchDirs.add(entry);
152
- }
153
- }
154
- }
155
- }
199
+ orphanDirs = identifyOrphanWorktrees(entries, activeFocusesList);
156
200
  }
157
201
  catch (err) {
158
202
  console.warn(`[worktree] Failed to query active focuses for orphan detection: ` +
159
203
  `${err instanceof Error ? err.message : String(err)}. Skipping orphan cleanup.`);
160
204
  return { cleaned, preserved };
161
205
  }
162
- // 3. Identify orphans: agent worktree dirs not matching any active focus
163
- const orphanDirs = entries.filter((entry) => {
164
- if (!entry.startsWith('agent-'))
165
- return false;
166
- return !activeFocusBranchDirs.has(entry);
167
- });
168
206
  if (orphanDirs.length === 0) {
169
207
  console.log('[worktree] No orphan focus worktrees found');
170
208
  return { cleaned, preserved };
@@ -172,22 +210,9 @@ export async function cleanupOrphanFocusWorktrees(config) {
172
210
  console.log(`[worktree] Found ${orphanDirs.length} orphan focus worktree(s)`);
173
211
  // 4. Parse git worktree list to get branch names for each path
174
212
  const worktreeListResult = runGitSync(['worktree', 'list', '--porcelain'], repoPath);
175
- const pathToBranch = new Map();
176
- if (worktreeListResult.success) {
177
- let currentPath = null;
178
- for (const line of worktreeListResult.output.split('\n')) {
179
- if (line.startsWith('worktree ')) {
180
- currentPath = line.slice('worktree '.length);
181
- }
182
- else if (line.startsWith('branch refs/heads/') && currentPath) {
183
- pathToBranch.set(resolve(currentPath), line.slice('branch refs/heads/'.length));
184
- currentPath = null;
185
- }
186
- else if (line === '') {
187
- currentPath = null;
188
- }
189
- }
190
- }
213
+ const pathToBranch = worktreeListResult.success
214
+ ? parseWorktreeBranches(worktreeListResult.output)
215
+ : new Map();
191
216
  // 5. Clean up each orphan via canonical removal path
192
217
  for (const dir of orphanDirs) {
193
218
  const worktreePath = resolve(join(worktreeDir, dir));
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-focus.js","sourceRoot":"","sources":["../src/worktree-focus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-focus.js","sourceRoot":"","sources":["../src/worktree-focus.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telora/daemon",
3
- "version": "0.19.14",
3
+ "version": "0.19.17",
4
4
  "description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
5
5
  "type": "module",
6
6
  "bin": {