@telora/daemon 0.19.28 → 0.19.31

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": "ca90d24f8",
3
- "builtAt": "2026-07-01T15:53:39.318Z",
2
+ "commitSha": "e14d22a15",
3
+ "builtAt": "2026-07-01T20:27:07.749Z",
4
4
  "expectedMigrations": [
5
5
  "20250829113330_create_org_nodes_table.sql",
6
6
  "20250829113402_fix_function_security_search_path.sql",
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Pure classification + planning for SIGHUP config hot-reload.
3
+ *
4
+ * The SIGHUP hot-reload seam historically reconciled ONLY the products array
5
+ * (unified-engine-lifecycle.ts). This module generalizes it: given the live
6
+ * resolved engine config and a freshly-resolved config from the edited
7
+ * daemon.json, it classifies each changed field into one of three buckets --
8
+ *
9
+ * - LIVE-APPLICABLE scalar: a pure-policy value (loop/verification-adjacent
10
+ * thresholds, token/cost limits, log retention, policyFailureMode,
11
+ * maxTotalSessions) that is safe to apply to a running fleet with no
12
+ * team killed. Applied by mutating the shared engine config object in
13
+ * place so the next tick/spawn reads the new value, plus the
14
+ * ResourceGovernor session-cap setters for maxTotalSessions.
15
+ * - RESTART-REQUIRED: an identity field (teloraUrl/trackerId/organizationId/
16
+ * productId) or a bound-resource field (a path, a bound port, a boot-time
17
+ * resource) that cannot change under a live process -- surfaced as a
18
+ * "restart required" warning, exactly as products-only hot-reload already
19
+ * warns for identity changes.
20
+ * - Lacuna sidecar: a transition (start / stop / restart / unchanged) derived
21
+ * from the enabled flag and the bound host/port/source, applied by the
22
+ * lifecycle start/stop helpers (which never touch a running team).
23
+ *
24
+ * Everything here is PURE and side-effect-free: it computes a plan. The apply
25
+ * (process/IO) lives in unified-engine-lifecycle.ts so this layer stays
26
+ * unit-testable without a live daemon or SIGHUP.
27
+ */
28
+ import type { LacunaConfig } from './types.js';
29
+ /**
30
+ * The live-applicable scalar fields of the resolved engine config. These are
31
+ * pure-policy values with no bound OS resource behind them; applying a new
32
+ * value to the running config object is non-disruptive to in-flight teams.
33
+ *
34
+ * `maxTotalSessions` is special-cased downstream: besides the in-place config
35
+ * mutation it drives the ResourceGovernor per-engine limit (setEngineLimit),
36
+ * which is the authoritative concurrency cap the listener gates spawns on.
37
+ */
38
+ export declare const LIVE_APPLICABLE_SCALARS: readonly ["maxTotalSessions", "tokenLimit", "costLimit", "mergeLockTimeoutMs", "mergeLockContentionWarningMs", "policyFailureMode", "logMaxAgeDays", "logMaxTotalBytes", "logMaxFiles"];
39
+ export type LiveApplicableScalar = (typeof LIVE_APPLICABLE_SCALARS)[number];
40
+ /**
41
+ * Fields that CANNOT be applied to a running process. Identity fields re-bind
42
+ * the daemon's connection; bound-resource fields (paths resolved at boot, the
43
+ * OTLP telemetry port, the git worktree root, the integration branch) are
44
+ * captured by long-lived handles. A change here is surfaced as a warning so the
45
+ * operator knows a restart is needed -- never silently ignored, never applied.
46
+ */
47
+ export declare const RESTART_REQUIRED_FIELDS: readonly ["teloraUrl", "trackerId", "organizationId", "productId", "repoPath", "worktreeDir", "integrationBranch", "logDir", "claudeCodePath", "sessionTimeoutMs"];
48
+ export type RestartRequiredField = (typeof RESTART_REQUIRED_FIELDS)[number];
49
+ /** A single changed field, old -> new, for logging. */
50
+ export interface FieldChange {
51
+ field: string;
52
+ oldValue: unknown;
53
+ newValue: unknown;
54
+ }
55
+ /** The computed apply plan for a scalar/identity diff. */
56
+ export interface ConfigChangePlan {
57
+ /** Live-applicable scalar changes, keyed by field, carrying the new value. */
58
+ liveScalars: FieldChange[];
59
+ /** Changes that require a restart (identity / bound-resource). */
60
+ restartRequired: FieldChange[];
61
+ /** True when maxTotalSessions changed -- the caller drives the governor cap. */
62
+ sessionCapChanged: boolean;
63
+ /** The new maxTotalSessions when it changed (else null). */
64
+ newMaxTotalSessions: number | null;
65
+ }
66
+ /** Shape this module reads from a resolved engine config. Loose by design. */
67
+ export type ResolvedConfigLike = Record<string, unknown>;
68
+ /**
69
+ * Classify the scalar/identity diff between the live engine config and a
70
+ * freshly-resolved config from the edited daemon.json. Pure: reads only the
71
+ * two objects, returns a plan. Products and lacuna are handled by their own
72
+ * dedicated paths and are intentionally NOT classified here.
73
+ */
74
+ export declare function classifyConfigChanges(live: ResolvedConfigLike, next: ResolvedConfigLike): ConfigChangePlan;
75
+ /**
76
+ * The Lacuna sidecar lifecycle transition implied by an old -> new config.
77
+ *
78
+ * - `start` -- was disabled, now enabled: launch the sidecar.
79
+ * - `stop` -- was enabled, now disabled: tear the sidecar down.
80
+ * - `restart` -- stays enabled but a BOUND field (host/port/source/upstream/
81
+ * readyTimeout/compress) changed: stop then start so the new
82
+ * binding takes effect. Fail-open by construction downstream.
83
+ * - `unchanged` -- no lifecycle action needed (still disabled, or enabled with
84
+ * no bound-field change).
85
+ */
86
+ export type LacunaTransition = 'start' | 'stop' | 'restart' | 'unchanged';
87
+ /**
88
+ * Compute the sidecar transition from old vs new lacuna config. Pure.
89
+ */
90
+ export declare function computeLacunaTransition(oldLacuna: LacunaConfig, newLacuna: LacunaConfig): LacunaTransition;
91
+ //# sourceMappingURL=config-hot-reload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-hot-reload.d.ts","sourceRoot":"","sources":["../src/config-hot-reload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,yLAU1B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,oKAa1B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,kEAAkE;IAClE,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,gFAAgF;IAChF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,kBAAkB,GACvB,gBAAgB,CA2BlB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AAc1E;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,YAAY,GACtB,gBAAgB,CAOlB"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Pure classification + planning for SIGHUP config hot-reload.
3
+ *
4
+ * The SIGHUP hot-reload seam historically reconciled ONLY the products array
5
+ * (unified-engine-lifecycle.ts). This module generalizes it: given the live
6
+ * resolved engine config and a freshly-resolved config from the edited
7
+ * daemon.json, it classifies each changed field into one of three buckets --
8
+ *
9
+ * - LIVE-APPLICABLE scalar: a pure-policy value (loop/verification-adjacent
10
+ * thresholds, token/cost limits, log retention, policyFailureMode,
11
+ * maxTotalSessions) that is safe to apply to a running fleet with no
12
+ * team killed. Applied by mutating the shared engine config object in
13
+ * place so the next tick/spawn reads the new value, plus the
14
+ * ResourceGovernor session-cap setters for maxTotalSessions.
15
+ * - RESTART-REQUIRED: an identity field (teloraUrl/trackerId/organizationId/
16
+ * productId) or a bound-resource field (a path, a bound port, a boot-time
17
+ * resource) that cannot change under a live process -- surfaced as a
18
+ * "restart required" warning, exactly as products-only hot-reload already
19
+ * warns for identity changes.
20
+ * - Lacuna sidecar: a transition (start / stop / restart / unchanged) derived
21
+ * from the enabled flag and the bound host/port/source, applied by the
22
+ * lifecycle start/stop helpers (which never touch a running team).
23
+ *
24
+ * Everything here is PURE and side-effect-free: it computes a plan. The apply
25
+ * (process/IO) lives in unified-engine-lifecycle.ts so this layer stays
26
+ * unit-testable without a live daemon or SIGHUP.
27
+ */
28
+ /**
29
+ * The live-applicable scalar fields of the resolved engine config. These are
30
+ * pure-policy values with no bound OS resource behind them; applying a new
31
+ * value to the running config object is non-disruptive to in-flight teams.
32
+ *
33
+ * `maxTotalSessions` is special-cased downstream: besides the in-place config
34
+ * mutation it drives the ResourceGovernor per-engine limit (setEngineLimit),
35
+ * which is the authoritative concurrency cap the listener gates spawns on.
36
+ */
37
+ export const LIVE_APPLICABLE_SCALARS = [
38
+ 'maxTotalSessions',
39
+ 'tokenLimit',
40
+ 'costLimit',
41
+ 'mergeLockTimeoutMs',
42
+ 'mergeLockContentionWarningMs',
43
+ 'policyFailureMode',
44
+ 'logMaxAgeDays',
45
+ 'logMaxTotalBytes',
46
+ 'logMaxFiles',
47
+ ];
48
+ /**
49
+ * Fields that CANNOT be applied to a running process. Identity fields re-bind
50
+ * the daemon's connection; bound-resource fields (paths resolved at boot, the
51
+ * OTLP telemetry port, the git worktree root, the integration branch) are
52
+ * captured by long-lived handles. A change here is surfaced as a warning so the
53
+ * operator knows a restart is needed -- never silently ignored, never applied.
54
+ */
55
+ export const RESTART_REQUIRED_FIELDS = [
56
+ // identity
57
+ 'teloraUrl',
58
+ 'trackerId',
59
+ 'organizationId',
60
+ 'productId',
61
+ // bound-resource
62
+ 'repoPath',
63
+ 'worktreeDir',
64
+ 'integrationBranch',
65
+ 'logDir',
66
+ 'claudeCodePath',
67
+ 'sessionTimeoutMs',
68
+ ];
69
+ /**
70
+ * Classify the scalar/identity diff between the live engine config and a
71
+ * freshly-resolved config from the edited daemon.json. Pure: reads only the
72
+ * two objects, returns a plan. Products and lacuna are handled by their own
73
+ * dedicated paths and are intentionally NOT classified here.
74
+ */
75
+ export function classifyConfigChanges(live, next) {
76
+ const liveScalars = [];
77
+ for (const field of LIVE_APPLICABLE_SCALARS) {
78
+ if (!Object.is(live[field], next[field])) {
79
+ liveScalars.push({ field, oldValue: live[field], newValue: next[field] });
80
+ }
81
+ }
82
+ const restartRequired = [];
83
+ for (const field of RESTART_REQUIRED_FIELDS) {
84
+ if (!Object.is(live[field], next[field])) {
85
+ restartRequired.push({ field, oldValue: live[field], newValue: next[field] });
86
+ }
87
+ }
88
+ const capChange = liveScalars.find((c) => c.field === 'maxTotalSessions');
89
+ const newMax = capChange && typeof capChange.newValue === 'number' && Number.isFinite(capChange.newValue)
90
+ ? capChange.newValue
91
+ : null;
92
+ return {
93
+ liveScalars,
94
+ restartRequired,
95
+ sessionCapChanged: capChange !== undefined,
96
+ newMaxTotalSessions: newMax,
97
+ };
98
+ }
99
+ /** Bound fields whose change requires a sidecar restart while it stays enabled. */
100
+ function lacunaBoundFieldsDiffer(a, b) {
101
+ return (a.host !== b.host ||
102
+ a.port !== b.port ||
103
+ a.source !== b.source ||
104
+ a.upstreamBaseUrl !== b.upstreamBaseUrl ||
105
+ a.compressEnabled !== b.compressEnabled ||
106
+ a.readyTimeoutMs !== b.readyTimeoutMs);
107
+ }
108
+ /**
109
+ * Compute the sidecar transition from old vs new lacuna config. Pure.
110
+ */
111
+ export function computeLacunaTransition(oldLacuna, newLacuna) {
112
+ if (!oldLacuna.enabled && newLacuna.enabled)
113
+ return 'start';
114
+ if (oldLacuna.enabled && !newLacuna.enabled)
115
+ return 'stop';
116
+ if (oldLacuna.enabled && newLacuna.enabled) {
117
+ return lacunaBoundFieldsDiffer(oldLacuna, newLacuna) ? 'restart' : 'unchanged';
118
+ }
119
+ return 'unchanged';
120
+ }
121
+ //# sourceMappingURL=config-hot-reload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-hot-reload.js","sourceRoot":"","sources":["../src/config-hot-reload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Drain-to-idle teardown controller.
3
+ *
4
+ * A CLI restart/stop/update (and a restart-only config change) should not kill
5
+ * the running fleet mid-work. Instead it should ARM intake-drain (no new focus
6
+ * team spawns) and DEFER the actual teardown until the daemon reaches a
7
+ * zero-team boundary -- the exact `isBatchSafeIdle` seam the routine
8
+ * auto-updater already waits for. A `--now` escape forces the immediate
9
+ * teardown (today's SIGTERM behavior) for an operator who cannot wait.
10
+ *
11
+ * This module is the pure controller: it takes the idle gate, the drain arm,
12
+ * and the teardown thunk as injected seams, so it unit-tests without a live
13
+ * daemon, real teams, or signals. The daemon wires it to the live
14
+ * `isBatchSafeIdle` gate + `armDrainForUpdate` + the graceful `shutdown()`.
15
+ */
16
+ /** Injected seams + policy for {@link runDrainToIdleTeardown}. */
17
+ export interface DrainToIdleOptions {
18
+ /**
19
+ * Force immediate teardown -- skip the drain wait entirely (the `--now`
20
+ * escape). Preserves today's behavior for an operator who cannot wait.
21
+ */
22
+ immediate?: boolean;
23
+ /** Batch-safe idle gate: true when no focus team is in flight (zero-team boundary). */
24
+ isBatchSafeIdle: () => boolean;
25
+ /** Arm intake drain so no new focus team spawns while we wait. */
26
+ armDrain: () => void;
27
+ /** Release intake drain (best-effort, e.g. if teardown is aborted). Optional. */
28
+ releaseDrain?: () => void;
29
+ /** The teardown to run once the boundary is reached (the daemon's shutdown()). */
30
+ teardown: () => void | Promise<void>;
31
+ /** Sleep seam. Defaults to setTimeout. */
32
+ sleep?: (ms: number) => Promise<void>;
33
+ /** Poll cadence for the idle gate (ms). Default 1000. */
34
+ pollIntervalMs?: number;
35
+ /**
36
+ * Optional safety cap (ms). When set and the fleet has not idled within it,
37
+ * the teardown is FORCED with a loud warning -- an operator-set bound that
38
+ * opts into a forced stop after waiting. Unset (default) waits indefinitely;
39
+ * the fleet is never killed unless `immediate` is passed. The daemon runs
40
+ * this in the background, so an indefinite wait never blocks the CLI.
41
+ */
42
+ maxWaitMs?: number;
43
+ /** Logical clock (ms), injectable for tests. Default Date.now. */
44
+ now?: () => number;
45
+ /** Logger seam. Defaults to console.log. */
46
+ log?: (msg: string) => void;
47
+ }
48
+ /** Outcome of a drain-to-idle teardown, for logging + tests. */
49
+ export interface DrainToIdleResult {
50
+ /** True when the teardown thunk ran (always true on a normal completion). */
51
+ firedTeardown: boolean;
52
+ /** True when `immediate` bypassed the drain wait. */
53
+ immediate: boolean;
54
+ /** Logical ms spent waiting for the boundary (0 when immediate). */
55
+ waitedMs: number;
56
+ /** True when the wait hit `maxWaitMs` before idling (teardown forced). */
57
+ timedOut: boolean;
58
+ }
59
+ /**
60
+ * Run the drain-to-idle teardown. When `immediate`, tears down at once.
61
+ * Otherwise arms the drain, waits for the zero-team boundary (polling the idle
62
+ * gate), then tears down exactly once. Never throws out of the wait loop; a
63
+ * teardown thunk that throws propagates to the caller.
64
+ */
65
+ export declare function runDrainToIdleTeardown(opts: DrainToIdleOptions): Promise<DrainToIdleResult>;
66
+ //# sourceMappingURL=drain-teardown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain-teardown.d.ts","sourceRoot":"","sources":["../src/drain-teardown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,0CAA0C;IAC1C,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,aAAa,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwCjG"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Drain-to-idle teardown controller.
3
+ *
4
+ * A CLI restart/stop/update (and a restart-only config change) should not kill
5
+ * the running fleet mid-work. Instead it should ARM intake-drain (no new focus
6
+ * team spawns) and DEFER the actual teardown until the daemon reaches a
7
+ * zero-team boundary -- the exact `isBatchSafeIdle` seam the routine
8
+ * auto-updater already waits for. A `--now` escape forces the immediate
9
+ * teardown (today's SIGTERM behavior) for an operator who cannot wait.
10
+ *
11
+ * This module is the pure controller: it takes the idle gate, the drain arm,
12
+ * and the teardown thunk as injected seams, so it unit-tests without a live
13
+ * daemon, real teams, or signals. The daemon wires it to the live
14
+ * `isBatchSafeIdle` gate + `armDrainForUpdate` + the graceful `shutdown()`.
15
+ */
16
+ /**
17
+ * Run the drain-to-idle teardown. When `immediate`, tears down at once.
18
+ * Otherwise arms the drain, waits for the zero-team boundary (polling the idle
19
+ * gate), then tears down exactly once. Never throws out of the wait loop; a
20
+ * teardown thunk that throws propagates to the caller.
21
+ */
22
+ export async function runDrainToIdleTeardown(opts) {
23
+ const log = opts.log ?? ((m) => console.log(m));
24
+ const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
25
+ const now = opts.now ?? Date.now;
26
+ const pollIntervalMs = opts.pollIntervalMs ?? 1000;
27
+ if (opts.immediate) {
28
+ log('[drain-teardown] --now: tearing down immediately (fleet not drained to idle)');
29
+ await opts.teardown();
30
+ return { firedTeardown: true, immediate: true, waitedMs: 0, timedOut: false };
31
+ }
32
+ // Arm the drain FIRST so no new team spawns during the wait -- the current
33
+ // batch completing IS the safe seam.
34
+ opts.armDrain();
35
+ log('[drain-teardown] intake drained; deferring teardown until the fleet reaches a zero-team boundary');
36
+ const startedAt = now();
37
+ let timedOut = false;
38
+ // Fast path: already idle.
39
+ while (!opts.isBatchSafeIdle()) {
40
+ const waited = now() - startedAt;
41
+ if (opts.maxWaitMs !== undefined && waited >= opts.maxWaitMs) {
42
+ timedOut = true;
43
+ log(`[drain-teardown] WARNING: fleet did not reach a zero-team boundary within ${Math.round(opts.maxWaitMs / 1000)}s ` +
44
+ '-- forcing teardown now (operator-set cap)');
45
+ break;
46
+ }
47
+ await sleep(pollIntervalMs);
48
+ }
49
+ const waitedMs = now() - startedAt;
50
+ if (!timedOut) {
51
+ log(`[drain-teardown] zero-team boundary reached after ${Math.round(waitedMs / 1000)}s; tearing down (fleet was not killed mid-work)`);
52
+ }
53
+ await opts.teardown();
54
+ return { firedTeardown: true, immediate: false, waitedMs, timedOut };
55
+ }
56
+ //# sourceMappingURL=drain-teardown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain-teardown.js","sourceRoot":"","sources":["../src/drain-teardown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA+CH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAwB;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IAEnD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,CAAC,8EAA8E,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAChF,CAAC;IAED,2EAA2E;IAC3E,qCAAqC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChB,GAAG,CAAC,kGAAkG,CAAC,CAAC;IAExG,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7D,QAAQ,GAAG,IAAI,CAAC;YAChB,GAAG,CACD,6EAA6E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;gBAChH,4CAA4C,CAC/C,CAAC;YACF,MAAM;QACR,CAAC;QACD,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,qDAAqD,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACzI,CAAC;IACD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACvE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"focus-executor.d.ts","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,8BAA8B,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAG/G,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EAGb,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAA8D,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAwH,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC1L,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,yBAAyB,EAAE,mCAAmC,EAAsB,MAAM,sBAAsB,CAAC;AAK9J,OAAO,EAAmB,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAInG,OAAO,EAAE,4BAA4B,EAAwD,MAAM,yBAAyB,CAAC;AAC7H,OAAO,EAA2D,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAI3H,OAAO,yBAAyB,CAAC;AAIjC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAEL,wBAAwB,EAEzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAYL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAYjC,OAAO,EACL,mBAAmB,EAGpB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAc,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI1H,OAAO,EACL,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,EAK/C,CAAC;AAMF,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAExD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,gBAAgB,GAAG,IAAI,CAErD;AAID;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAC1D,SAAS,EAAE,MAAM,GAChB,aAAa,CA6Bf;AAID;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKnG;AAGD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,EACpE,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,GACvC,MAAM,GAAG,IAAI,CAGf;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE5E,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,MAAM,EAAE,qBAAqB,GAAG,IAAI,EACpC,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,iBAAiB,CAInB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;CAC5B,GAAG,OAAO,CAEV;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACvC,MAAM,GAAG,IAAI,CAIf;AAUD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAIzE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACvC,MAAM,GAAG,IAAI,CAIf;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5C,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,IAAI,EACrC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,EAAE,CAQV;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACjD;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1D,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IACnD,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC;IAC1E,yBAAyB,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,mCAAmC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAkE9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;IAClE,oBAAoB,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;IACrE,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;CAC3B,GAAG,oBAAoB,CA+DvB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;;;OAOG;IACH,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,+EAA+E;IAC/E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mFAAmF;IACnF,sBAAsB,EAClB;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;KAAE,GAClE,IAAI,CAAC;IACT,uEAAuE;IACvE,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;IAClE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;CAC3C,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAsG/B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IACnD,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACnD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,kBAAkB,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACvD,yBAAyB,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAAC;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CAuBzB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,sBAAsB,CAAC;IACtC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CA+BT;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEnH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;CAC3D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACrE;8EAC0E;IAC1E,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C,EACD,IAAI,GAAE,OAAO,CAAC,oBAAoB,CAAM,GACvC,OAAO,CAAC,gBAAgB,CAAC,CAmC3B;AAED,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACtE,EACD,IAAI,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAC1C,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAuDhC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAM5G;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAMhE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CAaP;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACnD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,cAAc,CAmCjB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4DzB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,cAAc,CAAC;CAC3B,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAwB5D;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;CACpD,GAAG,OAAO,CAAC;IACV,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IAC1D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC,CAuBD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,sBAAsB,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACtE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IAClD,gFAAgF;IAChF,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;CAC3B,GAAG;IACF,SAAS,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACjD,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,OAAO,EAAE,YAAY,CAAC;CACvB,CAqBA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxE;IACE,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;gDAE4C;IAC5C,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACvC,CAAC;AAEN;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACrE;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;OAMG;IACH,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0PhC;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACjD,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;CAC3D,GAAG,OAAO,CAAC,MAAM,CAAC,CA+ClB;AAED,wBAAgB,qCAAqC,CACnD,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAC1D,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,GACjD,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAWhD;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;CAC5D,GAAG,MAAM,CA+BT;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IAC1C,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;IAClE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,OAAO,EACzB,IAAI,SAAa,GAChB,OAAO,CAAC,sBAAsB,CAAC,CAqBjC;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,QAAQ,SAAwB,GAC/B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAMA;AAGD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAC/B,OAAO,GAAE,OAAO,KAAa,GAC5B,8BAA8B,CAahC;AAED,2FAA2F;AAC3F,wBAAsB,+BAA+B,CACnD,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,EAC1C,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;;;;;;;;;;GAYG;AACH;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAKrE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4PhF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Of"}
1
+ {"version":3,"file":"focus-executor.d.ts","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ import { sanitizeGitSegment, resolveRef } from './git-utils.js';
47
47
  import { resolveResumeId, resolveLineageSpec } from './session-lineage.js';
48
48
  import { resolveTeamModel, resolveLocalModelRefPrecedence } from './model-resolution.js';
49
49
  import { recordFocusTeardown } from './spawn-cooldown.js';
50
+ import { recordWorkerPid, removeWorkerPid } from './worker-pidfile.js';
50
51
  import { markSessionPersisted } from './telemetry-writer.js';
51
52
  import { consumePendingSpawnDirective, assembleDirectiveContentWithManifest, syncFocusPhase } from './directive-executor.js';
52
53
  import { resolveAssemblyRecipeWithManifest } from './assembly-engine.js';
@@ -1303,6 +1304,16 @@ export function backendUnavailableSessionUpdate(reason, category = 'backend_unav
1303
1304
  export function spawnCrashIsolated(command, args, options, onError, spawnFn = spawn) {
1304
1305
  const proc = spawnFn(command, args, {
1305
1306
  ...options,
1307
+ // Own process group (setsid on POSIX): the team lead becomes its own
1308
+ // group leader (pgid == lead pid). This is what makes the reap's
1309
+ // group-first signal (spawner/lifecycle.signalWorker: kill(-pid)) actually
1310
+ // reap the lead AND any host children it sub-spawns as one group -- without
1311
+ // detachment the lead shares the daemon's group and kill(-leadPid) ESRCHs,
1312
+ // falling back to the bare pid (lead only). We deliberately do NOT unref():
1313
+ // the daemon must still observe the lead's 'close'/'exit' to drive
1314
+ // completion + delivery advancement. On a hard daemon kill the CLI reaps
1315
+ // these groups from the persisted worker pidfile (see daemon-process reap).
1316
+ detached: true,
1306
1317
  stdio: ['pipe', 'pipe', 'pipe'],
1307
1318
  });
1308
1319
  proc.on('error', onError);
@@ -1518,6 +1529,15 @@ export async function spawnTeamProcess(spec) {
1518
1529
  teamState.leadPid = proc.pid ?? null;
1519
1530
  teamState.leadStdin = proc.stdin;
1520
1531
  teamState.phase = 'executing';
1532
+ // Persist the detached lead pid so a hard daemon kill (stop --force / timeout
1533
+ // / external kill -9) can group-reap it from the pidfile -- the in-memory
1534
+ // activeTeams map dies with the daemon. Auto-removed on the lead's exit.
1535
+ if (typeof proc.pid === 'number') {
1536
+ const leadPid = proc.pid;
1537
+ recordWorkerPid(leadPid, focusName);
1538
+ proc.once('close', () => removeWorkerPid(leadPid));
1539
+ proc.once('error', () => removeWorkerPid(leadPid));
1540
+ }
1521
1541
  // Attach stream parser, completion detector, activity tracker, event handlers
1522
1542
  const { completionDetector, activityTracker } = attachStreamHandlers({
1523
1543
  proc, backend, teamState, focusId, focusName, sessionId: session.id, logs,