@zhijiewang/openharness 0.12.0 → 1.0.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 (523) hide show
  1. package/README.md +56 -0
  2. package/dist/agents/roles.js +42 -0
  3. package/dist/commands/index.js +127 -8
  4. package/dist/components/InitWizard.js +84 -5
  5. package/dist/harness/session.d.ts +19 -0
  6. package/dist/harness/session.js +53 -0
  7. package/dist/mcp/registry.d.ts +31 -0
  8. package/dist/mcp/registry.js +180 -0
  9. package/dist/renderer/index.d.ts +7 -0
  10. package/dist/renderer/index.js +33 -5
  11. package/dist/repl.js +13 -0
  12. package/dist/tools/AgentTool/index.js +1 -1
  13. package/package.json +5 -2
  14. package/dist/DeferredTool.d.ts.map +0 -1
  15. package/dist/DeferredTool.js.map +0 -1
  16. package/dist/DeferredTool.test.d.ts +0 -2
  17. package/dist/DeferredTool.test.d.ts.map +0 -1
  18. package/dist/DeferredTool.test.js +0 -79
  19. package/dist/DeferredTool.test.js.map +0 -1
  20. package/dist/Tool.d.ts.map +0 -1
  21. package/dist/Tool.js.map +0 -1
  22. package/dist/Tool.test.d.ts +0 -2
  23. package/dist/Tool.test.d.ts.map +0 -1
  24. package/dist/Tool.test.js +0 -48
  25. package/dist/Tool.test.js.map +0 -1
  26. package/dist/agents/roles.d.ts.map +0 -1
  27. package/dist/agents/roles.js.map +0 -1
  28. package/dist/agents/roles.test.d.ts +0 -2
  29. package/dist/agents/roles.test.d.ts.map +0 -1
  30. package/dist/agents/roles.test.js +0 -62
  31. package/dist/agents/roles.test.js.map +0 -1
  32. package/dist/commands/commands-new.test.d.ts +0 -5
  33. package/dist/commands/commands-new.test.d.ts.map +0 -1
  34. package/dist/commands/commands-new.test.js +0 -132
  35. package/dist/commands/commands-new.test.js.map +0 -1
  36. package/dist/commands/commands.test.d.ts +0 -2
  37. package/dist/commands/commands.test.d.ts.map +0 -1
  38. package/dist/commands/commands.test.js +0 -98
  39. package/dist/commands/commands.test.js.map +0 -1
  40. package/dist/commands/cybergotchi.d.ts.map +0 -1
  41. package/dist/commands/cybergotchi.js.map +0 -1
  42. package/dist/commands/index.d.ts.map +0 -1
  43. package/dist/commands/index.js.map +0 -1
  44. package/dist/components/App.d.ts.map +0 -1
  45. package/dist/components/App.js.map +0 -1
  46. package/dist/components/CompanionFooter.d.ts.map +0 -1
  47. package/dist/components/CompanionFooter.js.map +0 -1
  48. package/dist/components/CybergotchiBubble.d.ts.map +0 -1
  49. package/dist/components/CybergotchiBubble.js.map +0 -1
  50. package/dist/components/CybergotchiPanel.d.ts.map +0 -1
  51. package/dist/components/CybergotchiPanel.js.map +0 -1
  52. package/dist/components/CybergotchiPanelConnected.d.ts.map +0 -1
  53. package/dist/components/CybergotchiPanelConnected.js.map +0 -1
  54. package/dist/components/CybergotchiSetup.d.ts.map +0 -1
  55. package/dist/components/CybergotchiSetup.js.map +0 -1
  56. package/dist/components/CybergotchiSprite.d.ts.map +0 -1
  57. package/dist/components/CybergotchiSprite.js.map +0 -1
  58. package/dist/components/DiffView.d.ts.map +0 -1
  59. package/dist/components/DiffView.js.map +0 -1
  60. package/dist/components/ErrorBoundary.d.ts.map +0 -1
  61. package/dist/components/ErrorBoundary.js.map +0 -1
  62. package/dist/components/InitWizard.d.ts.map +0 -1
  63. package/dist/components/InitWizard.js.map +0 -1
  64. package/dist/components/Markdown.d.ts.map +0 -1
  65. package/dist/components/Markdown.js.map +0 -1
  66. package/dist/components/Messages.d.ts.map +0 -1
  67. package/dist/components/Messages.js.map +0 -1
  68. package/dist/components/PermissionPrompt.d.ts.map +0 -1
  69. package/dist/components/PermissionPrompt.js.map +0 -1
  70. package/dist/components/REPL.d.ts.map +0 -1
  71. package/dist/components/REPL.js.map +0 -1
  72. package/dist/components/Spinner.d.ts.map +0 -1
  73. package/dist/components/Spinner.js.map +0 -1
  74. package/dist/components/TextInput.d.ts.map +0 -1
  75. package/dist/components/TextInput.js.map +0 -1
  76. package/dist/components/ToolCallDisplay.d.ts.map +0 -1
  77. package/dist/components/ToolCallDisplay.js.map +0 -1
  78. package/dist/cybergotchi/bones.d.ts.map +0 -1
  79. package/dist/cybergotchi/bones.js.map +0 -1
  80. package/dist/cybergotchi/bones.test.d.ts +0 -2
  81. package/dist/cybergotchi/bones.test.d.ts.map +0 -1
  82. package/dist/cybergotchi/bones.test.js +0 -100
  83. package/dist/cybergotchi/bones.test.js.map +0 -1
  84. package/dist/cybergotchi/config.d.ts.map +0 -1
  85. package/dist/cybergotchi/config.js.map +0 -1
  86. package/dist/cybergotchi/events.d.ts.map +0 -1
  87. package/dist/cybergotchi/events.js.map +0 -1
  88. package/dist/cybergotchi/needs.d.ts.map +0 -1
  89. package/dist/cybergotchi/needs.js.map +0 -1
  90. package/dist/cybergotchi/needs.test.d.ts +0 -2
  91. package/dist/cybergotchi/needs.test.d.ts.map +0 -1
  92. package/dist/cybergotchi/needs.test.js +0 -150
  93. package/dist/cybergotchi/needs.test.js.map +0 -1
  94. package/dist/cybergotchi/personality.d.ts.map +0 -1
  95. package/dist/cybergotchi/personality.js.map +0 -1
  96. package/dist/cybergotchi/species.d.ts.map +0 -1
  97. package/dist/cybergotchi/species.js.map +0 -1
  98. package/dist/cybergotchi/speech.d.ts.map +0 -1
  99. package/dist/cybergotchi/speech.js.map +0 -1
  100. package/dist/cybergotchi/types.d.ts.map +0 -1
  101. package/dist/cybergotchi/types.js.map +0 -1
  102. package/dist/cybergotchi/useCybergotchi.d.ts.map +0 -1
  103. package/dist/cybergotchi/useCybergotchi.js.map +0 -1
  104. package/dist/git/git.test.d.ts +0 -2
  105. package/dist/git/git.test.d.ts.map +0 -1
  106. package/dist/git/git.test.js +0 -141
  107. package/dist/git/git.test.js.map +0 -1
  108. package/dist/git/index.d.ts.map +0 -1
  109. package/dist/git/index.js.map +0 -1
  110. package/dist/harness/checkpoints.d.ts.map +0 -1
  111. package/dist/harness/checkpoints.js.map +0 -1
  112. package/dist/harness/config.d.ts.map +0 -1
  113. package/dist/harness/config.js.map +0 -1
  114. package/dist/harness/config.test.d.ts +0 -2
  115. package/dist/harness/config.test.d.ts.map +0 -1
  116. package/dist/harness/config.test.js +0 -107
  117. package/dist/harness/config.test.js.map +0 -1
  118. package/dist/harness/context-warning.d.ts.map +0 -1
  119. package/dist/harness/context-warning.js.map +0 -1
  120. package/dist/harness/context-warning.test.d.ts +0 -2
  121. package/dist/harness/context-warning.test.d.ts.map +0 -1
  122. package/dist/harness/context-warning.test.js +0 -72
  123. package/dist/harness/context-warning.test.js.map +0 -1
  124. package/dist/harness/cost.d.ts.map +0 -1
  125. package/dist/harness/cost.js.map +0 -1
  126. package/dist/harness/cost.test.d.ts +0 -2
  127. package/dist/harness/cost.test.d.ts.map +0 -1
  128. package/dist/harness/cost.test.js +0 -43
  129. package/dist/harness/cost.test.js.map +0 -1
  130. package/dist/harness/credentials.d.ts.map +0 -1
  131. package/dist/harness/credentials.js.map +0 -1
  132. package/dist/harness/credentials.test.d.ts +0 -2
  133. package/dist/harness/credentials.test.d.ts.map +0 -1
  134. package/dist/harness/credentials.test.js +0 -113
  135. package/dist/harness/credentials.test.js.map +0 -1
  136. package/dist/harness/hooks-env.test.d.ts +0 -5
  137. package/dist/harness/hooks-env.test.d.ts.map +0 -1
  138. package/dist/harness/hooks-env.test.js +0 -41
  139. package/dist/harness/hooks-env.test.js.map +0 -1
  140. package/dist/harness/hooks.d.ts.map +0 -1
  141. package/dist/harness/hooks.js.map +0 -1
  142. package/dist/harness/hooks.test.d.ts +0 -2
  143. package/dist/harness/hooks.test.d.ts.map +0 -1
  144. package/dist/harness/hooks.test.js +0 -24
  145. package/dist/harness/hooks.test.js.map +0 -1
  146. package/dist/harness/keybindings.d.ts.map +0 -1
  147. package/dist/harness/keybindings.js.map +0 -1
  148. package/dist/harness/keybindings.test.d.ts +0 -2
  149. package/dist/harness/keybindings.test.d.ts.map +0 -1
  150. package/dist/harness/keybindings.test.js +0 -38
  151. package/dist/harness/keybindings.test.js.map +0 -1
  152. package/dist/harness/memory-consolidation.test.d.ts +0 -2
  153. package/dist/harness/memory-consolidation.test.d.ts.map +0 -1
  154. package/dist/harness/memory-consolidation.test.js +0 -152
  155. package/dist/harness/memory-consolidation.test.js.map +0 -1
  156. package/dist/harness/memory.d.ts.map +0 -1
  157. package/dist/harness/memory.js.map +0 -1
  158. package/dist/harness/memory.test.d.ts +0 -2
  159. package/dist/harness/memory.test.d.ts.map +0 -1
  160. package/dist/harness/memory.test.js +0 -107
  161. package/dist/harness/memory.test.js.map +0 -1
  162. package/dist/harness/onboarding.d.ts.map +0 -1
  163. package/dist/harness/onboarding.js.map +0 -1
  164. package/dist/harness/onboarding.test.d.ts +0 -5
  165. package/dist/harness/onboarding.test.d.ts.map +0 -1
  166. package/dist/harness/onboarding.test.js +0 -93
  167. package/dist/harness/onboarding.test.js.map +0 -1
  168. package/dist/harness/plugins.d.ts.map +0 -1
  169. package/dist/harness/plugins.js.map +0 -1
  170. package/dist/harness/plugins.test.d.ts +0 -2
  171. package/dist/harness/plugins.test.d.ts.map +0 -1
  172. package/dist/harness/plugins.test.js +0 -97
  173. package/dist/harness/plugins.test.js.map +0 -1
  174. package/dist/harness/rules.d.ts.map +0 -1
  175. package/dist/harness/rules.js.map +0 -1
  176. package/dist/harness/rules.test.d.ts +0 -2
  177. package/dist/harness/rules.test.d.ts.map +0 -1
  178. package/dist/harness/rules.test.js +0 -54
  179. package/dist/harness/rules.test.js.map +0 -1
  180. package/dist/harness/session.d.ts.map +0 -1
  181. package/dist/harness/session.js.map +0 -1
  182. package/dist/harness/session.test.d.ts +0 -2
  183. package/dist/harness/session.test.d.ts.map +0 -1
  184. package/dist/harness/session.test.js +0 -73
  185. package/dist/harness/session.test.js.map +0 -1
  186. package/dist/harness/store.d.ts.map +0 -1
  187. package/dist/harness/store.js.map +0 -1
  188. package/dist/harness/store.test.d.ts +0 -2
  189. package/dist/harness/store.test.d.ts.map +0 -1
  190. package/dist/harness/store.test.js +0 -71
  191. package/dist/harness/store.test.js.map +0 -1
  192. package/dist/harness/submit-handler.d.ts.map +0 -1
  193. package/dist/harness/submit-handler.js.map +0 -1
  194. package/dist/harness/submit-handler.test.d.ts +0 -2
  195. package/dist/harness/submit-handler.test.d.ts.map +0 -1
  196. package/dist/harness/submit-handler.test.js +0 -62
  197. package/dist/harness/submit-handler.test.js.map +0 -1
  198. package/dist/harness/verification.d.ts.map +0 -1
  199. package/dist/harness/verification.js.map +0 -1
  200. package/dist/harness/verification.test.d.ts +0 -2
  201. package/dist/harness/verification.test.d.ts.map +0 -1
  202. package/dist/harness/verification.test.js +0 -181
  203. package/dist/harness/verification.test.js.map +0 -1
  204. package/dist/lsp/client.d.ts.map +0 -1
  205. package/dist/lsp/client.js.map +0 -1
  206. package/dist/lsp/client.test.d.ts +0 -2
  207. package/dist/lsp/client.test.d.ts.map +0 -1
  208. package/dist/lsp/client.test.js +0 -44
  209. package/dist/lsp/client.test.js.map +0 -1
  210. package/dist/main.d.ts.map +0 -1
  211. package/dist/main.js.map +0 -1
  212. package/dist/mcp/DeferredMcpTool.d.ts.map +0 -1
  213. package/dist/mcp/DeferredMcpTool.js.map +0 -1
  214. package/dist/mcp/McpTool.d.ts.map +0 -1
  215. package/dist/mcp/McpTool.js.map +0 -1
  216. package/dist/mcp/McpTool.test.d.ts +0 -2
  217. package/dist/mcp/McpTool.test.d.ts.map +0 -1
  218. package/dist/mcp/McpTool.test.js +0 -53
  219. package/dist/mcp/McpTool.test.js.map +0 -1
  220. package/dist/mcp/client.d.ts.map +0 -1
  221. package/dist/mcp/client.js.map +0 -1
  222. package/dist/mcp/loader.d.ts.map +0 -1
  223. package/dist/mcp/loader.js.map +0 -1
  224. package/dist/mcp/loader.test.d.ts +0 -7
  225. package/dist/mcp/loader.test.d.ts.map +0 -1
  226. package/dist/mcp/loader.test.js +0 -25
  227. package/dist/mcp/loader.test.js.map +0 -1
  228. package/dist/mcp/schema.d.ts.map +0 -1
  229. package/dist/mcp/schema.js.map +0 -1
  230. package/dist/mcp/schema.test.d.ts +0 -2
  231. package/dist/mcp/schema.test.d.ts.map +0 -1
  232. package/dist/mcp/schema.test.js +0 -33
  233. package/dist/mcp/schema.test.js.map +0 -1
  234. package/dist/mcp/server.d.ts.map +0 -1
  235. package/dist/mcp/server.js.map +0 -1
  236. package/dist/mcp/server.test.d.ts +0 -2
  237. package/dist/mcp/server.test.d.ts.map +0 -1
  238. package/dist/mcp/server.test.js +0 -54
  239. package/dist/mcp/server.test.js.map +0 -1
  240. package/dist/mcp/types.d.ts.map +0 -1
  241. package/dist/mcp/types.js.map +0 -1
  242. package/dist/providers/anthropic-convert.test.d.ts +0 -5
  243. package/dist/providers/anthropic-convert.test.d.ts.map +0 -1
  244. package/dist/providers/anthropic-convert.test.js +0 -98
  245. package/dist/providers/anthropic-convert.test.js.map +0 -1
  246. package/dist/providers/anthropic.d.ts.map +0 -1
  247. package/dist/providers/anthropic.js.map +0 -1
  248. package/dist/providers/anthropic.test.d.ts +0 -2
  249. package/dist/providers/anthropic.test.d.ts.map +0 -1
  250. package/dist/providers/anthropic.test.js +0 -18
  251. package/dist/providers/anthropic.test.js.map +0 -1
  252. package/dist/providers/base.d.ts.map +0 -1
  253. package/dist/providers/base.js.map +0 -1
  254. package/dist/providers/index.d.ts.map +0 -1
  255. package/dist/providers/index.js.map +0 -1
  256. package/dist/providers/llamacpp.d.ts.map +0 -1
  257. package/dist/providers/llamacpp.js.map +0 -1
  258. package/dist/providers/llamacpp.test.d.ts +0 -2
  259. package/dist/providers/llamacpp.test.d.ts.map +0 -1
  260. package/dist/providers/llamacpp.test.js +0 -33
  261. package/dist/providers/llamacpp.test.js.map +0 -1
  262. package/dist/providers/message-format.test.d.ts +0 -2
  263. package/dist/providers/message-format.test.d.ts.map +0 -1
  264. package/dist/providers/message-format.test.js +0 -31
  265. package/dist/providers/message-format.test.js.map +0 -1
  266. package/dist/providers/ollama.d.ts.map +0 -1
  267. package/dist/providers/ollama.js.map +0 -1
  268. package/dist/providers/ollama.test.d.ts +0 -2
  269. package/dist/providers/ollama.test.d.ts.map +0 -1
  270. package/dist/providers/ollama.test.js +0 -40
  271. package/dist/providers/ollama.test.js.map +0 -1
  272. package/dist/providers/openai.d.ts.map +0 -1
  273. package/dist/providers/openai.js.map +0 -1
  274. package/dist/providers/openai.test.d.ts +0 -2
  275. package/dist/providers/openai.test.d.ts.map +0 -1
  276. package/dist/providers/openai.test.js +0 -23
  277. package/dist/providers/openai.test.js.map +0 -1
  278. package/dist/providers/openrouter.d.ts.map +0 -1
  279. package/dist/providers/openrouter.js.map +0 -1
  280. package/dist/providers/stream-parsing.test.d.ts +0 -6
  281. package/dist/providers/stream-parsing.test.d.ts.map +0 -1
  282. package/dist/providers/stream-parsing.test.js +0 -174
  283. package/dist/providers/stream-parsing.test.js.map +0 -1
  284. package/dist/query/compress.d.ts.map +0 -1
  285. package/dist/query/compress.js.map +0 -1
  286. package/dist/query/errors.d.ts.map +0 -1
  287. package/dist/query/errors.js.map +0 -1
  288. package/dist/query/index.d.ts.map +0 -1
  289. package/dist/query/index.js.map +0 -1
  290. package/dist/query/tools.d.ts.map +0 -1
  291. package/dist/query/tools.js.map +0 -1
  292. package/dist/query/types.d.ts.map +0 -1
  293. package/dist/query/types.js.map +0 -1
  294. package/dist/query.d.ts.map +0 -1
  295. package/dist/query.js.map +0 -1
  296. package/dist/query.test.d.ts +0 -2
  297. package/dist/query.test.d.ts.map +0 -1
  298. package/dist/query.test.js +0 -121
  299. package/dist/query.test.js.map +0 -1
  300. package/dist/remote/server.d.ts.map +0 -1
  301. package/dist/remote/server.js.map +0 -1
  302. package/dist/remote/server.test.d.ts +0 -2
  303. package/dist/remote/server.test.d.ts.map +0 -1
  304. package/dist/remote/server.test.js +0 -120
  305. package/dist/remote/server.test.js.map +0 -1
  306. package/dist/renderer/cells.d.ts.map +0 -1
  307. package/dist/renderer/cells.js.map +0 -1
  308. package/dist/renderer/cells.test.d.ts +0 -2
  309. package/dist/renderer/cells.test.d.ts.map +0 -1
  310. package/dist/renderer/cells.test.js +0 -69
  311. package/dist/renderer/cells.test.js.map +0 -1
  312. package/dist/renderer/colors.d.ts.map +0 -1
  313. package/dist/renderer/colors.js.map +0 -1
  314. package/dist/renderer/diff.d.ts.map +0 -1
  315. package/dist/renderer/diff.js.map +0 -1
  316. package/dist/renderer/diff.test.d.ts +0 -5
  317. package/dist/renderer/diff.test.d.ts.map +0 -1
  318. package/dist/renderer/diff.test.js +0 -140
  319. package/dist/renderer/diff.test.js.map +0 -1
  320. package/dist/renderer/differ.d.ts.map +0 -1
  321. package/dist/renderer/differ.js.map +0 -1
  322. package/dist/renderer/e2e.test.d.ts +0 -6
  323. package/dist/renderer/e2e.test.d.ts.map +0 -1
  324. package/dist/renderer/e2e.test.js +0 -702
  325. package/dist/renderer/e2e.test.js.map +0 -1
  326. package/dist/renderer/image.d.ts.map +0 -1
  327. package/dist/renderer/image.js.map +0 -1
  328. package/dist/renderer/image.test.d.ts +0 -5
  329. package/dist/renderer/image.test.d.ts.map +0 -1
  330. package/dist/renderer/image.test.js +0 -66
  331. package/dist/renderer/image.test.js.map +0 -1
  332. package/dist/renderer/index.d.ts.map +0 -1
  333. package/dist/renderer/index.js.map +0 -1
  334. package/dist/renderer/input.d.ts.map +0 -1
  335. package/dist/renderer/input.js.map +0 -1
  336. package/dist/renderer/input.test.d.ts +0 -5
  337. package/dist/renderer/input.test.d.ts.map +0 -1
  338. package/dist/renderer/input.test.js +0 -129
  339. package/dist/renderer/input.test.js.map +0 -1
  340. package/dist/renderer/layout.d.ts.map +0 -1
  341. package/dist/renderer/layout.js.map +0 -1
  342. package/dist/renderer/markdown.d.ts.map +0 -1
  343. package/dist/renderer/markdown.js.map +0 -1
  344. package/dist/renderer/markdown.test.d.ts +0 -2
  345. package/dist/renderer/markdown.test.d.ts.map +0 -1
  346. package/dist/renderer/markdown.test.js +0 -81
  347. package/dist/renderer/markdown.test.js.map +0 -1
  348. package/dist/renderer/perf.test.d.ts +0 -2
  349. package/dist/renderer/perf.test.d.ts.map +0 -1
  350. package/dist/renderer/perf.test.js +0 -128
  351. package/dist/renderer/perf.test.js.map +0 -1
  352. package/dist/renderer/session-browser.d.ts.map +0 -1
  353. package/dist/renderer/session-browser.js.map +0 -1
  354. package/dist/renderer/session-browser.test.d.ts +0 -6
  355. package/dist/renderer/session-browser.test.d.ts.map +0 -1
  356. package/dist/renderer/session-browser.test.js +0 -95
  357. package/dist/renderer/session-browser.test.js.map +0 -1
  358. package/dist/renderer/ui-ux.test.d.ts +0 -15
  359. package/dist/renderer/ui-ux.test.d.ts.map +0 -1
  360. package/dist/renderer/ui-ux.test.js +0 -470
  361. package/dist/renderer/ui-ux.test.js.map +0 -1
  362. package/dist/repl.d.ts.map +0 -1
  363. package/dist/repl.js.map +0 -1
  364. package/dist/services/AgentDispatcher.d.ts.map +0 -1
  365. package/dist/services/AgentDispatcher.js.map +0 -1
  366. package/dist/services/AgentDispatcher.test.d.ts +0 -2
  367. package/dist/services/AgentDispatcher.test.d.ts.map +0 -1
  368. package/dist/services/AgentDispatcher.test.js +0 -66
  369. package/dist/services/AgentDispatcher.test.js.map +0 -1
  370. package/dist/services/CronExecutor.d.ts.map +0 -1
  371. package/dist/services/CronExecutor.js.map +0 -1
  372. package/dist/services/CronExecutor.test.d.ts +0 -2
  373. package/dist/services/CronExecutor.test.d.ts.map +0 -1
  374. package/dist/services/CronExecutor.test.js +0 -128
  375. package/dist/services/CronExecutor.test.js.map +0 -1
  376. package/dist/services/StreamingToolExecutor.d.ts.map +0 -1
  377. package/dist/services/StreamingToolExecutor.js.map +0 -1
  378. package/dist/services/StreamingToolExecutor.test.d.ts +0 -2
  379. package/dist/services/StreamingToolExecutor.test.d.ts.map +0 -1
  380. package/dist/services/StreamingToolExecutor.test.js +0 -103
  381. package/dist/services/StreamingToolExecutor.test.js.map +0 -1
  382. package/dist/services/agent-messaging.d.ts.map +0 -1
  383. package/dist/services/agent-messaging.js.map +0 -1
  384. package/dist/services/agent-messaging.test.d.ts +0 -2
  385. package/dist/services/agent-messaging.test.d.ts.map +0 -1
  386. package/dist/services/agent-messaging.test.js +0 -88
  387. package/dist/services/agent-messaging.test.js.map +0 -1
  388. package/dist/services/cron.d.ts.map +0 -1
  389. package/dist/services/cron.js.map +0 -1
  390. package/dist/services/cron.test.d.ts +0 -2
  391. package/dist/services/cron.test.d.ts.map +0 -1
  392. package/dist/services/cron.test.js +0 -49
  393. package/dist/services/cron.test.js.map +0 -1
  394. package/dist/test-helpers.d.ts +0 -31
  395. package/dist/test-helpers.d.ts.map +0 -1
  396. package/dist/test-helpers.js +0 -106
  397. package/dist/test-helpers.js.map +0 -1
  398. package/dist/tools/AgentTool/index.d.ts.map +0 -1
  399. package/dist/tools/AgentTool/index.js.map +0 -1
  400. package/dist/tools/AskUserTool/index.d.ts.map +0 -1
  401. package/dist/tools/AskUserTool/index.js.map +0 -1
  402. package/dist/tools/BashTool/index.d.ts.map +0 -1
  403. package/dist/tools/BashTool/index.js.map +0 -1
  404. package/dist/tools/CronTool/index.d.ts.map +0 -1
  405. package/dist/tools/CronTool/index.js.map +0 -1
  406. package/dist/tools/DiagnosticsTool/index.d.ts.map +0 -1
  407. package/dist/tools/DiagnosticsTool/index.js.map +0 -1
  408. package/dist/tools/EnterPlanModeTool/index.d.ts.map +0 -1
  409. package/dist/tools/EnterPlanModeTool/index.js.map +0 -1
  410. package/dist/tools/EnterWorktreeTool/index.d.ts.map +0 -1
  411. package/dist/tools/EnterWorktreeTool/index.js.map +0 -1
  412. package/dist/tools/ExitPlanModeTool/index.d.ts.map +0 -1
  413. package/dist/tools/ExitPlanModeTool/index.js.map +0 -1
  414. package/dist/tools/ExitWorktreeTool/index.d.ts.map +0 -1
  415. package/dist/tools/ExitWorktreeTool/index.js.map +0 -1
  416. package/dist/tools/FileEditTool/index.d.ts.map +0 -1
  417. package/dist/tools/FileEditTool/index.js.map +0 -1
  418. package/dist/tools/FileReadTool/index.d.ts.map +0 -1
  419. package/dist/tools/FileReadTool/index.js.map +0 -1
  420. package/dist/tools/FileWriteTool/index.d.ts.map +0 -1
  421. package/dist/tools/FileWriteTool/index.js.map +0 -1
  422. package/dist/tools/GlobTool/index.d.ts.map +0 -1
  423. package/dist/tools/GlobTool/index.js.map +0 -1
  424. package/dist/tools/GrepTool/index.d.ts.map +0 -1
  425. package/dist/tools/GrepTool/index.js.map +0 -1
  426. package/dist/tools/ImageReadTool/index.d.ts.map +0 -1
  427. package/dist/tools/ImageReadTool/index.js.map +0 -1
  428. package/dist/tools/KillProcessTool/index.d.ts.map +0 -1
  429. package/dist/tools/KillProcessTool/index.js.map +0 -1
  430. package/dist/tools/LSTool/index.d.ts.map +0 -1
  431. package/dist/tools/LSTool/index.js.map +0 -1
  432. package/dist/tools/MemoryTool/index.d.ts.map +0 -1
  433. package/dist/tools/MemoryTool/index.js.map +0 -1
  434. package/dist/tools/MultiEditTool/index.d.ts.map +0 -1
  435. package/dist/tools/MultiEditTool/index.js.map +0 -1
  436. package/dist/tools/NotebookEditTool/index.d.ts.map +0 -1
  437. package/dist/tools/NotebookEditTool/index.js.map +0 -1
  438. package/dist/tools/ParallelAgentTool/index.d.ts.map +0 -1
  439. package/dist/tools/ParallelAgentTool/index.js.map +0 -1
  440. package/dist/tools/RemoteTriggerTool/index.d.ts.map +0 -1
  441. package/dist/tools/RemoteTriggerTool/index.js.map +0 -1
  442. package/dist/tools/SendMessageTool/index.d.ts.map +0 -1
  443. package/dist/tools/SendMessageTool/index.js.map +0 -1
  444. package/dist/tools/SkillTool/index.d.ts.map +0 -1
  445. package/dist/tools/SkillTool/index.js.map +0 -1
  446. package/dist/tools/TaskCreateTool/index.d.ts.map +0 -1
  447. package/dist/tools/TaskCreateTool/index.js.map +0 -1
  448. package/dist/tools/TaskGetTool/index.d.ts.map +0 -1
  449. package/dist/tools/TaskGetTool/index.js.map +0 -1
  450. package/dist/tools/TaskListTool/index.d.ts.map +0 -1
  451. package/dist/tools/TaskListTool/index.js.map +0 -1
  452. package/dist/tools/TaskOutputTool/index.d.ts.map +0 -1
  453. package/dist/tools/TaskOutputTool/index.js.map +0 -1
  454. package/dist/tools/TaskStopTool/index.d.ts.map +0 -1
  455. package/dist/tools/TaskStopTool/index.js.map +0 -1
  456. package/dist/tools/TaskUpdateTool/index.d.ts.map +0 -1
  457. package/dist/tools/TaskUpdateTool/index.js.map +0 -1
  458. package/dist/tools/ToolSearchTool/index.d.ts.map +0 -1
  459. package/dist/tools/ToolSearchTool/index.js.map +0 -1
  460. package/dist/tools/WebFetchTool/index.d.ts.map +0 -1
  461. package/dist/tools/WebFetchTool/index.js.map +0 -1
  462. package/dist/tools/WebSearchTool/index.d.ts.map +0 -1
  463. package/dist/tools/WebSearchTool/index.js.map +0 -1
  464. package/dist/tools/file-edit.test.d.ts +0 -2
  465. package/dist/tools/file-edit.test.d.ts.map +0 -1
  466. package/dist/tools/file-edit.test.js +0 -35
  467. package/dist/tools/file-edit.test.js.map +0 -1
  468. package/dist/tools/tools-basic.test.d.ts +0 -6
  469. package/dist/tools/tools-basic.test.d.ts.map +0 -1
  470. package/dist/tools/tools-basic.test.js +0 -379
  471. package/dist/tools/tools-basic.test.js.map +0 -1
  472. package/dist/tools/web-fetch.test.d.ts +0 -2
  473. package/dist/tools/web-fetch.test.d.ts.map +0 -1
  474. package/dist/tools/web-fetch.test.js +0 -27
  475. package/dist/tools/web-fetch.test.js.map +0 -1
  476. package/dist/tools.d.ts.map +0 -1
  477. package/dist/tools.js.map +0 -1
  478. package/dist/types/events.d.ts.map +0 -1
  479. package/dist/types/events.js.map +0 -1
  480. package/dist/types/message.d.ts.map +0 -1
  481. package/dist/types/message.js.map +0 -1
  482. package/dist/types/message.test.d.ts +0 -2
  483. package/dist/types/message.test.d.ts.map +0 -1
  484. package/dist/types/message.test.js +0 -46
  485. package/dist/types/message.test.js.map +0 -1
  486. package/dist/types/permissions.d.ts.map +0 -1
  487. package/dist/types/permissions.js.map +0 -1
  488. package/dist/types/permissions.test.d.ts +0 -2
  489. package/dist/types/permissions.test.d.ts.map +0 -1
  490. package/dist/types/permissions.test.js +0 -127
  491. package/dist/types/permissions.test.js.map +0 -1
  492. package/dist/utils/bash-safety.d.ts.map +0 -1
  493. package/dist/utils/bash-safety.js.map +0 -1
  494. package/dist/utils/bash-safety.test.d.ts +0 -2
  495. package/dist/utils/bash-safety.test.d.ts.map +0 -1
  496. package/dist/utils/bash-safety.test.js +0 -112
  497. package/dist/utils/bash-safety.test.js.map +0 -1
  498. package/dist/utils/diff-algorithm.d.ts.map +0 -1
  499. package/dist/utils/diff-algorithm.js.map +0 -1
  500. package/dist/utils/diff-algorithm.test.d.ts +0 -2
  501. package/dist/utils/diff-algorithm.test.d.ts.map +0 -1
  502. package/dist/utils/diff-algorithm.test.js +0 -49
  503. package/dist/utils/diff-algorithm.test.js.map +0 -1
  504. package/dist/utils/format.d.ts.map +0 -1
  505. package/dist/utils/format.js.map +0 -1
  506. package/dist/utils/fs.d.ts.map +0 -1
  507. package/dist/utils/fs.js.map +0 -1
  508. package/dist/utils/fs.test.d.ts +0 -5
  509. package/dist/utils/fs.test.d.ts.map +0 -1
  510. package/dist/utils/fs.test.js +0 -82
  511. package/dist/utils/fs.test.js.map +0 -1
  512. package/dist/utils/safe-env.d.ts.map +0 -1
  513. package/dist/utils/safe-env.js.map +0 -1
  514. package/dist/utils/theme-data.d.ts.map +0 -1
  515. package/dist/utils/theme-data.js.map +0 -1
  516. package/dist/utils/theme.d.ts.map +0 -1
  517. package/dist/utils/theme.js.map +0 -1
  518. package/dist/utils/tool-summary.d.ts.map +0 -1
  519. package/dist/utils/tool-summary.js.map +0 -1
  520. package/dist/utils/tool-summary.test.d.ts +0 -2
  521. package/dist/utils/tool-summary.test.d.ts.map +0 -1
  522. package/dist/utils/tool-summary.test.js +0 -93
  523. package/dist/utils/tool-summary.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/WebSearchTool/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=file-edit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-edit.test.d.ts","sourceRoot":"","sources":["../../src/tools/file-edit.test.ts"],"names":[],"mappings":""}
