@0xmaxma/claude-gateway 1.6.8 → 1.7.0

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 (223) hide show
  1. package/README.md +149 -20
  2. package/config.template.json +59 -1
  3. package/dist/agent/dreaming/accept.d.ts +43 -0
  4. package/dist/agent/dreaming/accept.d.ts.map +1 -0
  5. package/dist/agent/dreaming/accept.js +230 -0
  6. package/dist/agent/dreaming/accept.js.map +1 -0
  7. package/dist/agent/dreaming/applier.d.ts +77 -0
  8. package/dist/agent/dreaming/applier.d.ts.map +1 -0
  9. package/dist/agent/dreaming/applier.js +406 -0
  10. package/dist/agent/dreaming/applier.js.map +1 -0
  11. package/dist/agent/dreaming/audit.d.ts +27 -0
  12. package/dist/agent/dreaming/audit.d.ts.map +1 -0
  13. package/dist/agent/dreaming/audit.js +100 -0
  14. package/dist/agent/dreaming/audit.js.map +1 -0
  15. package/dist/agent/dreaming/compactor.d.ts +66 -0
  16. package/dist/agent/dreaming/compactor.d.ts.map +1 -0
  17. package/dist/agent/dreaming/compactor.js +306 -0
  18. package/dist/agent/dreaming/compactor.js.map +1 -0
  19. package/dist/agent/dreaming/config.d.ts +19 -0
  20. package/dist/agent/dreaming/config.d.ts.map +1 -0
  21. package/dist/agent/dreaming/config.js +107 -0
  22. package/dist/agent/dreaming/config.js.map +1 -0
  23. package/dist/agent/dreaming/episodic.d.ts +42 -0
  24. package/dist/agent/dreaming/episodic.d.ts.map +1 -0
  25. package/dist/agent/dreaming/episodic.js +116 -0
  26. package/dist/agent/dreaming/episodic.js.map +1 -0
  27. package/dist/agent/dreaming/gather.d.ts +31 -0
  28. package/dist/agent/dreaming/gather.d.ts.map +1 -0
  29. package/dist/agent/dreaming/gather.js +55 -0
  30. package/dist/agent/dreaming/gather.js.map +1 -0
  31. package/dist/agent/dreaming/index.d.ts +87 -0
  32. package/dist/agent/dreaming/index.d.ts.map +1 -0
  33. package/dist/agent/dreaming/index.js +377 -0
  34. package/dist/agent/dreaming/index.js.map +1 -0
  35. package/dist/agent/dreaming/migrate-cli.d.ts +17 -0
  36. package/dist/agent/dreaming/migrate-cli.d.ts.map +1 -0
  37. package/dist/agent/dreaming/migrate-cli.js +42 -0
  38. package/dist/agent/dreaming/migrate-cli.js.map +1 -0
  39. package/dist/agent/dreaming/migrate.d.ts +72 -0
  40. package/dist/agent/dreaming/migrate.d.ts.map +1 -0
  41. package/dist/agent/dreaming/migrate.js +374 -0
  42. package/dist/agent/dreaming/migrate.js.map +1 -0
  43. package/dist/agent/dreaming/report.d.ts +39 -0
  44. package/dist/agent/dreaming/report.d.ts.map +1 -0
  45. package/dist/agent/dreaming/report.js +121 -0
  46. package/dist/agent/dreaming/report.js.map +1 -0
  47. package/dist/agent/dreaming/reviewer.d.ts +43 -0
  48. package/dist/agent/dreaming/reviewer.d.ts.map +1 -0
  49. package/dist/agent/dreaming/reviewer.js +249 -0
  50. package/dist/agent/dreaming/reviewer.js.map +1 -0
  51. package/dist/agent/dreaming/staleness.d.ts +68 -0
  52. package/dist/agent/dreaming/staleness.d.ts.map +1 -0
  53. package/dist/agent/dreaming/staleness.js +281 -0
  54. package/dist/agent/dreaming/staleness.js.map +1 -0
  55. package/dist/agent/dreaming/types.d.ts +130 -0
  56. package/dist/agent/dreaming/types.d.ts.map +1 -0
  57. package/dist/agent/dreaming/types.js +10 -0
  58. package/dist/agent/dreaming/types.js.map +1 -0
  59. package/dist/agent/knowledge/archive-db.d.ts +114 -0
  60. package/dist/agent/knowledge/archive-db.d.ts.map +1 -0
  61. package/dist/agent/knowledge/archive-db.js +474 -0
  62. package/dist/agent/knowledge/archive-db.js.map +1 -0
  63. package/dist/agent/knowledge/chunk.d.ts +21 -0
  64. package/dist/agent/knowledge/chunk.d.ts.map +1 -0
  65. package/dist/agent/knowledge/chunk.js +67 -0
  66. package/dist/agent/knowledge/chunk.js.map +1 -0
  67. package/dist/agent/knowledge/config.d.ts +20 -0
  68. package/dist/agent/knowledge/config.d.ts.map +1 -0
  69. package/dist/agent/knowledge/config.js +143 -0
  70. package/dist/agent/knowledge/config.js.map +1 -0
  71. package/dist/agent/knowledge/graph-demo.d.ts +25 -0
  72. package/dist/agent/knowledge/graph-demo.d.ts.map +1 -0
  73. package/dist/agent/knowledge/graph-demo.js +132 -0
  74. package/dist/agent/knowledge/graph-demo.js.map +1 -0
  75. package/dist/agent/knowledge/index.d.ts +24 -0
  76. package/dist/agent/knowledge/index.d.ts.map +1 -0
  77. package/dist/agent/knowledge/index.js +50 -0
  78. package/dist/agent/knowledge/index.js.map +1 -0
  79. package/dist/agent/knowledge/indexer.d.ts +34 -0
  80. package/dist/agent/knowledge/indexer.d.ts.map +1 -0
  81. package/dist/agent/knowledge/indexer.js +271 -0
  82. package/dist/agent/knowledge/indexer.js.map +1 -0
  83. package/dist/agent/knowledge/lifecycle.d.ts +91 -0
  84. package/dist/agent/knowledge/lifecycle.d.ts.map +1 -0
  85. package/dist/agent/knowledge/lifecycle.js +205 -0
  86. package/dist/agent/knowledge/lifecycle.js.map +1 -0
  87. package/dist/agent/knowledge/provenance.d.ts +15 -0
  88. package/dist/agent/knowledge/provenance.d.ts.map +1 -0
  89. package/dist/agent/knowledge/provenance.js +37 -0
  90. package/dist/agent/knowledge/provenance.js.map +1 -0
  91. package/dist/agent/knowledge/reindex-cli.d.ts +13 -0
  92. package/dist/agent/knowledge/reindex-cli.d.ts.map +1 -0
  93. package/dist/agent/knowledge/reindex-cli.js +53 -0
  94. package/dist/agent/knowledge/reindex-cli.js.map +1 -0
  95. package/dist/agent/knowledge/reindex-spawn.d.ts +30 -0
  96. package/dist/agent/knowledge/reindex-spawn.d.ts.map +1 -0
  97. package/dist/agent/knowledge/reindex-spawn.js +97 -0
  98. package/dist/agent/knowledge/reindex-spawn.js.map +1 -0
  99. package/dist/agent/knowledge/shared-promote.d.ts +18 -0
  100. package/dist/agent/knowledge/shared-promote.d.ts.map +1 -0
  101. package/dist/agent/knowledge/shared-promote.js +29 -0
  102. package/dist/agent/knowledge/shared-promote.js.map +1 -0
  103. package/dist/agent/knowledge/shared-writer.d.ts +24 -0
  104. package/dist/agent/knowledge/shared-writer.d.ts.map +1 -0
  105. package/dist/agent/knowledge/shared-writer.js +97 -0
  106. package/dist/agent/knowledge/shared-writer.js.map +1 -0
  107. package/dist/agent/knowledge/types.d.ts +83 -0
  108. package/dist/agent/knowledge/types.d.ts.map +1 -0
  109. package/dist/agent/knowledge/types.js +12 -0
  110. package/dist/agent/knowledge/types.js.map +1 -0
  111. package/dist/agent/knowledge/wiki.d.ts +107 -0
  112. package/dist/agent/knowledge/wiki.d.ts.map +1 -0
  113. package/dist/agent/knowledge/wiki.js +415 -0
  114. package/dist/agent/knowledge/wiki.js.map +1 -0
  115. package/dist/agent/memory-metrics.d.ts +48 -0
  116. package/dist/agent/memory-metrics.d.ts.map +1 -0
  117. package/dist/agent/memory-metrics.js +156 -0
  118. package/dist/agent/memory-metrics.js.map +1 -0
  119. package/dist/agent/runner.d.ts +24 -1
  120. package/dist/agent/runner.d.ts.map +1 -1
  121. package/dist/agent/runner.js +82 -6
  122. package/dist/agent/runner.js.map +1 -1
  123. package/dist/agent/skill-learning/config.d.ts +18 -0
  124. package/dist/agent/skill-learning/config.d.ts.map +1 -0
  125. package/dist/agent/skill-learning/config.js +71 -0
  126. package/dist/agent/skill-learning/config.js.map +1 -0
  127. package/dist/agent/skill-learning/curator.d.ts +45 -0
  128. package/dist/agent/skill-learning/curator.d.ts.map +1 -0
  129. package/dist/agent/skill-learning/curator.js +171 -0
  130. package/dist/agent/skill-learning/curator.js.map +1 -0
  131. package/dist/agent/skill-learning/index.d.ts +79 -0
  132. package/dist/agent/skill-learning/index.d.ts.map +1 -0
  133. package/dist/agent/skill-learning/index.js +308 -0
  134. package/dist/agent/skill-learning/index.js.map +1 -0
  135. package/dist/agent/skill-learning/metrics.d.ts +13 -0
  136. package/dist/agent/skill-learning/metrics.d.ts.map +1 -0
  137. package/dist/agent/skill-learning/metrics.js +109 -0
  138. package/dist/agent/skill-learning/metrics.js.map +1 -0
  139. package/dist/agent/skill-learning/notifier.d.ts +111 -0
  140. package/dist/agent/skill-learning/notifier.d.ts.map +1 -0
  141. package/dist/agent/skill-learning/notifier.js +398 -0
  142. package/dist/agent/skill-learning/notifier.js.map +1 -0
  143. package/dist/agent/skill-learning/reviewer.d.ts +61 -0
  144. package/dist/agent/skill-learning/reviewer.d.ts.map +1 -0
  145. package/dist/agent/skill-learning/reviewer.js +271 -0
  146. package/dist/agent/skill-learning/reviewer.js.map +1 -0
  147. package/dist/agent/skill-learning/telemetry.d.ts +22 -0
  148. package/dist/agent/skill-learning/telemetry.d.ts.map +1 -0
  149. package/dist/agent/skill-learning/telemetry.js +90 -0
  150. package/dist/agent/skill-learning/telemetry.js.map +1 -0
  151. package/dist/agent/skill-learning/trigger.d.ts +23 -0
  152. package/dist/agent/skill-learning/trigger.d.ts.map +1 -0
  153. package/dist/agent/skill-learning/trigger.js +44 -0
  154. package/dist/agent/skill-learning/trigger.js.map +1 -0
  155. package/dist/agent/skill-learning/types.d.ts +165 -0
  156. package/dist/agent/skill-learning/types.d.ts.map +1 -0
  157. package/dist/agent/skill-learning/types.js +11 -0
  158. package/dist/agent/skill-learning/types.js.map +1 -0
  159. package/dist/agent/skill-learning/writer.d.ts +37 -0
  160. package/dist/agent/skill-learning/writer.d.ts.map +1 -0
  161. package/dist/agent/skill-learning/writer.js +223 -0
  162. package/dist/agent/skill-learning/writer.js.map +1 -0
  163. package/dist/agent/workspace-loader.d.ts +83 -6
  164. package/dist/agent/workspace-loader.d.ts.map +1 -1
  165. package/dist/agent/workspace-loader.js +207 -14
  166. package/dist/agent/workspace-loader.js.map +1 -1
  167. package/dist/api/gateway-router.d.ts +2 -0
  168. package/dist/api/gateway-router.d.ts.map +1 -1
  169. package/dist/api/gateway-router.js +293 -6
  170. package/dist/api/gateway-router.js.map +1 -1
  171. package/dist/api/share-router.d.ts.map +1 -1
  172. package/dist/api/share-router.js +27 -1
  173. package/dist/api/share-router.js.map +1 -1
  174. package/dist/api/skills-router.d.ts +2 -2
  175. package/dist/api/skills-router.d.ts.map +1 -1
  176. package/dist/api/skills-router.js +61 -1
  177. package/dist/api/skills-router.js.map +1 -1
  178. package/dist/apps/agent-manager.d.ts +7 -0
  179. package/dist/apps/agent-manager.d.ts.map +1 -1
  180. package/dist/apps/agent-manager.js +13 -1
  181. package/dist/apps/agent-manager.js.map +1 -1
  182. package/dist/config/migrator.d.ts +2 -0
  183. package/dist/config/migrator.d.ts.map +1 -1
  184. package/dist/config/migrator.js +72 -1
  185. package/dist/config/migrator.js.map +1 -1
  186. package/dist/history/cleanup.d.ts +7 -0
  187. package/dist/history/cleanup.d.ts.map +1 -1
  188. package/dist/history/cleanup.js +27 -0
  189. package/dist/history/cleanup.js.map +1 -1
  190. package/dist/history/db.d.ts +65 -0
  191. package/dist/history/db.d.ts.map +1 -1
  192. package/dist/history/db.js +261 -0
  193. package/dist/history/db.js.map +1 -1
  194. package/dist/index.js +122 -20
  195. package/dist/index.js.map +1 -1
  196. package/dist/session/process.d.ts +10 -0
  197. package/dist/session/process.d.ts.map +1 -1
  198. package/dist/session/process.js +86 -1
  199. package/dist/session/process.js.map +1 -1
  200. package/dist/share/share-store.d.ts +11 -0
  201. package/dist/share/share-store.d.ts.map +1 -1
  202. package/dist/share/share-store.js +3 -1
  203. package/dist/share/share-store.js.map +1 -1
  204. package/dist/skills/loader.d.ts +8 -0
  205. package/dist/skills/loader.d.ts.map +1 -1
  206. package/dist/skills/loader.js +29 -1
  207. package/dist/skills/loader.js.map +1 -1
  208. package/dist/types.d.ts +116 -0
  209. package/dist/types.d.ts.map +1 -1
  210. package/dist/ui/web-ui.d.ts.map +1 -1
  211. package/dist/ui/web-ui.js +1126 -3
  212. package/dist/ui/web-ui.js.map +1 -1
  213. package/mcp/package.json +2 -1
  214. package/mcp/server.ts +2 -0
  215. package/mcp/tools/image/module.ts +114 -9
  216. package/mcp/tools/memory/archive-reader.test.ts +212 -0
  217. package/mcp/tools/memory/archive-reader.ts +253 -0
  218. package/mcp/tools/memory/module.ts +152 -0
  219. package/mcp/tools/memory/retrieval-recorder.ts +66 -0
  220. package/mcp/tools/shared/share-client.ts +20 -1
  221. package/mcp/tools/skills/module.ts +28 -0
  222. package/package.json +1 -1
  223. package/resource/claude_gateway.svg +1038 -112
