instar 1.3.647 → 1.3.649

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.
Files changed (90) hide show
  1. package/dashboard/index.html +14 -14
  2. package/dist/commands/reflect.d.ts.map +1 -1
  3. package/dist/commands/reflect.js +7 -3
  4. package/dist/commands/reflect.js.map +1 -1
  5. package/dist/commands/server.d.ts.map +1 -1
  6. package/dist/commands/server.js +35 -0
  7. package/dist/commands/server.js.map +1 -1
  8. package/dist/commands/setup.d.ts.map +1 -1
  9. package/dist/commands/setup.js +17 -0
  10. package/dist/commands/setup.js.map +1 -1
  11. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  12. package/dist/config/ConfigDefaults.js +14 -0
  13. package/dist/config/ConfigDefaults.js.map +1 -1
  14. package/dist/core/AutoUpdater.d.ts.map +1 -1
  15. package/dist/core/AutoUpdater.js +23 -3
  16. package/dist/core/AutoUpdater.js.map +1 -1
  17. package/dist/core/CoherenceGate.d.ts.map +1 -1
  18. package/dist/core/CoherenceGate.js +24 -0
  19. package/dist/core/CoherenceGate.js.map +1 -1
  20. package/dist/core/CoherenceReviewer.d.ts +9 -0
  21. package/dist/core/CoherenceReviewer.d.ts.map +1 -1
  22. package/dist/core/CoherenceReviewer.js +18 -2
  23. package/dist/core/CoherenceReviewer.js.map +1 -1
  24. package/dist/core/InputGuard.d.ts.map +1 -1
  25. package/dist/core/InputGuard.js +17 -3
  26. package/dist/core/InputGuard.js.map +1 -1
  27. package/dist/core/MessageSentinel.d.ts.map +1 -1
  28. package/dist/core/MessageSentinel.js +19 -2
  29. package/dist/core/MessageSentinel.js.map +1 -1
  30. package/dist/core/MessagingToneGate.d.ts +8 -0
  31. package/dist/core/MessagingToneGate.d.ts.map +1 -1
  32. package/dist/core/MessagingToneGate.js +16 -1
  33. package/dist/core/MessagingToneGate.js.map +1 -1
  34. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  35. package/dist/core/PostUpdateMigrator.js +10 -0
  36. package/dist/core/PostUpdateMigrator.js.map +1 -1
  37. package/dist/core/SingleInstanceLock.d.ts +103 -0
  38. package/dist/core/SingleInstanceLock.d.ts.map +1 -0
  39. package/dist/core/SingleInstanceLock.js +300 -0
  40. package/dist/core/SingleInstanceLock.js.map +1 -0
  41. package/dist/core/SpawnCapIntelligenceProvider.d.ts +89 -0
  42. package/dist/core/SpawnCapIntelligenceProvider.d.ts.map +1 -0
  43. package/dist/core/SpawnCapIntelligenceProvider.js +164 -0
  44. package/dist/core/SpawnCapIntelligenceProvider.js.map +1 -0
  45. package/dist/core/UpdateChecker.d.ts +12 -0
  46. package/dist/core/UpdateChecker.d.ts.map +1 -1
  47. package/dist/core/UpdateChecker.js +22 -0
  48. package/dist/core/UpdateChecker.js.map +1 -1
  49. package/dist/core/hostSpawnSemaphore.d.ts +188 -0
  50. package/dist/core/hostSpawnSemaphore.d.ts.map +1 -0
  51. package/dist/core/hostSpawnSemaphore.js +471 -0
  52. package/dist/core/hostSpawnSemaphore.js.map +1 -0
  53. package/dist/core/intelligenceProviderFactory.d.ts +0 -12
  54. package/dist/core/intelligenceProviderFactory.d.ts.map +1 -1
  55. package/dist/core/intelligenceProviderFactory.js +27 -9
  56. package/dist/core/intelligenceProviderFactory.js.map +1 -1
  57. package/dist/core/types.d.ts +18 -0
  58. package/dist/core/types.d.ts.map +1 -1
  59. package/dist/core/types.js.map +1 -1
  60. package/dist/monitoring/DegradationReporter.d.ts +18 -0
  61. package/dist/monitoring/DegradationReporter.d.ts.map +1 -1
  62. package/dist/monitoring/DegradationReporter.js +24 -0
  63. package/dist/monitoring/DegradationReporter.js.map +1 -1
  64. package/dist/monitoring/WorktreeMonitor.d.ts +13 -6
  65. package/dist/monitoring/WorktreeMonitor.d.ts.map +1 -1
  66. package/dist/monitoring/WorktreeMonitor.js +50 -33
  67. package/dist/monitoring/WorktreeMonitor.js.map +1 -1
  68. package/dist/scaffold/templates.d.ts.map +1 -1
  69. package/dist/scaffold/templates.js +5 -0
  70. package/dist/scaffold/templates.js.map +1 -1
  71. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  72. package/dist/server/CapabilityIndex.js +9 -0
  73. package/dist/server/CapabilityIndex.js.map +1 -1
  74. package/dist/server/routes.d.ts.map +1 -1
  75. package/dist/server/routes.js +36 -3
  76. package/dist/server/routes.js.map +1 -1
  77. package/package.json +4 -2
  78. package/scripts/lint-no-direct-destructive.js +4 -0
  79. package/scripts/lint-no-unbounded-llm-spawn.js +137 -0
  80. package/src/data/builtin-manifest.json +65 -65
  81. package/src/scaffold/templates.ts +5 -0
  82. package/upgrades/1.3.648.md +99 -0
  83. package/upgrades/1.3.649.md +30 -0
  84. package/upgrades/eli16/autoupdate-strand-detector.md +22 -0
  85. package/upgrades/eli16/dashboard-health-signal-polish.md +26 -0
  86. package/upgrades/eli16/worktree-monitor-async-git.md +24 -0
  87. package/upgrades/side-effects/autoupdate-strand-detector.md +36 -0
  88. package/upgrades/side-effects/dashboard-health-signal-polish.md +59 -0
  89. package/upgrades/side-effects/forkbomb-prevention-simple.md +138 -0
  90. package/upgrades/side-effects/worktree-monitor-async-git.md +39 -0
