crewly 1.20.234 → 1.20.236

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 (45) hide show
  1. package/dist/backend/backend/src/index.d.ts +17 -0
  2. package/dist/backend/backend/src/index.d.ts.map +1 -1
  3. package/dist/backend/backend/src/index.js +184 -125
  4. package/dist/backend/backend/src/index.js.map +1 -1
  5. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  6. package/dist/backend/backend/src/services/agent/agent-registration.service.js +30 -0
  7. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  8. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  9. package/dist/backend/backend/src/services/agent/idle-detection.service.js +5 -9
  10. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  11. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +127 -0
  12. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -0
  13. package/dist/backend/backend/src/services/agent/resource-mode.service.js +264 -0
  14. package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -0
  15. package/dist/backend/backend/src/services/agent/restore-queue.d.ts +103 -0
  16. package/dist/backend/backend/src/services/agent/restore-queue.d.ts.map +1 -0
  17. package/dist/backend/backend/src/services/agent/restore-queue.js +184 -0
  18. package/dist/backend/backend/src/services/agent/restore-queue.js.map +1 -0
  19. package/dist/backend/backend/src/types/settings.types.d.ts +4 -0
  20. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  21. package/dist/backend/backend/src/types/settings.types.js +8 -0
  22. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  23. package/dist/backend/build-info.json +2 -2
  24. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  25. package/dist/cli/backend/src/services/agent/agent-registration.service.js +30 -0
  26. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  27. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +127 -0
  28. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -0
  29. package/dist/cli/backend/src/services/agent/resource-mode.service.js +264 -0
  30. package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -0
  31. package/dist/cli/backend/src/services/agent/restore-queue.d.ts +103 -0
  32. package/dist/cli/backend/src/services/agent/restore-queue.d.ts.map +1 -0
  33. package/dist/cli/backend/src/services/agent/restore-queue.js +184 -0
  34. package/dist/cli/backend/src/services/agent/restore-queue.js.map +1 -0
  35. package/dist/cli/backend/src/services/core/system-health.util.d.ts +89 -0
  36. package/dist/cli/backend/src/services/core/system-health.util.d.ts.map +1 -0
  37. package/dist/cli/backend/src/services/core/system-health.util.js +220 -0
  38. package/dist/cli/backend/src/services/core/system-health.util.js.map +1 -0
  39. package/dist/cli/backend/src/types/settings.types.d.ts +4 -0
  40. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  41. package/dist/cli/backend/src/types/settings.types.js +8 -0
  42. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  43. package/frontend/dist/assets/{index-bc4e2a93.js → index-a719c15a.js} +54 -54
  44. package/frontend/dist/index.html +1 -1
  45. package/package.json +1 -1
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Staggered boot restore: agents with work in hand come back one at a time
3
+ * (each Claude Code relaunch on a loaded machine takes minutes), the owner's
4
+ * agents first. An on-demand wake for an agent still waiting in the queue
5
+ * moves it up instead of starting a second launch in parallel.
6
+ *
7
+ * @module services/agent/restore-queue
8
+ */
9
+ import { LoggerService } from '../core/logger.service.js';
10
+ /** Defaults for the restore queue. */
11
+ export const RESTORE_QUEUE_CONSTANTS = {
12
+ DEFAULT_CONCURRENCY: 1,
13
+ MAX_CONCURRENCY: 3,
14
+ /** Per-agent budget before the queue moves on and retries it later */
15
+ DEFAULT_TIMEOUT_MS: 6 * 60 * 1000,
16
+ /** Times an agent that timed out is tried again, at the back of the queue */
17
+ MAX_RETRIES: 1,
18
+ };
19
+ /** Restore priority tiers, lowest first. */
20
+ export const RESTORE_TIER = { OWNER: 1, ORCHESTRATOR: 2, LEAD: 3, OTHER: 4 };
21
+ /**
22
+ * Concurrency from `CREWLY_RESTORE_CONCURRENCY`, clamped to 1..3.
23
+ *
24
+ * @param raw - Env value
25
+ * @returns Concurrency
26
+ */
27
+ export function restoreConcurrencyFromEnv(raw = process.env.CREWLY_RESTORE_CONCURRENCY) {
28
+ const n = Number.parseInt(raw ?? '', 10);
29
+ if (!Number.isFinite(n) || n < 1)
30
+ return RESTORE_QUEUE_CONSTANTS.DEFAULT_CONCURRENCY;
31
+ return Math.min(n, RESTORE_QUEUE_CONSTANTS.MAX_CONCURRENCY);
32
+ }
33
+ /**
34
+ * Order entries: tier first; inside the owner tier, oldest owner message first.
35
+ *
36
+ * @param entries - Entries to order
37
+ * @returns A new, ordered array
38
+ */
39
+ export function orderRestoreEntries(entries) {
40
+ return entries
41
+ .map((e, i) => ({ e, i }))
42
+ .sort((a, b) => a.e.tier - b.e.tier
43
+ || (a.e.tier === RESTORE_TIER.OWNER ? (a.e.ownerSince ?? Infinity) - (b.e.ownerSince ?? Infinity) : 0)
44
+ || a.i - b.i)
45
+ .map((x) => x.e);
46
+ }
47
+ /** The queue itself. */
48
+ export class RestoreQueue {
49
+ concurrency;
50
+ timeoutMs;
51
+ pending = [];
52
+ active = new Set();
53
+ counters = { started: 0, ready: 0, failed: 0, timedOut: 0 };
54
+ running = false;
55
+ done = Promise.resolve();
56
+ logger;
57
+ constructor(concurrency = restoreConcurrencyFromEnv(), timeoutMs = Number(process.env.CREWLY_RESTORE_TIMEOUT_MS) || RESTORE_QUEUE_CONSTANTS.DEFAULT_TIMEOUT_MS) {
58
+ this.concurrency = concurrency;
59
+ this.timeoutMs = timeoutMs;
60
+ this.logger = LoggerService.getInstance().createComponentLogger('RestoreQueue');
61
+ }
62
+ /**
63
+ * Plan and run the restore. Resolves when every entry is ready, failed or
64
+ * out of retries. Returns the same promise while already running.
65
+ *
66
+ * @param entries - Agents to restore
67
+ * @returns Promise settled when the queue is drained
68
+ */
69
+ start(entries) {
70
+ if (this.running)
71
+ return this.done;
72
+ this.pending = orderRestoreEntries(entries).map((entry) => ({ entry, attempt: 0, promoted: false }));
73
+ this.counters = { started: 0, ready: 0, failed: 0, timedOut: 0 };
74
+ this.running = true;
75
+ this.logger.info('Restore plan', {
76
+ concurrency: this.concurrency,
77
+ order: this.pending.map((s, i) => `${i + 1}. ${s.entry.name} (${s.entry.reason})`),
78
+ });
79
+ const workers = Array.from({ length: this.concurrency }, () => this.worker());
80
+ this.done = Promise.all(workers).then(() => {
81
+ this.running = false;
82
+ this.logger.info('Restore queue drained', { ...this.counters });
83
+ });
84
+ return this.done;
85
+ }
86
+ /** Whether the agent is still waiting (not yet started) in the queue. */
87
+ isPending(name) {
88
+ return this.pending.some((s) => s.entry.name === name);
89
+ }
90
+ /**
91
+ * An on-demand wake arrived for an agent. Owner-triggered wakes move it to
92
+ * the front (behind earlier promoted ones); other wakes keep queue order.
93
+ *
94
+ * @param name - Session name
95
+ * @param ownerTriggered - The wake carries an owner message
96
+ * @returns True when the agent is waiting in the queue (the caller must not start it)
97
+ */
98
+ wake(name, ownerTriggered) {
99
+ const at = this.pending.findIndex((s) => s.entry.name === name);
100
+ if (at < 0)
101
+ return false;
102
+ if (ownerTriggered && !this.pending[at].promoted) {
103
+ const [slot] = this.pending.splice(at, 1);
104
+ slot.promoted = true;
105
+ const after = this.pending.reduce((n, s, i) => (s.promoted ? i + 1 : n), 0);
106
+ this.pending.splice(after, 0, slot);
107
+ this.logger.info('Owner wake moved agent to the front of the restore queue', { name, position: after + 1 });
108
+ }
109
+ else {
110
+ this.logger.info('Wake for an agent waiting in the restore queue; keeping queue order', { name, ownerTriggered });
111
+ }
112
+ return true;
113
+ }
114
+ /** Progress for /health. */
115
+ stats() {
116
+ return { running: this.running, pending: this.pending.length, ...this.counters, order: this.pending.map((s) => s.entry.name) };
117
+ }
118
+ async worker() {
119
+ for (;;) {
120
+ const slot = this.pending.shift();
121
+ if (!slot)
122
+ return;
123
+ await this.runSlot(slot);
124
+ }
125
+ }
126
+ async runSlot({ entry, attempt, promoted }) {
127
+ const { name } = entry;
128
+ this.active.add(name);
129
+ this.counters.started++;
130
+ this.logger.info('Restoring agent', { name, attempt, reason: entry.reason, remaining: this.pending.length });
131
+ let timer;
132
+ const TIMEOUT = Symbol('timeout');
133
+ try {
134
+ const outcome = await Promise.race([
135
+ entry.run(attempt),
136
+ new Promise((resolve) => { timer = setTimeout(() => resolve(TIMEOUT), this.timeoutMs); }),
137
+ ]);
138
+ if (outcome === TIMEOUT) {
139
+ this.counters.timedOut++;
140
+ if (attempt < RESTORE_QUEUE_CONSTANTS.MAX_RETRIES) {
141
+ this.logger.warn('Agent did not register in time; moving on and retrying it later', { name, timeoutMs: this.timeoutMs });
142
+ this.pending.push({ entry, attempt: attempt + 1, promoted });
143
+ }
144
+ else {
145
+ this.counters.failed++;
146
+ this.logger.warn('Agent did not register after retry; giving up', { name });
147
+ }
148
+ return;
149
+ }
150
+ if (!outcome.success) {
151
+ this.counters.failed++;
152
+ this.logger.warn('Restore failed', { name });
153
+ return;
154
+ }
155
+ this.counters.ready++;
156
+ this.logger.info('Agent ready', { name });
157
+ try {
158
+ await entry.onReady?.();
159
+ }
160
+ catch (err) {
161
+ this.logger.warn('Post-restore step failed (non-fatal)', { name, error: err instanceof Error ? err.message : String(err) });
162
+ }
163
+ }
164
+ catch (err) {
165
+ this.counters.failed++;
166
+ this.logger.error('Restore threw', { name, error: err instanceof Error ? err.message : String(err) });
167
+ }
168
+ finally {
169
+ if (timer)
170
+ clearTimeout(timer);
171
+ this.active.delete(name);
172
+ }
173
+ }
174
+ }
175
+ let instance = null;
176
+ /** The process-wide restore queue. */
177
+ export function getRestoreQueue() {
178
+ return (instance ??= new RestoreQueue());
179
+ }
180
+ /** Test hook: drop the singleton. */
181
+ export function resetRestoreQueue() {
182
+ instance = null;
183
+ }
184
+ //# sourceMappingURL=restore-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-queue.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/restore-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Memory pressure thresholds.
3
+ *
4
+ * Steve 2026-05-15 dogfood: macOS keeps the "memory used %" stat at
5
+ * 95-99% on virtually every Mac because the OS aggressively uses RAM
6
+ * for file cache (which is reclaimable on demand). Gating spawns purely
7
+ * on usedPercent meant the user's machine permanently skipped every
8
+ * wake action — agents could never come back online. Concrete signal
9
+ * from the log: `consecutiveSkips` climbing past 450 with freeMB
10
+ * fluctuating 80-800 (i.e. plenty of real headroom most of the time).
11
+ *
12
+ * The fix: keep the percent check as a soft signal, but only DECLARE
13
+ * memory pressure when freeMB drops below an absolute headroom floor.
14
+ * A fresh Claude Code process is ~150-200MB RSS; reserve 300MB so we
15
+ * never spawn into an actual OOM situation while letting the cache-
16
+ * inflated 95-99% percent reading pass.
17
+ *
18
+ * Steve 2026-05-22 dogfood follow-up: even with the 300MB floor, the
19
+ * gate fires constantly on macOS because `os.freemem()` only counts
20
+ * STRICTLY-FREE pages — it excludes inactive + speculative pages that
21
+ * the kernel can reclaim on demand. On a typical Mac with 3GB+ of
22
+ * reclaimable cache, os.freemem() routinely reports 50-200MB while
23
+ * Activity Monitor / `vm_stat` show 3-4GB available. The reconciler
24
+ * was effectively never letting wakes through.
25
+ *
26
+ * Real fix: on macOS use `vm_stat` to compute AVAILABLE memory
27
+ * (free + inactive + speculative), which is what the kernel itself
28
+ * uses for OOM decisions. Linux's `os.freemem()` is accurate and
29
+ * keeps the old path.
30
+ */
31
+ export declare const MEMORY_PRESSURE_SPAWN_THRESHOLD = 90;
32
+ export declare const MEMORY_PRESSURE_MIN_FREE_MB = 300;
33
+ /**
34
+ * Get the platform-appropriate free-memory reading in bytes.
35
+ *
36
+ * Exposed for tests; production callers should use {@link getMemoryStats}
37
+ * or {@link isUnderMemoryPressure} instead.
38
+ *
39
+ * @returns free memory in bytes; falls back to os.freemem() if the
40
+ * macOS vm_stat parse fails.
41
+ */
42
+ export declare function getAvailableMemoryBytes(): number;
43
+ /**
44
+ * Check if the system is under memory pressure.
45
+ *
46
+ * Returns true only when BOTH:
47
+ * - usedPercent >= MEMORY_PRESSURE_SPAWN_THRESHOLD (90%), AND
48
+ * - freeMB < MEMORY_PRESSURE_MIN_FREE_MB (300MB)
49
+ *
50
+ * On macOS, "free" includes reclaimable inactive+speculative pages
51
+ * (parsed from `vm_stat`) — without this the reading is ~50MB on a
52
+ * Mac that actually has gigabytes of headroom, and the gate would
53
+ * fire constantly. See module-doc comment for the dogfood history.
54
+ *
55
+ * @returns true if system should NOT spawn new processes
56
+ */
57
+ export declare function isUnderMemoryPressure(): boolean;
58
+ /**
59
+ * Get current memory usage stats.
60
+ * @returns Object with totalMB, freeMB, usedPercent
61
+ */
62
+ export declare function getMemoryStats(): {
63
+ totalMB: number;
64
+ freeMB: number;
65
+ usedPercent: number;
66
+ swapUsedPercent?: number;
67
+ pressureElevated?: boolean;
68
+ };
69
+ /**
70
+ * Swap use and the kernel's own pressure verdict.
71
+ *
72
+ * "Available" memory counts inactive pages as free, which on macOS stays
73
+ * in the gigabytes even while the machine is swapping itself to a crawl
74
+ * (2026-09-23: 10.7 of 12 GB swap, 7 GB compressed, load 117 — and the
75
+ * idle-stop gate still read "memory is fine"). Swap fill and
76
+ * `kern.memorystatus_vm_pressure_level` (1 normal, 2 warn, 4 critical)
77
+ * see that; on Linux, SwapTotal/SwapFree from /proc/meminfo.
78
+ *
79
+ * @returns Swap share in use and whether the OS reports pressure, or null if unreadable
80
+ */
81
+ export declare function readSwapPressure(): {
82
+ swapUsedPercent: number;
83
+ pressureElevated: boolean;
84
+ } | null;
85
+ /** Reset the swap reading cache — test affordance. */
86
+ export declare function _resetSwapCacheForTesting(): void;
87
+ /** Reset the vm_stat cache — test affordance. */
88
+ export declare function _resetVmStatCacheForTesting(): void;
89
+ //# sourceMappingURL=system-health.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-health.util.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/core/system-health.util.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAwE/C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAOhD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAW/C;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAUA;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA2BhG;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,iDAAiD;AACjD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * System health utility functions.
3
+ * Provides shared checks for memory pressure, CPU load, etc.
4
+ * Used by Reconciler, HeartbeatMonitor, Scheduler to gate process spawning.
5
+ *
6
+ * @module services/core/system-health.util
7
+ */
8
+ import * as os from 'os';
9
+ import { execSync } from 'child_process';
10
+ /**
11
+ * Memory pressure thresholds.
12
+ *
13
+ * Steve 2026-05-15 dogfood: macOS keeps the "memory used %" stat at
14
+ * 95-99% on virtually every Mac because the OS aggressively uses RAM
15
+ * for file cache (which is reclaimable on demand). Gating spawns purely
16
+ * on usedPercent meant the user's machine permanently skipped every
17
+ * wake action — agents could never come back online. Concrete signal
18
+ * from the log: `consecutiveSkips` climbing past 450 with freeMB
19
+ * fluctuating 80-800 (i.e. plenty of real headroom most of the time).
20
+ *
21
+ * The fix: keep the percent check as a soft signal, but only DECLARE
22
+ * memory pressure when freeMB drops below an absolute headroom floor.
23
+ * A fresh Claude Code process is ~150-200MB RSS; reserve 300MB so we
24
+ * never spawn into an actual OOM situation while letting the cache-
25
+ * inflated 95-99% percent reading pass.
26
+ *
27
+ * Steve 2026-05-22 dogfood follow-up: even with the 300MB floor, the
28
+ * gate fires constantly on macOS because `os.freemem()` only counts
29
+ * STRICTLY-FREE pages — it excludes inactive + speculative pages that
30
+ * the kernel can reclaim on demand. On a typical Mac with 3GB+ of
31
+ * reclaimable cache, os.freemem() routinely reports 50-200MB while
32
+ * Activity Monitor / `vm_stat` show 3-4GB available. The reconciler
33
+ * was effectively never letting wakes through.
34
+ *
35
+ * Real fix: on macOS use `vm_stat` to compute AVAILABLE memory
36
+ * (free + inactive + speculative), which is what the kernel itself
37
+ * uses for OOM decisions. Linux's `os.freemem()` is accurate and
38
+ * keeps the old path.
39
+ */
40
+ export const MEMORY_PRESSURE_SPAWN_THRESHOLD = 90;
41
+ export const MEMORY_PRESSURE_MIN_FREE_MB = 300;
42
+ /** Cached total memory — never changes during process lifetime. */
43
+ const cachedTotalMem = os.totalmem();
44
+ /**
45
+ * macOS detection. Evaluated on every call rather than captured at
46
+ * module load — tests need to flip platform after importing.
47
+ * Runtime overhead is negligible (os.platform is a sync getter).
48
+ */
49
+ function isDarwin() {
50
+ return os.platform() === 'darwin';
51
+ }
52
+ /**
53
+ * Throttled cache of the last `vm_stat` reading on macOS. Parsing
54
+ * `vm_stat` involves spawning a child process — at the reconciler's
55
+ * 10-second fast-loop cadence that's tolerable but not free. Hold the
56
+ * last reading for 1s so back-to-back callers in the same tick don't
57
+ * each fork.
58
+ */
59
+ const VM_STAT_CACHE_TTL_MS = 1_000;
60
+ let vmStatCache = null;
61
+ /**
62
+ * Read macOS `vm_stat` and compute available memory in bytes.
63
+ *
64
+ * macOS reports pages in 5 main buckets:
65
+ * - free: strictly unused, OS can hand out immediately
66
+ * - speculative: prefetched file pages, reclaimable instantly
67
+ * - inactive: pages not recently used, reclaimable on demand
68
+ * - active: hot working set — NOT reclaimable cheaply
69
+ * - wired: kernel/pinned — never reclaimable
70
+ *
71
+ * "Available" = free + speculative + inactive. This matches what the
72
+ * kernel uses when deciding OOM pressure, and what Activity Monitor
73
+ * shows as "Cached Files + Free" headroom.
74
+ *
75
+ * Returns null on any parse failure so the caller can fall back to
76
+ * `os.freemem()` (overly pessimistic but safe — we'd just over-gate,
77
+ * not under-gate, in the worst case).
78
+ */
79
+ function readMacFreeMemBytes() {
80
+ try {
81
+ const cached = vmStatCache;
82
+ if (cached && Date.now() - cached.at < VM_STAT_CACHE_TTL_MS) {
83
+ return cached.freeMB * 1024 * 1024;
84
+ }
85
+ // -c 1 reports a single sample; default is incremental. Trying to
86
+ // be conservative about runtime — vm_stat with no args takes ~50ms,
87
+ // -c 1 with no interval is essentially instant.
88
+ const out = execSync('vm_stat', { timeout: 1_000, encoding: 'utf8' });
89
+ // First line is the page size: "Mach Virtual Memory Statistics: (page size of 16384 bytes)"
90
+ const pageSizeMatch = out.match(/page size of (\d+) bytes/);
91
+ const pageSize = pageSizeMatch ? Number(pageSizeMatch[1]) : 4096;
92
+ const grab = (label) => {
93
+ const m = out.match(new RegExp(`Pages ${label}[^:]*:\\s+(\\d+)`));
94
+ return m ? Number(m[1]) : 0;
95
+ };
96
+ const freePages = grab('free');
97
+ const inactivePages = grab('inactive');
98
+ const specPages = grab('speculative');
99
+ const availableBytes = (freePages + inactivePages + specPages) * pageSize;
100
+ vmStatCache = { freeMB: availableBytes / 1024 / 1024, at: Date.now() };
101
+ return availableBytes;
102
+ }
103
+ catch {
104
+ return null;
105
+ }
106
+ }
107
+ /**
108
+ * Get the platform-appropriate free-memory reading in bytes.
109
+ *
110
+ * Exposed for tests; production callers should use {@link getMemoryStats}
111
+ * or {@link isUnderMemoryPressure} instead.
112
+ *
113
+ * @returns free memory in bytes; falls back to os.freemem() if the
114
+ * macOS vm_stat parse fails.
115
+ */
116
+ export function getAvailableMemoryBytes() {
117
+ if (isDarwin()) {
118
+ const mac = readMacFreeMemBytes();
119
+ if (mac !== null)
120
+ return mac;
121
+ // Fall through to os.freemem() — conservative but safe.
122
+ }
123
+ return os.freemem();
124
+ }
125
+ /**
126
+ * Check if the system is under memory pressure.
127
+ *
128
+ * Returns true only when BOTH:
129
+ * - usedPercent >= MEMORY_PRESSURE_SPAWN_THRESHOLD (90%), AND
130
+ * - freeMB < MEMORY_PRESSURE_MIN_FREE_MB (300MB)
131
+ *
132
+ * On macOS, "free" includes reclaimable inactive+speculative pages
133
+ * (parsed from `vm_stat`) — without this the reading is ~50MB on a
134
+ * Mac that actually has gigabytes of headroom, and the gate would
135
+ * fire constantly. See module-doc comment for the dogfood history.
136
+ *
137
+ * @returns true if system should NOT spawn new processes
138
+ */
139
+ export function isUnderMemoryPressure() {
140
+ if (cachedTotalMem === 0)
141
+ return false;
142
+ const free = getAvailableMemoryBytes();
143
+ const usedPercent = ((cachedTotalMem - free) / cachedTotalMem) * 100;
144
+ const freeMB = free / 1024 / 1024;
145
+ // Both conditions must hold — percent is a soft signal, free-MB is
146
+ // the binding constraint.
147
+ return (usedPercent >= MEMORY_PRESSURE_SPAWN_THRESHOLD &&
148
+ freeMB < MEMORY_PRESSURE_MIN_FREE_MB);
149
+ }
150
+ /**
151
+ * Get current memory usage stats.
152
+ * @returns Object with totalMB, freeMB, usedPercent
153
+ */
154
+ export function getMemoryStats() {
155
+ if (cachedTotalMem === 0)
156
+ return { totalMB: 0, freeMB: 0, usedPercent: 0 };
157
+ const free = getAvailableMemoryBytes();
158
+ const swap = readSwapPressure();
159
+ return {
160
+ totalMB: Math.round(cachedTotalMem / 1024 / 1024),
161
+ freeMB: Math.round(free / 1024 / 1024),
162
+ usedPercent: Math.round(((cachedTotalMem - free) / cachedTotalMem) * 100 * 10) / 10,
163
+ ...(swap ?? {}),
164
+ };
165
+ }
166
+ const SWAP_CACHE_TTL_MS = 5_000;
167
+ let swapCache = null;
168
+ /**
169
+ * Swap use and the kernel's own pressure verdict.
170
+ *
171
+ * "Available" memory counts inactive pages as free, which on macOS stays
172
+ * in the gigabytes even while the machine is swapping itself to a crawl
173
+ * (2026-09-23: 10.7 of 12 GB swap, 7 GB compressed, load 117 — and the
174
+ * idle-stop gate still read "memory is fine"). Swap fill and
175
+ * `kern.memorystatus_vm_pressure_level` (1 normal, 2 warn, 4 critical)
176
+ * see that; on Linux, SwapTotal/SwapFree from /proc/meminfo.
177
+ *
178
+ * @returns Swap share in use and whether the OS reports pressure, or null if unreadable
179
+ */
180
+ export function readSwapPressure() {
181
+ const cached = swapCache;
182
+ if (cached && Date.now() - cached.at < SWAP_CACHE_TTL_MS)
183
+ return cached.value;
184
+ let value = null;
185
+ try {
186
+ if (isDarwin()) {
187
+ const usage = execSync('sysctl -n vm.swapusage', { timeout: 1_000, encoding: 'utf8' });
188
+ const total = Number(usage.match(/total = ([\d.]+)M/)?.[1] ?? 0);
189
+ const used = Number(usage.match(/used = ([\d.]+)M/)?.[1] ?? 0);
190
+ let level = 1;
191
+ try {
192
+ level = Number(execSync('sysctl -n kern.memorystatus_vm_pressure_level', { timeout: 1_000, encoding: 'utf8' }).trim()) || 1;
193
+ }
194
+ catch {
195
+ // Older macOS without the sysctl: swap alone decides.
196
+ }
197
+ value = { swapUsedPercent: total > 0 ? Math.round((used / total) * 1000) / 10 : 0, pressureElevated: level >= 2 };
198
+ }
199
+ else if (os.platform() === 'linux') {
200
+ const info = execSync('cat /proc/meminfo', { timeout: 1_000, encoding: 'utf8' });
201
+ const kb = (k) => Number(info.match(new RegExp(`${k}:\\s+(\\d+)`))?.[1] ?? 0);
202
+ const total = kb('SwapTotal');
203
+ value = { swapUsedPercent: total > 0 ? Math.round(((total - kb('SwapFree')) / total) * 1000) / 10 : 0, pressureElevated: false };
204
+ }
205
+ }
206
+ catch {
207
+ value = null;
208
+ }
209
+ swapCache = { value, at: Date.now() };
210
+ return value;
211
+ }
212
+ /** Reset the swap reading cache — test affordance. */
213
+ export function _resetSwapCacheForTesting() {
214
+ swapCache = null;
215
+ }
216
+ /** Reset the vm_stat cache — test affordance. */
217
+ export function _resetVmStatCacheForTesting() {
218
+ vmStatCache = null;
219
+ }
220
+ //# sourceMappingURL=system-health.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-health.util.js","sourceRoot":"","sources":["../../../../../../backend/src/services/core/system-health.util.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,10 @@ export interface GeneralSettings {
58
58
  runtimeCommands: Record<AIRuntime, string>;