@@ -33,9 +33,12 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.AGENT_WRITABLE_FILES = exports.MissingRequiredFileError = void 0;
36
+ exports.AGENT_WRITABLE_FILES = exports.IDENTITY_FILES = exports.MEMORY_FILES = exports.DEFAULT_MEMORY_BUDGET = exports.MissingRequiredFileError = void 0;
37
+ exports.resolveMemoryBudget = resolveMemoryBudget;
38
+ exports.buildMemoryIndex = buildMemoryIndex;
37
39
  exports.migrateWorkspaceFiles = migrateWorkspaceFiles;
38
40
  exports.loadWorkspace = loadWorkspace;
41
+ exports.classifyWorkspaceRestart = classifyWorkspaceRestart;
39
42
  exports.watchWorkspace = watchWorkspace;
40
43
  const fs = __importStar(require("fs"));
41
44
  const path = __importStar(require("path"));
@@ -59,6 +62,29 @@ Always write memory, identity, and personality updates to files in this agent's
59
62
  - AGENTS.md — agent rules & capabilities
60
63
 
61
64
  NEVER write to ~/.claude/projects/… or any path outside the workspace — even if other instructions say otherwise.`;
65
+ // planning-65: the two-tier write contract, appended to the Memory Rule ONLY when
66
+ // `writeRouting` is on. It tells the agent that MEMORY.md (injected every session,
67
+ // expensive) is for DURABLE facts, and task-log belongs in the searchable
68
+ // `memory/<topic>.md` archive — so the injected core stays small at the source.
69
+ // Off ⇒ the addendum is absent (exact prior behavior).
70
+ const MEMORY_ROUTING_RULE = `
71
+
72
+ ## Memory Tiers — what goes where
73
+ - \`MEMORY.md\` = DURABLE facts only: user preferences, standing rules, identity, hard-won lessons — things you need as standing context in FUTURE unrelated sessions. Injected into every prompt, so keep it small.
74
+ - \`memory/<topic>.md\` = EPISODIC task-log: a record of what happened (completed work, PR/issue status, dated notes). NOT injected — retrieved on demand via \`memory_search\`. Append dated bullets, one topic per file.
75
+ - Litmus: "standing context for future unrelated sessions?" → MEMORY.md. "a record of a thing that happened?" → memory/<topic>.md.
76
+ - Do NOT write task-log into MEMORY.md.`;
77
+ // Platform-level note injected for EVERY agent whose searchable memory archive is
78
+ // on (planning-64 two-lane memory). It makes the retrieval tools discoverable at
79
+ // all times — not only when the over-budget core-shrink banner points at them — so
80
+ // an agent recalls detail on demand instead of assuming MEMORY.md holds everything.
81
+ // A capability shared by all agents belongs here, injected once, rather than
82
+ // duplicated into every agent's AGENTS.md.
83
+ const MEMORY_RETRIEVAL_NOTE = `## Memory Retrieval
84
+ This agent has a searchable long-term memory archive. \`MEMORY.md\` may be injected as a compact section INDEX (not its full text) when it exceeds budget, so do NOT assume the in-context memory is complete. To recall a detail that is not in context, use the MCP tools:
85
+ - \`memory_search\` — keyword/FTS5 over your memory; returns ranked snippets with file + line range and provenance. Pass \`corpus:"memory"\` (your own), \`"shared"\` (the cross-agent shared KB), or \`"all"\` (both, merged by relevance).
86
+ - \`memory_get\` — read an exact excerpt of a memory-scoped file by line range.
87
+ Prefer these over guessing when you need a fact you cannot see.`;
62
88
  const TOTAL_CHAR_LIMIT = 150000;
