@earendil-works/pi-agent-core 0.84.4 → 0.85.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 (343) hide show
  1. package/README.md +4 -0
  2. package/dist/agent-loop.d.ts.map +1 -1
  3. package/dist/agent-loop.js +9 -0
  4. package/dist/agent-loop.js.map +1 -1
  5. package/dist/harness/agent-harness.d.ts +639 -384
  6. package/dist/harness/agent-harness.d.ts.map +1 -1
  7. package/dist/harness/agent-harness.js +5 -251
  8. package/dist/harness/agent-harness.js.map +1 -1
  9. package/dist/harness/compaction/branch-summarization.d.ts +12 -6
  10. package/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
  11. package/dist/harness/compaction/branch-summarization.js +33 -26
  12. package/dist/harness/compaction/branch-summarization.js.map +1 -1
  13. package/dist/harness/compaction/compaction.d.ts +30 -8
  14. package/dist/harness/compaction/compaction.d.ts.map +1 -1
  15. package/dist/harness/compaction/compaction.js +53 -63
  16. package/dist/harness/compaction/compaction.js.map +1 -1
  17. package/dist/harness/config.d.ts +9 -0
  18. package/dist/harness/config.d.ts.map +1 -0
  19. package/dist/harness/config.js +27 -0
  20. package/dist/harness/config.js.map +1 -0
  21. package/dist/harness/context.d.ts +9 -0
  22. package/dist/harness/context.d.ts.map +1 -0
  23. package/dist/harness/context.js +13 -0
  24. package/dist/harness/context.js.map +1 -0
  25. package/dist/harness/env/nodejs.d.ts +24 -28
  26. package/dist/harness/env/nodejs.d.ts.map +1 -1
  27. package/dist/harness/env/nodejs.js +239 -86
  28. package/dist/harness/env/nodejs.js.map +1 -1
  29. package/dist/harness/events.d.ts +20 -38
  30. package/dist/harness/events.d.ts.map +1 -1
  31. package/dist/harness/events.js +240 -55
  32. package/dist/harness/events.js.map +1 -1
  33. package/dist/harness/execution/assistant.d.ts +42 -0
  34. package/dist/harness/execution/assistant.d.ts.map +1 -0
  35. package/dist/harness/execution/assistant.js +82 -0
  36. package/dist/harness/execution/assistant.js.map +1 -0
  37. package/dist/harness/execution/effect-gate.d.ts +22 -0
  38. package/dist/harness/execution/effect-gate.d.ts.map +1 -0
  39. package/dist/harness/execution/effect-gate.js +49 -0
  40. package/dist/harness/execution/effect-gate.js.map +1 -0
  41. package/dist/harness/execution/tools.d.ts +67 -0
  42. package/dist/harness/execution/tools.d.ts.map +1 -0
  43. package/dist/harness/execution/tools.js +121 -0
  44. package/dist/harness/execution/tools.js.map +1 -0
  45. package/dist/harness/hooks.d.ts +38 -0
  46. package/dist/harness/hooks.d.ts.map +1 -0
  47. package/dist/harness/hooks.js +406 -0
  48. package/dist/harness/hooks.js.map +1 -0
  49. package/dist/harness/messages.d.ts +2 -2
  50. package/dist/harness/messages.d.ts.map +1 -1
  51. package/dist/harness/messages.js.map +1 -1
  52. package/dist/harness/prompt-templates.d.ts +3 -2
  53. package/dist/harness/prompt-templates.d.ts.map +1 -1
  54. package/dist/harness/prompt-templates.js +17 -17
  55. package/dist/harness/prompt-templates.js.map +1 -1
  56. package/dist/harness/result.d.ts +93 -0
  57. package/dist/harness/result.d.ts.map +1 -1
  58. package/dist/harness/result.js +40 -0
  59. package/dist/harness/result.js.map +1 -1
  60. package/dist/harness/runtime/drive/boundary.d.ts +28 -0
  61. package/dist/harness/runtime/drive/boundary.d.ts.map +1 -0
  62. package/dist/harness/runtime/drive/boundary.js +170 -0
  63. package/dist/harness/runtime/drive/boundary.js.map +1 -0
  64. package/dist/harness/runtime/drive/checkpoint.d.ts +8 -0
  65. package/dist/harness/runtime/drive/checkpoint.d.ts.map +1 -0
  66. package/dist/harness/runtime/drive/checkpoint.js +133 -0
  67. package/dist/harness/runtime/drive/checkpoint.js.map +1 -0
  68. package/dist/harness/runtime/drive/deferred.d.ts +15 -0
  69. package/dist/harness/runtime/drive/deferred.d.ts.map +1 -0
  70. package/dist/harness/runtime/drive/deferred.js +179 -0
  71. package/dist/harness/runtime/drive/deferred.js.map +1 -0
  72. package/dist/harness/runtime/drive/generation.d.ts +8 -0
  73. package/dist/harness/runtime/drive/generation.d.ts.map +1 -0
  74. package/dist/harness/runtime/drive/generation.js +205 -0
  75. package/dist/harness/runtime/drive/generation.js.map +1 -0
  76. package/dist/harness/runtime/drive/reconcile.d.ts +5 -0
  77. package/dist/harness/runtime/drive/reconcile.d.ts.map +1 -0
  78. package/dist/harness/runtime/drive/reconcile.js +140 -0
  79. package/dist/harness/runtime/drive/reconcile.js.map +1 -0
  80. package/dist/harness/runtime/drive/recovery.d.ts +8 -0
  81. package/dist/harness/runtime/drive/recovery.d.ts.map +1 -0
  82. package/dist/harness/runtime/drive/recovery.js +85 -0
  83. package/dist/harness/runtime/drive/recovery.js.map +1 -0
  84. package/dist/harness/runtime/drive/response.d.ts +23 -0
  85. package/dist/harness/runtime/drive/response.d.ts.map +1 -0
  86. package/dist/harness/runtime/drive/response.js +394 -0
  87. package/dist/harness/runtime/drive/response.js.map +1 -0
  88. package/dist/harness/runtime/drive/retry.d.ts +4 -0
  89. package/dist/harness/runtime/drive/retry.d.ts.map +1 -0
  90. package/dist/harness/runtime/drive/retry.js +37 -0
  91. package/dist/harness/runtime/drive/retry.js.map +1 -0
  92. package/dist/harness/runtime/drive/structural.d.ts +32 -0
  93. package/dist/harness/runtime/drive/structural.d.ts.map +1 -0
  94. package/dist/harness/runtime/drive/structural.js +929 -0
  95. package/dist/harness/runtime/drive/structural.js.map +1 -0
  96. package/dist/harness/runtime/drive/terminal.d.ts +7 -0
  97. package/dist/harness/runtime/drive/terminal.d.ts.map +1 -0
  98. package/dist/harness/runtime/drive/terminal.js +49 -0
  99. package/dist/harness/runtime/drive/terminal.js.map +1 -0
  100. package/dist/harness/runtime/drive/tool-placement.d.ts +14 -0
  101. package/dist/harness/runtime/drive/tool-placement.d.ts.map +1 -0
  102. package/dist/harness/runtime/drive/tool-placement.js +244 -0
  103. package/dist/harness/runtime/drive/tool-placement.js.map +1 -0
  104. package/dist/harness/runtime/drive/tools.d.ts +6 -0
  105. package/dist/harness/runtime/drive/tools.d.ts.map +1 -0
  106. package/dist/harness/runtime/drive/tools.js +449 -0
  107. package/dist/harness/runtime/drive/tools.js.map +1 -0
  108. package/dist/harness/runtime/drive.d.ts +6 -0
  109. package/dist/harness/runtime/drive.d.ts.map +1 -0
  110. package/dist/harness/runtime/drive.js +93 -0
  111. package/dist/harness/runtime/drive.js.map +1 -0
  112. package/dist/harness/runtime/harness.d.ts +59 -0
  113. package/dist/harness/runtime/harness.d.ts.map +1 -0
  114. package/dist/harness/runtime/harness.js +311 -0
  115. package/dist/harness/runtime/harness.js.map +1 -0
  116. package/dist/harness/runtime/index.d.ts +2 -0
  117. package/dist/harness/runtime/index.d.ts.map +1 -0
  118. package/dist/harness/runtime/index.js +2 -0
  119. package/dist/harness/runtime/index.js.map +1 -0
  120. package/dist/harness/runtime/lane.d.ts +101 -0
  121. package/dist/harness/runtime/lane.d.ts.map +1 -0
  122. package/dist/harness/runtime/lane.js +1575 -0
  123. package/dist/harness/runtime/lane.js.map +1 -0
  124. package/dist/harness/runtime/progress.d.ts +15 -0
  125. package/dist/harness/runtime/progress.d.ts.map +1 -0
  126. package/dist/harness/runtime/progress.js +66 -0
  127. package/dist/harness/runtime/progress.js.map +1 -0
  128. package/dist/harness/runtime/reducer.d.ts +5 -0
  129. package/dist/harness/runtime/reducer.d.ts.map +1 -0
  130. package/dist/harness/runtime/reducer.js +240 -0
  131. package/dist/harness/runtime/reducer.js.map +1 -0
  132. package/dist/harness/runtime/restore.d.ts +24 -0
  133. package/dist/harness/runtime/restore.d.ts.map +1 -0
  134. package/dist/harness/runtime/restore.js +117 -0
  135. package/dist/harness/runtime/restore.js.map +1 -0
  136. package/dist/harness/runtime/transcript.d.ts +21 -0
  137. package/dist/harness/runtime/transcript.d.ts.map +1 -0
  138. package/dist/harness/runtime/transcript.js +72 -0
  139. package/dist/harness/runtime/transcript.js.map +1 -0
  140. package/dist/harness/runtime/types.d.ts +105 -0
  141. package/dist/harness/runtime/types.d.ts.map +1 -0
  142. package/dist/harness/runtime/types.js +61 -0
  143. package/dist/harness/runtime/types.js.map +1 -0
  144. package/dist/harness/session/commit.d.ts +53 -0
  145. package/dist/harness/session/commit.d.ts.map +1 -0
  146. package/dist/harness/session/commit.js +57 -0
  147. package/dist/harness/session/commit.js.map +1 -0
  148. package/dist/harness/session/context.d.ts +6 -18
  149. package/dist/harness/session/context.d.ts.map +1 -1
  150. package/dist/harness/session/context.js +31 -49
  151. package/dist/harness/session/context.js.map +1 -1
  152. package/dist/harness/session/fork-policy.d.ts +13 -0
  153. package/dist/harness/session/fork-policy.d.ts.map +1 -0
  154. package/dist/harness/session/fork-policy.js +22 -0
  155. package/dist/harness/session/fork-policy.js.map +1 -0
  156. package/dist/harness/session/fork.d.ts +18 -0
  157. package/dist/harness/session/fork.d.ts.map +1 -0
  158. package/dist/harness/session/fork.js +127 -0
  159. package/dist/harness/session/fork.js.map +1 -0
  160. package/dist/harness/session/in-memory-storage-state.d.ts +39 -0
  161. package/dist/harness/session/in-memory-storage-state.d.ts.map +1 -0
  162. package/dist/harness/session/in-memory-storage-state.js +216 -0
  163. package/dist/harness/session/in-memory-storage-state.js.map +1 -0
  164. package/dist/harness/session/index.d.ts +9 -5
  165. package/dist/harness/session/index.d.ts.map +1 -1
  166. package/dist/harness/session/index.js +7 -4
  167. package/dist/harness/session/index.js.map +1 -1
  168. package/dist/harness/session/jsonl/codec.d.ts +19 -8
  169. package/dist/harness/session/jsonl/codec.d.ts.map +1 -1
  170. package/dist/harness/session/jsonl/codec.js +34 -218
  171. package/dist/harness/session/jsonl/codec.js.map +1 -1
  172. package/dist/harness/session/jsonl/index.d.ts +4 -0
  173. package/dist/harness/session/jsonl/index.d.ts.map +1 -0
  174. package/dist/harness/session/jsonl/index.js +4 -0
  175. package/dist/harness/session/jsonl/index.js.map +1 -0
  176. package/dist/harness/session/jsonl/legacy-v3.d.ts +18 -0
  177. package/dist/harness/session/jsonl/legacy-v3.d.ts.map +1 -0
  178. package/dist/harness/session/jsonl/legacy-v3.js +383 -0
  179. package/dist/harness/session/jsonl/legacy-v3.js.map +1 -0
  180. package/dist/harness/session/jsonl/repo.d.ts +26 -19
  181. package/dist/harness/session/jsonl/repo.d.ts.map +1 -1
  182. package/dist/harness/session/jsonl/repo.js +266 -156
  183. package/dist/harness/session/jsonl/repo.js.map +1 -1
  184. package/dist/harness/session/jsonl/storage.d.ts +39 -41
  185. package/dist/harness/session/jsonl/storage.d.ts.map +1 -1
  186. package/dist/harness/session/jsonl/storage.js +238 -181
  187. package/dist/harness/session/jsonl/storage.js.map +1 -1
  188. package/dist/harness/session/jsonl/types.d.ts +23 -22
  189. package/dist/harness/session/jsonl/types.d.ts.map +1 -1
  190. package/dist/harness/session/jsonl/types.js +2 -1
  191. package/dist/harness/session/jsonl/types.js.map +1 -1
  192. package/dist/harness/session/memory.d.ts +46 -40
  193. package/dist/harness/session/memory.d.ts.map +1 -1
  194. package/dist/harness/session/memory.js +346 -113
  195. package/dist/harness/session/memory.js.map +1 -1
  196. package/dist/harness/session/mutation-line.d.ts +8 -0
  197. package/dist/harness/session/mutation-line.d.ts.map +1 -0
  198. package/dist/harness/session/mutation-line.js +21 -0
  199. package/dist/harness/session/mutation-line.js.map +1 -0
  200. package/dist/harness/session/session.d.ts +78 -46
  201. package/dist/harness/session/session.d.ts.map +1 -1
  202. package/dist/harness/session/session.js +343 -209
  203. package/dist/harness/session/session.js.map +1 -1
  204. package/dist/harness/session/testing/benchmark/datasets.d.ts +12 -0
  205. package/dist/harness/session/testing/benchmark/datasets.d.ts.map +1 -0
  206. package/dist/harness/session/testing/benchmark/datasets.js +24 -0
  207. package/dist/harness/session/testing/benchmark/datasets.js.map +1 -0
  208. package/dist/harness/session/testing/benchmark/session-repo.d.ts +42 -0
  209. package/dist/harness/session/testing/benchmark/session-repo.d.ts.map +1 -0
  210. package/dist/harness/session/testing/benchmark/session-repo.js +127 -0
  211. package/dist/harness/session/testing/benchmark/session-repo.js.map +1 -0
  212. package/dist/harness/session/testing/benchmark/storage.d.ts +25 -0
  213. package/dist/harness/session/testing/benchmark/storage.d.ts.map +1 -0
  214. package/dist/harness/session/testing/benchmark/storage.js +114 -0
  215. package/dist/harness/session/testing/benchmark/storage.js.map +1 -0
  216. package/dist/harness/session/testing/conformance/session-repo.d.ts +21 -0
  217. package/dist/harness/session/testing/conformance/session-repo.d.ts.map +1 -0
  218. package/dist/harness/session/testing/conformance/session-repo.js +590 -0
  219. package/dist/harness/session/testing/conformance/session-repo.js.map +1 -0
  220. package/dist/harness/session/testing/conformance/storage.d.ts +4 -0
  221. package/dist/harness/session/testing/conformance/storage.d.ts.map +1 -0
  222. package/dist/harness/session/testing/conformance/storage.js +600 -0
  223. package/dist/harness/session/testing/conformance/storage.js.map +1 -0
  224. package/dist/harness/session/testing/gating-storage.d.ts +26 -0
  225. package/dist/harness/session/testing/gating-storage.d.ts.map +1 -0
  226. package/dist/harness/session/testing/gating-storage.js +100 -0
  227. package/dist/harness/session/testing/gating-storage.js.map +1 -0
  228. package/dist/harness/session/testing/index.d.ts +9 -2
  229. package/dist/harness/session/testing/index.d.ts.map +1 -1
  230. package/dist/harness/session/testing/index.js +8 -1
  231. package/dist/harness/session/testing/index.js.map +1 -1
  232. package/dist/harness/session/testing/instrumented-storage.d.ts +11 -0
  233. package/dist/harness/session/testing/instrumented-storage.d.ts.map +1 -0
  234. package/dist/harness/session/testing/instrumented-storage.js +16 -0
  235. package/dist/harness/session/testing/instrumented-storage.js.map +1 -0
  236. package/dist/harness/session/testing/storage-decorator.d.ts +20 -0
  237. package/dist/harness/session/testing/storage-decorator.d.ts.map +1 -0
  238. package/dist/harness/session/testing/storage-decorator.js +41 -0
  239. package/dist/harness/session/testing/storage-decorator.js.map +1 -0
  240. package/dist/harness/session/testing/types.d.ts +5 -7
  241. package/dist/harness/session/testing/types.d.ts.map +1 -1
  242. package/dist/harness/session/testing/types.js.map +1 -1
  243. package/dist/harness/session/types.d.ts +424 -259
  244. package/dist/harness/session/types.d.ts.map +1 -1
  245. package/dist/harness/session/types.js +7 -8
  246. package/dist/harness/session/types.js.map +1 -1
  247. package/dist/harness/session/values.d.ts +95 -0
  248. package/dist/harness/session/values.d.ts.map +1 -0
  249. package/dist/harness/session/values.js +81 -0
  250. package/dist/harness/session/values.js.map +1 -0
  251. package/dist/harness/skills.d.ts +3 -2
  252. package/dist/harness/skills.d.ts.map +1 -1
  253. package/dist/harness/skills.js +29 -26
  254. package/dist/harness/skills.js.map +1 -1
  255. package/dist/harness/telemetry.d.ts +64 -43
  256. package/dist/harness/telemetry.d.ts.map +1 -1
  257. package/dist/harness/telemetry.js +45 -26
  258. package/dist/harness/telemetry.js.map +1 -1
  259. package/dist/harness/tools/bash.d.ts +4 -4
  260. package/dist/harness/tools/bash.d.ts.map +1 -1
  261. package/dist/harness/tools/bash.js +66 -93
  262. package/dist/harness/tools/bash.js.map +1 -1
  263. package/dist/harness/tools/edit.d.ts.map +1 -1
  264. package/dist/harness/tools/edit.js +10 -10
  265. package/dist/harness/tools/edit.js.map +1 -1
  266. package/dist/harness/tools/file-mutation-queue.d.ts +2 -1
  267. package/dist/harness/tools/file-mutation-queue.d.ts.map +1 -1
  268. package/dist/harness/tools/file-mutation-queue.js +5 -5
  269. package/dist/harness/tools/file-mutation-queue.js.map +1 -1
  270. package/dist/harness/tools/path-utils.d.ts +3 -2
  271. package/dist/harness/tools/path-utils.d.ts.map +1 -1
  272. package/dist/harness/tools/path-utils.js +5 -5
  273. package/dist/harness/tools/path-utils.js.map +1 -1
  274. package/dist/harness/tools/read.d.ts +2 -1
  275. package/dist/harness/tools/read.d.ts.map +1 -1
  276. package/dist/harness/tools/read.js +4 -6
  277. package/dist/harness/tools/read.js.map +1 -1
  278. package/dist/harness/tools/write.d.ts.map +1 -1
  279. package/dist/harness/tools/write.js +7 -7
  280. package/dist/harness/tools/write.js.map +1 -1
  281. package/dist/harness/types.d.ts +108 -45
  282. package/dist/harness/types.d.ts.map +1 -1
  283. package/dist/harness/types.js.map +1 -1
  284. package/dist/harness/utils/adaptive-publisher.d.ts +24 -0
  285. package/dist/harness/utils/adaptive-publisher.d.ts.map +1 -0
  286. package/dist/harness/utils/adaptive-publisher.js +79 -0
  287. package/dist/harness/utils/adaptive-publisher.js.map +1 -0
  288. package/dist/harness/utils/output-capture.d.ts +31 -0
  289. package/dist/harness/utils/output-capture.d.ts.map +1 -0
  290. package/dist/harness/utils/output-capture.js +217 -0
  291. package/dist/harness/utils/output-capture.js.map +1 -0
  292. package/dist/harness/utils/shell-output.d.ts +12 -5
  293. package/dist/harness/utils/shell-output.d.ts.map +1 -1
  294. package/dist/harness/utils/shell-output.js +64 -174
  295. package/dist/harness/utils/shell-output.js.map +1 -1
  296. package/dist/harness/utils/truncate.d.ts +1 -0
  297. package/dist/harness/utils/truncate.d.ts.map +1 -1
  298. package/dist/harness/utils/truncate.js +1 -1
  299. package/dist/harness/utils/truncate.js.map +1 -1
  300. package/dist/harness/utils/usage.d.ts +4 -0
  301. package/dist/harness/utils/usage.d.ts.map +1 -0
  302. package/dist/harness/utils/usage.js +33 -0
  303. package/dist/harness/utils/usage.js.map +1 -0
  304. package/dist/index.d.ts +4 -1
  305. package/dist/index.d.ts.map +1 -1
  306. package/dist/index.js +3 -6
  307. package/dist/index.js.map +1 -1
  308. package/dist/proxy.d.ts +2 -0
  309. package/dist/proxy.d.ts.map +1 -1
  310. package/dist/proxy.js +40 -10
  311. package/dist/proxy.js.map +1 -1
  312. package/dist/search/index.d.ts +24 -16
  313. package/dist/search/index.d.ts.map +1 -1
  314. package/dist/search/index.js +1 -1
  315. package/dist/search/index.js.map +1 -1
  316. package/dist/types.d.ts +2 -0
  317. package/dist/types.d.ts.map +1 -1
  318. package/dist/types.js.map +1 -1
  319. package/package.json +25 -4
  320. package/dist/harness/reducer.d.ts +0 -100
  321. package/dist/harness/reducer.d.ts.map +0 -1
  322. package/dist/harness/reducer.js +0 -415
  323. package/dist/harness/reducer.js.map +0 -1
  324. package/dist/harness/session/jsonl/errors.d.ts +0 -9
  325. package/dist/harness/session/jsonl/errors.d.ts.map +0 -1
  326. package/dist/harness/session/jsonl/errors.js +0 -19
  327. package/dist/harness/session/jsonl/errors.js.map +0 -1
  328. package/dist/harness/session/jsonl.d.ts +0 -3
  329. package/dist/harness/session/jsonl.d.ts.map +0 -1
  330. package/dist/harness/session/jsonl.js +0 -2
  331. package/dist/harness/session/jsonl.js.map +0 -1
  332. package/dist/harness/session/state.d.ts +0 -65
  333. package/dist/harness/session/state.d.ts.map +0 -1
  334. package/dist/harness/session/state.js +0 -319
  335. package/dist/harness/session/state.js.map +0 -1
  336. package/dist/harness/session/testing/conformance.d.ts +0 -4
  337. package/dist/harness/session/testing/conformance.d.ts.map +0 -1
  338. package/dist/harness/session/testing/conformance.js +0 -762
  339. package/dist/harness/session/testing/conformance.js.map +0 -1
  340. package/dist/search/scanning.d.ts +0 -29
  341. package/dist/search/scanning.d.ts.map +0 -1
  342. package/dist/search/scanning.js +0 -103
  343. package/dist/search/scanning.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tApi,\n\tAssistantMessage,\n\tDeferredHandle,\n\tImageContent,\n\tMessage,\n\tModel,\n\tModels,\n\tRetryPolicy,\n\tSimpleStreamOptions,\n\tUsage,\n} from \"@earendil-works/pi-ai\";\nimport type { AgentMessage, AgentTool, QueueMode, ThinkingLevel } from \"../types.ts\";\nimport type { CompactionSettings } from \"./compaction/compaction.ts\";\nimport { type Result as ResultValue, TaggedError } from \"./result.ts\";\nimport type {\n\tBranchSummaryEntry,\n\tCompactionEntry,\n\tEntry,\n\tJsonValue,\n\tProvisionedEntry,\n\tSession,\n\tSessionTree,\n} from \"./session/index.ts\";\nimport type { TelemetryContext } from \"./telemetry.ts\";\nimport type { AgentHarnessResources, PromptTemplate, Skill } from \"./types.ts\";\n\nexport class LaneBusy extends TaggedError(\"LaneBusy\")<{\n\tlane: string;\n\toperationId: string;\n\toperationKind: \"run\" | \"compaction\" | \"navigation\";\n\tmessage: string;\n}> {}\nexport class MissingIdentities extends TaggedError(\"MissingIdentities\")<{\n\tlane: string;\n\ttools: string[];\n\tmodels: string[];\n\tmessage: string;\n}> {}\nexport class NoActiveRun extends TaggedError(\"NoActiveRun\")<{ lane: string; message: string }> {}\nexport class NoActiveOperation extends TaggedError(\"NoActiveOperation\")<{ lane: string; message: string }> {}\nexport class NothingToResume extends TaggedError(\"NothingToResume\")<{ lane: string; message: string }> {}\nexport class InvalidMessage extends TaggedError(\"InvalidMessage\")<{ lane: string; reason: string; message: string }> {}\nexport class UnknownSkill extends TaggedError(\"UnknownSkill\")<{ name: string; message: string }> {}\nexport class UnknownTemplate extends TaggedError(\"UnknownTemplate\")<{ name: string; message: string }> {}\nexport class UnknownTarget extends TaggedError(\"UnknownTarget\")<{ targetId: string; message: string }> {}\nexport class UnknownQueueItem extends TaggedError(\"UnknownQueueItem\")<{\n\tlane: string;\n\tentryId: string;\n\tmessage: string;\n}> {}\nexport class LaneExists extends TaggedError(\"LaneExists\")<{ lane: string; message: string }> {}\nexport class InvalidLane extends TaggedError(\"InvalidLane\")<{ lane: string; reason: string; message: string }> {}\nexport class NothingToCompact extends TaggedError(\"NothingToCompact\")<{ lane: string; message: string }> {}\nexport class Closed extends TaggedError(\"Closed\")<{ message: string }> {}\n\nexport class HarnessFault extends Error {\n\treadonly cause: unknown;\n\n\tconstructor(message: string, cause: unknown) {\n\t\tsuper(message);\n\t\tthis.name = \"HarnessFault\";\n\t\tthis.cause = cause;\n\t}\n}\n\nexport class HarnessClosed extends Error {\n\tconstructor() {\n\t\tsuper(\"AgentHarness was closed while the operation was active\");\n\t\tthis.name = \"HarnessClosed\";\n\t}\n}\n\nexport class HarnessNotImplemented extends Error {\n\treadonly operation: string;\n\n\tconstructor(operation: string) {\n\t\tsuper(`AgentHarness.${operation} is not implemented yet`);\n\t\tthis.name = \"HarnessNotImplemented\";\n\t\tthis.operation = operation;\n\t}\n}\n\nexport interface OperationError {\n\tcode: string;\n\tmessage: string;\n}\n\nexport type RunOutcome =\n\t| { kind: \"completed\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"aborted\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"failed\"; leafId: string; error: OperationError; finalEntryId?: string; finalMessage?: AssistantMessage }\n\t| { kind: \"suspended\"; leafId: string; finalEntryId: string; deferred: DeferredHandle };\n\nexport type CompactionOutcome =\n\t| { kind: \"completed\"; leafId: string; entry: CompactionEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string }\n\t| { kind: \"failed\"; leafId: string; error: OperationError };\n\nexport type NavigationOutcome =\n\t| { kind: \"completed\"; newLeafId: string | null; summaryEntry?: BranchSummaryEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string | null }\n\t| { kind: \"failed\"; leafId: string | null; error: OperationError };\n\nexport type RunRejected = LaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed;\nexport type CompactionRejected = LaneBusy | NothingToCompact | Closed;\nexport type NavigationRejected = LaneBusy | UnknownTarget | Closed;\nexport type ResumeRejected = LaneBusy | NothingToResume | MissingIdentities | Closed;\nexport type QueueRejected = NoActiveRun | InvalidMessage | Closed;\nexport type CancelQueuedRejected = UnknownQueueItem | Closed;\nexport type AbortRejected = NoActiveOperation | Closed;\n\nexport type RunResult = ResultValue<{ runId: string } & RunOutcome, RunRejected>;\nexport type CompactionResult = ResultValue<{ runId: string } & CompactionOutcome, CompactionRejected>;\nexport type NavigationResult = ResultValue<{ runId: string } & NavigationOutcome, NavigationRejected>;\nexport type QueueResult = ResultValue<{ entryId: string }, QueueRejected>;\nexport type CancelQueuedResult = ResultValue<\n\t{ outcome: \"cancelled\" | \"already_consumed\" | \"already_cleared\" },\n\tCancelQueuedRejected\n>;\nexport type RecordUsageResult = ResultValue<void, Closed>;\nexport type AbortResult = ResultValue<\n\t{ runId: string; steer: AgentMessage[]; followUp: AgentMessage[] },\n\tAbortRejected\n>;\n\nexport type ResumeOutcome =\n\t| ({ operation: \"run\"; runId: string } & RunOutcome)\n\t| ({ operation: \"compaction\"; runId: string } & CompactionOutcome)\n\t| ({ operation: \"navigation\"; runId: string } & NavigationOutcome);\nexport type ResumeResult = ResultValue<ResumeOutcome, ResumeRejected>;\nexport type CreateLaneResult = ResultValue<AgentLane, LaneExists | InvalidLane | UnknownTarget | Closed>;\n\nexport interface NavigateOptions {\n\tsummarize?: boolean;\n\tcustomInstructions?: string;\n\tlabel?: string;\n}\n\nexport interface SuspendedOperation {\n\tlane: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tid: string;\n\tstartedAt: number;\n\treason: \"crash\" | \"deferred\";\n\tprompt?: AgentMessage[];\n\tdeferred?: DeferredHandle;\n\taborting?: { steer: AgentMessage[]; followUp: AgentMessage[] };\n\tmissing: { tools: string[]; models: string[] };\n}\n\nexport interface LaneInfo {\n\tname: string;\n\tleafId: string | null;\n\toperation: null | {\n\t\tid: string;\n\t\tkind: \"run\" | \"compaction\" | \"navigation\";\n\t\tstatus: \"running\" | \"suspended\" | \"aborting\";\n\t};\n}\n\nexport interface QueuedItem {\n\tentryId: string;\n\tmessage: AgentMessage;\n}\n\nexport interface LaneSnapshot {\n\tlane: string;\n\ttranscript: Entry[];\n\tleafId: string | null;\n\toperation: LaneInfo[\"operation\"];\n\tqueues: { steer: QueuedItem[]; followUp: QueuedItem[]; nextRun: QueuedItem[] };\n\tpendingWrites: { id: string; entry: ProvisionedEntry }[];\n\tfaulted: boolean;\n}\n\nexport interface SessionSnapshot {\n\tlanes: (LaneInfo & { suspended?: SuspendedOperation })[];\n\tfaulted: boolean;\n}\n\nexport type ActionInfo =\n\t| { kind: \"append_entry\"; entryType: Entry[\"type\"]; entryId: string }\n\t| { kind: \"append_record\"; recordType: string }\n\t| { kind: \"move_lane\"; to: string | null }\n\t| { kind: \"set_fact\"; fact: \"name\" | \"label\" }\n\t| { kind: \"try_finish_run\"; outcome: \"completed\" | \"failed\" }\n\t| { kind: \"finish_operation\"; outcome: \"completed\" | \"declined\" | \"failed\" | \"aborted\" }\n\t| { kind: \"commit_follow_up\" }\n\t| { kind: \"consume_queue_item\"; queue: \"steer\" | \"followUp\"; entryId: string }\n\t| { kind: \"apply_pending_write\"; entryId: string }\n\t| { kind: \"stream_assistant\"; step: \"assistant\" | \"compaction\" | \"branch_summary\"; attempt: number }\n\t| { kind: \"execute_tool\"; toolCallId: string; toolName: string }\n\t| { kind: \"fetch_deferred\" | \"cancel_deferred\"; provider: string; id: string }\n\t| { kind: \"hook\"; name: HookName }\n\t| { kind: \"sleep\"; delayMs: number };\n\nexport type HookName =\n\t| \"before_run\"\n\t| \"before_resume\"\n\t| \"before_run_end\"\n\t| \"transform_context\"\n\t| \"before_request\"\n\t| \"before_payload\"\n\t| \"after_response\"\n\t| \"before_tool\"\n\t| \"after_tool\"\n\t| \"before_compaction\"\n\t| \"before_navigation\";\n\nexport interface Hooks {\n\ton(name: HookName, handler: (event: unknown) => unknown | Promise<unknown>, options?: { id?: string }): () => void;\n}\n\nexport interface Events {\n\ton(type: string, listener: (event: unknown) => void | Promise<void>): () => void;\n}\n\nclass UnavailableRegistry implements Hooks, Events {\n\tprivate readonly operation: string;\n\tprivate readonly isClosed: () => boolean;\n\n\tconstructor(operation: string, isClosed: () => boolean) {\n\t\tthis.operation = operation;\n\t\tthis.isClosed = isClosed;\n\t}\n\n\ton(\n\t\t_name: HookName | string,\n\t\t_handler: (event: unknown) => unknown | Promise<unknown>,\n\t\t_options?: { id?: string },\n\t): () => void {\n\t\tthrow this.isClosed() ? new HarnessClosed() : new HarnessNotImplemented(this.operation);\n\t}\n}\n\nexport type HarnessTool = AgentTool & { replay?: \"never\" | \"safe\" };\nexport type Resources = AgentHarnessResources<Skill, PromptTemplate>;\nexport type StreamOptions = SimpleStreamOptions;\nexport type StreamOptionsPatch = Partial<SimpleStreamOptions>;\nexport type EntryProjector = (entry: Entry) => AgentMessage[] | Promise<AgentMessage[]>;\n\nexport interface AgentHarnessOptions {\n\tsession: Session;\n\tmodels: Models;\n\tmodel: Model<Api>;\n\tthinkingLevel?: ThinkingLevel;\n\tactiveToolNames?: string[];\n\ttools?: HarnessTool[];\n\ttoolContext?: object | (() => object | Promise<object>);\n\tsystemPrompt?: string | (() => string | Promise<string>);\n\tresources?: Resources;\n\tstreamOptions?: StreamOptions;\n\tretry?: RetryPolicy;\n\tcompaction?: CompactionSettings;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\ttoolExecution?: \"sequential\" | \"parallel\";\n\tdrive?: \"automatic\" | \"manual\";\n\ttoProviderMessages?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\tentryProjectors?: Record<string, EntryProjector>;\n\tcontext?: TelemetryContext;\n}\n\nexport interface WatchHandle<TSnapshot> {\n\tsnapshot: TSnapshot;\n\tstart(listener: (event: unknown) => void): void;\n\tunsubscribe(): void;\n}\n\nexport interface AgentLane {\n\treadonly name: string;\n\tgetLeafId(): Promise<string | null>;\n\tprompt(text: string, images?: ImageContent[]): Promise<RunResult>;\n\tprompt(message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tskill(name: string, additionalInstructions?: string): Promise<RunResult>;\n\tpromptFromTemplate(name: string, args?: string[]): Promise<RunResult>;\n\tcompact(options?: { customInstructions?: string }): Promise<CompactionResult>;\n\tnavigateTree(targetId: string | null, options?: NavigateOptions): Promise<NavigationResult>;\n\tresume(): Promise<ResumeResult>;\n\tabort(): Promise<AbortResult>;\n\tsteer(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tsteer(message: AgentMessage): Promise<QueueResult>;\n\tfollowUp(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tfollowUp(message: AgentMessage): Promise<QueueResult>;\n\tnextRun(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tnextRun(message: AgentMessage): Promise<QueueResult>;\n\tcancelQueued(entryId: string): Promise<CancelQueuedResult>;\n\trecordUsage(usage: Usage, options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult>;\n\twaitForIdle(): Promise<void>;\n\trunWhenIdle(callback: () => void | Promise<void>): Promise<void>;\n\tpeekAction(): Promise<ActionInfo | undefined>;\n\texecuteAction(): Promise<ActionInfo | undefined>;\n\trunToCompletion(): Promise<void>;\n\tgetModel(): Promise<Model<Api>>;\n\tsetModel(model: Model<Api>): Promise<void>;\n\tgetThinkingLevel(): Promise<ThinkingLevel>;\n\tsetThinkingLevel(level: ThinkingLevel): Promise<void>;\n\tgetActiveTools(): Promise<string[]>;\n\tsetActiveTools(names: string[]): Promise<void>;\n\treadonly session: SessionTree;\n\twatch(): Promise<WatchHandle<LaneSnapshot>>;\n}\n\nexport class AgentHarness implements AgentLane {\n\treadonly name = \"main\";\n\treadonly session: SessionTree;\n\treadonly hooks: Hooks;\n\treadonly events: Events;\n\tprivate readonly durableSession: Session;\n\tprivate model: Model<Api>;\n\tprivate thinkingLevel: ThinkingLevel;\n\tprivate activeToolNames: string[];\n\tprivate tools: HarnessTool[];\n\tprivate resources: Resources;\n\tprivate streamOptions: StreamOptions;\n\tprivate retryPolicy: RetryPolicy;\n\tprivate compactionSettings: CompactionSettings;\n\tprivate steeringMode: QueueMode;\n\tprivate followUpMode: QueueMode;\n\tprivate closed = false;\n\n\tprivate constructor(options: AgentHarnessOptions) {\n\t\tthis.durableSession = options.session;\n\t\tthis.session = options.session;\n\t\tthis.hooks = new UnavailableRegistry(\"hooks.on\", () => this.closed);\n\t\tthis.events = new UnavailableRegistry(\"events.on\", () => this.closed);\n\t\tthis.model = options.model;\n\t\tthis.thinkingLevel = options.thinkingLevel ?? \"off\";\n\t\tthis.activeToolNames = [...(options.activeToolNames ?? options.tools?.map((tool) => tool.name) ?? [])];\n\t\tthis.tools = [...(options.tools ?? [])];\n\t\tthis.resources = {\n\t\t\tskills: options.resources?.skills ? [...options.resources.skills] : undefined,\n\t\t\tpromptTemplates: options.resources?.promptTemplates ? [...options.resources.promptTemplates] : undefined,\n\t\t};\n\t\tthis.streamOptions = { ...(options.streamOptions ?? {}) };\n\t\tthis.retryPolicy = options.retry ?? { enabled: false, maxRetries: 0, baseDelayMs: 1000 };\n\t\tthis.compactionSettings = options.compaction ?? {\n\t\t\tenabled: true,\n\t\t\treserveTokens: 16384,\n\t\t\tkeepRecentTokens: 20000,\n\t\t};\n\t\tthis.steeringMode = options.steeringMode ?? \"one-at-a-time\";\n\t\tthis.followUpMode = options.followUpMode ?? \"one-at-a-time\";\n\t}\n\n\tstatic async create(\n\t\toptions: AgentHarnessOptions,\n\t): Promise<{ harness: AgentHarness; suspended: SuspendedOperation[] }> {\n\t\tconst [record] = await options.session.findRecords({ limit: 1 });\n\t\tif (record !== undefined) throw new HarnessNotImplemented(\"create.restore\");\n\t\treturn { harness: new AgentHarness(options), suspended: [] };\n\t}\n\n\tprivate unavailable<T>(operation: string): Promise<T> {\n\t\treturn Promise.reject(this.closed ? new HarnessClosed() : new HarnessNotImplemented(operation));\n\t}\n\n\tasync getLeafId(): Promise<string | null> {\n\t\treturn this.durableSession.getLeafId();\n\t}\n\n\tasync prompt(_text: string, _images?: ImageContent[]): Promise<RunResult>;\n\tasync prompt(_message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tasync prompt(_input: string | AgentMessage | AgentMessage[], _images?: ImageContent[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"prompt\");\n\t}\n\tasync skill(_name: string, _additionalInstructions?: string): Promise<RunResult> {\n\t\treturn this.unavailable(\"skill\");\n\t}\n\tasync promptFromTemplate(_name: string, _args?: string[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"promptFromTemplate\");\n\t}\n\tasync compact(_options?: { customInstructions?: string }): Promise<CompactionResult> {\n\t\treturn this.unavailable(\"compact\");\n\t}\n\tasync navigateTree(_targetId: string | null, _options?: NavigateOptions): Promise<NavigationResult> {\n\t\treturn this.unavailable(\"navigateTree\");\n\t}\n\tasync resume(): Promise<ResumeResult> {\n\t\treturn this.unavailable(\"resume\");\n\t}\n\tasync abort(): Promise<AbortResult> {\n\t\treturn this.unavailable(\"abort\");\n\t}\n\tasync steer(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync steer(_message: AgentMessage): Promise<QueueResult>;\n\tasync steer(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"steer\");\n\t}\n\tasync followUp(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync followUp(_message: AgentMessage): Promise<QueueResult>;\n\tasync followUp(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"followUp\");\n\t}\n\tasync nextRun(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync nextRun(_message: AgentMessage): Promise<QueueResult>;\n\tasync nextRun(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"nextRun\");\n\t}\n\tasync cancelQueued(_entryId: string): Promise<CancelQueuedResult> {\n\t\treturn this.unavailable(\"cancelQueued\");\n\t}\n\tasync recordUsage(_usage: Usage, _options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult> {\n\t\treturn this.unavailable(\"recordUsage\");\n\t}\n\tasync waitForIdle(): Promise<void> {\n\t\treturn this.unavailable(\"waitForIdle\");\n\t}\n\tasync runWhenIdle(_callback: () => void | Promise<void>): Promise<void> {\n\t\treturn this.unavailable(\"runWhenIdle\");\n\t}\n\tasync peekAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"peekAction\");\n\t}\n\tasync executeAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"executeAction\");\n\t}\n\tasync runToCompletion(): Promise<void> {\n\t\treturn this.unavailable(\"runToCompletion\");\n\t}\n\tasync getModel(): Promise<Model<Api>> {\n\t\treturn this.model;\n\t}\n\tasync setModel(model: Model<Api>): Promise<void> {\n\t\tthis.model = model;\n\t}\n\tasync getThinkingLevel(): Promise<ThinkingLevel> {\n\t\treturn this.thinkingLevel;\n\t}\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tthis.thinkingLevel = level;\n\t}\n\tasync getActiveTools(): Promise<string[]> {\n\t\treturn [...this.activeToolNames];\n\t}\n\tasync setActiveTools(names: string[]): Promise<void> {\n\t\tthis.activeToolNames = [...names];\n\t}\n\tasync watch(): Promise<WatchHandle<LaneSnapshot>> {\n\t\treturn this.unavailable(\"watch\");\n\t}\n\n\tasync lane(_name: string): Promise<AgentLane | undefined> {\n\t\treturn this.unavailable(\"lane\");\n\t}\n\tasync createLane(_name: string, _at: string | null): Promise<CreateLaneResult> {\n\t\treturn this.unavailable(\"createLane\");\n\t}\n\tasync lanes(): Promise<LaneInfo[]> {\n\t\treturn this.unavailable(\"lanes\");\n\t}\n\tasync getTools(): Promise<HarnessTool[]> {\n\t\treturn [...this.tools];\n\t}\n\tasync setTools(tools: HarnessTool[], activeNames?: string[]): Promise<void> {\n\t\tthis.tools = [...tools];\n\t\tthis.activeToolNames = [...(activeNames ?? tools.map((tool) => tool.name))];\n\t}\n\tasync getResources(): Promise<Resources> {\n\t\treturn {\n\t\t\tskills: this.resources.skills ? [...this.resources.skills] : undefined,\n\t\t\tpromptTemplates: this.resources.promptTemplates ? [...this.resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync setResources(resources: Resources): Promise<void> {\n\t\tthis.resources = {\n\t\t\tskills: resources.skills ? [...resources.skills] : undefined,\n\t\t\tpromptTemplates: resources.promptTemplates ? [...resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync getStreamOptions(): Promise<StreamOptions> {\n\t\treturn { ...this.streamOptions };\n\t}\n\tasync setStreamOptions(options: StreamOptions): Promise<void> {\n\t\tthis.streamOptions = { ...options };\n\t}\n\tasync getRetryPolicy(): Promise<RetryPolicy> {\n\t\treturn { ...this.retryPolicy };\n\t}\n\tasync setRetryPolicy(policy: RetryPolicy): Promise<void> {\n\t\tthis.retryPolicy = { ...policy };\n\t}\n\tasync getCompactionSettings(): Promise<CompactionSettings> {\n\t\treturn { ...this.compactionSettings };\n\t}\n\tasync setCompactionSettings(settings: CompactionSettings): Promise<void> {\n\t\tthis.compactionSettings = { ...settings };\n\t}\n\tasync getSteeringMode(): Promise<QueueMode> {\n\t\treturn this.steeringMode;\n\t}\n\tasync setSteeringMode(mode: QueueMode): Promise<void> {\n\t\tthis.steeringMode = mode;\n\t}\n\tasync getFollowUpMode(): Promise<QueueMode> {\n\t\treturn this.followUpMode;\n\t}\n\tasync setFollowUpMode(mode: QueueMode): Promise<void> {\n\t\tthis.followUpMode = mode;\n\t}\n\tasync watchSession(): Promise<WatchHandle<SessionSnapshot>> {\n\t\treturn this.unavailable(\"watchSession\");\n\t}\n\tasync close(): Promise<void> {\n\t\tthis.closed = true;\n\t}\n}\n"]}