59
59
  /** Minutes of inactivity before an agent is automatically suspended (0 = disabled) */
60
60
  agentIdleTimeoutMinutes: number;
61
+ /** Max concurrently running agents while the machine is under resource pressure (orchestrator exempt). Default 6. */
62
+ pressureMaxRunningAgents?: number;
63
+ /** Idle timeout in minutes while under resource pressure (0 = use the normal timeout). Default 10. */
64
+ pressureIdleTimeoutMinutes?: number;
61
65
  /** Enable proactive context compaction based on cumulative terminal output volume */
62
66
  enableProactiveCompact: boolean;
63
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"settings.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAEzH;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAOlC,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,cAAc,EAAE,SAAS,CAAC;IAE1B,mEAAmE;IACnE,qBAAqB,EAAE,OAAO,CAAC;IAE/B;;;;OAIG;IACH,2BAA2B,EAAE,OAAO,CAAC;IAErC,yCAAyC;IACzC,sBAAsB,EAAE,MAAM,CAAC;IAE/B,wCAAwC;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAE5B,6BAA6B;IAC7B,cAAc,EAAE,OAAO,CAAC;IAExB,uDAAuD;IACvD,mBAAmB,EAAE,OAAO,CAAC;IAE7B,qFAAqF;IACrF,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC,oFAAoF;IACpF,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE3C,sFAAsF;IACtF,uBAAuB,EAAE,MAAM,CAAC;IAEhC,qHAAqH;IACrH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,sGAAsG;IACtG,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,qFAAqF;IACrF,sBAAsB,EAAE,OAAO,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAEhC,qFAAqF;IACrF,mBAAmB,EAAE,OAAO,CAAC;IAE7B,qDAAqD;IACrD,aAAa,EAAE,OAAO,CAAC;IAEvB;qGACiG;IACjG,aAAa,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;;OAaG;IACH,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,qBAAqB,EAAE,OAAO,CAAC;IAE/B,uDAAuD;IACvD,qBAAqB,EAAE,OAAO,CAAC;IAE/B,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,qCAAqC;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAE5B,kCAAkC;IAClC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IAExB,6CAA6C;IAC7C,uBAAuB,EAAE,OAAO,CAAC;IAEjC,sEAAsE;IACtE,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,8BAA8B;IAC9B,qBAAqB,EAAE,OAAO,CAAC;IAE/B,kDAAkD;IAClD,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAMD;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAK7C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAKpD,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IAEZ,4DAA4D;IAC5D,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,MAAM,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,wEAAwE;IACxE,gBAAgB,CAAC,EAAE;QACjB,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,MAAM,CAAC,EAAE,YAAY,CAAC;YACtB,SAAS,CAAC,EAAE,YAAY,CAAC;YACzB,MAAM,CAAC,EAAE,YAAY,CAAC;YACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;SACzB,CAAC;KACH,CAAC;IAEF,6DAA6D;IAC7D,cAAc,CAAC,EAAE;QACf,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,MAAM,CAAC,EAAE,YAAY,CAAC;YACtB,SAAS,CAAC,EAAE,YAAY,CAAC;YACzB,MAAM,CAAC,EAAE,YAAY,CAAC;YACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;SACzB,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,eAAe,CAAC;IAEzB,8BAA8B;IAC9B,IAAI,EAAE,YAAY,CAAC;IAEnB,6BAA6B;IAC7B,MAAM,EAAE,cAAc,CAAC;IAEvB,kCAAkC;IAClC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAEnC,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE7B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjC,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;IAEf,yCAAyC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AAMX;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,SAAS,CAElE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAgEnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,wBAAwB,CA6FnF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,mBAAmB,GAC3B,cAAc,CA4BhB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAczE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAE5E;AAED,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,WAAM,CAAC;AAErC;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,OAAO,CAAC,eAAe,CAAC,CA+B1B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,GAAG,SAAS,CAgCpB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAyC7E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAiBlE"}
@@ -108,6 +108,8 @@ export function getDefaultSettings() {
108
108
  'crewly-agent': CREWLY_AGENT_MANAGED_COMMAND,
109
109
  },