63
89
  const TRUNCATION_MARKER = '\n[TRUNCATED — edit this file to trim]\n';
64
90
  // Mapping of lowercase legacy filenames to their uppercase canonical names
@@ -87,6 +113,129 @@ function truncateFile(content) {
87
113
  }
88
114
  return { content, truncated: false };
89
115
  }
116
+ const DEFAULT_MEMORY_BUDGET_CHARS = 8000;
117
+ const DEFAULT_USER_BUDGET_CHARS = 3000;
118
+ exports.DEFAULT_MEMORY_BUDGET = {
119
+ memoryBudgetChars: DEFAULT_MEMORY_BUDGET_CHARS,
120
+ userBudgetChars: DEFAULT_USER_BUDGET_CHARS,
121
+ overBudget: 'warn',
122
+ writeRouting: false,
123
+ };
124
+ /**
125
+ * Resolve a (possibly partial or malformed) memory-budget config into a complete
126
+ * one, falling back to the documented defaults. An unknown `overBudget` value or
127
+ * a non-numeric / negative budget is treated as "not set" and defaulted, so bad
128
+ * operator config never throws at compose (fail-safe, mirrors #310's tz guard).
129
+ */
130
+ function resolveMemoryBudget(cfg) {
131
+ const overBudget = cfg?.overBudget === 'error' ? 'error' : 'warn';
132
+ const memoryBudgetChars = typeof cfg?.memoryBudgetChars === 'number' && cfg.memoryBudgetChars >= 0
133
+ ? cfg.memoryBudgetChars
134
+ : DEFAULT_MEMORY_BUDGET_CHARS;
135
+ const userBudgetChars = typeof cfg?.userBudgetChars === 'number' && cfg.userBudgetChars >= 0
136
+ ? cfg.userBudgetChars
137
+ : DEFAULT_USER_BUDGET_CHARS;
138
+ const writeRouting = cfg?.writeRouting === true;
139
+ return { memoryBudgetChars, userBudgetChars, overBudget, writeRouting };
140
+ }
141
+ /**
142
+ * Build a compact, injectable INDEX of an over-budget MEMORY.md (planning-64 K2
143
+ * core-shrink): the section headings, each top-level (`#`/`##`) section with a
144
+ * short brief, plus a pointer telling the agent the full content lives on disk and
145
+ * is reachable via the `memory_search` / `memory_get` tools. Derived
146
+ * deterministically from the file structure — NO LLM and NO mutation of the
147
+ * on-disk file. Fenced code blocks are skipped so a `# comment` inside ``` is not
148
+ * mistaken for a heading. Returns `null` when the file has no headings to index
149
+ * (caller then keeps full content).
150
+ */
151
+ function buildMemoryIndex(content, maxChars = 4000) {
152
+ const lines = content.split('\n');
153
+ const headings = [];
154
+ const isFence = (line) => /^\s*(```|~~~)/.test(line);
155
+ let inFence = false;
156
+ for (let i = 0; i < lines.length; i++) {
157
+ if (isFence(lines[i])) {
158
+ inFence = !inFence;
159
+ continue;
160
+ }
161
+ if (inFence)
162
+ continue;
163
+ const m = /^(#{1,6})\s+(.+?)\s*$/.exec(lines[i]);
164
+ if (!m)
165
+ continue;
166
+ headings.push(m[0].trim());
167
+ // A one-line brief for top-level (# / ##) sections: first non-empty,
168
+ // non-heading, non-fence line beneath the heading.
169
+ if (m[1].length <= 2) {
170
+ let fenced = false;
171
+ for (let j = i + 1; j < lines.length; j++) {
172
+ if (isFence(lines[j])) {
173
+ fenced = !fenced;
174
+ continue;
175
+ }
176
+ if (fenced)
177
+ continue;
178
+ const nx = lines[j].trim();
179
+ if (!nx)
180
+ continue;
181
+ if (/^#{1,6}\s/.test(nx))
182
+ break;
183
+ const body = nx.replace(/^[-*]\s+/, '');
184
+ headings.push(` ${body.slice(0, 100)}${body.length > 100 ? '…' : ''}`);
185
+ break;
186
+ }
187
+ }
188
+ }
189
+ if (headings.length === 0)
190
+ return null; // nothing to index → keep full content
191
+ let index = headings.join('\n');
192
+ if (index.length > maxChars)
193
+ index = `${index.slice(0, maxChars)}\n…`;
194
+ const pointer = `📇 This is an INDEX of your long-term memory — the full content is over budget so it lives ` +
195
+ `on disk (and in your searchable archive), NOT in this prompt. To recall a detail, use the ` +
196
+ `memory_search tool (keyword → snippets with file+line) or memory_get (read a section). ` +
197
+ `Section map:\n\n`;
198
+ return pointer + index;
199
+ }
200
+ /**
201
+ * Prepend a loud over-budget banner to a memory file's composed content when it
202
+ * exceeds its soft budget. Returns the content unchanged when under budget (or
203
+ * when the budget is 0 / disabled). The hard FILE_CHAR_LIMIT truncation is
204
+ * applied separately afterwards as a context safety net.
205
+ *
206
+ * `shrink` (K2, MEMORY.md only): when the file is over budget and this returns a
207
+ * non-null replacement (the compact index), the banner is prepended to THAT
208
+ * instead of the full content — so the bulk never enters the prompt. The on-disk
209
+ * file is untouched; the full content stays searchable via the archive tools.
210
+ */
211
+ function applyMemoryBudget(content, budgetChars, label, mode, shrink) {
212
+ if (budgetChars <= 0 || content.length <= budgetChars) {
213
+ return { content, overBudget: false };
214
+ }
215
+ const icon = mode === 'error' ? '🛑' : '⚠️';
216
+ const shrunk = shrink ? shrink(content) : null;
217
+ let banner;
218
+ if (shrunk !== null) {
219
+ // Shrink mode: only the INDEX below is loaded — the agent does NOT see the
220
+ // actual entries, so it must not rewrite MEMORY.md from this prompt (that
221
+ // would clobber the un-shown full content on disk). Point it at the tools.
222
+ const must = mode === 'error' ? 'MUST ' : '';
223
+ banner =
224
+ `${icon} ${label} OVER BUDGET: ${content.length}/${budgetChars} chars — only the section INDEX ` +
225
+ `below is loaded; the full entries live on disk. ${must}consolidate by reading them with ` +
226
+ `memory_search / memory_get FIRST, then editing MEMORY.md on disk — never rewrite it from this ` +
227
+ `prompt (you would lose the entries not shown). Edits apply on the next session spawn ` +
228
+ `(frozen-at-spawn), no restart.\n\n`;
229
+ }
230
+ else {
231
+ const action = mode === 'error' ? 'MUST consolidate now' : 'consolidate';
232
+ banner =
233
+ `${icon} ${label} OVER BUDGET: ${content.length}/${budgetChars} chars — ${action}: ` +
234
+ `keep the highest-value facts, remove stale or duplicate entries. ` +
235
+ `Edits apply on the next session spawn (frozen-at-spawn), no restart.\n\n`;
236
+ }
237
+ return { content: banner + (shrunk ?? content), overBudget: true };
238
+ }
90
239
  /**
91
240
  * Migrate workspace files from legacy lowercase names to uppercase canonical names.
92
241
  * - If lowercase exists and uppercase does NOT: rename lowercase → uppercase
@@ -136,12 +285,27 @@ async function loadWorkspace(workspaceDir, opts) {
136
285
  anyTruncated = true;
137
286
  return r.content;
138
287
  };
288
+ // Memory files (MEMORY.md/USER.md) get a loud over-budget banner at their soft
289
+ // budget BEFORE the hard-limit truncation, so the agent gets an actionable
290
+ // signal instead of a silent [TRUNCATED]. The banner sits at the top of the
291
+ // section, so the per-file FILE_CHAR_LIMIT truncation (which trims the tail)
292
+ // always leaves it intact. (An extreme TOTAL_CHAR_LIMIT overflow could still
293
+ // slice it, but that path already truncates the whole prompt.)
294
+ const budget = resolveMemoryBudget(opts?.memoryBudget);
295
+ // K2 core-shrink (opt-in): when enabled AND MEMORY.md is over budget, inject a
296
+ // compact auto-generated index + a pointer to memory_search instead of the
297
+ // truncated full text. Defaults OFF so a caller that omits the flag never points
298
+ // the agent at a memory_search tool that may not be wired; the gateway enables
299
+ // it explicitly only when the knowledge archive is on. USER.md is never shrunk.
300
+ const coreShrink = opts?.coreShrink === true;
301
+ const memoryBudgeted = applyMemoryBudget(rawMemory, budget.memoryBudgetChars, 'MEMORY.md', budget.overBudget, coreShrink ? (c) => buildMemoryIndex(c) : undefined);
302
+ const userBudgeted = applyMemoryBudget(rawUser, budget.userBudgetChars, 'USER.md', budget.overBudget);
139
303
  const agentMd = truncateResult(rawAgent);
140
304
  const identityMd = truncateResult(rawIdentity);
141
305
  const soulMd = truncateResult(rawSoul);
142
- const userMd = truncateResult(rawUser);
306
+ const userMd = truncateResult(userBudgeted.content);
143
307
  const heartbeatMd = truncateResult(rawHeartbeat);
144
- const memoryMd = truncateResult(rawMemory);
308
+ const memoryMd = truncateResult(memoryBudgeted.content);
145
309
  // Load agent skills
146
310
  const skillRegistry = (0, skills_1.loadSkills)({
147
311
  workspaceDir,
@@ -151,12 +315,14 @@ async function loadWorkspace(workspaceDir, opts) {
151
315
  });
152
316
  const skillsSection = (0, skills_1.renderSkillsSection)(skillRegistry);
153
317
  // Assemble system prompt
154
- let systemPrompt = `--- MEMORY RULE ---\n${MEMORY_RULE}\n\n` +
318
+ const memoryRuleSection = MEMORY_RULE + (budget.writeRouting ? MEMORY_ROUTING_RULE : '');
319
+ let systemPrompt = `--- MEMORY RULE ---\n${memoryRuleSection}\n\n` +
155
320
  `--- AGENT IDENTITY ---\n${agentMd}\n\n` +
156
321
  `--- IDENTITY ---\n${identityMd}\n\n` +
157
322
  `--- SOUL ---\n${soulMd}\n\n` +
158
323
  `--- USER PROFILE ---\n${userMd}\n\n` +
159
324
  (skillsSection ? `--- AVAILABLE SKILLS ---\n${skillsSection}\n\n` : '') +
325
+ (coreShrink ? `--- MEMORY RETRIEVAL ---\n${MEMORY_RETRIEVAL_NOTE}\n\n` : '') +
160
326
  `--- LONG-TERM MEMORY ---\n${memoryMd}\n\n` +
161
327
  `--- HEARTBEAT CONFIG ---\n${heartbeatMd}`;
162
328
  // Enforce total limit
@@ -182,19 +348,46 @@ async function loadWorkspace(workspaceDir, opts) {
182
348
  const WATCH_DEBOUNCE_MS = 300;
183
349
  /**
184
350
  * Canonical workspace files the agent is authorized to write itself, per the
185
- * memory rule (see MEMORY_RULE above). When ONLY these change, a busy session
186
- * must not be force-restarted: the change most likely came from that very
187
- * session mid-turn, and a deferred restart would stop it the moment the turn
188
- * completes (the self-restart footgun). Idle sessions are still restarted so
189
- * the change reaches them on their next spawn, and the recomposed CLAUDE.md
190
- * carries the change into every future spawn regardless.
351
+ * memory rule (see MEMORY_RULE above), split into two tiers by how urgently a
352
+ * change needs to reach a running session — and, crucially, by the fact that
353
+ * CLAUDE.md is frozen-at-spawn (a live process never re-reads it; the recomposed
354
+ * file applies on the next natural spawn regardless).
355
+ *
356
+ * MEMORY_FILES — self-authored data the agent writes about itself/the user
357
+ * (MEMORY.md, USER.md). A write here is almost always the running session
358
+ * curating its own memory mid-work. Since the process already holds what it
359
+ * just wrote and every future spawn reads the recomposed CLAUDE.md, restarting
360
+ * ANY session (busy or idle) buys nothing — it only drops in-context state and
361
+ * forces a SQLite-replay respawn. Memory-only changes therefore restart
362
+ * nothing at all (see the watcher callback in src/index.ts).
363
+ *
364
+ * IDENTITY_FILES — operator-authored identity (SOUL.md, AGENTS.md, IDENTITY.md).
365
+ * These want to reach sessions "soon-ish", but still never justify SIGKILLing
366
+ * an idle bystander: a deferred restart (respawn on next message) is lossless
367
+ * and applies the change just as correctly. IDENTITY.md is API-writable and
368
+ * composed into CLAUDE.md exactly like SOUL/AGENTS, so it belongs in this tier
369
+ * for the same reason — omitting it would SIGKILL idle sessions on an
370
+ * IDENTITY.md write while deferring the semantically identical SOUL write.
371
+ */
372
+ exports.MEMORY_FILES = new Set(['MEMORY.md', 'USER.md']);
373
+ exports.IDENTITY_FILES = new Set(['SOUL.md', 'AGENTS.md', 'IDENTITY.md']);
374
+ /**
375
+ * Union of the two tiers — kept for callers that only need "did the agent write
376
+ * this itself?" (e.g. the busy-session skip guard).
191
377
  */
192
378
  exports.AGENT_WRITABLE_FILES = new Set([
193
- 'MEMORY.md',
194
- 'USER.md',
195
- 'SOUL.md',
196
- 'AGENTS.md',
379
+ ...exports.MEMORY_FILES,
380
+ ...exports.IDENTITY_FILES,
197
381
  ]);
382
+ function classifyWorkspaceRestart(changedFiles) {
383
+ if (changedFiles.length === 0)
384
+ return 'restart';
385
+ if (changedFiles.every((f) => exports.MEMORY_FILES.has(f)))
386
+ return 'none';
387
+ if (changedFiles.every((f) => exports.AGENT_WRITABLE_FILES.has(f)))
388
+ return 'defer-idle';
389
+ return 'restart';
390
+ }
198
391
  /**
199
392
  * Normalize a changed file path to its canonical uppercase basename, resolving
200
393
  * legacy lowercase aliases (e.g. memory.md → MEMORY.md).
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-loader.js","sourceRoot":"","sources":["../../src/agent/workspace-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,sDAuBC;AAWD,sCAuEC;AAqCD,wCAiDC;AA7PD,uCAAyB;AACzB,2CAA6B;AAE7B,8CAAiD;AACjD,sCAA4D;AAE5D,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,QAAgB;QAC1B,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC;AAED,MAAM,eAAe,GAAG,KAAM,CAAC;AAE/B,MAAM,WAAW,GAAG;;;;;;;;;kHAS8F,CAAC;AACnH,MAAM,gBAAgB,GAAG,MAAO,CAAC;AACjC,MAAM,iBAAiB,GAAG,0CAA0C,CAAC;AAErE,2EAA2E;AAC3E,MAAM,sBAAsB,GAA2B;IACrD,UAAU,EAAE,WAAW;IACvB,aAAa,EAAE,aAAa;IAC5B,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,WAAW;IACxB,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,SAAS,iBAAiB,CAAC,QAAgB,EAAE,YAAoB;IAC/D,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,iBAAiB;YAC9D,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,YAAoB;IACxD,yEAAyE;IACzE,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAEvD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACjD,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CACT,6BAA6B,KAAK,QAAQ,KAAK,oBAAoB,KAAK,cAAc,KAAK,EAAE,CAC9F,CAAC;YACF,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAQD;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,IAA2B;IACnF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEzD,wBAAwB;IACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9E,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,SAAS;YAAE,YAAY,GAAG,IAAI,CAAC;QACrC,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,oBAAoB;IACpB,MAAM,aAAa,GAAG,IAAA,mBAAU,EAAC;QAC/B,YAAY;QACZ,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,MAAM,EAAE,IAAI,EAAE,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAA,4BAAmB,EAAC,aAAa,CAAC,CAAC;IAEzD,yBAAyB;IACzB,IAAI,YAAY,GACd,wBAAwB,WAAW,MAAM;QACzC,2BAA2B,OAAO,MAAM;QACxC,qBAAqB,UAAU,MAAM;QACrC,iBAAiB,MAAM,MAAM;QAC7B,yBAAyB,MAAM,MAAM;QACrC,CAAC,aAAa,CAAC,CAAC,CAAC,6BAA6B,aAAa,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,6BAA6B,QAAQ,MAAM;QAC3C,6BAA6B,WAAW,EAAE,CAAC;IAE7C,sBAAsB;IACtB,IAAI,YAAY,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC3C,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,iBAAiB,CAAC;QAC3E,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,MAAM,KAAK,GAAmB;QAC5B,OAAO;QACP,UAAU;QACV,MAAM;QACN,MAAM;QACN,WAAW;QACX,QAAQ;KACT,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,KAAK;QACL,SAAS,EAAE,YAAY;QACvB,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;;;;;;GAQG;AACU,QAAA,oBAAoB,GAAG,IAAI,GAAG,CAAS;IAClD,WAAW;IACX,SAAS;IACT,SAAS;IACT,WAAW;CACZ,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC5B,YAAoB,EACpB,QAA0C;IAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO,IAAA,uBAAa,EAAC;QACnB,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACxC,UAAU,EAAE,iBAAiB;QAC7B,0EAA0E;QAC1E,wDAAwD;QACxD,0EAA0E;QAC1E,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,gEAAgE;QAChE,yEAAyE;QACzE,4EAA4E;QAC5E,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,6DAA6D;QAC7D,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE;gBACrB,IAAI,CAAC,KAAK,YAAY;oBAAE,OAAO,IAAI,CAAC;gBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC3C,OAAO,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;SACF;QACD,SAAS,EAAE,CAAC,QAAgB,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACrD,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,MAAM,SAAS,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC;oBACP,4DAA4D;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAC,YAAsB,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC5E,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"workspace-loader.js","sourceRoot":"","sources":["../../src/agent/workspace-loader.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,8 @@ export declare class GatewayRouter {
87
87
  * disabled (open) — a keyless install has no credential to check and must not
88
88
  * lock itself out. Writes 401 and returns false when unauthorized.
89
89
  */
90
+ /** Filesystem root holding per-agent workspaces: <config-dir>/agents (or ~/.claude-gateway/agents). */
91
+ private agentsRoot;
90
92
  private requireDashOrApiKey;
91
93
  /** Client IP for throttling. Uses req.ip (Express; the socket peer unless
92
94
  * `trust proxy` is set) with a socket fallback. Behind an untrusted proxy all
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-router.d.ts","sourceRoot":"","sources":["../../src/api/gateway-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-router.d.ts","sourceRoot":"","sources":["../../src/api/gateway-router.ts"],"names":[],"mappings":"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"}