1
+ {"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonRepresentation } from \"@earendil-works/chord\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tAssistantMessageFrame,\n\tDeferredHandle,\n\tImageContent,\n\tMessage,\n\tModel,\n\tModels,\n\tRetryPolicy,\n\tToolResultMessage,\n\tUsage,\n} from \"@earendil-works/pi-ai\";\nimport type { AgentMessage, AgentToolResult, QueueMode, ThinkingLevel } from \"../types.ts\";\nimport type { BranchPreparation, BranchSummaryResult } from \"./compaction/branch-summarization.ts\";\nimport type { CompactionPreparation, CompactionSettings, CompactResult } from \"./compaction/compaction.ts\";\nimport type { Context } from \"./context.ts\";\nimport type {\n\tClosed,\n\tInvalidMessage,\n\tInvalidNavigation,\n\tLaneBusy,\n\tNoActiveOperation,\n\tNothingToCompact,\n\tNothingToResume,\n\tOperationMismatch,\n\tResult,\n\tUnknownSkill,\n\tUnknownTarget,\n\tUnknownTemplate,\n} from \"./result.ts\";\n\nexport {\n\tClosed,\n\tHarnessClosed,\n\tHarnessFault,\n\tInvalidLane,\n\tInvalidMessage,\n\tInvalidNavigation,\n\tLaneBusy,\n\tNoActiveOperation,\n\tNoActiveRun,\n\tNothingToCompact,\n\tNothingToResume,\n\tOperationMismatch,\n\tUnknownSkill,\n\tUnknownTarget,\n\tUnknownTemplate,\n} from \"./result.ts\";\nexport { SliceNotImplemented } from \"./runtime/types.ts\";\n\nimport { createAgentHarness } from \"./runtime/harness.ts\";\nimport type {\n\tBranchScan,\n\tEntry,\n\tEntryProjector,\n\tJsonValue,\n\tLaneConfiguration,\n\tOperationError,\n\tOperationResultRecord,\n\tSession,\n\tSessionStats,\n\tSettledAssistantMessage,\n\tUsageRow,\n} from \"./session/types.ts\";\nimport type {\n\tAgentHarnessResources,\n\tAgentHarnessStreamOptions,\n\tAgentHarnessStreamOptionsPatch,\n\tAgentHarnessTool,\n\tPromptTemplate,\n\tSkill,\n} from \"./types.ts\";\n\n/** Convenience-only suspended run observation, constructed when M8 exposes public drive. */\nexport interface SuspendedRun {\n\toperationId: string;\n\tstatus: \"suspended\";\n\tdeferred: DeferredHandle;\n}\n\nexport type RunResult = Result<\n\tOperationResultRecord | SuspendedRun,\n\tLaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed\n>;\nexport type CompactionResult = Result<\n\t{ compaction: OperationResultRecord; run?: OperationResultRecord | SuspendedRun },\n\tLaneBusy | NothingToCompact | Closed\n>;\nexport type NavigationResult = Result<\n\t{ navigation: OperationResultRecord; run?: OperationResultRecord | SuspendedRun },\n\tLaneBusy | InvalidNavigation | UnknownTarget | Closed\n>;\nexport type ResumeResult = Result<OperationResultRecord | SuspendedRun, NothingToResume | Closed>;\nexport type QueueResult = Result<{ entryId: string }, InvalidMessage | Closed>;\nexport type CancelQueuedResult = Result<{ kind: \"cancelled\" | \"already_consumed\" | \"not_found\" }, Closed>;\nexport type AbortResult = Result<\n\t{ operationId: string; steer: AgentMessage[]; followUp: AgentMessage[] },\n\tNoActiveOperation | Closed\n>;\nexport type RecordUsageResult = Result<{ usageId: string }, Closed>;\n\nexport interface NavigateOptions {\n\tsummarize?: boolean;\n\tlabel?: string;\n\tcustomInstructions?: string;\n}\n\nexport type OperationRequest =\n\t| { kind: \"prompt\"; operationId?: string; prompt: string; images?: ImageContent[] }\n\t| { kind: \"prompt\"; operationId?: string; prompt: AgentMessage | AgentMessage[]; images?: never }\n\t| { kind: \"skill\"; operationId?: string; name: string; additionalInstructions?: string }\n\t| { kind: \"prompt_template\"; operationId?: string; name: string; args?: string[] }\n\t| { kind: \"compaction\"; operationId?: string; customInstructions?: string }\n\t| { kind: \"navigation\"; operationId?: string; targetId: string | null; options?: NavigateOptions };\n\nexport interface OperationAdmission {\n\toperationId: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tstartedAt: number;\n}\n\nexport type OperationAdmissionError =\n\t| LaneBusy\n\t| InvalidMessage\n\t| UnknownSkill\n\t| UnknownTemplate\n\t| NothingToCompact\n\t| InvalidNavigation\n\t| UnknownTarget\n\t| Closed;\nexport type OperationAdmissionResult = Result<OperationAdmission, OperationAdmissionError>;\n\nexport interface DriveOptions {\n\toperationId: string;\n\twaitForRetry?: boolean;\n\tpollDeferred?: boolean;\n}\n\nexport interface ModelIdentity {\n\tprovider: string;\n\tmodelId: string;\n}\n\nexport type OperationStatus = \"running\" | \"open\" | \"aborting\";\n\nexport interface CurrentOperationInfo {\n\tid: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tstartedAt: number;\n\tstatus: OperationStatus;\n\tcapturedModel?: ModelIdentity;\n}\n\nexport interface LaneExecutionInfo {\n\tlane: string;\n\ttipId: string | null;\n\tconfiguredModel: ModelIdentity;\n\tcurrent: CurrentOperationInfo | null;\n\tlastOperationId: string | null;\n}\n\nexport type DriveOutcome =\n\t| { kind: \"settled\"; outcome: OperationResultRecord }\n\t| { kind: \"waiting\"; operationId: string; reason: \"retry\"; notBefore: number }\n\t| { kind: \"waiting\"; operationId: string; reason: \"deferred\"; deferred: DeferredHandle };\nexport type DriveResult = Result<DriveOutcome, OperationMismatch | Closed>;\n\nexport type AbortRequestResult = Result<\n\t{\n\t\toperationId: string;\n\t\tnewlyRequested: boolean;\n\t\tsteer: AgentMessage[];\n\t\tfollowUp: AgentMessage[];\n\t},\n\tOperationMismatch | Closed\n>;\n\nexport interface WatchHandle<T> {\n\tsnapshot: T;\n\tstart(listener: EventListener): void;\n\tresnapshot(context: Context): Promise<T>;\n\tunsubscribe(): void;\n}\n\nexport interface LaneInfo {\n\tname: string;\n\ttipId: string | null;\n\toperation: CurrentOperationInfo | null;\n}\n\nexport type LaneSnapshotTool =\n\t| {\n\t\t\tstatus: \"running\";\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: unknown;\n\t\t\tresult?: AgentToolResult<unknown>;\n\t }\n\t| {\n\t\t\tstatus: \"settled\";\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: unknown;\n\t\t\tresult: AgentToolResult<unknown>;\n\t\t\tisError: boolean;\n\t };\n\nexport interface OpenOperation {\n\tlane: string;\n\toperationId: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tstartedAt: number;\n\taborting?: true;\n}\n\nexport type LaneQueuedItem =\n\t| {\n\t\t\tentryId: string;\n\t\t\tkind: \"steer\" | \"followUp\" | \"nextRun\" | \"write\";\n\t\t\ttype: \"message\";\n\t\t\tmessage: AgentMessage;\n\t }\n\t| { entryId: string; kind: \"write\"; type: \"custom\"; customType: string; data?: JsonValue };\n\nexport interface LaneSnapshot {\n\tlane: string;\n\ttranscript: Entry[];\n\ttipId: string | null;\n\tlastResult?: OperationResultRecord;\n\tconfiguration: LaneConfiguration;\n\tstats: SessionStats;\n\toperation: null | {\n\t\tid: string;\n\t\tkind: \"run\" | \"compaction\" | \"navigation\";\n\t\tstartedAt: number;\n\t\tfromTipId: string | null;\n\t\tstatus: OperationStatus;\n\t\tretry?: { attempt: number; maxAttempts: number; nextAttemptAt: number };\n\t\tdeferred?: { handle: DeferredHandle; poll: number };\n\t\tstreamingMessage?: AssistantMessage;\n\t\trunningTools: LaneSnapshotTool[];\n\t};\n\tqueues: LaneQueuedItem[];\n\tfaulted: boolean;\n}\n\nexport interface SessionSnapshot {\n\tlanes: LaneInfo[];\n\tfaulted: boolean;\n}\n\nexport type HarnessEventPayload =\n\t| { type: \"run_start\"; runId: string; startedAt: number }\n\t| { type: \"run_resume\"; runId: string }\n\t| { type: \"run_suspend\"; runId: string; reason: \"deferred\"; deferred: DeferredHandle; poll: number }\n\t| { type: \"operation_abort\"; operationId: string; steer: AgentMessage[]; followUp: AgentMessage[] }\n\t| ({ type: \"run_end\"; runId: string; fromTipId: string | null; tipId: string | null; endedAt: number } & (\n\t\t\t| { status: \"completed\" | \"aborted\"; error?: never }\n\t\t\t| { status: \"failed\"; error: OperationError }\n\t ))\n\t| { type: \"fault\"; code: string; message: string }\n\t| ({ type: \"handler_error\"; error: string; stack?: string } & (\n\t\t\t| { kind: \"hook\"; hook: string }\n\t\t\t| { kind: \"event\"; event: string }\n\t ))\n\t| { type: \"turn_start\"; runId: string; turnId: string }\n\t| {\n\t\t\ttype: \"turn_end\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\tmessage: AssistantMessage;\n\t\t\ttoolResults: ToolResultMessage[];\n\t }\n\t| {\n\t\t\ttype: \"retry_scheduled\";\n\t\t\trunId: string;\n\t\t\tstep: string;\n\t\t\tattempt: number;\n\t\t\tmaxAttempts: number;\n\t\t\tdelayMs: number;\n\t\t\tnotBefore: number;\n\t\t\terrorMessage: string;\n\t }\n\t| { type: \"retry_start\"; runId: string; step: string; attempt: number }\n\t| {\n\t\t\ttype: \"retry_end\";\n\t\t\trunId: string;\n\t\t\tstep: string;\n\t\t\tattempt: number;\n\t\t\tsuccess: boolean;\n\t\t\tfinalError?: string;\n\t }\n\t| { type: \"message_start\"; runId?: string; message: AgentMessage }\n\t| {\n\t\t\ttype: \"message_update\";\n\t\t\trunId: string;\n\t\t\tmessage: AgentMessage;\n\t\t\tevent: AssistantMessageEvent;\n\t\t\tframe?: AssistantMessageFrame;\n\t }\n\t| { type: \"message_end\"; runId?: string; message: AgentMessage; entryId?: string }\n\t| {\n\t\t\ttype: \"tool_start\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: unknown;\n\t }\n\t| {\n\t\t\ttype: \"tool_update\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\tpartialResult: AgentToolResult<unknown>;\n\t }\n\t| {\n\t\t\ttype: \"tool_end\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\tresult: AgentToolResult<unknown>;\n\t\t\tisError: boolean;\n\t\t\tterminate: boolean;\n\t }\n\t| { type: \"entry_added\"; entry: Entry }\n\t| { type: \"queue_update\"; queues: LaneQueuedItem[] }\n\t| ({ type: \"value_update\" } & (\n\t\t\t| { value: \"session_name\"; name: string | undefined }\n\t\t\t| { value: \"entry_label\"; targetId: string; label: string | undefined }\n\t ))\n\t| ({ type: \"config_update\" } & (\n\t\t\t| {\n\t\t\t\t\tproperty: \"model\";\n\t\t\t\t\tvalue: { provider: string; modelId: string };\n\t\t\t\t\tprevious: unknown;\n\t\t\t }\n\t\t\t| { property: \"thinkingLevel\"; value: ThinkingLevel; previous: ThinkingLevel }\n\t\t\t| { property: \"activeTools\"; value: string[]; previous: string[] }\n\t\t\t| { property: \"tools\" | \"resources\" }\n\t\t\t| {\n\t\t\t\t\tproperty: \"streamOptions\";\n\t\t\t\t\tvalue: AgentHarnessStreamOptions;\n\t\t\t\t\tprevious: AgentHarnessStreamOptions;\n\t\t\t }\n\t\t\t| { property: \"retryPolicy\"; value: RetryPolicy; previous: RetryPolicy }\n\t\t\t| { property: \"compactionSettings\"; value: CompactionSettings; previous: CompactionSettings }\n\t\t\t| { property: \"steeringMode\"; value: QueueMode; previous: QueueMode }\n\t\t\t| { property: \"followUpMode\"; value: QueueMode; previous: QueueMode }\n\t ))\n\t| {\n\t\t\ttype: \"compaction_start\";\n\t\t\trunId: string;\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t\t\tstartedAt: number;\n\t }\n\t| ({ type: \"compaction_end\"; runId: string; reason: \"manual\" | \"threshold\" | \"overflow\"; endedAt: number } & (\n\t\t\t| { status: \"completed\"; entryId: string; error?: never }\n\t\t\t| { status: \"declined\" | \"aborted\"; entryId?: never; error?: never }\n\t\t\t| { status: \"failed\"; entryId?: never; error: OperationError }\n\t ))\n\t| { type: \"navigation_start\"; runId: string; targetId: string | null; startedAt: number }\n\t| ({ type: \"navigation_end\"; runId: string; fromTipId: string | null; tipId: string | null; endedAt: number } & (\n\t\t\t| { status: \"completed\" | \"declined\" | \"aborted\"; error?: never }\n\t\t\t| { status: \"failed\"; error: OperationError }\n\t ))\n\t| { type: \"lane_created\"; at: string | null }\n\t| { type: \"usage\"; lane: string; row: UsageRow; totals: Usage };\n\nexport type SpecialEventPayload = Extract<\n\tHarnessEventPayload,\n\t{ type: \"fault\" | \"value_update\" | \"usage\" | \"config_update\" | \"handler_error\" }\n>;\nexport type LaneEventPayload = Exclude<HarnessEventPayload, SpecialEventPayload>;\nexport type ConfigEventPayload = Extract<HarnessEventPayload, { type: \"config_update\" }>;\nexport type LaneConfigEventPayload = Extract<\n\tConfigEventPayload,\n\t{ property: \"model\" | \"thinkingLevel\" | \"activeTools\" }\n>;\nexport type GlobalConfigEventPayload = Exclude<ConfigEventPayload, LaneConfigEventPayload>;\nexport type HandlerErrorPayload = Extract<HarnessEventPayload, { type: \"handler_error\" }>;\n\nexport type HarnessEvent =\n\t| (LaneEventPayload & { lane: string; recovery?: true })\n\t| (LaneConfigEventPayload & { lane: string; recovery?: true })\n\t| (Extract<HarnessEventPayload, { type: \"fault\" | \"value_update\" }> & {\n\t\t\tlane?: never;\n\t\t\trecovery?: never;\n\t })\n\t| (Extract<HarnessEventPayload, { type: \"usage\" }> & { recovery?: never })\n\t| (GlobalConfigEventPayload & { lane?: never; recovery?: never })\n\t| (HandlerErrorPayload & ({ lane: string; recovery?: true } | { lane?: never; recovery?: never }));\n\ntype LaneWatchSourceEvent =\n\t| Exclude<\n\t\t\tHarnessEvent,\n\t\t\t| { type: \"handler_error\" | \"turn_start\" | \"turn_end\" | \"value_update\" | \"lane_created\" | \"message_update\" }\n\t\t\t| ({ type: \"config_update\" } & { property: string })\n\t >\n\t| Extract<HarnessEvent, { type: \"config_update\"; property: \"model\" | \"thinkingLevel\" | \"activeTools\" }>\n\t| Omit<Extract<HarnessEvent, { type: \"message_update\" }>, \"event\">;\n\n/** Strict-JSON snapshot representation published to remote transcript consumers. */\nexport type LaneTranscriptSnapshot = JsonRepresentation<LaneSnapshot>;\n/** Reducer-relevant strict-JSON Harness events published to remote transcript consumers. */\nexport type LaneWatchEvent = JsonRepresentation<LaneWatchSourceEvent>;\n\nexport type HarnessEventType = HarnessEvent[\"type\"];\nexport type EventListener<TEvent extends HarnessEvent = HarnessEvent> = (\n\tevent: TEvent,\n\tcontext: Context,\n) => void | Promise<void>;\n\nexport interface Events {\n\ton<TType extends HarnessEventType>(\n\t\ttype: TType,\n\t\tlistener: EventListener<Extract<HarnessEvent, { type: TType }>>,\n\t): () => void;\n}\n\nexport type Resources = AgentHarnessResources<Skill, PromptTemplate>;\n\ntype VoidHookResult = ReturnType<() => void>;\n\nexport interface HookMap {\n\tbefore_run: {\n\t\tevent: { prompt: AgentMessage[]; resources: Resources };\n\t\tresult: { messages?: AgentMessage[] } | undefined;\n\t};\n\tbefore_drive: {\n\t\tevent: { operation: \"run\" | \"compaction\" | \"navigation\" };\n\t\tresult: VoidHookResult;\n\t};\n\tbefore_run_end: {\n\t\tevent: { runId: string; messages: AgentMessage[] };\n\t\tresult: { followUp?: string } | undefined;\n\t};\n\ttransform_context: {\n\t\tevent: { messages: AgentMessage[]; systemPrompt: string };\n\t\tresult: { messages?: AgentMessage[]; systemPrompt?: string } | undefined;\n\t};\n\tbefore_request: {\n\t\tevent: {\n\t\t\tmodel: Model<Api>;\n\t\t\tstep: \"assistant\" | \"deferred\" | \"compaction\" | \"branch_summary\";\n\t\t\tattempt: number;\n\t\t\tstreamOptions: AgentHarnessStreamOptions;\n\t\t};\n\t\tresult: { streamOptions?: AgentHarnessStreamOptionsPatch } | undefined;\n\t};\n\tbefore_payload: {\n\t\tevent: { model: Model<Api>; payload: unknown };\n\t\tresult: { payload: unknown } | undefined;\n\t};\n\tafter_response: {\n\t\tevent: { status?: number; headers?: Record<string, string>; message: SettledAssistantMessage };\n\t\tresult: { message?: SettledAssistantMessage } | undefined;\n\t};\n\tbefore_tool: {\n\t\tevent: { toolCallId: string; toolName: string; args: Record<string, JsonValue> };\n\t\tresult: { args?: Record<string, JsonValue>; block?: { reason: string; terminate?: boolean } } | undefined;\n\t};\n\tafter_tool: {\n\t\tevent: {\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: Record<string, JsonValue>;\n\t\t\tcontent: AgentToolResult<unknown>[\"content\"];\n\t\t\tdetails?: JsonValue;\n\t\t\tisError: boolean;\n\t\t\tusage?: Usage;\n\t\t};\n\t\tresult:\n\t\t\t| {\n\t\t\t\t\tcontent?: AgentToolResult<unknown>[\"content\"];\n\t\t\t\t\tdetails?: JsonValue;\n\t\t\t\t\tisError?: boolean;\n\t\t\t\t\tusage?: Usage;\n\t\t\t\t\tterminate?: boolean;\n\t\t\t }\n\t\t\t| undefined;\n\t};\n\tbefore_compaction: {\n\t\tevent: {\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t\t\tpreparation: CompactionPreparation;\n\t\t\tcustomInstructions?: string;\n\t\t};\n\t\tresult: { decline?: boolean; compaction?: CompactResult } | undefined;\n\t};\n\tbefore_navigation: {\n\t\tevent: { targetId: string; preparation: BranchPreparation; customInstructions?: string };\n\t\tresult: { decline?: boolean; summary?: BranchSummaryResult } | undefined;\n\t};\n}\n\nexport type HookName = keyof HookMap;\nexport type HookInvocation<TName extends HookName> = HookMap[TName][\"event\"] & {\n\tlane: string;\n\trunId: string;\n};\nexport type HookHandler<TName extends HookName> = (\n\tevent: HookInvocation<TName>,\n\tcontext: Context,\n) => Promise<HookMap[TName][\"result\"]> | HookMap[TName][\"result\"];\n\nexport interface Hooks {\n\ton<TName extends HookName>(name: TName, handler: HookHandler<TName>, options?: { id?: string }): () => void;\n}\n\nexport type { EntryProjector } from \"./session/types.ts\";\n\nexport interface AgentHarnessOptions<TContext extends object | undefined = object | undefined> {\n\tsession: Session;\n\tmodels: Models;\n\tmodel: Model<Api>;\n\tthinkingLevel?: ThinkingLevel;\n\tactiveToolNames?: string[];\n\ttools?: AgentHarnessTool<TContext>[];\n\ttoolContext?: TContext | ((context: Context) => TContext | Promise<TContext>);\n\tsystemPrompt?: string | ((toolContext: TContext, context: Context) => string | Promise<string>);\n\tresources?: Resources;\n\tstreamOptions?: AgentHarnessStreamOptions;\n\tretry?: RetryPolicy;\n\tcompaction?: CompactionSettings;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\ttoolExecution?: \"sequential\" | \"parallel\";\n\ttoProviderMessages?: (messages: AgentMessage[], context: Context) => Message[] | Promise<Message[]>;\n\tentryProjectors?: Record<string, EntryProjector>;\n}\n\nexport interface AgentLane {\n\treadonly name: string;\n\tgetTipId(context: Context): Promise<string | null>;\n\tfindEntries(query: BranchScan | undefined, context: Context): Promise<Entry[]>;\n\tfindEntry(query: BranchScan | undefined, context: Context): Promise<Entry | undefined>;\n\tappendMessage(message: AgentMessage, context: Context): Promise<string>;\n\tappendCustomEntry(customType: string, data: JsonValue | undefined, context: Context): Promise<string>;\n\tgetResult(operationId: string, context: Context): Promise<OperationResultRecord | undefined>;\n\taccept(request: OperationRequest, context: Context): Promise<OperationAdmissionResult>;\n\tdrive(options: DriveOptions, context: Context): Promise<DriveResult>;\n\trequestAbort(operationId: string, context: Context): Promise<AbortRequestResult>;\n\tinspectExecution(context: Context): Promise<LaneExecutionInfo>;\n\tprompt(text: string, images: ImageContent[] | undefined, context: Context): Promise<RunResult>;\n\tprompt(message: AgentMessage | AgentMessage[], context: Context): Promise<RunResult>;\n\tskill(name: string, additionalInstructions: string | undefined, context: Context): Promise<RunResult>;\n\tpromptFromTemplate(name: string, args: string[] | undefined, context: Context): Promise<RunResult>;\n\tcompact(options: { customInstructions?: string } | undefined, context: Context): Promise<CompactionResult>;\n\tnavigateTree(\n\t\ttargetId: string | null,\n\t\toptions: NavigateOptions | undefined,\n\t\tcontext: Context,\n\t): Promise<NavigationResult>;\n\tresume(context: Context): Promise<ResumeResult>;\n\tabort(context: Context): Promise<AbortResult>;\n\tsteer(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;\n\tfollowUp(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;\n\tnextRun(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;\n\tcancelQueued(entryId: string, context: Context): Promise<CancelQueuedResult>;\n\trecordUsage(\n\t\tusage: Usage,\n\t\toptions: { entryId?: string; details?: JsonValue } | undefined,\n\t\tcontext: Context,\n\t): Promise<RecordUsageResult>;\n\twaitForIdle(context: Context): Promise<void>;\n\trunWhenIdle(callback: (context: Context) => void | Promise<void>, context: Context): Promise<void>;\n\tgetModel(context: Context): Promise<Model<Api> | undefined>;\n\tsetModel(model: ModelIdentity, context: Context): Promise<void>;\n\tgetThinkingLevel(context: Context): Promise<ThinkingLevel>;\n\tsetThinkingLevel(level: ThinkingLevel, context: Context): Promise<void>;\n\tgetActiveTools(context: Context): Promise<string[]>;\n\tsetActiveTools(names: string[], context: Context): Promise<void>;\n\twatch(context: Context): Promise<WatchHandle<LaneSnapshot>>;\n}\n\nexport interface AcquireLaneOptions {\n\tcreateAt?: string | null;\n}\n\nexport interface AgentHarness<TContext extends object | undefined = object | undefined> {\n\tlane(name: string, context: Context): Promise<AgentLane>;\n\tlane(name: string, options: AcquireLaneOptions, context: Context): Promise<AgentLane>;\n\tlanes(context: Context): Promise<LaneInfo[]>;\n\tgetName(context: Context): Promise<string | undefined>;\n\tsetName(name: string | undefined, context: Context): Promise<void>;\n\tgetLabel(targetId: string, context: Context): Promise<string | undefined>;\n\tsetLabel(targetId: string, label: string | undefined, context: Context): Promise<void>;\n\tgetTools(context: Context): Promise<AgentHarnessTool<TContext>[]>;\n\tsetTools(tools: AgentHarnessTool<TContext>[], context: Context): Promise<void>;\n\tgetResources(context: Context): Promise<Resources>;\n\tsetResources(resources: Resources, context: Context): Promise<void>;\n\tgetStreamOptions(context: Context): Promise<AgentHarnessStreamOptions>;\n\tsetStreamOptions(options: AgentHarnessStreamOptions, context: Context): Promise<void>;\n\tgetRetryPolicy(context: Context): Promise<RetryPolicy>;\n\tsetRetryPolicy(policy: RetryPolicy, context: Context): Promise<void>;\n\tgetCompactionSettings(context: Context): Promise<CompactionSettings>;\n\tsetCompactionSettings(settings: CompactionSettings, context: Context): Promise<void>;\n\tgetSteeringMode(context: Context): Promise<QueueMode>;\n\tsetSteeringMode(mode: QueueMode, context: Context): Promise<void>;\n\tgetFollowUpMode(context: Context): Promise<QueueMode>;\n\tsetFollowUpMode(mode: QueueMode, context: Context): Promise<void>;\n\twatchSession(context: Context): Promise<WatchHandle<SessionSnapshot>>;\n\treadonly hooks: Hooks;\n\treadonly events: Events;\n\tclose(context: Context): Promise<void>;\n}\n\nexport interface AgentHarnessConstructor {\n\tcreate<TContext extends object | undefined = object | undefined>(\n\t\toptions: AgentHarnessOptions<TContext>,\n\t\tcontext: Context,\n\t): Promise<{ harness: AgentHarness<TContext>; open: OpenOperation[] }>;\n}\n\n/** Runtime constructor for attaching the durable harness to one open session. */\nexport const AgentHarness = { create: createAgentHarness } satisfies AgentHarnessConstructor;\n"]}
@@ -1,252 +1,6 @@
1
- import { TaggedError } from "./result.js";
2
- export class LaneBusy extends TaggedError("LaneBusy") {
3
- }
4
- export class MissingIdentities extends TaggedError("MissingIdentities") {
5
- }
6
- export class NoActiveRun extends TaggedError("NoActiveRun") {
7
- }
8
- export class NoActiveOperation extends TaggedError("NoActiveOperation") {
9
- }
10
- export class NothingToResume extends TaggedError("NothingToResume") {
11
- }
12
- export class InvalidMessage extends TaggedError("InvalidMessage") {
13
- }
14
- export class UnknownSkill extends TaggedError("UnknownSkill") {
15
- }
16
- export class UnknownTemplate extends TaggedError("UnknownTemplate") {
17
- }
18
- export class UnknownTarget extends TaggedError("UnknownTarget") {
19
- }
20
- export class UnknownQueueItem extends TaggedError("UnknownQueueItem") {
21
- }
22
- export class LaneExists extends TaggedError("LaneExists") {
23
- }
24
- export class InvalidLane extends TaggedError("InvalidLane") {
25
- }
26
- export class NothingToCompact extends TaggedError("NothingToCompact") {
27
- }
28
- export class Closed extends TaggedError("Closed") {
29
- }
30
- export class HarnessFault extends Error {
31
- cause;
32
- constructor(message, cause) {
33
- super(message);
34
- this.name = "HarnessFault";
35
- this.cause = cause;
36
- }
37
- }
38
- export class HarnessClosed extends Error {
39
- constructor() {
40
- super("AgentHarness was closed while the operation was active");
41
- this.name = "HarnessClosed";
42
- }
43
- }
44
- export class HarnessNotImplemented extends Error {
45
- operation;
46
- constructor(operation) {
47
- super(`AgentHarness.${operation} is not implemented yet`);
48
- this.name = "HarnessNotImplemented";
49
- this.operation = operation;
50
- }
51
- }
52
- class UnavailableRegistry {
53
- operation;
54
- isClosed;
55
- constructor(operation, isClosed) {
56
- this.operation = operation;
57
- this.isClosed = isClosed;
58
- }
59
- on(_name, _handler, _options) {
60
- throw this.isClosed() ? new HarnessClosed() : new HarnessNotImplemented(this.operation);
61
- }
62
- }
63
- export class AgentHarness {
64
- name = "main";
65
- session;
66
- hooks;
67
- events;
68
- durableSession;
69
- model;
70
- thinkingLevel;
71
- activeToolNames;
72
- tools;
73
- resources;
74
- streamOptions;
75
- retryPolicy;
76
- compactionSettings;
77
- steeringMode;
78
- followUpMode;
79
- closed = false;
80
- constructor(options) {
81
- this.durableSession = options.session;
82
- this.session = options.session;
83
- this.hooks = new UnavailableRegistry("hooks.on", () => this.closed);
84
- this.events = new UnavailableRegistry("events.on", () => this.closed);
85
- this.model = options.model;
86
- this.thinkingLevel = options.thinkingLevel ?? "off";
87
- this.activeToolNames = [...(options.activeToolNames ?? options.tools?.map((tool) => tool.name) ?? [])];
88
- this.tools = [...(options.tools ?? [])];
89
- this.resources = {
90
- skills: options.resources?.skills ? [...options.resources.skills] : undefined,
91
- promptTemplates: options.resources?.promptTemplates ? [...options.resources.promptTemplates] : undefined,
92
- };
93
- this.streamOptions = { ...(options.streamOptions ?? {}) };
94
- this.retryPolicy = options.retry ?? { enabled: false, maxRetries: 0, baseDelayMs: 1000 };
95
- this.compactionSettings = options.compaction ?? {
96
- enabled: true,
97
- reserveTokens: 16384,
98
- keepRecentTokens: 20000,
99
- };
100
- this.steeringMode = options.steeringMode ?? "one-at-a-time";
101
- this.followUpMode = options.followUpMode ?? "one-at-a-time";
102
- }
103
- static async create(options) {
104
- const [record] = await options.session.findRecords({ limit: 1 });
105
- if (record !== undefined)
106
- throw new HarnessNotImplemented("create.restore");
107
- return { harness: new AgentHarness(options), suspended: [] };
108
- }
109
- unavailable(operation) {
110
- return Promise.reject(this.closed ? new HarnessClosed() : new HarnessNotImplemented(operation));
111
- }
112
- async getLeafId() {
113
- return this.durableSession.getLeafId();
114
- }
115
- async prompt(_input, _images) {
116
- return this.unavailable("prompt");
117
- }
118
- async skill(_name, _additionalInstructions) {
119
- return this.unavailable("skill");
120
- }
121
- async promptFromTemplate(_name, _args) {
122
- return this.unavailable("promptFromTemplate");
123
- }
124
- async compact(_options) {
125
- return this.unavailable("compact");
126
- }
127
- async navigateTree(_targetId, _options) {
128
- return this.unavailable("navigateTree");
129
- }
130
- async resume() {
131
- return this.unavailable("resume");
132
- }
133
- async abort() {
134
- return this.unavailable("abort");
135
- }
136
- async steer(_input, _images) {
137
- return this.unavailable("steer");
138
- }
139
- async followUp(_input, _images) {
140
- return this.unavailable("followUp");
141
- }
142
- async nextRun(_input, _images) {
143
- return this.unavailable("nextRun");
144
- }
145
- async cancelQueued(_entryId) {
146
- return this.unavailable("cancelQueued");
147
- }
148
- async recordUsage(_usage, _options) {
149
- return this.unavailable("recordUsage");
150
- }
151
- async waitForIdle() {
152
- return this.unavailable("waitForIdle");
153
- }
154
- async runWhenIdle(_callback) {
155
- return this.unavailable("runWhenIdle");
156
- }
157
- async peekAction() {
158
- return this.unavailable("peekAction");
159
- }
160
- async executeAction() {
161
- return this.unavailable("executeAction");
162
- }
163
- async runToCompletion() {
164
- return this.unavailable("runToCompletion");
165
- }
166
- async getModel() {
167
- return this.model;
168
- }
169
- async setModel(model) {
170
- this.model = model;
171
- }
172
- async getThinkingLevel() {
173
- return this.thinkingLevel;
174
- }
175
- async setThinkingLevel(level) {
176
- this.thinkingLevel = level;
177
- }
178
- async getActiveTools() {
179
- return [...this.activeToolNames];
180
- }
181
- async setActiveTools(names) {
182
- this.activeToolNames = [...names];
183
- }
184
- async watch() {
185
- return this.unavailable("watch");
186
- }
187
- async lane(_name) {
188
- return this.unavailable("lane");
189
- }
190
- async createLane(_name, _at) {
191
- return this.unavailable("createLane");
192
- }
193
- async lanes() {
194
- return this.unavailable("lanes");
195
- }
196
- async getTools() {
197
- return [...this.tools];
198
- }
199
- async setTools(tools, activeNames) {
200
- this.tools = [...tools];
201
- this.activeToolNames = [...(activeNames ?? tools.map((tool) => tool.name))];
202
- }
203
- async getResources() {
204
- return {
205
- skills: this.resources.skills ? [...this.resources.skills] : undefined,
206
- promptTemplates: this.resources.promptTemplates ? [...this.resources.promptTemplates] : undefined,
207
- };
208
- }
209
- async setResources(resources) {
210
- this.resources = {
211
- skills: resources.skills ? [...resources.skills] : undefined,
212
- promptTemplates: resources.promptTemplates ? [...resources.promptTemplates] : undefined,
213
- };
214
- }
215
- async getStreamOptions() {
216
- return { ...this.streamOptions };
217
- }
218
- async setStreamOptions(options) {
219
- this.streamOptions = { ...options };
220
- }
221
- async getRetryPolicy() {
222
- return { ...this.retryPolicy };
223
- }
224
- async setRetryPolicy(policy) {
225
- this.retryPolicy = { ...policy };
226
- }
227
- async getCompactionSettings() {
228
- return { ...this.compactionSettings };
229
- }
230
- async setCompactionSettings(settings) {
231
- this.compactionSettings = { ...settings };
232
- }
233
- async getSteeringMode() {
234
- return this.steeringMode;
235
- }
236
- async setSteeringMode(mode) {
237
- this.steeringMode = mode;
238
- }
239
- async getFollowUpMode() {
240
- return this.followUpMode;
241
- }
242
- async setFollowUpMode(mode) {
243
- this.followUpMode = mode;
244
- }
245
- async watchSession() {
246
- return this.unavailable("watchSession");
247
- }
248
- async close() {
249
- this.closed = true;
250
- }
251
- }
1
+ export { Closed, HarnessClosed, HarnessFault, InvalidLane, InvalidMessage, InvalidNavigation, LaneBusy, NoActiveOperation, NoActiveRun, NothingToCompact, NothingToResume, OperationMismatch, UnknownSkill, UnknownTarget, UnknownTemplate, } from "./result.js";
2
+ export { SliceNotImplemented } from "./runtime/types.js";
3
+ import { createAgentHarness } from "./runtime/harness.js";
4
+ /** Runtime constructor for attaching the durable harness to one open session. */
5
+ export const AgentHarness = { create: createAgentHarness };
252
6
  //# sourceMappingURL=agent-harness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tApi,\n\tAssistantMessage,\n\tDeferredHandle,\n\tImageContent,\n\tMessage,\n\tModel,\n\tModels,\n\tRetryPolicy,\n\tSimpleStreamOptions,\n\tUsage,\n} from \"@earendil-works/pi-ai\";\nimport type { AgentMessage, AgentTool, QueueMode, ThinkingLevel } from \"../types.ts\";\nimport type { CompactionSettings } from \"./compaction/compaction.ts\";\nimport { type Result as ResultValue, TaggedError } from \"./result.ts\";\nimport type {\n\tBranchSummaryEntry,\n\tCompactionEntry,\n\tEntry,\n\tJsonValue,\n\tProvisionedEntry,\n\tSession,\n\tSessionTree,\n} from \"./session/index.ts\";\nimport type { TelemetryContext } from \"./telemetry.ts\";\nimport type { AgentHarnessResources, PromptTemplate, Skill } from \"./types.ts\";\n\nexport class LaneBusy extends TaggedError(\"LaneBusy\")<{\n\tlane: string;\n\toperationId: string;\n\toperationKind: \"run\" | \"compaction\" | \"navigation\";\n\tmessage: string;\n}> {}\nexport class MissingIdentities extends TaggedError(\"MissingIdentities\")<{\n\tlane: string;\n\ttools: string[];\n\tmodels: string[];\n\tmessage: string;\n}> {}\nexport class NoActiveRun extends TaggedError(\"NoActiveRun\")<{ lane: string; message: string }> {}\nexport class NoActiveOperation extends TaggedError(\"NoActiveOperation\")<{ lane: string; message: string }> {}\nexport class NothingToResume extends TaggedError(\"NothingToResume\")<{ lane: string; message: string }> {}\nexport class InvalidMessage extends TaggedError(\"InvalidMessage\")<{ lane: string; reason: string; message: string }> {}\nexport class UnknownSkill extends TaggedError(\"UnknownSkill\")<{ name: string; message: string }> {}\nexport class UnknownTemplate extends TaggedError(\"UnknownTemplate\")<{ name: string; message: string }> {}\nexport class UnknownTarget extends TaggedError(\"UnknownTarget\")<{ targetId: string; message: string }> {}\nexport class UnknownQueueItem extends TaggedError(\"UnknownQueueItem\")<{\n\tlane: string;\n\tentryId: string;\n\tmessage: string;\n}> {}\nexport class LaneExists extends TaggedError(\"LaneExists\")<{ lane: string; message: string }> {}\nexport class InvalidLane extends TaggedError(\"InvalidLane\")<{ lane: string; reason: string; message: string }> {}\nexport class NothingToCompact extends TaggedError(\"NothingToCompact\")<{ lane: string; message: string }> {}\nexport class Closed extends TaggedError(\"Closed\")<{ message: string }> {}\n\nexport class HarnessFault extends Error {\n\treadonly cause: unknown;\n\n\tconstructor(message: string, cause: unknown) {\n\t\tsuper(message);\n\t\tthis.name = \"HarnessFault\";\n\t\tthis.cause = cause;\n\t}\n}\n\nexport class HarnessClosed extends Error {\n\tconstructor() {\n\t\tsuper(\"AgentHarness was closed while the operation was active\");\n\t\tthis.name = \"HarnessClosed\";\n\t}\n}\n\nexport class HarnessNotImplemented extends Error {\n\treadonly operation: string;\n\n\tconstructor(operation: string) {\n\t\tsuper(`AgentHarness.${operation} is not implemented yet`);\n\t\tthis.name = \"HarnessNotImplemented\";\n\t\tthis.operation = operation;\n\t}\n}\n\nexport interface OperationError {\n\tcode: string;\n\tmessage: string;\n}\n\nexport type RunOutcome =\n\t| { kind: \"completed\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"aborted\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"failed\"; leafId: string; error: OperationError; finalEntryId?: string; finalMessage?: AssistantMessage }\n\t| { kind: \"suspended\"; leafId: string; finalEntryId: string; deferred: DeferredHandle };\n\nexport type CompactionOutcome =\n\t| { kind: \"completed\"; leafId: string; entry: CompactionEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string }\n\t| { kind: \"failed\"; leafId: string; error: OperationError };\n\nexport type NavigationOutcome =\n\t| { kind: \"completed\"; newLeafId: string | null; summaryEntry?: BranchSummaryEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string | null }\n\t| { kind: \"failed\"; leafId: string | null; error: OperationError };\n\nexport type RunRejected = LaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed;\nexport type CompactionRejected = LaneBusy | NothingToCompact | Closed;\nexport type NavigationRejected = LaneBusy | UnknownTarget | Closed;\nexport type ResumeRejected = LaneBusy | NothingToResume | MissingIdentities | Closed;\nexport type QueueRejected = NoActiveRun | InvalidMessage | Closed;\nexport type CancelQueuedRejected = UnknownQueueItem | Closed;\nexport type AbortRejected = NoActiveOperation | Closed;\n\nexport type RunResult = ResultValue<{ runId: string } & RunOutcome, RunRejected>;\nexport type CompactionResult = ResultValue<{ runId: string } & CompactionOutcome, CompactionRejected>;\nexport type NavigationResult = ResultValue<{ runId: string } & NavigationOutcome, NavigationRejected>;\nexport type QueueResult = ResultValue<{ entryId: string }, QueueRejected>;\nexport type CancelQueuedResult = ResultValue<\n\t{ outcome: \"cancelled\" | \"already_consumed\" | \"already_cleared\" },\n\tCancelQueuedRejected\n>;\nexport type RecordUsageResult = ResultValue<void, Closed>;\nexport type AbortResult = ResultValue<\n\t{ runId: string; steer: AgentMessage[]; followUp: AgentMessage[] },\n\tAbortRejected\n>;\n\nexport type ResumeOutcome =\n\t| ({ operation: \"run\"; runId: string } & RunOutcome)\n\t| ({ operation: \"compaction\"; runId: string } & CompactionOutcome)\n\t| ({ operation: \"navigation\"; runId: string } & NavigationOutcome);\nexport type ResumeResult = ResultValue<ResumeOutcome, ResumeRejected>;\nexport type CreateLaneResult = ResultValue<AgentLane, LaneExists | InvalidLane | UnknownTarget | Closed>;\n\nexport interface NavigateOptions {\n\tsummarize?: boolean;\n\tcustomInstructions?: string;\n\tlabel?: string;\n}\n\nexport interface SuspendedOperation {\n\tlane: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tid: string;\n\tstartedAt: number;\n\treason: \"crash\" | \"deferred\";\n\tprompt?: AgentMessage[];\n\tdeferred?: DeferredHandle;\n\taborting?: { steer: AgentMessage[]; followUp: AgentMessage[] };\n\tmissing: { tools: string[]; models: string[] };\n}\n\nexport interface LaneInfo {\n\tname: string;\n\tleafId: string | null;\n\toperation: null | {\n\t\tid: string;\n\t\tkind: \"run\" | \"compaction\" | \"navigation\";\n\t\tstatus: \"running\" | \"suspended\" | \"aborting\";\n\t};\n}\n\nexport interface QueuedItem {\n\tentryId: string;\n\tmessage: AgentMessage;\n}\n\nexport interface LaneSnapshot {\n\tlane: string;\n\ttranscript: Entry[];\n\tleafId: string | null;\n\toperation: LaneInfo[\"operation\"];\n\tqueues: { steer: QueuedItem[]; followUp: QueuedItem[]; nextRun: QueuedItem[] };\n\tpendingWrites: { id: string; entry: ProvisionedEntry }[];\n\tfaulted: boolean;\n}\n\nexport interface SessionSnapshot {\n\tlanes: (LaneInfo & { suspended?: SuspendedOperation })[];\n\tfaulted: boolean;\n}\n\nexport type ActionInfo =\n\t| { kind: \"append_entry\"; entryType: Entry[\"type\"]; entryId: string }\n\t| { kind: \"append_record\"; recordType: string }\n\t| { kind: \"move_lane\"; to: string | null }\n\t| { kind: \"set_fact\"; fact: \"name\" | \"label\" }\n\t| { kind: \"try_finish_run\"; outcome: \"completed\" | \"failed\" }\n\t| { kind: \"finish_operation\"; outcome: \"completed\" | \"declined\" | \"failed\" | \"aborted\" }\n\t| { kind: \"commit_follow_up\" }\n\t| { kind: \"consume_queue_item\"; queue: \"steer\" | \"followUp\"; entryId: string }\n\t| { kind: \"apply_pending_write\"; entryId: string }\n\t| { kind: \"stream_assistant\"; step: \"assistant\" | \"compaction\" | \"branch_summary\"; attempt: number }\n\t| { kind: \"execute_tool\"; toolCallId: string; toolName: string }\n\t| { kind: \"fetch_deferred\" | \"cancel_deferred\"; provider: string; id: string }\n\t| { kind: \"hook\"; name: HookName }\n\t| { kind: \"sleep\"; delayMs: number };\n\nexport type HookName =\n\t| \"before_run\"\n\t| \"before_resume\"\n\t| \"before_run_end\"\n\t| \"transform_context\"\n\t| \"before_request\"\n\t| \"before_payload\"\n\t| \"after_response\"\n\t| \"before_tool\"\n\t| \"after_tool\"\n\t| \"before_compaction\"\n\t| \"before_navigation\";\n\nexport interface Hooks {\n\ton(name: HookName, handler: (event: unknown) => unknown | Promise<unknown>, options?: { id?: string }): () => void;\n}\n\nexport interface Events {\n\ton(type: string, listener: (event: unknown) => void | Promise<void>): () => void;\n}\n\nclass UnavailableRegistry implements Hooks, Events {\n\tprivate readonly operation: string;\n\tprivate readonly isClosed: () => boolean;\n\n\tconstructor(operation: string, isClosed: () => boolean) {\n\t\tthis.operation = operation;\n\t\tthis.isClosed = isClosed;\n\t}\n\n\ton(\n\t\t_name: HookName | string,\n\t\t_handler: (event: unknown) => unknown | Promise<unknown>,\n\t\t_options?: { id?: string },\n\t): () => void {\n\t\tthrow this.isClosed() ? new HarnessClosed() : new HarnessNotImplemented(this.operation);\n\t}\n}\n\nexport type HarnessTool = AgentTool & { replay?: \"never\" | \"safe\" };\nexport type Resources = AgentHarnessResources<Skill, PromptTemplate>;\nexport type StreamOptions = SimpleStreamOptions;\nexport type StreamOptionsPatch = Partial<SimpleStreamOptions>;\nexport type EntryProjector = (entry: Entry) => AgentMessage[] | Promise<AgentMessage[]>;\n\nexport interface AgentHarnessOptions {\n\tsession: Session;\n\tmodels: Models;\n\tmodel: Model<Api>;\n\tthinkingLevel?: ThinkingLevel;\n\tactiveToolNames?: string[];\n\ttools?: HarnessTool[];\n\ttoolContext?: object | (() => object | Promise<object>);\n\tsystemPrompt?: string | (() => string | Promise<string>);\n\tresources?: Resources;\n\tstreamOptions?: StreamOptions;\n\tretry?: RetryPolicy;\n\tcompaction?: CompactionSettings;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\ttoolExecution?: \"sequential\" | \"parallel\";\n\tdrive?: \"automatic\" | \"manual\";\n\ttoProviderMessages?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\tentryProjectors?: Record<string, EntryProjector>;\n\tcontext?: TelemetryContext;\n}\n\nexport interface WatchHandle<TSnapshot> {\n\tsnapshot: TSnapshot;\n\tstart(listener: (event: unknown) => void): void;\n\tunsubscribe(): void;\n}\n\nexport interface AgentLane {\n\treadonly name: string;\n\tgetLeafId(): Promise<string | null>;\n\tprompt(text: string, images?: ImageContent[]): Promise<RunResult>;\n\tprompt(message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tskill(name: string, additionalInstructions?: string): Promise<RunResult>;\n\tpromptFromTemplate(name: string, args?: string[]): Promise<RunResult>;\n\tcompact(options?: { customInstructions?: string }): Promise<CompactionResult>;\n\tnavigateTree(targetId: string | null, options?: NavigateOptions): Promise<NavigationResult>;\n\tresume(): Promise<ResumeResult>;\n\tabort(): Promise<AbortResult>;\n\tsteer(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tsteer(message: AgentMessage): Promise<QueueResult>;\n\tfollowUp(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tfollowUp(message: AgentMessage): Promise<QueueResult>;\n\tnextRun(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tnextRun(message: AgentMessage): Promise<QueueResult>;\n\tcancelQueued(entryId: string): Promise<CancelQueuedResult>;\n\trecordUsage(usage: Usage, options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult>;\n\twaitForIdle(): Promise<void>;\n\trunWhenIdle(callback: () => void | Promise<void>): Promise<void>;\n\tpeekAction(): Promise<ActionInfo | undefined>;\n\texecuteAction(): Promise<ActionInfo | undefined>;\n\trunToCompletion(): Promise<void>;\n\tgetModel(): Promise<Model<Api>>;\n\tsetModel(model: Model<Api>): Promise<void>;\n\tgetThinkingLevel(): Promise<ThinkingLevel>;\n\tsetThinkingLevel(level: ThinkingLevel): Promise<void>;\n\tgetActiveTools(): Promise<string[]>;\n\tsetActiveTools(names: string[]): Promise<void>;\n\treadonly session: SessionTree;\n\twatch(): Promise<WatchHandle<LaneSnapshot>>;\n}\n\nexport class AgentHarness implements AgentLane {\n\treadonly name = \"main\";\n\treadonly session: SessionTree;\n\treadonly hooks: Hooks;\n\treadonly events: Events;\n\tprivate readonly durableSession: Session;\n\tprivate model: Model<Api>;\n\tprivate thinkingLevel: ThinkingLevel;\n\tprivate activeToolNames: string[];\n\tprivate tools: HarnessTool[];\n\tprivate resources: Resources;\n\tprivate streamOptions: StreamOptions;\n\tprivate retryPolicy: RetryPolicy;\n\tprivate compactionSettings: CompactionSettings;\n\tprivate steeringMode: QueueMode;\n\tprivate followUpMode: QueueMode;\n\tprivate closed = false;\n\n\tprivate constructor(options: AgentHarnessOptions) {\n\t\tthis.durableSession = options.session;\n\t\tthis.session = options.session;\n\t\tthis.hooks = new UnavailableRegistry(\"hooks.on\", () => this.closed);\n\t\tthis.events = new UnavailableRegistry(\"events.on\", () => this.closed);\n\t\tthis.model = options.model;\n\t\tthis.thinkingLevel = options.thinkingLevel ?? \"off\";\n\t\tthis.activeToolNames = [...(options.activeToolNames ?? options.tools?.map((tool) => tool.name) ?? [])];\n\t\tthis.tools = [...(options.tools ?? [])];\n\t\tthis.resources = {\n\t\t\tskills: options.resources?.skills ? [...options.resources.skills] : undefined,\n\t\t\tpromptTemplates: options.resources?.promptTemplates ? [...options.resources.promptTemplates] : undefined,\n\t\t};\n\t\tthis.streamOptions = { ...(options.streamOptions ?? {}) };\n\t\tthis.retryPolicy = options.retry ?? { enabled: false, maxRetries: 0, baseDelayMs: 1000 };\n\t\tthis.compactionSettings = options.compaction ?? {\n\t\t\tenabled: true,\n\t\t\treserveTokens: 16384,\n\t\t\tkeepRecentTokens: 20000,\n\t\t};\n\t\tthis.steeringMode = options.steeringMode ?? \"one-at-a-time\";\n\t\tthis.followUpMode = options.followUpMode ?? \"one-at-a-time\";\n\t}\n\n\tstatic async create(\n\t\toptions: AgentHarnessOptions,\n\t): Promise<{ harness: AgentHarness; suspended: SuspendedOperation[] }> {\n\t\tconst [record] = await options.session.findRecords({ limit: 1 });\n\t\tif (record !== undefined) throw new HarnessNotImplemented(\"create.restore\");\n\t\treturn { harness: new AgentHarness(options), suspended: [] };\n\t}\n\n\tprivate unavailable<T>(operation: string): Promise<T> {\n\t\treturn Promise.reject(this.closed ? new HarnessClosed() : new HarnessNotImplemented(operation));\n\t}\n\n\tasync getLeafId(): Promise<string | null> {\n\t\treturn this.durableSession.getLeafId();\n\t}\n\n\tasync prompt(_text: string, _images?: ImageContent[]): Promise<RunResult>;\n\tasync prompt(_message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tasync prompt(_input: string | AgentMessage | AgentMessage[], _images?: ImageContent[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"prompt\");\n\t}\n\tasync skill(_name: string, _additionalInstructions?: string): Promise<RunResult> {\n\t\treturn this.unavailable(\"skill\");\n\t}\n\tasync promptFromTemplate(_name: string, _args?: string[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"promptFromTemplate\");\n\t}\n\tasync compact(_options?: { customInstructions?: string }): Promise<CompactionResult> {\n\t\treturn this.unavailable(\"compact\");\n\t}\n\tasync navigateTree(_targetId: string | null, _options?: NavigateOptions): Promise<NavigationResult> {\n\t\treturn this.unavailable(\"navigateTree\");\n\t}\n\tasync resume(): Promise<ResumeResult> {\n\t\treturn this.unavailable(\"resume\");\n\t}\n\tasync abort(): Promise<AbortResult> {\n\t\treturn this.unavailable(\"abort\");\n\t}\n\tasync steer(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync steer(_message: AgentMessage): Promise<QueueResult>;\n\tasync steer(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"steer\");\n\t}\n\tasync followUp(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync followUp(_message: AgentMessage): Promise<QueueResult>;\n\tasync followUp(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"followUp\");\n\t}\n\tasync nextRun(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync nextRun(_message: AgentMessage): Promise<QueueResult>;\n\tasync nextRun(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"nextRun\");\n\t}\n\tasync cancelQueued(_entryId: string): Promise<CancelQueuedResult> {\n\t\treturn this.unavailable(\"cancelQueued\");\n\t}\n\tasync recordUsage(_usage: Usage, _options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult> {\n\t\treturn this.unavailable(\"recordUsage\");\n\t}\n\tasync waitForIdle(): Promise<void> {\n\t\treturn this.unavailable(\"waitForIdle\");\n\t}\n\tasync runWhenIdle(_callback: () => void | Promise<void>): Promise<void> {\n\t\treturn this.unavailable(\"runWhenIdle\");\n\t}\n\tasync peekAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"peekAction\");\n\t}\n\tasync executeAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"executeAction\");\n\t}\n\tasync runToCompletion(): Promise<void> {\n\t\treturn this.unavailable(\"runToCompletion\");\n\t}\n\tasync getModel(): Promise<Model<Api>> {\n\t\treturn this.model;\n\t}\n\tasync setModel(model: Model<Api>): Promise<void> {\n\t\tthis.model = model;\n\t}\n\tasync getThinkingLevel(): Promise<ThinkingLevel> {\n\t\treturn this.thinkingLevel;\n\t}\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tthis.thinkingLevel = level;\n\t}\n\tasync getActiveTools(): Promise<string[]> {\n\t\treturn [...this.activeToolNames];\n\t}\n\tasync setActiveTools(names: string[]): Promise<void> {\n\t\tthis.activeToolNames = [...names];\n\t}\n\tasync watch(): Promise<WatchHandle<LaneSnapshot>> {\n\t\treturn this.unavailable(\"watch\");\n\t}\n\n\tasync lane(_name: string): Promise<AgentLane | undefined> {\n\t\treturn this.unavailable(\"lane\");\n\t}\n\tasync createLane(_name: string, _at: string | null): Promise<CreateLaneResult> {\n\t\treturn this.unavailable(\"createLane\");\n\t}\n\tasync lanes(): Promise<LaneInfo[]> {\n\t\treturn this.unavailable(\"lanes\");\n\t}\n\tasync getTools(): Promise<HarnessTool[]> {\n\t\treturn [...this.tools];\n\t}\n\tasync setTools(tools: HarnessTool[], activeNames?: string[]): Promise<void> {\n\t\tthis.tools = [...tools];\n\t\tthis.activeToolNames = [...(activeNames ?? tools.map((tool) => tool.name))];\n\t}\n\tasync getResources(): Promise<Resources> {\n\t\treturn {\n\t\t\tskills: this.resources.skills ? [...this.resources.skills] : undefined,\n\t\t\tpromptTemplates: this.resources.promptTemplates ? [...this.resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync setResources(resources: Resources): Promise<void> {\n\t\tthis.resources = {\n\t\t\tskills: resources.skills ? [...resources.skills] : undefined,\n\t\t\tpromptTemplates: resources.promptTemplates ? [...resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync getStreamOptions(): Promise<StreamOptions> {\n\t\treturn { ...this.streamOptions };\n\t}\n\tasync setStreamOptions(options: StreamOptions): Promise<void> {\n\t\tthis.streamOptions = { ...options };\n\t}\n\tasync getRetryPolicy(): Promise<RetryPolicy> {\n\t\treturn { ...this.retryPolicy };\n\t}\n\tasync setRetryPolicy(policy: RetryPolicy): Promise<void> {\n\t\tthis.retryPolicy = { ...policy };\n\t}\n\tasync getCompactionSettings(): Promise<CompactionSettings> {\n\t\treturn { ...this.compactionSettings };\n\t}\n\tasync setCompactionSettings(settings: CompactionSettings): Promise<void> {\n\t\tthis.compactionSettings = { ...settings };\n\t}\n\tasync getSteeringMode(): Promise<QueueMode> {\n\t\treturn this.steeringMode;\n\t}\n\tasync setSteeringMode(mode: QueueMode): Promise<void> {\n\t\tthis.steeringMode = mode;\n\t}\n\tasync getFollowUpMode(): Promise<QueueMode> {\n\t\treturn this.followUpMode;\n\t}\n\tasync setFollowUpMode(mode: QueueMode): Promise<void> {\n\t\tthis.followUpMode = mode;\n\t}\n\tasync watchSession(): Promise<WatchHandle<SessionSnapshot>> {\n\t\treturn this.unavailable(\"watchSession\");\n\t}\n\tasync close(): Promise<void> {\n\t\tthis.closed = true;\n\t}\n}\n"]}