110
110
  agentIdleTimeoutMinutes: 30,
111
+ pressureMaxRunningAgents: 6,
112
+ pressureIdleTimeoutMinutes: 10,
111
113
  enableProactiveCompact: false,
112
114
  enableThresholdCompact: false,
113
115
  enableSelfEvolution: false,
@@ -182,6 +184,12 @@ export function validateSettings(settings) {
182
184
  if (typeof settings.general.agentIdleTimeoutMinutes === 'number' && settings.general.agentIdleTimeoutMinutes < 0) {
183
185
  errors.push('agentIdleTimeoutMinutes must be >= 0 (0 disables idle suspension)');
184
186
  }
187
+ if (typeof settings.general.pressureMaxRunningAgents === 'number' && settings.general.pressureMaxRunningAgents < 1) {
188
+ errors.push('pressureMaxRunningAgents must be >= 1');
189
+ }
190
+ if (typeof settings.general.pressureIdleTimeoutMinutes === 'number' && settings.general.pressureIdleTimeoutMinutes < 0) {
191
+ errors.push('pressureIdleTimeoutMinutes must be >= 0');
192
+ }
185
193
  if (typeof settings.general.autonomyTickIntervalMinutes !== 'number' || settings.general.autonomyTickIntervalMinutes < 0) {
186
194
  errors.push('autonomyTickIntervalMinutes must be a number >= 0 (0 disables the polling tick — events still fire)');
187
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}