@@ -0,0 +1,164 @@
1
+ /**
2
+ * SpawnCapIntelligenceProvider — P1 chokepoint + P3 bounded ingress of the
3
+ * SIMPLE fork-bomb prevention design (docs/specs/forkbomb-prevention-simple.md).
4
+ *
5
+ * A thin WRAPPER provider, layered EXACTLY like wrapIntelligenceWithCircuitBreaker:
6
+ * its `evaluate()` ACQUIRES a host-wide spawn slot (the HostSpawnSemaphore),
7
+ * calls the inner provider's `evaluate()` (the actual `claude -p` / `codex exec`
8
+ * spawn), and RELEASES the slot in a `finally`. It is installed at every return
9
+ * arm of `buildIntelligenceProvider`, so EVERY provider the factory hands out is
10
+ * bounded — and the acquire is PER-`evaluate()`, which is load-bearing:
11
+ * CoherenceGate builds its provider ONCE and fans ~10 reviewers in parallel
12
+ * through that ONE shared instance (the primary incident driver), so each of the
13
+ * N concurrent `evaluate()` calls must independently acquire a slot. A
14
+ * build-time acquire would NOT bind the fan-out.
15
+ *
16
+ * P3 — BOUNDED INGRESS (never an unbounded wait queue):
17
+ * When the host cap is saturated, acquire POLLS the holder-set on a short
18
+ * interval (~100ms) up to `acquireMs` (default 5000ms) — NOT an in-memory
19
+ * waiter queue. Each poll is a cheap lock+count; the caller's large prompt
20
+ * state stays where it already lives (no queue-node heap growth). A bound on
21
+ * CONCURRENT POLLERS (`waitersMax`, default 64) caps the waiters too.
22
+ *
23
+ * On genuine exhaustion (timeout OR waiters-full):
24
+ * - A GATING call (options.attribution.gating === true) THROWS
25
+ * LlmCapacityUnavailableError — the caller's catch fails CLOSED (hold), NOT
26
+ * auto-pass. The four gate seams (MessageSentinel / InputGuard /
27
+ * MessagingToneGate / CoherenceReviewer) recognize this typed error.
28
+ * - A non-gating BACKGROUND call also THROWS LlmCapacityUnavailableError;
29
+ * its existing catch degrades to its heuristic/no-LLM path (loud + counted
30
+ * via DegradationReporter, never silent) — same shape as a circuit-open
31
+ * throw, so existing background catches already handle it.
32
+ *
33
+ * This wrapper SHEDS BEFORE the inner provider runs — no subprocess spawns on a
34
+ * shed, which is the whole point (no `claude -p`, no RSS).
35
+ */
36
+ import { getHostSpawnSemaphore, configuredSpawnAcquireMs, configuredSpawnWaitersMax, } from './hostSpawnSemaphore.js';
37
+ /**
38
+ * Thrown when the host-wide spawn cap is saturated and the bounded-acquire
39
+ * window elapsed (or the concurrent-waiter ceiling was hit). A typed,
40
+ * recognizable shed — distinct from a rate-limit (LlmCircuitOpenError) and from
41
+ * a provider error — so each gate seam can fail CLOSED on it specifically.
42
+ */
43
+ export class LlmCapacityUnavailableError extends Error {
44
+ reason;
45
+ waitedMs;
46
+ capacityUnavailable = true;
47
+ constructor(reason, waitedMs) {
48
+ super(`LLM spawn capacity unavailable (${reason}) after ${waitedMs}ms — host concurrent-spawn cap saturated`);
49
+ this.reason = reason;
50
+ this.waitedMs = waitedMs;
51
+ this.name = 'LlmCapacityUnavailableError';
52
+ }
53
+ }
54
+ /** Narrowing helper for the gate seams (avoids `instanceof` import churn). */
55
+ export function isCapacityUnavailable(err) {
56
+ return (err instanceof LlmCapacityUnavailableError ||
57
+ (typeof err === 'object' && err !== null && err.capacityUnavailable === true));
58
+ }
59
+ // Process-wide count of callers currently POLLING for a slot (P3 waiters bound).
60
+ // A waiter is one in-flight `evaluate()` spinning on acquire; bounding it caps
61
+ // the concurrent already-allocated calls, with no per-waiter queue-node heap.
62
+ let _activePollers = 0;
63
+ /** Live count of callers currently polling for a spawn slot (P3 observability). */
64
+ export function activeSpawnPollers() {
65
+ return _activePollers;
66
+ }
67
+ /** Test seam. */
68
+ export function _resetSpawnPollersForTest() {
69
+ _activePollers = 0;
70
+ }
71
+ export class SpawnCapIntelligenceProvider {
72
+ inner;
73
+ semaphore;
74
+ acquireMs;
75
+ waitersMax;
76
+ pollIntervalMs;
77
+ now;
78
+ genId;
79
+ sleep;
80
+ constructor(inner, deps = {}) {
81
+ this.inner = inner;
82
+ this.semaphore = deps.semaphore ?? getHostSpawnSemaphore();
83
+ this.acquireMs = deps.acquireMs ?? configuredSpawnAcquireMs();
84
+ this.waitersMax = deps.waitersMax ?? configuredSpawnWaitersMax();
85
+ this.pollIntervalMs = deps.pollIntervalMs ?? 100;
86
+ this.now = deps.now ?? (() => Date.now());
87
+ this.genId =
88
+ deps.genId ?? (() => `spawn:${process.pid}:${this.now().toString(36)}:${Math.random().toString(36).slice(2, 10)}`);
89
+ this.sleep = deps.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
90
+ }
91
+ async evaluate(prompt, options) {
92
+ const id = this.genId();
93
+ const startedAt = this.now();
94
+ // P3 waiters bound — refuse to even start polling past the ceiling. This is
95
+ // checked BEFORE incrementing so the ceiling is a hard cap on concurrent
96
+ // pollers. The shed is the same typed error so the gate seams fail closed.
97
+ if (_activePollers >= this.waitersMax) {
98
+ throw new LlmCapacityUnavailableError('waiters-full', 0);
99
+ }
100
+ _activePollers++;
101
+ let acquired = false;
102
+ try {
103
+ // Fast path — try once immediately (no sleep) before entering the poll loop.
104
+ if (this.semaphore.acquire(id)) {
105
+ acquired = true;
106
+ }
107
+ else {
108
+ acquired = await this.pollAcquire(id, startedAt);
109
+ }
110
+ if (!acquired) {
111
+ throw new LlmCapacityUnavailableError('acquire-timeout', this.now() - startedAt);
112
+ }
113
+ // Slot held — run the actual spawn. The semaphore is released in finally.
114
+ return await this.inner.evaluate(prompt, options);
115
+ }
116
+ finally {
117
+ _activePollers--;
118
+ if (acquired) {
119
+ // Crash-safe: release is idempotent (unknown id is a no-op).
120
+ try {
121
+ this.semaphore.release(id);
122
+ }
123
+ catch {
124
+ /* @silent-fallback-ok: a release failure self-heals via prune-dead
125
+ (this pid will keep going / eventually die) — never throw out of
126
+ finally and mask the real result. */
127
+ }
128
+ }
129
+ }
130
+ }
131
+ /** Poll the semaphore every `pollIntervalMs` until acquired or the budget elapses. */
132
+ async pollAcquire(id, startedAt) {
133
+ const deadline = startedAt + this.acquireMs;
134
+ // Defense-in-depth iteration ceiling: the loop is wall-clock bound by
135
+ // `deadline`, but a frozen/non-advancing clock (a test injection, never
136
+ // production) could otherwise spin. Cap iterations at the worst-case poll
137
+ // count plus a margin so the loop ALWAYS terminates.
138
+ const maxIters = Math.ceil(this.acquireMs / Math.max(1, this.pollIntervalMs)) + 8;
139
+ for (let iter = 0; iter < maxIters; iter++) {
140
+ // Sleep first (the immediate try already happened in evaluate()).
141
+ const remaining = deadline - this.now();
142
+ if (remaining <= 0)
143
+ return false;
144
+ await this.sleep(Math.min(this.pollIntervalMs, remaining));
145
+ if (this.semaphore.acquire(id))
146
+ return true;
147
+ if (this.now() >= deadline)
148
+ return false;
149
+ }
150
+ return false;
151
+ }
152
+ }
153
+ /**
154
+ * Wrap a provider with the host spawn cap. No-ops on null (so a possibly-null
155
+ * factory result passes through unchanged) and is idempotent (never double-wraps).
156
+ */
157
+ export function wrapIntelligenceWithSpawnCap(provider, deps) {
158
+ if (!provider)
159
+ return null;
160
+ if (provider instanceof SpawnCapIntelligenceProvider)
161
+ return provider;
162
+ return new SpawnCapIntelligenceProvider(provider, deps);
163
+ }
164
+ //# sourceMappingURL=SpawnCapIntelligenceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpawnCapIntelligenceProvider.js","sourceRoot":"","sources":["../../src/core/SpawnCapIntelligenceProvider.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,18 @@ export declare class UpdateChecker {
93
93
  * process needs a restart.
