@taco-ai/pi-harness 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/LICENSE +26 -0
  2. package/LICENSE.upstream +21 -0
  3. package/README.md +170 -2
  4. package/README.zh-CN.md +165 -0
  5. package/dist/agent-loop.d.ts +49 -0
  6. package/dist/agent-loop.d.ts.map +1 -0
  7. package/dist/agent-loop.js +667 -0
  8. package/dist/agent-loop.js.map +1 -0
  9. package/dist/agent.d.ts +137 -0
  10. package/dist/agent.d.ts.map +1 -0
  11. package/dist/agent.js +437 -0
  12. package/dist/agent.js.map +1 -0
  13. package/dist/harness/agent-harness.d.ts +717 -0
  14. package/dist/harness/agent-harness.d.ts.map +1 -0
  15. package/dist/harness/agent-harness.js +6 -0
  16. package/dist/harness/agent-harness.js.map +1 -0
  17. package/dist/harness/compaction/branch-summarization.d.ts +68 -0
  18. package/dist/harness/compaction/branch-summarization.d.ts.map +1 -0
  19. package/dist/harness/compaction/branch-summarization.js +176 -0
  20. package/dist/harness/compaction/branch-summarization.js.map +1 -0
  21. package/dist/harness/compaction/compaction.d.ts +126 -0
  22. package/dist/harness/compaction/compaction.d.ts.map +1 -0
  23. package/dist/harness/compaction/compaction.js +560 -0
  24. package/dist/harness/compaction/compaction.js.map +1 -0
  25. package/dist/harness/compaction/utils.d.ts +25 -0
  26. package/dist/harness/compaction/utils.d.ts.map +1 -0
  27. package/dist/harness/compaction/utils.js +120 -0
  28. package/dist/harness/compaction/utils.js.map +1 -0
  29. package/dist/harness/config.d.ts +9 -0
  30. package/dist/harness/config.d.ts.map +1 -0
  31. package/dist/harness/config.js +35 -0
  32. package/dist/harness/config.js.map +1 -0
  33. package/dist/harness/context.d.ts +9 -0
  34. package/dist/harness/context.d.ts.map +1 -0
  35. package/dist/harness/context.js +13 -0
  36. package/dist/harness/context.js.map +1 -0
  37. package/dist/harness/env/nodejs.d.ts +43 -0
  38. package/dist/harness/env/nodejs.d.ts.map +1 -0
  39. package/dist/harness/env/nodejs.js +865 -0
  40. package/dist/harness/env/nodejs.js.map +1 -0
  41. package/dist/harness/events.d.ts +25 -0
  42. package/dist/harness/events.d.ts.map +1 -0
  43. package/dist/harness/events.js +250 -0
  44. package/dist/harness/events.js.map +1 -0
  45. package/dist/harness/execution/assistant.d.ts +42 -0
  46. package/dist/harness/execution/assistant.d.ts.map +1 -0
  47. package/dist/harness/execution/assistant.js +82 -0
  48. package/dist/harness/execution/assistant.js.map +1 -0
  49. package/dist/harness/execution/effect-gate.d.ts +22 -0
  50. package/dist/harness/execution/effect-gate.d.ts.map +1 -0
  51. package/dist/harness/execution/effect-gate.js +49 -0
  52. package/dist/harness/execution/effect-gate.js.map +1 -0
  53. package/dist/harness/execution/tools.d.ts +67 -0
  54. package/dist/harness/execution/tools.d.ts.map +1 -0
  55. package/dist/harness/execution/tools.js +119 -0
  56. package/dist/harness/execution/tools.js.map +1 -0
  57. package/dist/harness/hooks.d.ts +38 -0
  58. package/dist/harness/hooks.d.ts.map +1 -0
  59. package/dist/harness/hooks.js +406 -0
  60. package/dist/harness/hooks.js.map +1 -0
  61. package/dist/harness/messages.d.ts +51 -0
  62. package/dist/harness/messages.d.ts.map +1 -0
  63. package/dist/harness/messages.js +103 -0
  64. package/dist/harness/messages.js.map +1 -0
  65. package/dist/harness/pico3/bash.d.ts +10 -0
  66. package/dist/harness/pico3/bash.d.ts.map +1 -0
  67. package/dist/harness/pico3/bash.js +25 -0
  68. package/dist/harness/pico3/bash.js.map +1 -0
  69. package/dist/harness/pico3/bounded.d.ts +21 -0
  70. package/dist/harness/pico3/bounded.d.ts.map +1 -0
  71. package/dist/harness/pico3/bounded.js +98 -0
  72. package/dist/harness/pico3/bounded.js.map +1 -0
  73. package/dist/harness/pico3/chord.d.ts +41 -0
  74. package/dist/harness/pico3/chord.d.ts.map +1 -0
  75. package/dist/harness/pico3/chord.js +147 -0
  76. package/dist/harness/pico3/chord.js.map +1 -0
  77. package/dist/harness/pico3/context.d.ts +16 -0
  78. package/dist/harness/pico3/context.d.ts.map +1 -0
  79. package/dist/harness/pico3/context.js +88 -0
  80. package/dist/harness/pico3/context.js.map +1 -0
  81. package/dist/harness/pico3/harness.d.ts +198 -0
  82. package/dist/harness/pico3/harness.d.ts.map +1 -0
  83. package/dist/harness/pico3/harness.js +654 -0
  84. package/dist/harness/pico3/harness.js.map +1 -0
  85. package/dist/harness/pico3/hooks.d.ts +10 -0
  86. package/dist/harness/pico3/hooks.d.ts.map +1 -0
  87. package/dist/harness/pico3/hooks.js +33 -0
  88. package/dist/harness/pico3/hooks.js.map +1 -0
  89. package/dist/harness/pico3/index.d.ts +19 -0
  90. package/dist/harness/pico3/index.d.ts.map +1 -0
  91. package/dist/harness/pico3/index.js +15 -0
  92. package/dist/harness/pico3/index.js.map +1 -0
  93. package/dist/harness/pico3/jsonl.d.ts +58 -0
  94. package/dist/harness/pico3/jsonl.d.ts.map +1 -0
  95. package/dist/harness/pico3/jsonl.js +325 -0
  96. package/dist/harness/pico3/jsonl.js.map +1 -0
  97. package/dist/harness/pico3/kinds/collapse.d.ts +49 -0
  98. package/dist/harness/pico3/kinds/collapse.d.ts.map +1 -0
  99. package/dist/harness/pico3/kinds/collapse.js +191 -0
  100. package/dist/harness/pico3/kinds/collapse.js.map +1 -0
  101. package/dist/harness/pico3/kinds/entries.d.ts +78 -0
  102. package/dist/harness/pico3/kinds/entries.d.ts.map +1 -0
  103. package/dist/harness/pico3/kinds/entries.js +13 -0
  104. package/dist/harness/pico3/kinds/entries.js.map +1 -0
  105. package/dist/harness/pico3/kinds/frames.d.ts +11 -0
  106. package/dist/harness/pico3/kinds/frames.d.ts.map +1 -0
  107. package/dist/harness/pico3/kinds/frames.js +76 -0
  108. package/dist/harness/pico3/kinds/frames.js.map +1 -0
  109. package/dist/harness/pico3/kinds/generation.d.ts +94 -0
  110. package/dist/harness/pico3/kinds/generation.d.ts.map +1 -0
  111. package/dist/harness/pico3/kinds/generation.js +505 -0
  112. package/dist/harness/pico3/kinds/generation.js.map +1 -0
  113. package/dist/harness/pico3/kinds/job.d.ts +44 -0
  114. package/dist/harness/pico3/kinds/job.d.ts.map +1 -0
  115. package/dist/harness/pico3/kinds/job.js +143 -0
  116. package/dist/harness/pico3/kinds/job.js.map +1 -0
  117. package/dist/harness/pico3/kinds/plugin.d.ts +15 -0
  118. package/dist/harness/pico3/kinds/plugin.d.ts.map +1 -0
  119. package/dist/harness/pico3/kinds/plugin.js +35 -0
  120. package/dist/harness/pico3/kinds/plugin.js.map +1 -0
  121. package/dist/harness/pico3/kinds/post-tools.d.ts +22 -0
  122. package/dist/harness/pico3/kinds/post-tools.d.ts.map +1 -0
  123. package/dist/harness/pico3/kinds/post-tools.js +145 -0
  124. package/dist/harness/pico3/kinds/post-tools.js.map +1 -0
  125. package/dist/harness/pico3/kinds/task-api.d.ts +3 -0
  126. package/dist/harness/pico3/kinds/task-api.d.ts.map +1 -0
  127. package/dist/harness/pico3/kinds/task-api.js +45 -0
  128. package/dist/harness/pico3/kinds/task-api.js.map +1 -0
  129. package/dist/harness/pico3/kinds/tool.d.ts +43 -0
  130. package/dist/harness/pico3/kinds/tool.d.ts.map +1 -0
  131. package/dist/harness/pico3/kinds/tool.js +373 -0
  132. package/dist/harness/pico3/kinds/tool.js.map +1 -0
  133. package/dist/harness/pico3/legacy-tracker.d.ts +11 -0
  134. package/dist/harness/pico3/legacy-tracker.d.ts.map +1 -0
  135. package/dist/harness/pico3/legacy-tracker.js +41 -0
  136. package/dist/harness/pico3/legacy-tracker.js.map +1 -0
  137. package/dist/harness/pico3/membrane.d.ts +23 -0
  138. package/dist/harness/pico3/membrane.d.ts.map +1 -0
  139. package/dist/harness/pico3/membrane.js +141 -0
  140. package/dist/harness/pico3/membrane.js.map +1 -0
  141. package/dist/harness/pico3/memory.d.ts +53 -0
  142. package/dist/harness/pico3/memory.d.ts.map +1 -0
  143. package/dist/harness/pico3/memory.js +264 -0
  144. package/dist/harness/pico3/memory.js.map +1 -0
  145. package/dist/harness/pico3/scheduler.d.ts +49 -0
  146. package/dist/harness/pico3/scheduler.d.ts.map +1 -0
  147. package/dist/harness/pico3/scheduler.js +438 -0
  148. package/dist/harness/pico3/scheduler.js.map +1 -0
  149. package/dist/harness/pico3/session.d.ts +264 -0
  150. package/dist/harness/pico3/session.d.ts.map +1 -0
  151. package/dist/harness/pico3/session.js +1348 -0
  152. package/dist/harness/pico3/session.js.map +1 -0
  153. package/dist/harness/pico3/system.d.ts +126 -0
  154. package/dist/harness/pico3/system.d.ts.map +1 -0
  155. package/dist/harness/pico3/system.js +244 -0
  156. package/dist/harness/pico3/system.js.map +1 -0
  157. package/dist/harness/pico3/types.d.ts +973 -0
  158. package/dist/harness/pico3/types.d.ts.map +1 -0
  159. package/dist/harness/pico3/types.js +96 -0
  160. package/dist/harness/pico3/types.js.map +1 -0
  161. package/dist/harness/pico3/view.d.ts +34 -0
  162. package/dist/harness/pico3/view.d.ts.map +1 -0
  163. package/dist/harness/pico3/view.js +411 -0
  164. package/dist/harness/pico3/view.js.map +1 -0
  165. package/dist/harness/prompt-templates.d.ts +49 -0
  166. package/dist/harness/prompt-templates.d.ts.map +1 -0
  167. package/dist/harness/prompt-templates.js +225 -0
  168. package/dist/harness/prompt-templates.js.map +1 -0
  169. package/dist/harness/result.d.ts +133 -0
  170. package/dist/harness/result.d.ts.map +1 -0
  171. package/dist/harness/result.js +81 -0
  172. package/dist/harness/result.js.map +1 -0
  173. package/dist/harness/runtime/drive/boundary.d.ts +28 -0
  174. package/dist/harness/runtime/drive/boundary.d.ts.map +1 -0
  175. package/dist/harness/runtime/drive/boundary.js +173 -0
  176. package/dist/harness/runtime/drive/boundary.js.map +1 -0
  177. package/dist/harness/runtime/drive/checkpoint.d.ts +8 -0
  178. package/dist/harness/runtime/drive/checkpoint.d.ts.map +1 -0
  179. package/dist/harness/runtime/drive/checkpoint.js +133 -0
  180. package/dist/harness/runtime/drive/checkpoint.js.map +1 -0
  181. package/dist/harness/runtime/drive/deferred.d.ts +15 -0
  182. package/dist/harness/runtime/drive/deferred.d.ts.map +1 -0
  183. package/dist/harness/runtime/drive/deferred.js +179 -0
  184. package/dist/harness/runtime/drive/deferred.js.map +1 -0
  185. package/dist/harness/runtime/drive/generation.d.ts +8 -0
  186. package/dist/harness/runtime/drive/generation.d.ts.map +1 -0
  187. package/dist/harness/runtime/drive/generation.js +205 -0
  188. package/dist/harness/runtime/drive/generation.js.map +1 -0
  189. package/dist/harness/runtime/drive/reconcile.d.ts +5 -0
  190. package/dist/harness/runtime/drive/reconcile.d.ts.map +1 -0
  191. package/dist/harness/runtime/drive/reconcile.js +140 -0
  192. package/dist/harness/runtime/drive/reconcile.js.map +1 -0
  193. package/dist/harness/runtime/drive/recovery.d.ts +8 -0
  194. package/dist/harness/runtime/drive/recovery.d.ts.map +1 -0
  195. package/dist/harness/runtime/drive/recovery.js +85 -0
  196. package/dist/harness/runtime/drive/recovery.js.map +1 -0
  197. package/dist/harness/runtime/drive/response.d.ts +23 -0
  198. package/dist/harness/runtime/drive/response.d.ts.map +1 -0
  199. package/dist/harness/runtime/drive/response.js +395 -0
  200. package/dist/harness/runtime/drive/response.js.map +1 -0
  201. package/dist/harness/runtime/drive/retry.d.ts +4 -0
  202. package/dist/harness/runtime/drive/retry.d.ts.map +1 -0
  203. package/dist/harness/runtime/drive/retry.js +34 -0
  204. package/dist/harness/runtime/drive/retry.js.map +1 -0
  205. package/dist/harness/runtime/drive/structural.d.ts +32 -0
  206. package/dist/harness/runtime/drive/structural.d.ts.map +1 -0
  207. package/dist/harness/runtime/drive/structural.js +929 -0
  208. package/dist/harness/runtime/drive/structural.js.map +1 -0
  209. package/dist/harness/runtime/drive/terminal.d.ts +7 -0
  210. package/dist/harness/runtime/drive/terminal.d.ts.map +1 -0
  211. package/dist/harness/runtime/drive/terminal.js +49 -0
  212. package/dist/harness/runtime/drive/terminal.js.map +1 -0
  213. package/dist/harness/runtime/drive/tool-placement.d.ts +14 -0
  214. package/dist/harness/runtime/drive/tool-placement.d.ts.map +1 -0
  215. package/dist/harness/runtime/drive/tool-placement.js +219 -0
  216. package/dist/harness/runtime/drive/tool-placement.js.map +1 -0
  217. package/dist/harness/runtime/drive/tools.d.ts +6 -0
  218. package/dist/harness/runtime/drive/tools.d.ts.map +1 -0
  219. package/dist/harness/runtime/drive/tools.js +449 -0
  220. package/dist/harness/runtime/drive/tools.js.map +1 -0
  221. package/dist/harness/runtime/drive.d.ts +6 -0
  222. package/dist/harness/runtime/drive.d.ts.map +1 -0
  223. package/dist/harness/runtime/drive.js +93 -0
  224. package/dist/harness/runtime/drive.js.map +1 -0
  225. package/dist/harness/runtime/harness.d.ts +59 -0
  226. package/dist/harness/runtime/harness.d.ts.map +1 -0
  227. package/dist/harness/runtime/harness.js +311 -0
  228. package/dist/harness/runtime/harness.js.map +1 -0
  229. package/dist/harness/runtime/index.d.ts +2 -0
  230. package/dist/harness/runtime/index.d.ts.map +1 -0
  231. package/dist/harness/runtime/index.js +2 -0
  232. package/dist/harness/runtime/index.js.map +1 -0
  233. package/dist/harness/runtime/lane.d.ts +118 -0
  234. package/dist/harness/runtime/lane.d.ts.map +1 -0
  235. package/dist/harness/runtime/lane.js +1576 -0
  236. package/dist/harness/runtime/lane.js.map +1 -0
  237. package/dist/harness/runtime/progress.d.ts +15 -0
  238. package/dist/harness/runtime/progress.d.ts.map +1 -0
  239. package/dist/harness/runtime/progress.js +66 -0
  240. package/dist/harness/runtime/progress.js.map +1 -0
  241. package/dist/harness/runtime/reducer.d.ts +5 -0
  242. package/dist/harness/runtime/reducer.d.ts.map +1 -0
  243. package/dist/harness/runtime/reducer.js +240 -0
  244. package/dist/harness/runtime/reducer.js.map +1 -0
  245. package/dist/harness/runtime/restore.d.ts +24 -0
  246. package/dist/harness/runtime/restore.d.ts.map +1 -0
  247. package/dist/harness/runtime/restore.js +117 -0
  248. package/dist/harness/runtime/restore.js.map +1 -0
  249. package/dist/harness/runtime/transcript.d.ts +21 -0
  250. package/dist/harness/runtime/transcript.d.ts.map +1 -0
  251. package/dist/harness/runtime/transcript.js +72 -0
  252. package/dist/harness/runtime/transcript.js.map +1 -0
  253. package/dist/harness/runtime/types.d.ts +105 -0
  254. package/dist/harness/runtime/types.d.ts.map +1 -0
  255. package/dist/harness/runtime/types.js +61 -0
  256. package/dist/harness/runtime/types.js.map +1 -0
  257. package/dist/harness/session/commit.d.ts +53 -0
  258. package/dist/harness/session/commit.d.ts.map +1 -0
  259. package/dist/harness/session/commit.js +57 -0
  260. package/dist/harness/session/commit.js.map +1 -0
  261. package/dist/harness/session/context.d.ts +10 -0
  262. package/dist/harness/session/context.d.ts.map +1 -0
  263. package/dist/harness/session/context.js +49 -0
  264. package/dist/harness/session/context.js.map +1 -0
  265. package/dist/harness/session/fork-policy.d.ts +21 -0
  266. package/dist/harness/session/fork-policy.d.ts.map +1 -0
  267. package/dist/harness/session/fork-policy.js +55 -0
  268. package/dist/harness/session/fork-policy.js.map +1 -0
  269. package/dist/harness/session/fork.d.ts +16 -0
  270. package/dist/harness/session/fork.d.ts.map +1 -0
  271. package/dist/harness/session/fork.js +79 -0
  272. package/dist/harness/session/fork.js.map +1 -0
  273. package/dist/harness/session/in-memory-storage-state.d.ts +39 -0
  274. package/dist/harness/session/in-memory-storage-state.d.ts.map +1 -0
  275. package/dist/harness/session/in-memory-storage-state.js +276 -0
  276. package/dist/harness/session/in-memory-storage-state.js.map +1 -0
  277. package/dist/harness/session/index.d.ts +11 -0
  278. package/dist/harness/session/index.d.ts.map +1 -0
  279. package/dist/harness/session/index.js +9 -0
  280. package/dist/harness/session/index.js.map +1 -0
  281. package/dist/harness/session/jsonl/codec.d.ts +21 -0
  282. package/dist/harness/session/jsonl/codec.d.ts.map +1 -0
  283. package/dist/harness/session/jsonl/codec.js +45 -0
  284. package/dist/harness/session/jsonl/codec.js.map +1 -0
  285. package/dist/harness/session/jsonl/fork.d.ts +38 -0
  286. package/dist/harness/session/jsonl/fork.d.ts.map +1 -0
  287. package/dist/harness/session/jsonl/fork.js +264 -0
  288. package/dist/harness/session/jsonl/fork.js.map +1 -0
  289. package/dist/harness/session/jsonl/index.d.ts +4 -0
  290. package/dist/harness/session/jsonl/index.d.ts.map +1 -0
  291. package/dist/harness/session/jsonl/index.js +4 -0
  292. package/dist/harness/session/jsonl/index.js.map +1 -0
  293. package/dist/harness/session/jsonl/io.d.ts +14 -0
  294. package/dist/harness/session/jsonl/io.d.ts.map +1 -0
  295. package/dist/harness/session/jsonl/io.js +86 -0
  296. package/dist/harness/session/jsonl/io.js.map +1 -0
  297. package/dist/harness/session/jsonl/legacy-v3.d.ts +44 -0
  298. package/dist/harness/session/jsonl/legacy-v3.d.ts.map +1 -0
  299. package/dist/harness/session/jsonl/legacy-v3.js +462 -0
  300. package/dist/harness/session/jsonl/legacy-v3.js.map +1 -0
  301. package/dist/harness/session/jsonl/repo.d.ts +35 -0
  302. package/dist/harness/session/jsonl/repo.d.ts.map +1 -0
  303. package/dist/harness/session/jsonl/repo.js +301 -0
  304. package/dist/harness/session/jsonl/repo.js.map +1 -0
  305. package/dist/harness/session/jsonl/storage.d.ts +41 -0
  306. package/dist/harness/session/jsonl/storage.d.ts.map +1 -0
  307. package/dist/harness/session/jsonl/storage.js +200 -0
  308. package/dist/harness/session/jsonl/storage.js.map +1 -0
  309. package/dist/harness/session/jsonl/types.d.ts +39 -0
  310. package/dist/harness/session/jsonl/types.d.ts.map +1 -0
  311. package/dist/harness/session/jsonl/types.js +3 -0
  312. package/dist/harness/session/jsonl/types.js.map +1 -0
  313. package/dist/harness/session/memory.d.ts +48 -0
  314. package/dist/harness/session/memory.d.ts.map +1 -0
  315. package/dist/harness/session/memory.js +369 -0
  316. package/dist/harness/session/memory.js.map +1 -0
  317. package/dist/harness/session/mutation-line.d.ts +8 -0
  318. package/dist/harness/session/mutation-line.d.ts.map +1 -0
  319. package/dist/harness/session/mutation-line.js +21 -0
  320. package/dist/harness/session/mutation-line.js.map +1 -0
  321. package/dist/harness/session/session.d.ts +82 -0
  322. package/dist/harness/session/session.d.ts.map +1 -0
  323. package/dist/harness/session/session.js +361 -0
  324. package/dist/harness/session/session.js.map +1 -0
  325. package/dist/harness/session/testing/benchmark/datasets.d.ts +12 -0
  326. package/dist/harness/session/testing/benchmark/datasets.d.ts.map +1 -0
  327. package/dist/harness/session/testing/benchmark/datasets.js +24 -0
  328. package/dist/harness/session/testing/benchmark/datasets.js.map +1 -0
  329. package/dist/harness/session/testing/benchmark/session-repo.d.ts +42 -0
  330. package/dist/harness/session/testing/benchmark/session-repo.d.ts.map +1 -0
  331. package/dist/harness/session/testing/benchmark/session-repo.js +127 -0
  332. package/dist/harness/session/testing/benchmark/session-repo.js.map +1 -0
  333. package/dist/harness/session/testing/benchmark/storage.d.ts +25 -0
  334. package/dist/harness/session/testing/benchmark/storage.d.ts.map +1 -0
  335. package/dist/harness/session/testing/benchmark/storage.js +114 -0
  336. package/dist/harness/session/testing/benchmark/storage.js.map +1 -0
  337. package/dist/harness/session/testing/conformance/session-repo.d.ts +23 -0
  338. package/dist/harness/session/testing/conformance/session-repo.d.ts.map +1 -0
  339. package/dist/harness/session/testing/conformance/session-repo.js +809 -0
  340. package/dist/harness/session/testing/conformance/session-repo.js.map +1 -0
  341. package/dist/harness/session/testing/conformance/storage.d.ts +4 -0
  342. package/dist/harness/session/testing/conformance/storage.d.ts.map +1 -0
  343. package/dist/harness/session/testing/conformance/storage.js +600 -0
  344. package/dist/harness/session/testing/conformance/storage.js.map +1 -0
  345. package/dist/harness/session/testing/gating-storage.d.ts +26 -0
  346. package/dist/harness/session/testing/gating-storage.d.ts.map +1 -0
  347. package/dist/harness/session/testing/gating-storage.js +100 -0
  348. package/dist/harness/session/testing/gating-storage.js.map +1 -0
  349. package/dist/harness/session/testing/index.d.ts +10 -0
  350. package/dist/harness/session/testing/index.d.ts.map +1 -0
  351. package/dist/harness/session/testing/index.js +9 -0
  352. package/dist/harness/session/testing/index.js.map +1 -0
  353. package/dist/harness/session/testing/instrumented-storage.d.ts +11 -0
  354. package/dist/harness/session/testing/instrumented-storage.d.ts.map +1 -0
  355. package/dist/harness/session/testing/instrumented-storage.js +16 -0
  356. package/dist/harness/session/testing/instrumented-storage.js.map +1 -0
  357. package/dist/harness/session/testing/storage-decorator.d.ts +20 -0
  358. package/dist/harness/session/testing/storage-decorator.d.ts.map +1 -0
  359. package/dist/harness/session/testing/storage-decorator.js +41 -0
  360. package/dist/harness/session/testing/storage-decorator.js.map +1 -0
  361. package/dist/harness/session/testing/types.d.ts +12 -0
  362. package/dist/harness/session/testing/types.d.ts.map +1 -0
  363. package/dist/harness/session/testing/types.js +2 -0
  364. package/dist/harness/session/testing/types.js.map +1 -0
  365. package/dist/harness/session/types.d.ts +512 -0
  366. package/dist/harness/session/types.d.ts.map +1 -0
  367. package/dist/harness/session/types.js +9 -0
  368. package/dist/harness/session/types.js.map +1 -0
  369. package/dist/harness/session/values.d.ts +95 -0
  370. package/dist/harness/session/values.d.ts.map +1 -0
  371. package/dist/harness/session/values.js +81 -0
  372. package/dist/harness/session/values.js.map +1 -0
  373. package/dist/harness/skills.d.ts +46 -0
  374. package/dist/harness/skills.d.ts.map +1 -0
  375. package/dist/harness/skills.js +326 -0
  376. package/dist/harness/skills.js.map +1 -0
  377. package/dist/harness/system-prompt.d.ts +3 -0
  378. package/dist/harness/system-prompt.d.ts.map +1 -0
  379. package/dist/harness/system-prompt.js +30 -0
  380. package/dist/harness/system-prompt.js.map +1 -0
  381. package/dist/harness/telemetry.d.ts +1242 -0
  382. package/dist/harness/telemetry.d.ts.map +1 -0
  383. package/dist/harness/telemetry.js +527 -0
  384. package/dist/harness/telemetry.js.map +1 -0
  385. package/dist/harness/tools/bash.d.ts +27 -0
  386. package/dist/harness/tools/bash.d.ts.map +1 -0
  387. package/dist/harness/tools/bash.js +105 -0
  388. package/dist/harness/tools/bash.js.map +1 -0
  389. package/dist/harness/tools/edit-diff.d.ts +89 -0
  390. package/dist/harness/tools/edit-diff.d.ts.map +1 -0
  391. package/dist/harness/tools/edit-diff.js +386 -0
  392. package/dist/harness/tools/edit-diff.js.map +1 -0
  393. package/dist/harness/tools/edit.d.ts +19 -0
  394. package/dist/harness/tools/edit.d.ts.map +1 -0
  395. package/dist/harness/tools/edit.js +108 -0
  396. package/dist/harness/tools/edit.js.map +1 -0
  397. package/dist/harness/tools/file-mutation-queue.d.ts +5 -0
  398. package/dist/harness/tools/file-mutation-queue.d.ts.map +1 -0
  399. package/dist/harness/tools/file-mutation-queue.js +46 -0
  400. package/dist/harness/tools/file-mutation-queue.js.map +1 -0
  401. package/dist/harness/tools/image.d.ts +3 -0
  402. package/dist/harness/tools/image.d.ts.map +1 -0
  403. package/dist/harness/tools/image.js +106 -0
  404. package/dist/harness/tools/image.js.map +1 -0
  405. package/dist/harness/tools/index.d.ts +6 -0
  406. package/dist/harness/tools/index.d.ts.map +1 -0
  407. package/dist/harness/tools/index.js +5 -0
  408. package/dist/harness/tools/index.js.map +1 -0
  409. package/dist/harness/tools/path-utils.d.ts +5 -0
  410. package/dist/harness/tools/path-utils.d.ts.map +1 -0
  411. package/dist/harness/tools/path-utils.js +26 -0
  412. package/dist/harness/tools/path-utils.js.map +1 -0
  413. package/dist/harness/tools/read.d.ts +35 -0
  414. package/dist/harness/tools/read.d.ts.map +1 -0
  415. package/dist/harness/tools/read.js +108 -0
  416. package/dist/harness/tools/read.js.map +1 -0
  417. package/dist/harness/tools/tool-context.d.ts +6 -0
  418. package/dist/harness/tools/tool-context.d.ts.map +1 -0
  419. package/dist/harness/tools/tool-context.js +2 -0
  420. package/dist/harness/tools/tool-context.js.map +1 -0
  421. package/dist/harness/tools/write.d.ts +11 -0
  422. package/dist/harness/tools/write.d.ts.map +1 -0
  423. package/dist/harness/tools/write.js +31 -0
  424. package/dist/harness/tools/write.js.map +1 -0
  425. package/dist/harness/types.d.ts +305 -0
  426. package/dist/harness/types.d.ts.map +1 -0
  427. package/dist/harness/types.js +75 -0
  428. package/dist/harness/types.js.map +1 -0
  429. package/dist/harness/utils/adaptive-publisher.d.ts +24 -0
  430. package/dist/harness/utils/adaptive-publisher.d.ts.map +1 -0
  431. package/dist/harness/utils/adaptive-publisher.js +79 -0
  432. package/dist/harness/utils/adaptive-publisher.js.map +1 -0
  433. package/dist/harness/utils/output-capture.d.ts +31 -0
  434. package/dist/harness/utils/output-capture.d.ts.map +1 -0
  435. package/dist/harness/utils/output-capture.js +217 -0
  436. package/dist/harness/utils/output-capture.js.map +1 -0
  437. package/dist/harness/utils/shell-output.d.ts +29 -0
  438. package/dist/harness/utils/shell-output.d.ts.map +1 -0
  439. package/dist/harness/utils/shell-output.js +71 -0
  440. package/dist/harness/utils/shell-output.js.map +1 -0
  441. package/dist/harness/utils/truncate.d.ts +71 -0
  442. package/dist/harness/utils/truncate.d.ts.map +1 -0
  443. package/dist/harness/utils/truncate.js +296 -0
  444. package/dist/harness/utils/truncate.js.map +1 -0
  445. package/dist/harness/utils/usage.d.ts +4 -0
  446. package/dist/harness/utils/usage.d.ts.map +1 -0
  447. package/dist/harness/utils/usage.js +33 -0
  448. package/dist/harness/utils/usage.js.map +1 -0
  449. package/dist/index.d.ts +28 -0
  450. package/dist/index.d.ts.map +1 -0
  451. package/dist/index.js +26 -0
  452. package/dist/index.js.map +1 -0
  453. package/dist/node.d.ts +3 -0
  454. package/dist/node.d.ts.map +1 -0
  455. package/dist/node.js +3 -0
  456. package/dist/node.js.map +1 -0
  457. package/dist/proxy.d.ts +72 -0
  458. package/dist/proxy.d.ts.map +1 -0
  459. package/dist/proxy.js +310 -0
  460. package/dist/proxy.js.map +1 -0
  461. package/dist/search/index.d.ts +29 -0
  462. package/dist/search/index.d.ts.map +1 -0
  463. package/dist/search/index.js +2 -0
  464. package/dist/search/index.js.map +1 -0
  465. package/dist/shims/assistant-message-frame.d.ts +101 -0
  466. package/dist/shims/assistant-message-frame.d.ts.map +1 -0
  467. package/dist/shims/assistant-message-frame.js +425 -0
  468. package/dist/shims/assistant-message-frame.js.map +1 -0
  469. package/dist/shims/define-service.d.ts +46 -0
  470. package/dist/shims/define-service.d.ts.map +1 -0
  471. package/dist/shims/define-service.js +39 -0
  472. package/dist/shims/define-service.js.map +1 -0
  473. package/dist/stream-fn.d.ts +10 -0
  474. package/dist/stream-fn.d.ts.map +1 -0
  475. package/dist/stream-fn.js +17 -0
  476. package/dist/stream-fn.js.map +1 -0
  477. package/dist/types.d.ts +489 -0
  478. package/dist/types.d.ts.map +1 -0
  479. package/dist/types.js +2 -0
  480. package/dist/types.js.map +1 -0
  481. package/docs/telemetry-schema.md +383 -0
  482. package/package.json +99 -5
