@animalabs/agent-framework 0.26.1 → 0.27.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 (276) hide show
  1. package/README.md +57 -7
  2. package/dist/src/agent.d.ts +263 -22
  3. package/dist/src/agent.d.ts.map +1 -1
  4. package/dist/src/agent.js +531 -54
  5. package/dist/src/agent.js.map +1 -1
  6. package/dist/src/api/server.d.ts.map +1 -1
  7. package/dist/src/api/server.js +1 -2
  8. package/dist/src/api/server.js.map +1 -1
  9. package/dist/src/auto-continue.d.ts +33 -0
  10. package/dist/src/auto-continue.d.ts.map +1 -0
  11. package/dist/src/auto-continue.js +35 -0
  12. package/dist/src/auto-continue.js.map +1 -0
  13. package/dist/src/code-execution/isolate/scripts.d.ts +11 -0
  14. package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
  15. package/dist/src/code-execution/isolate/scripts.js +5 -1
  16. package/dist/src/code-execution/isolate/scripts.js.map +1 -1
  17. package/dist/src/framework.d.ts +829 -156
  18. package/dist/src/framework.d.ts.map +1 -1
  19. package/dist/src/framework.js +3906 -1008
  20. package/dist/src/framework.js.map +1 -1
  21. package/dist/src/gate/event-gate.d.ts +309 -46
  22. package/dist/src/gate/event-gate.d.ts.map +1 -1
  23. package/dist/src/gate/event-gate.js +2117 -395
  24. package/dist/src/gate/event-gate.js.map +1 -1
  25. package/dist/src/gate/index.d.ts +2 -2
  26. package/dist/src/gate/index.d.ts.map +1 -1
  27. package/dist/src/gate/index.js +1 -1
  28. package/dist/src/gate/index.js.map +1 -1
  29. package/dist/src/gate/recipe-reconcile.d.ts +103 -0
  30. package/dist/src/gate/recipe-reconcile.d.ts.map +1 -0
  31. package/dist/src/gate/recipe-reconcile.js +325 -0
  32. package/dist/src/gate/recipe-reconcile.js.map +1 -0
  33. package/dist/src/gate/types.d.ts +68 -8
  34. package/dist/src/gate/types.d.ts.map +1 -1
  35. package/dist/src/index.d.ts +6 -4
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +5 -2
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/mcpl/channel-registry.d.ts +433 -113
  40. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  41. package/dist/src/mcpl/channel-registry.js +1152 -434
  42. package/dist/src/mcpl/channel-registry.js.map +1 -1
  43. package/dist/src/mcpl/conversation-router.d.ts +16 -8
  44. package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
  45. package/dist/src/mcpl/conversation-router.js +29 -15
  46. package/dist/src/mcpl/conversation-router.js.map +1 -1
  47. package/dist/src/mcpl/convert-block.d.ts.map +1 -1
  48. package/dist/src/mcpl/convert-block.js +14 -2
  49. package/dist/src/mcpl/convert-block.js.map +1 -1
  50. package/dist/src/mcpl/hook-orchestrator.d.ts +7 -1
  51. package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
  52. package/dist/src/mcpl/hook-orchestrator.js +32 -7
  53. package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
  54. package/dist/src/mcpl/index.d.ts +5 -1
  55. package/dist/src/mcpl/index.d.ts.map +1 -1
  56. package/dist/src/mcpl/index.js +4 -0
  57. package/dist/src/mcpl/index.js.map +1 -1
  58. package/dist/src/mcpl/inference-router.d.ts +14 -2
  59. package/dist/src/mcpl/inference-router.d.ts.map +1 -1
  60. package/dist/src/mcpl/inference-router.js +73 -28
  61. package/dist/src/mcpl/inference-router.js.map +1 -1
  62. package/dist/src/mcpl/prose-grammar.d.ts +4 -0
  63. package/dist/src/mcpl/prose-grammar.d.ts.map +1 -1
  64. package/dist/src/mcpl/prose-grammar.js +6 -0
  65. package/dist/src/mcpl/prose-grammar.js.map +1 -1
  66. package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
  67. package/dist/src/mcpl/protocol-family.js +3 -0
  68. package/dist/src/mcpl/protocol-family.js.map +1 -1
  69. package/dist/src/mcpl/push-coalescer.d.ts +20 -2
  70. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
  71. package/dist/src/mcpl/push-coalescer.js +33 -11
  72. package/dist/src/mcpl/push-coalescer.js.map +1 -1
  73. package/dist/src/mcpl/reference-fetcher.d.ts +63 -42
  74. package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
  75. package/dist/src/mcpl/reference-fetcher.js +177 -145
  76. package/dist/src/mcpl/reference-fetcher.js.map +1 -1
  77. package/dist/src/mcpl/references.d.ts +380 -46
  78. package/dist/src/mcpl/references.d.ts.map +1 -1
  79. package/dist/src/mcpl/references.js +737 -78
  80. package/dist/src/mcpl/references.js.map +1 -1
  81. package/dist/src/mcpl/server-connection.d.ts +82 -3
  82. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  83. package/dist/src/mcpl/server-connection.js +132 -7
  84. package/dist/src/mcpl/server-connection.js.map +1 -1
  85. package/dist/src/mcpl/tool-lifecycle.d.ts +11 -0
  86. package/dist/src/mcpl/tool-lifecycle.d.ts.map +1 -1
  87. package/dist/src/mcpl/tool-lifecycle.js +21 -0
  88. package/dist/src/mcpl/tool-lifecycle.js.map +1 -1
  89. package/dist/src/mcpl/tool-presence.d.ts +259 -0
  90. package/dist/src/mcpl/tool-presence.d.ts.map +1 -0
  91. package/dist/src/mcpl/tool-presence.js +628 -0
  92. package/dist/src/mcpl/tool-presence.js.map +1 -0
  93. package/dist/src/mcpl/tool-result-normalize.d.ts +9 -3
  94. package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -1
  95. package/dist/src/mcpl/tool-result-normalize.js +14 -6
  96. package/dist/src/mcpl/tool-result-normalize.js.map +1 -1
  97. package/dist/src/mcpl/tool-signature.d.ts +39 -0
  98. package/dist/src/mcpl/tool-signature.d.ts.map +1 -0
  99. package/dist/src/mcpl/tool-signature.js +292 -0
  100. package/dist/src/mcpl/tool-signature.js.map +1 -0
  101. package/dist/src/mcpl/toolset-host.d.ts +200 -0
  102. package/dist/src/mcpl/toolset-host.d.ts.map +1 -0
  103. package/dist/src/mcpl/toolset-host.js +621 -0
  104. package/dist/src/mcpl/toolset-host.js.map +1 -0
  105. package/dist/src/mcpl/toolsets-module.d.ts +80 -0
  106. package/dist/src/mcpl/toolsets-module.d.ts.map +1 -0
  107. package/dist/src/mcpl/toolsets-module.js +431 -0
  108. package/dist/src/mcpl/toolsets-module.js.map +1 -0
  109. package/dist/src/mcpl/transport.d.ts +2 -2
  110. package/dist/src/mcpl/transport.d.ts.map +1 -1
  111. package/dist/src/mcpl/transport.js +3 -2
  112. package/dist/src/mcpl/transport.js.map +1 -1
  113. package/dist/src/mcpl/types.d.ts +21 -1
  114. package/dist/src/mcpl/types.d.ts.map +1 -1
  115. package/dist/src/mcpl/types.js.map +1 -1
  116. package/dist/src/mcpl/visible-content.d.ts +7 -9
  117. package/dist/src/mcpl/visible-content.d.ts.map +1 -1
  118. package/dist/src/mcpl/visible-content.js +21 -9
  119. package/dist/src/mcpl/visible-content.js.map +1 -1
  120. package/dist/src/module-registry.d.ts +23 -8
  121. package/dist/src/module-registry.d.ts.map +1 -1
  122. package/dist/src/module-registry.js +68 -15
  123. package/dist/src/module-registry.js.map +1 -1
  124. package/dist/src/modules/discord/index.js +1 -1
  125. package/dist/src/modules/discord/index.js.map +1 -1
  126. package/dist/src/modules/history/index.d.ts +2 -1
  127. package/dist/src/modules/history/index.d.ts.map +1 -1
  128. package/dist/src/modules/history/index.js +51 -17
  129. package/dist/src/modules/history/index.js.map +1 -1
  130. package/dist/src/modules/history/semantic.d.ts +108 -6
  131. package/dist/src/modules/history/semantic.d.ts.map +1 -1
  132. package/dist/src/modules/history/semantic.js +273 -57
  133. package/dist/src/modules/history/semantic.js.map +1 -1
  134. package/dist/src/modules/workspace/direct-write.d.ts +181 -0
  135. package/dist/src/modules/workspace/direct-write.d.ts.map +1 -0
  136. package/dist/src/modules/workspace/direct-write.js +384 -0
  137. package/dist/src/modules/workspace/direct-write.js.map +1 -0
  138. package/dist/src/modules/workspace/edit-text.d.ts +26 -12
  139. package/dist/src/modules/workspace/edit-text.d.ts.map +1 -1
  140. package/dist/src/modules/workspace/edit-text.js +58 -28
  141. package/dist/src/modules/workspace/edit-text.js.map +1 -1
  142. package/dist/src/modules/workspace/effects.d.ts +10 -0
  143. package/dist/src/modules/workspace/effects.d.ts.map +1 -1
  144. package/dist/src/modules/workspace/effects.js +1 -1
  145. package/dist/src/modules/workspace/effects.js.map +1 -1
  146. package/dist/src/modules/workspace/index.d.ts +246 -27
  147. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  148. package/dist/src/modules/workspace/index.js +1216 -236
  149. package/dist/src/modules/workspace/index.js.map +1 -1
  150. package/dist/src/modules/workspace/read-page.d.ts +41 -0
  151. package/dist/src/modules/workspace/read-page.d.ts.map +1 -0
  152. package/dist/src/modules/workspace/read-page.js +213 -0
  153. package/dist/src/modules/workspace/read-page.js.map +1 -0
  154. package/dist/src/modules/workspace/result-text.d.ts +67 -0
  155. package/dist/src/modules/workspace/result-text.d.ts.map +1 -0
  156. package/dist/src/modules/workspace/result-text.js +94 -0
  157. package/dist/src/modules/workspace/result-text.js.map +1 -0
  158. package/dist/src/modules/workspace/text.d.ts +29 -12
  159. package/dist/src/modules/workspace/text.d.ts.map +1 -1
  160. package/dist/src/modules/workspace/text.js +35 -33
  161. package/dist/src/modules/workspace/text.js.map +1 -1
  162. package/dist/src/modules/workspace/types.d.ts +41 -17
  163. package/dist/src/modules/workspace/types.d.ts.map +1 -1
  164. package/dist/src/modules/workspace/types.js.map +1 -1
  165. package/dist/src/sent-rows.d.ts +59 -0
  166. package/dist/src/sent-rows.d.ts.map +1 -0
  167. package/dist/src/sent-rows.js +145 -0
  168. package/dist/src/sent-rows.js.map +1 -0
  169. package/dist/src/silent-heartbeat.d.ts +17 -10
  170. package/dist/src/silent-heartbeat.d.ts.map +1 -1
  171. package/dist/src/silent-heartbeat.js.map +1 -1
  172. package/dist/src/stable-hash.d.ts +3 -0
  173. package/dist/src/stable-hash.d.ts.map +1 -0
  174. package/dist/src/stable-hash.js +15 -0
  175. package/dist/src/stable-hash.js.map +1 -0
  176. package/dist/src/stored-injections.d.ts +99 -0
  177. package/dist/src/stored-injections.d.ts.map +1 -0
  178. package/dist/src/stored-injections.js +106 -0
  179. package/dist/src/stored-injections.js.map +1 -0
  180. package/dist/src/text-as-stored.d.ts +4 -3
  181. package/dist/src/text-as-stored.d.ts.map +1 -1
  182. package/dist/src/text-as-stored.js +4 -3
  183. package/dist/src/text-as-stored.js.map +1 -1
  184. package/dist/src/thinking-drops.d.ts +81 -0
  185. package/dist/src/thinking-drops.d.ts.map +1 -0
  186. package/dist/src/thinking-drops.js +103 -0
  187. package/dist/src/thinking-drops.js.map +1 -0
  188. package/dist/src/tool-image-ledger.d.ts +9 -8
  189. package/dist/src/tool-image-ledger.d.ts.map +1 -1
  190. package/dist/src/tool-image-ledger.js +9 -8
  191. package/dist/src/tool-image-ledger.js.map +1 -1
  192. package/dist/src/tool-presentation.d.ts.map +1 -1
  193. package/dist/src/tool-presentation.js +3 -1
  194. package/dist/src/tool-presentation.js.map +1 -1
  195. package/dist/src/tool-result-guard.d.ts +4 -2
  196. package/dist/src/tool-result-guard.d.ts.map +1 -1
  197. package/dist/src/tool-result-guard.js +21 -6
  198. package/dist/src/tool-result-guard.js.map +1 -1
  199. package/dist/src/tool-result-history.d.ts +186 -21
  200. package/dist/src/tool-result-history.d.ts.map +1 -1
  201. package/dist/src/tool-result-history.js +428 -89
  202. package/dist/src/tool-result-history.js.map +1 -1
  203. package/dist/src/tune-out/coordinator.d.ts +17 -9
  204. package/dist/src/tune-out/coordinator.d.ts.map +1 -1
  205. package/dist/src/tune-out/coordinator.js +84 -37
  206. package/dist/src/tune-out/coordinator.js.map +1 -1
  207. package/dist/src/types/agent.d.ts +186 -7
  208. package/dist/src/types/agent.d.ts.map +1 -1
  209. package/dist/src/types/events.d.ts +19 -2
  210. package/dist/src/types/events.d.ts.map +1 -1
  211. package/dist/src/types/framework.d.ts +24 -3
  212. package/dist/src/types/framework.d.ts.map +1 -1
  213. package/dist/src/types/module.d.ts +90 -7
  214. package/dist/src/types/module.d.ts.map +1 -1
  215. package/dist/src/types/trace.d.ts +57 -2
  216. package/dist/src/types/trace.d.ts.map +1 -1
  217. package/package.json +4 -3
  218. package/src/agent.ts +593 -60
  219. package/src/api/server.ts +1 -2
  220. package/src/auto-continue.ts +42 -0
  221. package/src/code-execution/isolate/scripts.ts +11 -3
  222. package/src/framework.ts +4004 -1026
  223. package/src/gate/event-gate.ts +2315 -389
  224. package/src/gate/index.ts +2 -1
  225. package/src/gate/recipe-reconcile.ts +355 -0
  226. package/src/gate/types.ts +70 -8
  227. package/src/index.ts +7 -4
  228. package/src/mcpl/channel-registry.ts +1220 -467
  229. package/src/mcpl/conversation-router.ts +34 -16
  230. package/src/mcpl/convert-block.ts +14 -1
  231. package/src/mcpl/hook-orchestrator.ts +33 -6
  232. package/src/mcpl/index.ts +6 -1
  233. package/src/mcpl/inference-router.ts +79 -34
  234. package/src/mcpl/prose-grammar.ts +7 -0
  235. package/src/mcpl/protocol-family.ts +2 -0
  236. package/src/mcpl/push-coalescer.ts +51 -13
  237. package/src/mcpl/reference-fetcher.ts +201 -162
  238. package/src/mcpl/references.ts +852 -78
  239. package/src/mcpl/server-connection.ts +145 -7
  240. package/src/mcpl/tool-lifecycle.ts +21 -0
  241. package/src/mcpl/tool-presence.ts +650 -0
  242. package/src/mcpl/tool-result-normalize.ts +18 -6
  243. package/src/mcpl/tool-signature.ts +285 -0
  244. package/src/mcpl/toolset-host.ts +637 -0
  245. package/src/mcpl/toolsets-module.ts +451 -0
  246. package/src/mcpl/transport.ts +3 -2
  247. package/src/mcpl/types.ts +22 -1
  248. package/src/mcpl/visible-content.ts +22 -9
  249. package/src/module-registry.ts +77 -24
  250. package/src/modules/discord/index.ts +1 -1
  251. package/src/modules/history/index.ts +48 -18
  252. package/src/modules/history/semantic.ts +308 -54
  253. package/src/modules/workspace/direct-write.ts +425 -0
  254. package/src/modules/workspace/edit-text.ts +82 -35
  255. package/src/modules/workspace/effects.ts +1 -1
  256. package/src/modules/workspace/index.ts +1274 -241
  257. package/src/modules/workspace/read-page.ts +222 -0
  258. package/src/modules/workspace/result-text.ts +119 -0
  259. package/src/modules/workspace/text.ts +58 -32
  260. package/src/modules/workspace/types.ts +41 -17
  261. package/src/sent-rows.ts +162 -0
  262. package/src/silent-heartbeat.ts +17 -10
  263. package/src/stable-hash.ts +14 -0
  264. package/src/stored-injections.ts +131 -0
  265. package/src/text-as-stored.ts +4 -3
  266. package/src/thinking-drops.ts +141 -0
  267. package/src/tool-image-ledger.ts +9 -8
  268. package/src/tool-presentation.ts +3 -1
  269. package/src/tool-result-guard.ts +19 -6
  270. package/src/tool-result-history.ts +488 -88
  271. package/src/tune-out/coordinator.ts +80 -37
  272. package/src/types/agent.ts +189 -7
  273. package/src/types/events.ts +19 -2
  274. package/src/types/framework.ts +21 -3
  275. package/src/types/module.ts +86 -7
  276. package/src/types/trace.ts +58 -2
