@rubytech/create-maxy-code 0.1.550 → 0.1.552

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 (112) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/agent-dispatch-rule/dist/index.d.ts +22 -8
  3. package/payload/platform/lib/agent-dispatch-rule/dist/index.d.ts.map +1 -1
  4. package/payload/platform/lib/agent-dispatch-rule/dist/index.js +47 -13
  5. package/payload/platform/lib/agent-dispatch-rule/dist/index.js.map +1 -1
  6. package/payload/platform/lib/agent-dispatch-rule/src/__tests__/rule.test.ts +68 -9
  7. package/payload/platform/lib/agent-dispatch-rule/src/index.ts +60 -16
  8. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +3 -3
  9. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +9 -0
  10. package/payload/platform/plugins/docs/references/admin-ui.md +2 -2
  11. package/payload/platform/plugins/scheduling/PLUGIN.md +4 -0
  12. package/payload/platform/plugins/scheduling/mcp/dist/index.js +62 -0
  13. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  14. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js +2 -2
  15. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js.map +1 -1
  16. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/connector-sync-provision.test.js +2 -2
  17. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/connector-sync-provision.test.js.map +1 -1
  18. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate-audits.test.d.ts +2 -0
  19. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate-audits.test.d.ts.map +1 -0
  20. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate-audits.test.js +128 -0
  21. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate-audits.test.js.map +1 -0
  22. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate.test.d.ts +2 -0
  23. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate.test.d.ts.map +1 -0
  24. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate.test.js +135 -0
  25. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate.test.js.map +1 -0
  26. package/payload/platform/plugins/scheduling/mcp/dist/lib/connector-sync-provision.d.ts.map +1 -1
  27. package/payload/platform/plugins/scheduling/mcp/dist/lib/connector-sync-provision.js +21 -8
  28. package/payload/platform/plugins/scheduling/mcp/dist/lib/connector-sync-provision.js.map +1 -1
  29. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.d.ts +92 -0
  30. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.d.ts.map +1 -0
  31. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.js +185 -0
  32. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.js.map +1 -0
  33. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts +8 -1
  34. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts.map +1 -1
  35. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.js.map +1 -1
  36. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts +49 -1
  37. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts.map +1 -1
  38. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js +165 -0
  39. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js.map +1 -1
  40. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.d.ts +2 -0
  41. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.d.ts.map +1 -0
  42. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.js +146 -0
  43. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.js.map +1 -0
  44. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +27 -0
  45. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
  46. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +18 -0
  47. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
  48. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +106 -64
  49. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
  50. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-gate-write.test.d.ts +2 -0
  51. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-gate-write.test.d.ts.map +1 -0
  52. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-gate-write.test.js +218 -0
  53. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-gate-write.test.js.map +1 -0
  54. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.d.ts +2 -0
  55. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.d.ts.map +1 -0
  56. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js +291 -0
  57. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js.map +1 -0
  58. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts +31 -0
  59. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts.map +1 -1
  60. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +44 -1
  61. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -1
  62. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts +3 -1
  63. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -1
  64. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +57 -3
  65. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -1
  66. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts +148 -0
  67. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts.map +1 -0
  68. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js +410 -0
  69. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js.map +1 -0
  70. package/payload/platform/plugins/scheduling/mcp/package.json +1 -0
  71. package/payload/platform/plugins/telegram/.claude-plugin/plugin.json +1 -1
  72. package/payload/platform/plugins/telegram/PLUGIN.md +6 -4
  73. package/payload/platform/plugins/telegram/mcp/dist/index.js +62 -38
  74. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -1
  75. package/payload/platform/plugins/telegram/mcp/dist/lib/account-token.d.ts +18 -5
  76. package/payload/platform/plugins/telegram/mcp/dist/lib/account-token.d.ts.map +1 -1
  77. package/payload/platform/plugins/telegram/mcp/dist/lib/account-token.js +34 -6
  78. package/payload/platform/plugins/telegram/mcp/dist/lib/account-token.js.map +1 -1
  79. package/payload/platform/plugins/telegram/mcp/dist/lib/account-write.d.ts +25 -8
  80. package/payload/platform/plugins/telegram/mcp/dist/lib/account-write.d.ts.map +1 -1
  81. package/payload/platform/plugins/telegram/mcp/dist/lib/account-write.js +28 -16
  82. package/payload/platform/plugins/telegram/mcp/dist/lib/account-write.js.map +1 -1
  83. package/payload/platform/plugins/telegram/mcp/dist/lib/agent-active.d.ts +12 -0
  84. package/payload/platform/plugins/telegram/mcp/dist/lib/agent-active.d.ts.map +1 -0
  85. package/payload/platform/plugins/telegram/mcp/dist/lib/agent-active.js +26 -0
  86. package/payload/platform/plugins/telegram/mcp/dist/lib/agent-active.js.map +1 -0
  87. package/payload/platform/plugins/telegram/mcp/dist/lib/secret-path.d.ts +16 -13
  88. package/payload/platform/plugins/telegram/mcp/dist/lib/secret-path.d.ts.map +1 -1
  89. package/payload/platform/plugins/telegram/mcp/dist/lib/secret-path.js +19 -23
  90. package/payload/platform/plugins/telegram/mcp/dist/lib/secret-path.js.map +1 -1
  91. package/payload/platform/plugins/telegram/mcp/dist/lib/webhook-url.d.ts +9 -7
  92. package/payload/platform/plugins/telegram/mcp/dist/lib/webhook-url.d.ts.map +1 -1
  93. package/payload/platform/plugins/telegram/mcp/dist/lib/webhook-url.js +11 -8
  94. package/payload/platform/plugins/telegram/mcp/dist/lib/webhook-url.js.map +1 -1
  95. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +4 -0
  96. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +1 -1
  97. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +13 -3
  98. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +1 -1
  99. package/payload/platform/plugins/telegram/references/setup-guide.md +16 -8
  100. package/payload/platform/plugins/telegram/skills/configure/SKILL.md +30 -32
  101. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  102. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +1 -0
  103. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  104. package/payload/platform/services/claude-session-manager/dist/pty-census.d.ts +51 -4
  105. package/payload/platform/services/claude-session-manager/dist/pty-census.d.ts.map +1 -1
  106. package/payload/platform/services/claude-session-manager/dist/pty-census.js +60 -10
  107. package/payload/platform/services/claude-session-manager/dist/pty-census.js.map +1 -1
  108. package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.d.ts +64 -1
  109. package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.d.ts.map +1 -1
  110. package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.js +189 -6
  111. package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.js.map +1 -1
  112. package/payload/server/server.js +510 -240
