@roackb2/heddle 0.0.2

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 (370) hide show
  1. package/README.md +273 -0
  2. package/dist/examples/conversation.d.ts +2 -0
  3. package/dist/examples/conversation.d.ts.map +1 -0
  4. package/dist/examples/conversation.js +3 -0
  5. package/dist/examples/conversation.js.map +1 -0
  6. package/dist/examples/repo-investigator.d.ts +2 -0
  7. package/dist/examples/repo-investigator.d.ts.map +1 -0
  8. package/dist/examples/repo-investigator.js +57 -0
  9. package/dist/examples/repo-investigator.js.map +1 -0
  10. package/dist/src/__tests__/chat-activity-format.test.d.ts +2 -0
  11. package/dist/src/__tests__/chat-activity-format.test.d.ts.map +1 -0
  12. package/dist/src/__tests__/chat-activity-format.test.js +41 -0
  13. package/dist/src/__tests__/chat-activity-format.test.js.map +1 -0
  14. package/dist/src/__tests__/chat-compaction.test.d.ts +2 -0
  15. package/dist/src/__tests__/chat-compaction.test.d.ts.map +1 -0
  16. package/dist/src/__tests__/chat-compaction.test.js +24 -0
  17. package/dist/src/__tests__/chat-compaction.test.js.map +1 -0
  18. package/dist/src/__tests__/chat-format.test.d.ts +2 -0
  19. package/dist/src/__tests__/chat-format.test.d.ts.map +1 -0
  20. package/dist/src/__tests__/chat-format.test.js +124 -0
  21. package/dist/src/__tests__/chat-format.test.js.map +1 -0
  22. package/dist/src/__tests__/chat-runtime.test.d.ts +2 -0
  23. package/dist/src/__tests__/chat-runtime.test.d.ts.map +1 -0
  24. package/dist/src/__tests__/chat-runtime.test.js +39 -0
  25. package/dist/src/__tests__/chat-runtime.test.js.map +1 -0
  26. package/dist/src/__tests__/core-utils.test.d.ts +2 -0
  27. package/dist/src/__tests__/core-utils.test.d.ts.map +1 -0
  28. package/dist/src/__tests__/core-utils.test.js +87 -0
  29. package/dist/src/__tests__/core-utils.test.js.map +1 -0
  30. package/dist/src/__tests__/llm-factory.test.d.ts +2 -0
  31. package/dist/src/__tests__/llm-factory.test.d.ts.map +1 -0
  32. package/dist/src/__tests__/llm-factory.test.js +45 -0
  33. package/dist/src/__tests__/llm-factory.test.js.map +1 -0
  34. package/dist/src/__tests__/local-commands.test.d.ts +2 -0
  35. package/dist/src/__tests__/local-commands.test.d.ts.map +1 -0
  36. package/dist/src/__tests__/local-commands.test.js +163 -0
  37. package/dist/src/__tests__/local-commands.test.js.map +1 -0
  38. package/dist/src/__tests__/project-approval-rules.test.d.ts +2 -0
  39. package/dist/src/__tests__/project-approval-rules.test.d.ts.map +1 -0
  40. package/dist/src/__tests__/project-approval-rules.test.js +135 -0
  41. package/dist/src/__tests__/project-approval-rules.test.js.map +1 -0
  42. package/dist/src/__tests__/prompts.test.d.ts +2 -0
  43. package/dist/src/__tests__/prompts.test.d.ts.map +1 -0
  44. package/dist/src/__tests__/prompts.test.js +43 -0
  45. package/dist/src/__tests__/prompts.test.js.map +1 -0
  46. package/dist/src/__tests__/run-agent.test.d.ts +2 -0
  47. package/dist/src/__tests__/run-agent.test.d.ts.map +1 -0
  48. package/dist/src/__tests__/run-agent.test.js +1276 -0
  49. package/dist/src/__tests__/run-agent.test.js.map +1 -0
  50. package/dist/src/__tests__/run-shell.command.test.d.ts +2 -0
  51. package/dist/src/__tests__/run-shell.command.test.d.ts.map +1 -0
  52. package/dist/src/__tests__/run-shell.command.test.js +188 -0
  53. package/dist/src/__tests__/run-shell.command.test.js.map +1 -0
  54. package/dist/src/__tests__/smoke.test.d.ts +2 -0
  55. package/dist/src/__tests__/smoke.test.d.ts.map +1 -0
  56. package/dist/src/__tests__/smoke.test.js +314 -0
  57. package/dist/src/__tests__/smoke.test.js.map +1 -0
  58. package/dist/src/__tests__/tools.test.d.ts +2 -0
  59. package/dist/src/__tests__/tools.test.d.ts.map +1 -0
  60. package/dist/src/__tests__/tools.test.js +557 -0
  61. package/dist/src/__tests__/tools.test.js.map +1 -0
  62. package/dist/src/__tests__/trace-format.test.d.ts +2 -0
  63. package/dist/src/__tests__/trace-format.test.d.ts.map +1 -0
  64. package/dist/src/__tests__/trace-format.test.js +148 -0
  65. package/dist/src/__tests__/trace-format.test.js.map +1 -0
  66. package/dist/src/cli/ask.d.ts +11 -0
  67. package/dist/src/cli/ask.d.ts.map +1 -0
  68. package/dist/src/cli/ask.js +59 -0
  69. package/dist/src/cli/ask.js.map +1 -0
  70. package/dist/src/cli/chat/App.d.ts +5 -0
  71. package/dist/src/cli/chat/App.d.ts.map +1 -0
  72. package/dist/src/cli/chat/App.js +348 -0
  73. package/dist/src/cli/chat/App.js.map +1 -0
  74. package/dist/src/cli/chat/actions.d.ts +47 -0
  75. package/dist/src/cli/chat/actions.d.ts.map +1 -0
  76. package/dist/src/cli/chat/actions.js +215 -0
  77. package/dist/src/cli/chat/actions.js.map +1 -0
  78. package/dist/src/cli/chat/components/ActivityPanel.d.ts +11 -0
  79. package/dist/src/cli/chat/components/ActivityPanel.d.ts.map +1 -0
  80. package/dist/src/cli/chat/components/ActivityPanel.js +20 -0
  81. package/dist/src/cli/chat/components/ActivityPanel.js.map +1 -0
  82. package/dist/src/cli/chat/components/ApprovalComposer.d.ts +6 -0
  83. package/dist/src/cli/chat/components/ApprovalComposer.d.ts.map +1 -0
  84. package/dist/src/cli/chat/components/ApprovalComposer.js +30 -0
  85. package/dist/src/cli/chat/components/ApprovalComposer.js.map +1 -0
  86. package/dist/src/cli/chat/components/CommandHintPanel.d.ts +5 -0
  87. package/dist/src/cli/chat/components/CommandHintPanel.d.ts.map +1 -0
  88. package/dist/src/cli/chat/components/CommandHintPanel.js +13 -0
  89. package/dist/src/cli/chat/components/CommandHintPanel.js.map +1 -0
  90. package/dist/src/cli/chat/components/ConversationPanel.d.ts +16 -0
  91. package/dist/src/cli/chat/components/ConversationPanel.d.ts.map +1 -0
  92. package/dist/src/cli/chat/components/ConversationPanel.js +218 -0
  93. package/dist/src/cli/chat/components/ConversationPanel.js.map +1 -0
  94. package/dist/src/cli/chat/components/ModelPickerPanel.d.ts +7 -0
  95. package/dist/src/cli/chat/components/ModelPickerPanel.d.ts.map +1 -0
  96. package/dist/src/cli/chat/components/ModelPickerPanel.js +32 -0
  97. package/dist/src/cli/chat/components/ModelPickerPanel.js.map +1 -0
  98. package/dist/src/cli/chat/components/PromptInput.d.ts +29 -0
  99. package/dist/src/cli/chat/components/PromptInput.d.ts.map +1 -0
  100. package/dist/src/cli/chat/components/PromptInput.js +132 -0
  101. package/dist/src/cli/chat/components/PromptInput.js.map +1 -0
  102. package/dist/src/cli/chat/components/RecentTurnsPanel.d.ts +5 -0
  103. package/dist/src/cli/chat/components/RecentTurnsPanel.d.ts.map +1 -0
  104. package/dist/src/cli/chat/components/RecentTurnsPanel.js +10 -0
  105. package/dist/src/cli/chat/components/RecentTurnsPanel.js.map +1 -0
  106. package/dist/src/cli/chat/components/SessionPickerPanel.d.ts +12 -0
  107. package/dist/src/cli/chat/components/SessionPickerPanel.d.ts.map +1 -0
  108. package/dist/src/cli/chat/components/SessionPickerPanel.js +32 -0
  109. package/dist/src/cli/chat/components/SessionPickerPanel.js.map +1 -0
  110. package/dist/src/cli/chat/components/SlashHintPanel.d.ts +8 -0
  111. package/dist/src/cli/chat/components/SlashHintPanel.d.ts.map +1 -0
  112. package/dist/src/cli/chat/components/SlashHintPanel.js +38 -0
  113. package/dist/src/cli/chat/components/SlashHintPanel.js.map +1 -0
  114. package/dist/src/cli/chat/components/index.d.ts +10 -0
  115. package/dist/src/cli/chat/components/index.d.ts.map +1 -0
  116. package/dist/src/cli/chat/components/index.js +10 -0
  117. package/dist/src/cli/chat/components/index.js.map +1 -0
  118. package/dist/src/cli/chat/format.d.ts +23 -0
  119. package/dist/src/cli/chat/format.d.ts.map +1 -0
  120. package/dist/src/cli/chat/format.js +243 -0
  121. package/dist/src/cli/chat/format.js.map +1 -0
  122. package/dist/src/cli/chat/hooks/useAgentRun.d.ts +61 -0
  123. package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -0
  124. package/dist/src/cli/chat/hooks/useAgentRun.js +463 -0
  125. package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -0
  126. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts +31 -0
  127. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts.map +1 -0
  128. package/dist/src/cli/chat/hooks/useApprovalFlow.js +145 -0
  129. package/dist/src/cli/chat/hooks/useApprovalFlow.js.map +1 -0
  130. package/dist/src/cli/chat/hooks/useChatSessions.d.ts +23 -0
  131. package/dist/src/cli/chat/hooks/useChatSessions.d.ts.map +1 -0
  132. package/dist/src/cli/chat/hooks/useChatSessions.js +124 -0
  133. package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -0
  134. package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts +8 -0
  135. package/dist/src/cli/chat/hooks/useProjectApprovals.d.ts.map +1 -0
  136. package/dist/src/cli/chat/hooks/useProjectApprovals.js +33 -0
  137. package/dist/src/cli/chat/hooks/useProjectApprovals.js.map +1 -0
  138. package/dist/src/cli/chat/index.d.ts +4 -0
  139. package/dist/src/cli/chat/index.d.ts.map +1 -0
  140. package/dist/src/cli/chat/index.js +9 -0
  141. package/dist/src/cli/chat/index.js.map +1 -0
  142. package/dist/src/cli/chat/local-commands.d.ts +17 -0
  143. package/dist/src/cli/chat/local-commands.d.ts.map +1 -0
  144. package/dist/src/cli/chat/local-commands.js +180 -0
  145. package/dist/src/cli/chat/local-commands.js.map +1 -0
  146. package/dist/src/cli/chat/panels.d.ts +37 -0
  147. package/dist/src/cli/chat/panels.d.ts.map +1 -0
  148. package/dist/src/cli/chat/panels.js +142 -0
  149. package/dist/src/cli/chat/panels.js.map +1 -0
  150. package/dist/src/cli/chat/runtime.d.ts +26 -0
  151. package/dist/src/cli/chat/runtime.d.ts.map +1 -0
  152. package/dist/src/cli/chat/runtime.js +28 -0
  153. package/dist/src/cli/chat/runtime.js.map +1 -0
  154. package/dist/src/cli/chat/state/approval-rules.d.ts +21 -0
  155. package/dist/src/cli/chat/state/approval-rules.d.ts.map +1 -0
  156. package/dist/src/cli/chat/state/approval-rules.js +196 -0
  157. package/dist/src/cli/chat/state/approval-rules.js.map +1 -0
  158. package/dist/src/cli/chat/state/compaction.d.ts +13 -0
  159. package/dist/src/cli/chat/state/compaction.d.ts.map +1 -0
  160. package/dist/src/cli/chat/state/compaction.js +143 -0
  161. package/dist/src/cli/chat/state/compaction.js.map +1 -0
  162. package/dist/src/cli/chat/state/local-commands.d.ts +17 -0
  163. package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -0
  164. package/dist/src/cli/chat/state/local-commands.js +169 -0
  165. package/dist/src/cli/chat/state/local-commands.js.map +1 -0
  166. package/dist/src/cli/chat/state/storage.d.ts +14 -0
  167. package/dist/src/cli/chat/state/storage.d.ts.map +1 -0
  168. package/dist/src/cli/chat/state/storage.js +144 -0
  169. package/dist/src/cli/chat/state/storage.js.map +1 -0
  170. package/dist/src/cli/chat/state/types.d.ts +69 -0
  171. package/dist/src/cli/chat/state/types.d.ts.map +1 -0
  172. package/dist/src/cli/chat/state/types.js +2 -0
  173. package/dist/src/cli/chat/state/types.js.map +1 -0
  174. package/dist/src/cli/chat/storage.d.ts +13 -0
  175. package/dist/src/cli/chat/storage.d.ts.map +1 -0
  176. package/dist/src/cli/chat/storage.js +126 -0
  177. package/dist/src/cli/chat/storage.js.map +1 -0
  178. package/dist/src/cli/chat/submit.d.ts +28 -0
  179. package/dist/src/cli/chat/submit.d.ts.map +1 -0
  180. package/dist/src/cli/chat/submit.js +90 -0
  181. package/dist/src/cli/chat/submit.js.map +1 -0
  182. package/dist/src/cli/chat/types.d.ts +51 -0
  183. package/dist/src/cli/chat/types.d.ts.map +1 -0
  184. package/dist/src/cli/chat/types.js +2 -0
  185. package/dist/src/cli/chat/types.js.map +1 -0
  186. package/dist/src/cli/chat/use-run-state.d.ts +23 -0
  187. package/dist/src/cli/chat/use-run-state.d.ts.map +1 -0
  188. package/dist/src/cli/chat/use-run-state.js +118 -0
  189. package/dist/src/cli/chat/use-run-state.js.map +1 -0
  190. package/dist/src/cli/chat/use-sessions.d.ts +21 -0
  191. package/dist/src/cli/chat/use-sessions.d.ts.map +1 -0
  192. package/dist/src/cli/chat/use-sessions.js +111 -0
  193. package/dist/src/cli/chat/use-sessions.js.map +1 -0
  194. package/dist/src/cli/chat/utils/format.d.ts +41 -0
  195. package/dist/src/cli/chat/utils/format.d.ts.map +1 -0
  196. package/dist/src/cli/chat/utils/format.js +578 -0
  197. package/dist/src/cli/chat/utils/format.js.map +1 -0
  198. package/dist/src/cli/chat/utils/runtime.d.ts +31 -0
  199. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -0
  200. package/dist/src/cli/chat/utils/runtime.js +56 -0
  201. package/dist/src/cli/chat/utils/runtime.js.map +1 -0
  202. package/dist/src/cli/chat-actions.d.ts +47 -0
  203. package/dist/src/cli/chat-actions.d.ts.map +1 -0
  204. package/dist/src/cli/chat-actions.js +215 -0
  205. package/dist/src/cli/chat-actions.js.map +1 -0
  206. package/dist/src/cli/chat-format.d.ts +23 -0
  207. package/dist/src/cli/chat-format.d.ts.map +1 -0
  208. package/dist/src/cli/chat-format.js +243 -0
  209. package/dist/src/cli/chat-format.js.map +1 -0
  210. package/dist/src/cli/chat-local-commands.d.ts +17 -0
  211. package/dist/src/cli/chat-local-commands.d.ts.map +1 -0
  212. package/dist/src/cli/chat-local-commands.js +180 -0
  213. package/dist/src/cli/chat-local-commands.js.map +1 -0
  214. package/dist/src/cli/chat-panels.d.ts +37 -0
  215. package/dist/src/cli/chat-panels.d.ts.map +1 -0
  216. package/dist/src/cli/chat-panels.js +142 -0
  217. package/dist/src/cli/chat-panels.js.map +1 -0
  218. package/dist/src/cli/chat-runtime.d.ts +26 -0
  219. package/dist/src/cli/chat-runtime.d.ts.map +1 -0
  220. package/dist/src/cli/chat-runtime.js +28 -0
  221. package/dist/src/cli/chat-runtime.js.map +1 -0
  222. package/dist/src/cli/chat-storage.d.ts +13 -0
  223. package/dist/src/cli/chat-storage.d.ts.map +1 -0
  224. package/dist/src/cli/chat-storage.js +126 -0
  225. package/dist/src/cli/chat-storage.js.map +1 -0
  226. package/dist/src/cli/chat-submit.d.ts +28 -0
  227. package/dist/src/cli/chat-submit.d.ts.map +1 -0
  228. package/dist/src/cli/chat-submit.js +90 -0
  229. package/dist/src/cli/chat-submit.js.map +1 -0
  230. package/dist/src/cli/chat-types.d.ts +51 -0
  231. package/dist/src/cli/chat-types.d.ts.map +1 -0
  232. package/dist/src/cli/chat-types.js +2 -0
  233. package/dist/src/cli/chat-types.js.map +1 -0
  234. package/dist/src/cli/chat.d.ts +4 -0
  235. package/dist/src/cli/chat.d.ts.map +1 -0
  236. package/dist/src/cli/chat.js +153 -0
  237. package/dist/src/cli/chat.js.map +1 -0
  238. package/dist/src/cli/main.d.ts +3 -0
  239. package/dist/src/cli/main.d.ts.map +1 -0
  240. package/dist/src/cli/main.js +190 -0
  241. package/dist/src/cli/main.js.map +1 -0
  242. package/dist/src/cli/useChatRunState.d.ts +23 -0
  243. package/dist/src/cli/useChatRunState.d.ts.map +1 -0
  244. package/dist/src/cli/useChatRunState.js +118 -0
  245. package/dist/src/cli/useChatRunState.js.map +1 -0
  246. package/dist/src/cli/useChatSessions.d.ts +21 -0
  247. package/dist/src/cli/useChatSessions.d.ts.map +1 -0
  248. package/dist/src/cli/useChatSessions.js +111 -0
  249. package/dist/src/cli/useChatSessions.js.map +1 -0
  250. package/dist/src/config.d.ts +4 -0
  251. package/dist/src/config.d.ts.map +1 -0
  252. package/dist/src/config.js +7 -0
  253. package/dist/src/config.js.map +1 -0
  254. package/dist/src/index.d.ts +36 -0
  255. package/dist/src/index.d.ts.map +1 -0
  256. package/dist/src/index.js +31 -0
  257. package/dist/src/index.js.map +1 -0
  258. package/dist/src/llm/anthropic.d.ts +7 -0
  259. package/dist/src/llm/anthropic.d.ts.map +1 -0
  260. package/dist/src/llm/anthropic.js +115 -0
  261. package/dist/src/llm/anthropic.js.map +1 -0
  262. package/dist/src/llm/factory.d.ts +10 -0
  263. package/dist/src/llm/factory.d.ts.map +1 -0
  264. package/dist/src/llm/factory.js +53 -0
  265. package/dist/src/llm/factory.js.map +1 -0
  266. package/dist/src/llm/openai-models.d.ts +15 -0
  267. package/dist/src/llm/openai-models.d.ts.map +1 -0
  268. package/dist/src/llm/openai-models.js +97 -0
  269. package/dist/src/llm/openai-models.js.map +1 -0
  270. package/dist/src/llm/openai.d.ts +10 -0
  271. package/dist/src/llm/openai.d.ts.map +1 -0
  272. package/dist/src/llm/openai.js +170 -0
  273. package/dist/src/llm/openai.js.map +1 -0
  274. package/dist/src/llm/types.d.ts +64 -0
  275. package/dist/src/llm/types.d.ts.map +1 -0
  276. package/dist/src/llm/types.js +5 -0
  277. package/dist/src/llm/types.js.map +1 -0
  278. package/dist/src/prompts/system-prompt.d.ts +6 -0
  279. package/dist/src/prompts/system-prompt.d.ts.map +1 -0
  280. package/dist/src/prompts/system-prompt.js +117 -0
  281. package/dist/src/prompts/system-prompt.js.map +1 -0
  282. package/dist/src/run-agent/history.d.ts +3 -0
  283. package/dist/src/run-agent/history.d.ts.map +1 -0
  284. package/dist/src/run-agent/history.js +36 -0
  285. package/dist/src/run-agent/history.js.map +1 -0
  286. package/dist/src/run-agent/mutation-tracking.d.ts +22 -0
  287. package/dist/src/run-agent/mutation-tracking.d.ts.map +1 -0
  288. package/dist/src/run-agent/mutation-tracking.js +116 -0
  289. package/dist/src/run-agent/mutation-tracking.js.map +1 -0
  290. package/dist/src/run-agent/post-mutation.d.ts +23 -0
  291. package/dist/src/run-agent/post-mutation.d.ts.map +1 -0
  292. package/dist/src/run-agent/post-mutation.js +106 -0
  293. package/dist/src/run-agent/post-mutation.js.map +1 -0
  294. package/dist/src/run-agent/progress-reminders.d.ts +13 -0
  295. package/dist/src/run-agent/progress-reminders.d.ts.map +1 -0
  296. package/dist/src/run-agent/progress-reminders.js +65 -0
  297. package/dist/src/run-agent/progress-reminders.js.map +1 -0
  298. package/dist/src/run-agent/tool-dispatch.d.ts +31 -0
  299. package/dist/src/run-agent/tool-dispatch.d.ts.map +1 -0
  300. package/dist/src/run-agent/tool-dispatch.js +114 -0
  301. package/dist/src/run-agent/tool-dispatch.js.map +1 -0
  302. package/dist/src/run-agent/util.d.ts +10 -0
  303. package/dist/src/run-agent/util.d.ts.map +1 -0
  304. package/dist/src/run-agent/util.js +64 -0
  305. package/dist/src/run-agent/util.js.map +1 -0
  306. package/dist/src/run-agent.d.ts +36 -0
  307. package/dist/src/run-agent.d.ts.map +1 -0
  308. package/dist/src/run-agent.js +477 -0
  309. package/dist/src/run-agent.js.map +1 -0
  310. package/dist/src/tools/edit-file.d.ts +10 -0
  311. package/dist/src/tools/edit-file.d.ts.map +1 -0
  312. package/dist/src/tools/edit-file.js +268 -0
  313. package/dist/src/tools/edit-file.js.map +1 -0
  314. package/dist/src/tools/execute-tool.d.ts +8 -0
  315. package/dist/src/tools/execute-tool.d.ts.map +1 -0
  316. package/dist/src/tools/execute-tool.js +31 -0
  317. package/dist/src/tools/execute-tool.js.map +1 -0
  318. package/dist/src/tools/list-files.d.ts +3 -0
  319. package/dist/src/tools/list-files.d.ts.map +1 -0
  320. package/dist/src/tools/list-files.js +49 -0
  321. package/dist/src/tools/list-files.js.map +1 -0
  322. package/dist/src/tools/read-file.d.ts +3 -0
  323. package/dist/src/tools/read-file.d.ts.map +1 -0
  324. package/dist/src/tools/read-file.js +73 -0
  325. package/dist/src/tools/read-file.js.map +1 -0
  326. package/dist/src/tools/registry.d.ts +11 -0
  327. package/dist/src/tools/registry.d.ts.map +1 -0
  328. package/dist/src/tools/registry.js +27 -0
  329. package/dist/src/tools/registry.js.map +1 -0
  330. package/dist/src/tools/report-state.d.ts +3 -0
  331. package/dist/src/tools/report-state.d.ts.map +1 -0
  332. package/dist/src/tools/report-state.js +63 -0
  333. package/dist/src/tools/report-state.js.map +1 -0
  334. package/dist/src/tools/run-shell.d.ts +41 -0
  335. package/dist/src/tools/run-shell.d.ts.map +1 -0
  336. package/dist/src/tools/run-shell.js +407 -0
  337. package/dist/src/tools/run-shell.js.map +1 -0
  338. package/dist/src/tools/search-files.d.ts +8 -0
  339. package/dist/src/tools/search-files.d.ts.map +1 -0
  340. package/dist/src/tools/search-files.js +86 -0
  341. package/dist/src/tools/search-files.js.map +1 -0
  342. package/dist/src/tools/update-plan.d.ts +8 -0
  343. package/dist/src/tools/update-plan.d.ts.map +1 -0
  344. package/dist/src/tools/update-plan.js +85 -0
  345. package/dist/src/tools/update-plan.js.map +1 -0
  346. package/dist/src/trace/format.d.ts +6 -0
  347. package/dist/src/trace/format.d.ts.map +1 -0
  348. package/dist/src/trace/format.js +94 -0
  349. package/dist/src/trace/format.js.map +1 -0
  350. package/dist/src/trace/recorder.d.ts +11 -0
  351. package/dist/src/trace/recorder.d.ts.map +1 -0
  352. package/dist/src/trace/recorder.js +21 -0
  353. package/dist/src/trace/recorder.js.map +1 -0
  354. package/dist/src/types.d.ts +110 -0
  355. package/dist/src/types.d.ts.map +1 -0
  356. package/dist/src/types.js +6 -0
  357. package/dist/src/types.js.map +1 -0
  358. package/dist/src/utils/budget.d.ts +13 -0
  359. package/dist/src/utils/budget.d.ts.map +1 -0
  360. package/dist/src/utils/budget.js +22 -0
  361. package/dist/src/utils/budget.js.map +1 -0
  362. package/dist/src/utils/errors.d.ts +14 -0
  363. package/dist/src/utils/errors.d.ts.map +1 -0
  364. package/dist/src/utils/errors.js +31 -0
  365. package/dist/src/utils/errors.js.map +1 -0
  366. package/dist/src/utils/logger.d.ts +17 -0
  367. package/dist/src/utils/logger.d.ts.map +1 -0
  368. package/dist/src/utils/logger.js +50 -0
  369. package/dist/src/utils/logger.js.map +1 -0
  370. package/package.json +57 -0