@@ -0,0 +1,717 @@
1
+ import type { JsonRepresentation } from "@earendil-works/chord";
2
+ import type { Api, AssistantMessage, AssistantMessageEvent, DeferredHandle, ImageContent, Message, Model, Models, RetryPolicy, ToolResultMessage, Usage } from "@earendil-works/pi-ai";
3
+ import type { AssistantMessageFrame } from "../shims/assistant-message-frame.ts";
4
+ import type { AgentMessage, AgentToolResult, QueueMode, ThinkingLevel } from "../types.ts";
5
+ import type { BranchPreparation, BranchSummaryResult } from "./compaction/branch-summarization.ts";
6
+ import type { CompactionPreparation, CompactionSettings, CompactResult } from "./compaction/compaction.ts";
7
+ import type { Context } from "./context.ts";
8
+ import type { Closed, InvalidMessage, InvalidNavigation, LaneBusy, NoActiveOperation, NothingToCompact, NothingToResume, OperationMismatch, Result, UnknownSkill, UnknownTarget, UnknownTemplate } from "./result.ts";
9
+ export { Closed, HarnessClosed, HarnessFault, InvalidLane, InvalidMessage, InvalidNavigation, LaneBusy, NoActiveOperation, NoActiveRun, NothingToCompact, NothingToResume, OperationMismatch, UnknownSkill, UnknownTarget, UnknownTemplate, } from "./result.ts";
10
+ export { SliceNotImplemented } from "./runtime/types.ts";
11
+ import { createAgentHarness } from "./runtime/harness.ts";
12
+ import type { BranchScan, Entry, EntryProjector, JsonValue, LaneConfiguration, OperationError, OperationResultRecord, Session, SessionStats, SettledAssistantMessage, UsageRow } from "./session/types.ts";
13
+ import type { AgentHarnessResources, AgentHarnessStreamOptions, AgentHarnessStreamOptionsPatch, AgentHarnessTool, PromptTemplate, Skill } from "./types.ts";
14
+ /** Convenience-only suspended run observation, constructed when M8 exposes public drive. */
15
+ export interface SuspendedRun {
16
+ operationId: string;
17
+ status: "suspended";
18
+ deferred: DeferredHandle;
19
+ }
20
+ export type RunResult = Result<OperationResultRecord | SuspendedRun, LaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed>;
21
+ export type CompactionResult = Result<{
22
+ compaction: OperationResultRecord;
23
+ run?: OperationResultRecord | SuspendedRun;
24
+ }, LaneBusy | NothingToCompact | Closed>;
25
+ export type NavigationResult = Result<{
26
+ navigation: OperationResultRecord;
27
+ run?: OperationResultRecord | SuspendedRun;
28
+ }, LaneBusy | InvalidNavigation | UnknownTarget | Closed>;
29
+ export type ResumeResult = Result<OperationResultRecord | SuspendedRun, NothingToResume | Closed>;
30
+ export type QueueResult = Result<{
31
+ entryId: string;
32
+ }, InvalidMessage | Closed>;
33
+ export type CancelQueuedResult = Result<{
34
+ kind: "cancelled" | "already_consumed" | "not_found";
35
+ }, Closed>;
36
+ export type AbortResult = Result<{
37
+ operationId: string;
38
+ steer: AgentMessage[];
39
+ followUp: AgentMessage[];
40
+ }, NoActiveOperation | Closed>;
41
+ export type RecordUsageResult = Result<{
42
+ usageId: string;
43
+ }, Closed>;
44
+ export interface NavigateOptions {
45
+ summarize?: boolean;
46
+ label?: string;
47
+ customInstructions?: string;
48
+ }
49
+ export type OperationRequest = {
50
+ kind: "prompt";
51
+ operationId?: string;
52
+ prompt: string;
53
+ images?: ImageContent[];
54
+ } | {
55
+ kind: "prompt";
56
+ operationId?: string;
57
+ prompt: AgentMessage | AgentMessage[];
58
+ images?: never;
59
+ } | {
60
+ kind: "skill";
61
+ operationId?: string;
62
+ name: string;
63
+ additionalInstructions?: string;
64
+ } | {
65
+ kind: "prompt_template";
66
+ operationId?: string;
67
+ name: string;
68
+ args?: string[];
69
+ } | {
70
+ kind: "compaction";
71
+ operationId?: string;
72
+ customInstructions?: string;
73
+ } | {
74
+ kind: "navigation";
75
+ operationId?: string;
76
+ targetId: string | null;
77
+ options?: NavigateOptions;
78
+ };
79
+ export interface OperationAdmission {
80
+ operationId: string;
81
+ kind: "run" | "compaction" | "navigation";
82
+ startedAt: number;
83
+ }
84
+ export type OperationAdmissionError = LaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | NothingToCompact | InvalidNavigation | UnknownTarget | Closed;
85
+ export type OperationAdmissionResult = Result<OperationAdmission, OperationAdmissionError>;
86
+ export interface DriveOptions {
87
+ operationId: string;
88
+ waitForRetry?: boolean;
89
+ pollDeferred?: boolean;
90
+ }
91
+ export interface ModelIdentity {
92
+ provider: string;
93
+ modelId: string;
94
+ }
95
+ export type OperationStatus = "running" | "open" | "aborting";
96
+ export interface CurrentOperationInfo {
97
+ id: string;
98
+ kind: "run" | "compaction" | "navigation";
99
+ startedAt: number;
100
+ status: OperationStatus;
101
+ capturedModel?: ModelIdentity;
102
+ }
103
+ export interface LaneExecutionInfo {
104
+ lane: string;
105
+ tipId: string | null;
106
+ configuredModel: ModelIdentity;
107
+ current: CurrentOperationInfo | null;
108
+ lastOperationId: string | null;
109
+ }
110
+ export type DriveOutcome = {
111
+ kind: "settled";
112
+ outcome: OperationResultRecord;
113
+ } | {
114
+ kind: "waiting";
115
+ operationId: string;
116
+ reason: "retry";
117
+ notBefore: number;
118
+ } | {
119
+ kind: "waiting";
120
+ operationId: string;
121
+ reason: "deferred";
122
+ deferred: DeferredHandle;
123
+ };
124
+ export type DriveResult = Result<DriveOutcome, OperationMismatch | Closed>;
125
+ export type AbortRequestResult = Result<{
126
+ operationId: string;
127
+ newlyRequested: boolean;
128
+ steer: AgentMessage[];
129
+ followUp: AgentMessage[];
130
+ }, OperationMismatch | Closed>;
131
+ export interface WatchHandle<T> {
132
+ snapshot: T;
133
+ start(listener: EventListener): void;
134
+ resnapshot(context: Context): Promise<T>;
135
+ unsubscribe(): void;
136
+ }
137
+ export interface LaneInfo {
138
+ name: string;
139
+ tipId: string | null;
140
+ operation: CurrentOperationInfo | null;
141
+ }
142
+ export type LaneSnapshotTool = {
143
+ status: "running";
144
+ toolCallId: string;
145
+ toolName: string;
146
+ args: unknown;
147
+ result?: AgentToolResult<unknown>;
148
+ } | {
149
+ status: "settled";
150
+ toolCallId: string;
151
+ toolName: string;
152
+ args: unknown;
153
+ result: AgentToolResult<unknown>;
154
+ isError: boolean;
155
+ };
156
+ export interface OpenOperation {
157
+ lane: string;
158
+ operationId: string;
159
+ kind: "run" | "compaction" | "navigation";
160
+ startedAt: number;
161
+ aborting?: true;
162
+ }
163
+ export type LaneQueuedItem = {
164
+ entryId: string;
165
+ kind: "steer" | "followUp" | "nextRun" | "write";
166
+ type: "message";
167
+ message: AgentMessage;
168
+ } | {
169
+ entryId: string;
170
+ kind: "write";
171
+ type: "custom";
172
+ customType: string;
173
+ data?: JsonValue;
174
+ };
175
+ export interface LaneSnapshot {
176
+ lane: string;
177
+ transcript: Entry[];
178
+ tipId: string | null;
179
+ lastResult?: OperationResultRecord;
180
+ configuration: LaneConfiguration;
181
+ stats: SessionStats;
182
+ operation: null | {
183
+ id: string;
184
+ kind: "run" | "compaction" | "navigation";
185
+ startedAt: number;
186
+ fromTipId: string | null;
187
+ status: OperationStatus;
188
+ retry?: {
189
+ attempt: number;
190
+ maxAttempts: number;
191
+ nextAttemptAt: number;
192
+ };
193
+ deferred?: {
194
+ handle: DeferredHandle;
195
+ poll: number;
196
+ };
197
+ streamingMessage?: AssistantMessage;
198
+ runningTools: LaneSnapshotTool[];
199
+ };
200
+ queues: LaneQueuedItem[];
201
+ faulted: boolean;
202
+ }
203
+ export interface SessionSnapshot {
204
+ lanes: LaneInfo[];
205
+ faulted: boolean;
206
+ }
207
+ export type HarnessEventPayload = {
208
+ type: "run_start";
209
+ runId: string;
210
+ startedAt: number;
211
+ } | {
212
+ type: "run_resume";
213
+ runId: string;
214
+ } | {
215
+ type: "run_suspend";
216
+ runId: string;
217
+ reason: "deferred";
218
+ deferred: DeferredHandle;
219
+ poll: number;
220
+ } | {
221
+ type: "operation_abort";
222
+ operationId: string;
223
+ steer: AgentMessage[];
224
+ followUp: AgentMessage[];
225
+ } | ({
226
+ type: "run_end";
227
+ runId: string;
228
+ fromTipId: string | null;
229
+ tipId: string | null;
230
+ endedAt: number;
231
+ } & ({
232
+ status: "completed" | "aborted";
233
+ error?: never;
234
+ } | {
235
+ status: "failed";
236
+ error: OperationError;
237
+ })) | {
238
+ type: "fault";
239
+ code: string;
240
+ message: string;
241
+ } | ({
242
+ type: "handler_error";
243
+ error: string;
244
+ stack?: string;
245
+ } & ({
246
+ kind: "hook";
247
+ hook: string;
248
+ } | {
249
+ kind: "event";
250
+ event: string;
251
+ })) | {
252
+ type: "turn_start";
253
+ runId: string;
254
+ turnId: string;
255
+ } | {
256
+ type: "turn_end";
257
+ runId: string;
258
+ turnId: string;
259
+ message: AssistantMessage;
260
+ toolResults: ToolResultMessage[];
261
+ } | {
262
+ type: "retry_scheduled";
263
+ runId: string;
264
+ step: string;
265
+ attempt: number;
266
+ maxAttempts: number;
267
+ delayMs: number;
268
+ notBefore: number;
269
+ errorMessage: string;
270
+ } | {
271
+ type: "retry_start";
272
+ runId: string;
273
+ step: string;
274
+ attempt: number;
275
+ } | {
276
+ type: "retry_end";
277
+ runId: string;
278
+ step: string;
279
+ attempt: number;
280
+ success: boolean;
281
+ finalError?: string;
282
+ } | {
283
+ type: "message_start";
284
+ runId?: string;
285
+ message: AgentMessage;
286
+ } | {
287
+ type: "message_update";
288
+ runId: string;
289
+ message: AgentMessage;
290
+ event: AssistantMessageEvent;
291
+ frame?: AssistantMessageFrame;
292
+ } | {
293
+ type: "message_end";
294
+ runId?: string;
295
+ message: AgentMessage;
296
+ entryId?: string;
297
+ } | {
298
+ type: "tool_start";
299
+ runId: string;
300
+ turnId: string;
301
+ toolCallId: string;
302
+ toolName: string;
303
+ args: unknown;
304
+ } | {
305
+ type: "tool_update";
306
+ runId: string;
307
+ turnId: string;
308
+ toolCallId: string;
309
+ toolName: string;
310
+ partialResult: AgentToolResult<unknown>;
311
+ } | {
312
+ type: "tool_end";
313
+ runId: string;
314
+ turnId: string;
315
+ toolCallId: string;
316
+ toolName: string;
317
+ result: AgentToolResult<unknown>;
318
+ isError: boolean;
319
+ terminate: boolean;
320
+ } | {
321
+ type: "entry_added";
322
+ entry: Entry;
323
+ } | {
324
+ type: "queue_update";
325
+ queues: LaneQueuedItem[];
326
+ } | ({
327
+ type: "value_update";
328
+ } & ({
329
+ value: "session_name";
330
+ name: string | undefined;
331
+ } | {
332
+ value: "entry_label";
333
+ targetId: string;
334
+ label: string | undefined;
335
+ })) | ({
336
+ type: "config_update";
337
+ } & ({
338
+ property: "model";
339
+ value: {
340
+ provider: string;
341
+ modelId: string;
342
+ };
343
+ previous: unknown;
344
+ } | {
345
+ property: "thinkingLevel";
346
+ value: ThinkingLevel;
347
+ previous: ThinkingLevel;
348
+ } | {
349
+ property: "activeTools";
350
+ value: string[];
351
+ previous: string[];
352
+ } | {
353
+ property: "tools" | "resources";
354
+ } | {
355
+ property: "streamOptions";
356
+ value: AgentHarnessStreamOptions;
357
+ previous: AgentHarnessStreamOptions;
358
+ } | {
359
+ property: "retryPolicy";
360
+ value: RetryPolicy;
361
+ previous: RetryPolicy;
362
+ } | {
363
+ property: "compactionSettings";
364
+ value: CompactionSettings;
365
+ previous: CompactionSettings;
366
+ } | {
367
+ property: "steeringMode";
368
+ value: QueueMode;
369
+ previous: QueueMode;
370
+ } | {
371
+ property: "followUpMode";
372
+ value: QueueMode;
373
+ previous: QueueMode;
374
+ })) | {
375
+ type: "compaction_start";
376
+ runId: string;
377
+ reason: "manual" | "threshold" | "overflow";
378
+ startedAt: number;
379
+ } | ({
380
+ type: "compaction_end";
381
+ runId: string;
382
+ reason: "manual" | "threshold" | "overflow";
383
+ endedAt: number;
384
+ } & ({
385
+ status: "completed";
386
+ entryId: string;
387
+ error?: never;
388
+ } | {
389
+ status: "declined" | "aborted";
390
+ entryId?: never;
391
+ error?: never;
392
+ } | {
393
+ status: "failed";
394
+ entryId?: never;
395
+ error: OperationError;
396
+ })) | {
397
+ type: "navigation_start";
398
+ runId: string;
399
+ targetId: string | null;
400
+ startedAt: number;
401
+ } | ({
402
+ type: "navigation_end";
403
+ runId: string;
404
+ fromTipId: string | null;
405
+ tipId: string | null;
406
+ endedAt: number;
407
+ } & ({
408
+ status: "completed" | "declined" | "aborted";
409
+ error?: never;
410
+ } | {
411
+ status: "failed";
412
+ error: OperationError;
413
+ })) | {
414
+ type: "lane_created";
415
+ at: string | null;
416
+ } | {
417
+ type: "usage";
418
+ lane: string;
419
+ row: UsageRow;
420
+ totals: Usage;
421
+ };
422
+ export type SpecialEventPayload = Extract<HarnessEventPayload, {
423
+ type: "fault" | "value_update" | "usage" | "config_update" | "handler_error";
424
+ }>;
425
+ export type LaneEventPayload = Exclude<HarnessEventPayload, SpecialEventPayload>;
426
+ export type ConfigEventPayload = Extract<HarnessEventPayload, {
427
+ type: "config_update";
428
+ }>;
429
+ export type LaneConfigEventPayload = Extract<ConfigEventPayload, {
430
+ property: "model" | "thinkingLevel" | "activeTools";
431
+ }>;
432
+ export type GlobalConfigEventPayload = Exclude<ConfigEventPayload, LaneConfigEventPayload>;
433
+ export type HandlerErrorPayload = Extract<HarnessEventPayload, {
434
+ type: "handler_error";
435
+ }>;
436
+ export type HarnessEvent = (LaneEventPayload & {
437
+ lane: string;
438
+ recovery?: true;
439
+ }) | (LaneConfigEventPayload & {
440
+ lane: string;
441
+ recovery?: true;
442
+ }) | (Extract<HarnessEventPayload, {
443
+ type: "fault" | "value_update";
444
+ }> & {
445
+ lane?: never;
446
+ recovery?: never;
447
+ }) | (Extract<HarnessEventPayload, {
448
+ type: "usage";
449
+ }> & {
450
+ recovery?: never;
451
+ }) | (GlobalConfigEventPayload & {
452
+ lane?: never;
453
+ recovery?: never;
454
+ }) | (HandlerErrorPayload & ({
455
+ lane: string;
456
+ recovery?: true;
457
+ } | {
458
+ lane?: never;
459
+ recovery?: never;
460
+ }));
461
+ type LaneWatchSourceEvent = Exclude<HarnessEvent, {
462
+ type: "handler_error" | "turn_start" | "turn_end" | "value_update" | "lane_created" | "message_update";
463
+ } | ({
464
+ type: "config_update";
465
+ } & {
466
+ property: string;
467
+ })> | Extract<HarnessEvent, {
468
+ type: "config_update";
469
+ property: "model" | "thinkingLevel" | "activeTools";
470
+ }> | Omit<Extract<HarnessEvent, {
471
+ type: "message_update";
472
+ }>, "event">;
473
+ /** Strict-JSON snapshot representation published to remote transcript consumers. */
474
+ export type LaneTranscriptSnapshot = JsonRepresentation<LaneSnapshot>;
475
+ /** Reducer-relevant strict-JSON Harness events published to remote transcript consumers. */
476
+ export type LaneWatchEvent = JsonRepresentation<LaneWatchSourceEvent>;
477
+ export type HarnessEventType = HarnessEvent["type"];
478
+ export type EventListener<TEvent extends HarnessEvent = HarnessEvent> = (event: TEvent, context: Context) => void | Promise<void>;
479
+ export interface Events {
480
+ on<TType extends HarnessEventType>(type: TType, listener: EventListener<Extract<HarnessEvent, {
481
+ type: TType;
482
+ }>>): () => void;
483
+ }
484
+ export type Resources = AgentHarnessResources<Skill, PromptTemplate>;
485
+ type VoidHookResult = ReturnType<() => void>;
486
+ export interface HookMap {
487
+ before_run: {
488
+ event: {
489
+ prompt: AgentMessage[];
490
+ resources: Resources;
491
+ };
492
+ result: {
493
+ messages?: AgentMessage[];
494
+ } | undefined;
495
+ };
496
+ before_drive: {
497
+ event: {
498
+ operation: "run" | "compaction" | "navigation";
499
+ };
500
+ result: VoidHookResult;
501
+ };
502
+ before_run_end: {
503
+ event: {
504
+ runId: string;
505
+ messages: AgentMessage[];
506
+ };
507
+ result: {
508
+ followUp?: string;
509
+ } | undefined;
510
+ };
511
+ transform_context: {
512
+ event: {
513
+ messages: AgentMessage[];
514
+ systemPrompt: string;
515
+ };
516
+ result: {
517
+ messages?: AgentMessage[];
518
+ systemPrompt?: string;
519
+ } | undefined;
520
+ };
521
+ before_request: {
522
+ event: {
523
+ model: Model<Api>;
524
+ step: "assistant" | "deferred" | "compaction" | "branch_summary";
525
+ attempt: number;
526
+ streamOptions: AgentHarnessStreamOptions;
527
+ };
528
+ result: {
529
+ streamOptions?: AgentHarnessStreamOptionsPatch;
530
+ } | undefined;
531
+ };
532
+ before_payload: {
533
+ event: {
534
+ model: Model<Api>;
535
+ payload: unknown;
536
+ };
537
+ result: {
538
+ payload: unknown;
539
+ } | undefined;
540
+ };
541
+ after_response: {
542
+ event: {
543
+ status?: number;
544
+ headers?: Record<string, string>;
545
+ message: SettledAssistantMessage;
546
+ };
547
+ result: {
548
+ message?: SettledAssistantMessage;
549
+ } | undefined;
550
+ };
551
+ before_tool: {
552
+ event: {
553
+ toolCallId: string;
554
+ toolName: string;
555
+ args: Record<string, JsonValue>;
556
+ };
557
+ result: {
558
+ args?: Record<string, JsonValue>;
559
+ block?: {
560
+ reason: string;
561
+ terminate?: boolean;
562
+ };
563
+ } | undefined;
564
+ };
565
+ after_tool: {
566
+ event: {
567
+ toolCallId: string;
568
+ toolName: string;
569
+ args: Record<string, JsonValue>;
570
+ content: AgentToolResult<unknown>["content"];
571
+ details?: JsonValue;
572
+ isError: boolean;
573
+ usage?: Usage;
574
+ };
575
+ result: {
576
+ content?: AgentToolResult<unknown>["content"];
577
+ details?: JsonValue;
578
+ isError?: boolean;
579
+ usage?: Usage;
580
+ terminate?: boolean;
581
+ } | undefined;
582
+ };
583
+ before_compaction: {
584
+ event: {
585
+ reason: "manual" | "threshold" | "overflow";
586
+ preparation: CompactionPreparation;
587
+ customInstructions?: string;
588
+ };
589
+ result: {
590
+ decline?: boolean;
591
+ compaction?: CompactResult;
592
+ } | undefined;
593
+ };
594
+ before_navigation: {
595
+ event: {
596
+ targetId: string;
597
+ preparation: BranchPreparation;
598
+ customInstructions?: string;
599
+ };
600
+ result: {
601
+ decline?: boolean;
602
+ summary?: BranchSummaryResult;
603
+ } | undefined;
604
+ };
605
+ }
606
+ export type HookName = keyof HookMap;
607
+ export type HookInvocation<TName extends HookName> = HookMap[TName]["event"] & {
608
+ lane: string;
609
+ runId: string;
610
+ };
611
+ export type HookHandler<TName extends HookName> = (event: HookInvocation<TName>, context: Context) => Promise<HookMap[TName]["result"]> | HookMap[TName]["result"];
612
+ export interface Hooks {
613
+ on<TName extends HookName>(name: TName, handler: HookHandler<TName>, options?: {
614
+ id?: string;
615
+ }): () => void;
616
+ }
617
+ export type { EntryProjector } from "./session/types.ts";
618
+ export interface AgentHarnessOptions<TContext extends object | undefined = object | undefined> {
619
+ session: Session;
620
+ models: Models;
621
+ model: Model<Api>;
622
+ thinkingLevel?: ThinkingLevel;
623
+ activeToolNames?: string[];
624
+ tools?: AgentHarnessTool<TContext>[];
625
+ toolContext?: TContext | ((context: Context) => TContext | Promise<TContext>);
626
+ systemPrompt?: string | ((toolContext: TContext, context: Context) => string | Promise<string>);
627
+ resources?: Resources;
628
+ streamOptions?: AgentHarnessStreamOptions;
629
+ retry?: RetryPolicy;
630
+ compaction?: CompactionSettings;
631
+ steeringMode?: QueueMode;
632
+ followUpMode?: QueueMode;
633
+ toolExecution?: "sequential" | "parallel";
634
+ toProviderMessages?: (messages: AgentMessage[], context: Context) => Message[] | Promise<Message[]>;
635
+ entryProjectors?: Record<string, EntryProjector>;
636
+ }
637
+ export interface AgentLane {
638
+ readonly name: string;
639
+ getTipId(context: Context): Promise<string | null>;
640
+ findEntries(query: BranchScan | undefined, context: Context): Promise<Entry[]>;
641
+ findEntry(query: BranchScan | undefined, context: Context): Promise<Entry | undefined>;
642
+ appendMessage(message: AgentMessage, context: Context): Promise<string>;
643
+ appendCustomEntry(customType: string, data: JsonValue | undefined, context: Context): Promise<string>;
644
+ getResult(operationId: string, context: Context): Promise<OperationResultRecord | undefined>;
645
+ accept(request: OperationRequest, context: Context): Promise<OperationAdmissionResult>;
646
+ drive(options: DriveOptions, context: Context): Promise<DriveResult>;
647
+ requestAbort(operationId: string, context: Context): Promise<AbortRequestResult>;
648
+ inspectExecution(context: Context): Promise<LaneExecutionInfo>;
649
+ prompt(text: string, images: ImageContent[] | undefined, context: Context): Promise<RunResult>;
650
+ prompt(message: AgentMessage | AgentMessage[], context: Context): Promise<RunResult>;
651
+ skill(name: string, additionalInstructions: string | undefined, context: Context): Promise<RunResult>;
652
+ promptFromTemplate(name: string, args: string[] | undefined, context: Context): Promise<RunResult>;
653
+ compact(options: {
654
+ customInstructions?: string;
655
+ } | undefined, context: Context): Promise<CompactionResult>;
656
+ navigateTree(targetId: string | null, options: NavigateOptions | undefined, context: Context): Promise<NavigationResult>;
657
+ resume(context: Context): Promise<ResumeResult>;
658
+ abort(context: Context): Promise<AbortResult>;
659
+ steer(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;
660
+ followUp(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;
661
+ nextRun(message: string | AgentMessage, images: ImageContent[] | undefined, context: Context): Promise<QueueResult>;
662
+ cancelQueued(entryId: string, context: Context): Promise<CancelQueuedResult>;
663
+ recordUsage(usage: Usage, options: {
664
+ entryId?: string;
665
+ details?: JsonValue;
666
+ } | undefined, context: Context): Promise<RecordUsageResult>;
667
+ waitForIdle(context: Context): Promise<void>;
668
+ runWhenIdle(callback: (context: Context) => void | Promise<void>, context: Context): Promise<void>;
669
+ getModel(context: Context): Promise<Model<Api> | undefined>;
670
+ setModel(model: ModelIdentity, context: Context): Promise<void>;
671
+ getThinkingLevel(context: Context): Promise<ThinkingLevel>;
672
+ setThinkingLevel(level: ThinkingLevel, context: Context): Promise<void>;
673
+ getActiveTools(context: Context): Promise<string[]>;
674
+ setActiveTools(names: string[], context: Context): Promise<void>;
675
+ watch(context: Context): Promise<WatchHandle<LaneSnapshot>>;
676
+ }
677
+ export interface AcquireLaneOptions {
678
+ createAt?: string | null;
679
+ }
680
+ export interface AgentHarness<TContext extends object | undefined = object | undefined> {
681
+ lane(name: string, context: Context): Promise<AgentLane>;
682
+ lane(name: string, options: AcquireLaneOptions, context: Context): Promise<AgentLane>;
683
+ lanes(context: Context): Promise<LaneInfo[]>;
684
+ getName(context: Context): Promise<string | undefined>;
685
+ setName(name: string | undefined, context: Context): Promise<void>;
686
+ getLabel(targetId: string, context: Context): Promise<string | undefined>;
687
+ setLabel(targetId: string, label: string | undefined, context: Context): Promise<void>;
688
+ getTools(context: Context): Promise<AgentHarnessTool<TContext>[]>;
689
+ setTools(tools: AgentHarnessTool<TContext>[], context: Context): Promise<void>;
690
+ getResources(context: Context): Promise<Resources>;
691
+ setResources(resources: Resources, context: Context): Promise<void>;
692
+ getStreamOptions(context: Context): Promise<AgentHarnessStreamOptions>;
693
+ setStreamOptions(options: AgentHarnessStreamOptions, context: Context): Promise<void>;
694
+ getRetryPolicy(context: Context): Promise<RetryPolicy>;
695
+ setRetryPolicy(policy: RetryPolicy, context: Context): Promise<void>;
696
+ getCompactionSettings(context: Context): Promise<CompactionSettings>;
697
+ setCompactionSettings(settings: CompactionSettings, context: Context): Promise<void>;
698
+ getSteeringMode(context: Context): Promise<QueueMode>;
699
+ setSteeringMode(mode: QueueMode, context: Context): Promise<void>;
700
+ getFollowUpMode(context: Context): Promise<QueueMode>;
701
+ setFollowUpMode(mode: QueueMode, context: Context): Promise<void>;
702
+ watchSession(context: Context): Promise<WatchHandle<SessionSnapshot>>;
703
+ readonly hooks: Hooks;
704
+ readonly events: Events;
705
+ close(context: Context): Promise<void>;
706
+ }
707
+ export interface AgentHarnessConstructor {
708
+ create<TContext extends object | undefined = object | undefined>(options: AgentHarnessOptions<TContext>, context: Context): Promise<{
709
+ harness: AgentHarness<TContext>;
710
+ open: OpenOperation[];
711
+ }>;
712
+ }
713
+ /** Runtime constructor for attaching the durable harness to one open session. */
714
+ export declare const AgentHarness: {
715
+ create: typeof createAgentHarness;
716
+ };
717
+ //# sourceMappingURL=agent-harness.d.ts.map