1
+ {"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"AAkCA,OAAO,EACN,MAAM,EACN,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAujB1D,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAoC,CAAC","sourcesContent":["import type { JsonRepresentation } from \"@earendil-works/chord\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tAssistantMessageFrame,\n\tDeferredHandle,\n\tImageContent,\n\tMessage,\n\tModel,\n\tModels,\n\tRetryPolicy,\n\tToolResultMessage,\n\tUsage,\n} from \"@earendil-works/pi-ai\";\nimport type { AgentMessage, AgentToolResult, QueueMode, ThinkingLevel } from \"../types.ts\";\nimport type { BranchPreparation, BranchSummaryResult } from \"./compaction/branch-summarization.ts\";\nimport type { CompactionPreparation, CompactionSettings, CompactResult } from \"./compaction/compaction.ts\";\nimport type { Context } from \"./context.ts\";\nimport type {\n\tClosed,\n\tInvalidMessage,\n\tInvalidNavigation,\n\tLaneBusy,\n\tNoActiveOperation,\n\tNothingToCompact,\n\tNothingToResume,\n\tOperationMismatch,\n\tResult,\n\tUnknownSkill,\n\tUnknownTarget,\n\tUnknownTemplate,\n} from \"./result.ts\";\n\nexport {\n\tClosed,\n\tHarnessClosed,\n\tHarnessFault,\n\tInvalidLane,\n\tInvalidMessage,\n\tInvalidNavigation,\n\tLaneBusy,\n\tNoActiveOperation,\n\tNoActiveRun,\n\tNothingToCompact,\n\tNothingToResume,\n\tOperationMismatch,\n\tUnknownSkill,\n\tUnknownTarget,\n\tUnknownTemplate,\n} from \"./result.ts\";\nexport { SliceNotImplemented } from \"./runtime/types.ts\";\n\nimport { createAgentHarness } from \"./runtime/harness.ts\";\nimport type {\n\tBranchScan,\n\tEntry,\n\tEntryProjector,\n\tJsonValue,\n\tLaneConfiguration,\n\tOperationError,\n\tOperationResultRecord,\n\tSession,\n\tSessionStats,\n\tSettledAssistantMessage,\n\tUsageRow,\n} from \"./session/types.ts\";\nimport type {\n\tAgentHarnessResources,\n\tAgentHarnessStreamOptions,\n\tAgentHarnessStreamOptionsPatch,\n\tAgentHarnessTool,\n\tPromptTemplate,\n\tSkill,\n} from \"./types.ts\";\n\n/** Convenience-only suspended run observation, constructed when M8 exposes public drive. */\nexport interface SuspendedRun {\n\toperationId: string;\n\tstatus: \"suspended\";\n\tdeferred: DeferredHandle;\n}\n\nexport type RunResult = Result<\n\tOperationResultRecord | SuspendedRun,\n\tLaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed\n>;\nexport type CompactionResult = Result<\n\t{ compaction: OperationResultRecord; run?: OperationResultRecord | SuspendedRun },\n\tLaneBusy | NothingToCompact | Closed\n>;\nexport type NavigationResult = Result<\n\t{ navigation: OperationResultRecord; run?: OperationResultRecord | SuspendedRun },\n\tLaneBusy | InvalidNavigation | UnknownTarget | Closed\n>;\nexport type ResumeResult = Result<OperationResultRecord | SuspendedRun, NothingToResume | Closed>;\nexport type QueueResult = Result<{ entryId: string }, InvalidMessage | Closed>;\nexport type CancelQueuedResult = Result<{ kind: \"cancelled\" | \"already_consumed\" | \"not_found\" }, Closed>;\nexport type AbortResult = Result<\n\t{ operationId: string; steer: AgentMessage[]; followUp: AgentMessage[] },\n\tNoActiveOperation | Closed\n>;\nexport type RecordUsageResult = Result<{ usageId: string }, Closed>;\n\nexport interface NavigateOptions {\n\tsummarize?: boolean;\n\tlabel?: string;\n\tcustomInstructions?: string;\n}\n\nexport type OperationRequest =\n\t| { kind: \"prompt\"; operationId?: string; prompt: string; images?: ImageContent[] }\n\t| { kind: \"prompt\"; operationId?: string; prompt: AgentMessage | AgentMessage[]; images?: never }\n\t| { kind: \"skill\"; operationId?: string; name: string; additionalInstructions?: string }\n\t| { kind: \"prompt_template\"; operationId?: string; name: string; args?: string[] }\n\t| { kind: \"compaction\"; operationId?: string; customInstructions?: string }\n\t| { kind: \"navigation\"; operationId?: string; targetId: string | null; options?: NavigateOptions };\n\nexport interface OperationAdmission {\n\toperationId: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tstartedAt: number;\n}\n\nexport type OperationAdmissionError =\n\t| LaneBusy\n\t| InvalidMessage\n\t| UnknownSkill\n\t| UnknownTemplate\n\t| NothingToCompact\n\t| InvalidNavigation\n\t| UnknownTarget\n\t| Closed;\nexport type OperationAdmissionResult = Result<OperationAdmission, OperationAdmissionError>;\n\nexport interface DriveOptions {\n\toperationId: string;\n\twaitForRetry?: boolean;\n\tpollDeferred?: boolean;\n}\n\nexport interface ModelIdentity {\n\tprovider: string;\n\tmodelId: string;\n}\n\nexport type OperationStatus = \"running\" | \"open\" | \"aborting\";\n\nexport interface CurrentOperationInfo {\n\tid: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tstartedAt: number;\n\tstatus: OperationStatus;\n\tcapturedModel?: ModelIdentity;\n}\n\nexport interface LaneExecutionInfo {\n\tlane: string;\n\ttipId: string | null;\n\tconfiguredModel: ModelIdentity;\n\tcurrent: CurrentOperationInfo | null;\n\tlastOperationId: string | null;\n}\n\nexport type DriveOutcome =\n\t| { kind: \"settled\"; outcome: OperationResultRecord }\n\t| { kind: \"waiting\"; operationId: string; reason: \"retry\"; notBefore: number }\n\t| { kind: \"waiting\"; operationId: string; reason: \"deferred\"; deferred: DeferredHandle };\nexport type DriveResult = Result<DriveOutcome, OperationMismatch | Closed>;\n\nexport type AbortRequestResult = Result<\n\t{\n\t\toperationId: string;\n\t\tnewlyRequested: boolean;\n\t\tsteer: AgentMessage[];\n\t\tfollowUp: AgentMessage[];\n\t},\n\tOperationMismatch | Closed\n>;\n\nexport interface WatchHandle<T> {\n\tsnapshot: T;\n\tstart(listener: EventListener): void;\n\tresnapshot(context: Context): Promise<T>;\n\tunsubscribe(): void;\n}\n\nexport interface LaneInfo {\n\tname: string;\n\ttipId: string | null;\n\toperation: CurrentOperationInfo | null;\n}\n\nexport type LaneSnapshotTool =\n\t| {\n\t\t\tstatus: \"running\";\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: unknown;\n\t\t\tresult?: AgentToolResult<unknown>;\n\t }\n\t| {\n\t\t\tstatus: \"settled\";\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: unknown;\n\t\t\tresult: AgentToolResult<unknown>;\n\t\t\tisError: boolean;\n\t };\n\nexport interface OpenOperation {\n\tlane: string;\n\toperationId: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tstartedAt: number;\n\taborting?: true;\n}\n\nexport type LaneQueuedItem =\n\t| {\n\t\t\tentryId: string;\n\t\t\tkind: \"steer\" | \"followUp\" | \"nextRun\" | \"write\";\n\t\t\ttype: \"message\";\n\t\t\tmessage: AgentMessage;\n\t }\n\t| { entryId: string; kind: \"write\"; type: \"custom\"; customType: string; data?: JsonValue };\n\nexport interface LaneSnapshot {\n\tlane: string;\n\ttranscript: Entry[];\n\ttipId: string | null;\n\tlastResult?: OperationResultRecord;\n\tconfiguration: LaneConfiguration;\n\tstats: SessionStats;\n\toperation: null | {\n\t\tid: string;\n\t\tkind: \"run\" | \"compaction\" | \"navigation\";\n\t\tstartedAt: number;\n\t\tfromTipId: string | null;\n\t\tstatus: OperationStatus;\n\t\tretry?: { attempt: number; maxAttempts: number; nextAttemptAt: number };\n\t\tdeferred?: { handle: DeferredHandle; poll: number };\n\t\tstreamingMessage?: AssistantMessage;\n\t\trunningTools: LaneSnapshotTool[];\n\t};\n\tqueues: LaneQueuedItem[];\n\tfaulted: boolean;\n}\n\nexport interface SessionSnapshot {\n\tlanes: LaneInfo[];\n\tfaulted: boolean;\n}\n\nexport type HarnessEventPayload =\n\t| { type: \"run_start\"; runId: string; startedAt: number }\n\t| { type: \"run_resume\"; runId: string }\n\t| { type: \"run_suspend\"; runId: string; reason: \"deferred\"; deferred: DeferredHandle; poll: number }\n\t| { type: \"operation_abort\"; operationId: string; steer: AgentMessage[]; followUp: AgentMessage[] }\n\t| ({ type: \"run_end\"; runId: string; fromTipId: string | null; tipId: string | null; endedAt: number } & (\n\t\t\t| { status: \"completed\" | \"aborted\"; error?: never }\n\t\t\t| { status: \"failed\"; error: OperationError }\n\t ))\n\t| { type: \"fault\"; code: string; message: string }\n\t| ({ type: \"handler_error\"; error: string; stack?: string } & (\n\t\t\t| { kind: \"hook\"; hook: string }\n\t\t\t| { kind: \"event\"; event: string }\n\t ))\n\t| { type: \"turn_start\"; runId: string; turnId: string }\n\t| {\n\t\t\ttype: \"turn_end\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\tmessage: AssistantMessage;\n\t\t\ttoolResults: ToolResultMessage[];\n\t }\n\t| {\n\t\t\ttype: \"retry_scheduled\";\n\t\t\trunId: string;\n\t\t\tstep: string;\n\t\t\tattempt: number;\n\t\t\tmaxAttempts: number;\n\t\t\tdelayMs: number;\n\t\t\tnotBefore: number;\n\t\t\terrorMessage: string;\n\t }\n\t| { type: \"retry_start\"; runId: string; step: string; attempt: number }\n\t| {\n\t\t\ttype: \"retry_end\";\n\t\t\trunId: string;\n\t\t\tstep: string;\n\t\t\tattempt: number;\n\t\t\tsuccess: boolean;\n\t\t\tfinalError?: string;\n\t }\n\t| { type: \"message_start\"; runId?: string; message: AgentMessage }\n\t| {\n\t\t\ttype: \"message_update\";\n\t\t\trunId: string;\n\t\t\tmessage: AgentMessage;\n\t\t\tevent: AssistantMessageEvent;\n\t\t\tframe?: AssistantMessageFrame;\n\t }\n\t| { type: \"message_end\"; runId?: string; message: AgentMessage; entryId?: string }\n\t| {\n\t\t\ttype: \"tool_start\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: unknown;\n\t }\n\t| {\n\t\t\ttype: \"tool_update\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\tpartialResult: AgentToolResult<unknown>;\n\t }\n\t| {\n\t\t\ttype: \"tool_end\";\n\t\t\trunId: string;\n\t\t\tturnId: string;\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\tresult: AgentToolResult<unknown>;\n\t\t\tisError: boolean;\n\t\t\tterminate: boolean;\n\t }\n\t| { type: \"entry_added\"; entry: Entry }\n\t| { type: \"queue_update\"; queues: LaneQueuedItem[] }\n\t| ({ type: \"value_update\" } & (\n\t\t\t| { value: \"session_name\"; name: string | undefined }\n\t\t\t| { value: \"entry_label\"; targetId: string; label: string | undefined }\n\t ))\n\t| ({ type: \"config_update\" } & (\n\t\t\t| {\n\t\t\t\t\tproperty: \"model\";\n\t\t\t\t\tvalue: { provider: string; modelId: string };\n\t\t\t\t\tprevious: unknown;\n\t\t\t }\n\t\t\t| { property: \"thinkingLevel\"; value: ThinkingLevel; previous: ThinkingLevel }\n\t\t\t| { property: \"activeTools\"; value: string[]; previous: string[] }\n\t\t\t| { property: \"tools\" | \"resources\" }\n\t\t\t| {\n\t\t\t\t\tproperty: \"streamOptions\";\n\t\t\t\t\tvalue: AgentHarnessStreamOptions;\n\t\t\t\t\tprevious: AgentHarnessStreamOptions;\n\t\t\t }\n\t\t\t| { property: \"retryPolicy\"; value: RetryPolicy; previous: RetryPolicy }\n\t\t\t| { property: \"compactionSettings\"; value: CompactionSettings; previous: CompactionSettings }\n\t\t\t| { property: \"steeringMode\"; value: QueueMode; previous: QueueMode }\n\t\t\t| { property: \"followUpMode\"; value: QueueMode; previous: QueueMode }\n\t ))\n\t| {\n\t\t\ttype: \"compaction_start\";\n\t\t\trunId: string;\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t\t\tstartedAt: number;\n\t }\n\t| ({ type: \"compaction_end\"; runId: string; reason: \"manual\" | \"threshold\" | \"overflow\"; endedAt: number } & (\n\t\t\t| { status: \"completed\"; entryId: string; error?: never }\n\t\t\t| { status: \"declined\" | \"aborted\"; entryId?: never; error?: never }\n\t\t\t| { status: \"failed\"; entryId?: never; error: OperationError }\n\t ))\n\t| { type: \"navigation_start\"; runId: string; targetId: string | null; startedAt: number }\n\t| ({ type: \"navigation_end\"; runId: string; fromTipId: string | null; tipId: string | null; endedAt: number } & (\n\t\t\t| { status: \"completed\" | \"declined\" | \"aborted\"; error?: never }\n\t\t\t| { status: \"failed\"; error: OperationError }\n\t ))\n\t| { type: \"lane_created\"; at: string | null }\n\t| { type: \"usage\"; lane: string; row: UsageRow; totals: Usage };\n\nexport type SpecialEventPayload = Extract<\n\tHarnessEventPayload,\n\t{ type: \"fault\" | \"value_update\" | \"usage\" | \"config_update\" | \"handler_error\" }\n>;\nexport type LaneEventPayload = Exclude<HarnessEventPayload, SpecialEventPayload>;\nexport type ConfigEventPayload = Extract<HarnessEventPayload, { type: \"config_update\" }>;\nexport type LaneConfigEventPayload = Extract<\n\tConfigEventPayload,\n\t{ property: \"model\" | \"thinkingLevel\" | \"activeTools\" }\n>;\nexport type GlobalConfigEventPayload = Exclude<ConfigEventPayload, LaneConfigEventPayload>;\nexport type HandlerErrorPayload = Extract<HarnessEventPayload, { type: \"handler_error\" }>;\n\nexport type HarnessEvent =\n\t| (LaneEventPayload & { lane: string; recovery?: true })\n\t| (LaneConfigEventPayload & { lane: string; recovery?: true })\n\t| (Extract<HarnessEventPayload, { type: \"fault\" | \"value_update\" }> & {\n\t\t\tlane?: never;\n\t\t\trecovery?: never;\n\t })\n\t| (Extract<HarnessEventPayload, { type: \"usage\" }> & { recovery?: never })\n\t| (GlobalConfigEventPayload & { lane?: never; recovery?: never })\n\t| (HandlerErrorPayload & ({ lane: string; recovery?: true } | { lane?: never; recovery?: never }));\n\ntype LaneWatchSourceEvent =\n\t| Exclude<\n\t\t\tHarnessEvent,\n\t\t\t| { type: \"handler_error\" | \"turn_start\" | \"turn_end\" | \"value_update\" | \"lane_created\" | \"message_update\" }\n\t\t\t| ({ type: \"config_update\" } & { property: string })\n\t >\n\t| Extract<HarnessEvent, { type: \"config_update\"; property: \"model\" | \"thinkingLevel\" | \"activeTools\" }>\n\t| Omit<Extract<HarnessEvent, { type: \"message_update\" }>, \"event\">;\n\n/** Strict-JSON snapshot representation published to remote transcript consumers. */\nexport type LaneTranscriptSnapshot = JsonRepresentation<LaneSnapshot>;\n/** Reducer-relevant strict-JSON Harness events published to remote transcript consumers. */\nexport type LaneWatchEvent = JsonRepresentation<LaneWatchSourceEvent>;\n\nexport type HarnessEventType = HarnessEvent[\"type\"];\nexport type EventListener<TEvent extends HarnessEvent = HarnessEvent> = (\n\tevent: TEvent,\n\tcontext: Context,\n) => void | Promise<void>;\n\nexport interface Events {\n\ton<TType extends HarnessEventType>(\n\t\ttype: TType,\n\t\tlistener: EventListener<Extract<HarnessEvent, { type: TType }>>,\n\t): () => void;\n}\n\nexport type Resources = AgentHarnessResources<Skill, PromptTemplate>;\n\ntype VoidHookResult = ReturnType<() => void>;\n\nexport interface HookMap {\n\tbefore_run: {\n\t\tevent: { prompt: AgentMessage[]; resources: Resources };\n\t\tresult: { messages?: AgentMessage[] } | undefined;\n\t};\n\tbefore_drive: {\n\t\tevent: { operation: \"run\" | \"compaction\" | \"navigation\" };\n\t\tresult: VoidHookResult;\n\t};\n\tbefore_run_end: {\n\t\tevent: { runId: string; messages: AgentMessage[] };\n\t\tresult: { followUp?: string } | undefined;\n\t};\n\ttransform_context: {\n\t\tevent: { messages: AgentMessage[]; systemPrompt: string };\n\t\tresult: { messages?: AgentMessage[]; systemPrompt?: string } | undefined;\n\t};\n\tbefore_request: {\n\t\tevent: {\n\t\t\tmodel: Model<Api>;\n\t\t\tstep: \"assistant\" | \"deferred\" | \"compaction\" | \"branch_summary\";\n\t\t\tattempt: number;\n\t\t\tstreamOptions: AgentHarnessStreamOptions;\n\t\t};\n\t\tresult: { streamOptions?: AgentHarnessStreamOptionsPatch } | undefined;\n\t};\n\tbefore_payload: {\n\t\tevent: { model: Model<Api>; payload: unknown };\n\t\tresult: { payload: unknown } | undefined;\n\t};\n\tafter_response: {\n\t\tevent: { status?: number; headers?: Record<string, string>; message: SettledAssistantMessage };\n\t\tresult: { message?: SettledAssistantMessage } | undefined;\n\t};\n\tbefore_tool: {\n\t\tevent: { toolCallId: string; toolName: string; args: Record<string, JsonValue> };\n\t\tresult: { args?: Record<string, JsonValue>; block?: { reason: string; terminate?: boolean } } | undefined;\n\t};\n\tafter_tool: {\n\t\tevent: {\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: Record<string, JsonValue>;\n\t\t\tcontent: AgentToolResult<unknown>[\"content\"];\n\t\t\tdetails?: JsonValue;\n\t\t\tisError: boolean;\n\t\t\tusage?: Usage;\n\t\t};\n\t\tresult:\n\t\t\t| {\n\t\t\t\t\tcontent?: AgentToolResult<unknown>[\"content\"];\n\t\t\t\t\tdetails?: JsonValue;\n\t\t\t\t\tisError?: boolean;\n\t\t\t\t\tusage?: Usage;\n\t\t\t\t\tterminate?: boolean;\n\t\t\t }\n\t\t\t| undefined;\n\t};\n\tbefore_compaction: {\n\t\tevent: {\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t\t\tpreparation: CompactionPreparation;\n\t\t\tcustomInstructions?: string;\n\t\t};\n\t\tresult: { decline?: boolean; compaction?: CompactResult } | undefined;\n\t};\n\tbefore_navigation: {\n\t\tevent: { targetId: string; preparation: BranchPreparation; customInstructions?: string };\n\t\tresult: { decline?: boolean; summary?: BranchSummaryResult } | undefined;\n\t};\n}\n\nexport type HookName = keyof HookMap;\nexport type HookInvocation<TName extends HookName> = HookMap[TName][\"event\"] & {\n\tlane: string;\n\trunId: string;\n};\nexport type HookHandler<TName extends HookName> = (\n\tevent: HookInvocation<TName>,\n\tcontext: Context,\n) => Promise<HookMap[TName][\"result\"]> | HookMap[TName][\"result\"];\n\nexport interface Hooks {\n\ton<TName extends HookName>(name: TName, handler: HookHandler<TName>, options?: { id?: string }): () => void;\n}\n\nexport type { EntryProjector } from \"./session/types.ts\";\n\nexport interface AgentHarnessOptions<TContext extends object | undefined = object | undefined> {\n\tsession: Session;\n\tmodels: Models;\n\tmodel: Model<Api>;\n\tthinkingLevel?: ThinkingLevel;\n\tactiveToolNames?: string[];\n\ttools?: AgentHarnessTool<TContext>[];\n\ttoolContext?: TContext | ((context: Context) => TContext | Promise<TContext>);\n\tsystemPrompt?: string | ((toolContext: TContext, context: Context) => string | Promise<string>);\n\tresources?: Resources;\n\tstreamOptions?: AgentHarnessStreamOptions;\n\tretry?: RetryPolicy;\n\tcompaction?: CompactionSettings;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\ttoolExecution?: \"sequential\" | \"parallel\";\n\ttoProviderMessages?: (messages: AgentMessage[], context: Context) => Message[] | Promise<Message[]>;\n\tentryProjectors?: Record<string, EntryProjector>;\n}\n\nexport interface AgentLane {\n\treadonly name: string;\n\tgetTipId(context: Context): Promise<string | null>;\n\tfindEntries(query: BranchScan | undefined, context: Context): Promise<Entry[]>;\n\tfindEntry(query: BranchScan | undefined, context: Context): Promise<Entry | undefined>;\n\tappendMessage(message: AgentMessage, context: Context): Promise<string>;\n\tappendCustomEntry(customType: string, data: JsonValue | undefined, context: Context): Promise<string>;\n\tgetResult(operationId: string, context: Context): Promise<OperationResultRecord | undefined>;\n\taccept(request: OperationRequest, context: Context): Promise<OperationAdmissionResult>;\n\tdrive(options: DriveOptions, context: Context): Promise<DriveResult>;\n\trequestAbort(operationId: string, context: Context): Promise<AbortRequestResult>;\n\tinspectExecution(context: Context): Promise<LaneExecutionInfo>;\n\tprompt(text: string, images: ImageContent[] | undefined, context: Context): Promise<RunResult>;\n\tprompt(message: AgentMessage | AgentMessage[], context: Context): Promise<RunResult>;\n\tskill(name: string, additionalInstructions: string | undefined, context: Context): Promise<RunResult>;\n\tpromptFromTemplate(name: string, args: string[] | undefined, context: Context): Promise<RunResult>;\n\tcompact(options: { customInstructions?: string } | undefined, context: Context): Promise<CompactionResult>;\n\tnavigateTree(\n\t\ttargetId: string | null,\n\t\toptions: NavigateOptions | undefined,\n\t\tcontext: Context,\n\t): Promise<NavigationResult>;\n\tresume(context: Context): Promise<ResumeResult>;\n\tabort(context: Context): Promise<AbortResult>;\n\tsteer(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;\n\tfollowUp(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;\n\tnextRun(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;\n\tcancelQueued(entryId: string, context: Context): Promise<CancelQueuedResult>;\n\trecordUsage(\n\t\tusage: Usage,\n\t\toptions: { entryId?: string; details?: JsonValue } | undefined,\n\t\tcontext: Context,\n\t): Promise<RecordUsageResult>;\n\twaitForIdle(context: Context): Promise<void>;\n\trunWhenIdle(callback: (context: Context) => void | Promise<void>, context: Context): Promise<void>;\n\tgetModel(context: Context): Promise<Model<Api> | undefined>;\n\tsetModel(model: ModelIdentity, context: Context): Promise<void>;\n\tgetThinkingLevel(context: Context): Promise<ThinkingLevel>;\n\tsetThinkingLevel(level: ThinkingLevel, context: Context): Promise<void>;\n\tgetActiveTools(context: Context): Promise<string[]>;\n\tsetActiveTools(names: string[], context: Context): Promise<void>;\n\twatch(context: Context): Promise<WatchHandle<LaneSnapshot>>;\n}\n\nexport interface AcquireLaneOptions {\n\tcreateAt?: string | null;\n}\n\nexport interface AgentHarness<TContext extends object | undefined = object | undefined> {\n\tlane(name: string, context: Context): Promise<AgentLane>;\n\tlane(name: string, options: AcquireLaneOptions, context: Context): Promise<AgentLane>;\n\tlanes(context: Context): Promise<LaneInfo[]>;\n\tgetName(context: Context): Promise<string | undefined>;\n\tsetName(name: string | undefined, context: Context): Promise<void>;\n\tgetLabel(targetId: string, context: Context): Promise<string | undefined>;\n\tsetLabel(targetId: string, label: string | undefined, context: Context): Promise<void>;\n\tgetTools(context: Context): Promise<AgentHarnessTool<TContext>[]>;\n\tsetTools(tools: AgentHarnessTool<TContext>[], context: Context): Promise<void>;\n\tgetResources(context: Context): Promise<Resources>;\n\tsetResources(resources: Resources, context: Context): Promise<void>;\n\tgetStreamOptions(context: Context): Promise<AgentHarnessStreamOptions>;\n\tsetStreamOptions(options: AgentHarnessStreamOptions, context: Context): Promise<void>;\n\tgetRetryPolicy(context: Context): Promise<RetryPolicy>;\n\tsetRetryPolicy(policy: RetryPolicy, context: Context): Promise<void>;\n\tgetCompactionSettings(context: Context): Promise<CompactionSettings>;\n\tsetCompactionSettings(settings: CompactionSettings, context: Context): Promise<void>;\n\tgetSteeringMode(context: Context): Promise<QueueMode>;\n\tsetSteeringMode(mode: QueueMode, context: Context): Promise<void>;\n\tgetFollowUpMode(context: Context): Promise<QueueMode>;\n\tsetFollowUpMode(mode: QueueMode, context: Context): Promise<void>;\n\twatchSession(context: Context): Promise<WatchHandle<SessionSnapshot>>;\n\treadonly hooks: Hooks;\n\treadonly events: Events;\n\tclose(context: Context): Promise<void>;\n}\n\nexport interface AgentHarnessConstructor {\n\tcreate<TContext extends object | undefined = object | undefined>(\n\t\toptions: AgentHarnessOptions<TContext>,\n\t\tcontext: Context,\n\t): Promise<{ harness: AgentHarness<TContext>; open: OpenOperation[] }>;\n}\n\n/** Runtime constructor for attaching the durable harness to one open session. */\nexport const AgentHarness = { create: createAgentHarness } satisfies AgentHarnessConstructor;\n"]}