stitchkit 0.93.0 → 0.94.1

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 (1082) hide show
  1. package/CHANGELOG.md +198 -0
  2. package/README.md +5 -2
  3. package/dist/agent-runtime/children-control.d.ts +6 -0
  4. package/dist/agent-runtime/children-control.d.ts.map +1 -0
  5. package/dist/agent-runtime/children-spawn.d.ts +6 -0
  6. package/dist/agent-runtime/children-spawn.d.ts.map +1 -0
  7. package/dist/agent-runtime/children-state.d.ts +46 -0
  8. package/dist/agent-runtime/children-state.d.ts.map +1 -0
  9. package/dist/agent-runtime/children-usage.d.ts +8 -0
  10. package/dist/agent-runtime/children-usage.d.ts.map +1 -0
  11. package/dist/agent-runtime/children.d.ts +11 -14
  12. package/dist/agent-runtime/children.d.ts.map +1 -1
  13. package/dist/agent-runtime/coding-shell-process.d.ts.map +1 -1
  14. package/dist/agent-runtime/coding-tool-contract.d.ts +2 -1
  15. package/dist/agent-runtime/coding-tool-contract.d.ts.map +1 -1
  16. package/dist/agent-runtime/coding-tool-listing.d.ts.map +1 -1
  17. package/dist/agent-runtime/coding-tool-search-patch.d.ts.map +1 -1
  18. package/dist/agent-runtime/contained-darwin.d.ts +38 -0
  19. package/dist/agent-runtime/contained-darwin.d.ts.map +1 -0
  20. package/dist/agent-runtime/contained-files.d.ts +11 -26
  21. package/dist/agent-runtime/contained-files.d.ts.map +1 -1
  22. package/dist/agent-runtime/contained-scan.d.ts +21 -0
  23. package/dist/agent-runtime/contained-scan.d.ts.map +1 -0
  24. package/dist/agent-runtime/contained-write.d.ts +9 -0
  25. package/dist/agent-runtime/contained-write.d.ts.map +1 -0
  26. package/dist/agent-runtime/deferred-tool-types.d.ts +4 -3
  27. package/dist/agent-runtime/deferred-tool-types.d.ts.map +1 -1
  28. package/dist/agent-runtime/events.d.ts +1 -1
  29. package/dist/agent-runtime/events.d.ts.map +1 -1
  30. package/dist/agent-runtime/harness-control.d.ts +0 -1
  31. package/dist/agent-runtime/harness-control.d.ts.map +1 -1
  32. package/dist/agent-runtime/harness.d.ts +0 -5
  33. package/dist/agent-runtime/harness.d.ts.map +1 -1
  34. package/dist/agent-runtime/managed-tools.d.ts +3 -2
  35. package/dist/agent-runtime/managed-tools.d.ts.map +1 -1
  36. package/dist/agent-runtime/observability.d.ts +1 -1
  37. package/dist/agent-runtime/observability.d.ts.map +1 -1
  38. package/dist/agent-runtime/openrouter.d.ts +29 -0
  39. package/dist/agent-runtime/openrouter.d.ts.map +1 -0
  40. package/dist/agent-runtime/projections.d.ts +1 -1
  41. package/dist/agent-runtime/projections.d.ts.map +1 -1
  42. package/dist/agent-runtime/run-acquisition.d.ts +17 -0
  43. package/dist/agent-runtime/run-acquisition.d.ts.map +1 -0
  44. package/dist/agent-runtime/run-execution-state.d.ts +133 -0
  45. package/dist/agent-runtime/run-execution-state.d.ts.map +1 -0
  46. package/dist/agent-runtime/run-execution.d.ts +17 -33
  47. package/dist/agent-runtime/run-execution.d.ts.map +1 -1
  48. package/dist/agent-runtime/run-failure.d.ts +18 -0
  49. package/dist/agent-runtime/run-failure.d.ts.map +1 -0
  50. package/dist/agent-runtime/run-model-attempts.d.ts +6 -0
  51. package/dist/agent-runtime/run-model-attempts.d.ts.map +1 -0
  52. package/dist/agent-runtime/run-prompt-history.d.ts +58 -0
  53. package/dist/agent-runtime/run-prompt-history.d.ts.map +1 -0
  54. package/dist/agent-runtime/run-provider-ledger.d.ts +26 -0
  55. package/dist/agent-runtime/run-provider-ledger.d.ts.map +1 -0
  56. package/dist/agent-runtime/run-stream-parts.d.ts +17 -0
  57. package/dist/agent-runtime/run-stream-parts.d.ts.map +1 -0
  58. package/dist/agent-runtime/run-terminal.d.ts +11 -0
  59. package/dist/agent-runtime/run-terminal.d.ts.map +1 -0
  60. package/dist/agent-runtime/run-turn-preparation.d.ts +22 -0
  61. package/dist/agent-runtime/run-turn-preparation.d.ts.map +1 -0
  62. package/dist/agent-runtime/runtime-admission-gate.d.ts +29 -0
  63. package/dist/agent-runtime/runtime-admission-gate.d.ts.map +1 -0
  64. package/dist/agent-runtime/runtime-control.d.ts +9 -0
  65. package/dist/agent-runtime/runtime-control.d.ts.map +1 -0
  66. package/dist/agent-runtime/runtime-recovery.d.ts +10 -0
  67. package/dist/agent-runtime/runtime-recovery.d.ts.map +1 -0
  68. package/dist/agent-runtime/runtime-state.d.ts +36 -0
  69. package/dist/agent-runtime/runtime-state.d.ts.map +1 -0
  70. package/dist/agent-runtime/runtime-submit.d.ts +5 -0
  71. package/dist/agent-runtime/runtime-submit.d.ts.map +1 -0
  72. package/dist/agent-runtime/runtime.d.ts +10 -5
  73. package/dist/agent-runtime/runtime.d.ts.map +1 -1
  74. package/dist/agent-runtime/schedule-records.d.ts +34 -0
  75. package/dist/agent-runtime/schedule-records.d.ts.map +1 -0
  76. package/dist/agent-runtime/schedules.d.ts +34 -0
  77. package/dist/agent-runtime/schedules.d.ts.map +1 -1
  78. package/dist/agent-runtime/sqlite-bun.d.ts +12 -0
  79. package/dist/agent-runtime/sqlite-bun.d.ts.map +1 -0
  80. package/dist/agent-runtime/sqlite-events.d.ts +5 -0
  81. package/dist/agent-runtime/sqlite-events.d.ts.map +1 -0
  82. package/dist/agent-runtime/sqlite-history.d.ts +7 -0
  83. package/dist/agent-runtime/sqlite-history.d.ts.map +1 -0
  84. package/dist/agent-runtime/sqlite-ledger.d.ts +7 -0
  85. package/dist/agent-runtime/sqlite-ledger.d.ts.map +1 -0
  86. package/dist/agent-runtime/sqlite-node.d.ts +12 -0
  87. package/dist/agent-runtime/sqlite-node.d.ts.map +1 -0
  88. package/dist/agent-runtime/sqlite-reads.d.ts +14 -0
  89. package/dist/agent-runtime/sqlite-reads.d.ts.map +1 -0
  90. package/dist/agent-runtime/sqlite-rows.d.ts +178 -0
  91. package/dist/agent-runtime/sqlite-rows.d.ts.map +1 -0
  92. package/dist/agent-runtime/sqlite-schema.d.ts +7 -0
  93. package/dist/agent-runtime/sqlite-schema.d.ts.map +1 -0
  94. package/dist/agent-runtime/sqlite-transactions.d.ts +25 -0
  95. package/dist/agent-runtime/sqlite-transactions.d.ts.map +1 -0
  96. package/dist/agent-runtime/sqlite.d.ts +10 -6
  97. package/dist/agent-runtime/sqlite.d.ts.map +1 -1
  98. package/dist/agent-runtime/store-archive.d.ts +16 -0
  99. package/dist/agent-runtime/store-archive.d.ts.map +1 -0
  100. package/dist/agent-runtime/store-conformance-lifecycle.d.ts +434 -0
  101. package/dist/agent-runtime/store-conformance-lifecycle.d.ts.map +1 -0
  102. package/dist/agent-runtime/store-conformance-ordering.d.ts +18 -0
  103. package/dist/agent-runtime/store-conformance-ordering.d.ts.map +1 -0
  104. package/dist/agent-runtime/store-conformance-support.d.ts +130 -0
  105. package/dist/agent-runtime/store-conformance-support.d.ts.map +1 -0
  106. package/dist/agent-runtime/store-conformance-terminal.d.ts +12 -0
  107. package/dist/agent-runtime/store-conformance-terminal.d.ts.map +1 -0
  108. package/dist/agent-runtime/store-conformance.d.ts +40 -0
  109. package/dist/agent-runtime/store-conformance.d.ts.map +1 -0
  110. package/dist/agent-runtime/store-create.d.ts +11 -0
  111. package/dist/agent-runtime/store-create.d.ts.map +1 -0
  112. package/dist/agent-runtime/store-driver-contract.d.ts +814 -0
  113. package/dist/agent-runtime/store-driver-contract.d.ts.map +1 -0
  114. package/dist/agent-runtime/store-events.d.ts +7 -89
  115. package/dist/agent-runtime/store-events.d.ts.map +1 -1
  116. package/dist/agent-runtime/store-memory.d.ts +4 -0
  117. package/dist/agent-runtime/store-memory.d.ts.map +1 -0
  118. package/dist/agent-runtime/store-mutate.d.ts +13 -0
  119. package/dist/agent-runtime/store-mutate.d.ts.map +1 -0
  120. package/dist/agent-runtime/store-purge.d.ts +1 -1
  121. package/dist/agent-runtime/store-purge.d.ts.map +1 -1
  122. package/dist/agent-runtime/store-reads.d.ts +29 -0
  123. package/dist/agent-runtime/store-reads.d.ts.map +1 -0
  124. package/dist/agent-runtime/store-reduce-history.d.ts +10 -0
  125. package/dist/agent-runtime/store-reduce-history.d.ts.map +1 -0
  126. package/dist/agent-runtime/store-reduce-run.d.ts +14 -0
  127. package/dist/agent-runtime/store-reduce-run.d.ts.map +1 -0
  128. package/dist/agent-runtime/store-reduce-shared.d.ts +76 -0
  129. package/dist/agent-runtime/store-reduce-shared.d.ts.map +1 -0
  130. package/dist/agent-runtime/store-reduce-terminal.d.ts +6 -0
  131. package/dist/agent-runtime/store-reduce-terminal.d.ts.map +1 -0
  132. package/dist/agent-runtime/store-reducer.d.ts +24 -0
  133. package/dist/agent-runtime/store-reducer.d.ts.map +1 -0
  134. package/dist/agent-runtime/store-snapshot.d.ts +19 -0
  135. package/dist/agent-runtime/store-snapshot.d.ts.map +1 -0
  136. package/dist/agent-runtime/store.d.ts +1 -1
  137. package/dist/agent-runtime/store.d.ts.map +1 -1
  138. package/dist/application/admission-rate.d.ts +21 -0
  139. package/dist/application/admission-rate.d.ts.map +1 -0
  140. package/dist/application/admission-run.d.ts +8 -0
  141. package/dist/application/admission-run.d.ts.map +1 -0
  142. package/dist/application/admission.d.ts +1 -1
  143. package/dist/application/admission.d.ts.map +1 -1
  144. package/dist/application/diagnostic-journal-lock.d.ts +9 -34
  145. package/dist/application/diagnostic-journal-lock.d.ts.map +1 -1
  146. package/dist/application/diagnostic-journal-manager.d.ts.map +1 -1
  147. package/dist/application/diagnostic-journal-storage.d.ts.map +1 -1
  148. package/dist/application/events.d.ts +1 -1
  149. package/dist/application/events.d.ts.map +1 -1
  150. package/dist/application/file-state-store.d.ts +23 -0
  151. package/dist/application/file-state-store.d.ts.map +1 -0
  152. package/dist/application/health.d.ts +1 -1
  153. package/dist/application/health.d.ts.map +1 -1
  154. package/dist/application/kernel-admission.d.ts +8 -0
  155. package/dist/application/kernel-admission.d.ts.map +1 -0
  156. package/dist/application/kernel-contract.d.ts +142 -0
  157. package/dist/application/kernel-contract.d.ts.map +1 -0
  158. package/dist/application/kernel-resource-context.d.ts +24 -0
  159. package/dist/application/kernel-resource-context.d.ts.map +1 -0
  160. package/dist/application/kernel-restart.d.ts +5 -0
  161. package/dist/application/kernel-restart.d.ts.map +1 -0
  162. package/dist/application/kernel-rollback.d.ts +4 -0
  163. package/dist/application/kernel-rollback.d.ts.map +1 -0
  164. package/dist/application/kernel-shutdown.d.ts +6 -0
  165. package/dist/application/kernel-shutdown.d.ts.map +1 -0
  166. package/dist/application/kernel-start.d.ts +20 -0
  167. package/dist/application/kernel-start.d.ts.map +1 -0
  168. package/dist/application/kernel-state.d.ts +116 -0
  169. package/dist/application/kernel-state.d.ts.map +1 -0
  170. package/dist/application/kernel.d.ts +9 -140
  171. package/dist/application/kernel.d.ts.map +1 -1
  172. package/dist/application/latest-sink.d.ts +1 -1
  173. package/dist/application/latest-sink.d.ts.map +1 -1
  174. package/dist/application/notification-outbox.d.ts.map +1 -1
  175. package/dist/application/opentelemetry.d.ts +1 -1
  176. package/dist/application/opentelemetry.d.ts.map +1 -1
  177. package/dist/application/schedule.d.ts +0 -1
  178. package/dist/application/schedule.d.ts.map +1 -1
  179. package/dist/application/watch-hub-core.d.ts +122 -0
  180. package/dist/application/watch-hub-core.d.ts.map +1 -0
  181. package/dist/application/watch-hub.d.ts +3 -3
  182. package/dist/application/watch-hub.d.ts.map +1 -1
  183. package/dist/browser/client-executors.d.ts +14 -0
  184. package/dist/browser/client-executors.d.ts.map +1 -0
  185. package/dist/browser/client-multipart.d.ts +1 -1
  186. package/dist/browser/client-multipart.d.ts.map +1 -1
  187. package/dist/browser/client-url.d.ts +1 -1
  188. package/dist/browser/client-url.d.ts.map +1 -1
  189. package/dist/browser/client.d.ts +3 -2
  190. package/dist/browser/client.d.ts.map +1 -1
  191. package/dist/browser/contract-stream.d.ts +1 -1
  192. package/dist/browser/contract-stream.d.ts.map +1 -1
  193. package/dist/browser/http-fetch.d.ts +22 -0
  194. package/dist/browser/http-fetch.d.ts.map +1 -0
  195. package/dist/browser/http.d.ts +2 -4
  196. package/dist/browser/http.d.ts.map +1 -1
  197. package/dist/browser/live-state-core.d.ts +63 -0
  198. package/dist/browser/live-state-core.d.ts.map +1 -0
  199. package/dist/browser/live-state.d.ts.map +1 -1
  200. package/dist/browser/realtime-client.d.ts +26 -0
  201. package/dist/browser/realtime-client.d.ts.map +1 -0
  202. package/dist/browser/resumable.d.ts +1 -28
  203. package/dist/browser/resumable.d.ts.map +1 -1
  204. package/dist/browser/retained.d.ts.map +1 -0
  205. package/dist/browser/socket-io-connection.d.ts +82 -0
  206. package/dist/browser/socket-io-connection.d.ts.map +1 -0
  207. package/dist/browser/socket-io-peer.d.ts +20 -0
  208. package/dist/browser/socket-io-peer.d.ts.map +1 -0
  209. package/dist/browser/socket-io-trace.d.ts +31 -0
  210. package/dist/browser/socket-io-trace.d.ts.map +1 -0
  211. package/dist/browser/socket-io.d.ts +24 -18
  212. package/dist/browser/socket-io.d.ts.map +1 -1
  213. package/dist/browser/stream.d.ts +14 -2
  214. package/dist/browser/stream.d.ts.map +1 -1
  215. package/dist/contract/client-types.d.ts +134 -0
  216. package/dist/contract/client-types.d.ts.map +1 -0
  217. package/dist/contract/define-validation.d.ts +30 -0
  218. package/dist/contract/define-validation.d.ts.map +1 -0
  219. package/dist/contract/define.d.ts +47 -394
  220. package/dist/contract/define.d.ts.map +1 -1
  221. package/dist/contract/normalize.d.ts +56 -0
  222. package/dist/contract/normalize.d.ts.map +1 -0
  223. package/dist/contract/runtime-context.d.ts +131 -0
  224. package/dist/contract/runtime-context.d.ts.map +1 -0
  225. package/dist/contract/tool-options.d.ts +105 -0
  226. package/dist/contract/tool-options.d.ts.map +1 -0
  227. package/dist/contract/tool-view.d.ts +148 -0
  228. package/dist/contract/tool-view.d.ts.map +1 -0
  229. package/dist/declaration/declaration.d.ts.map +1 -0
  230. package/dist/durability/contract.d.ts +259 -0
  231. package/dist/durability/contract.d.ts.map +1 -0
  232. package/dist/durability/effect.d.ts +24 -0
  233. package/dist/durability/effect.d.ts.map +1 -0
  234. package/dist/durability/engine.d.ts +14 -0
  235. package/dist/durability/engine.d.ts.map +1 -0
  236. package/dist/durability/events.d.ts +103 -0
  237. package/dist/durability/events.d.ts.map +1 -0
  238. package/dist/durability/json.d.ts +3 -0
  239. package/dist/durability/json.d.ts.map +1 -0
  240. package/dist/durability/ledger.d.ts +27 -0
  241. package/dist/durability/ledger.d.ts.map +1 -0
  242. package/dist/durability/parks.d.ts +22 -0
  243. package/dist/durability/parks.d.ts.map +1 -0
  244. package/dist/durability/scheduler.d.ts +30 -0
  245. package/dist/durability/scheduler.d.ts.map +1 -0
  246. package/dist/entrypoints/agent-runtime/browser.d.ts +5 -0
  247. package/dist/entrypoints/agent-runtime/browser.d.ts.map +1 -0
  248. package/dist/entrypoints/agent-runtime/browser.js +124 -0
  249. package/dist/entrypoints/agent-runtime/coding-tools.d.ts +2 -0
  250. package/dist/entrypoints/agent-runtime/coding-tools.d.ts.map +1 -0
  251. package/dist/entrypoints/agent-runtime/coding-tools.js +22 -0
  252. package/dist/entrypoints/agent-runtime/harness.d.ts +2 -0
  253. package/dist/entrypoints/agent-runtime/harness.d.ts.map +1 -0
  254. package/dist/entrypoints/agent-runtime/harness.js +739 -0
  255. package/dist/entrypoints/agent-runtime/openrouter.d.ts +2 -0
  256. package/dist/entrypoints/agent-runtime/openrouter.d.ts.map +1 -0
  257. package/dist/entrypoints/agent-runtime/openrouter.js +270 -0
  258. package/dist/entrypoints/agent-runtime/sandbox.d.ts +5 -0
  259. package/dist/entrypoints/agent-runtime/sandbox.d.ts.map +1 -0
  260. package/dist/entrypoints/agent-runtime/sandbox.js +797 -0
  261. package/dist/entrypoints/agent-runtime/sqlite/bun.d.ts +2 -0
  262. package/dist/entrypoints/agent-runtime/sqlite/bun.d.ts.map +1 -0
  263. package/dist/entrypoints/agent-runtime/sqlite/bun.js +44 -0
  264. package/dist/entrypoints/agent-runtime/sqlite/node.d.ts +2 -0
  265. package/dist/entrypoints/agent-runtime/sqlite/node.d.ts.map +1 -0
  266. package/dist/entrypoints/agent-runtime/sqlite/node.js +46 -0
  267. package/dist/entrypoints/agent-runtime/testing.d.ts +4 -0
  268. package/dist/entrypoints/agent-runtime/testing.d.ts.map +1 -0
  269. package/dist/entrypoints/agent-runtime/testing.js +1116 -0
  270. package/dist/entrypoints/agent-runtime.d.ts +42 -0
  271. package/dist/entrypoints/agent-runtime.d.ts.map +1 -0
  272. package/dist/entrypoints/agent-runtime.js +2670 -0
  273. package/dist/entrypoints/application/diagnostic-journal.d.ts +21 -0
  274. package/dist/entrypoints/application/diagnostic-journal.d.ts.map +1 -0
  275. package/dist/entrypoints/application/diagnostic-journal.js +492 -0
  276. package/dist/entrypoints/application/grammy.d.ts +2 -0
  277. package/dist/entrypoints/application/grammy.d.ts.map +1 -0
  278. package/dist/entrypoints/application/grammy.js +169 -0
  279. package/dist/entrypoints/application/opentelemetry.d.ts +2 -0
  280. package/dist/entrypoints/application/opentelemetry.d.ts.map +1 -0
  281. package/dist/entrypoints/application/opentelemetry.js +250 -0
  282. package/dist/entrypoints/application/schemas.d.ts +15 -0
  283. package/dist/entrypoints/application/schemas.d.ts.map +1 -0
  284. package/dist/entrypoints/application/schemas.js +27 -0
  285. package/dist/entrypoints/application.d.ts +23 -0
  286. package/dist/entrypoints/application.d.ts.map +1 -0
  287. package/dist/entrypoints/application.js +2016 -0
  288. package/dist/entrypoints/bin/upgrade-cli.d.ts.map +1 -0
  289. package/dist/entrypoints/bin/upgrade-cli.js +177 -0
  290. package/dist/entrypoints/cli.d.ts +44 -0
  291. package/dist/entrypoints/cli.d.ts.map +1 -0
  292. package/dist/entrypoints/cli.js +773 -0
  293. package/dist/entrypoints/contract.d.ts +12 -0
  294. package/dist/entrypoints/contract.d.ts.map +1 -0
  295. package/dist/entrypoints/contract.js +64 -0
  296. package/dist/entrypoints/declaration.d.ts +2 -0
  297. package/dist/entrypoints/declaration.d.ts.map +1 -0
  298. package/dist/entrypoints/declaration.js +183 -0
  299. package/dist/entrypoints/files.d.ts +5 -0
  300. package/dist/entrypoints/files.d.ts.map +1 -0
  301. package/dist/entrypoints/files.js +111 -0
  302. package/dist/entrypoints/geo.d.ts +3 -0
  303. package/dist/entrypoints/geo.d.ts.map +1 -0
  304. package/dist/entrypoints/geo.js +245 -0
  305. package/dist/entrypoints/google.d.ts +2 -0
  306. package/dist/entrypoints/google.d.ts.map +1 -0
  307. package/dist/entrypoints/google.js +175 -0
  308. package/dist/entrypoints/index.d.ts +17 -0
  309. package/dist/entrypoints/index.d.ts.map +1 -0
  310. package/dist/entrypoints/index.js +764 -0
  311. package/dist/entrypoints/live.d.ts +19 -0
  312. package/dist/entrypoints/live.d.ts.map +1 -0
  313. package/dist/entrypoints/live.js +302 -0
  314. package/dist/entrypoints/node.d.ts +19 -0
  315. package/dist/entrypoints/node.d.ts.map +1 -0
  316. package/dist/entrypoints/node.js +308 -0
  317. package/dist/entrypoints/oauth.d.ts +2 -0
  318. package/dist/entrypoints/oauth.d.ts.map +1 -0
  319. package/dist/entrypoints/oauth.js +170 -0
  320. package/dist/entrypoints/observability.d.ts +19 -0
  321. package/dist/entrypoints/observability.d.ts.map +1 -0
  322. package/dist/entrypoints/observability.js +567 -0
  323. package/dist/entrypoints/primitives.d.ts +3 -0
  324. package/dist/entrypoints/primitives.d.ts.map +1 -0
  325. package/dist/entrypoints/primitives.js +749 -0
  326. package/dist/entrypoints/react.d.ts +5 -0
  327. package/dist/entrypoints/react.d.ts.map +1 -0
  328. package/dist/entrypoints/react.js +403 -0
  329. package/dist/entrypoints/release.d.ts +15 -0
  330. package/dist/entrypoints/release.d.ts.map +1 -0
  331. package/dist/entrypoints/release.js +196 -0
  332. package/dist/entrypoints/remote.d.ts +9 -0
  333. package/dist/entrypoints/remote.d.ts.map +1 -0
  334. package/dist/entrypoints/remote.js +66 -0
  335. package/dist/entrypoints/server.d.ts +39 -0
  336. package/dist/entrypoints/server.d.ts.map +1 -0
  337. package/dist/entrypoints/server.js +2009 -0
  338. package/dist/entrypoints/telegram.d.ts +3 -0
  339. package/dist/entrypoints/telegram.d.ts.map +1 -0
  340. package/dist/entrypoints/telegram.js +224 -0
  341. package/dist/entrypoints/testing.d.ts +10 -0
  342. package/dist/entrypoints/testing.d.ts.map +1 -0
  343. package/dist/entrypoints/testing.js +1377 -0
  344. package/dist/entrypoints/tools/connections.d.ts +19 -0
  345. package/dist/entrypoints/tools/connections.d.ts.map +1 -0
  346. package/dist/entrypoints/tools/connections.js +1110 -0
  347. package/dist/entrypoints/tools/contract.d.ts +29 -0
  348. package/dist/entrypoints/tools/contract.d.ts.map +1 -0
  349. package/dist/entrypoints/tools/contract.js +24 -0
  350. package/dist/entrypoints/tools/invoker.d.ts +9 -0
  351. package/dist/entrypoints/tools/invoker.d.ts.map +1 -0
  352. package/dist/entrypoints/tools/invoker.js +20 -0
  353. package/dist/entrypoints/tools.d.ts +54 -0
  354. package/dist/entrypoints/tools.d.ts.map +1 -0
  355. package/dist/entrypoints/tools.js +3009 -0
  356. package/dist/entrypoints/tracking/server.d.ts +15 -0
  357. package/dist/entrypoints/tracking/server.d.ts.map +1 -0
  358. package/dist/entrypoints/tracking.d.ts +24 -0
  359. package/dist/entrypoints/tracking.d.ts.map +1 -0
  360. package/dist/entrypoints/tracking.js +1140 -0
  361. package/dist/files/boundary.d.ts.map +1 -1
  362. package/dist/files/file-io.d.ts +14 -0
  363. package/dist/files/file-io.d.ts.map +1 -0
  364. package/dist/google/google.d.ts.map +1 -0
  365. package/dist/index-0b1ess5e.js +38 -0
  366. package/dist/index-1j8pm5t0.js +412 -0
  367. package/dist/index-1zbbzgfh.js +89 -0
  368. package/dist/index-2bxbyab0.js +47 -0
  369. package/dist/index-2gxzjvyr.js +266 -0
  370. package/dist/index-35mh5bhj.js +177 -0
  371. package/dist/index-48ffdxgk.js +6 -0
  372. package/dist/index-4gcnakhx.js +82 -0
  373. package/dist/index-55hkhm67.js +343 -0
  374. package/dist/index-79z7m7dt.js +675 -0
  375. package/dist/index-7f68ghdn.js +3618 -0
  376. package/dist/index-7p1f0vp2.js +154 -0
  377. package/dist/index-83bdg97s.js +16 -0
  378. package/dist/index-863ea9jb.js +154 -0
  379. package/dist/index-8p52kd5p.js +242 -0
  380. package/dist/index-d9pk3td4.js +326 -0
  381. package/dist/index-dce5wxcq.js +63 -0
  382. package/dist/index-e01r054k.js +105 -0
  383. package/dist/index-ensd0r74.js +595 -0
  384. package/dist/index-eqqvgdb3.js +46 -0
  385. package/dist/index-gxrt5h6v.js +341 -0
  386. package/dist/index-h6eeys1v.js +211 -0
  387. package/dist/index-ham5sz8m.js +734 -0
  388. package/dist/index-het2he5g.js +1387 -0
  389. package/dist/index-hffjpmq9.js +30 -0
  390. package/dist/index-hmp4800j.js +51 -0
  391. package/dist/index-k30h66yd.js +317 -0
  392. package/dist/index-k5hsfc3j.js +31 -0
  393. package/dist/index-khtgb21r.js +92 -0
  394. package/dist/index-m9zn6cpq.js +51 -0
  395. package/dist/index-ndddxtyx.js +324 -0
  396. package/dist/index-ngfhvfpd.js +30 -0
  397. package/dist/index-np4m8hd3.js +1205 -0
  398. package/dist/index-p3vsv1fb.js +3493 -0
  399. package/dist/index-p5r7qpdd.js +85 -0
  400. package/dist/index-p9e0w8hs.js +1084 -0
  401. package/dist/index-p9sh0xx4.js +64 -0
  402. package/dist/index-paz6sgdp.js +371 -0
  403. package/dist/index-px2gm2jp.js +448 -0
  404. package/dist/index-qwhynv6x.js +103 -0
  405. package/dist/index-s812ycat.js +65 -0
  406. package/dist/index-sp1tzwnb.js +281 -0
  407. package/dist/index-t9rhjr9f.js +2306 -0
  408. package/dist/index-v260df89.js +342 -0
  409. package/dist/index-w906953s.js +946 -0
  410. package/dist/index-wdkt63w3.js +214 -0
  411. package/dist/index-wqgjfstn.js +18 -0
  412. package/dist/index-wsm5w4ee.js +1023 -0
  413. package/dist/index-xw3s75nj.js +100 -0
  414. package/dist/index-yw4fzmdz.js +268 -0
  415. package/dist/index-zfrhfn82.js +85 -0
  416. package/dist/index-znfs20ss.js +98 -0
  417. package/dist/internal/atomic-file.d.ts +23 -2
  418. package/dist/internal/atomic-file.d.ts.map +1 -1
  419. package/dist/internal/backoff.d.ts +29 -0
  420. package/dist/internal/backoff.d.ts.map +1 -0
  421. package/dist/internal/canonical-json.d.ts +21 -11
  422. package/dist/internal/canonical-json.d.ts.map +1 -1
  423. package/dist/internal/channel.d.ts.map +1 -0
  424. package/dist/internal/exclusive-lock.d.ts +51 -0
  425. package/dist/internal/exclusive-lock.d.ts.map +1 -0
  426. package/dist/internal/logger.d.ts.map +1 -0
  427. package/dist/internal/process-identity.d.ts +47 -0
  428. package/dist/internal/process-identity.d.ts.map +1 -0
  429. package/dist/internal/request.d.ts.map +1 -0
  430. package/dist/internal/stable-digest.d.ts +0 -43
  431. package/dist/internal/stable-digest.d.ts.map +1 -1
  432. package/dist/internal/typed.d.ts +0 -8
  433. package/dist/internal/typed.d.ts.map +1 -1
  434. package/dist/internal/with-exclusive-lock.d.ts +67 -0
  435. package/dist/internal/with-exclusive-lock.d.ts.map +1 -0
  436. package/dist/internal/zod-issues.d.ts +38 -0
  437. package/dist/internal/zod-issues.d.ts.map +1 -0
  438. package/dist/json-schema/dialect.d.ts +17 -0
  439. package/dist/json-schema/dialect.d.ts.map +1 -0
  440. package/dist/json-schema/json-schema.d.ts.map +1 -0
  441. package/dist/live/watch-client.d.ts.map +1 -1
  442. package/dist/live/watch-delta.d.ts.map +1 -1
  443. package/dist/oauth/authorization-code.d.ts +57 -0
  444. package/dist/oauth/authorization-code.d.ts.map +1 -0
  445. package/dist/observability/audit.d.ts +3 -3
  446. package/dist/observability/audit.d.ts.map +1 -1
  447. package/dist/observability/bounded-logger.d.ts +1 -1
  448. package/dist/observability/bounded-logger.d.ts.map +1 -1
  449. package/dist/observability/bounded-sink.d.ts +81 -0
  450. package/dist/observability/bounded-sink.d.ts.map +1 -0
  451. package/dist/observability/context.d.ts +1 -1
  452. package/dist/observability/context.d.ts.map +1 -1
  453. package/dist/observability/event.d.ts +2 -1
  454. package/dist/observability/event.d.ts.map +1 -1
  455. package/dist/observability/work.d.ts +1 -1
  456. package/dist/observability/work.d.ts.map +1 -1
  457. package/dist/primitives/audit.d.ts +1 -1
  458. package/dist/primitives/audit.d.ts.map +1 -1
  459. package/dist/primitives/export-operation.d.ts +4 -2
  460. package/dist/primitives/export-operation.d.ts.map +1 -1
  461. package/dist/realtime/registry.d.ts +0 -5
  462. package/dist/realtime/registry.d.ts.map +1 -1
  463. package/dist/realtime/socket.d.ts +1 -1
  464. package/dist/realtime/socket.d.ts.map +1 -1
  465. package/dist/server/bun.d.ts +0 -1
  466. package/dist/server/bun.d.ts.map +1 -1
  467. package/dist/server/context-contribution.d.ts +1 -1
  468. package/dist/server/context-contribution.d.ts.map +1 -1
  469. package/dist/server/context.d.ts +2 -2
  470. package/dist/server/context.d.ts.map +1 -1
  471. package/dist/server/contract-method.d.ts +15 -0
  472. package/dist/server/contract-method.d.ts.map +1 -0
  473. package/dist/server/contract-stream.d.ts +1 -1
  474. package/dist/server/contract-stream.d.ts.map +1 -1
  475. package/dist/server/create.d.ts +8 -0
  476. package/dist/server/create.d.ts.map +1 -1
  477. package/dist/server/endpoint-dispatch.d.ts +10 -0
  478. package/dist/server/endpoint-dispatch.d.ts.map +1 -0
  479. package/dist/server/endpoint-response.d.ts +19 -0
  480. package/dist/server/endpoint-response.d.ts.map +1 -0
  481. package/dist/server/error-dispatch.d.ts +17 -1
  482. package/dist/server/error-dispatch.d.ts.map +1 -1
  483. package/dist/server/error-hook.d.ts +2 -2
  484. package/dist/server/error-hook.d.ts.map +1 -1
  485. package/dist/server/handler-state.d.ts +44 -0
  486. package/dist/server/handler-state.d.ts.map +1 -0
  487. package/dist/server/implement-registry.d.ts +54 -0
  488. package/dist/server/implement-registry.d.ts.map +1 -0
  489. package/dist/server/implement.d.ts +9 -55
  490. package/dist/server/implement.d.ts.map +1 -1
  491. package/dist/server/middleware/auth.d.ts +1 -31
  492. package/dist/server/middleware/auth.d.ts.map +1 -1
  493. package/dist/server/middleware/cors.d.ts +17 -0
  494. package/dist/server/middleware/cors.d.ts.map +1 -1
  495. package/dist/server/middleware/jwt.d.ts +31 -0
  496. package/dist/server/middleware/jwt.d.ts.map +1 -0
  497. package/dist/server/middleware/trust-fence.d.ts +1 -1
  498. package/dist/server/middleware/trust-fence.d.ts.map +1 -1
  499. package/dist/server/multipart-reader.d.ts +22 -0
  500. package/dist/server/multipart-reader.d.ts.map +1 -0
  501. package/dist/server/multipart.d.ts +1 -1
  502. package/dist/server/multipart.d.ts.map +1 -1
  503. package/dist/server/oauth/cimd.d.ts +88 -0
  504. package/dist/server/oauth/cimd.d.ts.map +1 -0
  505. package/dist/server/oauth/endpoints.d.ts +39 -0
  506. package/dist/server/oauth/endpoints.d.ts.map +1 -0
  507. package/dist/server/oauth/metadata.d.ts +28 -0
  508. package/dist/server/oauth/metadata.d.ts.map +1 -0
  509. package/dist/server/oauth/provider.d.ts +117 -0
  510. package/dist/server/oauth/provider.d.ts.map +1 -0
  511. package/dist/server/realtime.d.ts +1 -1
  512. package/dist/server/realtime.d.ts.map +1 -1
  513. package/dist/server/request-completion.d.ts +16 -0
  514. package/dist/server/request-completion.d.ts.map +1 -0
  515. package/dist/server/response-metadata.d.ts +1 -1
  516. package/dist/server/response-metadata.d.ts.map +1 -1
  517. package/dist/server/route-table.d.ts +9 -0
  518. package/dist/server/route-table.d.ts.map +1 -0
  519. package/dist/server/stream.d.ts +0 -13
  520. package/dist/server/stream.d.ts.map +1 -1
  521. package/dist/server/streaming-pump.d.ts +66 -0
  522. package/dist/server/streaming-pump.d.ts.map +1 -0
  523. package/dist/server/streaming-route.d.ts +12 -5
  524. package/dist/server/streaming-route.d.ts.map +1 -1
  525. package/dist/server/types.d.ts +10 -4
  526. package/dist/server/types.d.ts.map +1 -1
  527. package/dist/server/unix-client-bun.d.ts.map +1 -1
  528. package/dist/server/unix-client-http1.d.ts +76 -0
  529. package/dist/server/unix-client-http1.d.ts.map +1 -0
  530. package/dist/server/unix-client.d.ts.map +1 -1
  531. package/dist/testing/handler-clients.d.ts +32 -0
  532. package/dist/testing/handler-clients.d.ts.map +1 -0
  533. package/dist/testing/managed-resource-conformance-scenarios.d.ts.map +1 -1
  534. package/dist/testing/realtime-probe.d.ts +33 -0
  535. package/dist/testing/realtime-probe.d.ts.map +1 -0
  536. package/dist/testing/surface-conformance.d.ts +2 -32
  537. package/dist/testing/surface-conformance.d.ts.map +1 -1
  538. package/dist/testing/surface-manifest-digest.d.ts +44 -0
  539. package/dist/testing/surface-manifest-digest.d.ts.map +1 -0
  540. package/dist/testing/surface-manifest.d.ts +30 -4
  541. package/dist/testing/surface-manifest.d.ts.map +1 -1
  542. package/dist/tools/agent.d.ts +1 -1
  543. package/dist/tools/agent.d.ts.map +1 -1
  544. package/dist/tools/cli/args-fields.d.ts +31 -0
  545. package/dist/tools/cli/args-fields.d.ts.map +1 -0
  546. package/dist/tools/cli/args-route.d.ts +42 -0
  547. package/dist/tools/cli/args-route.d.ts.map +1 -0
  548. package/dist/tools/cli/args-view.d.ts +32 -0
  549. package/dist/tools/cli/args-view.d.ts.map +1 -0
  550. package/dist/tools/cli/args.d.ts +80 -0
  551. package/dist/tools/cli/args.d.ts.map +1 -0
  552. package/dist/tools/cli/argument-error.d.ts +5 -0
  553. package/dist/tools/cli/argument-error.d.ts.map +1 -0
  554. package/dist/tools/cli/checkpoint.d.ts +24 -0
  555. package/dist/tools/cli/checkpoint.d.ts.map +1 -0
  556. package/dist/tools/cli/command.d.ts +70 -0
  557. package/dist/tools/cli/command.d.ts.map +1 -0
  558. package/dist/tools/cli/config.d.ts +90 -0
  559. package/dist/tools/cli/config.d.ts.map +1 -0
  560. package/dist/tools/cli/create-cli.d.ts +36 -0
  561. package/dist/tools/cli/create-cli.d.ts.map +1 -0
  562. package/dist/tools/cli/download.d.ts +8 -0
  563. package/dist/tools/cli/download.d.ts.map +1 -0
  564. package/dist/tools/cli/format.d.ts +50 -0
  565. package/dist/tools/cli/format.d.ts.map +1 -0
  566. package/dist/tools/cli/help.d.ts +24 -0
  567. package/dist/tools/cli/help.d.ts.map +1 -0
  568. package/dist/tools/cli/installer.d.ts +34 -0
  569. package/dist/tools/cli/installer.d.ts.map +1 -0
  570. package/dist/tools/cli/invoke.d.ts +144 -0
  571. package/dist/tools/cli/invoke.d.ts.map +1 -0
  572. package/dist/tools/cli/io.d.ts +10 -0
  573. package/dist/tools/cli/io.d.ts.map +1 -0
  574. package/dist/tools/cli/managed-surface.d.ts +30 -0
  575. package/dist/tools/cli/managed-surface.d.ts.map +1 -0
  576. package/dist/tools/cli/manifest.d.ts +80 -0
  577. package/dist/tools/cli/manifest.d.ts.map +1 -0
  578. package/dist/tools/cli/policy.d.ts +27 -0
  579. package/dist/tools/cli/policy.d.ts.map +1 -0
  580. package/dist/tools/cli/prepare.d.ts +14 -0
  581. package/dist/tools/cli/prepare.d.ts.map +1 -0
  582. package/dist/tools/cli/profile.d.ts +40 -0
  583. package/dist/tools/cli/profile.d.ts.map +1 -0
  584. package/dist/tools/cli/run-managed.d.ts +5 -0
  585. package/dist/tools/cli/run-managed.d.ts.map +1 -0
  586. package/dist/tools/cli/run-native.d.ts +9 -0
  587. package/dist/tools/cli/run-native.d.ts.map +1 -0
  588. package/dist/tools/cli/session.d.ts +40 -0
  589. package/dist/tools/cli/session.d.ts.map +1 -0
  590. package/dist/tools/cli/signature.d.ts +81 -0
  591. package/dist/tools/cli/signature.d.ts.map +1 -0
  592. package/dist/tools/cli/stream.d.ts +93 -0
  593. package/dist/tools/cli/stream.d.ts.map +1 -0
  594. package/dist/tools/cli/update.d.ts +145 -0
  595. package/dist/tools/cli/update.d.ts.map +1 -0
  596. package/dist/tools/cli/view.d.ts +12 -0
  597. package/dist/tools/cli/view.d.ts.map +1 -0
  598. package/dist/tools/cli/wait.d.ts +54 -0
  599. package/dist/tools/cli/wait.d.ts.map +1 -0
  600. package/dist/tools/connections/runtime.d.ts +1 -1
  601. package/dist/tools/connections/runtime.d.ts.map +1 -1
  602. package/dist/tools/connections/types.d.ts +3 -3
  603. package/dist/tools/connections/types.d.ts.map +1 -1
  604. package/dist/tools/durability-context.d.ts +1 -1
  605. package/dist/tools/durability-context.d.ts.map +1 -1
  606. package/dist/tools/execute-args.d.ts +23 -0
  607. package/dist/tools/execute-args.d.ts.map +1 -0
  608. package/dist/tools/execute-hooks.d.ts +146 -0
  609. package/dist/tools/execute-hooks.d.ts.map +1 -0
  610. package/dist/tools/execute-result.d.ts +40 -0
  611. package/dist/tools/execute-result.d.ts.map +1 -0
  612. package/dist/tools/execute.d.ts +31 -193
  613. package/dist/tools/execute.d.ts.map +1 -1
  614. package/dist/tools/internal/surface-projector.d.ts +9 -6
  615. package/dist/tools/internal/surface-projector.d.ts.map +1 -1
  616. package/dist/tools/internal/tool-view.d.ts +41 -0
  617. package/dist/tools/internal/tool-view.d.ts.map +1 -0
  618. package/dist/tools/invoker.d.ts +13 -4
  619. package/dist/tools/invoker.d.ts.map +1 -1
  620. package/dist/tools/lifecycle.d.ts +1 -1
  621. package/dist/tools/lifecycle.d.ts.map +1 -1
  622. package/dist/tools/list-names.d.ts +3 -3
  623. package/dist/tools/list-names.d.ts.map +1 -1
  624. package/dist/tools/manifest.d.ts +2 -2
  625. package/dist/tools/manifest.d.ts.map +1 -1
  626. package/dist/tools/mcp/app.d.ts +62 -0
  627. package/dist/tools/mcp/app.d.ts.map +1 -0
  628. package/dist/tools/mcp/catalog.d.ts +68 -0
  629. package/dist/tools/mcp/catalog.d.ts.map +1 -0
  630. package/dist/tools/mcp/handler.d.ts +46 -0
  631. package/dist/tools/mcp/handler.d.ts.map +1 -0
  632. package/dist/tools/mcp/mount.d.ts +152 -0
  633. package/dist/tools/mcp/mount.d.ts.map +1 -0
  634. package/dist/tools/mcp/prepare.d.ts +76 -0
  635. package/dist/tools/mcp/prepare.d.ts.map +1 -0
  636. package/dist/tools/mcp/progress.d.ts +46 -0
  637. package/dist/tools/mcp/progress.d.ts.map +1 -0
  638. package/dist/tools/mcp/register.d.ts +36 -0
  639. package/dist/tools/mcp/register.d.ts.map +1 -0
  640. package/dist/tools/mcp/round-context.d.ts +38 -0
  641. package/dist/tools/mcp/round-context.d.ts.map +1 -0
  642. package/dist/tools/mcp/round-policy.d.ts +33 -0
  643. package/dist/tools/mcp/round-policy.d.ts.map +1 -0
  644. package/dist/tools/mcp/round.d.ts +53 -0
  645. package/dist/tools/mcp/round.d.ts.map +1 -0
  646. package/dist/tools/mcp/runtime-tools.d.ts +25 -0
  647. package/dist/tools/mcp/runtime-tools.d.ts.map +1 -0
  648. package/dist/tools/mcp/stdio-signals.d.ts +33 -0
  649. package/dist/tools/mcp/stdio-signals.d.ts.map +1 -0
  650. package/dist/tools/mcp/stdio.d.ts +20 -0
  651. package/dist/tools/mcp/stdio.d.ts.map +1 -0
  652. package/dist/tools/mcp/trace.d.ts +12 -0
  653. package/dist/tools/mcp/trace.d.ts.map +1 -0
  654. package/dist/tools/mount.d.ts +14 -7
  655. package/dist/tools/mount.d.ts.map +1 -1
  656. package/dist/tools/native-definition.d.ts +4 -3
  657. package/dist/tools/native-definition.d.ts.map +1 -1
  658. package/dist/tools/operations/async-operation-binding-types.d.ts +127 -0
  659. package/dist/tools/operations/async-operation-binding-types.d.ts.map +1 -0
  660. package/dist/tools/operations/async-operation-binding.d.ts +28 -0
  661. package/dist/tools/operations/async-operation-binding.d.ts.map +1 -0
  662. package/dist/tools/operations/async-operation-canonical-types.d.ts +110 -0
  663. package/dist/tools/operations/async-operation-canonical-types.d.ts.map +1 -0
  664. package/dist/tools/operations/async-operation-canonical.d.ts +7 -0
  665. package/dist/tools/operations/async-operation-canonical.d.ts.map +1 -0
  666. package/dist/tools/operations/async-operation-contract.d.ts.map +1 -0
  667. package/dist/tools/operations/async-operation-id.d.ts +23 -0
  668. package/dist/tools/operations/async-operation-id.d.ts.map +1 -0
  669. package/dist/tools/operations/async-operation-runtime-tools.d.ts +41 -0
  670. package/dist/tools/operations/async-operation-runtime-tools.d.ts.map +1 -0
  671. package/dist/tools/operations/async-operation-runtime-types.d.ts +69 -0
  672. package/dist/tools/operations/async-operation-runtime-types.d.ts.map +1 -0
  673. package/dist/tools/operations/async-operation-runtime.d.ts +5 -0
  674. package/dist/tools/operations/async-operation-runtime.d.ts.map +1 -0
  675. package/dist/tools/operations/define-wait-tool.d.ts +22 -0
  676. package/dist/tools/operations/define-wait-tool.d.ts.map +1 -0
  677. package/dist/tools/operations/mount-wait.d.ts.map +1 -0
  678. package/dist/tools/operations/wait-core.d.ts.map +1 -0
  679. package/dist/tools/remote.d.ts +1 -1
  680. package/dist/tools/remote.d.ts.map +1 -1
  681. package/dist/tools/runtime-tool.d.ts +13 -4
  682. package/dist/tools/runtime-tool.d.ts.map +1 -1
  683. package/dist/tools/schema/coerce.d.ts.map +1 -0
  684. package/dist/tools/schema/flatten-join.d.ts.map +1 -0
  685. package/dist/tools/schema/flatten.d.ts.map +1 -0
  686. package/dist/tools/schema/portable-formats.d.ts.map +1 -0
  687. package/dist/tools/schema/presentation.d.ts +24 -0
  688. package/dist/tools/schema/presentation.d.ts.map +1 -0
  689. package/dist/tools/schema/schema.d.ts.map +1 -0
  690. package/dist/tools/schema/untyped-properties.d.ts.map +1 -0
  691. package/dist/tools/surface.d.ts +2 -3
  692. package/dist/tools/surface.d.ts.map +1 -1
  693. package/dist/tools/tool-logger.d.ts +1 -1
  694. package/dist/tools/tool-logger.d.ts.map +1 -1
  695. package/dist/tools/toolkit.d.ts +4 -4
  696. package/dist/tools/toolkit.d.ts.map +1 -1
  697. package/dist/tools/transfer/define-download-tool.d.ts +18 -0
  698. package/dist/tools/transfer/define-download-tool.d.ts.map +1 -0
  699. package/dist/tools/transfer/define-upload-tool.d.ts +16 -0
  700. package/dist/tools/transfer/define-upload-tool.d.ts.map +1 -0
  701. package/dist/tools/transfer/define-view-file-tool.d.ts +10 -0
  702. package/dist/tools/transfer/define-view-file-tool.d.ts.map +1 -0
  703. package/dist/tools/transfer/download-core.d.ts +20 -0
  704. package/dist/tools/transfer/download-core.d.ts.map +1 -0
  705. package/dist/tools/transfer/managed-file-error.d.ts +6 -0
  706. package/dist/tools/transfer/managed-file-error.d.ts.map +1 -0
  707. package/dist/tools/transfer/mount-download.d.ts +41 -0
  708. package/dist/tools/transfer/mount-download.d.ts.map +1 -0
  709. package/dist/tools/transfer/mount-upload.d.ts +21 -0
  710. package/dist/tools/transfer/mount-upload.d.ts.map +1 -0
  711. package/dist/tools/transfer/native-result.d.ts.map +1 -0
  712. package/dist/tools/transfer/upload-core.d.ts +4 -0
  713. package/dist/tools/transfer/upload-core.d.ts.map +1 -0
  714. package/dist/tools/transfer/view-file-contract.d.ts.map +1 -0
  715. package/dist/tools/transfer/view-file.d.ts +62 -0
  716. package/dist/tools/transfer/view-file.d.ts.map +1 -0
  717. package/dist/tools/transports.d.ts +1 -1
  718. package/dist/tools/transports.d.ts.map +1 -1
  719. package/dist/tracking/client-listeners.d.ts +30 -0
  720. package/dist/tracking/client-listeners.d.ts.map +1 -0
  721. package/dist/tracking/client-visit.d.ts +61 -0
  722. package/dist/tracking/client-visit.d.ts.map +1 -0
  723. package/dist/tracking/client.d.ts +3 -2
  724. package/dist/tracking/client.d.ts.map +1 -1
  725. package/dist/tracking/contract.d.ts +1 -1
  726. package/dist/tracking/contract.d.ts.map +1 -1
  727. package/llms/agent-runtime-browser.txt +33 -0
  728. package/llms/agent-runtime-coding-tools.txt +58 -0
  729. package/llms/agent-runtime-harness.txt +45 -0
  730. package/llms/agent-runtime-openrouter.txt +22 -0
  731. package/llms/agent-runtime-sandbox.txt +159 -0
  732. package/llms/agent-runtime-sqlite-bun.txt +29 -0
  733. package/llms/agent-runtime-sqlite-node.txt +26 -0
  734. package/llms/agent-runtime-testing.txt +30 -0
  735. package/llms/agent-runtime.2.txt +550 -0
  736. package/llms/agent-runtime.3.txt +311 -0
  737. package/llms/agent-runtime.txt +893 -0
  738. package/llms/application-diagnostic-journal.txt +30 -0
  739. package/llms/application-grammy.txt +27 -0
  740. package/llms/application-opentelemetry.txt +27 -0
  741. package/llms/application-schemas.txt +42 -0
  742. package/llms/application.2.txt +487 -0
  743. package/llms/application.txt +886 -0
  744. package/llms/cli.2.txt +80 -0
  745. package/llms/cli.txt +948 -0
  746. package/llms/contract.txt +606 -0
  747. package/llms/declaration.txt +286 -0
  748. package/llms/files.txt +33 -0
  749. package/llms/geo.txt +114 -0
  750. package/llms/google.txt +27 -0
  751. package/llms/live.txt +471 -0
  752. package/llms/node.txt +43 -0
  753. package/llms/oauth.txt +136 -0
  754. package/llms/observability.txt +893 -0
  755. package/llms/primitives.txt +158 -0
  756. package/llms/react.txt +184 -0
  757. package/llms/release.txt +176 -0
  758. package/llms/remote.txt +25 -0
  759. package/llms/server.2.txt +361 -0
  760. package/llms/server.3.txt +1031 -0
  761. package/llms/server.4.txt +905 -0
  762. package/llms/server.5.txt +250 -0
  763. package/llms/server.txt +996 -0
  764. package/llms/stitchkit.2.txt +836 -0
  765. package/llms/stitchkit.3.txt +147 -0
  766. package/llms/stitchkit.txt +260 -0
  767. package/llms/telegram.txt +30 -0
  768. package/llms/testing.txt +676 -0
  769. package/llms/tools-connections.txt +45 -0
  770. package/llms/tools-contract.txt +9 -0
  771. package/llms/tools-invoker.txt +9 -0
  772. package/llms/tools.2.txt +647 -0
  773. package/llms/tools.3.txt +288 -0
  774. package/llms/tools.txt +966 -0
  775. package/llms/tracking-server.txt +32 -0
  776. package/llms/tracking.txt +263 -0
  777. package/llms/upgrading-0.37.0-0.50.0.txt +947 -0
  778. package/llms/upgrading-0.53.0-0.67.0.txt +1174 -0
  779. package/llms/upgrading-0.68.0-0.94.0.txt +1159 -0
  780. package/llms/upgrading.txt +215 -0
  781. package/llms-full.txt +312 -77
  782. package/llms.txt +54 -5
  783. package/package.json +84 -83
  784. package/dist/agent-runtime/durability-contract.d.ts +0 -176
  785. package/dist/agent-runtime/durability-contract.d.ts.map +0 -1
  786. package/dist/agent-runtime/durability-json.d.ts +0 -3
  787. package/dist/agent-runtime/durability-json.d.ts.map +0 -1
  788. package/dist/agent-runtime/durability-ledger.d.ts +0 -16
  789. package/dist/agent-runtime/durability-ledger.d.ts.map +0 -1
  790. package/dist/agent-runtime/durability-scheduler.d.ts +0 -29
  791. package/dist/agent-runtime/durability-scheduler.d.ts.map +0 -1
  792. package/dist/agent-runtime/durability.d.ts +0 -14
  793. package/dist/agent-runtime/durability.d.ts.map +0 -1
  794. package/dist/agent-runtime/store-driver.d.ts +0 -814
  795. package/dist/agent-runtime/store-driver.d.ts.map +0 -1
  796. package/dist/agent-runtime-browser.d.ts +0 -5
  797. package/dist/agent-runtime-browser.d.ts.map +0 -1
  798. package/dist/agent-runtime-browser.js +0 -124
  799. package/dist/agent-runtime-coding-tools.d.ts +0 -2
  800. package/dist/agent-runtime-coding-tools.d.ts.map +0 -1
  801. package/dist/agent-runtime-coding-tools.js +0 -23
  802. package/dist/agent-runtime-harness.d.ts +0 -2
  803. package/dist/agent-runtime-harness.d.ts.map +0 -1
  804. package/dist/agent-runtime-harness.js +0 -729
  805. package/dist/agent-runtime-openrouter.d.ts +0 -29
  806. package/dist/agent-runtime-openrouter.d.ts.map +0 -1
  807. package/dist/agent-runtime-openrouter.js +0 -270
  808. package/dist/agent-runtime-sandbox.d.ts +0 -5
  809. package/dist/agent-runtime-sandbox.d.ts.map +0 -1
  810. package/dist/agent-runtime-sandbox.js +0 -798
  811. package/dist/agent-runtime-sqlite-bun.d.ts +0 -11
  812. package/dist/agent-runtime-sqlite-bun.d.ts.map +0 -1
  813. package/dist/agent-runtime-sqlite-bun.js +0 -42
  814. package/dist/agent-runtime-sqlite-node.d.ts +0 -11
  815. package/dist/agent-runtime-sqlite-node.d.ts.map +0 -1
  816. package/dist/agent-runtime-sqlite-node.js +0 -44
  817. package/dist/agent-runtime-testing.d.ts +0 -3
  818. package/dist/agent-runtime-testing.d.ts.map +0 -1
  819. package/dist/agent-runtime-testing.js +0 -156
  820. package/dist/agent-runtime.d.ts +0 -38
  821. package/dist/agent-runtime.d.ts.map +0 -1
  822. package/dist/agent-runtime.js +0 -2607
  823. package/dist/application/channel.d.ts.map +0 -1
  824. package/dist/application-diagnostic-journal.d.ts +0 -21
  825. package/dist/application-diagnostic-journal.d.ts.map +0 -1
  826. package/dist/application-diagnostic-journal.js +0 -632
  827. package/dist/application-grammy.d.ts +0 -2
  828. package/dist/application-grammy.d.ts.map +0 -1
  829. package/dist/application-grammy.js +0 -169
  830. package/dist/application-opentelemetry.d.ts +0 -2
  831. package/dist/application-opentelemetry.d.ts.map +0 -1
  832. package/dist/application-opentelemetry.js +0 -250
  833. package/dist/application-schemas.d.ts +0 -15
  834. package/dist/application-schemas.d.ts.map +0 -1
  835. package/dist/application-schemas.js +0 -27
  836. package/dist/application.d.ts +0 -22
  837. package/dist/application.d.ts.map +0 -1
  838. package/dist/application.js +0 -1977
  839. package/dist/cli.d.ts +0 -41
  840. package/dist/cli.d.ts.map +0 -1
  841. package/dist/cli.js +0 -753
  842. package/dist/contract/index.d.ts +0 -8
  843. package/dist/contract/index.d.ts.map +0 -1
  844. package/dist/contract/index.js +0 -55
  845. package/dist/declaration.d.ts.map +0 -1
  846. package/dist/declaration.js +0 -183
  847. package/dist/files.d.ts +0 -3
  848. package/dist/files.d.ts.map +0 -1
  849. package/dist/files.js +0 -15
  850. package/dist/geo.d.ts +0 -3
  851. package/dist/geo.d.ts.map +0 -1
  852. package/dist/geo.js +0 -245
  853. package/dist/google.d.ts.map +0 -1
  854. package/dist/google.js +0 -175
  855. package/dist/index-0a349c33.js +0 -470
  856. package/dist/index-0j3vcp5m.js +0 -28
  857. package/dist/index-2c2bjw3s.js +0 -51
  858. package/dist/index-2na0qrfn.js +0 -214
  859. package/dist/index-2qzskm8h.js +0 -63
  860. package/dist/index-3bmnp41g.js +0 -2169
  861. package/dist/index-3xwxfj4z.js +0 -334
  862. package/dist/index-4fpa9dy2.js +0 -51
  863. package/dist/index-6kyksz9y.js +0 -268
  864. package/dist/index-77fekveh.js +0 -44
  865. package/dist/index-7gnkny4z.js +0 -326
  866. package/dist/index-7zbps32p.js +0 -89
  867. package/dist/index-9f8ztey6.js +0 -588
  868. package/dist/index-a11g2kry.js +0 -866
  869. package/dist/index-a916km3r.js +0 -45
  870. package/dist/index-actkayzn.js +0 -367
  871. package/dist/index-bn2cjajt.js +0 -524
  872. package/dist/index-bx75zwt7.js +0 -63
  873. package/dist/index-cby4ar3v.js +0 -46
  874. package/dist/index-cnyk6te3.js +0 -77
  875. package/dist/index-cxqhvq21.js +0 -413
  876. package/dist/index-e0znv5gn.js +0 -176
  877. package/dist/index-e42wzzz5.js +0 -154
  878. package/dist/index-f477k430.js +0 -324
  879. package/dist/index-f9mb610r.js +0 -177
  880. package/dist/index-fadnxwna.js +0 -1046
  881. package/dist/index-fq77yfzc.js +0 -1303
  882. package/dist/index-h9etkkyk.js +0 -1126
  883. package/dist/index-hrbajay7.js +0 -1196
  884. package/dist/index-kw9t5ayn.js +0 -507
  885. package/dist/index-mzvgxp0n.js +0 -80
  886. package/dist/index-n0f51dfn.js +0 -3170
  887. package/dist/index-p13mwz16.js +0 -16
  888. package/dist/index-s8cnx02s.js +0 -90
  889. package/dist/index-sr93cwf9.js +0 -325
  890. package/dist/index-tmwcrptx.js +0 -85
  891. package/dist/index-v5573g1k.js +0 -142
  892. package/dist/index-vjpvjqpn.js +0 -86
  893. package/dist/index-vk3kq9sb.js +0 -3344
  894. package/dist/index-wc4x00bn.js +0 -103
  895. package/dist/index-wnfk50r0.js +0 -211
  896. package/dist/index-yewwh1w4.js +0 -647
  897. package/dist/index-yn8remb1.js +0 -290
  898. package/dist/index-ywd0y6m1.js +0 -394
  899. package/dist/index-zwkgfq1s.js +0 -345
  900. package/dist/index.d.ts +0 -14
  901. package/dist/index.d.ts.map +0 -1
  902. package/dist/index.js +0 -632
  903. package/dist/internal/errors.d.ts +0 -92
  904. package/dist/internal/errors.d.ts.map +0 -1
  905. package/dist/internal/observability-sink.d.ts +0 -81
  906. package/dist/internal/observability-sink.d.ts.map +0 -1
  907. package/dist/live.d.ts +0 -19
  908. package/dist/live.d.ts.map +0 -1
  909. package/dist/live.js +0 -282
  910. package/dist/logger.d.ts.map +0 -1
  911. package/dist/node.d.ts +0 -18
  912. package/dist/node.d.ts.map +0 -1
  913. package/dist/node.js +0 -303
  914. package/dist/oauth.d.ts +0 -57
  915. package/dist/oauth.d.ts.map +0 -1
  916. package/dist/oauth.js +0 -170
  917. package/dist/observability/index.d.ts +0 -19
  918. package/dist/observability/index.d.ts.map +0 -1
  919. package/dist/observability/index.js +0 -569
  920. package/dist/primitives.d.ts +0 -3
  921. package/dist/primitives.d.ts.map +0 -1
  922. package/dist/primitives.js +0 -754
  923. package/dist/react.d.ts +0 -5
  924. package/dist/react.d.ts.map +0 -1
  925. package/dist/react.js +0 -403
  926. package/dist/release.d.ts +0 -15
  927. package/dist/release.d.ts.map +0 -1
  928. package/dist/release.js +0 -196
  929. package/dist/remote.d.ts +0 -9
  930. package/dist/remote.d.ts.map +0 -1
  931. package/dist/remote.js +0 -88
  932. package/dist/retained.d.ts.map +0 -1
  933. package/dist/server/file-state-store.d.ts +0 -23
  934. package/dist/server/file-state-store.d.ts.map +0 -1
  935. package/dist/server/index.d.ts +0 -36
  936. package/dist/server/index.d.ts.map +0 -1
  937. package/dist/server/index.js +0 -1745
  938. package/dist/server/request.d.ts.map +0 -1
  939. package/dist/telegram.d.ts +0 -3
  940. package/dist/telegram.d.ts.map +0 -1
  941. package/dist/telegram.js +0 -224
  942. package/dist/testing/agent-store-conformance.d.ts +0 -40
  943. package/dist/testing/agent-store-conformance.d.ts.map +0 -1
  944. package/dist/testing.d.ts +0 -39
  945. package/dist/testing.d.ts.map +0 -1
  946. package/dist/testing.js +0 -2209
  947. package/dist/tool-invoker.d.ts +0 -9
  948. package/dist/tool-invoker.d.ts.map +0 -1
  949. package/dist/tool-invoker.js +0 -21
  950. package/dist/tools/async-operation-contract.d.ts.map +0 -1
  951. package/dist/tools/async-operation.d.ts +0 -332
  952. package/dist/tools/async-operation.d.ts.map +0 -1
  953. package/dist/tools/cli-args.d.ts +0 -143
  954. package/dist/tools/cli-args.d.ts.map +0 -1
  955. package/dist/tools/cli-checkpoint.d.ts +0 -24
  956. package/dist/tools/cli-checkpoint.d.ts.map +0 -1
  957. package/dist/tools/cli-command.d.ts +0 -70
  958. package/dist/tools/cli-command.d.ts.map +0 -1
  959. package/dist/tools/cli-format.d.ts +0 -49
  960. package/dist/tools/cli-format.d.ts.map +0 -1
  961. package/dist/tools/cli-installer.d.ts +0 -34
  962. package/dist/tools/cli-installer.d.ts.map +0 -1
  963. package/dist/tools/cli-invoke.d.ts +0 -143
  964. package/dist/tools/cli-invoke.d.ts.map +0 -1
  965. package/dist/tools/cli-manifest.d.ts +0 -80
  966. package/dist/tools/cli-manifest.d.ts.map +0 -1
  967. package/dist/tools/cli-policy.d.ts +0 -27
  968. package/dist/tools/cli-policy.d.ts.map +0 -1
  969. package/dist/tools/cli-profile.d.ts +0 -40
  970. package/dist/tools/cli-profile.d.ts.map +0 -1
  971. package/dist/tools/cli-signature.d.ts +0 -81
  972. package/dist/tools/cli-signature.d.ts.map +0 -1
  973. package/dist/tools/cli-stream.d.ts +0 -93
  974. package/dist/tools/cli-stream.d.ts.map +0 -1
  975. package/dist/tools/cli-update.d.ts +0 -126
  976. package/dist/tools/cli-update.d.ts.map +0 -1
  977. package/dist/tools/cli-view.d.ts +0 -12
  978. package/dist/tools/cli-view.d.ts.map +0 -1
  979. package/dist/tools/cli-wait.d.ts +0 -54
  980. package/dist/tools/cli-wait.d.ts.map +0 -1
  981. package/dist/tools/cli.d.ts +0 -94
  982. package/dist/tools/cli.d.ts.map +0 -1
  983. package/dist/tools/coerce.d.ts.map +0 -1
  984. package/dist/tools/connections/index.d.ts +0 -20
  985. package/dist/tools/connections/index.d.ts.map +0 -1
  986. package/dist/tools/connections/index.js +0 -1107
  987. package/dist/tools/define-download-tool.d.ts +0 -18
  988. package/dist/tools/define-download-tool.d.ts.map +0 -1
  989. package/dist/tools/define-upload-tool.d.ts +0 -16
  990. package/dist/tools/define-upload-tool.d.ts.map +0 -1
  991. package/dist/tools/define-view-file-tool.d.ts +0 -10
  992. package/dist/tools/define-view-file-tool.d.ts.map +0 -1
  993. package/dist/tools/define-wait-tool.d.ts +0 -22
  994. package/dist/tools/define-wait-tool.d.ts.map +0 -1
  995. package/dist/tools/download-core.d.ts +0 -20
  996. package/dist/tools/download-core.d.ts.map +0 -1
  997. package/dist/tools/flatten-join.d.ts.map +0 -1
  998. package/dist/tools/flatten.d.ts.map +0 -1
  999. package/dist/tools/json-schema-dialect.d.ts +0 -17
  1000. package/dist/tools/json-schema-dialect.d.ts.map +0 -1
  1001. package/dist/tools/json-schema.d.ts.map +0 -1
  1002. package/dist/tools/managed-file-error.d.ts +0 -6
  1003. package/dist/tools/managed-file-error.d.ts.map +0 -1
  1004. package/dist/tools/mcp-app.d.ts +0 -62
  1005. package/dist/tools/mcp-app.d.ts.map +0 -1
  1006. package/dist/tools/mcp-catalog.d.ts +0 -68
  1007. package/dist/tools/mcp-catalog.d.ts.map +0 -1
  1008. package/dist/tools/mcp-handler.d.ts +0 -46
  1009. package/dist/tools/mcp-handler.d.ts.map +0 -1
  1010. package/dist/tools/mcp-prepare.d.ts +0 -75
  1011. package/dist/tools/mcp-prepare.d.ts.map +0 -1
  1012. package/dist/tools/mcp-progress.d.ts +0 -46
  1013. package/dist/tools/mcp-progress.d.ts.map +0 -1
  1014. package/dist/tools/mcp-round-policy.d.ts +0 -33
  1015. package/dist/tools/mcp-round-policy.d.ts.map +0 -1
  1016. package/dist/tools/mcp-round.d.ts +0 -61
  1017. package/dist/tools/mcp-round.d.ts.map +0 -1
  1018. package/dist/tools/mcp-stdio-signals.d.ts +0 -33
  1019. package/dist/tools/mcp-stdio-signals.d.ts.map +0 -1
  1020. package/dist/tools/mcp-stdio.d.ts +0 -20
  1021. package/dist/tools/mcp-stdio.d.ts.map +0 -1
  1022. package/dist/tools/mcp-trace.d.ts +0 -12
  1023. package/dist/tools/mcp-trace.d.ts.map +0 -1
  1024. package/dist/tools/mcp.d.ts +0 -152
  1025. package/dist/tools/mcp.d.ts.map +0 -1
  1026. package/dist/tools/mount-download.d.ts +0 -41
  1027. package/dist/tools/mount-download.d.ts.map +0 -1
  1028. package/dist/tools/mount-upload.d.ts +0 -21
  1029. package/dist/tools/mount-upload.d.ts.map +0 -1
  1030. package/dist/tools/mount-wait.d.ts.map +0 -1
  1031. package/dist/tools/native-mcp.d.ts +0 -20
  1032. package/dist/tools/native-mcp.d.ts.map +0 -1
  1033. package/dist/tools/native-result.d.ts.map +0 -1
  1034. package/dist/tools/oauth-metadata.d.ts +0 -28
  1035. package/dist/tools/oauth-metadata.d.ts.map +0 -1
  1036. package/dist/tools/oauth-provider.d.ts +0 -184
  1037. package/dist/tools/oauth-provider.d.ts.map +0 -1
  1038. package/dist/tools/portable-formats.d.ts.map +0 -1
  1039. package/dist/tools/presentation.d.ts +0 -22
  1040. package/dist/tools/presentation.d.ts.map +0 -1
  1041. package/dist/tools/schema.d.ts.map +0 -1
  1042. package/dist/tools/untyped-properties.d.ts.map +0 -1
  1043. package/dist/tools/upload-core.d.ts +0 -4
  1044. package/dist/tools/upload-core.d.ts.map +0 -1
  1045. package/dist/tools/view-file-contract.d.ts.map +0 -1
  1046. package/dist/tools/view-file.d.ts +0 -62
  1047. package/dist/tools/view-file.d.ts.map +0 -1
  1048. package/dist/tools/wait-core.d.ts.map +0 -1
  1049. package/dist/tools-contract.d.ts +0 -29
  1050. package/dist/tools-contract.d.ts.map +0 -1
  1051. package/dist/tools-contract.js +0 -24
  1052. package/dist/tools.d.ts +0 -50
  1053. package/dist/tools.d.ts.map +0 -1
  1054. package/dist/tools.js +0 -2930
  1055. package/dist/tracking-server.d.ts +0 -15
  1056. package/dist/tracking-server.d.ts.map +0 -1
  1057. package/dist/tracking.d.ts +0 -24
  1058. package/dist/tracking.d.ts.map +0 -1
  1059. package/dist/tracking.js +0 -1092
  1060. package/dist/upgrade-cli.d.ts.map +0 -1
  1061. package/dist/upgrade-cli.js +0 -177
  1062. /package/dist/{retained.d.ts → browser/retained.d.ts} +0 -0
  1063. /package/dist/{declaration.d.ts → declaration/declaration.d.ts} +0 -0
  1064. /package/dist/{upgrade-cli.d.ts → entrypoints/bin/upgrade-cli.d.ts} +0 -0
  1065. /package/dist/{tracking-server.js → entrypoints/tracking/server.js} +0 -0
  1066. /package/dist/{google.d.ts → google/google.d.ts} +0 -0
  1067. /package/dist/{index-pq95qkbf.js → index-5jm36zv1.js} +0 -0
  1068. /package/dist/{application → internal}/channel.d.ts +0 -0
  1069. /package/dist/{logger.d.ts → internal/logger.d.ts} +0 -0
  1070. /package/dist/{server → internal}/request.d.ts +0 -0
  1071. /package/dist/{tools → json-schema}/json-schema.d.ts +0 -0
  1072. /package/dist/tools/{async-operation-contract.d.ts → operations/async-operation-contract.d.ts} +0 -0
  1073. /package/dist/tools/{mount-wait.d.ts → operations/mount-wait.d.ts} +0 -0
  1074. /package/dist/tools/{wait-core.d.ts → operations/wait-core.d.ts} +0 -0
  1075. /package/dist/tools/{coerce.d.ts → schema/coerce.d.ts} +0 -0
  1076. /package/dist/tools/{flatten-join.d.ts → schema/flatten-join.d.ts} +0 -0
  1077. /package/dist/tools/{flatten.d.ts → schema/flatten.d.ts} +0 -0
  1078. /package/dist/tools/{portable-formats.d.ts → schema/portable-formats.d.ts} +0 -0
  1079. /package/dist/tools/{schema.d.ts → schema/schema.d.ts} +0 -0
  1080. /package/dist/tools/{untyped-properties.d.ts → schema/untyped-properties.d.ts} +0 -0
  1081. /package/dist/tools/{native-result.d.ts → transfer/native-result.d.ts} +0 -0
  1082. /package/dist/tools/{view-file-contract.d.ts → transfer/view-file-contract.d.ts} +0 -0