@@ -152,6 +152,23 @@ export declare class WorkspaceModule implements Module {
152
152
  * ensureRunning to say once both halves of the lifecycle have run.
153
153
  */
154
154
  private notDirect;
155
+ /**
156
+ * Each agent's latest direct write on each mount it wrote direct, P, with
157
+ * the notice of its departure from it, N (DirectHead), by mount, then by
158
+ * agent. Saved at stop() in a global record (headsJournal), not the
159
+ * module's branch state: they describe disk, which doesn't rewind with a
160
+ * branch, so a restart on another branch, such as one an offline rollback
161
+ * made, still finds them.
162
+ */
163
+ private directHeads;
164
+ /** Where directHeads is saved and loaded (DIRECT_HEADS_RECORD_TYPE), once initStore() has read it. */
165
+ private headsJournal;
166
+ /** The record initStore() read, as saved text, so a stop that would save the same adds none; null where there's one to replace. */
167
+ private loadedHeads;
168
+ /** Saved entries this session doesn't take up (another root, a mount not configured direct, or none), kept for the next save. */
169
+ private carriedHeads;
170
+ /** Whether an agent's history holds a message, as the framework hands it over (useHistory). */
171
+ private historyLookup;
155
172
  constructor(config: WorkspaceConfig);
156
173
  /**
157
174
  * Inject the Chronicle store. Must be called after framework creation.
@@ -163,6 +180,22 @@ export declare class WorkspaceModule implements Module {
163
180
  * second. `ensureRunning()` gates on `ctx && mounts-populated`.
164
181
  */
165
182
  initStore(store: JsStore): void;
183
+ /**
184
+ * The positions stop() last saved (directHeads), before any call can
185
+ * write: each saved entry is a mount's positions at one root, and a mount
186
+ * this session configures direct gets the entry at its own root. Every
187
+ * other entry, a mount configured at another root, not direct, or not at
188
+ * all, is kept for the next save (carriedHeads), since its writes are
189
+ * still on disk beneath that root; a mount removed for good, and each
190
+ * root a mount has moved from, leave that small entry behind. A record
191
+ * the store can't read is logged, and this session starts with none and
192
+ * saves none, so the record stands for a session that can read it. One
193
+ * read but not of the shape saved is logged too, and this session starts
194
+ * with none and its stop replaces it, so a damaged record doesn't keep
195
+ * every later session from saving. Either way, a move away from the
196
+ * writes before it goes untold, as after a crash.
197
+ */
198
+ private loadDirectHeads;
166
199
  /**
167
200
  * Whether each mount configured direct runs direct: not while the store
168
201
  * holds changes there that disk lacks, on the branch selected then, so
@@ -289,15 +322,40 @@ export declare class WorkspaceModule implements Module {
289
322
  private sayNotDirect;
290
323
  private initialScan;
291
324
  stop(): Promise<void>;
292
- /** Mount names + modes, and each mount's include where it sets one, for
293
- * peer callers (framework spill/journal paths) that need a mount for files
294
- * of their own, the first writable one without an include
295
- * (firstWritableMountName), without reaching into private state. */
325
+ /**
326
+ * Save directHeads as one global record, the latest of which the next
327
+ * start loads (loadDirectHeads): each mount's positions with the root
328
+ * they were made under, and the entries this session didn't take up
329
+ * (carriedHeads), unchanged. Only when that differs from what the
330
+ * start loaded, so a session that changed nothing, or a store no direct
331
+ * write reached, adds no record, and always where the record read wasn't
332
+ * of the shape saved, which this replaces. Nothing where the store couldn't
333
+ * read the record, so it stands. A save that fails is logged, and the next
334
+ * start finds the positions of the last save that landed, as after a
335
+ * crash.
336
+ */
337
+ private saveDirectHeads;
338
+ /** Mount names + modes, each mount's include where it sets one, and
339
+ * `backend: 'direct'` for one configured direct, whether it runs direct
340
+ * this session or, while the store holds work there disk lacks, as
341
+ * 'chronicle': either way it's a directory agents write directly when it
342
+ * runs direct, whose files an undo leaves. For the
343
+ * framework's tool-result spills, saved payloads and fetched references,
344
+ * which need a mount for files of their own: the first writable one
345
+ * without an include that isn't direct (firstWritableMountName), without
346
+ * reaching into private state. */
296
347
  getMounts(): Array<{
297
348
  name: string;
298
349
  mode: 'read-write' | 'read-only';
299
350
  include?: readonly string[];
351
+ backend?: 'direct';
300
352
  }>;
353
+ /**
354
+ * Whether any of this host's mounts runs direct. The tools' descriptions
355
+ * and grep's notes mention direct mounts only on such a host, so both ask
356
+ * this one question.
357
+ */
358
+ private anyRunsDirect;
301
359
  getTools(): ToolDefinition[];
302
360
  private generatedTextFiles;
303
361
  /** Compare the same normalized physical path for registration and tool access. */
@@ -354,6 +412,12 @@ export declare class WorkspaceModule implements Module {
354
412
  * withheld original this way, for the branch its stub is on
355
413
  * (agent-framework #277).
356
414
  *
415
+ * On a mount running direct, the bytes go to disk as a direct `write`'s
416
+ * do, whole or not at all, and nothing goes into the store: `branch` is
417
+ * checked before the write starts and again just before its rename, and
418
+ * `agentName` names the agent whose write it is for the head-move notice
419
+ * (a write naming none tells no agent).
420
+ *
357
421
  * A write whose tree entry is set but that then fails returns success
358
422
  * false with `data: { inChronicle: true }`: its copy on disk was refused,
359
423
  * the store failed after recording the entry, which skips the push where
@@ -365,14 +429,19 @@ export declare class WorkspaceModule implements Module {
365
429
  */
366
430
  writeBinary(mountPrefixedPath: string, data: Buffer, mimeType: string, options?: {
367
431
  branch?: string;
432
+ agentName?: string;
368
433
  }): Promise<ToolResult>;
369
434
  private writeBinaryUnderWay;
370
435
  /**
371
- * Read a file's raw bytes from a mount (through the Chronicle tree, synced
372
- * first like the `read` tool; on a direct mount, from disk as
373
- * readBinaryFromDisk reads it, at most the mount's `maxFileSize`). Public
374
- * API for the framework's synthesized `read_image` tool and other peer
375
- * callers that need binary content.
436
+ * Read a file's raw bytes from a mount: through the Chronicle tree, a path
437
+ * the workspace doesn't hold observed first (ensureSynced); or, on a direct
438
+ * mount, from disk as readBinaryFromDisk reads it, at most the mount's
439
+ * `maxFileSize`. A path the workspace holds is read as the workspace holds
440
+ * it, not settled as the `read` tool settles it: the tree takes in no
441
+ * binary disk copy, so a pass over a held binary file that disk changed
442
+ * would drop the workspace's copy. Public API for the framework's
443
+ * synthesized `read_image` tool, where the workspace module doesn't serve
444
+ * read_image itself, and other peer callers that need binary content.
376
445
  */
377
446
  readBinary(mountPrefixedPath: string): Promise<{
378
447
  data: Buffer;
@@ -475,8 +544,10 @@ export declare class WorkspaceModule implements Module {
475
544
  * mount nested by its directories alone, since its real root holds this
476
545
  * one, is judged by the parse's nesting, so a root repointed between a
477
546
  * read's parse and its open can have it serve a path in that mount's
478
- * directory. Each mount is placed as a start places it (placementOf), from
479
- * where its real root and the directories above its configured path lie on
547
+ * directory, and one repointed between a direct write's parse and its
548
+ * staging can have the write land there. Each mount is placed as a start
549
+ * places it (placementOf), from where its real root and the directories
550
+ * above its configured path lie on
480
551
  * disk. For a mount configured at this mount's own path or beneath it,
481
552
  * that's where they lie now: beneath `rootReal` where they lie beneath this
482
553
  * mount's path, and the directories above this mount's path as resolving
@@ -837,15 +908,19 @@ export declare class WorkspaceModule implements Module {
837
908
  */
838
909
  private settleBeforeMutation;
839
910
  /**
840
- * Before a read: a path the workspace doesn't hold is observed under the
841
- * three-way rule, which ingests a new disk file but never brings back a
842
- * workspace deletion or a file absent from this branch. The pass names the
843
- * path, as a file tool names the one it acts on: a path the mount passes
844
- * over by design is observed, as a sync naming it would observe it (#276),
845
- * while a path in another mount's directory is refused before this, and
846
- * passed over by any pass. Answers the pass's report on the path, and why
847
- * the pass decided nothing where it did (undecidedOf), which leaves disk
848
- * unchecked. The caller holds the mount's turn.
911
+ * Before a deletion, and for readBinary: a path the workspace doesn't hold
912
+ * is observed under the three-way rule, which ingests a new disk file but
913
+ * never brings back a workspace deletion or a file absent from this branch.
914
+ * A path it holds is left alone. For a deletion, as for a write, taking
915
+ * disk's change in first would let the push remove that change unseen; for
916
+ * readBinary, a pass would drop a held binary file that disk changed, since
917
+ * the tree takes in no binary disk copy. The pass names the path, as a file
918
+ * tool names the one it acts on: a path the mount passes over by design is
919
+ * observed, as a sync naming it would observe it (#276), while a path in
920
+ * another mount's directory is refused before this, and passed over by any
921
+ * pass. Answers the pass's report on the path, and why the pass decided
922
+ * nothing where it did (undecidedOf), which leaves disk unchecked. The
923
+ * caller holds the mount's turn.
849
924
  */
850
925
  private ensureSynced;
851
926
  /**
@@ -857,10 +932,11 @@ export declare class WorkspaceModule implements Module {
857
932
  /** Why the workspace holds no entry at a path, when disk explains it. */
858
933
  private notInWorkspace;
859
934
  /**
860
- * A file's bytes for read, from where the mount keeps what it reads: the
861
- * workspace's copy, taken in from disk first where it holds none
862
- * (ensureSynced); or, on a direct mount, disk's file as it is now
863
- * (bytesOnDisk). An error says why there are none to read.
935
+ * A file's bytes for read, and the notes that say which copy they are. On a
936
+ * 'chronicle' mount it's the workspace's copy, after a pass over the path
937
+ * takes disk's change to it in first. On a direct mount it's disk's file as
938
+ * it is now (bytesOnDisk), with no notes, since nothing else is kept. An
939
+ * error says why there are none to read.
864
940
  */
865
941
  private bytesOf;
866
942
  /**
@@ -872,6 +948,12 @@ export declare class WorkspaceModule implements Module {
872
948
  * read_image reads where it's an image.
873
949
  */
874
950
  private bytesOnDisk;
951
+ /**
952
+ * A read's page, held to `maxChars`, the most of this call's result that
953
+ * can reach its caller whole. A call that carries none, made in process,
954
+ * takes the data itself: its page holds to its line limit alone, with every
955
+ * line whole, as it did before pages had a budget.
956
+ */
875
957
  private handleRead;
876
958
  private handleReadImage;
877
959
  private handleWrite;
@@ -938,6 +1020,127 @@ export declare class WorkspaceModule implements Module {
938
1020
  * would (`conflicts`, found only where the mount doesn't push).
939
1021
  */
940
1022
  private editsStoredButUnfinished;
1023
+ /**
1024
+ * A direct mount's write of a whole file: its bytes staged beside it and
1025
+ * renamed over it (direct-write.ts), under the mount's turn, so the
1026
+ * module's own calls take turns. Answers a note when the file had other
1027
+ * hard links, which keep its old text, or why nothing was written. One
1028
+ * that lands is the caller's latest write on the mount (recordDirectWrite).
1029
+ * With `branch`, nothing is written once the store's branch is another,
1030
+ * checked with no turn of the event loop before the rename (writeBinary's).
1031
+ */
1032
+ private writeDirect;
1033
+ /**
1034
+ * applyEdits on a direct mount, under the mount's turn, whose edits land
1035
+ * on disk or don't happen. Each attempt reads every file from disk as it
1036
+ * is now (directEditText), plans every edit against those bytes as on any
1037
+ * mount (planTargetEdits), stages every file beside itself, checks every
1038
+ * one unchanged since its read, and then renames each over its file in
1039
+ * turn (direct-write.ts). A file another writer changed between its read
1040
+ * and its check has the call read and planned again against its new
1041
+ * text, three attempts in all (DIRECT_EDIT_ATTEMPTS), so edits that no
1042
+ * longer apply to it, a file that changed at every attempt, or a file the
1043
+ * next read refuses as any read would (now past the size limit, say) are
1044
+ * refused, with nothing written. A rename that fails after others leaves
1045
+ * those written and the rest as they were, and the answer names each
1046
+ * file's outcome; nothing puts the written ones back.
1047
+ */
1048
+ private applyDirectEdits;
1049
+ /**
1050
+ * One attempt of applyDirectEdits: its answer, or 'changed' when another
1051
+ * writer changed a file since its read, with nothing written. `early` are
1052
+ * the problems found before any file was read, which a refusal names with
1053
+ * the rest. The caller holds the mount's turn.
1054
+ */
1055
+ private attemptDirectEdits;
1056
+ /**
1057
+ * The answer to an edit_many call on a direct mount whose rename of its
1058
+ * `failed`th file failed after the ones before it were written: what was
1059
+ * written, the failure, and that nothing puts them back, then each file's
1060
+ * outcome, within `maxChars`, with the hard links a written one split
1061
+ * from, as a full answer names them (linksNote).
1062
+ */
1063
+ private directEditsPartway;
1064
+ /**
1065
+ * A direct mount's file as an edit reads it: its bytes on disk as they are
1066
+ * now, through the mount's boundary as read reaches them
1067
+ * (openContainedFile), with the file's identity when the read began, which
1068
+ * the write checks it against just before its rename. A file changed while
1069
+ * it was read is `changed`, so the call reads it again. What the
1070
+ * workspace doesn't show as text, it doesn't edit either: a file over the
1071
+ * mount's size limit, and a binary one.
1072
+ */
1073
+ private directEditText;
1074
+ /**
1075
+ * A direct mount's deletion: the file the read tools reach, by their
1076
+ * refusals (openContainedFile), unlinked through the mount's boundary as
1077
+ * a push's deletion unlinks one (unlinkContained). A followed link is the
1078
+ * entry removed, as there. One that lands is the caller's latest write on
1079
+ * the mount (recordDirectWrite).
1080
+ */
1081
+ private deleteDirect;
1082
+ /**
1083
+ * After a direct write lands: the agent's latest write on the mount, P,
1084
+ * moves to it, where the agent's history holds P or the notice of its
1085
+ * departure from P, N (historyHoldsWrites), and N clears. Otherwise P
1086
+ * stays where it is: the head moved away from it under the call's turn,
1087
+ * and the next start's notice covers what it left (headMoveNotice). P is
1088
+ * the branch and the store's head as it is now, read with no turn of the
1089
+ * event loop since the write, so no record that lands after the write is
1090
+ * taken for one before it. A deletion, whose unlink is awaited, passes
1091
+ * where the head was just before its unlink (`since`): where the branch
1092
+ * changed meanwhile, the head moved under the call, and P is set there,
1093
+ * so the next start judges the deletion by the branch its turn was on,
1094
+ * unless the history doesn't hold P already, whose notice is owed. A write no agent
1095
+ * made tells no one. The store's reads here come after the write landed,
1096
+ * so one that throws is logged and P stays, as for a history that can't
1097
+ * be read, and the write still answers that it landed.
1098
+ */
1099
+ private recordDirectWrite;
1100
+ /** The store's branch and head now, or null where the store can't say. */
1101
+ private positionNow;
1102
+ /**
1103
+ * Whether an agent's history holds its latest direct write on a mount
1104
+ * (holdsPosition), or the notice of its departure from it, judged by the
1105
+ * notice's own presence there, through the lookup the framework hands the
1106
+ * module (useHistory); null where that lookup threw, which is logged. A
1107
+ * history that can't be read decides nothing: a write takes it as not
1108
+ * held, so its position stays and the notice stays owed, and a start
1109
+ * gives no notice, which may not be true of a history it can't read, and
1110
+ * leaves the next start to decide (headMoveNotice).
1111
+ */
1112
+ private historyHoldsWrites;
1113
+ /**
1114
+ * Whether the store's current branch holds what came before a direct
1115
+ * write: it's the write's branch, or continues it with every fork point on
1116
+ * the way after `after`, the store's head when the write landed. A fork at
1117
+ * exactly `after` doesn't: an undo forks at its turn's sequenceBefore,
1118
+ * which is the head at the write when nothing was recorded in the turn
1119
+ * before it. A missing branch or one without fork metadata holds nothing,
1120
+ * as for the materialize guard (isLinearContinuation).
1121
+ */
1122
+ private holdsPosition;
1123
+ /**
1124
+ * The framework's check at every start of an agent's turn, opening,
1125
+ * continuing or resuming: the notice due for each mount the agent wrote
1126
+ * direct where its history holds neither its latest write there nor the
1127
+ * notice of its departure from it (historyHoldsWrites), with those
1128
+ * mounts' names; or null, as on a head that hasn't moved. The framework
1129
+ * stores the text in the agent's history before the turn's compile and
1130
+ * hands its message id back (headMoveNoticeStored).
1131
+ */
1132
+ headMoveNotice(agentName: string): {
1133
+ text: string;
1134
+ mounts: string[];
1135
+ } | null;
1136
+ /** The id of the message headMoveNotice's text was stored as, N, for each mount it named. */
1137
+ headMoveNoticeStored(agentName: string, mounts: readonly string[], messageId: string): void;
1138
+ /**
1139
+ * How the module asks whether an agent's history holds a message, as the
1140
+ * framework judges its own notices (`cm.getMessage(id) !== null`): handed
1141
+ * over once, when the module is added. Without it, no notice is held.
1142
+ */
1143
+ useHistory(lookup: (agentName: string, messageId: string) => boolean): void;
941
1144
  private handleDelete;
942
1145
  private handleLs;
943
1146
  /**
@@ -973,6 +1176,22 @@ export declare class WorkspaceModule implements Module {
973
1176
  private diskWalk;
974
1177
  private handleGlob;
975
1178
  private handleGrep;
1179
+ /**
1180
+ * Why a grep or a glob whose `path` (`given`, in the mount at
1181
+ * `relativePath`) and filter or pattern can't overlap did nothing. grep's
1182
+ * filter is matched from the mount's root, and in the mount its first
1183
+ * segment names, either tool's is read mount-prefixed (`prefixed`), from
1184
+ * that mount's root; either way no file at or beneath the path can pass
1185
+ * it. Where the path isn't a file, it names the one that reaches beneath
1186
+ * it, the one meant if it was written relative to the path, mount-prefixed
1187
+ * as the tools write paths: the path's own `{`, `}`, `*` and `?` stand as
1188
+ * `?`, which matches each of them, and since the search stays beneath the
1189
+ * path, a `?` that would match a sibling's name too takes nothing in from
1190
+ * outside it. One with an empty, `.` or `..` segment gets no suggestion,
1191
+ * since no path holds such a segment. Segments are read as written, so one
1192
+ * a brace group splits around isn't told apart.
1193
+ */
1194
+ private disjointRefusal;
976
1195
  /**
977
1196
  * The texts a 'chronicle' mount's grep searches beneath `start`, or in the
978
1197
  * single file `relativePath` names, those `keep` lets through, each handed
@@ -1079,9 +1298,9 @@ export declare class WorkspaceModule implements Module {
1079
1298
  * on disk (a shell command's files, a deletion) is in the workspace when the
1080
1299
  * agent next looks. On a mount over its walkCap, that holds for the first
1081
1300
  * walkCap entries in the walk's order, which every batch's scan takes; files
1082
- * past them come in through syncs and the listings that reach them, while a
1083
- * read takes in only a file the workspace doesn't hold yet. A scan that
1084
- * outlasts the deadline stops holding the round: the miss is recorded on
1301
+ * past them come in through syncs, the listings that reach them, and a read
1302
+ * of the path, which takes disk's change in first as a listing does. A scan
1303
+ * that outlasts the deadline stops holding the round: the miss is recorded on
1085
1304
  * the mount's status and pushed as a `workspace:agent-action-scan-incomplete`
1086
1305
  * event, and the scan continues, deciding on the branch selected when it
1087
1306
  * applies.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/workspace/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/workspace/index.ts"],"names":[],"mappings":"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"}