@@ -141,26 +141,57 @@ export function parseCgroupAnonBytes(blob) {
141
141
  * match is load-bearing: `user_usec` and `system_usec` are siblings in the
142
142
  * same file and each is a fraction of the total, so a loose match would
143
143
  * silently understate every session's CPU. */
144
+ /** The `high` line of a cgroup's memory.events, as a COUNT — not bytes, so no
145
+ * kB conversion. Null when absent or unparseable.
146
+ *
147
+ * Task 2382 — the kernel increments this every time it throttles an
148
+ * allocation because the cgroup is over memory.high. Its GROWTH is the only
149
+ * signal that the cohort is being actively throttled right now; the level
150
+ * alone says nothing, being cumulative since the slice was created. Null
151
+ * rather than 0 on an unreadable file, because 0 is a real value meaning
152
+ * "never throttled" and would read as the counter having reset. */
153
+ export function parseCgroupHighEvents(blob) {
154
+ const m = blob.match(/^high (\d+)$/m);
155
+ return m ? Number(m[1]) : null;
156
+ }
144
157
  export function parseCgroupUsageUsec(blob) {
145
158
  const m = blob.match(/^usage_usec (\d+)$/m);
146
159
  return m ? Number(m[1]) : null;
147
160
  }
148
- /** MemTotal / MemAvailable (kB) from /proc/meminfo. Missing field → 0.
161
+ /** MemTotal / MemAvailable / SwapTotal / SwapFree (kB) from a /proc/meminfo
162
+ * blob. Missing field → 0.
149
163
  *
150
- * Task 1709 — the two fallbacks are INDEPENDENT: a /proc/meminfo that parses
151
- * for MemTotal but not MemAvailable yields a positive sysTotalKb beside a
164
+ * Task 1709 — the fallbacks are INDEPENDENT per field: a blob that parses for
165
+ * MemTotal but not MemAvailable yields a positive sysTotalKb beside a
152
166
  * sysAvailKb of 0. A consumer that reads sysAvailKb as "free RAM" must
153
167
  * therefore treat 0 as unmeasured, not as "no free RAM" — see the guard in
154
- * slice-memory-policy.ts. */
168
+ * slice-memory-policy.ts.
169
+ *
170
+ * Task 2382 — the same holds for the swap pair, with one addition: a box with
171
+ * swap disabled has no SwapTotal line at all, so swapTotalKb === 0 means NO
172
+ * SWAP CONFIGURED, and the swap tier declines to act on it rather than
173
+ * dividing by it. The pair exists because MemAvailable cannot see swap
174
+ * exhaustion: with zram fronting the swap devices the swapped pages are held
175
+ * compressed IN RAM, so swap filling RAISES MemAvailable. On realagency,
176
+ * 2026-08-02, swap went to 10156 of 10157 MB while MemAvailable rose to 35%. */
177
+ export function parseMeminfoKb(blob) {
178
+ const field = (name) => {
179
+ const m = blob.match(new RegExp(`^${name}:\\s+(\\d+)\\s+kB$`, 'm'));
180
+ return m ? Number(m[1]) : 0;
181
+ };
182
+ return {
183
+ sysTotalKb: field('MemTotal'),
184
+ sysAvailKb: field('MemAvailable'),
185
+ swapTotalKb: field('SwapTotal'),
186
+ swapFreeKb: field('SwapFree'),
187
+ };
188
+ }
155
189
  function readMeminfoKb() {
156
190
  try {
157
- const info = readFileSync('/proc/meminfo', 'utf8');
158
- const total = info.match(/^MemTotal:\s+(\d+)\s+kB$/m);
159
- const avail = info.match(/^MemAvailable:\s+(\d+)\s+kB$/m);
160
- return { sysTotalKb: total ? Number(total[1]) : 0, sysAvailKb: avail ? Number(avail[1]) : 0 };
191
+ return parseMeminfoKb(readFileSync('/proc/meminfo', 'utf8'));
161
192
  }
162
193
  catch {
163
- return { sysTotalKb: 0, sysAvailKb: 0 };
194
+ return { sysTotalKb: 0, sysAvailKb: 0, swapTotalKb: 0, swapFreeKb: 0 };
164
195
  }
165
196
  }
166
197
  /** allocated + max file handles from /proc/sys/fs/file-nr ("alloc unused max"). */
@@ -224,6 +255,21 @@ export const defaultCensusIo = {
224
255
  const bytes = readCgroupNumber(slice, 'memory.high');
225
256
  return bytes === null ? null : bytesToKb(bytes);
226
257
  },
258
+ sliceHighEvents(scopeCgroup) {
259
+ const slice = sliceCgroupPathFromScope(scopeCgroup);
260
+ if (!slice)
261
+ return null;
262
+ // A key-value file like memory.stat, not a bare number, so readCgroupNumber
263
+ // does not apply.
264
+ let blob;
265
+ try {
266
+ blob = readFileSync(`/sys/fs/cgroup${slice}/memory.events`, 'utf8');
267
+ }
268
+ catch {
269
+ return null;
270
+ }
271
+ return parseCgroupHighEvents(blob);
272
+ },
227
273
  scopeCpuUsec(scopeCgroup) {
228
274
  let blob;
229
275
  try {
@@ -305,7 +351,8 @@ export function collectPtyCensus(io = defaultCensusIo, prior = new Map()) {
305
351
  const sliceKb = firstCgroup === null ? null : io.sliceMem(firstCgroup);
306
352
  const sliceAnonKb = firstCgroup === null ? null : io.sliceAnon(firstCgroup);
307
353
  const sliceHighKb = firstCgroup === null ? null : io.sliceHigh(firstCgroup);
308
- const { sysTotalKb, sysAvailKb } = io.meminfoKb();
354
+ const sliceHighEvents = firstCgroup === null ? null : io.sliceHighEvents(firstCgroup);
355
+ const { sysTotalKb, sysAvailKb, swapTotalKb, swapFreeKb } = io.meminfoKb();
309
356
  const { fdOpen, fdMax } = io.fileNr();
310
357
  return {
311
358
  snapshot: {
@@ -318,8 +365,11 @@ export function collectPtyCensus(io = defaultCensusIo, prior = new Map()) {
318
365
  sliceKb,
319
366
  sliceAnonKb,
320
367
  sliceHighKb,
368
+ sliceHighEvents,
321
369
  sysTotalKb,
322
370
  sysAvailKb,
371
+ swapTotalKb,
372
+ swapFreeKb,
323
373
  fdOpen,
324
374
  fdMax,
325
375
  },
@@ -1 +1 @@
1
- {"version":3,"file":"pty-census.js","sourceRoot":"","sources":["../src/pty-census.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-census.js","sourceRoot":"","sources":["../src/pty-census.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type PtyCensusSnapshot, type Logger } from './pty-census.js';
1
+ import { type CensusSession, type PtyCensusSnapshot, type Logger } from './pty-census.js';
2
2
  import { type SystemctlRunner } from './systemd-scope.js';
3
3
  import type { FsWatcher, SessionRow } from './fs-watcher.js';
4
4
  /** Reclaim an idle operator session when free RAM falls below this. Sits one
@@ -20,6 +20,17 @@ export declare const SLICE_MIN_HIGH_KB: number;
20
20
  * population, and long enough not to take a session an operator is mid-thought
21
21
  * on. A judgement call, not a measurement. */
22
22
  export declare const IDLE_TTL_MS: number;
23
+ /** Task 2382 — swap free, as a percentage of swap total, below which the
24
+ * cohort is one reclaim away from having nowhere to put a page.
25
+ *
26
+ * A FOURTH tier, above the three above, because none of them can see this.
27
+ * All three key on MemAvailable, and with zram fronting the swap devices the
28
+ * swapped pages are held compressed IN RAM, so swap filling RAISES
29
+ * MemAvailable. On realagency, 2026-08-02, swap went to 10156 of 10157 MB
30
+ * while MemAvailable ROSE to 35% — every tier read healthy and the box
31
+ * stopped executing. earlyoom could not help either: its condition is
32
+ * `mem <= 10% AND swap <= 10%`, ANDed, and v1.7 has no swap-only mode. */
33
+ export declare const SWAP_FLOOR_PCT = 25;
23
34
  /** RAM held by everything that is neither a session nor free: the co-resident
24
35
  * Neo4j JVMs, Ollama, the brand servers, edge/manager, the OS.
25
36
  *
@@ -108,6 +119,38 @@ export declare function shouldApplyMemoryHigh(desiredKb: number, currentKb: numb
108
119
  * taken. No attachment signal is consulted; the one that exists (Task 1705's
109
120
  * stream-lifecycle) lives in the UI server process, not this one. */
110
121
  export declare function selectVictim(rows: readonly SessionRow[], nowMs: number, idleTtlMs: number): SessionRow | null;
122
+ /** Task 2382 — true when swap is nearly gone AND the kernel is actively
123
+ * throttling the cohort. Both halves are required, and the second is what
124
+ * keeps this off a healthy box: swap filling while the slice sits under its
125
+ * ceiling is ordinary use of swap, and stopping a session for it would be a
126
+ * false positive. The pair first holds on the realagency samples at 20:36:45Z,
127
+ * six minutes before the freeze.
128
+ *
129
+ * Declines in three measured-absence cases, each otherwise a false positive:
130
+ * no swap configured (swapTotalKb 0 — there is nothing to be exhausted, and
131
+ * the tier must not divide by it), an unreadable memory.events this tick, and
132
+ * the first tick after start() when no previous count exists. A measurement
133
+ * gap is never read as growth.
134
+ *
135
+ * Integer arithmetic throughout: a float ratio would put the boundary case at
136
+ * the mercy of rounding. */
137
+ export declare function shouldStopForSwap(swapTotalKb: number, swapFreeKb: number, highEvents: number | null, prevHighEvents: number | null): boolean;
138
+ /** Task 2382 — the live row of the largest session by scope memory.current,
139
+ * or null.
140
+ *
141
+ * NO IDLE PREDICATE, and that is the whole point. selectVictim above requires
142
+ * status:'idle' for 30 minutes, which is exactly why it logged victim=none on
143
+ * 14 of the 16 ticks while realagency died with ten busy sessions. Under swap
144
+ * exhaustion the alternative to stopping the largest is losing all of them
145
+ * plus a hand power-cycle. Safe on the same grounds selectVictim states: the
146
+ * transcript is the durable artifact and `--resume` reconstitutes the session.
147
+ *
148
+ * The rc-daemon is excluded because it is the spawner, not a user session. A
149
+ * census session with no live row is skipped rather than reported: it carries
150
+ * no scope token, so there is nothing to stop. When that skip empties the
151
+ * field the tick logs victim=none beside the live count, which is what makes
152
+ * the mismatch visible. */
153
+ export declare function selectLargestVictim(sessions: readonly CensusSession[], rows: readonly SessionRow[]): SessionRow | null;
111
154
  export interface ReclaimLine {
112
155
  sessionId: string;
113
156
  /** The scope unit stopped, or 'none' when no tracker resolved. */
@@ -124,6 +167,26 @@ export declare function formatReclaim(a: ReclaimLine): string;
124
167
  /** Pure — no I/O. Pressure with no reclaimable session is a real state and must
125
168
  * not be silent; mirrors `[pty-cap] ... evicted=none`. */
126
169
  export declare function formatPressureNoVictim(sysAvailKb: number, thresholdKb: number): string;
170
+ export interface SwapKillLine {
171
+ sessionId: string;
172
+ /** The scope unit stopped, or 'none' when no tracker resolved. */
173
+ unit: string;
174
+ /** The victim's scope-subtree memory.current, from the census row. */
175
+ rssKb: number;
176
+ swapFreeKb: number;
177
+ swapTotalKb: number;
178
+ highDelta: number;
179
+ }
180
+ /** Pure — no I/O. Names the session AND the two numbers that condemned it, so
181
+ * an automatic stop of a session that was mid-turn is as legible afterwards as
182
+ * an operator stop. */
183
+ export declare function formatSwapKill(a: SwapKillLine): string;
184
+ /** Pure — no I/O. The trigger holding with nothing to stop is this tier's blind
185
+ * spot: it emits no action, so without a line of its own it is
186
+ * indistinguishable from a healthy box. `live` is carried because victim=none
187
+ * beside a non-zero live count is what says the pressure is outside the slice.
188
+ * Mirrors formatPressureNoVictim. */
189
+ export declare function formatSwapNoVictim(swapFreeKb: number, swapTotalKb: number, highDelta: number, live: number): string;
127
190
  /** Pure — no I/O. Names the baseline so an operator can see WHY the bound is
128
191
  * what it is, not merely that it changed. */
129
192
  export declare function formatSliceHighApplied(baselineKb: number, highKb: number, previousKb: number | null): string;
@@ -1 +1 @@
1
- {"version":3,"file":"slice-memory-policy.d.ts","sourceRoot":"","sources":["../src/slice-memory-policy.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5D;;;mBAGmB;AACnB,eAAO,MAAM,aAAa,QAAkB,CAAA;AAE5C;wEACwE;AACxE,eAAO,MAAM,kBAAkB,QAAkB,CAAA;AAEjD;0EAC0E;AAC1E,eAAO,MAAM,aAAa,QAAkB,CAAA;AAE5C;wDACwD;AACxD,eAAO,MAAM,iBAAiB,QAAkB,CAAA;AAEhD;;;+CAG+C;AAC/C,eAAO,MAAM,WAAW,QAAiB,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAiCwE;AACxE,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DA+B8D;AAC9D,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED;;;sEAGsE;AACtE,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAG1F;AAED;;;;;;;;;;;;;sEAasE;AACtE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,UAAU,EAAE,EAC3B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,IAAI,CAUnB;AAMD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED;mDACmD;AACnD,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAMpD;AAED;2DAC2D;AAC3D,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED;8CAC8C;AAC9C,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,CAKR;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,qDAAqD;IACrD,QAAQ,IAAI,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,SAAS,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB;kEAC8D;IAC9D,OAAO,CAAC,EAAE,MAAM,iBAAiB,CAAA;IACjC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,iBAAiB,CA2LtF"}
1
+ {"version":3,"file":"slice-memory-policy.d.ts","sourceRoot":"","sources":["../src/slice-memory-policy.ts"],"names":[],"mappings":"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"}
@@ -28,17 +28,28 @@
28
28
  // constraint; a box-wide RAM signal does express it.
29
29
  //
30
30
  // Ordering against the existing gates, deliberate:
31
+ // swapFree < 25% AND high events growing -> stop the largest live session (2382)
31
32
  // sysAvail < RECLAIM_AT (8G) -> reclaim idle-oldest operator session
32
33
  // memAvail < MIN_ADMISSION_MB (4G) -> refuse new specialists (Task 600)
33
34
  // slice > MemoryHigh -> kernel throttles the cohort
34
- // Recover, then refuse, then throttle.
35
+ // Relieve, then recover, then refuse, then throttle.
36
+ //
37
+ // Task 2382 added the top tier, and it is the ONE TIER THAT DOES NOT KEY ON
38
+ // MemAvailable — which is exactly why it exists. The paragraph above is true of
39
+ // the three tiers below it, and false of this one: with zram fronting the swap
40
+ // devices the swapped pages are held compressed in RAM, so swap filling RAISES
41
+ // MemAvailable. On realagency, 2026-08-02, swap reached 10156 of 10157 MB while
42
+ // MemAvailable rose to 35%; every MemAvailable-keyed tier read healthy and the
43
+ // box stopped executing. This tier reads /proc/meminfo's swap pair and the
44
+ // slice's memory.events `high` counter instead.
35
45
  //
36
46
  // Shape mirrors pty-census.ts / session-cap-audit.ts: PURE derivations + PURE
37
47
  // formatters (no I/O, unit-tested) + an impure collector + a start/stop factory
38
48
  // whose setInterval is unref'd and cleared on shutdown.
39
- import { collectPtyCensus } from './pty-census.js';
49
+ import { collectPtyCensus, } from './pty-census.js';
40
50
  import { CLAUDE_PTYS_SLICE, scopeUnitName, defaultSystemctlRunner, } from './systemd-scope.js';
41
51
  import { stopSession, getPtyTrackerForTests } from './pty-spawner.js';
52
+ import { isDaemonUnitToken } from './session-memory-cap.js';
42
53
  /** Reclaim an idle operator session when free RAM falls below this. Sits one
43
54
  * step above Task 600's MIN_ADMISSION_MB (4 GB) so reclaim precedes refusal:
44
55
  * recovering RAM is preferable to refusing work. A judgement call, not a
@@ -58,6 +69,17 @@ export const SLICE_MIN_HIGH_KB = 2 * 1024 * 1024;
58
69
  * population, and long enough not to take a session an operator is mid-thought
59
70
  * on. A judgement call, not a measurement. */
60
71
  export const IDLE_TTL_MS = 30 * 60 * 1000;
72
+ /** Task 2382 — swap free, as a percentage of swap total, below which the
73
+ * cohort is one reclaim away from having nowhere to put a page.
74
+ *
75
+ * A FOURTH tier, above the three above, because none of them can see this.
76
+ * All three key on MemAvailable, and with zram fronting the swap devices the
77
+ * swapped pages are held compressed IN RAM, so swap filling RAISES
78
+ * MemAvailable. On realagency, 2026-08-02, swap went to 10156 of 10157 MB
79
+ * while MemAvailable ROSE to 35% — every tier read healthy and the box
80
+ * stopped executing. earlyoom could not help either: its condition is
81
+ * `mem <= 10% AND swap <= 10%`, ANDed, and v1.7 has no swap-only mode. */
82
+ export const SWAP_FLOOR_PCT = 25;
61
83
  /** RAM held by everything that is neither a session nor free: the co-resident
62
84
  * Neo4j JVMs, Ollama, the brand servers, edge/manager, the OS.
63
85
  *
@@ -162,6 +184,62 @@ export function selectVictim(rows, nowMs, idleTtlMs) {
162
184
  return null;
163
185
  return candidates.reduce((oldest, r) => (r.updatedAt < oldest.updatedAt ? r : oldest));
164
186
  }
187
+ /** Task 2382 — true when swap is nearly gone AND the kernel is actively
188
+ * throttling the cohort. Both halves are required, and the second is what
189
+ * keeps this off a healthy box: swap filling while the slice sits under its
190
+ * ceiling is ordinary use of swap, and stopping a session for it would be a
191
+ * false positive. The pair first holds on the realagency samples at 20:36:45Z,
192
+ * six minutes before the freeze.
193
+ *
194
+ * Declines in three measured-absence cases, each otherwise a false positive:
195
+ * no swap configured (swapTotalKb 0 — there is nothing to be exhausted, and
196
+ * the tier must not divide by it), an unreadable memory.events this tick, and
197
+ * the first tick after start() when no previous count exists. A measurement
198
+ * gap is never read as growth.
199
+ *
200
+ * Integer arithmetic throughout: a float ratio would put the boundary case at
201
+ * the mercy of rounding. */
202
+ export function shouldStopForSwap(swapTotalKb, swapFreeKb, highEvents, prevHighEvents) {
203
+ if (swapTotalKb <= 0)
204
+ return false;
205
+ if (highEvents === null || prevHighEvents === null)
206
+ return false;
207
+ if (highEvents <= prevHighEvents)
208
+ return false;
209
+ return swapFreeKb * 100 < swapTotalKb * SWAP_FLOOR_PCT;
210
+ }
211
+ /** Task 2382 — the live row of the largest session by scope memory.current,
212
+ * or null.
213
+ *
214
+ * NO IDLE PREDICATE, and that is the whole point. selectVictim above requires
215
+ * status:'idle' for 30 minutes, which is exactly why it logged victim=none on
216
+ * 14 of the 16 ticks while realagency died with ten busy sessions. Under swap
217
+ * exhaustion the alternative to stopping the largest is losing all of them
218
+ * plus a hand power-cycle. Safe on the same grounds selectVictim states: the
219
+ * transcript is the durable artifact and `--resume` reconstitutes the session.
220
+ *
221
+ * The rc-daemon is excluded because it is the spawner, not a user session. A
222
+ * census session with no live row is skipped rather than reported: it carries
223
+ * no scope token, so there is nothing to stop. When that skip empties the
224
+ * field the tick logs victim=none beside the live count, which is what makes
225
+ * the mismatch visible. */
226
+ export function selectLargestVictim(sessions, rows) {
227
+ const liveById = new Map(rows.filter((r) => r.state === 'live').map((r) => [r.sessionId, r]));
228
+ let best = null;
229
+ let bestKb = -1;
230
+ for (const s of sessions) {
231
+ const r = liveById.get(s.sessionId);
232
+ if (!r)
233
+ continue;
234
+ if (r.scopeUnitToken !== null && isDaemonUnitToken(r.scopeUnitToken))
235
+ continue;
236
+ if (s.memKb > bestKb) {
237
+ best = r;
238
+ bestKb = s.memKb;
239
+ }
240
+ }
241
+ return best;
242
+ }
165
243
  const TAG = '[session-reclaim]';
166
244
  const kbToMb = (kb) => Math.round(kb / 1024);
167
245
  /** Pure — no I/O. Carries what happened AND the numbers that caused it, so an
@@ -176,6 +254,24 @@ export function formatReclaim(a) {
176
254
  export function formatPressureNoVictim(sysAvailKb, thresholdKb) {
177
255
  return `${TAG} pressure memAvailMb=${kbToMb(sysAvailKb)} thresholdMb=${kbToMb(thresholdKb)} victim=none`;
178
256
  }
257
+ const swapFreePct = (freeKb, totalKb) => totalKb > 0 ? Math.round((freeKb / totalKb) * 100) : 0;
258
+ /** Pure — no I/O. Names the session AND the two numbers that condemned it, so
259
+ * an automatic stop of a session that was mid-turn is as legible afterwards as
260
+ * an operator stop. */
261
+ export function formatSwapKill(a) {
262
+ return (`${TAG} op=swap-kill sessionId=${a.sessionId} unit=${a.unit} rssMb=${kbToMb(a.rssKb)} ` +
263
+ `swapFreePct=${swapFreePct(a.swapFreeKb, a.swapTotalKb)} highDelta=${a.highDelta} ` +
264
+ `reason=swap-exhaustion`);
265
+ }
266
+ /** Pure — no I/O. The trigger holding with nothing to stop is this tier's blind
267
+ * spot: it emits no action, so without a line of its own it is
268
+ * indistinguishable from a healthy box. `live` is carried because victim=none
269
+ * beside a non-zero live count is what says the pressure is outside the slice.
270
+ * Mirrors formatPressureNoVictim. */
271
+ export function formatSwapNoVictim(swapFreeKb, swapTotalKb, highDelta, live) {
272
+ return (`${TAG} op=swap-exhaustion swapFreePct=${swapFreePct(swapFreeKb, swapTotalKb)} ` +
273
+ `highDelta=${highDelta} victim=none live=${live}`);
274
+ }
179
275
  /** Pure — no I/O. Names the baseline so an operator can see WHY the bound is
180
276
  * what it is, not merely that it changed. */
181
277
  export function formatSliceHighApplied(baselineKb, highKb, previousKb) {
@@ -191,6 +287,12 @@ export function createSliceMemoryPolicy(deps) {
191
287
  const collect = deps.collect ?? (() => collectPtyCensus().snapshot);
192
288
  const runSystemctl = deps.runSystemctl ?? defaultSystemctlRunner;
193
289
  let timer = null;
290
+ // Task 2382 — the previous tick's memory.high event count. The swap tier
291
+ // reads the DELTA, so it must decline on the first tick, and it is assigned
292
+ // only on a measurable tick: the unmeasurable-tick guard returns before this
293
+ // is touched, leaving the last real count in place rather than clearing it
294
+ // or overwriting it from a snapshot the guard already rejected.
295
+ let prevHighEvents = null;
194
296
  function sizeBound(snap) {
195
297
  // sliceAnonKb null: no live scope resolved the slice path, or the memory
196
298
  // cgroup controller is disabled — where MemoryHigh is a silent no-op
@@ -210,20 +312,83 @@ export function createSliceMemoryPolicy(deps) {
210
312
  // process hoped was there.
211
313
  if (!shouldApplyMemoryHigh(desiredKb, snap.sliceHighKb))
212
314
  return;
315
+ const startedMs = Date.now();
213
316
  const r = runSystemctl([
214
317
  '--user',
215
318
  'set-property',
216
319
  CLAUDE_PTYS_SLICE,
217
320
  `MemoryHigh=${kbToMb(desiredKb)}M`,
218
321
  ]);
322
+ const elapsedMs = Date.now() - startedMs;
219
323
  if (r.exitCode !== 0) {
220
324
  // Never discard the error body — it is the only account of why the bound
221
- // this task exists to fix is not in force.
222
- deps.logger(`${TAG} op=slice-high-failed exitCode=${r.exitCode} stderr=${r.stderr.trim()}`);
325
+ // this task exists to fix is not in force. Task 2382: on realagency,
326
+ // 2026-08-02 20:37:08.209Z, this line printed stderr alone, stderr was
327
+ // empty, and the call had taken 10.0 seconds. Both streams and the
328
+ // elapsed time, or the next failure is as mute as that one was.
329
+ deps.logger(`${TAG} op=slice-high-failed exitCode=${r.exitCode} ms=${elapsedMs} ` +
330
+ `stderr=${r.stderr.trim()} stdout=${r.stdout.trim()}`);
223
331
  return;
224
332
  }
225
333
  deps.logger(formatSliceHighApplied(baselineKb, desiredKb, snap.sliceHighKb));
226
334
  }
335
+ /** Task 2382 — the tier above reclaim. Returns true when it issued a stop,
336
+ * so the tick does not then reclaim as well: both tiers stop sessions and
337
+ * one per tick is the bound. Returning false when it merely declines is
338
+ * deliberate — a swap tier with no victim must not pre-empt the idle-oldest
339
+ * tier, which may well have one. */
340
+ function swapTier(snap) {
341
+ const highDelta = snap.sliceHighEvents !== null && prevHighEvents !== null
342
+ ? snap.sliceHighEvents - prevHighEvents
343
+ : 0;
344
+ if (!shouldStopForSwap(snap.swapTotalKb, snap.swapFreeKb, snap.sliceHighEvents, prevHighEvents)) {
345
+ return false;
346
+ }
347
+ const victim = selectLargestVictim(snap.sessions, deps.watcher.all());
348
+ if (!victim) {
349
+ deps.logger(formatSwapNoVictim(snap.swapFreeKb, snap.swapTotalKb, highDelta, snap.live));
350
+ return false;
351
+ }
352
+ // From the census row rather than re-read: the snapshot is the measurement
353
+ // the decision was made on, and a second read would report a different
354
+ // number from the one that condemned the session.
355
+ const rssKb = snap.sessions.find((s) => s.sessionId === victim.sessionId)?.memKb ?? 0;
356
+ // Same two token sources as the reclaim: a session this manager spawned is
357
+ // in the tracker map, one that survived a manager restart is not and
358
+ // carries its token on the row.
359
+ const tracker = getPtyTrackerForTests(victim.sessionId);
360
+ const token = tracker ? tracker.scopeUnitToken : victim.scopeUnitToken;
361
+ const unit = token === null ? 'none' : scopeUnitName(token);
362
+ void stopSession({
363
+ killGraceMs: deps.killGraceMs,
364
+ logger: deps.logger,
365
+ runSystemctl: deps.runSystemctl,
366
+ rowScopeUnitToken: victim.scopeUnitToken,
367
+ rowPid: victim.pid,
368
+ }, victim.sessionId)
369
+ .then((outcome) => {
370
+ // Same rule as the reclaim: no scope resolved means no signal was sent,
371
+ // and the RAM a swap-kill line would claim to have freed is still held.
372
+ if (outcome.path === 'no-store-entry') {
373
+ deps.logger(`${TAG} op=swap-kill-no-op sessionId=${victim.sessionId} reason=no-scope-resolved ` +
374
+ `note=ram-still-held`);
375
+ return;
376
+ }
377
+ deps.logger(formatSwapKill({
378
+ sessionId: victim.sessionId,
379
+ unit,
380
+ rssKb,
381
+ swapFreeKb: snap.swapFreeKb,
382
+ swapTotalKb: snap.swapTotalKb,
383
+ highDelta,
384
+ }));
385
+ })
386
+ .catch((err) => {
387
+ deps.logger(`${TAG} op=swap-kill-failed sessionId=${victim.sessionId} ` +
388
+ `message=${err instanceof Error ? err.message : String(err)}`);
389
+ });
390
+ return true;
391
+ }
227
392
  function reclaim(snap) {
228
393
  if (snap.sysAvailKb >= RECLAIM_AT_KB)
229
394
  return;
@@ -318,11 +483,29 @@ export function createSliceMemoryPolicy(deps) {
318
483
  const heartbeatBaselineKb = snap.sliceAnonKb === null
319
484
  ? null
320
485
  : resolveNonSessionBaselineKb(snap.sysTotalKb, snap.sysAvailKb, snap.sliceAnonKb);
486
+ // Task 2382 — swap and the throttle counter ride the same heartbeat.
487
+ // Without them the 2026-08-02 freeze had to be reconstructed from
488
+ // rss-sampler.log, because this line reported availMb RISING across the
489
+ // final four minutes while swap sat at 100%. swapTotalMb=0 renders as 0
490
+ // because no swap is a measured fact; "-" is reserved for a field that
491
+ // could not be read at all, which is a different claim.
492
+ const heartbeatHighDelta = snap.sliceHighEvents === null || prevHighEvents === null
493
+ ? '-'
494
+ : String(snap.sliceHighEvents - prevHighEvents);
321
495
  deps.logger(`${TAG} op=tick baselineMb=${heartbeatBaselineKb === null ? '-' : kbToMb(heartbeatBaselineKb)} ` +
322
496
  `availMb=${kbToMb(snap.sysAvailKb)} totalMb=${kbToMb(snap.sysTotalKb)} ` +
323
- `sliceAnonMb=${snap.sliceAnonKb === null ? '-' : kbToMb(snap.sliceAnonKb)}`);
497
+ `sliceAnonMb=${snap.sliceAnonKb === null ? '-' : kbToMb(snap.sliceAnonKb)} ` +
498
+ `swapFreeMb=${kbToMb(snap.swapFreeKb)} swapTotalMb=${kbToMb(snap.swapTotalKb)} ` +
499
+ `highEvents=${snap.sliceHighEvents === null ? '-' : snap.sliceHighEvents} ` +
500
+ `highDelta=${heartbeatHighDelta}`);
324
501
  sizeBound(snap);
325
- reclaim(snap);
502
+ // Task 2382 — swap exhaustion outranks the MemAvailable tiers, because it
503
+ // is the one condition none of them can see. A stop here pre-empts the
504
+ // reclaim below; a decline does not.
505
+ const stopped = swapTier(snap);
506
+ prevHighEvents = snap.sliceHighEvents;
507
+ if (!stopped)
508
+ reclaim(snap);
326
509
  }
327
510
  return {
328
511
  tickOnce,
@@ -1 +1 @@
1
- {"version":3,"file":"slice-memory-policy.js","sourceRoot":"","sources":["../src/slice-memory-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slice-memory-policy.js","sourceRoot":"","sources":["../src/slice-memory-policy.ts"],"names":[],"mappings":"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"}