94
94
  */
95
95
  getInstalledVersion(): string;
96
+ /**
97
+ * Read the LIVE version of the shadow install on disk, UNCACHED.
98
+ *
99
+ * Distinct from getInstalledVersion(), which caches the version the running
100
+ * process booted with. After a successful apply the shadow on disk holds the
101
+ * new version; if it later REVERTS (e.g., crash-loop collateral or a partial
102
+ * re-install) while `lastAppliedVersion` still records the new version, the
103
+ * updater is "stranded" — it believes it is current and stops re-applying.
104
+ * Comparing this live read against lastAppliedVersion surfaces that strand.
105
+ * Returns null when the shadow package.json cannot be read.
106
+ */
107
+ getShadowInstalledVersion(): string | null;
96
108
  /**
97
109
  * Run a command asynchronously, returning trimmed stdout.
98
110
  */
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateChecker.d.ts","sourceRoot":"","sources":["../../src/core/UpdateChecker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU3D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAwB;IAC9C;;;;+DAI2D;IAC3D,OAAO,CAAC,sBAAsB,CAAuB;gBAEzC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAmBhD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IA0ClC;;;;;;;;;;OAUG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAoP1C;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAoEzC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUhG;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAyDlE;;OAEG;IACH,YAAY,IAAI,UAAU,GAAG,IAAI;IAUjC;;;;;;;;;OASG;IACH,mBAAmB,IAAI,MAAM;IAuB7B;;OAEG;IACH,OAAO,CAAC,SAAS;IAmBjB;;OAEG;IACH,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;CAK1B"}
1
+ {"version":3,"file":"UpdateChecker.d.ts","sourceRoot":"","sources":["../../src/core/UpdateChecker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU3D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAwB;IAC9C;;;;+DAI2D;IAC3D,OAAO,CAAC,sBAAsB,CAAuB;gBAEzC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAmBhD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IA0ClC;;;;;;;;;;OAUG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAoP1C;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAoEzC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUhG;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAyDlE;;OAEG;IACH,YAAY,IAAI,UAAU,GAAG,IAAI;IAUjC;;;;;;;;;OASG;IACH,mBAAmB,IAAI,MAAM;IAuB7B;;;;;;;;;;OAUG;IACH,yBAAyB,IAAI,MAAM,GAAG,IAAI;IAa1C;;OAEG;IACH,OAAO,CAAC,SAAS;IAmBjB;;OAEG;IACH,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;CAK1B"}
@@ -523,6 +523,28 @@ export class UpdateChecker {
523
523
  this.cachedInstalledVersion = '0.0.0';
524
524
  return this.cachedInstalledVersion;
525
525
  }
526
+ /**
527
+ * Read the LIVE version of the shadow install on disk, UNCACHED.
528
+ *
529
+ * Distinct from getInstalledVersion(), which caches the version the running
530
+ * process booted with. After a successful apply the shadow on disk holds the
531
+ * new version; if it later REVERTS (e.g., crash-loop collateral or a partial
532
+ * re-install) while `lastAppliedVersion` still records the new version, the
533
+ * updater is "stranded" — it believes it is current and stops re-applying.
534
+ * Comparing this live read against lastAppliedVersion surfaces that strand.
535
+ * Returns null when the shadow package.json cannot be read.
536
+ */
537
+ getShadowInstalledVersion() {
538
+ try {
539
+ const pkgPath = path.join(this.stateDir, 'shadow-install', 'node_modules', 'instar', 'package.json');
540
+ if (fs.existsSync(pkgPath)) {
541
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
542
+ return typeof pkg.version === 'string' ? pkg.version : null;
543
+ }
544
+ }
545
+ catch { /* @silent-fallback-ok — shadow version read is best-effort */ }
546
+ return null;
547
+ }
526
548
  /**
527
549
  * Run a command asynchronously, returning trimmed stdout.
528
550
  */
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateChecker.js","sourceRoot":"","sources":["../../src/core/UpdateChecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateChecker.js","sourceRoot":"","sources":["../../src/core/UpdateChecker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * hostSpawnSemaphore — P1 of the SIMPLE fork-bomb prevention design.
3
+ *
4
+ * Spec: docs/specs/forkbomb-prevention-simple.md (§P1, §P3, §D-CAP).
5
+ * Source postmortem: the-portal/docs/postmortems/2026-06-20-echo-instar-forkbomb-oom.md.
6
+ *
7
+ * THE PRIMARY CONTROL. A single host-local COUNTING SEMAPHORE that bounds how
8
+ * many LLM subprocesses ("claude -p" / "codex exec" / …) run AT ONCE across
9
+ * EVERY compliant Instar agent + server instance on this host. The 2026-06-20
10
+ * incident fork-bombed a 128GB macOS host into OOM twice (~230-289 concurrent
11
+ * `claude -p` ≈ 90-115GB) because `evaluate()` spawned one subprocess per call
12
+ * with ZERO concurrency control and CoherenceGate fans ~10 reviewers in
13
+ * parallel per message. This bounds that.
14
+ *
15
+ * MECHANISM — a holder-SET model (NOT decrement/increment counter math):
16
+ * A host-local file (`~/.instar/host-spawn-holders.json`, NOT a synced
17
+ * volume), guarded by an exclusive O_CREAT|O_EXCL lock (the in-tree
18
+ * ProjectRoundLock pattern). The cap is enforced by COUNTING LIVE holder
19
+ * records — never by mutating a shared integer:
20
+ * - acquire(id): under the lock, prune dead holders, and if
21
+ * liveHolders < cap append `{id, pid, hostname, heartbeat}` (atomic
22
+ * temp+rename) → true; else false.
23
+ * - release(id): under the lock, remove THIS id.
24
+ * Crash-safe by construction: a double-release is a no-op (id already gone),
25
+ * a pid-reuse can't steal a slot (unique id, not pid), a partial write is
26
+ * discarded (temp+rename), a crashed holder is reclaimed by prune-dead
27
+ * (pid not alive AND heartbeat stale, on THIS host only).
28
+ *
29
+ * HOST-LOCAL-LOCK CONTRACT (mirrors ResumeQueue.ts, the 2026-06-15 lesson):
30
+ * - A FOREIGN-hostname holder is NEVER pruned/reclaimed (refuse-loud — a
31
+ * pid check is meaningless cross-host on a shared volume).
32
+ * - A `df -P` host-local-disk confirmation gates reclaim (fail-closed: if we
33
+ * cannot positively confirm the holders file is on a local disk, we NEVER
34
+ * prune a holder — we only ever decline to reclaim, never decline to bound).
35
+ *
36
+ * BOUNDED INGRESS (P3) lives in the wrapper (SpawnCapIntelligenceProvider) via
37
+ * poll-retry against `acquire()` — this module is the pure counting primitive.
38
+ */
39
+ /** One live holder of a spawn slot. */
40
+ export interface SpawnHolder {
41
+ /** Unique per-acquire id (NOT the pid — pid-reuse must not steal a slot). */
42
+ id: string;
43
+ pid: number;
44
+ hostname: string;
45
+ /** ms epoch of the last heartbeat (acquire time, refreshed by long holders). */
46
+ heartbeat: number;
47
+ }
48
+ /** Heartbeat staleness window — a holder is reclaim-eligible (pid dead OR, on a
49
+ * provably host-local disk, heartbeat older than this) only past it. Kept long
50
+ * (a slow `claude -p` cold-start + run can legitimately exceed a minute), and
51
+ * pid-liveness is the PRIMARY signal — heartbeat staleness is secondary and
52
+ * only consulted when the pid is also gone. */
53
+ export declare const HOLDER_STALE_MS: number;
54
+ /**
55
+ * FD1 (from ResumeQueue) — is `p` on a HOST-LOCAL filesystem? FAIL-CLOSED:
56
+ * anything we cannot positively confirm as local returns false, so a holder on
57
+ * a genuine shared/network volume is NEVER reclaimed (the two-hosts-one-volume
58
+ * corruption the host-lock invariant protects against). `df -P` device-column
59
+ * classification — re-implemented here (not imported from monitoring/) so
60
+ * core/ never depends on monitoring/.
61
+ */
62
+ export declare function isPathHostLocalDefault(p: string): boolean;
63
+ /** Pure FD1 classifier over the `df -P` device-source column. FAIL-CLOSED. */
64
+ export declare function classifyDfSourceLocal(source: string): boolean;
65
+ export interface HostSpawnSemaphoreDeps {
66
+ /** Absolute path to the holders file. Default `~/.instar/host-spawn-holders.json`. */
67
+ holdersPath?: string;
68
+ /** Concurrent-spawn cap. Default resolved by `resolveSpawnCap()`. */
69
+ cap?: number;
70
+ now?: () => number;
71
+ hostname?: () => string;
72
+ /** pid liveness probe (tests override). */
73
+ pidAlive?: (pid: number) => boolean;
74
+ /** Host-local FS probe (tests override; default `isPathHostLocalDefault`). */
75
+ isPathHostLocal?: (p: string) => boolean;
76
+ /** Unique-id generator (tests override for determinism). */
77
+ genId?: () => string;
78
+ }
79
+ /**
80
+ * Resolve the concurrent-spawn cap. Precedence (D-CAP):
81
+ * INSTAR_HOST_SPAWN_MAX env > config intelligence.spawnCap.maxConcurrent > 8.
82
+ * A safety FLOOR — read with a plain `??` default, NEVER resolveDevAgentGate
83
+ * (it is ON by default, ships never-dark). A non-positive / non-finite value
84
+ * is ignored (falls through to the next source) so a typo can't disable the cap.
85
+ */
86
+ export declare function resolveSpawnCap(configCap?: number, env?: NodeJS.ProcessEnv): number;
87
+ /**
88
+ * Resolve the bounded-acquire poll budget in ms (P3). Precedence (D-CAP):
89
+ * INSTAR_SPAWN_ACQUIRE_MS env > config intelligence.spawnCap.acquireMs > 5000.
90
+ * Read with a plain `??` default (safety floor, never resolveDevAgentGate).
91
+ */
92
+ export declare function resolveSpawnAcquireMs(configMs?: number, env?: NodeJS.ProcessEnv): number;
93
+ /**
94
+ * Resolve the concurrent-pollers ceiling (P3). Precedence (D-CAP):
95
+ * INSTAR_SPAWN_WAITERS_MAX env > config intelligence.spawnCap.waitersMax > 64.
96
+ */
97
+ export declare function resolveSpawnWaitersMax(configMax?: number, env?: NodeJS.ProcessEnv): number;
98
+ export interface SpawnSemaphoreStatus {
99
+ cap: number;
100
+ /** Live holders after pruning, this host + foreign. */
101
+ liveHolders: number;
102
+ /** Holders whose hostname is THIS host. */
103
+ localHolders: number;
104
+ /** Holders whose hostname is a DIFFERENT host (never reclaimed). */
105
+ foreignHolders: number;
106
+ holdersPath: string;
107
+ }
108
+ /**
109
+ * Host-wide counting semaphore over LLM-subprocess spawns. One instance per
110
+ * process is fine — the cross-process coordination is the file + flock, not
111
+ * the object. Stateless beyond the file.
112
+ */
113
+ export declare class HostSpawnSemaphore {
114
+ private readonly holdersPath;
115
+ private readonly cap;
116
+ private readonly now;
117
+ private readonly host;
118
+ private readonly pidAlive;
119
+ private readonly isPathHostLocal;
120
+ private readonly genId;
121
+ /** Memoized host-local determination (a fixed path's FS type can't change at
122
+ * runtime; the `df -P` probe is expensive + synchronous, so it runs ONCE per
123
+ * instance — never per acquire() on the hot fan-out path). */
124
+ private _fsLocalCache;
125
+ constructor(deps?: HostSpawnSemaphoreDeps);
126
+ getCap(): number;
127
+ /**
128
+ * Try to take a slot under id `id`. Returns true if a slot was appended
129
+ * (liveHolders < cap after pruning), false if the host is at the cap.
130
+ * Holds the exclusive flock for the whole read-prune-decide-write window.
131
+ */
132
+ acquire(id: string): boolean;
133
+ /** Release the slot held under `id`. A double-release / unknown id is a no-op. */
134
+ release(id: string): void;
135
+ /** Refresh a long-held slot's heartbeat so a slow legit spawn is never reclaimed. */
136
+ heartbeat(id: string): void;
137
+ /** Read-only status (count of live holders after a prune). Best-effort: never throws. */
138
+ status(): SpawnSemaphoreStatus;
139
+ /**
140
+ * Prune dead holders. A holder is reclaimable ONLY if:
141
+ * - it is on THIS host (a foreign-hostname holder is NEVER reclaimed —
142
+ * refuse-loud — the cross-host shared-volume hazard), AND
143
+ * - its pid is no longer alive (PRIMARY signal), AND
144
+ * - its heartbeat is stale past HOLDER_STALE_MS (SECONDARY signal — a slow
145
+ * spawn whose pid is alive is NEVER reclaimed regardless of heartbeat).
146
+ * AND a `df -P` host-local confirmation gates ALL reclaim (fail-closed: if we
147
+ * cannot confirm the holders file is on a local disk, we keep ALL holders —
148
+ * over-counting is the safe direction for a cap; it never under-bounds).
149
+ */
150
+ private pruneDead;
151
+ private readHolders;
152
+ private writeHolders;
153
+ /**
154
+ * Run `fn` while holding the exclusive O_CREAT|O_EXCL lock on `<holdersPath>.lock`.
155
+ * On a lock-contention failure (another process holds it), returns
156
+ * `fallbackOnLockFail` — for `acquire`, fallback=false is the SAFE direction
157
+ * (refuse the slot under contention rather than over-grant past the cap).
158
+ * The lock is short-held (a file read + JSON parse + write) so contention is
159
+ * brief; a crashed lock-holder's stale lock is reclaimed by pid-death.
160
+ */
161
+ private withLock;
162
+ /** Remove the lock file if its recorded holder pid is dead (crash recovery). */
163
+ private reclaimStaleLock;
164
+ private ensureDir;
165
+ }
166
+ /** Default holders file path: `~/.instar/host-spawn-holders.json` (host-local). */
167
+ export declare function defaultHoldersPath(): string;
168
+ /** Operator config for the spawn cap (intelligence.spawnCap.*). All optional. */
169
+ export interface SpawnCapConfig {
170
+ maxConcurrent?: number;
171
+ acquireMs?: number;
172
+ waitersMax?: number;
173
+ }
174
+ /**
175
+ * Inject the config-resolved spawn-cap knobs once at server boot (server.ts).
176
+ * Idempotent: re-resolves the singleton so a later getter sees the configured
177
+ * cap. The env vars still win inside the `resolve*` helpers.
178
+ */
179
+ export declare function configureHostSpawnSemaphore(cfg?: SpawnCapConfig): void;
180
+ /** The process-wide semaphore. Lazily constructed with env/config/8 cap. */
181
+ export declare function getHostSpawnSemaphore(): HostSpawnSemaphore;
182
+ /** Config-aware acquire-budget resolver (env > injected config > 5000). */
183
+ export declare function configuredSpawnAcquireMs(): number;
184
+ /** Config-aware waiters-ceiling resolver (env > injected config > 64). */
185
+ export declare function configuredSpawnWaitersMax(): number;
186
+ /** Test seam — reset the singleton + injected config. */
187
+ export declare function _resetHostSpawnSemaphoreForTest(): void;
188
+ //# sourceMappingURL=hostSpawnSemaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostSpawnSemaphore.d.ts","sourceRoot":"","sources":["../../src/core/hostSpawnSemaphore.ts"],"names":[],"mappings":"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"}