@@ -0,0 +1,36 @@
1
+ import type { RunResult, ToolDefinition, ToolCall, TraceEvent } from './types.js';
2
+ import type { LlmAdapter, ChatMessage } from './llm/types.js';
3
+ import type { Logger } from 'pino';
4
+ export type RunAgentOptions = {
5
+ goal: string;
6
+ llm: LlmAdapter;
7
+ tools: ToolDefinition[];
8
+ maxSteps?: number;
9
+ logger?: Logger;
10
+ history?: ChatMessage[];
11
+ systemContext?: string;
12
+ onEvent?: (event: TraceEvent) => void;
13
+ onAssistantStream?: (update: {
14
+ step: number;
15
+ text: string;
16
+ done: boolean;
17
+ }) => void;
18
+ approveToolCall?: (call: ToolCall, tool: ToolDefinition) => Promise<{
19
+ approved: boolean;
20
+ reason?: string;
21
+ }>;
22
+ shouldStop?: () => boolean;
23
+ abortSignal?: AbortSignal;
24
+ };
25
+ /**
26
+ * Run the agent loop.
27
+ *
28
+ * 1. Build messages (system prompt + transcript so far)
29
+ * 2. Call LLM
30
+ * 3. If model returns content only → record message, check if done
31
+ * 4. If model returns tool calls → execute each, record results
32
+ * 5. Check budget → stop if exhausted
33
+ * 6. Repeat
34
+ */
35
+ export declare function runAgent(options: RunAgentOptions): Promise<RunResult>;
36
+ //# sourceMappingURL=run-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-agent.d.ts","sourceRoot":"","sources":["../../src/run-agent.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAc,QAAQ,EAAc,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,KAAK,EAAE,UAAU,EAAyB,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAOrG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAuBnC,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACpF,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5G,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAmCF;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAsC3E"}
@@ -0,0 +1,477 @@
1
+ // ---------------------------------------------------------------------------
2
+ // runAgent — the heart of Heddle
3
+ // A minimal, executable agent loop.
4
+ // ---------------------------------------------------------------------------
5
+ import { createToolRegistry } from './tools/registry.js';
6
+ import { createTraceRecorder } from './trace/recorder.js';
7
+ import { createBudget } from './utils/budget.js';
8
+ import { buildSystemPrompt } from './prompts/system-prompt.js';
9
+ import { logger as defaultLogger } from './utils/logger.js';
10
+ import { sanitizeHistory } from './run-agent/history.js';
11
+ import { isAbortError, isRecoverableToolError } from './run-agent/util.js';
12
+ import { createMutationState, trackToolResult } from './run-agent/mutation-tracking.js';
13
+ import { createProgressReminderState, buildProgressReminders } from './run-agent/progress-reminders.js';
14
+ import { buildPostMutationRequirement, buildImmediateReviewReminder, buildImmediateVerificationReminder, hasStructuredChangeSummary, buildStructuredChangeSummaryRequirement, } from './run-agent/post-mutation.js';
15
+ import { maybeDenyToolCall, executeToolCallWithFallback } from './run-agent/tool-dispatch.js';
16
+ const PLAN_ITEM_STATUSES = new Set(['pending', 'in_progress', 'completed']);
17
+ const DEFAULT_MAX_STEPS = 20;
18
+ const MAX_CONSECUTIVE_ERRORS = 3;
19
+ const STREAM_UPDATE_INTERVAL_MS = 75;
20
+ const INTERRUPTED_SUMMARY = 'Run interrupted by host request';
21
+ /**
22
+ * Run the agent loop.
23
+ *
24
+ * 1. Build messages (system prompt + transcript so far)
25
+ * 2. Call LLM
26
+ * 3. If model returns content only → record message, check if done
27
+ * 4. If model returns tool calls → execute each, record results
28
+ * 5. Check budget → stop if exhausted
29
+ * 6. Repeat
30
+ */
31
+ export async function runAgent(options) {
32
+ const context = createRunContext(options);
33
+ context.log.info({ goal: options.goal, maxSteps: context.maxSteps, tools: context.registry.names() }, 'Agent run started');
34
+ context.record({ type: 'run.started', goal: options.goal, timestamp: context.now() });
35
+ while (!context.budget.exhausted()) {
36
+ const interrupted = maybeFinishInterrupted(context, 'Agent run interrupted before next step');
37
+ if (interrupted) {
38
+ return interrupted;
39
+ }
40
+ beginStep(context);
41
+ const responseResult = await requestModelTurn(context);
42
+ if (isRunResult(responseResult)) {
43
+ return responseResult;
44
+ }
45
+ if (responseResult.toolCalls && responseResult.toolCalls.length > 0) {
46
+ const toolTurnResult = await handleToolTurn(context, responseResult);
47
+ if (toolTurnResult !== 'continue') {
48
+ return toolTurnResult;
49
+ }
50
+ continue;
51
+ }
52
+ const finalResponse = finalizeAssistantResponse(context, responseResult);
53
+ if (finalResponse === 'continue') {
54
+ continue;
55
+ }
56
+ return finalResponse;
57
+ }
58
+ return finishRun(context, 'max_steps', `Reached maximum step limit (${context.maxSteps})`, {
59
+ logLevel: 'warn',
60
+ logMessage: 'Budget exhausted',
61
+ });
62
+ }
63
+ function createRunContext(options) {
64
+ const registry = createToolRegistry(options.tools);
65
+ const trace = createTraceRecorder();
66
+ const now = () => new Date().toISOString();
67
+ const maxSteps = options.maxSteps ?? DEFAULT_MAX_STEPS;
68
+ return {
69
+ goal: options.goal,
70
+ maxSteps,
71
+ llm: options.llm,
72
+ registry,
73
+ log: options.logger ?? defaultLogger,
74
+ messages: buildInitialMessages(options.goal, registry.names(), options.systemContext, options.history),
75
+ trace,
76
+ record: (event) => {
77
+ trace.record(event);
78
+ options.onEvent?.(event);
79
+ },
80
+ now,
81
+ budget: createBudget(maxSteps),
82
+ seenToolCalls: new Map(),
83
+ mutation: createMutationState(),
84
+ progress: createProgressReminderState(),
85
+ onAssistantStream: options.onAssistantStream,
86
+ approveToolCall: options.approveToolCall,
87
+ shouldStop: options.shouldStop,
88
+ abortSignal: options.abortSignal,
89
+ state: {
90
+ step: 0,
91
+ consecutiveErrors: 0,
92
+ outcome: 'max_steps',
93
+ summary: '',
94
+ },
95
+ };
96
+ }
97
+ function buildInitialMessages(goal, toolNames, systemContext, history) {
98
+ return [
99
+ { role: 'system', content: buildSystemPrompt(goal, toolNames, systemContext) },
100
+ ...sanitizeHistory(history ?? []),
101
+ { role: 'user', content: goal },
102
+ ];
103
+ }
104
+ function beginStep(context) {
105
+ context.state.step++;
106
+ context.budget.step();
107
+ context.log.debug({ step: context.state.step, budgetRemaining: context.budget.remaining() }, 'Calling LLM');
108
+ }
109
+ async function requestModelTurn(context) {
110
+ if (context.abortSignal?.aborted) {
111
+ return finishInterrupted(context, 'Agent run interrupted before LLM call');
112
+ }
113
+ try {
114
+ let streamedContent = '';
115
+ let pendingStreamDelta = '';
116
+ let lastStreamRecordAt = 0;
117
+ const response = await context.llm.chat(context.messages, context.registry.list(), context.abortSignal, (event) => {
118
+ if (event.type === 'content.delta') {
119
+ pendingStreamDelta += event.delta;
120
+ const nowMs = Date.now();
121
+ if (nowMs - lastStreamRecordAt < STREAM_UPDATE_INTERVAL_MS) {
122
+ streamedContent += event.delta;
123
+ context.onAssistantStream?.({ step: context.state.step, text: streamedContent, done: false });
124
+ return;
125
+ }
126
+ lastStreamRecordAt = nowMs;
127
+ streamedContent += event.delta;
128
+ context.onAssistantStream?.({ step: context.state.step, text: streamedContent, done: false });
129
+ pendingStreamDelta = '';
130
+ return;
131
+ }
132
+ if (event.type === 'content.done') {
133
+ pendingStreamDelta = '';
134
+ streamedContent = event.content;
135
+ context.onAssistantStream?.({ step: context.state.step, text: streamedContent, done: true });
136
+ }
137
+ });
138
+ context.state.usage = accumulateUsage(context.state.usage, response.usage);
139
+ return response;
140
+ }
141
+ catch (error) {
142
+ if (isAbortError(error) || context.abortSignal?.aborted || context.shouldStop?.()) {
143
+ return finishInterrupted(context, 'Agent run interrupted during LLM call');
144
+ }
145
+ const errorMessage = error instanceof Error ? error.message : String(error);
146
+ context.log.error({ step: context.state.step, error: errorMessage }, 'LLM call failed');
147
+ return finishRun(context, 'error', `LLM error: ${errorMessage}`);
148
+ }
149
+ }
150
+ async function handleToolTurn(context, response) {
151
+ const toolCalls = response.toolCalls ?? [];
152
+ context.record({
153
+ type: 'assistant.turn',
154
+ content: response.content ?? '',
155
+ diagnostics: response.diagnostics,
156
+ requestedTools: true,
157
+ toolCalls,
158
+ step: context.state.step,
159
+ timestamp: context.now(),
160
+ });
161
+ context.messages.push({
162
+ role: 'assistant',
163
+ content: response.content ?? '',
164
+ toolCalls,
165
+ });
166
+ for (const call of toolCalls) {
167
+ const toolCallResult = await executeToolTurn(context, call);
168
+ if (toolCallResult) {
169
+ return toolCallResult;
170
+ }
171
+ }
172
+ return 'continue';
173
+ }
174
+ async function executeToolTurn(context, call) {
175
+ const interrupted = maybeFinishInterrupted(context, 'Agent run interrupted before tool execution');
176
+ if (interrupted) {
177
+ return interrupted;
178
+ }
179
+ const tool = context.registry.get(call.tool);
180
+ const approvalDeniedResult = await maybeDenyToolCall({
181
+ call,
182
+ tool,
183
+ step: context.state.step,
184
+ now: context.now,
185
+ approveToolCall: context.approveToolCall,
186
+ record: context.record,
187
+ log: context.log,
188
+ });
189
+ if (approvalDeniedResult) {
190
+ return handleDeniedToolResult(context, call.id, approvalDeniedResult);
191
+ }
192
+ const execution = await executeToolCallWithFallback({
193
+ call,
194
+ step: context.state.step,
195
+ now: context.now,
196
+ registry: context.registry,
197
+ seenToolCalls: context.seenToolCalls,
198
+ approveToolCall: context.approveToolCall,
199
+ record: context.record,
200
+ log: context.log,
201
+ });
202
+ return handleExecutedToolResult(context, execution.effectiveCall, call.id, execution.result);
203
+ }
204
+ function handleDeniedToolResult(context, toolCallId, result) {
205
+ context.state.consecutiveErrors++;
206
+ const maybeFailure = maybeFinishAfterConsecutiveErrors(context, `Stopped after ${MAX_CONSECUTIVE_ERRORS} consecutive tool errors. Last error: ${result.error}`);
207
+ if (maybeFailure) {
208
+ return maybeFailure;
209
+ }
210
+ context.messages.push({
211
+ role: 'tool',
212
+ content: JSON.stringify(result),
213
+ toolCallId,
214
+ });
215
+ return undefined;
216
+ }
217
+ function handleExecutedToolResult(context, effectiveCall, toolCallId, result) {
218
+ if (!result.ok) {
219
+ const maybeFailure = handleFailedToolExecution(context, result);
220
+ if (maybeFailure) {
221
+ return maybeFailure;
222
+ }
223
+ }
224
+ else {
225
+ context.state.consecutiveErrors = 0;
226
+ trackToolResult(context.mutation, effectiveCall, result);
227
+ if (effectiveCall.tool === 'update_plan') {
228
+ context.state.activePlan = parsePlanState(result.output);
229
+ }
230
+ }
231
+ context.messages.push({
232
+ role: 'tool',
233
+ content: JSON.stringify(result),
234
+ toolCallId,
235
+ });
236
+ pushProgressReminders(context, effectiveCall, result);
237
+ pushMutationFollowUps(context);
238
+ return undefined;
239
+ }
240
+ function handleFailedToolExecution(context, result) {
241
+ if (isRecoverableToolError(result.error)) {
242
+ context.messages.push({
243
+ role: 'system',
244
+ content: `Host reminder: the last tool call failed due to invalid or repeated tool use: ${result.error}. Correct the call immediately, switch tools, or use report_state if you are blocked. Do not keep retrying the same failing pattern.`,
245
+ });
246
+ }
247
+ else {
248
+ context.state.consecutiveErrors++;
249
+ }
250
+ return maybeFinishAfterConsecutiveErrors(context, `Stopped after ${MAX_CONSECUTIVE_ERRORS} consecutive tool errors. Last error: ${result.error}`);
251
+ }
252
+ function pushProgressReminders(context, effectiveCall, result) {
253
+ const reminders = buildProgressReminders(context.progress, {
254
+ effectiveCall,
255
+ result,
256
+ remainingSteps: context.budget.remaining(),
257
+ });
258
+ for (const reminder of reminders) {
259
+ context.messages.push({ role: 'system', content: reminder });
260
+ }
261
+ }
262
+ function pushMutationFollowUps(context) {
263
+ if (context.mutation.needsImmediateReviewReminder) {
264
+ context.mutation.needsImmediateReviewReminder = false;
265
+ context.messages.push({
266
+ role: 'system',
267
+ content: buildImmediateReviewReminder({
268
+ executedReviewCommands: context.mutation.executedReviewCommands,
269
+ pendingChangeReview: context.mutation.pendingChangeReview,
270
+ }),
271
+ });
272
+ }
273
+ if (context.mutation.needsImmediateVerificationReminder) {
274
+ context.mutation.needsImmediateVerificationReminder = false;
275
+ context.messages.push({
276
+ role: 'system',
277
+ content: buildImmediateVerificationReminder({
278
+ executedVerificationCommands: context.mutation.executedVerificationCommands,
279
+ pendingVerification: context.mutation.pendingVerification,
280
+ }),
281
+ });
282
+ }
283
+ }
284
+ function finalizeAssistantResponse(context, response) {
285
+ if (!response.content) {
286
+ return finishRun(context, 'error', 'Model returned an empty response');
287
+ }
288
+ const completionBlocker = getCompletionBlocker(context, response.content);
289
+ if (completionBlocker) {
290
+ const forcedSummary = buildForcedStructuredChangeSummary(context, response.content);
291
+ if (forcedSummary) {
292
+ context.record({
293
+ type: 'assistant.turn',
294
+ content: forcedSummary,
295
+ diagnostics: response.diagnostics,
296
+ requestedTools: false,
297
+ step: context.state.step,
298
+ timestamp: context.now(),
299
+ });
300
+ context.messages.push({ role: 'assistant', content: forcedSummary });
301
+ return finishRun(context, 'done', forcedSummary, {
302
+ logLevel: 'info',
303
+ logMessage: 'Agent run finished with host-enforced structured change summary',
304
+ });
305
+ }
306
+ context.messages.push({ role: 'system', content: completionBlocker });
307
+ return 'continue';
308
+ }
309
+ context.record({
310
+ type: 'assistant.turn',
311
+ content: response.content,
312
+ diagnostics: response.diagnostics,
313
+ requestedTools: false,
314
+ step: context.state.step,
315
+ timestamp: context.now(),
316
+ });
317
+ context.messages.push({ role: 'assistant', content: response.content });
318
+ return finishRun(context, 'done', response.content, {
319
+ logLevel: 'info',
320
+ logMessage: 'Agent run finished',
321
+ });
322
+ }
323
+ function getCompletionBlocker(context, responseContent) {
324
+ if (context.mutation.pendingVerification || context.mutation.pendingChangeReview) {
325
+ context.log.info({
326
+ step: context.state.step,
327
+ pendingVerification: context.mutation.pendingVerification,
328
+ pendingChangeReview: context.mutation.pendingChangeReview,
329
+ }, 'Blocking premature final answer until mutation follow-up is complete');
330
+ return buildPostMutationRequirement({
331
+ pendingVerification: context.mutation.pendingVerification,
332
+ pendingChangeReview: context.mutation.pendingChangeReview,
333
+ reviewCommands: context.mutation.executedReviewCommands,
334
+ verificationCommands: context.mutation.executedVerificationCommands,
335
+ noteExistingVerification: !context.mutation.pendingVerification,
336
+ });
337
+ }
338
+ if (context.mutation.requiresStructuredChangeSummary &&
339
+ !hasStructuredChangeSummary(responseContent, {
340
+ mutationCommands: context.mutation.executedMutationCommands,
341
+ reviewCommands: context.mutation.executedReviewCommands,
342
+ verificationCommands: context.mutation.executedVerificationCommands,
343
+ })) {
344
+ context.log.info({ step: context.state.step }, 'Blocking vague final answer until structured change summary is provided');
345
+ return buildStructuredChangeSummaryRequirement(context.mutation);
346
+ }
347
+ return undefined;
348
+ }
349
+ function buildForcedStructuredChangeSummary(context, responseContent) {
350
+ if (context.mutation.pendingVerification || context.mutation.pendingChangeReview) {
351
+ return undefined;
352
+ }
353
+ if (!context.mutation.requiresStructuredChangeSummary) {
354
+ return undefined;
355
+ }
356
+ if (hasStructuredChangeSummary(responseContent, {
357
+ mutationCommands: context.mutation.executedMutationCommands,
358
+ reviewCommands: context.mutation.executedReviewCommands,
359
+ verificationCommands: context.mutation.executedVerificationCommands,
360
+ })) {
361
+ return undefined;
362
+ }
363
+ const lead = extractSummaryLead(responseContent) ?? 'Completed the requested change.';
364
+ const changed = context.mutation.executedMutationCommands.length > 0 ?
365
+ context.mutation.executedMutationCommands.join('; ')
366
+ : 'workspace-changing command(s) already executed';
367
+ const review = context.mutation.executedReviewEvidence.length > 0 ?
368
+ context.mutation.executedReviewEvidence.join('; ')
369
+ : context.mutation.executedReviewCommands.join('; ') || 'no repo review evidence captured';
370
+ const verification = context.mutation.executedVerificationEvidence.length > 0 ?
371
+ context.mutation.executedVerificationEvidence.join('; ')
372
+ : context.mutation.executedVerificationCommands.join('; ') || 'no verification evidence captured';
373
+ return `${lead}\n\n- Changed: ${changed}\n- Verified: ${review}; ${verification}\n- Remaining uncertainty: none`;
374
+ }
375
+ function extractSummaryLead(content) {
376
+ const lines = content
377
+ .split('\n')
378
+ .map((line) => line.trim())
379
+ .filter(Boolean);
380
+ const first = lines[0];
381
+ if (!first) {
382
+ return undefined;
383
+ }
384
+ if (/^(?:[-*]\s+)?(?:changed|verified|remaining uncertainty|uncertainty|remaining risks?)\s*:/i.test(first)) {
385
+ return undefined;
386
+ }
387
+ return first;
388
+ }
389
+ function maybeFinishInterrupted(context, logMessage) {
390
+ if (!context.shouldStop?.()) {
391
+ return undefined;
392
+ }
393
+ return finishInterrupted(context, logMessage);
394
+ }
395
+ function finishInterrupted(context, logMessage) {
396
+ return finishRun(context, 'interrupted', INTERRUPTED_SUMMARY, {
397
+ logLevel: 'info',
398
+ logMessage,
399
+ });
400
+ }
401
+ function maybeFinishAfterConsecutiveErrors(context, summary) {
402
+ if (context.state.consecutiveErrors < MAX_CONSECUTIVE_ERRORS) {
403
+ return undefined;
404
+ }
405
+ return finishRun(context, 'error', summary);
406
+ }
407
+ function finishRun(context, outcome, summary, logging) {
408
+ context.state.outcome = outcome;
409
+ context.state.summary = summary;
410
+ if (logging) {
411
+ context.log[logging.logLevel]({ step: context.state.step, outcome, maxSteps: context.maxSteps }, logging.logMessage);
412
+ }
413
+ context.record({
414
+ type: 'run.finished',
415
+ outcome,
416
+ summary,
417
+ step: context.state.step,
418
+ timestamp: context.now(),
419
+ });
420
+ return {
421
+ outcome,
422
+ summary,
423
+ trace: context.trace.getTrace(),
424
+ transcript: context.messages.slice(1),
425
+ usage: context.state.usage,
426
+ };
427
+ }
428
+ function isRunResult(value) {
429
+ return 'outcome' in value;
430
+ }
431
+ function accumulateUsage(current, next) {
432
+ if (!next) {
433
+ return current;
434
+ }
435
+ if (!current) {
436
+ return { ...next };
437
+ }
438
+ const cachedInputTokens = (current.cachedInputTokens ?? 0) + (next.cachedInputTokens ?? 0);
439
+ const reasoningTokens = (current.reasoningTokens ?? 0) + (next.reasoningTokens ?? 0);
440
+ const requests = (current.requests ?? 0) + (next.requests ?? 0);
441
+ return {
442
+ inputTokens: current.inputTokens + next.inputTokens,
443
+ outputTokens: current.outputTokens + next.outputTokens,
444
+ totalTokens: current.totalTokens + next.totalTokens,
445
+ cachedInputTokens: cachedInputTokens || undefined,
446
+ reasoningTokens: reasoningTokens || undefined,
447
+ requests: requests || undefined,
448
+ };
449
+ }
450
+ function parsePlanState(output) {
451
+ if (!output || typeof output !== 'object' || Array.isArray(output)) {
452
+ return undefined;
453
+ }
454
+ const candidate = output;
455
+ if (!Array.isArray(candidate.plan)) {
456
+ return undefined;
457
+ }
458
+ const items = candidate.plan.flatMap((item) => {
459
+ if (!item || typeof item !== 'object' || Array.isArray(item)) {
460
+ return [];
461
+ }
462
+ const step = typeof item.step === 'string' ? item.step : undefined;
463
+ const status = item.status;
464
+ if (!step || typeof status !== 'string' || !PLAN_ITEM_STATUSES.has(status)) {
465
+ return [];
466
+ }
467
+ return [{ step, status: status }];
468
+ });
469
+ if (items.length === 0) {
470
+ return undefined;
471
+ }
472
+ return {
473
+ explanation: typeof candidate.explanation === 'string' ? candidate.explanation : undefined,
474
+ items,
475
+ };
476
+ }
477
+ //# sourceMappingURL=run-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-agent.js","sourceRoot":"","sources":["../../src/run-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ToolDefinition } from '../types.js';
2
+ export type EditFilePreview = {
3
+ path: string;
4
+ action: 'created' | 'overwritten' | 'replaced';
5
+ diff: string;
6
+ truncated: boolean;
7
+ };
8
+ export declare const editFileTool: ToolDefinition;
9
+ export declare function previewEditFileInput(raw: unknown, workspaceRoot?: string): Promise<EditFilePreview | undefined>;
10
+ //# sourceMappingURL=edit-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../src/tools/edit-file.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAiB9D,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAKF,eAAO,MAAM,YAAY,EAAE,cA6D1B,CAAC;AAsEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAsCpI"}