@@ -1,35 +0,0 @@
1
- import test from "node:test";
2
- import assert from "node:assert/strict";
3
- import { mkdtempSync, writeFileSync, readFileSync } from "node:fs";
4
- import { tmpdir } from "node:os";
5
- import { join } from "node:path";
6
- import { FileEditTool } from "./FileEditTool/index.js";
7
- const ctx = { workingDir: process.cwd() };
8
- test("replace string in file", async () => {
9
- const tmp = mkdtempSync(join(tmpdir(), "oh-test-"));
10
- const f = join(tmp, "test.txt");
11
- writeFileSync(f, "hello world");
12
- const r = await FileEditTool.call({ file_path: f, old_string: "hello", new_string: "goodbye" }, ctx);
13
- assert.equal(r.isError, false);
14
- assert.equal(readFileSync(f, "utf-8"), "goodbye world");
15
- });
16
- test("returns error when old_string not found", async () => {
17
- const tmp = mkdtempSync(join(tmpdir(), "oh-test-"));
18
- const f = join(tmp, "test.txt");
19
- writeFileSync(f, "hello world");
20
- const r = await FileEditTool.call({ file_path: f, old_string: "missing", new_string: "x" }, ctx);
21
- assert.equal(r.isError, true);
22
- assert.ok(r.output.includes("not found"));
23
- });
24
- test("returns error when old_string not unique unless replace_all", async () => {
25
- const tmp = mkdtempSync(join(tmpdir(), "oh-test-"));
26
- const f = join(tmp, "test.txt");
27
- writeFileSync(f, "aaa bbb aaa");
28
- const r1 = await FileEditTool.call({ file_path: f, old_string: "aaa", new_string: "ccc" }, ctx);
29
- assert.equal(r1.isError, true);
30
- assert.ok(r1.output.includes("not unique"));
31
- const r2 = await FileEditTool.call({ file_path: f, old_string: "aaa", new_string: "ccc", replace_all: true }, ctx);
32
- assert.equal(r2.isError, false);
33
- assert.equal(readFileSync(f, "utf-8"), "ccc bbb ccc");
34
- });
35
- //# sourceMappingURL=file-edit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-edit.test.js","sourceRoot":"","sources":["../../src/tools/file-edit.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Basic happy-path tests for all tools.
3
- * Uses node:test + node:assert/strict.
4
- */
5
- export {};
6
- //# sourceMappingURL=tools-basic.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools-basic.test.d.ts","sourceRoot":"","sources":["../../src/tools/tools-basic.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,379 +0,0 @@
1
- /**
2
- * Basic happy-path tests for all tools.
3
- * Uses node:test + node:assert/strict.
4
- */
5
- import { describe, it, afterEach } from "node:test";
6
- import assert from "node:assert/strict";
7
- import { join } from "node:path";
8
- import { makeTmpDir, writeFile, mockFetch, createMockTool } from "../test-helpers.js";
9
- // Tool imports
10
- import { BashTool } from "./BashTool/index.js";
11
- import { FileReadTool } from "./FileReadTool/index.js";
12
- import { FileWriteTool } from "./FileWriteTool/index.js";
13
- import { GlobTool } from "./GlobTool/index.js";
14
- import { GrepTool } from "./GrepTool/index.js";
15
- import { LSTool } from "./LSTool/index.js";
16
- import { WebSearchTool } from "./WebSearchTool/index.js";
17
- import { TaskCreateTool } from "./TaskCreateTool/index.js";
18
- import { TaskUpdateTool } from "./TaskUpdateTool/index.js";
19
- import { TaskListTool } from "./TaskListTool/index.js";
20
- import { TaskGetTool } from "./TaskGetTool/index.js";
21
- import { TaskStopTool } from "./TaskStopTool/index.js";
22
- import { TaskOutputTool } from "./TaskOutputTool/index.js";
23
- import { AskUserTool } from "./AskUserTool/index.js";
24
- import { SkillTool } from "./SkillTool/index.js";
25
- import { AgentTool } from "./AgentTool/index.js";
26
- import { EnterPlanModeTool } from "./EnterPlanModeTool/index.js";
27
- import { ExitPlanModeTool } from "./ExitPlanModeTool/index.js";
28
- import { NotebookEditTool } from "./NotebookEditTool/index.js";
29
- import { ImageReadTool } from "./ImageReadTool/index.js";
30
- import { DiagnosticsTool } from "./DiagnosticsTool/index.js";
31
- import { ParallelAgentTool } from "./ParallelAgentTool/index.js";
32
- import { ToolSearchTool } from "./ToolSearchTool/index.js";
33
- function ctx(tmpdir, extra = {}) {
34
- return { workingDir: tmpdir, ...extra };
35
- }
36
- describe("tools-basic", () => {
37
- let cleanupFetch = null;
38
- afterEach(() => {
39
- if (cleanupFetch) {
40
- cleanupFetch();
41
- cleanupFetch = null;
42
- }
43
- });
44
- it("BashTool — echo hello", async () => {
45
- const tmp = makeTmpDir();
46
- const result = await BashTool.call({ command: "echo hello" }, ctx(tmp));
47
- assert.equal(result.isError, false);
48
- assert.ok(result.output.includes("hello"));
49
- });
50
- it("FileReadTool — reads file contents", async () => {
51
- const tmp = makeTmpDir();
52
- const filePath = writeFile(tmp, "read-me.txt", "greetings from file");
53
- const result = await FileReadTool.call({ file_path: filePath }, ctx(tmp));
54
- assert.equal(result.isError, false);
55
- assert.ok(result.output.includes("greetings from file"));
56
- });
57
- it("FileWriteTool — writes a file", async () => {
58
- const tmp = makeTmpDir();
59
- const filePath = join(tmp, "output.txt");
60
- const result = await FileWriteTool.call({ file_path: filePath, content: "test content" }, ctx(tmp));
61
- assert.equal(result.isError, false);
62
- assert.ok(result.output.includes(filePath));
63
- });
64
- it("GlobTool — finds files by pattern", async () => {
65
- const tmp = makeTmpDir();
66
- writeFile(tmp, "alpha.txt", "a");
67
- writeFile(tmp, "beta.txt", "b");
68
- writeFile(tmp, "gamma.js", "c");
69
- const result = await GlobTool.call({ pattern: "*.txt", path: tmp }, ctx(tmp));
70
- assert.equal(result.isError, false);
71
- assert.ok(result.output.includes("alpha.txt"));
72
- assert.ok(result.output.includes("beta.txt"));
73
- assert.ok(!result.output.includes("gamma.js"));
74
- });
75
- it("GrepTool — searches file contents", async () => {
76
- const tmp = makeTmpDir();
77
- writeFile(tmp, "haystack.txt", "hello world\ngoodbye world");
78
- const result = await GrepTool.call({ pattern: "hello", path: tmp }, ctx(tmp));
79
- assert.equal(result.isError, false);
80
- assert.ok(result.output.includes("haystack.txt"));
81
- });
82
- it("LSTool — lists directory contents", async () => {
83
- const tmp = makeTmpDir();
84
- writeFile(tmp, "one.txt", "1");
85
- writeFile(tmp, "two.txt", "2");
86
- const result = await LSTool.call({ path: tmp }, ctx(tmp));
87
- assert.equal(result.isError, false);
88
- assert.ok(result.output.includes("one.txt"));
89
- assert.ok(result.output.includes("two.txt"));
90
- });
91
- it("WebSearchTool — returns results with mocked fetch", async () => {
92
- const html = `
93
- <a class="result__a" href="?uddg=https%3A%2F%2Fexample.com">Example</a>
94
- <a class="result__snippet">A snippet</a>
95
- `;
96
- cleanupFetch = mockFetch(async () => new Response(html, { status: 200 }));
97
- const tmp = makeTmpDir();
98
- const result = await WebSearchTool.call({ query: "test" }, ctx(tmp));
99
- assert.equal(result.isError, false);
100
- });
101
- it("TaskCreateTool — creates a task", async () => {
102
- const tmp = makeTmpDir();
103
- const result = await TaskCreateTool.call({ subject: "test task", description: "a test description" }, ctx(tmp));
104
- assert.equal(result.isError, false);
105
- assert.ok(result.output.includes("Task #1"));
106
- });
107
- it("TaskUpdateTool — updates an existing task", async () => {
108
- const tmp = makeTmpDir();
109
- // Create a task first
110
- await TaskCreateTool.call({ subject: "task to update", description: "original desc" }, ctx(tmp));
111
- const result = await TaskUpdateTool.call({ taskId: 1, status: "completed" }, ctx(tmp));
112
- assert.equal(result.isError, false);
113
- assert.ok(result.output.includes("completed"));
114
- });
115
- it("TaskListTool — lists tasks", async () => {
116
- const tmp = makeTmpDir();
117
- await TaskCreateTool.call({ subject: "listed task", description: "desc" }, ctx(tmp));
118
- const result = await TaskListTool.call({}, ctx(tmp));
119
- assert.equal(result.isError, false);
120
- assert.ok(result.output.includes("listed task"));
121
- });
122
- it("AskUserTool — headless fallback", async () => {
123
- const tmp = makeTmpDir();
124
- const result = await AskUserTool.call({ question: "What color?" }, ctx(tmp));
125
- assert.equal(result.isError, false);
126
- assert.ok(result.output.includes("What color?"));
127
- });
128
- it("SkillTool — list skills (empty is OK)", async () => {
129
- const tmp = makeTmpDir();
130
- const result = await SkillTool.call({ skill: "list" }, ctx(tmp));
131
- assert.equal(result.isError, false);
132
- });
133
- it("AgentTool — errors without provider in context", async () => {
134
- const tmp = makeTmpDir();
135
- const result = await AgentTool.call({ prompt: "do something" }, ctx(tmp));
136
- assert.equal(result.isError, true);
137
- assert.ok(result.output.includes("unavailable"));
138
- });
139
- it("EnterPlanModeTool — creates plan mode", async () => {
140
- const tmp = makeTmpDir();
141
- const result = await EnterPlanModeTool.call({}, ctx(tmp));
142
- assert.equal(result.isError, false);
143
- assert.ok(result.output.includes("Plan mode entered"));
144
- });
145
- it("ExitPlanModeTool — exits plan mode", async () => {
146
- const tmp = makeTmpDir();
147
- const result = await ExitPlanModeTool.call({}, ctx(tmp));
148
- assert.equal(result.isError, false);
149
- assert.ok(result.output.includes("Plan mode exited"));
150
- });
151
- it("NotebookEditTool — edits a notebook cell", async () => {
152
- const tmp = makeTmpDir();
153
- const notebook = {
154
- cells: [
155
- { cell_type: "code", source: ["print('old')"], metadata: {}, outputs: [] },
156
- ],
157
- metadata: {},
158
- nbformat: 4,
159
- nbformat_minor: 2,
160
- };
161
- writeFile(tmp, "test.ipynb", JSON.stringify(notebook));
162
- const result = await NotebookEditTool.call({ notebook_path: "test.ipynb", cell_index: 0, new_source: "print('new')" }, ctx(tmp));
163
- assert.equal(result.isError, false);
164
- assert.ok(result.output.includes("Cell 0 updated"));
165
- });
166
- it("ImageReadTool — errors on non-image file", async () => {
167
- const tmp = makeTmpDir();
168
- const filePath = writeFile(tmp, "test.txt", "not an image");
169
- const result = await ImageReadTool.call({ file_path: filePath }, ctx(tmp));
170
- assert.equal(result.isError, true);
171
- assert.ok(result.output.includes("Unsupported image type"));
172
- });
173
- it("DiagnosticsTool — errors without LSP server", async () => {
174
- const tmp = makeTmpDir();
175
- const result = await DiagnosticsTool.call({ file_path: "/nonexistent/file.txt", action: "diagnostics" }, ctx(tmp));
176
- assert.equal(result.isError, true);
177
- assert.ok(result.output.includes("No language server"));
178
- });
179
- it("ParallelAgentTool — errors without provider in context", async () => {
180
- const tmp = makeTmpDir();
181
- const result = await ParallelAgentTool.call({ tasks: [{ id: "a", prompt: "test" }] }, ctx(tmp));
182
- assert.equal(result.isError, true);
183
- assert.ok(result.output.includes("unavailable"));
184
- });
185
- it("ToolSearchTool — finds a mock tool by name", async () => {
186
- const tmp = makeTmpDir();
187
- const mock = createMockTool("MockAlpha");
188
- const result = await ToolSearchTool.call({ query: "Mock", maxResults: 5 }, ctx(tmp, { tools: [mock] }));
189
- assert.equal(result.isError, false);
190
- assert.ok(result.output.includes("MockAlpha"));
191
- });
192
- // ── TaskGetTool ──
193
- it("TaskGetTool — gets a task by ID", async () => {
194
- const tmp = makeTmpDir();
195
- await TaskCreateTool.call({ subject: "get me", description: "desc" }, ctx(tmp));
196
- const result = await TaskGetTool.call({ taskId: 1 }, ctx(tmp));
197
- assert.equal(result.isError, false);
198
- assert.ok(result.output.includes("get me"));
199
- assert.ok(result.output.includes("pending"));
200
- });
201
- it("TaskGetTool — errors on missing task", async () => {
202
- const tmp = makeTmpDir();
203
- await TaskCreateTool.call({ subject: "x", description: "y" }, ctx(tmp));
204
- const result = await TaskGetTool.call({ taskId: 99 }, ctx(tmp));
205
- assert.equal(result.isError, true);
206
- assert.ok(result.output.includes("not found"));
207
- });
208
- // ── TaskStopTool ──
209
- it("TaskStopTool — cancels a pending task", async () => {
210
- const tmp = makeTmpDir();
211
- await TaskCreateTool.call({ subject: "cancel me", description: "d" }, ctx(tmp));
212
- const result = await TaskStopTool.call({ taskId: 1, reason: "no longer needed" }, ctx(tmp));
213
- assert.equal(result.isError, false);
214
- assert.ok(result.output.includes("cancelled"));
215
- // Verify it's actually cancelled
216
- const get = await TaskGetTool.call({ taskId: 1 }, ctx(tmp));
217
- assert.ok(get.output.includes("cancelled"));
218
- });
219
- it("TaskStopTool — no-op on already completed task", async () => {
220
- const tmp = makeTmpDir();
221
- await TaskCreateTool.call({ subject: "done", description: "d" }, ctx(tmp));
222
- await TaskUpdateTool.call({ taskId: 1, status: "completed" }, ctx(tmp));
223
- const result = await TaskStopTool.call({ taskId: 1 }, ctx(tmp));
224
- assert.equal(result.isError, false);
225
- assert.ok(result.output.includes("already completed"));
226
- });
227
- // ── TaskOutputTool ──
228
- it("TaskOutputTool — saves output to a task", async () => {
229
- const tmp = makeTmpDir();
230
- await TaskCreateTool.call({ subject: "output me", description: "d" }, ctx(tmp));
231
- const result = await TaskOutputTool.call({ taskId: 1, output: "result data" }, ctx(tmp));
232
- assert.equal(result.isError, false);
233
- assert.ok(result.output.includes("saved"));
234
- // Verify output is stored
235
- const get = await TaskGetTool.call({ taskId: 1 }, ctx(tmp));
236
- assert.ok(get.output.includes("result data"));
237
- });
238
- // ── TaskUpdate enhanced fields ──
239
- it("TaskUpdateTool — deletes a task", async () => {
240
- const tmp = makeTmpDir();
241
- await TaskCreateTool.call({ subject: "delete me", description: "d" }, ctx(tmp));
242
- const result = await TaskUpdateTool.call({ taskId: 1, status: "deleted" }, ctx(tmp));
243
- assert.equal(result.isError, false);
244
- assert.ok(result.output.includes("deleted"));
245
- // Verify it's gone
246
- const list = await TaskListTool.call({}, ctx(tmp));
247
- assert.ok(!list.output.includes("delete me"));
248
- });
249
- it("TaskUpdateTool — sets blocks/blockedBy", async () => {
250
- const tmp = makeTmpDir();
251
- await TaskCreateTool.call({ subject: "first", description: "d" }, ctx(tmp));
252
- await TaskCreateTool.call({ subject: "second", description: "d" }, ctx(tmp));
253
- const result = await TaskUpdateTool.call({ taskId: 2, addBlockedBy: [1] }, ctx(tmp));
254
- assert.equal(result.isError, false);
255
- });
256
- // ── TaskCreate with activeForm ──
257
- it("TaskCreateTool — creates with activeForm", async () => {
258
- const tmp = makeTmpDir();
259
- const result = await TaskCreateTool.call({ subject: "build it", description: "d", activeForm: "Building it" }, ctx(tmp));
260
- assert.equal(result.isError, false);
261
- assert.ok(result.output.includes("Task #1"));
262
- });
263
- // ── GrepTool output modes ──
264
- it("GrepTool — output_mode files_with_matches (default)", async () => {
265
- const tmp = makeTmpDir();
266
- writeFile(tmp, "a.txt", "hello world");
267
- writeFile(tmp, "b.txt", "goodbye world");
268
- const result = await GrepTool.call({ pattern: "hello", path: tmp, output_mode: "files_with_matches" }, ctx(tmp));
269
- assert.equal(result.isError, false);
270
- assert.ok(result.output.includes("a.txt"));
271
- assert.ok(!result.output.includes("b.txt"));
272
- });
273
- it("GrepTool — output_mode content shows matching lines", async () => {
274
- const tmp = makeTmpDir();
275
- writeFile(tmp, "c.txt", "line one\nline two\nline three");
276
- const result = await GrepTool.call({ pattern: "two", path: tmp, output_mode: "content" }, ctx(tmp));
277
- assert.equal(result.isError, false);
278
- assert.ok(result.output.includes("line two"));
279
- });
280
- it("GrepTool — output_mode count", async () => {
281
- const tmp = makeTmpDir();
282
- writeFile(tmp, "d.txt", "aaa\naaa\nbbb");
283
- const result = await GrepTool.call({ pattern: "aaa", path: tmp, output_mode: "count" }, ctx(tmp));
284
- assert.equal(result.isError, false);
285
- assert.ok(result.output.includes("2"));
286
- });
287
- it("GrepTool — type filter", async () => {
288
- const tmp = makeTmpDir();
289
- writeFile(tmp, "code.ts", "const x = 1;");
290
- writeFile(tmp, "style.css", "const y = 2;");
291
- const result = await GrepTool.call({ pattern: "const", path: tmp, type: "ts" }, ctx(tmp));
292
- assert.equal(result.isError, false);
293
- assert.ok(result.output.includes("code.ts"));
294
- assert.ok(!result.output.includes("style.css"));
295
- });
296
- it("GrepTool — case insensitive", async () => {
297
- const tmp = makeTmpDir();
298
- writeFile(tmp, "e.txt", "Hello World");
299
- const result = await GrepTool.call({ pattern: "hello", path: tmp, "-i": true }, ctx(tmp));
300
- assert.equal(result.isError, false);
301
- assert.ok(result.output.includes("e.txt"));
302
- });
303
- it("GrepTool — head_limit", async () => {
304
- const tmp = makeTmpDir();
305
- writeFile(tmp, "f1.txt", "match");
306
- writeFile(tmp, "f2.txt", "match");
307
- writeFile(tmp, "f3.txt", "match");
308
- const result = await GrepTool.call({ pattern: "match", path: tmp, head_limit: 2 }, ctx(tmp));
309
- assert.equal(result.isError, false);
310
- const fileCount = result.output.split("\n").filter(l => l.trim()).length;
311
- assert.ok(fileCount <= 2);
312
- });
313
- // ── LSTool depth ──
314
- it("LSTool — depth 1 (default) shows only immediate contents", async () => {
315
- const tmp = makeTmpDir();
316
- writeFile(tmp, "top.txt", "t");
317
- writeFile(tmp, "sub/nested.txt", "n");
318
- const result = await LSTool.call({ path: tmp }, ctx(tmp));
319
- assert.equal(result.isError, false);
320
- assert.ok(result.output.includes("top.txt"));
321
- assert.ok(result.output.includes("sub/"));
322
- assert.ok(!result.output.includes("nested.txt"));
323
- });
324
- it("LSTool — depth 2 shows nested files", async () => {
325
- const tmp = makeTmpDir();
326
- writeFile(tmp, "top.txt", "t");
327
- writeFile(tmp, "sub/nested.txt", "n");
328
- const result = await LSTool.call({ path: tmp, depth: 2 }, ctx(tmp));
329
- assert.equal(result.isError, false);
330
- assert.ok(result.output.includes("top.txt"));
331
- assert.ok(result.output.includes("nested.txt"));
332
- });
333
- // ── FileReadTool — notebook ──
334
- it("FileReadTool — reads Jupyter notebook cells", async () => {
335
- const tmp = makeTmpDir();
336
- const nb = {
337
- cells: [
338
- { cell_type: "code", source: ["print('hi')"], outputs: [{ text: ["hi\n"] }] },
339
- { cell_type: "markdown", source: ["# Title"], outputs: [] },
340
- ],
341
- metadata: {},
342
- nbformat: 4,
343
- nbformat_minor: 2,
344
- };
345
- const fp = writeFile(tmp, "test.ipynb", JSON.stringify(nb));
346
- const result = await FileReadTool.call({ file_path: fp }, ctx(tmp));
347
- assert.equal(result.isError, false);
348
- assert.ok(result.output.includes("print('hi')"));
349
- assert.ok(result.output.includes("# Title"));
350
- assert.ok(result.output.includes("[Output]"));
351
- });
352
- // ── FileReadTool — image ──
353
- it("FileReadTool — returns base64 for PNG files", async () => {
354
- const tmp = makeTmpDir();
355
- // Write a minimal PNG header
356
- const { writeFileSync: wfs } = await import("node:fs");
357
- const fp = join(tmp, "tiny.png");
358
- wfs(fp, Buffer.from("89504e470d0a1a0a", "hex"));
359
- const result = await FileReadTool.call({ file_path: fp }, ctx(tmp));
360
- assert.equal(result.isError, false);
361
- assert.ok(result.output.startsWith("__IMAGE__:image/png:"));
362
- });
363
- // ── FileWriteTool — overwrite detection ──
364
- it("FileWriteTool — reports Created for new file", async () => {
365
- const tmp = makeTmpDir();
366
- const fp = join(tmp, "new.txt");
367
- const result = await FileWriteTool.call({ file_path: fp, content: "new" }, ctx(tmp));
368
- assert.equal(result.isError, false);
369
- assert.ok(result.output.includes("Created"));
370
- });
371
- it("FileWriteTool — reports Overwrote for existing file", async () => {
372
- const tmp = makeTmpDir();
373
- const fp = writeFile(tmp, "existing.txt", "old");
374
- const result = await FileWriteTool.call({ file_path: fp, content: "new" }, ctx(tmp));
375
- assert.equal(result.isError, false);
376
- assert.ok(result.output.includes("Overwrote"));
377
- });
378
- });
379
- //# sourceMappingURL=tools-basic.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools-basic.test.js","sourceRoot":"","sources":["../../src/tools/tools-basic.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=web-fetch.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-fetch.test.d.ts","sourceRoot":"","sources":["../../src/tools/web-fetch.test.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import test from "node:test";
2
- import assert from "node:assert/strict";
3
- import { WebFetchTool } from "./WebFetchTool/index.js";
4
- const ctx = { workingDir: process.cwd() };
5
- test("blocks localhost", async () => {
6
- const r = await WebFetchTool.call({ url: "http://localhost:8080/secret" }, ctx);
7
- assert.equal(r.isError, true);
8
- assert.ok(r.output.includes("blocked"));
9
- });
10
- test("blocks 192.168.x.x", async () => {
11
- const r = await WebFetchTool.call({ url: "http://192.168.1.1/" }, ctx);
12
- assert.equal(r.isError, true);
13
- assert.ok(r.output.includes("blocked"));
14
- });
15
- test("blocks .internal hostnames", async () => {
16
- const r = await WebFetchTool.call({ url: "http://app.internal/api" }, ctx);
17
- assert.equal(r.isError, true);
18
- assert.ok(r.output.includes("blocked"));
19
- });
20
- test("allows normal https URLs (will fail to connect but not blocked)", async () => {
21
- // Use a URL that won't actually resolve to avoid network calls,
22
- // but the SSRF check itself should pass (error will be a fetch error, not "blocked")
23
- const r = await WebFetchTool.call({ url: "https://example.invalid/page" }, ctx);
24
- // Should NOT be the SSRF block message
25
- assert.ok(!r.output.includes("private/internal hosts is blocked"));
26
- });
27
- //# sourceMappingURL=web-fetch.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-fetch.test.js","sourceRoot":"","sources":["../../src/tools/web-fetch.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAE1C,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,8BAA8B,EAAE,EAAE,GAAG,CAAC,CAAC;IAChF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC5C,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,yBAAyB,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IACjF,gEAAgE;IAChE,qFAAqF;IACrF,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,8BAA8B,EAAE,EAAE,GAAG,CAAC,CAAC;IAChF,uCAAuC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAwCvC;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAoDnC"}
package/dist/tools.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,UAAU,GACV,YAAY,GACZ,UAAU,GACV,WAAW,GACX,aAAa,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/E,CAAC;AAEF,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC,CAAC,GACnE,OAAO,CAQT;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC9B,OAAO,CAET;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2BH,MAAM,UAAU,aAAa,CAC3B,IAAU,EACV,OAAe,EACf,KAAoE;IAEpE,OAAO;QACL,IAAI;QACJ,OAAO;QACP,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE;QACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,KAAK;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,SAA+B;IAE/B,OAAO,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IACxD,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=message.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.test.d.ts","sourceRoot":"","sources":["../../src/types/message.test.ts"],"names":[],"mappings":""}
@@ -1,46 +0,0 @@
1
- import test from "node:test";
2
- import assert from "node:assert/strict";
3
- import { createUserMessage, createAssistantMessage, createToolResultMessage, createInfoMessage, createPinnedMessage, } from "./message.js";
4
- test("createUserMessage has role 'user', uuid, and timestamp", () => {
5
- const msg = createUserMessage("hello");
6
- assert.equal(msg.role, "user");
7
- assert.equal(msg.content, "hello");
8
- assert.equal(typeof msg.uuid, "string");
9
- assert.ok(msg.uuid.length > 0);
10
- assert.equal(typeof msg.timestamp, "number");
11
- assert.ok(msg.timestamp > 0);
12
- });
13
- test("createAssistantMessage has role 'assistant' and optional toolCalls", () => {
14
- const plain = createAssistantMessage("hi");
15
- assert.equal(plain.role, "assistant");
16
- assert.equal(plain.toolCalls, undefined);
17
- const withTools = createAssistantMessage("hi", [
18
- { id: "c1", toolName: "Read", arguments: { path: "/tmp" } },
19
- ]);
20
- assert.equal(withTools.role, "assistant");
21
- assert.equal(withTools.toolCalls.length, 1);
22
- assert.equal(withTools.toolCalls[0].toolName, "Read");
23
- });
24
- test("createToolResultMessage has role 'tool' and toolResults array", () => {
25
- const msg = createToolResultMessage({
26
- callId: "c1",
27
- output: "done",
28
- isError: false,
29
- });
30
- assert.equal(msg.role, "tool");
31
- assert.ok(Array.isArray(msg.toolResults));
32
- assert.equal(msg.toolResults.length, 1);
33
- assert.equal(msg.toolResults[0].callId, "c1");
34
- });
35
- test("createInfoMessage has meta.isInfo = true", () => {
36
- const msg = createInfoMessage("info text");
37
- assert.equal(msg.role, "system");
38
- assert.equal(msg.meta?.isInfo, true);
39
- });
40
- test("createPinnedMessage has meta.pinned = true AND meta.isInfo = true", () => {
41
- const msg = createPinnedMessage("pinned text");
42
- assert.equal(msg.role, "system");
43
- assert.equal(msg.meta?.pinned, true);
44
- assert.equal(msg.meta?.isInfo, true);
45
- });
46
- //# sourceMappingURL=message.test.js.map