@animalabs/agent-framework 0.22.2 → 0.22.3

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 (935) hide show
  1. package/README.md +3 -1
  2. package/dist/src/agent.d.ts +77 -12
  3. package/dist/src/agent.d.ts.map +1 -1
  4. package/dist/src/agent.js +136 -40
  5. package/dist/src/agent.js.map +1 -1
  6. package/dist/src/api/mcp-server-core.js +1 -1
  7. package/dist/src/api/mcp-server-core.js.map +1 -1
  8. package/dist/src/api/server.d.ts.map +1 -1
  9. package/dist/src/api/server.js +5 -1
  10. package/dist/src/api/server.js.map +1 -1
  11. package/dist/src/api/types.d.ts +1 -1
  12. package/dist/src/api/types.d.ts.map +1 -1
  13. package/dist/src/branch-names.d.ts +14 -0
  14. package/dist/src/branch-names.d.ts.map +1 -0
  15. package/dist/src/branch-names.js +22 -0
  16. package/dist/src/branch-names.js.map +1 -0
  17. package/dist/src/closest-names.d.ts +28 -0
  18. package/dist/src/closest-names.d.ts.map +1 -0
  19. package/dist/src/closest-names.js +98 -0
  20. package/dist/src/closest-names.js.map +1 -0
  21. package/dist/src/code-execution/py-runner.d.ts +16 -5
  22. package/dist/src/code-execution/py-runner.d.ts.map +1 -1
  23. package/dist/src/code-execution/py-runner.js +186 -74
  24. package/dist/src/code-execution/py-runner.js.map +1 -1
  25. package/dist/src/code-execution/runtime-py.d.ts.map +1 -1
  26. package/dist/src/code-execution/runtime-py.js +49 -3
  27. package/dist/src/code-execution/runtime-py.js.map +1 -1
  28. package/dist/src/code-execution/tool-definition.d.ts +12 -1
  29. package/dist/src/code-execution/tool-definition.d.ts.map +1 -1
  30. package/dist/src/code-execution/tool-definition.js +21 -3
  31. package/dist/src/code-execution/tool-definition.js.map +1 -1
  32. package/dist/src/config-checks.d.ts +28 -0
  33. package/dist/src/config-checks.d.ts.map +1 -0
  34. package/dist/src/config-checks.js +52 -0
  35. package/dist/src/config-checks.js.map +1 -0
  36. package/dist/src/deadline-timer.d.ts +21 -0
  37. package/dist/src/deadline-timer.d.ts.map +1 -0
  38. package/dist/src/deadline-timer.js +43 -0
  39. package/dist/src/deadline-timer.js.map +1 -0
  40. package/dist/src/error-message.d.ts +30 -0
  41. package/dist/src/error-message.d.ts.map +1 -0
  42. package/dist/src/error-message.js +50 -0
  43. package/dist/src/error-message.js.map +1 -0
  44. package/dist/src/framework.d.ts +828 -88
  45. package/dist/src/framework.d.ts.map +1 -1
  46. package/dist/src/framework.js +5011 -1326
  47. package/dist/src/framework.js.map +1 -1
  48. package/dist/src/gate/event-gate.d.ts +8 -0
  49. package/dist/src/gate/event-gate.d.ts.map +1 -1
  50. package/dist/src/gate/event-gate.js +27 -3
  51. package/dist/src/gate/event-gate.js.map +1 -1
  52. package/dist/src/index.d.ts +4 -2
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +4 -2
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/mcpl/channel-registry.d.ts +144 -6
  57. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  58. package/dist/src/mcpl/channel-registry.js +424 -263
  59. package/dist/src/mcpl/channel-registry.js.map +1 -1
  60. package/dist/src/mcpl/checkpoint-manager.d.ts +21 -1
  61. package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -1
  62. package/dist/src/mcpl/checkpoint-manager.js +91 -30
  63. package/dist/src/mcpl/checkpoint-manager.js.map +1 -1
  64. package/dist/src/mcpl/conversation-router.d.ts +19 -3
  65. package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
  66. package/dist/src/mcpl/conversation-router.js +23 -8
  67. package/dist/src/mcpl/conversation-router.js.map +1 -1
  68. package/dist/src/mcpl/convert-block.d.ts +20 -0
  69. package/dist/src/mcpl/convert-block.d.ts.map +1 -0
  70. package/dist/src/mcpl/convert-block.js +89 -0
  71. package/dist/src/mcpl/convert-block.js.map +1 -0
  72. package/dist/src/mcpl/errors.d.ts +13 -0
  73. package/dist/src/mcpl/errors.d.ts.map +1 -1
  74. package/dist/src/mcpl/errors.js +28 -0
  75. package/dist/src/mcpl/errors.js.map +1 -1
  76. package/dist/src/mcpl/hook-orchestrator.d.ts +23 -0
  77. package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
  78. package/dist/src/mcpl/hook-orchestrator.js +83 -72
  79. package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
  80. package/dist/src/mcpl/inbound-source.d.ts +114 -0
  81. package/dist/src/mcpl/inbound-source.d.ts.map +1 -0
  82. package/dist/src/mcpl/inbound-source.js +83 -0
  83. package/dist/src/mcpl/inbound-source.js.map +1 -0
  84. package/dist/src/mcpl/index.d.ts +3 -1
  85. package/dist/src/mcpl/index.d.ts.map +1 -1
  86. package/dist/src/mcpl/index.js +3 -1
  87. package/dist/src/mcpl/index.js.map +1 -1
  88. package/dist/src/mcpl/inference-router.d.ts +15 -11
  89. package/dist/src/mcpl/inference-router.d.ts.map +1 -1
  90. package/dist/src/mcpl/inference-router.js +153 -84
  91. package/dist/src/mcpl/inference-router.js.map +1 -1
  92. package/dist/src/mcpl/push-coalescer.d.ts +33 -11
  93. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
  94. package/dist/src/mcpl/push-coalescer.js +52 -20
  95. package/dist/src/mcpl/push-coalescer.js.map +1 -1
  96. package/dist/src/mcpl/push-handler.d.ts +16 -9
  97. package/dist/src/mcpl/push-handler.d.ts.map +1 -1
  98. package/dist/src/mcpl/push-handler.js +18 -83
  99. package/dist/src/mcpl/push-handler.js.map +1 -1
  100. package/dist/src/mcpl/reference-fetcher.d.ts +14 -2
  101. package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
  102. package/dist/src/mcpl/reference-fetcher.js +72 -30
  103. package/dist/src/mcpl/reference-fetcher.js.map +1 -1
  104. package/dist/src/mcpl/references.d.ts +47 -12
  105. package/dist/src/mcpl/references.d.ts.map +1 -1
  106. package/dist/src/mcpl/references.js +74 -21
  107. package/dist/src/mcpl/references.js.map +1 -1
  108. package/dist/src/mcpl/server-connection.d.ts +89 -10
  109. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  110. package/dist/src/mcpl/server-connection.js +405 -129
  111. package/dist/src/mcpl/server-connection.js.map +1 -1
  112. package/dist/src/mcpl/server-registry.d.ts +10 -1
  113. package/dist/src/mcpl/server-registry.d.ts.map +1 -1
  114. package/dist/src/mcpl/server-registry.js +14 -3
  115. package/dist/src/mcpl/server-registry.js.map +1 -1
  116. package/dist/src/mcpl/skip-reply-wake.d.ts +36 -0
  117. package/dist/src/mcpl/skip-reply-wake.d.ts.map +1 -0
  118. package/dist/src/mcpl/skip-reply-wake.js +55 -0
  119. package/dist/src/mcpl/skip-reply-wake.js.map +1 -0
  120. package/dist/src/mcpl/transport.d.ts +51 -2
  121. package/dist/src/mcpl/transport.d.ts.map +1 -1
  122. package/dist/src/mcpl/transport.js +114 -20
  123. package/dist/src/mcpl/transport.js.map +1 -1
  124. package/dist/src/mcpl/types.d.ts +14 -3
  125. package/dist/src/mcpl/types.d.ts.map +1 -1
  126. package/dist/src/mcpl/types.js.map +1 -1
  127. package/dist/src/mcpl/visible-content.d.ts +15 -0
  128. package/dist/src/mcpl/visible-content.d.ts.map +1 -1
  129. package/dist/src/mcpl/visible-content.js +25 -0
  130. package/dist/src/mcpl/visible-content.js.map +1 -1
  131. package/dist/src/module-registry.d.ts +19 -1
  132. package/dist/src/module-registry.d.ts.map +1 -1
  133. package/dist/src/module-registry.js +54 -25
  134. package/dist/src/module-registry.js.map +1 -1
  135. package/dist/src/modules/api/index.js +1 -1
  136. package/dist/src/modules/api/index.js.map +1 -1
  137. package/dist/src/modules/discord/discord-js-client.d.ts +1 -0
  138. package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
  139. package/dist/src/modules/discord/discord-js-client.js +25 -9
  140. package/dist/src/modules/discord/discord-js-client.js.map +1 -1
  141. package/dist/src/modules/discord/index.d.ts +29 -3
  142. package/dist/src/modules/discord/index.d.ts.map +1 -1
  143. package/dist/src/modules/discord/index.js +379 -143
  144. package/dist/src/modules/discord/index.js.map +1 -1
  145. package/dist/src/modules/discord/types.d.ts +14 -1
  146. package/dist/src/modules/discord/types.d.ts.map +1 -1
  147. package/dist/src/modules/health/index.d.ts.map +1 -1
  148. package/dist/src/modules/health/index.js +2 -1
  149. package/dist/src/modules/health/index.js.map +1 -1
  150. package/dist/src/modules/history/index.d.ts +3 -1
  151. package/dist/src/modules/history/index.d.ts.map +1 -1
  152. package/dist/src/modules/history/index.js +359 -127
  153. package/dist/src/modules/history/index.js.map +1 -1
  154. package/dist/src/modules/history/semantic.d.ts +28 -1
  155. package/dist/src/modules/history/semantic.d.ts.map +1 -1
  156. package/dist/src/modules/history/semantic.js +177 -32
  157. package/dist/src/modules/history/semantic.js.map +1 -1
  158. package/dist/src/modules/unknown-tool.d.ts +10 -0
  159. package/dist/src/modules/unknown-tool.d.ts.map +1 -0
  160. package/dist/src/modules/unknown-tool.js +17 -0
  161. package/dist/src/modules/unknown-tool.js.map +1 -0
  162. package/dist/src/modules/workspace/disk-agreement.d.ts +32 -2
  163. package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
  164. package/dist/src/modules/workspace/disk-agreement.js +30 -2
  165. package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
  166. package/dist/src/modules/workspace/effects.d.ts +64 -6
  167. package/dist/src/modules/workspace/effects.d.ts.map +1 -1
  168. package/dist/src/modules/workspace/effects.js +291 -44
  169. package/dist/src/modules/workspace/effects.js.map +1 -1
  170. package/dist/src/modules/workspace/index.d.ts +119 -23
  171. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  172. package/dist/src/modules/workspace/index.js +793 -247
  173. package/dist/src/modules/workspace/index.js.map +1 -1
  174. package/dist/src/modules/workspace/observe.d.ts +75 -8
  175. package/dist/src/modules/workspace/observe.d.ts.map +1 -1
  176. package/dist/src/modules/workspace/observe.js +174 -14
  177. package/dist/src/modules/workspace/observe.js.map +1 -1
  178. package/dist/src/modules/workspace/reconcile.d.ts +58 -7
  179. package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
  180. package/dist/src/modules/workspace/reconcile.js +521 -56
  181. package/dist/src/modules/workspace/reconcile.js.map +1 -1
  182. package/dist/src/modules/workspace/types.d.ts +18 -4
  183. package/dist/src/modules/workspace/types.d.ts.map +1 -1
  184. package/dist/src/modules/workspace/types.js.map +1 -1
  185. package/dist/src/modules/workspace/watcher.d.ts +7 -2
  186. package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
  187. package/dist/src/modules/workspace/watcher.js +28 -4
  188. package/dist/src/modules/workspace/watcher.js.map +1 -1
  189. package/dist/src/prose-drafts.d.ts +240 -0
  190. package/dist/src/prose-drafts.d.ts.map +1 -0
  191. package/dist/src/prose-drafts.js +362 -0
  192. package/dist/src/prose-drafts.js.map +1 -0
  193. package/dist/src/prose-segments.d.ts +21 -2
  194. package/dist/src/prose-segments.d.ts.map +1 -1
  195. package/dist/src/prose-segments.js +46 -9
  196. package/dist/src/prose-segments.js.map +1 -1
  197. package/dist/src/recovery/offline-branch.d.ts +1 -0
  198. package/dist/src/recovery/offline-branch.d.ts.map +1 -1
  199. package/dist/src/recovery/offline-branch.js +3 -1
  200. package/dist/src/recovery/offline-branch.js.map +1 -1
  201. package/dist/src/safe-slice.d.ts +5 -1
  202. package/dist/src/safe-slice.d.ts.map +1 -1
  203. package/dist/src/safe-slice.js +9 -1
  204. package/dist/src/safe-slice.js.map +1 -1
  205. package/dist/src/tool-image-ledger.d.ts +87 -19
  206. package/dist/src/tool-image-ledger.d.ts.map +1 -1
  207. package/dist/src/tool-image-ledger.js +135 -32
  208. package/dist/src/tool-image-ledger.js.map +1 -1
  209. package/dist/src/tool-presentation.d.ts +9 -0
  210. package/dist/src/tool-presentation.d.ts.map +1 -1
  211. package/dist/src/tool-presentation.js +257 -60
  212. package/dist/src/tool-presentation.js.map +1 -1
  213. package/dist/src/tool-result-guard.d.ts.map +1 -1
  214. package/dist/src/tool-result-guard.js +7 -10
  215. package/dist/src/tool-result-guard.js.map +1 -1
  216. package/dist/src/tool-result-history.d.ts +32 -3
  217. package/dist/src/tool-result-history.d.ts.map +1 -1
  218. package/dist/src/tool-result-history.js +106 -19
  219. package/dist/src/tool-result-history.js.map +1 -1
  220. package/dist/src/tune-out/coordinator.d.ts +25 -1
  221. package/dist/src/tune-out/coordinator.d.ts.map +1 -1
  222. package/dist/src/tune-out/coordinator.js +260 -65
  223. package/dist/src/tune-out/coordinator.js.map +1 -1
  224. package/dist/src/types/agent.d.ts +17 -5
  225. package/dist/src/types/agent.d.ts.map +1 -1
  226. package/dist/src/types/events.d.ts +17 -0
  227. package/dist/src/types/events.d.ts.map +1 -1
  228. package/dist/src/types/framework.d.ts +21 -5
  229. package/dist/src/types/framework.d.ts.map +1 -1
  230. package/dist/src/types/inference-log.d.ts +1 -1
  231. package/dist/src/types/inference-log.d.ts.map +1 -1
  232. package/dist/src/types/module.d.ts +23 -4
  233. package/dist/src/types/module.d.ts.map +1 -1
  234. package/dist/src/types/trace.d.ts +95 -6
  235. package/dist/src/types/trace.d.ts.map +1 -1
  236. package/dist/src/usage/usage-tracker.d.ts +5 -0
  237. package/dist/src/usage/usage-tracker.d.ts.map +1 -1
  238. package/dist/src/usage/usage-tracker.js +35 -8
  239. package/dist/src/usage/usage-tracker.js.map +1 -1
  240. package/package.json +3 -4
  241. package/src/agent.ts +162 -40
  242. package/src/api/mcp-server-core.ts +1 -1
  243. package/src/api/server.ts +4 -1
  244. package/src/api/types.ts +1 -1
  245. package/src/branch-names.ts +19 -0
  246. package/src/closest-names.ts +94 -0
  247. package/src/code-execution/py-runner.ts +200 -76
  248. package/src/code-execution/runtime-py.ts +49 -3
  249. package/src/code-execution/tool-definition.ts +28 -4
  250. package/src/config-checks.ts +48 -0
  251. package/src/deadline-timer.ts +44 -0
  252. package/src/error-message.ts +48 -0
  253. package/src/framework.ts +5352 -1388
  254. package/src/gate/event-gate.ts +28 -3
  255. package/src/index.ts +11 -2
  256. package/src/mcpl/channel-registry.ts +517 -286
  257. package/src/mcpl/checkpoint-manager.ts +104 -29
  258. package/src/mcpl/conversation-router.ts +28 -8
  259. package/src/mcpl/convert-block.ts +97 -0
  260. package/src/mcpl/errors.ts +28 -0
  261. package/src/mcpl/hook-orchestrator.ts +84 -77
  262. package/src/mcpl/inbound-source.ts +156 -0
  263. package/src/mcpl/index.ts +10 -1
  264. package/src/mcpl/inference-router.ts +174 -99
  265. package/src/mcpl/push-coalescer.ts +60 -24
  266. package/src/mcpl/push-handler.ts +20 -90
  267. package/src/mcpl/reference-fetcher.ts +71 -26
  268. package/src/mcpl/references.ts +81 -22
  269. package/src/mcpl/server-connection.ts +427 -132
  270. package/src/mcpl/server-registry.ts +15 -4
  271. package/src/mcpl/skip-reply-wake.ts +73 -0
  272. package/src/mcpl/transport.ts +120 -18
  273. package/src/mcpl/types.ts +14 -3
  274. package/src/mcpl/visible-content.ts +27 -0
  275. package/src/module-registry.ts +58 -23
  276. package/src/modules/api/index.ts +1 -1
  277. package/src/modules/discord/discord-js-client.ts +26 -10
  278. package/src/modules/discord/index.ts +391 -158
  279. package/src/modules/discord/types.ts +15 -2
  280. package/src/modules/health/index.ts +2 -1
  281. package/src/modules/history/index.ts +410 -120
  282. package/src/modules/history/semantic.ts +189 -32
  283. package/src/modules/unknown-tool.ts +16 -0
  284. package/src/modules/workspace/disk-agreement.ts +51 -3
  285. package/src/modules/workspace/effects.ts +279 -35
  286. package/src/modules/workspace/index.ts +810 -260
  287. package/src/modules/workspace/observe.ts +194 -20
  288. package/src/modules/workspace/reconcile.ts +619 -64
  289. package/src/modules/workspace/types.ts +18 -4
  290. package/src/modules/workspace/watcher.ts +27 -4
  291. package/src/prose-drafts.ts +481 -0
  292. package/src/prose-segments.ts +51 -8
  293. package/src/recovery/offline-branch.ts +4 -1
  294. package/src/safe-slice.ts +9 -1
  295. package/src/tool-image-ledger.ts +153 -34
  296. package/src/tool-presentation.ts +224 -40
  297. package/src/tool-result-guard.ts +7 -8
  298. package/src/tool-result-history.ts +124 -20
  299. package/src/tune-out/coordinator.ts +259 -65
  300. package/src/types/agent.ts +17 -7
  301. package/src/types/events.ts +17 -0
  302. package/src/types/framework.ts +21 -5
  303. package/src/types/inference-log.ts +1 -1
  304. package/src/types/module.ts +24 -4
  305. package/src/types/trace.ts +101 -6
  306. package/src/usage/usage-tracker.ts +32 -8
  307. package/dist/test/activation-request-sanitize.test.d.ts +0 -2
  308. package/dist/test/activation-request-sanitize.test.d.ts.map +0 -1
  309. package/dist/test/activation-request-sanitize.test.js +0 -89
  310. package/dist/test/activation-request-sanitize.test.js.map +0 -1
  311. package/dist/test/agent-cache-ttl.test.d.ts +0 -2
  312. package/dist/test/agent-cache-ttl.test.d.ts.map +0 -1
  313. package/dist/test/agent-cache-ttl.test.js +0 -41
  314. package/dist/test/agent-cache-ttl.test.js.map +0 -1
  315. package/dist/test/agent-runtime-settings.test.d.ts +0 -2
  316. package/dist/test/agent-runtime-settings.test.d.ts.map +0 -1
  317. package/dist/test/agent-runtime-settings.test.js +0 -1598
  318. package/dist/test/agent-runtime-settings.test.js.map +0 -1
  319. package/dist/test/api-admin-gate.test.d.ts +0 -2
  320. package/dist/test/api-admin-gate.test.d.ts.map +0 -1
  321. package/dist/test/api-admin-gate.test.js +0 -116
  322. package/dist/test/api-admin-gate.test.js.map +0 -1
  323. package/dist/test/assistant-persist-refusal.test.d.ts +0 -2
  324. package/dist/test/assistant-persist-refusal.test.d.ts.map +0 -1
  325. package/dist/test/assistant-persist-refusal.test.js +0 -63
  326. package/dist/test/assistant-persist-refusal.test.js.map +0 -1
  327. package/dist/test/batched-wake-locus.test.d.ts +0 -2
  328. package/dist/test/batched-wake-locus.test.d.ts.map +0 -1
  329. package/dist/test/batched-wake-locus.test.js +0 -166
  330. package/dist/test/batched-wake-locus.test.js.map +0 -1
  331. package/dist/test/busy-agent-scheduler.test.d.ts +0 -2
  332. package/dist/test/busy-agent-scheduler.test.d.ts.map +0 -1
  333. package/dist/test/busy-agent-scheduler.test.js +0 -92
  334. package/dist/test/busy-agent-scheduler.test.js.map +0 -1
  335. package/dist/test/channel-incoming-targeting.test.d.ts +0 -2
  336. package/dist/test/channel-incoming-targeting.test.d.ts.map +0 -1
  337. package/dist/test/channel-incoming-targeting.test.js +0 -81
  338. package/dist/test/channel-incoming-targeting.test.js.map +0 -1
  339. package/dist/test/channel-label-history.test.d.ts +0 -2
  340. package/dist/test/channel-label-history.test.d.ts.map +0 -1
  341. package/dist/test/channel-label-history.test.js +0 -424
  342. package/dist/test/channel-label-history.test.js.map +0 -1
  343. package/dist/test/channel-lifecycle-provenance.test.d.ts +0 -2
  344. package/dist/test/channel-lifecycle-provenance.test.d.ts.map +0 -1
  345. package/dist/test/channel-lifecycle-provenance.test.js +0 -47
  346. package/dist/test/channel-lifecycle-provenance.test.js.map +0 -1
  347. package/dist/test/channel-registry-routing.test.d.ts +0 -2
  348. package/dist/test/channel-registry-routing.test.d.ts.map +0 -1
  349. package/dist/test/channel-registry-routing.test.js +0 -446
  350. package/dist/test/channel-registry-routing.test.js.map +0 -1
  351. package/dist/test/channel-registry-typing.test.d.ts +0 -2
  352. package/dist/test/channel-registry-typing.test.d.ts.map +0 -1
  353. package/dist/test/channel-registry-typing.test.js +0 -91
  354. package/dist/test/channel-registry-typing.test.js.map +0 -1
  355. package/dist/test/channels-changed-respond-first.test.d.ts +0 -2
  356. package/dist/test/channels-changed-respond-first.test.d.ts.map +0 -1
  357. package/dist/test/channels-changed-respond-first.test.js +0 -74
  358. package/dist/test/channels-changed-respond-first.test.js.map +0 -1
  359. package/dist/test/checkpoint-attribution.test.d.ts +0 -2
  360. package/dist/test/checkpoint-attribution.test.d.ts.map +0 -1
  361. package/dist/test/checkpoint-attribution.test.js +0 -200
  362. package/dist/test/checkpoint-attribution.test.js.map +0 -1
  363. package/dist/test/code-execution.test.d.ts +0 -11
  364. package/dist/test/code-execution.test.d.ts.map +0 -1
  365. package/dist/test/code-execution.test.js +0 -1272
  366. package/dist/test/code-execution.test.js.map +0 -1
  367. package/dist/test/component-defaults.test.d.ts +0 -2
  368. package/dist/test/component-defaults.test.d.ts.map +0 -1
  369. package/dist/test/component-defaults.test.js +0 -54
  370. package/dist/test/component-defaults.test.js.map +0 -1
  371. package/dist/test/conversation-fork-injection-scoping.test.d.ts +0 -2
  372. package/dist/test/conversation-fork-injection-scoping.test.d.ts.map +0 -1
  373. package/dist/test/conversation-fork-injection-scoping.test.js +0 -200
  374. package/dist/test/conversation-fork-injection-scoping.test.js.map +0 -1
  375. package/dist/test/conversation-router.test.d.ts +0 -2
  376. package/dist/test/conversation-router.test.d.ts.map +0 -1
  377. package/dist/test/conversation-router.test.js +0 -174
  378. package/dist/test/conversation-router.test.js.map +0 -1
  379. package/dist/test/conversation-routing.test.d.ts +0 -7
  380. package/dist/test/conversation-routing.test.d.ts.map +0 -1
  381. package/dist/test/conversation-routing.test.js +0 -621
  382. package/dist/test/conversation-routing.test.js.map +0 -1
  383. package/dist/test/deferred-wake-integrity.test.d.ts +0 -29
  384. package/dist/test/deferred-wake-integrity.test.d.ts.map +0 -1
  385. package/dist/test/deferred-wake-integrity.test.js +0 -320
  386. package/dist/test/deferred-wake-integrity.test.js.map +0 -1
  387. package/dist/test/discord-awareness-outbox.test.d.ts +0 -2
  388. package/dist/test/discord-awareness-outbox.test.d.ts.map +0 -1
  389. package/dist/test/discord-awareness-outbox.test.js +0 -371
  390. package/dist/test/discord-awareness-outbox.test.js.map +0 -1
  391. package/dist/test/discord-history-delete-window.test.d.ts +0 -2
  392. package/dist/test/discord-history-delete-window.test.d.ts.map +0 -1
  393. package/dist/test/discord-history-delete-window.test.js +0 -81
  394. package/dist/test/discord-history-delete-window.test.js.map +0 -1
  395. package/dist/test/discord-history-sync.test.d.ts +0 -2
  396. package/dist/test/discord-history-sync.test.d.ts.map +0 -1
  397. package/dist/test/discord-history-sync.test.js +0 -56
  398. package/dist/test/discord-history-sync.test.js.map +0 -1
  399. package/dist/test/discord-typing-keepalive.test.d.ts +0 -2
  400. package/dist/test/discord-typing-keepalive.test.d.ts.map +0 -1
  401. package/dist/test/discord-typing-keepalive.test.js +0 -77
  402. package/dist/test/discord-typing-keepalive.test.js.map +0 -1
  403. package/dist/test/ephemeral-settle.test.d.ts +0 -2
  404. package/dist/test/ephemeral-settle.test.d.ts.map +0 -1
  405. package/dist/test/ephemeral-settle.test.js +0 -354
  406. package/dist/test/ephemeral-settle.test.js.map +0 -1
  407. package/dist/test/event-gate-passthrough.test.d.ts +0 -15
  408. package/dist/test/event-gate-passthrough.test.d.ts.map +0 -1
  409. package/dist/test/event-gate-passthrough.test.js +0 -289
  410. package/dist/test/event-gate-passthrough.test.js.map +0 -1
  411. package/dist/test/event-gate-policy-mutation.test.d.ts +0 -2
  412. package/dist/test/event-gate-policy-mutation.test.d.ts.map +0 -1
  413. package/dist/test/event-gate-policy-mutation.test.js +0 -137
  414. package/dist/test/event-gate-policy-mutation.test.js.map +0 -1
  415. package/dist/test/event-gate-rate-limit.test.d.ts +0 -2
  416. package/dist/test/event-gate-rate-limit.test.d.ts.map +0 -1
  417. package/dist/test/event-gate-rate-limit.test.js +0 -627
  418. package/dist/test/event-gate-rate-limit.test.js.map +0 -1
  419. package/dist/test/event-gate-script.test.d.ts +0 -2
  420. package/dist/test/event-gate-script.test.d.ts.map +0 -1
  421. package/dist/test/event-gate-script.test.js +0 -95
  422. package/dist/test/event-gate-script.test.js.map +0 -1
  423. package/dist/test/event-gate-selfwake.test.d.ts +0 -15
  424. package/dist/test/event-gate-selfwake.test.d.ts.map +0 -1
  425. package/dist/test/event-gate-selfwake.test.js +0 -125
  426. package/dist/test/event-gate-selfwake.test.js.map +0 -1
  427. package/dist/test/event-gate-tags.test.d.ts +0 -2
  428. package/dist/test/event-gate-tags.test.d.ts.map +0 -1
  429. package/dist/test/event-gate-tags.test.js +0 -76
  430. package/dist/test/event-gate-tags.test.js.map +0 -1
  431. package/dist/test/event-gate.test.d.ts +0 -2
  432. package/dist/test/event-gate.test.d.ts.map +0 -1
  433. package/dist/test/event-gate.test.js +0 -919
  434. package/dist/test/event-gate.test.js.map +0 -1
  435. package/dist/test/explicit-prose-routing.test.d.ts +0 -11
  436. package/dist/test/explicit-prose-routing.test.d.ts.map +0 -1
  437. package/dist/test/explicit-prose-routing.test.js +0 -1715
  438. package/dist/test/explicit-prose-routing.test.js.map +0 -1
  439. package/dist/test/framework.test.d.ts +0 -5
  440. package/dist/test/framework.test.d.ts.map +0 -1
  441. package/dist/test/framework.test.js +0 -1048
  442. package/dist/test/framework.test.js.map +0 -1
  443. package/dist/test/gather-context-timeout.test.d.ts +0 -2
  444. package/dist/test/gather-context-timeout.test.d.ts.map +0 -1
  445. package/dist/test/gather-context-timeout.test.js +0 -120
  446. package/dist/test/gather-context-timeout.test.js.map +0 -1
  447. package/dist/test/health-snapshot.test.d.ts +0 -2
  448. package/dist/test/health-snapshot.test.d.ts.map +0 -1
  449. package/dist/test/health-snapshot.test.js +0 -74
  450. package/dist/test/health-snapshot.test.js.map +0 -1
  451. package/dist/test/helpers/coalescing-fixture.d.ts +0 -74
  452. package/dist/test/helpers/coalescing-fixture.d.ts.map +0 -1
  453. package/dist/test/helpers/coalescing-fixture.js +0 -152
  454. package/dist/test/helpers/coalescing-fixture.js.map +0 -1
  455. package/dist/test/helpers/coalescing-kill-child.d.ts +0 -2
  456. package/dist/test/helpers/coalescing-kill-child.d.ts.map +0 -1
  457. package/dist/test/helpers/coalescing-kill-child.js +0 -24
  458. package/dist/test/helpers/coalescing-kill-child.js.map +0 -1
  459. package/dist/test/helpers/mock-membrane.d.ts +0 -53
  460. package/dist/test/helpers/mock-membrane.d.ts.map +0 -1
  461. package/dist/test/helpers/mock-membrane.js +0 -168
  462. package/dist/test/helpers/mock-membrane.js.map +0 -1
  463. package/dist/test/helpers/pytc-stop-rows.d.ts +0 -11
  464. package/dist/test/helpers/pytc-stop-rows.d.ts.map +0 -1
  465. package/dist/test/helpers/pytc-stop-rows.js +0 -143
  466. package/dist/test/helpers/pytc-stop-rows.js.map +0 -1
  467. package/dist/test/helpers/quiesce-crash-child.d.ts +0 -2
  468. package/dist/test/helpers/quiesce-crash-child.d.ts.map +0 -1
  469. package/dist/test/helpers/quiesce-crash-child.js +0 -156
  470. package/dist/test/helpers/quiesce-crash-child.js.map +0 -1
  471. package/dist/test/hide-then-turn.test.d.ts +0 -2
  472. package/dist/test/hide-then-turn.test.d.ts.map +0 -1
  473. package/dist/test/hide-then-turn.test.js +0 -101
  474. package/dist/test/hide-then-turn.test.js.map +0 -1
  475. package/dist/test/history-module-overview.test.d.ts +0 -2
  476. package/dist/test/history-module-overview.test.d.ts.map +0 -1
  477. package/dist/test/history-module-overview.test.js +0 -711
  478. package/dist/test/history-module-overview.test.js.map +0 -1
  479. package/dist/test/history-module-realstore.test.d.ts +0 -2
  480. package/dist/test/history-module-realstore.test.d.ts.map +0 -1
  481. package/dist/test/history-module-realstore.test.js +0 -363
  482. package/dist/test/history-module-realstore.test.js.map +0 -1
  483. package/dist/test/history-module-semantic.test.d.ts +0 -2
  484. package/dist/test/history-module-semantic.test.d.ts.map +0 -1
  485. package/dist/test/history-module-semantic.test.js +0 -213
  486. package/dist/test/history-module-semantic.test.js.map +0 -1
  487. package/dist/test/history-module-ux.test.d.ts +0 -2
  488. package/dist/test/history-module-ux.test.d.ts.map +0 -1
  489. package/dist/test/history-module-ux.test.js +0 -304
  490. package/dist/test/history-module-ux.test.js.map +0 -1
  491. package/dist/test/history-module.test.d.ts +0 -2
  492. package/dist/test/history-module.test.d.ts.map +0 -1
  493. package/dist/test/history-module.test.js +0 -619
  494. package/dist/test/history-module.test.js.map +0 -1
  495. package/dist/test/history-semantic-review-findings.test.d.ts +0 -2
  496. package/dist/test/history-semantic-review-findings.test.d.ts.map +0 -1
  497. package/dist/test/history-semantic-review-findings.test.js +0 -338
  498. package/dist/test/history-semantic-review-findings.test.js.map +0 -1
  499. package/dist/test/history-semantic-sync-converges.test.d.ts +0 -2
  500. package/dist/test/history-semantic-sync-converges.test.d.ts.map +0 -1
  501. package/dist/test/history-semantic-sync-converges.test.js +0 -109
  502. package/dist/test/history-semantic-sync-converges.test.js.map +0 -1
  503. package/dist/test/host-quiesce.test.d.ts +0 -2
  504. package/dist/test/host-quiesce.test.d.ts.map +0 -1
  505. package/dist/test/host-quiesce.test.js +0 -988
  506. package/dist/test/host-quiesce.test.js.map +0 -1
  507. package/dist/test/inference-exhaustion-rewind.test.d.ts +0 -2
  508. package/dist/test/inference-exhaustion-rewind.test.d.ts.map +0 -1
  509. package/dist/test/inference-exhaustion-rewind.test.js +0 -387
  510. package/dist/test/inference-exhaustion-rewind.test.js.map +0 -1
  511. package/dist/test/inference-failure-bounds.test.d.ts +0 -2
  512. package/dist/test/inference-failure-bounds.test.d.ts.map +0 -1
  513. package/dist/test/inference-failure-bounds.test.js +0 -1202
  514. package/dist/test/inference-failure-bounds.test.js.map +0 -1
  515. package/dist/test/inference-failure-observability.test.d.ts +0 -2
  516. package/dist/test/inference-failure-observability.test.d.ts.map +0 -1
  517. package/dist/test/inference-failure-observability.test.js +0 -84
  518. package/dist/test/inference-failure-observability.test.js.map +0 -1
  519. package/dist/test/journal-tool.test.d.ts +0 -2
  520. package/dist/test/journal-tool.test.d.ts.map +0 -1
  521. package/dist/test/journal-tool.test.js +0 -33
  522. package/dist/test/journal-tool.test.js.map +0 -1
  523. package/dist/test/kv-unified-open-flight-retry.test.d.ts +0 -2
  524. package/dist/test/kv-unified-open-flight-retry.test.d.ts.map +0 -1
  525. package/dist/test/kv-unified-open-flight-retry.test.js +0 -189
  526. package/dist/test/kv-unified-open-flight-retry.test.js.map +0 -1
  527. package/dist/test/kv-unified-wiring.test.d.ts +0 -2
  528. package/dist/test/kv-unified-wiring.test.d.ts.map +0 -1
  529. package/dist/test/kv-unified-wiring.test.js +0 -95
  530. package/dist/test/kv-unified-wiring.test.js.map +0 -1
  531. package/dist/test/late-events-after-stop.test.d.ts +0 -2
  532. package/dist/test/late-events-after-stop.test.d.ts.map +0 -1
  533. package/dist/test/late-events-after-stop.test.js +0 -122
  534. package/dist/test/late-events-after-stop.test.js.map +0 -1
  535. package/dist/test/liveness-watchdog.test.d.ts +0 -2
  536. package/dist/test/liveness-watchdog.test.d.ts.map +0 -1
  537. package/dist/test/liveness-watchdog.test.js +0 -94
  538. package/dist/test/liveness-watchdog.test.js.map +0 -1
  539. package/dist/test/machine-close-provenance.test.d.ts +0 -2
  540. package/dist/test/machine-close-provenance.test.d.ts.map +0 -1
  541. package/dist/test/machine-close-provenance.test.js +0 -116
  542. package/dist/test/machine-close-provenance.test.js.map +0 -1
  543. package/dist/test/maintenance-timer.test.d.ts +0 -2
  544. package/dist/test/maintenance-timer.test.d.ts.map +0 -1
  545. package/dist/test/maintenance-timer.test.js +0 -1827
  546. package/dist/test/maintenance-timer.test.js.map +0 -1
  547. package/dist/test/mcp-server-bin.test.d.ts +0 -2
  548. package/dist/test/mcp-server-bin.test.d.ts.map +0 -1
  549. package/dist/test/mcp-server-bin.test.js +0 -142
  550. package/dist/test/mcp-server-bin.test.js.map +0 -1
  551. package/dist/test/mcpl-access-provider.test.d.ts +0 -2
  552. package/dist/test/mcpl-access-provider.test.d.ts.map +0 -1
  553. package/dist/test/mcpl-access-provider.test.js +0 -20
  554. package/dist/test/mcpl-access-provider.test.js.map +0 -1
  555. package/dist/test/mcpl-awareness-barrier.test.d.ts +0 -2
  556. package/dist/test/mcpl-awareness-barrier.test.d.ts.map +0 -1
  557. package/dist/test/mcpl-awareness-barrier.test.js +0 -769
  558. package/dist/test/mcpl-awareness-barrier.test.js.map +0 -1
  559. package/dist/test/mcpl-capability-grant.test.d.ts +0 -10
  560. package/dist/test/mcpl-capability-grant.test.d.ts.map +0 -1
  561. package/dist/test/mcpl-capability-grant.test.js +0 -111
  562. package/dist/test/mcpl-capability-grant.test.js.map +0 -1
  563. package/dist/test/mcpl-capability-scoping.test.d.ts +0 -2
  564. package/dist/test/mcpl-capability-scoping.test.d.ts.map +0 -1
  565. package/dist/test/mcpl-capability-scoping.test.js +0 -266
  566. package/dist/test/mcpl-capability-scoping.test.js.map +0 -1
  567. package/dist/test/mcpl-child-env.test.d.ts +0 -2
  568. package/dist/test/mcpl-child-env.test.d.ts.map +0 -1
  569. package/dist/test/mcpl-child-env.test.js +0 -158
  570. package/dist/test/mcpl-child-env.test.js.map +0 -1
  571. package/dist/test/mcpl-coalesced-content-parity.test.d.ts +0 -2
  572. package/dist/test/mcpl-coalesced-content-parity.test.d.ts.map +0 -1
  573. package/dist/test/mcpl-coalesced-content-parity.test.js +0 -532
  574. package/dist/test/mcpl-coalesced-content-parity.test.js.map +0 -1
  575. package/dist/test/mcpl-coalescing.test.d.ts +0 -2
  576. package/dist/test/mcpl-coalescing.test.d.ts.map +0 -1
  577. package/dist/test/mcpl-coalescing.test.js +0 -1125
  578. package/dist/test/mcpl-coalescing.test.js.map +0 -1
  579. package/dist/test/mcpl-config-diagnostics.test.d.ts +0 -2
  580. package/dist/test/mcpl-config-diagnostics.test.d.ts.map +0 -1
  581. package/dist/test/mcpl-config-diagnostics.test.js +0 -452
  582. package/dist/test/mcpl-config-diagnostics.test.js.map +0 -1
  583. package/dist/test/mcpl-empty-content.test.d.ts +0 -2
  584. package/dist/test/mcpl-empty-content.test.d.ts.map +0 -1
  585. package/dist/test/mcpl-empty-content.test.js +0 -368
  586. package/dist/test/mcpl-empty-content.test.js.map +0 -1
  587. package/dist/test/mcpl-gate-roundtrip.test.d.ts +0 -2
  588. package/dist/test/mcpl-gate-roundtrip.test.d.ts.map +0 -1
  589. package/dist/test/mcpl-gate-roundtrip.test.js +0 -285
  590. package/dist/test/mcpl-gate-roundtrip.test.js.map +0 -1
  591. package/dist/test/mcpl-list-status.test.d.ts +0 -2
  592. package/dist/test/mcpl-list-status.test.d.ts.map +0 -1
  593. package/dist/test/mcpl-list-status.test.js +0 -82
  594. package/dist/test/mcpl-list-status.test.js.map +0 -1
  595. package/dist/test/mcpl-manifest-changed.test.d.ts +0 -2
  596. package/dist/test/mcpl-manifest-changed.test.d.ts.map +0 -1
  597. package/dist/test/mcpl-manifest-changed.test.js +0 -178
  598. package/dist/test/mcpl-manifest-changed.test.js.map +0 -1
  599. package/dist/test/mcpl-push-convert.test.d.ts +0 -2
  600. package/dist/test/mcpl-push-convert.test.d.ts.map +0 -1
  601. package/dist/test/mcpl-push-convert.test.js +0 -42
  602. package/dist/test/mcpl-push-convert.test.js.map +0 -1
  603. package/dist/test/mcpl-reconnect-events.test.d.ts +0 -2
  604. package/dist/test/mcpl-reconnect-events.test.d.ts.map +0 -1
  605. package/dist/test/mcpl-reconnect-events.test.js +0 -144
  606. package/dist/test/mcpl-reconnect-events.test.js.map +0 -1
  607. package/dist/test/mcpl-reconnect-reregistration.test.d.ts +0 -2
  608. package/dist/test/mcpl-reconnect-reregistration.test.d.ts.map +0 -1
  609. package/dist/test/mcpl-reconnect-reregistration.test.js +0 -238
  610. package/dist/test/mcpl-reconnect-reregistration.test.js.map +0 -1
  611. package/dist/test/mcpl-reference-fetcher.test.d.ts +0 -2
  612. package/dist/test/mcpl-reference-fetcher.test.d.ts.map +0 -1
  613. package/dist/test/mcpl-reference-fetcher.test.js +0 -427
  614. package/dist/test/mcpl-reference-fetcher.test.js.map +0 -1
  615. package/dist/test/mcpl-reference-fields.test.d.ts +0 -2
  616. package/dist/test/mcpl-reference-fields.test.d.ts.map +0 -1
  617. package/dist/test/mcpl-reference-fields.test.js +0 -149
  618. package/dist/test/mcpl-reference-fields.test.js.map +0 -1
  619. package/dist/test/mcpl-rejection-log-lines.test.d.ts +0 -2
  620. package/dist/test/mcpl-rejection-log-lines.test.d.ts.map +0 -1
  621. package/dist/test/mcpl-rejection-log-lines.test.js +0 -349
  622. package/dist/test/mcpl-rejection-log-lines.test.js.map +0 -1
  623. package/dist/test/mcpl-request-timeout.test.d.ts +0 -2
  624. package/dist/test/mcpl-request-timeout.test.d.ts.map +0 -1
  625. package/dist/test/mcpl-request-timeout.test.js +0 -138
  626. package/dist/test/mcpl-request-timeout.test.js.map +0 -1
  627. package/dist/test/mcpl-runtime-lifecycle.test.d.ts +0 -7
  628. package/dist/test/mcpl-runtime-lifecycle.test.d.ts.map +0 -1
  629. package/dist/test/mcpl-runtime-lifecycle.test.js +0 -142
  630. package/dist/test/mcpl-runtime-lifecycle.test.js.map +0 -1
  631. package/dist/test/mcpl-stderr-tail.test.d.ts +0 -2
  632. package/dist/test/mcpl-stderr-tail.test.d.ts.map +0 -1
  633. package/dist/test/mcpl-stderr-tail.test.js +0 -210
  634. package/dist/test/mcpl-stderr-tail.test.js.map +0 -1
  635. package/dist/test/mcpl-tool-class-listing.test.d.ts +0 -2
  636. package/dist/test/mcpl-tool-class-listing.test.d.ts.map +0 -1
  637. package/dist/test/mcpl-tool-class-listing.test.js +0 -147
  638. package/dist/test/mcpl-tool-class-listing.test.js.map +0 -1
  639. package/dist/test/mcpl-tool-classes.test.d.ts +0 -7
  640. package/dist/test/mcpl-tool-classes.test.d.ts.map +0 -1
  641. package/dist/test/mcpl-tool-classes.test.js +0 -80
  642. package/dist/test/mcpl-tool-classes.test.js.map +0 -1
  643. package/dist/test/mcpl-tool-lifecycle-e2e.test.d.ts +0 -2
  644. package/dist/test/mcpl-tool-lifecycle-e2e.test.d.ts.map +0 -1
  645. package/dist/test/mcpl-tool-lifecycle-e2e.test.js +0 -237
  646. package/dist/test/mcpl-tool-lifecycle-e2e.test.js.map +0 -1
  647. package/dist/test/mcpl-tool-lifecycle-emitter.test.d.ts +0 -11
  648. package/dist/test/mcpl-tool-lifecycle-emitter.test.d.ts.map +0 -1
  649. package/dist/test/mcpl-tool-lifecycle-emitter.test.js +0 -412
  650. package/dist/test/mcpl-tool-lifecycle-emitter.test.js.map +0 -1
  651. package/dist/test/mcpl-tool-lifecycle-script.test.d.ts +0 -2
  652. package/dist/test/mcpl-tool-lifecycle-script.test.d.ts.map +0 -1
  653. package/dist/test/mcpl-tool-lifecycle-script.test.js +0 -288
  654. package/dist/test/mcpl-tool-lifecycle-script.test.js.map +0 -1
  655. package/dist/test/mcpl-tool-lifecycle.test.d.ts +0 -11
  656. package/dist/test/mcpl-tool-lifecycle.test.d.ts.map +0 -1
  657. package/dist/test/mcpl-tool-lifecycle.test.js +0 -270
  658. package/dist/test/mcpl-tool-lifecycle.test.js.map +0 -1
  659. package/dist/test/mcpl-transport-close.test.d.ts +0 -2
  660. package/dist/test/mcpl-transport-close.test.d.ts.map +0 -1
  661. package/dist/test/mcpl-transport-close.test.js +0 -373
  662. package/dist/test/mcpl-transport-close.test.js.map +0 -1
  663. package/dist/test/mcpl-transport-spawn.test.d.ts +0 -2
  664. package/dist/test/mcpl-transport-spawn.test.d.ts.map +0 -1
  665. package/dist/test/mcpl-transport-spawn.test.js +0 -58
  666. package/dist/test/mcpl-transport-spawn.test.js.map +0 -1
  667. package/dist/test/mcpl-ws-transport.test.d.ts +0 -2
  668. package/dist/test/mcpl-ws-transport.test.d.ts.map +0 -1
  669. package/dist/test/mcpl-ws-transport.test.js +0 -259
  670. package/dist/test/mcpl-ws-transport.test.js.map +0 -1
  671. package/dist/test/module-context-integration.test.d.ts +0 -18
  672. package/dist/test/module-context-integration.test.d.ts.map +0 -1
  673. package/dist/test/module-context-integration.test.js +0 -181
  674. package/dist/test/module-context-integration.test.js.map +0 -1
  675. package/dist/test/offline-recovery-branch.test.d.ts +0 -2
  676. package/dist/test/offline-recovery-branch.test.d.ts.map +0 -1
  677. package/dist/test/offline-recovery-branch.test.js +0 -570
  678. package/dist/test/offline-recovery-branch.test.js.map +0 -1
  679. package/dist/test/operator-surgery.test.d.ts +0 -2
  680. package/dist/test/operator-surgery.test.d.ts.map +0 -1
  681. package/dist/test/operator-surgery.test.js +0 -595
  682. package/dist/test/operator-surgery.test.js.map +0 -1
  683. package/dist/test/ops-alert.test.d.ts +0 -2
  684. package/dist/test/ops-alert.test.d.ts.map +0 -1
  685. package/dist/test/ops-alert.test.js +0 -153
  686. package/dist/test/ops-alert.test.js.map +0 -1
  687. package/dist/test/overbudget-drain-breaker.test.d.ts +0 -2
  688. package/dist/test/overbudget-drain-breaker.test.d.ts.map +0 -1
  689. package/dist/test/overbudget-drain-breaker.test.js +0 -198
  690. package/dist/test/overbudget-drain-breaker.test.js.map +0 -1
  691. package/dist/test/pack-installs-alone.test.d.ts +0 -2
  692. package/dist/test/pack-installs-alone.test.d.ts.map +0 -1
  693. package/dist/test/pack-installs-alone.test.js +0 -284
  694. package/dist/test/pack-installs-alone.test.js.map +0 -1
  695. package/dist/test/per-agent-delivery.test.d.ts +0 -2
  696. package/dist/test/per-agent-delivery.test.d.ts.map +0 -1
  697. package/dist/test/per-agent-delivery.test.js +0 -108
  698. package/dist/test/per-agent-delivery.test.js.map +0 -1
  699. package/dist/test/physical-window-restart.test.d.ts +0 -16
  700. package/dist/test/physical-window-restart.test.d.ts.map +0 -1
  701. package/dist/test/physical-window-restart.test.js +0 -487
  702. package/dist/test/physical-window-restart.test.js.map +0 -1
  703. package/dist/test/placed-reaction-baseline.test.d.ts +0 -2
  704. package/dist/test/placed-reaction-baseline.test.d.ts.map +0 -1
  705. package/dist/test/placed-reaction-baseline.test.js +0 -312
  706. package/dist/test/placed-reaction-baseline.test.js.map +0 -1
  707. package/dist/test/present-while-acting.test.d.ts +0 -19
  708. package/dist/test/present-while-acting.test.d.ts.map +0 -1
  709. package/dist/test/present-while-acting.test.js +0 -1649
  710. package/dist/test/present-while-acting.test.js.map +0 -1
  711. package/dist/test/prose-segments.test.d.ts +0 -2
  712. package/dist/test/prose-segments.test.d.ts.map +0 -1
  713. package/dist/test/prose-segments.test.js +0 -52
  714. package/dist/test/prose-segments.test.js.map +0 -1
  715. package/dist/test/prose-stream-router.test.d.ts +0 -2
  716. package/dist/test/prose-stream-router.test.d.ts.map +0 -1
  717. package/dist/test/prose-stream-router.test.js +0 -171
  718. package/dist/test/prose-stream-router.test.js.map +0 -1
  719. package/dist/test/provider-acceleration-cooldown.test.d.ts +0 -2
  720. package/dist/test/provider-acceleration-cooldown.test.d.ts.map +0 -1
  721. package/dist/test/provider-acceleration-cooldown.test.js +0 -435
  722. package/dist/test/provider-acceleration-cooldown.test.js.map +0 -1
  723. package/dist/test/provider-waits.test.d.ts +0 -2
  724. package/dist/test/provider-waits.test.d.ts.map +0 -1
  725. package/dist/test/provider-waits.test.js +0 -2259
  726. package/dist/test/provider-waits.test.js.map +0 -1
  727. package/dist/test/puppet-tool-call.test.d.ts +0 -2
  728. package/dist/test/puppet-tool-call.test.d.ts.map +0 -1
  729. package/dist/test/puppet-tool-call.test.js +0 -226
  730. package/dist/test/puppet-tool-call.test.js.map +0 -1
  731. package/dist/test/puppet-turn-reservation.test.d.ts +0 -2
  732. package/dist/test/puppet-turn-reservation.test.d.ts.map +0 -1
  733. package/dist/test/puppet-turn-reservation.test.js +0 -139
  734. package/dist/test/puppet-turn-reservation.test.js.map +0 -1
  735. package/dist/test/reaction-baseline-platform.test.d.ts +0 -2
  736. package/dist/test/reaction-baseline-platform.test.d.ts.map +0 -1
  737. package/dist/test/reaction-baseline-platform.test.js +0 -124
  738. package/dist/test/reaction-baseline-platform.test.js.map +0 -1
  739. package/dist/test/record-journal.test.d.ts +0 -6
  740. package/dist/test/record-journal.test.d.ts.map +0 -1
  741. package/dist/test/record-journal.test.js +0 -269
  742. package/dist/test/record-journal.test.js.map +0 -1
  743. package/dist/test/refusal-reaction-baseline.test.d.ts +0 -2
  744. package/dist/test/refusal-reaction-baseline.test.d.ts.map +0 -1
  745. package/dist/test/refusal-reaction-baseline.test.js +0 -81
  746. package/dist/test/refusal-reaction-baseline.test.js.map +0 -1
  747. package/dist/test/refusal-rewind.test.d.ts +0 -2
  748. package/dist/test/refusal-rewind.test.d.ts.map +0 -1
  749. package/dist/test/refusal-rewind.test.js +0 -117
  750. package/dist/test/refusal-rewind.test.js.map +0 -1
  751. package/dist/test/refusal-single-call.test.d.ts +0 -2
  752. package/dist/test/refusal-single-call.test.d.ts.map +0 -1
  753. package/dist/test/refusal-single-call.test.js +0 -177
  754. package/dist/test/refusal-single-call.test.js.map +0 -1
  755. package/dist/test/release-bump.test.d.ts +0 -2
  756. package/dist/test/release-bump.test.d.ts.map +0 -1
  757. package/dist/test/release-bump.test.js +0 -248
  758. package/dist/test/release-bump.test.js.map +0 -1
  759. package/dist/test/release-changelog.test.d.ts +0 -2
  760. package/dist/test/release-changelog.test.d.ts.map +0 -1
  761. package/dist/test/release-changelog.test.js +0 -159
  762. package/dist/test/release-changelog.test.js.map +0 -1
  763. package/dist/test/release-holds.test.d.ts +0 -2
  764. package/dist/test/release-holds.test.d.ts.map +0 -1
  765. package/dist/test/release-holds.test.js +0 -456
  766. package/dist/test/release-holds.test.js.map +0 -1
  767. package/dist/test/same-round-think-policy.test.d.ts +0 -2
  768. package/dist/test/same-round-think-policy.test.d.ts.map +0 -1
  769. package/dist/test/same-round-think-policy.test.js +0 -853
  770. package/dist/test/same-round-think-policy.test.js.map +0 -1
  771. package/dist/test/save-recent-image.test.d.ts +0 -26
  772. package/dist/test/save-recent-image.test.d.ts.map +0 -1
  773. package/dist/test/save-recent-image.test.js +0 -974
  774. package/dist/test/save-recent-image.test.js.map +0 -1
  775. package/dist/test/shutdown-errors.test.d.ts +0 -2
  776. package/dist/test/shutdown-errors.test.d.ts.map +0 -1
  777. package/dist/test/shutdown-errors.test.js +0 -662
  778. package/dist/test/shutdown-errors.test.js.map +0 -1
  779. package/dist/test/silent-heartbeat-rows.test.d.ts +0 -2
  780. package/dist/test/silent-heartbeat-rows.test.d.ts.map +0 -1
  781. package/dist/test/silent-heartbeat-rows.test.js +0 -451
  782. package/dist/test/silent-heartbeat-rows.test.js.map +0 -1
  783. package/dist/test/silent-heartbeat.test.d.ts +0 -2
  784. package/dist/test/silent-heartbeat.test.d.ts.map +0 -1
  785. package/dist/test/silent-heartbeat.test.js +0 -165
  786. package/dist/test/silent-heartbeat.test.js.map +0 -1
  787. package/dist/test/state-scaling-e2e.test.d.ts +0 -22
  788. package/dist/test/state-scaling-e2e.test.d.ts.map +0 -1
  789. package/dist/test/state-scaling-e2e.test.js +0 -206
  790. package/dist/test/state-scaling-e2e.test.js.map +0 -1
  791. package/dist/test/state-scaling.test.d.ts +0 -12
  792. package/dist/test/state-scaling.test.d.ts.map +0 -1
  793. package/dist/test/state-scaling.test.js +0 -251
  794. package/dist/test/state-scaling.test.js.map +0 -1
  795. package/dist/test/stop-with-host-operations.test.d.ts +0 -20
  796. package/dist/test/stop-with-host-operations.test.d.ts.map +0 -1
  797. package/dist/test/stop-with-host-operations.test.js +0 -1174
  798. package/dist/test/stop-with-host-operations.test.js.map +0 -1
  799. package/dist/test/stop-with-work-in-flight.test.d.ts +0 -23
  800. package/dist/test/stop-with-work-in-flight.test.d.ts.map +0 -1
  801. package/dist/test/stop-with-work-in-flight.test.js +0 -784
  802. package/dist/test/stop-with-work-in-flight.test.js.map +0 -1
  803. package/dist/test/surgery-marks-receipt.test.d.ts +0 -2
  804. package/dist/test/surgery-marks-receipt.test.d.ts.map +0 -1
  805. package/dist/test/surgery-marks-receipt.test.js +0 -540
  806. package/dist/test/surgery-marks-receipt.test.js.map +0 -1
  807. package/dist/test/thinking-token-stamp.test.d.ts +0 -12
  808. package/dist/test/thinking-token-stamp.test.d.ts.map +0 -1
  809. package/dist/test/thinking-token-stamp.test.js +0 -129
  810. package/dist/test/thinking-token-stamp.test.js.map +0 -1
  811. package/dist/test/timezone.test.d.ts +0 -2
  812. package/dist/test/timezone.test.d.ts.map +0 -1
  813. package/dist/test/timezone.test.js +0 -18
  814. package/dist/test/timezone.test.js.map +0 -1
  815. package/dist/test/tool-batch-hook.test.d.ts +0 -8
  816. package/dist/test/tool-batch-hook.test.d.ts.map +0 -1
  817. package/dist/test/tool-batch-hook.test.js +0 -275
  818. package/dist/test/tool-batch-hook.test.js.map +0 -1
  819. package/dist/test/tool-policy.test.d.ts +0 -2
  820. package/dist/test/tool-policy.test.d.ts.map +0 -1
  821. package/dist/test/tool-policy.test.js +0 -51
  822. package/dist/test/tool-policy.test.js.map +0 -1
  823. package/dist/test/tool-presentation.test.d.ts +0 -2
  824. package/dist/test/tool-presentation.test.d.ts.map +0 -1
  825. package/dist/test/tool-presentation.test.js +0 -268
  826. package/dist/test/tool-presentation.test.js.map +0 -1
  827. package/dist/test/tool-result-content.test.d.ts +0 -2
  828. package/dist/test/tool-result-content.test.d.ts.map +0 -1
  829. package/dist/test/tool-result-content.test.js +0 -37
  830. package/dist/test/tool-result-content.test.js.map +0 -1
  831. package/dist/test/tool-result-guard.test.d.ts +0 -2
  832. package/dist/test/tool-result-guard.test.d.ts.map +0 -1
  833. package/dist/test/tool-result-guard.test.js +0 -3729
  834. package/dist/test/tool-result-guard.test.js.map +0 -1
  835. package/dist/test/tool-result-history.test.d.ts +0 -7
  836. package/dist/test/tool-result-history.test.d.ts.map +0 -1
  837. package/dist/test/tool-result-history.test.js +0 -156
  838. package/dist/test/tool-result-history.test.js.map +0 -1
  839. package/dist/test/tool-result-spill.test.d.ts +0 -13
  840. package/dist/test/tool-result-spill.test.d.ts.map +0 -1
  841. package/dist/test/tool-result-spill.test.js +0 -586
  842. package/dist/test/tool-result-spill.test.js.map +0 -1
  843. package/dist/test/tool-wrapper-prose-guard-integration.test.d.ts +0 -2
  844. package/dist/test/tool-wrapper-prose-guard-integration.test.d.ts.map +0 -1
  845. package/dist/test/tool-wrapper-prose-guard-integration.test.js +0 -485
  846. package/dist/test/tool-wrapper-prose-guard-integration.test.js.map +0 -1
  847. package/dist/test/tool-wrapper-prose-guard.test.d.ts +0 -2
  848. package/dist/test/tool-wrapper-prose-guard.test.d.ts.map +0 -1
  849. package/dist/test/tool-wrapper-prose-guard.test.js +0 -34
  850. package/dist/test/tool-wrapper-prose-guard.test.js.map +0 -1
  851. package/dist/test/tools-observe-parser-conformance.test.d.ts +0 -2
  852. package/dist/test/tools-observe-parser-conformance.test.d.ts.map +0 -1
  853. package/dist/test/tools-observe-parser-conformance.test.js +0 -129
  854. package/dist/test/tools-observe-parser-conformance.test.js.map +0 -1
  855. package/dist/test/trunk-channel-routing.test.d.ts +0 -19
  856. package/dist/test/trunk-channel-routing.test.d.ts.map +0 -1
  857. package/dist/test/trunk-channel-routing.test.js +0 -652
  858. package/dist/test/trunk-channel-routing.test.js.map +0 -1
  859. package/dist/test/tune-out-e2e.test.d.ts +0 -2
  860. package/dist/test/tune-out-e2e.test.d.ts.map +0 -1
  861. package/dist/test/tune-out-e2e.test.js +0 -142
  862. package/dist/test/tune-out-e2e.test.js.map +0 -1
  863. package/dist/test/tune-out-gate-composition.test.d.ts +0 -2
  864. package/dist/test/tune-out-gate-composition.test.d.ts.map +0 -1
  865. package/dist/test/tune-out-gate-composition.test.js +0 -221
  866. package/dist/test/tune-out-gate-composition.test.js.map +0 -1
  867. package/dist/test/tune-out-lifecycle.test.d.ts +0 -2
  868. package/dist/test/tune-out-lifecycle.test.d.ts.map +0 -1
  869. package/dist/test/tune-out-lifecycle.test.js +0 -121
  870. package/dist/test/tune-out-lifecycle.test.js.map +0 -1
  871. package/dist/test/turn-trigger-provenance.test.d.ts +0 -2
  872. package/dist/test/turn-trigger-provenance.test.d.ts.map +0 -1
  873. package/dist/test/turn-trigger-provenance.test.js +0 -137
  874. package/dist/test/turn-trigger-provenance.test.js.map +0 -1
  875. package/dist/test/unconvertible-tool-result.test.d.ts +0 -2
  876. package/dist/test/unconvertible-tool-result.test.d.ts.map +0 -1
  877. package/dist/test/unconvertible-tool-result.test.js +0 -358
  878. package/dist/test/unconvertible-tool-result.test.js.map +0 -1
  879. package/dist/test/unsent-compiles.test.d.ts +0 -2
  880. package/dist/test/unsent-compiles.test.d.ts.map +0 -1
  881. package/dist/test/unsent-compiles.test.js +0 -139
  882. package/dist/test/unsent-compiles.test.js.map +0 -1
  883. package/dist/test/usage-accounting.test.d.ts +0 -2
  884. package/dist/test/usage-accounting.test.d.ts.map +0 -1
  885. package/dist/test/usage-accounting.test.js +0 -13
  886. package/dist/test/usage-accounting.test.js.map +0 -1
  887. package/dist/test/usage-tracker.test.d.ts +0 -2
  888. package/dist/test/usage-tracker.test.d.ts.map +0 -1
  889. package/dist/test/usage-tracker.test.js +0 -129
  890. package/dist/test/usage-tracker.test.js.map +0 -1
  891. package/dist/test/utils-surface.test.d.ts +0 -2
  892. package/dist/test/utils-surface.test.d.ts.map +0 -1
  893. package/dist/test/utils-surface.test.js +0 -145
  894. package/dist/test/utils-surface.test.js.map +0 -1
  895. package/dist/test/workspace-branch-continuation.test.d.ts +0 -15
  896. package/dist/test/workspace-branch-continuation.test.d.ts.map +0 -1
  897. package/dist/test/workspace-branch-continuation.test.js +0 -183
  898. package/dist/test/workspace-branch-continuation.test.js.map +0 -1
  899. package/dist/test/workspace-materialize-freshness.test.d.ts +0 -16
  900. package/dist/test/workspace-materialize-freshness.test.d.ts.map +0 -1
  901. package/dist/test/workspace-materialize-freshness.test.js +0 -252
  902. package/dist/test/workspace-materialize-freshness.test.js.map +0 -1
  903. package/dist/test/workspace-path-containment.test.d.ts +0 -19
  904. package/dist/test/workspace-path-containment.test.d.ts.map +0 -1
  905. package/dist/test/workspace-path-containment.test.js +0 -91
  906. package/dist/test/workspace-path-containment.test.js.map +0 -1
  907. package/dist/test/workspace-read-file-from-disk.test.d.ts +0 -17
  908. package/dist/test/workspace-read-file-from-disk.test.d.ts.map +0 -1
  909. package/dist/test/workspace-read-file-from-disk.test.js +0 -174
  910. package/dist/test/workspace-read-file-from-disk.test.js.map +0 -1
  911. package/dist/test/workspace-read-image.test.d.ts +0 -2
  912. package/dist/test/workspace-read-image.test.d.ts.map +0 -1
  913. package/dist/test/workspace-read-image.test.js +0 -597
  914. package/dist/test/workspace-read-image.test.js.map +0 -1
  915. package/dist/test/workspace-read-text.test.d.ts +0 -2
  916. package/dist/test/workspace-read-text.test.d.ts.map +0 -1
  917. package/dist/test/workspace-read-text.test.js +0 -101
  918. package/dist/test/workspace-read-text.test.js.map +0 -1
  919. package/dist/test/workspace-restore-order.test.d.ts +0 -16
  920. package/dist/test/workspace-restore-order.test.d.ts.map +0 -1
  921. package/dist/test/workspace-restore-order.test.js +0 -140
  922. package/dist/test/workspace-restore-order.test.js.map +0 -1
  923. package/dist/test/workspace-three-way.test.d.ts +0 -12
  924. package/dist/test/workspace-three-way.test.d.ts.map +0 -1
  925. package/dist/test/workspace-three-way.test.js +0 -4094
  926. package/dist/test/workspace-three-way.test.js.map +0 -1
  927. package/dist/test/workspace-watcher.test.d.ts +0 -2
  928. package/dist/test/workspace-watcher.test.d.ts.map +0 -1
  929. package/dist/test/workspace-watcher.test.js +0 -281
  930. package/dist/test/workspace-watcher.test.js.map +0 -1
  931. package/dist/test/xml-round-persist.test.d.ts +0 -19
  932. package/dist/test/xml-round-persist.test.d.ts.map +0 -1
  933. package/dist/test/xml-round-persist.test.js +0 -235
  934. package/dist/test/xml-round-persist.test.js.map +0 -1
  935. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prose-segments.d.ts","sourceRoot":"","sources":["../../src/prose-segments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAuB7E"}