@@ -0,0 +1,1116 @@
1
+ import {
2
+ createMemoryAgentRuntimeStore
3
+ } from "../../index-sp1tzwnb.js";
4
+ import"../../index-wsm5w4ee.js";
5
+ import {
6
+ decodeAgentConversationArchive
7
+ } from "../../index-gxrt5h6v.js";
8
+ import {
9
+ AgentMessageSchema,
10
+ AgentRunSchema
11
+ } from "../../index-gtj3zc53.js";
12
+ import"../../index-k5hsfc3j.js";
13
+ import"../../index-hffjpmq9.js";
14
+
15
+ // src/agent-runtime/fault-bench.ts
16
+ import { createServer } from "node:http";
17
+ import { z } from "zod";
18
+ var AgentFaultStepSchema = z.discriminatedUnion("kind", [
19
+ z.object({ kind: z.literal("pass"), text: z.string().default("ok") }).strict(),
20
+ z.object({ kind: z.literal("connection-refused") }).strict(),
21
+ z.object({ kind: z.literal("timeout-before-first-byte"), milliseconds: z.int().positive() }).strict(),
22
+ z.object({ kind: z.literal("stream-cut"), afterBytes: z.int().nonnegative() }).strict(),
23
+ z.object({ kind: z.literal("http-error"), status: z.int().min(400).max(599) }).strict(),
24
+ z.object({ kind: z.literal("bad-json") }).strict(),
25
+ z.object({
26
+ kind: z.literal("slow"),
27
+ text: z.string(),
28
+ tokensPerSecond: z.number().positive()
29
+ }).strict(),
30
+ z.object({ kind: z.literal("usage-missing"), text: z.string().default("ok") }).strict()
31
+ ]);
32
+ function defineAgentFaultPlan(steps) {
33
+ if (steps.length === 0)
34
+ throw new TypeError("Fault plan must contain at least one step");
35
+ return steps.map((step) => AgentFaultStepSchema.parse(step));
36
+ }
37
+ function completionChunk(text, finishReason) {
38
+ return `data: ${JSON.stringify({
39
+ id: "fault-bench",
40
+ object: "chat.completion.chunk",
41
+ choices: [{ index: 0, delta: text ? { content: text } : {}, finish_reason: finishReason }]
42
+ })}
43
+
44
+ `;
45
+ }
46
+ function completeSse(response, text, includeUsage) {
47
+ response.writeHead(200, {
48
+ "content-type": "text/event-stream",
49
+ "cache-control": "no-cache",
50
+ connection: "close"
51
+ });
52
+ response.write(completionChunk(text, null));
53
+ response.write(completionChunk("", "stop"));
54
+ if (includeUsage) {
55
+ response.write(`data: ${JSON.stringify({
56
+ id: "fault-bench",
57
+ object: "chat.completion.chunk",
58
+ choices: [],
59
+ usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }
60
+ })}
61
+
62
+ `);
63
+ }
64
+ response.end(`data: [DONE]
65
+
66
+ `);
67
+ }
68
+ async function createFaultProviderServer(input) {
69
+ const scenario = defineAgentFaultPlan(input.scenario);
70
+ let calls = 0;
71
+ const server = createServer((request, response) => {
72
+ request.resume();
73
+ const step = scenario[Math.min(calls, scenario.length - 1)];
74
+ calls += 1;
75
+ if (!step)
76
+ throw new Error("Fault scenario disappeared");
77
+ if (step.kind === "connection-refused") {
78
+ request.socket.destroy();
79
+ return;
80
+ }
81
+ if (step.kind === "timeout-before-first-byte") {
82
+ setTimeout(() => completeSse(response, "late", true), step.milliseconds).unref();
83
+ return;
84
+ }
85
+ if (step.kind === "http-error") {
86
+ response.writeHead(step.status, { "content-type": "application/json" });
87
+ response.end(JSON.stringify({ error: { message: `fault ${step.status}` } }));
88
+ return;
89
+ }
90
+ if (step.kind === "bad-json") {
91
+ response.writeHead(200, { "content-type": "text/event-stream" });
92
+ response.end(`data: {not-json}
93
+
94
+ data: [DONE]
95
+
96
+ `);
97
+ return;
98
+ }
99
+ if (step.kind === "stream-cut") {
100
+ response.writeHead(200, { "content-type": "text/event-stream" });
101
+ const bytes = Buffer.from(completionChunk("partial response", null));
102
+ response.write(bytes.subarray(0, Math.min(step.afterBytes, bytes.byteLength)));
103
+ response.socket?.destroy();
104
+ return;
105
+ }
106
+ if (step.kind === "slow") {
107
+ response.writeHead(200, { "content-type": "text/event-stream" });
108
+ const tokens = step.text.split(/(?<=\s)/u).filter(Boolean);
109
+ const intervalMs = Math.max(1, Math.round(1000 / step.tokensPerSecond));
110
+ let index = 0;
111
+ const timer = setInterval(() => {
112
+ const token = tokens[index];
113
+ index += 1;
114
+ if (token !== undefined)
115
+ response.write(completionChunk(token, null));
116
+ if (index >= tokens.length) {
117
+ clearInterval(timer);
118
+ response.end(`${completionChunk("", "stop")}data: [DONE]
119
+
120
+ `);
121
+ }
122
+ }, intervalMs);
123
+ timer.unref();
124
+ return;
125
+ }
126
+ completeSse(response, step.text, step.kind !== "usage-missing");
127
+ });
128
+ await new Promise((resolve, reject) => {
129
+ server.once("error", reject);
130
+ server.listen(0, "127.0.0.1", () => resolve());
131
+ });
132
+ const address = server.address();
133
+ if (!address || typeof address === "string")
134
+ throw new Error("Fault server has no TCP address");
135
+ return {
136
+ url: `http://127.0.0.1:${address.port}/v1/chat/completions`,
137
+ calls: () => calls,
138
+ close: () => new Promise((resolve, reject) => server.close((error) => error ? reject(error) : resolve()))
139
+ };
140
+ }
141
+ function createReplayAgentProvider(input) {
142
+ const calls = new Map;
143
+ return {
144
+ create(modelId) {
145
+ const index = calls.get(modelId) ?? 0;
146
+ const attempts = input.attempts[modelId];
147
+ const model = attempts?.[index];
148
+ if (!model)
149
+ throw new TypeError(`Replay exhausted for model: ${modelId}`);
150
+ calls.set(modelId, index + 1);
151
+ return model;
152
+ },
153
+ calls: (modelId) => calls.get(modelId) ?? 0
154
+ };
155
+ }
156
+ // src/agent-runtime/store-conformance-support.ts
157
+ function userMessage(conversationId, id) {
158
+ return AgentMessageSchema.parse({
159
+ schemaVersion: 1,
160
+ id,
161
+ conversationId,
162
+ role: "user",
163
+ status: "committed",
164
+ parts: [{ type: "text", text: id }],
165
+ createdAt: "2026-08-22T00:00:00.000Z",
166
+ updatedAt: "2026-08-22T00:00:00.000Z"
167
+ });
168
+ }
169
+ function queuedRun(conversationId, inputMessageId, id) {
170
+ return AgentRunSchema.parse({
171
+ schemaVersion: 1,
172
+ id,
173
+ conversationId,
174
+ inputMessageIds: [inputMessageId],
175
+ assistantMessageId: `${id}-assistant`,
176
+ state: "queued",
177
+ revision: 0,
178
+ createdAt: "2026-08-22T00:00:00.000Z",
179
+ updatedAt: "2026-08-22T00:00:00.000Z"
180
+ });
181
+ }
182
+ function requireOutcome(actual, expected) {
183
+ if (actual.outcome !== expected) {
184
+ throw new Error(`Agent store conformance expected ${expected}, received ${actual.outcome}`);
185
+ }
186
+ }
187
+
188
+ // src/agent-runtime/store-conformance-lifecycle.ts
189
+ async function admissionPhase(store, conversationId) {
190
+ const firstInput = userMessage(conversationId, "input-1");
191
+ const firstRun = queuedRun(conversationId, firstInput.id, "run-1");
192
+ const accepted = await store.acceptInputAndAssignRun({
193
+ idempotencyKey: "request-1",
194
+ input: firstInput,
195
+ run: firstRun
196
+ });
197
+ requireOutcome(accepted, "applied");
198
+ const duplicate = await store.acceptInputAndAssignRun({
199
+ idempotencyKey: "request-1",
200
+ input: userMessage(conversationId, "discarded-input"),
201
+ run: queuedRun(conversationId, "discarded-input", "discarded-run")
202
+ });
203
+ requireOutcome(duplicate, "duplicate");
204
+ if (duplicate.input.id !== firstInput.id || duplicate.inputMessageId !== firstInput.id || duplicate.runId !== firstRun.id || duplicate.assistantMessageId !== firstRun.assistantMessageId) {
205
+ throw new Error("Duplicate admission did not return its original durable identity");
206
+ }
207
+ const secondInput = userMessage(conversationId, "input-2");
208
+ const coalesced = await store.acceptInputAndAssignRun({
209
+ idempotencyKey: "request-2",
210
+ input: secondInput,
211
+ run: queuedRun(conversationId, secondInput.id, "discarded-coalesced-run"),
212
+ coalesceIntoRunId: firstRun.id
213
+ });
214
+ requireOutcome(coalesced, "applied");
215
+ const assigned = coalesced.snapshot.runs.find((run) => run.id === firstRun.id);
216
+ if (assigned?.inputMessageIds.join(",") !== "input-1,input-2") {
217
+ throw new Error("Coalesced admission did not preserve ordered input identities");
218
+ }
219
+ const collidingInput = userMessage(conversationId, assigned.assistantMessageId);
220
+ await store.acceptInputAndAssignRun({
221
+ idempotencyKey: "request-collision",
222
+ input: collidingInput,
223
+ run: queuedRun(conversationId, collidingInput.id, "discarded-collision-run"),
224
+ coalesceIntoRunId: assigned.id
225
+ }).then(() => {
226
+ throw new Error("Coalesced input reused the reserved assistant identity");
227
+ }, (error) => {
228
+ if (!(error instanceof TypeError))
229
+ throw error;
230
+ });
231
+ await store.replaceCompactedRange({
232
+ conversationId,
233
+ expectedVersion: coalesced.snapshot.version,
234
+ replacedMessageIds: [firstInput.id, secondInput.id],
235
+ summary: AgentMessageSchema.parse({
236
+ schemaVersion: 1,
237
+ id: assigned.assistantMessageId,
238
+ conversationId,
239
+ role: "summary",
240
+ status: "committed",
241
+ parts: [{ type: "text", text: "invalid reserved identity" }],
242
+ createdAt: "2026-08-22T00:00:02.000Z",
243
+ updatedAt: "2026-08-22T00:00:02.000Z"
244
+ })
245
+ }).then(() => {
246
+ throw new Error("Compaction reused a reserved assistant identity");
247
+ }, (error) => {
248
+ if (!(error instanceof TypeError))
249
+ throw error;
250
+ });
251
+ const compacted = await store.replaceCompactedRange({
252
+ conversationId,
253
+ expectedVersion: coalesced.snapshot.version,
254
+ replacedMessageIds: [firstInput.id, secondInput.id],
255
+ summary: AgentMessageSchema.parse({
256
+ schemaVersion: 1,
257
+ id: "summary-1",
258
+ conversationId,
259
+ role: "summary",
260
+ status: "committed",
261
+ parts: [{ type: "text", text: "two inputs" }],
262
+ createdAt: "2026-08-22T00:00:02.000Z",
263
+ updatedAt: "2026-08-22T00:00:02.000Z"
264
+ })
265
+ });
266
+ requireOutcome(compacted, "applied");
267
+ const duplicateAfterCompaction = await store.acceptInputAndAssignRun({
268
+ idempotencyKey: "request-1",
269
+ input: userMessage(conversationId, "discarded-after-compaction"),
270
+ run: queuedRun(conversationId, "discarded-after-compaction", "discarded-run-2")
271
+ });
272
+ requireOutcome(duplicateAfterCompaction, "duplicate");
273
+ if (duplicateAfterCompaction.input.id !== firstInput.id) {
274
+ throw new Error("Compaction discarded the canonical duplicate admission input");
275
+ }
276
+ return assigned;
277
+ }
278
+ async function fencingPhase(store, conversationId, assigned) {
279
+ const acquired = await store.acquireRun({
280
+ conversationId,
281
+ runId: assigned.id,
282
+ expectedRevision: assigned.revision,
283
+ ownerId: "conformance-owner"
284
+ });
285
+ requireOutcome(acquired, "applied");
286
+ const running = acquired.snapshot.runs.find((run) => run.id === assigned.id);
287
+ if (!running)
288
+ throw new Error("Acquired run disappeared");
289
+ const stale = await store.checkpointRunAssistant({
290
+ conversationId,
291
+ runId: running.id,
292
+ expectedRevision: running.revision - 1,
293
+ ownerId: "conformance-owner",
294
+ assistant: AgentMessageSchema.parse({
295
+ schemaVersion: 1,
296
+ id: running.assistantMessageId,
297
+ conversationId,
298
+ runId: running.id,
299
+ role: "assistant",
300
+ status: "streaming",
301
+ parts: [],
302
+ createdAt: "2026-08-22T00:00:00.000Z",
303
+ updatedAt: "2026-08-22T00:00:01.000Z"
304
+ })
305
+ });
306
+ requireOutcome(stale, "conflict");
307
+ await store.recoverRun({
308
+ conversationId,
309
+ runId: running.id,
310
+ expectedRevision: running.revision,
311
+ action: "requeue"
312
+ }).then(() => {
313
+ throw new Error("Acquired recovery replayed without explicit safety evidence");
314
+ }, (error) => {
315
+ if (!(error instanceof TypeError))
316
+ throw error;
317
+ });
318
+ const checkpoint = await store.checkpointRunAssistant({
319
+ conversationId,
320
+ runId: running.id,
321
+ expectedRevision: running.revision,
322
+ ownerId: "conformance-owner",
323
+ assistant: AgentMessageSchema.parse({
324
+ schemaVersion: 1,
325
+ id: running.assistantMessageId,
326
+ conversationId,
327
+ runId: running.id,
328
+ role: "assistant",
329
+ status: "streaming",
330
+ parts: [{ type: "text", text: "checkpoint" }],
331
+ createdAt: "2026-08-22T00:00:00.000Z",
332
+ updatedAt: "2026-08-22T00:00:01.000Z"
333
+ }),
334
+ usage: {
335
+ inputTokens: { value: 1000, provenance: "provider-reported" },
336
+ outputTokens: { value: 100, provenance: "provider-reported" },
337
+ cost: { value: 0.25, currency: "USD", provenance: "provider-reported" }
338
+ }
339
+ });
340
+ requireOutcome(checkpoint, "applied");
341
+ const checkpointedRun = checkpoint.snapshot.runs.find((run) => run.id === running.id);
342
+ if (!checkpointedRun)
343
+ throw new Error("Checkpointed run disappeared");
344
+ if (checkpointedRun.usage?.cost?.value !== 0.25) {
345
+ throw new Error("Checkpoint did not persist the run usage it was given");
346
+ }
347
+ const terminalAssistant = AgentMessageSchema.parse({
348
+ schemaVersion: 1,
349
+ id: running.assistantMessageId,
350
+ conversationId,
351
+ runId: running.id,
352
+ role: "assistant",
353
+ status: "completed",
354
+ parts: [{ type: "text", text: "done" }],
355
+ createdAt: "2026-08-22T00:00:00.000Z",
356
+ updatedAt: "2026-08-22T00:00:02.000Z"
357
+ });
358
+ if (checkpointedRun.fencingToken === undefined) {
359
+ throw new Error("Acquisition must persist a fencing token the store can read back");
360
+ }
361
+ const staleFence = await store.checkpointRunAssistant({
362
+ conversationId,
363
+ runId: running.id,
364
+ expectedRevision: checkpointedRun.revision,
365
+ ownerId: "conformance-owner",
366
+ fencingToken: checkpointedRun.fencingToken + 1,
367
+ assistant: AgentMessageSchema.parse({
368
+ schemaVersion: 1,
369
+ id: running.assistantMessageId,
370
+ conversationId,
371
+ runId: running.id,
372
+ role: "assistant",
373
+ status: "streaming",
374
+ parts: [{ type: "text", text: "stale fence" }],
375
+ createdAt: "2026-08-22T00:00:00.000Z",
376
+ updatedAt: "2026-08-22T00:00:01.500Z"
377
+ })
378
+ });
379
+ if (staleFence.outcome !== "conflict") {
380
+ throw new Error("A checkpoint with a stale fencing token must conflict");
381
+ }
382
+ const foreignOwner = await store.checkpointRunAssistant({
383
+ conversationId,
384
+ runId: running.id,
385
+ expectedRevision: checkpointedRun.revision,
386
+ ownerId: "a-different-runtime",
387
+ assistant: AgentMessageSchema.parse({
388
+ schemaVersion: 1,
389
+ id: running.assistantMessageId,
390
+ conversationId,
391
+ runId: running.id,
392
+ role: "assistant",
393
+ status: "streaming",
394
+ parts: [{ type: "text", text: "foreign owner" }],
395
+ createdAt: "2026-08-22T00:00:00.000Z",
396
+ updatedAt: "2026-08-22T00:00:01.700Z"
397
+ })
398
+ });
399
+ if (foreignOwner.outcome !== "conflict") {
400
+ throw new Error("A checkpoint from another owner must conflict");
401
+ }
402
+ return { running, checkpoint, checkpointedRun, terminalAssistant };
403
+ }
404
+ async function boundedReadsPhase(store, conversationId, absentConversationId, checkpointed) {
405
+ const { running, checkpoint, checkpointedRun } = checkpointed;
406
+ const liveView = await store.loadRun({ conversationId, runId: running.id });
407
+ if (!liveView)
408
+ throw new Error("loadRun must find a run of this conversation");
409
+ if (liveView.run.id !== running.id || liveView.run.conversationId !== conversationId) {
410
+ throw new Error("loadRun returned a run it was not asked for");
411
+ }
412
+ if (liveView.run.revision !== checkpointedRun.revision) {
413
+ throw new Error("loadRun must return the run as the last mutation left it");
414
+ }
415
+ if (liveView.run.usage?.cost?.value !== 0.25) {
416
+ throw new Error("loadRun must carry the figure the run has spent so far");
417
+ }
418
+ if (liveView.snapshotVersion !== checkpoint.snapshot.version) {
419
+ throw new Error("loadRun must report the conversation version it read at");
420
+ }
421
+ if (liveView.assistant !== undefined) {
422
+ throw new Error("loadRun must not report a terminal answer for a live run");
423
+ }
424
+ if (await store.loadRun({ conversationId, runId: "no-such-run" })) {
425
+ throw new Error("loadRun must return undefined for an unknown run");
426
+ }
427
+ if (await store.loadRun({ conversationId: absentConversationId, runId: running.id })) {
428
+ throw new Error("loadRun must not cross conversation boundaries");
429
+ }
430
+ const activeRuns = await store.listActiveRuns(conversationId);
431
+ if (!activeRuns.some((run) => run.id === running.id)) {
432
+ throw new Error("listActiveRuns must report a run that is in flight");
433
+ }
434
+ if (activeRuns.some((run) => run.terminalReason !== undefined)) {
435
+ throw new Error("listActiveRuns must not report a run that has ended");
436
+ }
437
+ for (let index = 1;index < activeRuns.length; index += 1) {
438
+ const previous = activeRuns[index - 1];
439
+ const current = activeRuns[index];
440
+ if (!previous || !current)
441
+ continue;
442
+ const ordered = previous.createdAt === current.createdAt ? previous.id.localeCompare(current.id) < 0 : previous.createdAt < current.createdAt;
443
+ if (!ordered) {
444
+ throw new Error("listActiveRuns must order by createdAt and then by id");
445
+ }
446
+ }
447
+ if ((await store.listActiveRuns(absentConversationId)).length !== 0) {
448
+ throw new Error("listActiveRuns must be empty for an unknown conversation");
449
+ }
450
+ }
451
+ async function interruptPhase(store, conversationId, checkpointed) {
452
+ const { running, checkpointedRun } = checkpointed;
453
+ const recoverable = await store.scanRecoverable({ limit: 10 });
454
+ if (!recoverable.items.some((item) => item.run.id === running.id)) {
455
+ throw new Error("A running run must appear in a recoverable scan");
456
+ }
457
+ const operation = await store.recordRunOperation({
458
+ conversationId,
459
+ runId: running.id,
460
+ expectedRevision: checkpointedRun.revision,
461
+ ownerId: "conformance-owner",
462
+ fencingToken: checkpointedRun.fencingToken,
463
+ operation: {
464
+ operationId: "model-call-1:0",
465
+ kind: "model-request",
466
+ phase: "first-output",
467
+ step: 0,
468
+ startedAt: "2026-08-22T00:00:01.800Z",
469
+ firstOutputAt: "2026-08-22T00:00:01.900Z"
470
+ }
471
+ });
472
+ requireOutcome(operation, "applied");
473
+ const operatedRun = operation.snapshot.runs.find((run) => run.id === running.id);
474
+ if (operatedRun?.lastOperation?.operationId !== "model-call-1:0") {
475
+ throw new Error("Run operation identity did not survive its durable mutation");
476
+ }
477
+ const operatedView = await store.loadRun({ conversationId, runId: running.id });
478
+ if (operatedView?.run.lastOperation?.startedAt !== "2026-08-22T00:00:01.800Z") {
479
+ throw new Error("loadRun did not retain the original operation timestamp");
480
+ }
481
+ const interrupted = await store.requestRunInterrupt({
482
+ conversationId,
483
+ runId: running.id,
484
+ expectedRevision: operatedRun.revision
485
+ });
486
+ requireOutcome(interrupted, "applied");
487
+ const interruptedRun = interrupted.snapshot.runs.find((run) => run.id === running.id);
488
+ if (interruptedRun?.state !== "interrupt_requested") {
489
+ throw new Error("A durable interrupt must move the run to interrupt_requested");
490
+ }
491
+ if (interruptedRun.usage?.cost?.value !== 0.25) {
492
+ throw new Error("An interrupt must not discard the figure the run had already spent");
493
+ }
494
+ return interruptedRun;
495
+ }
496
+
497
+ // src/agent-runtime/store-conformance-ordering.ts
498
+ async function assertInterruptPriorityOrder(store, conversationId) {
499
+ const inputs = ["priority-a", "priority-b", "priority-c"].map((id) => userMessage(conversationId, id));
500
+ const [inputA, inputB, inputC] = inputs;
501
+ if (!inputA || !inputB || !inputC)
502
+ throw new Error("Priority fixture is incomplete");
503
+ const runA = queuedRun(conversationId, inputA.id, "priority-run-a");
504
+ const runB = queuedRun(conversationId, inputB.id, "priority-run-b");
505
+ const runC = AgentRunSchema.parse({
506
+ ...queuedRun(conversationId, inputC.id, "priority-run-c"),
507
+ queuePriority: "interrupt-next"
508
+ });
509
+ requireOutcome(await store.acceptInputAndAssignRun({ idempotencyKey: runA.id, input: inputA, run: runA }), "applied");
510
+ const acquiredA = await store.acquireRun({
511
+ conversationId,
512
+ runId: runA.id,
513
+ expectedRevision: runA.revision,
514
+ ownerId: "priority-owner-a"
515
+ });
516
+ requireOutcome(acquiredA, "applied");
517
+ const runningA = acquiredA.snapshot.runs.find((run) => run.id === runA.id);
518
+ if (!runningA)
519
+ throw new Error("Priority lead run disappeared after acquisition");
520
+ requireOutcome(await store.acceptInputAndAssignRun({ idempotencyKey: runB.id, input: inputB, run: runB }), "applied");
521
+ requireOutcome(await store.acceptInputAndAssignRun({ idempotencyKey: runC.id, input: inputC, run: runC }), "applied");
522
+ const active = await store.listActiveRuns(conversationId);
523
+ if (active.map((run) => run.id).join(",") !== `${runA.id},${runC.id},${runB.id}`) {
524
+ throw new Error("Active runs did not place urgent work before ordinary pending work");
525
+ }
526
+ requireOutcome(await store.acquireRun({
527
+ conversationId,
528
+ runId: runB.id,
529
+ expectedRevision: runB.revision,
530
+ ownerId: "priority-owner-b"
531
+ }), "conflict");
532
+ const abandonedA = await store.recoverRun({
533
+ conversationId,
534
+ runId: runA.id,
535
+ expectedRevision: runningA.revision,
536
+ action: "abandon"
537
+ });
538
+ requireOutcome(abandonedA, "applied");
539
+ const queuedC = abandonedA.snapshot.runs.find((run) => run.id === runC.id);
540
+ if (!queuedC)
541
+ throw new Error("Urgent run disappeared after predecessor settlement");
542
+ const acquiredC = await store.acquireRun({
543
+ conversationId,
544
+ runId: runC.id,
545
+ expectedRevision: queuedC.revision,
546
+ ownerId: "priority-owner-c"
547
+ });
548
+ requireOutcome(acquiredC, "applied");
549
+ const runningC = acquiredC.snapshot.runs.find((run) => run.id === runC.id);
550
+ if (!runningC)
551
+ throw new Error("Urgent run disappeared after acquisition");
552
+ requireOutcome(await store.acquireRun({
553
+ conversationId,
554
+ runId: runB.id,
555
+ expectedRevision: runB.revision,
556
+ ownerId: "priority-owner-b"
557
+ }), "conflict");
558
+ const abandonedC = await store.recoverRun({
559
+ conversationId,
560
+ runId: runC.id,
561
+ expectedRevision: runningC.revision,
562
+ action: "abandon"
563
+ });
564
+ requireOutcome(abandonedC, "applied");
565
+ const queuedB = abandonedC.snapshot.runs.find((run) => run.id === runB.id);
566
+ if (!queuedB)
567
+ throw new Error("Ordinary run disappeared after urgent settlement");
568
+ const acquiredB = await store.acquireRun({
569
+ conversationId,
570
+ runId: runB.id,
571
+ expectedRevision: queuedB.revision,
572
+ ownerId: "priority-owner-b"
573
+ });
574
+ requireOutcome(acquiredB, "applied");
575
+ const ordered = acquiredB.snapshot.runs.map((run) => run.id).join(",");
576
+ if (ordered !== `${runA.id},${runC.id},${runB.id}`) {
577
+ throw new Error(`Durable execution order was not preserved: ${ordered}`);
578
+ }
579
+ const [sequenceA, sequenceC, sequenceB] = acquiredB.snapshot.runs.map((run) => run.executionSequence);
580
+ if (sequenceA === undefined || sequenceC === undefined || sequenceB === undefined || !(sequenceA < sequenceC && sequenceC < sequenceB)) {
581
+ throw new Error("Acquisition did not persist increasing execution sequence values");
582
+ }
583
+ }
584
+ async function assertActiveRunCausalOrder(store, conversationId) {
585
+ for (const id of ["z-causal-run", "a-causal-run"]) {
586
+ const input = userMessage(conversationId, `${id}-input`);
587
+ requireOutcome(await store.acceptInputAndAssignRun({
588
+ idempotencyKey: id,
589
+ input,
590
+ run: queuedRun(conversationId, input.id, id)
591
+ }), "applied");
592
+ }
593
+ const active = await store.listActiveRuns(conversationId);
594
+ if (active.map((run) => run.id).join(",") !== "z-causal-run,a-causal-run") {
595
+ throw new Error("listActiveRuns must preserve causal history order for timestamp ties");
596
+ }
597
+ }
598
+ async function assertCausalHistoryOrder(store, conversationId) {
599
+ const leadInput = userMessage(conversationId, "causal-input-1");
600
+ const leadRun = queuedRun(conversationId, leadInput.id, "causal-run-1");
601
+ requireOutcome(await store.acceptInputAndAssignRun({
602
+ idempotencyKey: "causal-request-1",
603
+ input: leadInput,
604
+ run: leadRun
605
+ }), "applied");
606
+ const acquired = await store.acquireRun({
607
+ conversationId,
608
+ runId: leadRun.id,
609
+ expectedRevision: leadRun.revision,
610
+ ownerId: "causal-owner"
611
+ });
612
+ requireOutcome(acquired, "applied");
613
+ const running = acquired.snapshot.runs.find((run) => run.id === leadRun.id);
614
+ if (!running)
615
+ throw new Error("Causal-order run disappeared after acquisition");
616
+ const successorInput = userMessage(conversationId, "causal-input-2");
617
+ const successorRun = queuedRun(conversationId, successorInput.id, "causal-run-2");
618
+ requireOutcome(await store.acceptInputAndAssignRun({
619
+ idempotencyKey: "causal-request-2",
620
+ input: successorInput,
621
+ run: successorRun
622
+ }), "applied");
623
+ const assistant = AgentMessageSchema.parse({
624
+ schemaVersion: 1,
625
+ id: running.assistantMessageId,
626
+ conversationId,
627
+ runId: running.id,
628
+ role: "assistant",
629
+ status: "streaming",
630
+ parts: [{ type: "text", text: "causal answer" }],
631
+ createdAt: "2026-08-28T00:00:00.000Z",
632
+ updatedAt: "2026-08-28T00:00:01.000Z"
633
+ });
634
+ const checkpoint = await store.checkpointRunAssistant({
635
+ conversationId,
636
+ runId: running.id,
637
+ expectedRevision: running.revision,
638
+ ownerId: "causal-owner",
639
+ ...running.fencingToken !== undefined && { fencingToken: running.fencingToken },
640
+ assistant
641
+ });
642
+ requireOutcome(checkpoint, "applied");
643
+ const order = checkpoint.snapshot.messages.map((message) => message.id).join(",");
644
+ if (order !== `${leadInput.id},${assistant.id},${successorInput.id}`) {
645
+ throw new Error(`Agent history is not in causal run order: ${order}`);
646
+ }
647
+ }
648
+ async function assertAbsorptionIsAtomic(store, conversationId) {
649
+ const leadInput = userMessage(conversationId, "absorb-input-1");
650
+ const leadRun = queuedRun(conversationId, leadInput.id, "absorb-run-1");
651
+ const lead = await store.acceptInputAndAssignRun({
652
+ idempotencyKey: "absorb-request-1",
653
+ input: leadInput,
654
+ run: leadRun
655
+ });
656
+ requireOutcome(lead, "applied");
657
+ const successorInput = userMessage(conversationId, "absorb-input-2");
658
+ const successorRun = queuedRun(conversationId, successorInput.id, "absorb-run-2");
659
+ const successor = await store.acceptInputAndAssignRun({
660
+ idempotencyKey: "absorb-request-2",
661
+ input: successorInput,
662
+ run: successorRun
663
+ });
664
+ requireOutcome(successor, "applied");
665
+ const acquired = await store.acquireRun({
666
+ conversationId,
667
+ runId: leadRun.id,
668
+ expectedRevision: 0,
669
+ ownerId: "absorb-owner"
670
+ });
671
+ requireOutcome(acquired, "applied");
672
+ const running = acquired.snapshot.runs.find((run) => run.id === leadRun.id);
673
+ if (!running)
674
+ throw new Error("Absorbing run disappeared after acquisition");
675
+ const answer = AgentMessageSchema.parse({
676
+ schemaVersion: 1,
677
+ id: running.assistantMessageId,
678
+ conversationId,
679
+ runId: running.id,
680
+ role: "assistant",
681
+ status: "completed",
682
+ parts: [{ type: "text", text: "answered both" }],
683
+ createdAt: "2026-08-26T00:00:00.000Z",
684
+ updatedAt: "2026-08-26T00:00:02.000Z"
685
+ });
686
+ await store.commitRunTerminal({
687
+ conversationId,
688
+ runId: running.id,
689
+ expectedRevision: running.revision,
690
+ ownerId: "absorb-owner",
691
+ assistant: AgentMessageSchema.parse({ ...answer, status: "interrupted" }),
692
+ reason: "interrupted",
693
+ absorb: [{ runId: successorRun.id, inputMessageIds: [successorInput.id] }]
694
+ }).then(() => {
695
+ throw new Error("A non-completing run absorbed a queued successor");
696
+ }, (error) => {
697
+ if (!(error instanceof TypeError))
698
+ throw error;
699
+ });
700
+ const committed = await store.commitRunTerminal({
701
+ conversationId,
702
+ runId: running.id,
703
+ expectedRevision: running.revision,
704
+ ownerId: "absorb-owner",
705
+ assistant: answer,
706
+ reason: "success",
707
+ absorb: [{ runId: successorRun.id, inputMessageIds: [successorInput.id] }]
708
+ });
709
+ requireOutcome(committed, "applied");
710
+ const absorbingView = await store.loadRun({ conversationId, runId: leadRun.id });
711
+ if (absorbingView?.run.inputMessageIds.join(",") !== "absorb-input-1,absorb-input-2") {
712
+ throw new Error("An absorbing run must record the inputs it answered");
713
+ }
714
+ const absorbedView = await store.loadRun({ conversationId, runId: successorRun.id });
715
+ if (absorbedView?.run.terminalReason !== "absorbed") {
716
+ throw new Error("An absorbed successor must be terminal in the same transaction");
717
+ }
718
+ if (absorbedView.run.absorbedIntoRunId !== leadRun.id) {
719
+ throw new Error("An absorbed run must name the run that answered its input");
720
+ }
721
+ if (absorbedView.assistant !== undefined) {
722
+ throw new Error("An absorbed run produced no answer and must retain none");
723
+ }
724
+ if ((await store.listActiveRuns(conversationId)).length !== 0) {
725
+ throw new Error("An absorbed successor must leave the active listing");
726
+ }
727
+ const retried = await store.acceptInputAndAssignRun({
728
+ idempotencyKey: "absorb-request-2",
729
+ input: userMessage(conversationId, "absorb-discarded"),
730
+ run: queuedRun(conversationId, "absorb-discarded", "absorb-discarded-run")
731
+ });
732
+ requireOutcome(retried, "duplicate");
733
+ if (retried.runId !== leadRun.id || retried.assistant?.id !== answer.id) {
734
+ throw new Error("A retried absorbed key must resolve to the run that answered it");
735
+ }
736
+ if (retried.inputMessageId !== successorInput.id) {
737
+ throw new Error("A retried absorbed key must still name its own input");
738
+ }
739
+ }
740
+
741
+ // src/agent-runtime/store-conformance-terminal.ts
742
+ async function terminalPhase(store, conversationId, checkpointed, interruptedRun) {
743
+ const { running, terminalAssistant } = checkpointed;
744
+ const terminalUsage = {
745
+ inputTokens: { value: 3000, provenance: "computed" },
746
+ outputTokens: { value: 300, provenance: "computed" },
747
+ reasoningTokens: { value: 30, provenance: "computed" },
748
+ cacheReadTokens: { value: 200, provenance: "computed" },
749
+ cacheWriteTokens: { value: 100, provenance: "computed" },
750
+ cost: { value: 1.5, currency: "USD", provenance: "computed" }
751
+ };
752
+ const terminalResults = await Promise.all([
753
+ store.commitRunTerminal({
754
+ conversationId,
755
+ runId: running.id,
756
+ expectedRevision: interruptedRun.revision,
757
+ ownerId: "conformance-owner",
758
+ assistant: terminalAssistant,
759
+ reason: "success",
760
+ usage: terminalUsage
761
+ }),
762
+ store.commitRunTerminal({
763
+ conversationId,
764
+ runId: running.id,
765
+ expectedRevision: interruptedRun.revision,
766
+ ownerId: "conformance-owner",
767
+ assistant: terminalAssistant,
768
+ reason: "success",
769
+ usage: terminalUsage
770
+ })
771
+ ]);
772
+ const terminalOutcomes = terminalResults.map((result) => result.outcome).sort();
773
+ if (terminalOutcomes.join(",") !== "applied,conflict") {
774
+ throw new Error(`Terminal race was not linearized: ${terminalOutcomes.join(",")}`);
775
+ }
776
+ const terminalApplied = terminalResults.find((result) => result.outcome === "applied");
777
+ if (terminalApplied?.outcome !== "applied") {
778
+ throw new Error("Terminal race produced no applied result");
779
+ }
780
+ const settledRun = terminalApplied.snapshot.runs.find((run) => run.id === running.id);
781
+ if (JSON.stringify(settledRun?.usage) !== JSON.stringify(terminalUsage)) {
782
+ throw new Error("Terminal commit did not persist the run usage it was given");
783
+ }
784
+ const terminalView = await store.loadRun({ conversationId, runId: running.id });
785
+ if (terminalView?.run.terminalReason !== "success") {
786
+ throw new Error("loadRun must report the terminal reason a settled run ended with");
787
+ }
788
+ if (JSON.stringify(terminalView.run.usage) !== JSON.stringify(terminalUsage)) {
789
+ throw new Error("loadRun must return every persisted terminal usage field");
790
+ }
791
+ if (JSON.stringify(terminalView.assistant) !== JSON.stringify(terminalAssistant)) {
792
+ throw new Error("loadRun must retain the answer a settled run produced");
793
+ }
794
+ if ((await store.listActiveRuns(conversationId)).some((run) => run.id === running.id)) {
795
+ throw new Error("listActiveRuns must drop a run once it has ended");
796
+ }
797
+ const compactedTerminal = await store.replaceCompactedRange({
798
+ conversationId,
799
+ expectedVersion: terminalApplied.snapshot.version,
800
+ replacedMessageIds: ["summary-1", terminalAssistant.id],
801
+ summary: AgentMessageSchema.parse({
802
+ schemaVersion: 1,
803
+ id: "summary-2",
804
+ conversationId,
805
+ role: "summary",
806
+ status: "committed",
807
+ parts: [{ type: "text", text: "terminal history" }],
808
+ createdAt: "2026-08-22T00:00:03.000Z",
809
+ updatedAt: "2026-08-22T00:00:03.000Z"
810
+ })
811
+ });
812
+ requireOutcome(compactedTerminal, "applied");
813
+ const duplicateTerminal = await store.acceptInputAndAssignRun({
814
+ idempotencyKey: "request-1",
815
+ input: userMessage(conversationId, "discarded-terminal-input"),
816
+ run: queuedRun(conversationId, "discarded-terminal-input", "discarded-terminal-run")
817
+ });
818
+ requireOutcome(duplicateTerminal, "duplicate");
819
+ if (duplicateTerminal.run.terminalReason !== "success" || JSON.stringify(duplicateTerminal.assistant) !== JSON.stringify(terminalAssistant)) {
820
+ throw new Error("Compaction discarded the canonical duplicate terminal result");
821
+ }
822
+ }
823
+ async function abandonPhase(store, recoveryConversationId) {
824
+ const recoveryInput = userMessage(recoveryConversationId, "recovery-input");
825
+ const recoveryRun = queuedRun(recoveryConversationId, recoveryInput.id, "recovery-run");
826
+ const recoveryAccepted = await store.acceptInputAndAssignRun({
827
+ idempotencyKey: "recovery-request",
828
+ input: recoveryInput,
829
+ run: recoveryRun
830
+ });
831
+ requireOutcome(recoveryAccepted, "applied");
832
+ const recoveryAssigned = recoveryAccepted.snapshot.runs.find((run) => run.id === recoveryRun.id);
833
+ if (!recoveryAssigned)
834
+ throw new Error("Recovery run disappeared after admission");
835
+ const recoveryAcquired = await store.acquireRun({
836
+ conversationId: recoveryConversationId,
837
+ runId: recoveryAssigned.id,
838
+ expectedRevision: recoveryAssigned.revision,
839
+ ownerId: "abandoned-owner"
840
+ });
841
+ requireOutcome(recoveryAcquired, "applied");
842
+ const abandonedRun = recoveryAcquired.snapshot.runs.find((run) => run.id === recoveryRun.id);
843
+ if (!abandonedRun)
844
+ throw new Error("Recovery run disappeared after acquisition");
845
+ const abandoned = await store.recoverRun({
846
+ conversationId: recoveryConversationId,
847
+ runId: abandonedRun.id,
848
+ expectedRevision: abandonedRun.revision,
849
+ action: "abandon"
850
+ });
851
+ requireOutcome(abandoned, "applied");
852
+ const terminalRun = abandoned.snapshot.runs.find((run) => run.id === abandonedRun.id);
853
+ const terminalMessage = abandoned.snapshot.messages.find((message) => message.id === abandonedRun.assistantMessageId);
854
+ if (terminalRun?.state !== "abandoned" || terminalMessage?.status !== "failed") {
855
+ throw new Error("Abandon recovery did not atomically terminalize its assistant record");
856
+ }
857
+ const abandonedView = await store.loadRun({
858
+ conversationId: recoveryConversationId,
859
+ runId: abandonedRun.id
860
+ });
861
+ if (abandonedView?.run.state !== "abandoned" || abandonedView.run.terminalReason !== "abandoned" || abandonedView.assistant?.status !== "failed") {
862
+ throw new Error("The canonical run record disagrees with its abandoned index projection");
863
+ }
864
+ const afterAbandon = await store.scanRecoverable({ limit: 100 });
865
+ if (afterAbandon.items.some((item) => item.run.id === abandonedRun.id)) {
866
+ throw new Error("The recoverable index still exposes a canonically abandoned run");
867
+ }
868
+ }
869
+
870
+ // src/agent-runtime/store-conformance.ts
871
+ async function runAgentStoreConformance(config) {
872
+ const run = `conformance-${crypto.randomUUID()}`;
873
+ const context = {
874
+ conversationIds: [
875
+ run,
876
+ `${run}-recovery`,
877
+ `${run}-absorb`,
878
+ `${run}-causal-history`,
879
+ `${run}-causal-active`,
880
+ `${run}-interrupt-priority`,
881
+ `${run}-ledger`,
882
+ `${run}-archive`,
883
+ `${run}-seed`
884
+ ]
885
+ };
886
+ const store = await config.createStore(context);
887
+ let failure;
888
+ try {
889
+ await conformanceScenario(store, context.conversationIds);
890
+ } catch (error) {
891
+ failure = error;
892
+ }
893
+ try {
894
+ await config.cleanup?.(context);
895
+ } catch (cleanupError) {
896
+ if (failure === undefined)
897
+ throw cleanupError;
898
+ throw new AggregateError([failure, cleanupError], `${failure instanceof Error ? failure.message : String(failure)} (cleanup also failed: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)})`);
899
+ }
900
+ if (failure !== undefined)
901
+ throw failure;
902
+ }
903
+ async function seedScenario(store, conversationId) {
904
+ const input = {
905
+ conversationId,
906
+ seedKey: "brief",
907
+ inputs: [userMessage(conversationId, "seed-a"), userMessage(conversationId, "seed-b")]
908
+ };
909
+ const first = await store.seedConversationInput(input);
910
+ requireOutcome(first, "applied");
911
+ const before = await store.loadSnapshot(conversationId);
912
+ if (before.messages.map((message) => message.id).join(",") !== "seed-a,seed-b")
913
+ throw new Error("Seed conformance: complete ordered seed missing");
914
+ await Promise.all([store.seedConversationInput(input), store.seedConversationInput(input)]);
915
+ const repeated = await store.loadSnapshot(conversationId);
916
+ if (repeated.version !== before.version || repeated.messages.length !== 2)
917
+ throw new Error("Seed conformance: replay changed history");
918
+ const compacted = await store.replaceCompactedRange({
919
+ conversationId,
920
+ expectedVersion: repeated.version,
921
+ replacedMessageIds: ["seed-a", "seed-b"],
922
+ summary: AgentMessageSchema.parse({
923
+ ...userMessage(conversationId, "seed-summary"),
924
+ role: "summary"
925
+ })
926
+ });
927
+ requireOutcome(compacted, "applied");
928
+ await store.seedConversationInput(input);
929
+ const after = await store.loadSnapshot(conversationId);
930
+ if (after.messages.some((message) => message.id === "seed-a" || message.id === "seed-b"))
931
+ throw new Error("Seed conformance: compacted instructions resurrected");
932
+ }
933
+ async function conformanceScenario(store, conversationIds) {
934
+ const [
935
+ conversationId,
936
+ recoveryConversationId,
937
+ absorbConversationId,
938
+ causalHistoryConversationId,
939
+ causalActiveConversationId,
940
+ interruptPriorityConversationId,
941
+ ledgerConversationId,
942
+ archiveConversationId,
943
+ seedConversationId
944
+ ] = conversationIds;
945
+ if (seedConversationId)
946
+ await seedScenario(store, seedConversationId);
947
+ if (ledgerConversationId)
948
+ await ledgerScenario(store, ledgerConversationId);
949
+ if (archiveConversationId)
950
+ await archiveScenario(store, archiveConversationId);
951
+ if (!conversationId || !recoveryConversationId || !absorbConversationId || !causalHistoryConversationId || !causalActiveConversationId || !interruptPriorityConversationId) {
952
+ throw new Error("Agent store conformance requires six conversation identities");
953
+ }
954
+ const absentConversationId = `${conversationId}-absent`;
955
+ const assigned = await admissionPhase(store, conversationId);
956
+ const checkpointed = await fencingPhase(store, conversationId, assigned);
957
+ await boundedReadsPhase(store, conversationId, absentConversationId, checkpointed);
958
+ const interruptedRun = await interruptPhase(store, conversationId, checkpointed);
959
+ await terminalPhase(store, conversationId, checkpointed, interruptedRun);
960
+ await abandonPhase(store, recoveryConversationId);
961
+ await assertCausalHistoryOrder(store, causalHistoryConversationId);
962
+ await assertActiveRunCausalOrder(store, causalActiveConversationId);
963
+ await assertInterruptPriorityOrder(store, interruptPriorityConversationId);
964
+ await assertAbsorptionIsAtomic(store, absorbConversationId);
965
+ }
966
+ async function ledgerScenario(store, conversationId) {
967
+ const first = await store.appendEvent({
968
+ conversationId,
969
+ kind: "state/set",
970
+ payload: { n: 1 }
971
+ });
972
+ if (first.seq !== 1)
973
+ throw new Error(`Agent store conformance expected seq 1, received ${first.seq}`);
974
+ const appended = await Promise.all(Array.from({ length: 20 }, (_, index) => store.appendEvent({ conversationId, kind: "state/set", payload: { n: index + 2 } })));
975
+ const seqs = [first.seq, ...appended.map((event) => event.seq)].sort((a, b) => a - b);
976
+ for (let index = 0;index < seqs.length; index += 1) {
977
+ if (seqs[index] !== index + 1) {
978
+ throw new Error(`Agent store conformance expected contiguous seq, received ${seqs.join(",")}`);
979
+ }
980
+ }
981
+ const page = await store.readEvents({ conversationId, fromSeq: 5, toSeq: 9, limit: 3 });
982
+ if (page.items.map((event) => event.seq).join(",") !== "5,6,7" || page.nextSeq !== 8) {
983
+ throw new Error(`Agent store conformance expected events 5,6,7 then 8, received ${page.items.map((event) => event.seq).join(",")} then ${page.nextSeq}`);
984
+ }
985
+ const ignorable = await store.appendEvent({
986
+ conversationId,
987
+ kind: "state/set",
988
+ payload: { n: "ignorable" },
989
+ ignorable: true
990
+ });
991
+ if (ignorable.ignorable !== true) {
992
+ throw new Error("Agent store conformance expected the ignorable flag to persist");
993
+ }
994
+ const archive = await store.exportConversation(conversationId);
995
+ const again = await store.exportConversation(conversationId);
996
+ if (Buffer.compare(Buffer.from(archive), Buffer.from(again)) !== 0) {
997
+ throw new Error("Agent store conformance expected two exports of a quiet store to be byte-equal");
998
+ }
999
+ const decoded = decodeAgentConversationArchive(archive);
1000
+ if (decoded.events.length !== 22) {
1001
+ throw new Error(`Agent store conformance expected 22 archived events, received ${decoded.events.length}`);
1002
+ }
1003
+ }
1004
+ async function archiveScenario(store, conversationId) {
1005
+ const origin = createMemoryAgentRuntimeStore();
1006
+ const inputMessage = userMessage(conversationId, "archived-input");
1007
+ const run = queuedRun(conversationId, inputMessage.id, "archived-run");
1008
+ requireOutcome(await origin.acceptInputAndAssignRun({
1009
+ idempotencyKey: "archived-request",
1010
+ input: inputMessage,
1011
+ run
1012
+ }), "applied");
1013
+ await origin.appendEvent({
1014
+ conversationId,
1015
+ kind: "state/set",
1016
+ payload: { name: "topic", value: "archive" }
1017
+ });
1018
+ const imported = await store.importConversation(await origin.exportConversation(conversationId));
1019
+ if (imported.conversationId !== conversationId || imported.events !== 2) {
1020
+ throw new Error(`Agent store conformance expected 2 imported events for ${conversationId}, received ${imported.events} for ${imported.conversationId}`);
1021
+ }
1022
+ const restored = await store.loadSnapshot(conversationId);
1023
+ const expected = await origin.loadSnapshot(conversationId);
1024
+ if (restored.version !== expected.version || restored.messages.map((message) => message.id).join(",") !== expected.messages.map((message) => message.id).join(",") || restored.runs.map((entry) => `${entry.id}:${entry.state}`).join(",") !== expected.runs.map((entry) => `${entry.id}:${entry.state}`).join(",")) {
1025
+ throw new Error(`Agent store conformance expected the imported snapshot to match its archive, received version ${restored.version} with ${restored.messages.length} messages and ${restored.runs.length} runs`);
1026
+ }
1027
+ const events = await store.readEvents({ conversationId, limit: 10 });
1028
+ if (events.items.map((event) => event.kind).join(",") !== "runtime/transition,state/set") {
1029
+ throw new Error(`Agent store conformance expected the imported ledger to keep its kinds, received ${events.items.map((event) => event.kind).join(",")}`);
1030
+ }
1031
+ }
1032
+ // src/agent-runtime/testing.ts
1033
+ function createAgentRaceBarrier(timeoutMs = 5000) {
1034
+ if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1) {
1035
+ throw new TypeError("Agent race barrier timeoutMs must be a positive safe integer");
1036
+ }
1037
+ const reached = Promise.withResolvers();
1038
+ const released = Promise.withResolvers();
1039
+ let announced = false;
1040
+ return {
1041
+ reached: reached.promise,
1042
+ async wait() {
1043
+ if (!announced) {
1044
+ announced = true;
1045
+ reached.resolve();
1046
+ }
1047
+ let timer;
1048
+ try {
1049
+ await Promise.race([
1050
+ released.promise,
1051
+ new Promise((_resolve, reject) => {
1052
+ timer = setTimeout(() => reject(new Error(`Agent race barrier exceeded ${timeoutMs}ms teardown bound`)), timeoutMs);
1053
+ })
1054
+ ]);
1055
+ } finally {
1056
+ if (timer !== undefined)
1057
+ clearTimeout(timer);
1058
+ }
1059
+ },
1060
+ release: released.resolve
1061
+ };
1062
+ }
1063
+ function createAgentRaceTrace() {
1064
+ const recorded = [];
1065
+ return {
1066
+ record(name) {
1067
+ const entry = { name, sequence: recorded.length };
1068
+ recorded.push(entry);
1069
+ return entry;
1070
+ },
1071
+ entries: () => recorded.map((entry) => ({ ...entry })),
1072
+ assertBefore(first, second) {
1073
+ const firstEntry = recorded.find((entry) => entry.name === first);
1074
+ const secondEntry = recorded.find((entry) => entry.name === second);
1075
+ if (!firstEntry || !secondEntry || firstEntry.sequence >= secondEntry.sequence) {
1076
+ throw new Error(`Expected ${first} before ${second}`);
1077
+ }
1078
+ },
1079
+ assertSequence(names) {
1080
+ const actual = recorded.map((entry) => entry.name);
1081
+ if (actual.length !== names.length || actual.some((name, index) => name !== names[index])) {
1082
+ throw new Error(`Expected trace ${names.join(" -> ")}, received ${actual.join(" -> ")}`);
1083
+ }
1084
+ },
1085
+ count: (name) => recorded.filter((entry) => entry.name === name).length
1086
+ };
1087
+ }
1088
+ function createAgentRaceDriver(timeoutMs = 5000) {
1089
+ const trace = createAgentRaceTrace();
1090
+ const barriers = new Map;
1091
+ return {
1092
+ trace,
1093
+ barrier(name) {
1094
+ const existing = barriers.get(name);
1095
+ if (existing)
1096
+ return existing;
1097
+ const created = createAgentRaceBarrier(timeoutMs);
1098
+ barriers.set(name, created);
1099
+ return created;
1100
+ },
1101
+ releaseAll() {
1102
+ for (const barrier of barriers.values())
1103
+ barrier.release();
1104
+ }
1105
+ };
1106
+ }
1107
+ export {
1108
+ runAgentStoreConformance,
1109
+ defineAgentFaultPlan,
1110
+ createReplayAgentProvider,
1111
+ createFaultProviderServer,
1112
+ createAgentRaceTrace,
1113
+ createAgentRaceDriver,
1114
+ createAgentRaceBarrier,
1115
+ AgentFaultStepSchema
1116
+ };