1
+ {"version":3,"file":"prose-segments.d.ts","sourceRoot":"","sources":["../../src/prose-segments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CA6BzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,YAAY,EAAE,CAchB"}
@@ -10,23 +10,35 @@
10
10
  * collapsing those distinct messages into one (item 4). This helper instead
11
11
  * yields each contiguous run of text — the segments a surface should deliver as
12
12
  * separate, ordered messages. Contiguous text blocks merge into one segment;
13
- * `tool_use` / `tool_result` blocks are segment boundaries; empty or
13
+ * `tool_use` / `tool_result` blocks are segment boundaries, as are XML tool
14
+ * mode's `tool_attempt` / `tool_notice` (a refused attempt and the harness's
15
+ * notice end a round just as a call and its results do); empty or
14
16
  * whitespace-only runs are dropped.
15
17
  */
16
- export function splitProseSegments(content) {
17
- const segments = [];
18
+ /**
19
+ * The runs exactly as written: contiguous text blocks joined with a newline,
20
+ * nothing trimmed. Whitespace-only runs are dropped. Held drafts keep these,
21
+ * so a draft's words (indentation included) are the resident's own, byte for
22
+ * byte; speech routes each run trimmed of surrounding whitespace.
23
+ */
24
+ export function splitProseRuns(content) {
25
+ const runs = [];
18
26
  let buf = [];
19
27
  const flush = () => {
20
- const s = buf.join('\n').trim();
21
- if (s)
22
- segments.push(s);
28
+ const run = buf.join('\n');
29
+ if (run.trim())
30
+ runs.push(run);
23
31
  buf = [];
24
32
  };
25
33
  for (const block of content) {
26
- if (block.type === 'text') {
34
+ const type = block.type;
35
+ if (type === 'text') {
27
36
  buf.push(block.text);
28
37
  }
29
- else if (block.type === 'tool_use' || block.type === 'tool_result') {
38
+ else if (type === 'tool_use' ||
39
+ type === 'tool_result' ||
40
+ type === 'tool_attempt' ||
41
+ type === 'tool_notice') {
30
42
  flush();
31
43
  }
32
44
  // Other block types (thinking, redacted_thinking, image, …) are neither
@@ -34,6 +46,31 @@ export function splitProseSegments(content) {
34
46
  // prose messages, so they're skipped without flushing.
35
47
  }
36
48
  flush();
37
- return segments;
49
+ return runs;
50
+ }
51
+ /**
52
+ * A turn's content without the prose of some of its tool rounds, the turn's
53
+ * rounds counted from 0 in order. A round's prose is its text
54
+ * before its calls, and a round starts at the first block after the previous
55
+ * round's `tool_result` blocks. So a round with no prose still counts, two
56
+ * calls of one round (their `tool_use` blocks come before any result) stay
57
+ * one round, and a round is found by its place, whatever its text holds.
58
+ * Other rounds' text, every non-text block and the text after the last round
59
+ * stay.
60
+ */
61
+ export function withoutRoundsProse(content, rounds) {
62
+ let round = 0;
63
+ let afterResults = false;
64
+ return content.filter((block) => {
65
+ if (block.type === 'tool_result') {
66
+ afterResults = true;
67
+ return true;
68
+ }
69
+ if (afterResults) {
70
+ round++;
71
+ afterResults = false;
72
+ }
73
+ return !(block.type === 'text' && rounds.has(round));
74
+ });
38
75
  }
39
76
  //# sourceMappingURL=prose-segments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prose-segments.js","sourceRoot":"","sources":["../../src/prose-segments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,UAAU,kBAAkB,CAAC,OAAgC;IACjE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,GAAG,GAAa,EAAE,CAAC;IAEvB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,GAAG,GAAG,EAAE,CAAC;IACX,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAE,KAAyC,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACrE,KAAK,EAAE,CAAC;QACV,CAAC;QACD,wEAAwE;QACxE,0EAA0E;QAC1E,uDAAuD;IACzD,CAAC;IACD,KAAK,EAAE,CAAC;IAER,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"prose-segments.js","sourceRoot":"","sources":["../../src/prose-segments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgC;IAC7D,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,GAAG,GAAa,EAAE,CAAC;IAEvB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,GAAG,GAAG,EAAE,CAAC;IACX,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;QAClC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAE,KAAyC,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,IACL,IAAI,KAAK,UAAU;YACnB,IAAI,KAAK,aAAa;YACtB,IAAI,KAAK,cAAc;YACvB,IAAI,KAAK,aAAa,EACtB,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;QACD,wEAAwE;QACxE,0EAA0E;QAC1E,uDAAuD;IACzD,CAAC;IACD,KAAK,EAAE,CAAC;IAER,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAgC,EAChC,MAA2B;IAE3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,EAAE,CAAC;YACR,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -15,6 +15,7 @@ export interface OfflineRecoveryBranchOptions {
15
15
  fromMessageId: string;
16
16
  toMessageId: string;
17
17
  }>;
18
+ /** Defaults to `recovery/{agentName}/{ms}`, or with `-2`, `-3`, … appended when the store already holds that name. */
18
19
  branchName?: string;
19
20
  /** Defaults to the primary-agent namespace `agents/{agentName}`. */
20
21
  namespace?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"offline-branch.d.ts","sourceRoot":"","sources":["../../../src/recovery/offline-branch.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,wEAAwE;IACxE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC,CA8KtC"}
1
+ {"version":3,"file":"offline-branch.d.ts","sourceRoot":"","sources":["../../../src/recovery/offline-branch.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,wEAAwE;IACxE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,sHAAsH;IACtH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC,CA+KtC"}
@@ -1,6 +1,7 @@
1
1
  import { JsStore } from '@animalabs/chronicle';
2
2
  import { ContextManager, continuesBody } from '@animalabs/context-manager';
3
3
  import { removeStoredInterval } from '../stored-removal.js';
4
+ import { firstFreeBranchName } from '../branch-names.js';
4
5
  import { DEFAULT_DISCORD_AWARENESS_EMOJI, DiscordAwarenessOutbox, defaultDiscordAwarenessOutboxPath, extractDiscordAwarenessRefs, } from './discord-awareness-outbox.js';
5
6
  /**
6
7
  * Create a safe Chronicle branch while the normal agent host is stopped.
@@ -89,8 +90,9 @@ export async function createOfflineRecoveryBranch(options) {
89
90
  ]);
90
91
  refs = dedupeDiscordRefs([...refs, ...suppression.refs]);
91
92
  const sourceBranch = store.currentBranch().name;
93
+ const held = new Set(store.listBranches().map((branch) => branch.name));
92
94
  const targetBranch = options.branchName
93
- ?? `recovery/${options.agentName}/${Date.now()}`;
95
+ ?? firstFreeBranchName(`recovery/${options.agentName}/${Date.now()}`, (name) => held.has(name));
94
96
  if (targetBranch === sourceBranch) {
95
97
  throw new Error('Recovery branch name must differ from the active source branch');
96
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"offline-branch.js","sourceRoot":"","sources":["../../../src/recovery/offline-branch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offline-branch.js","sourceRoot":"","sources":["../../../src/recovery/offline-branch.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,11 @@
2
2
  * Slice a string without splitting surrogate pairs.
3
3
  *
4
4
  * Regular String.prototype.slice can cut in the middle of a surrogate pair,
5
- * producing invalid UTF-16. This function adjusts the end index to avoid that.
5
+ * producing invalid UTF-16. Here no half of a pair faces a cut: a start on a
6
+ * low surrogate moves forward past it, and an end just after a high surrogate
7
+ * moves back before it, whether or not the other half is there. A start of 0
8
+ * and an end at or past the length cut nothing, so the string's own first and
9
+ * last units stay as they are.
6
10
  */
7
11
  export declare function safeSlice(str: string, start: number, end: number): string;
8
12
  //# sourceMappingURL=safe-slice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-slice.d.ts","sourceRoot":"","sources":["../../src/safe-slice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAWzE"}
1
+ {"version":3,"file":"safe-slice.d.ts","sourceRoot":"","sources":["../../src/safe-slice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAezE"}
@@ -2,9 +2,17 @@
2
2
  * Slice a string without splitting surrogate pairs.
3
3
  *
4
4
  * Regular String.prototype.slice can cut in the middle of a surrogate pair,
5
- * producing invalid UTF-16. This function adjusts the end index to avoid that.
5
+ * producing invalid UTF-16. Here no half of a pair faces a cut: a start on a
6
+ * low surrogate moves forward past it, and an end just after a high surrogate
7
+ * moves back before it, whether or not the other half is there. A start of 0
8
+ * and an end at or past the length cut nothing, so the string's own first and
9
+ * last units stay as they are.
6
10
  */
7
11
  export function safeSlice(str, start, end) {
12
+ // A low surrogate where the start cuts is a pair's second half, or a lone half: either way, skip it
13
+ const first = str.charCodeAt(start);
14
+ if (start > 0 && first >= 0xdc00 && first <= 0xdfff)
15
+ start += 1;
8
16
  if (end >= str.length)
9
17
  return str.slice(start);
10
18
  // If we're about to cut between a high and low surrogate, back up one char
@@ -1 +1 @@
1
- {"version":3,"file":"safe-slice.js","sourceRoot":"","sources":["../../src/safe-slice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,GAAW;IAC/D,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/C,2EAA2E;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACrC,mDAAmD;QACnD,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"safe-slice.js","sourceRoot":"","sources":["../../src/safe-slice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,GAAW;IAC/D,oGAAoG;IACpG,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM;QAAE,KAAK,IAAI,CAAC,CAAC;IAEhE,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/C,2EAA2E;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACrC,mDAAmD;QACnD,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC"}
@@ -132,14 +132,16 @@ export type ParsedImagePlaceholder =
132
132
  /** The placeholder exactly as it appears in the text. */
133
133
  text: string;
134
134
  }
135
- /** An RFC-005 reference stub whose testimony says image — bytes live
135
+ /** An RFC-005 reference stub whose text shows an image type — bytes live
136
136
  * behind fetch_reference, never in this ledger. Occupies a slot so the
137
137
  * index cannot slide past it. */
138
138
  | {
139
139
  kind: 'reference';
140
140
  refId: string;
141
- /** Mime sniffed from the stub text; null when the stub names none. */
142
- mediaType: string | null;
141
+ /** The image type the stub shows, as a stub shows a type (sanitized and
142
+ * bounded), lowercased: the first `image/` token in its text, which can
143
+ * come from its name. */
144
+ mediaType: string;
143
145
  offset: number;
144
146
  /** The stub line exactly as it appears in the text. */
145
147
  text: string;
@@ -150,26 +152,92 @@ export type ParsedImagePlaceholder =
150
152
  * untrusted — a tool result can quote someone else's placeholder verbatim —
151
153
  * so the caller MUST cross-check a resolved ref's provenance against the
152
154
  * tool_result block it was found in before handing out bytes.
155
+ *
156
+ * Decided from the text alone, so a stored result counts the same however
157
+ * long ago it was written, across restarts and registry evictions. A
158
+ * reference stub is a slot when its text shows an image type, and a
159
+ * non-image reference is no slot. A line shaped like a stub but longer than
160
+ * buildReferenceStub writes (REFERENCE_STUB_MAX_CHARS) is quoted text and no
161
+ * slot either, so a slot's text is bounded wherever it is kept.
153
162
  */
154
163
  export declare function parseImagePlaceholders(text: string): ParsedImagePlaceholder[];
155
164
  /**
156
- * Cut `text` to at most `cap` chars WITHOUT losing or splitting an image
157
- * slot. The stored tool_result text is the only place the inventory
158
- * discovers tool images, while the live wire still delivers every image
159
- * regardless of text length — so a slot dropped by truncation is an image
160
- * the resident saw that the index silently slides past (the #104 failure,
161
- * one representation over). Returns the head to keep and the slots that
162
- * fell at or past the cut, to be re-appended verbatim after the truncation
163
- * notice. A slot straddling the cut moves the cut back to its start, so the
164
- * head never contains a partial slot (a partial reference-stub line would
165
- * otherwise still re-parse and be counted twice).
165
+ * The most image slots a stored copy keeps past its cut: a bound on what it
166
+ * carries there, set at the ledger's entry limit, the most images it holds
167
+ * bytes for. Serializing a result retains its images in order before their
168
+ * placeholders are written, and every agent's ledger is built with the
169
+ * defaults, so once a result is stored a save can reach bytes for at most
170
+ * its newest DEFAULT_TOOL_IMAGE_LEDGER_MAX_ENTRIES images, fewer when the
171
+ * ledger's limit on held characters binds first, and an inline image older
172
+ * than those can only fail. Image stubs and quoted placeholders count toward
173
+ * the bound too, so where they follow a result's images past the cut, the
174
+ * newest slots kept can leave out an image whose bytes the ledger still
175
+ * holds.
166
176
  */
167
- export declare function splitPreservingImageSlots(text: string, cap: number): {
177
+ export declare const MAX_KEPT_IMAGE_SLOTS = 64;
178
+ /** The ranges `[start, end)` of a tool result's text that its live copy
179
+ * showed beside its images: each text block up to where the live copy cut it
180
+ * at the inline cap (toolResultCutAt), and every other block whole. They
181
+ * come in text order and never overlap, as the blocks do, and
182
+ * cutStoredToolResult relies on that. */
183
+ export type ShownRanges = ReadonlyArray<readonly [number, number]>;
184
+ /** A tool result's stored copy, cut at its inline cap. */
185
+ export interface StoredCut {
186
+ /** The text before the cut. */
168
187
  head: string;
169
- tail: string[];
170
- };
171
- /** Text to append after a truncation notice so the preserved slots stay
172
- * parseable (each reference stub on its own line). Empty when none. */
173
- export declare function formatPreservedImageSlots(tail: string[]): string;
188
+ /** The image slots past the cut that the stored copy re-appends after its
189
+ * truncation notice, in text order: the newest MAX_KEPT_IMAGE_SLOTS of
190
+ * those the live copy showed. */
191
+ kept: string[];
192
+ /** How many image slots past the cut the live copy showed. */
193
+ fell: number;
194
+ }
195
+ /**
196
+ * Where a tool result's text longer than `cap` is cut: by its stored copy
197
+ * (cutStoredToolResult), by history's own truncation (truncateForHistory),
198
+ * and by its live copy, for each text block beside an image
199
+ * (tryNativeToolResultContent, framework.ts), so the stored copy and the live
200
+ * copy cut alike. The text's length when it isn't longer than `cap`.
201
+ *
202
+ * The cut is made at the cap, or before it when the cap would split a
203
+ * surrogate pair (safeSlice's rule), and that is where the moves back are
204
+ * measured from. It moves back to the start of a placeholder it would split,
205
+ * and then to the start of a stub-shaped line it would split when at most
206
+ * REFERENCE_STUB_MAX_CHARS of the line lie before it, since that part could
207
+ * still read as a slot. So no slot straddles the cut, and the text before it
208
+ * never ends in part of one. A longer part, which can't parse as a slot,
209
+ * stays before the cut. Each move back lands on a `[`, so it splits no pair.
210
+ */
211
+ export declare function toolResultCutAt(text: string, cap: number): number;
212
+ /**
213
+ * Cut a tool result's text at its inline `cap` as its stored copy keeps it
214
+ * (toolResultCutAt): the stored copy keeps what the live copy showed. A text
215
+ * within the cap is all head, with nothing kept after it.
216
+ *
217
+ * `shown` is what the live copy showed beside the stored text: null when the
218
+ * live copy was the text itself, as for every result that carried no inline
219
+ * image. Then what the cut keeps is exactly what the resident saw, and
220
+ * nothing past it is kept (#403). A result that carried an inline image went
221
+ * to the model as native blocks (tryNativeToolResultContent, framework.ts),
222
+ * every image whatever the text's length, so its stored text is the only
223
+ * place save_recent_image's inventory finds them, and a slot dropped by the
224
+ * cut would be an image the resident saw that the index slides past (#104).
225
+ * The image slots past the cut that lie wholly within what the live copy
226
+ * showed are kept, the newest MAX_KEPT_IMAGE_SLOTS of them, since the
227
+ * inventory counts from the end.
228
+ */
229
+ export declare function cutStoredToolResult(text: string, cap: number, shown: ShownRanges | null): StoredCut;
230
+ /** What a stored copy re-appends after its truncation notice: the kept
231
+ * slots, each on its own line so a reference stub stays parseable, under a
232
+ * note saying how many fell past the cut, and how many of those were left
233
+ * out and aren't counted. Empty when none fell past the cut. */
234
+ export declare function formatKeptImageSlots(cut: StoredCut): string;
235
+ /**
236
+ * The image slots a tool result's stored copy holds: its text's, or, when the
237
+ * text is longer than `cap`, those the cut keeps, in head and after the
238
+ * notice (cutStoredToolResult). The notice itself holds none. For counting a
239
+ * result before its stored copy is written, as it will count after.
240
+ */
241
+ export declare function storedImageSlots(text: string, cap: number, shown: ShownRanges | null): ParsedImagePlaceholder[];
174
242
  export declare function sha256Hex(bytes: Buffer): string;
175
243
  //# sourceMappingURL=tool-image-ledger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-image-ledger.d.ts","sourceRoot":"","sources":["../../src/tool-image-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-image-ledger.d.ts","sourceRoot":"","sources":["../../src/tool-image-ledger.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@
26
26
  * of bytes from another surface is the failure this exists to end.
27
27
  */
28
28
  import { createHash, randomBytes } from 'node:crypto';
29
+ import { REFERENCE_STUB_MAX_CHARS, referenceTypeLabel } from './mcpl/references.js';
29
30
  import { safeSlice } from './safe-slice.js';
30
31
  /** 96 MB of base64 ≈ 72 MB of image bytes — a few dozen world snapshots. */
31
32
  export const DEFAULT_TOOL_IMAGE_LEDGER_MAX_CHARS = 96 * 1024 * 1024;
@@ -143,8 +144,9 @@ function mintLedgerNonce() {
143
144
  }
144
145
  /** Grammar of a ref this module mints: `img_<ledger nonce>_<sequence>`. */
145
146
  export const TOOL_IMAGE_REF_RE = /^img_[0-9a-z]+_\d+$/;
146
- /** RFC 6838 type/subtype token characters (lowercased); no parameters. */
147
- const MEDIA_TYPE_ESSENCE_RE = /^[a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+$/;
147
+ /** RFC 6838 type/subtype token characters (lowercased), each name at most
148
+ * 127 characters (its section 4.2); no parameters. */
149
+ const MEDIA_TYPE_ESSENCE_RE = /^[a-z0-9!#$&^_.+-]{1,127}\/[a-z0-9!#$&^_.+-]{1,127}$/;
148
150
  export const FALLBACK_MEDIA_TYPE = 'application/octet-stream';
149
151
  /**
150
152
  * The one spelling the placeholder grammar accepts: trimmed, lowercased, the
@@ -166,8 +168,17 @@ export function formatToolImagePlaceholder(mediaType, sizeLabel, ref) {
166
168
  ? `[image: ${mime}, ${sizeLabel}]`
167
169
  : `[image: ${mime}, ${sizeLabel}, ref ${ref}]`;
168
170
  }
169
- const PLACEHOLDER_RE = /\[image: ([a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+), (~?[\d.]+(?:B|KB|MB))(?:, ref (img_[0-9a-z]+_\d+))?\]/g;
170
- /** `[ref_1_ab3d] cam.png — image/png, 1.2MB claimed — from tool result — …` (one line). */
171
+ /**
172
+ * `[image: image/png, ~691KB, ref img_k7x3q2_7]`. Each part is bounded by
173
+ * what formatToolImagePlaceholder writes, so text shaped like a placeholder
174
+ * but longer is no slot: a type and a subtype name at RFC 6838's 127
175
+ * characters each (normalizeMediaType writes none longer), and a size's
176
+ * number, a ledger nonce and a sequence at 16 characters each, a safe
177
+ * integer's digits.
178
+ */
179
+ const PLACEHOLDER_RE = /\[image: ([a-z0-9!#$&^_.+-]{1,127}\/[a-z0-9!#$&^_.+-]{1,127}), (~?[\d.]{1,16}(?:B|KB|MB))(?:, ref (img_[0-9a-z]{1,16}_\d{1,16}))?\]/g;
180
+ /** `[ref_1_ab3d] cam.png — image/png, 1.2MB claimed — from tool result — …`
181
+ * (one line, at most REFERENCE_STUB_MAX_CHARS long: see parseImagePlaceholders). */
171
182
  const REFERENCE_STUB_RE = /^\[(ref_[0-9a-z]+_[0-9a-z]+)\] ([^\n]*)$/gm;
172
183
  const IMAGE_MIME_RE = /\bimage\/[a-z0-9!#$&^_.+-]+/i;
173
184
  /**
@@ -176,6 +187,13 @@ const IMAGE_MIME_RE = /\bimage\/[a-z0-9!#$&^_.+-]+/i;
176
187
  * untrusted — a tool result can quote someone else's placeholder verbatim —
177
188
  * so the caller MUST cross-check a resolved ref's provenance against the
178
189
  * tool_result block it was found in before handing out bytes.
190
+ *
191
+ * Decided from the text alone, so a stored result counts the same however
192
+ * long ago it was written, across restarts and registry evictions. A
193
+ * reference stub is a slot when its text shows an image type, and a
194
+ * non-image reference is no slot. A line shaped like a stub but longer than
195
+ * buildReferenceStub writes (REFERENCE_STUB_MAX_CHARS) is quoted text and no
196
+ * slot either, so a slot's text is bounded wherever it is kept.
179
197
  */
180
198
  export function parseImagePlaceholders(text) {
181
199
  const out = [];
@@ -183,43 +201,128 @@ export function parseImagePlaceholders(text) {
183
201
  out.push({ kind: 'inline', mediaType: m[1], sizeLabel: m[2], ref: m[3] ?? null, offset: m.index ?? 0, text: m[0] });
184
202
  }
185
203
  for (const m of text.matchAll(REFERENCE_STUB_RE)) {
186
- const mime = m[2].match(IMAGE_MIME_RE);
187
- out.push({ kind: 'reference', refId: m[1], mediaType: mime ? mime[0].toLowerCase() : null, offset: m.index ?? 0, text: m[0] });
204
+ if (m[0].length > REFERENCE_STUB_MAX_CHARS)
205
+ continue;
206
+ const shown = m[2].match(IMAGE_MIME_RE);
207
+ if (!shown)
208
+ continue;
209
+ out.push({ kind: 'reference', refId: m[1], mediaType: referenceTypeLabel(shown[0]).toLowerCase(), offset: m.index ?? 0, text: m[0] });
188
210
  }
189
211
  out.sort((a, b) => a.offset - b.offset);
190
212
  return out;
191
213
  }
192
214
  /**
193
- * Cut `text` to at most `cap` chars WITHOUT losing or splitting an image
194
- * slot. The stored tool_result text is the only place the inventory
195
- * discovers tool images, while the live wire still delivers every image
196
- * regardless of text length — so a slot dropped by truncation is an image
197
- * the resident saw that the index silently slides past (the #104 failure,
198
- * one representation over). Returns the head to keep and the slots that
199
- * fell at or past the cut, to be re-appended verbatim after the truncation
200
- * notice. A slot straddling the cut moves the cut back to its start, so the
201
- * head never contains a partial slot (a partial reference-stub line would
202
- * otherwise still re-parse and be counted twice).
215
+ * The most image slots a stored copy keeps past its cut: a bound on what it
216
+ * carries there, set at the ledger's entry limit, the most images it holds
217
+ * bytes for. Serializing a result retains its images in order before their
218
+ * placeholders are written, and every agent's ledger is built with the
219
+ * defaults, so once a result is stored a save can reach bytes for at most
220
+ * its newest DEFAULT_TOOL_IMAGE_LEDGER_MAX_ENTRIES images, fewer when the
221
+ * ledger's limit on held characters binds first, and an inline image older
222
+ * than those can only fail. Image stubs and quoted placeholders count toward
223
+ * the bound too, so where they follow a result's images past the cut, the
224
+ * newest slots kept can leave out an image whose bytes the ledger still
225
+ * holds.
226
+ */
227
+ export const MAX_KEPT_IMAGE_SLOTS = DEFAULT_TOOL_IMAGE_LEDGER_MAX_ENTRIES;
228
+ /**
229
+ * Where a tool result's text longer than `cap` is cut: by its stored copy
230
+ * (cutStoredToolResult), by history's own truncation (truncateForHistory),
231
+ * and by its live copy, for each text block beside an image
232
+ * (tryNativeToolResultContent, framework.ts), so the stored copy and the live
233
+ * copy cut alike. The text's length when it isn't longer than `cap`.
234
+ *
235
+ * The cut is made at the cap, or before it when the cap would split a
236
+ * surrogate pair (safeSlice's rule), and that is where the moves back are
237
+ * measured from. It moves back to the start of a placeholder it would split,
238
+ * and then to the start of a stub-shaped line it would split when at most
239
+ * REFERENCE_STUB_MAX_CHARS of the line lie before it, since that part could
240
+ * still read as a slot. So no slot straddles the cut, and the text before it
241
+ * never ends in part of one. A longer part, which can't parse as a slot,
242
+ * stays before the cut. Each move back lands on a `[`, so it splits no pair.
203
243
  */
204
- export function splitPreservingImageSlots(text, cap) {
205
- const slots = parseImagePlaceholders(text);
206
- let cutAt = cap;
207
- for (const slot of slots) {
208
- if (slot.offset < cutAt && slot.offset + slot.text.length > cutAt)
209
- cutAt = slot.offset;
244
+ export function toolResultCutAt(text, cap) {
245
+ if (text.length <= cap)
246
+ return text.length;
247
+ let cutAt = safeSlice(text, 0, cap).length;
248
+ // Neither grammar crosses a newline, so only the line holding the cut can
249
+ // be split; it is read whole, as the parser reads it.
250
+ const lineStart = text.lastIndexOf('\n', cutAt - 1) + 1;
251
+ const newline = text.indexOf('\n', cutAt);
252
+ const line = text.slice(lineStart, newline === -1 ? text.length : newline);
253
+ for (const m of line.matchAll(PLACEHOLDER_RE)) {
254
+ const start = lineStart + (m.index ?? 0);
255
+ if (start < cutAt && start + m[0].length > cutAt)
256
+ cutAt = start;
210
257
  }
211
- return {
212
- head: safeSlice(text, 0, cutAt),
213
- tail: slots.filter((slot) => slot.offset >= cutAt).map((slot) => slot.text),
214
- };
258
+ for (const m of line.matchAll(REFERENCE_STUB_RE)) {
259
+ const start = lineStart + (m.index ?? 0);
260
+ if (start < cutAt && start + m[0].length > cutAt && cutAt - start <= REFERENCE_STUB_MAX_CHARS)
261
+ cutAt = start;
262
+ }
263
+ return cutAt;
215
264
  }
216
- /** Text to append after a truncation notice so the preserved slots stay
217
- * parseable (each reference stub on its own line). Empty when none. */
218
- export function formatPreservedImageSlots(tail) {
219
- if (tail.length === 0)
265
+ /**
266
+ * Cut a tool result's text at its inline `cap` as its stored copy keeps it
267
+ * (toolResultCutAt): the stored copy keeps what the live copy showed. A text
268
+ * within the cap is all head, with nothing kept after it.
269
+ *
270
+ * `shown` is what the live copy showed beside the stored text: null when the
271
+ * live copy was the text itself, as for every result that carried no inline
272
+ * image. Then what the cut keeps is exactly what the resident saw, and
273
+ * nothing past it is kept (#403). A result that carried an inline image went
274
+ * to the model as native blocks (tryNativeToolResultContent, framework.ts),
275
+ * every image whatever the text's length, so its stored text is the only
276
+ * place save_recent_image's inventory finds them, and a slot dropped by the
277
+ * cut would be an image the resident saw that the index slides past (#104).
278
+ * The image slots past the cut that lie wholly within what the live copy
279
+ * showed are kept, the newest MAX_KEPT_IMAGE_SLOTS of them, since the
280
+ * inventory counts from the end.
281
+ */
282
+ export function cutStoredToolResult(text, cap, shown) {
283
+ const cutAt = toolResultCutAt(text, cap);
284
+ const head = text.slice(0, cutAt);
285
+ if (shown === null)
286
+ return { head, kept: [], fell: 0 };
287
+ // The slots and the ranges both come in text order, so one pass walks
288
+ // them together: a range that ends where a slot starts, or before, holds
289
+ // no later slot either.
290
+ const past = [];
291
+ let r = 0;
292
+ for (const slot of parseImagePlaceholders(text)) {
293
+ if (slot.offset < cutAt)
294
+ continue;
295
+ while (r < shown.length && shown[r][1] <= slot.offset)
296
+ r++;
297
+ const range = shown[r];
298
+ if (range && slot.offset >= range[0] && slot.offset + slot.text.length <= range[1])
299
+ past.push(slot);
300
+ }
301
+ return { head, kept: past.slice(-MAX_KEPT_IMAGE_SLOTS).map((slot) => slot.text), fell: past.length };
302
+ }
303
+ /** What a stored copy re-appends after its truncation notice: the kept
304
+ * slots, each on its own line so a reference stub stays parseable, under a
305
+ * note saying how many fell past the cut, and how many of those were left
306
+ * out and aren't counted. Empty when none fell past the cut. */
307
+ export function formatKeptImageSlots(cut) {
308
+ if (cut.fell === 0)
220
309
  return '';
221
- return `\n[${tail.length} image slot(s) fell past the cut; kept here in order so save_recent_image still counts them:]\n`
222
- + tail.join('\n');
310
+ const leftOut = cut.fell - cut.kept.length;
311
+ const note = leftOut === 0
312
+ ? `${cut.fell} image slot(s) fell past the cut; kept here in order so save_recent_image still counts them:`
313
+ : `${cut.fell} image slot(s) fell past the cut. The last ${cut.kept.length} are kept here in order so `
314
+ + `save_recent_image still counts them; the ${leftOut} before them are left out, and it doesn't count them:`;
315
+ return `\n[${note}]\n${cut.kept.join('\n')}`;
316
+ }
317
+ /**
318
+ * The image slots a tool result's stored copy holds: its text's, or, when the
319
+ * text is longer than `cap`, those the cut keeps, in head and after the
320
+ * notice (cutStoredToolResult). The notice itself holds none. For counting a
321
+ * result before its stored copy is written, as it will count after.
322
+ */
323
+ export function storedImageSlots(text, cap, shown) {
324
+ const cut = cutStoredToolResult(text, cap, shown);
325
+ return parseImagePlaceholders(cut.head + formatKeptImageSlots(cut));
223
326
  }
224
327
  export function sha256Hex(bytes) {
225
328
  return createHash('sha256').update(bytes).digest('hex');