@mragentix/cli 4.2.37

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 (461) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +772 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/config.d.ts +16 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +29 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/core/agent-session.d.ts +87 -0
  12. package/dist/core/agent-session.d.ts.map +1 -0
  13. package/dist/core/agent-session.js +498 -0
  14. package/dist/core/agent-session.js.map +1 -0
  15. package/dist/core/agents.d.ts +30 -0
  16. package/dist/core/agents.d.ts.map +1 -0
  17. package/dist/core/agents.js +91 -0
  18. package/dist/core/agents.js.map +1 -0
  19. package/dist/core/auth-storage.d.ts +35 -0
  20. package/dist/core/auth-storage.d.ts.map +1 -0
  21. package/dist/core/auth-storage.js +144 -0
  22. package/dist/core/auth-storage.js.map +1 -0
  23. package/dist/core/auto-update.d.ts +8 -0
  24. package/dist/core/auto-update.d.ts.map +1 -0
  25. package/dist/core/auto-update.js +152 -0
  26. package/dist/core/auto-update.js.map +1 -0
  27. package/dist/core/compaction/compactor.d.ts +69 -0
  28. package/dist/core/compaction/compactor.d.ts.map +1 -0
  29. package/dist/core/compaction/compactor.js +405 -0
  30. package/dist/core/compaction/compactor.js.map +1 -0
  31. package/dist/core/compaction/compactor.test.d.ts +2 -0
  32. package/dist/core/compaction/compactor.test.d.ts.map +1 -0
  33. package/dist/core/compaction/compactor.test.js +461 -0
  34. package/dist/core/compaction/compactor.test.js.map +1 -0
  35. package/dist/core/compaction/token-estimator.d.ts +10 -0
  36. package/dist/core/compaction/token-estimator.d.ts.map +1 -0
  37. package/dist/core/compaction/token-estimator.js +75 -0
  38. package/dist/core/compaction/token-estimator.js.map +1 -0
  39. package/dist/core/compaction/token-estimator.test.d.ts +2 -0
  40. package/dist/core/compaction/token-estimator.test.d.ts.map +1 -0
  41. package/dist/core/compaction/token-estimator.test.js +137 -0
  42. package/dist/core/compaction/token-estimator.test.js.map +1 -0
  43. package/dist/core/custom-commands.d.ts +13 -0
  44. package/dist/core/custom-commands.d.ts.map +1 -0
  45. package/dist/core/custom-commands.js +40 -0
  46. package/dist/core/custom-commands.js.map +1 -0
  47. package/dist/core/event-bus.d.ts +95 -0
  48. package/dist/core/event-bus.d.ts.map +1 -0
  49. package/dist/core/event-bus.js +99 -0
  50. package/dist/core/event-bus.js.map +1 -0
  51. package/dist/core/extensions/loader.d.ts +8 -0
  52. package/dist/core/extensions/loader.d.ts.map +1 -0
  53. package/dist/core/extensions/loader.js +48 -0
  54. package/dist/core/extensions/loader.js.map +1 -0
  55. package/dist/core/extensions/types.d.ts +19 -0
  56. package/dist/core/extensions/types.d.ts.map +1 -0
  57. package/dist/core/extensions/types.js +2 -0
  58. package/dist/core/extensions/types.js.map +1 -0
  59. package/dist/core/file-lock.d.ts +6 -0
  60. package/dist/core/file-lock.d.ts.map +1 -0
  61. package/dist/core/file-lock.js +76 -0
  62. package/dist/core/file-lock.js.map +1 -0
  63. package/dist/core/index.d.ts +14 -0
  64. package/dist/core/index.d.ts.map +1 -0
  65. package/dist/core/index.js +13 -0
  66. package/dist/core/index.js.map +1 -0
  67. package/dist/core/logger.d.ts +26 -0
  68. package/dist/core/logger.d.ts.map +1 -0
  69. package/dist/core/logger.js +132 -0
  70. package/dist/core/logger.js.map +1 -0
  71. package/dist/core/mcp/client.d.ts +9 -0
  72. package/dist/core/mcp/client.d.ts.map +1 -0
  73. package/dist/core/mcp/client.js +126 -0
  74. package/dist/core/mcp/client.js.map +1 -0
  75. package/dist/core/mcp/defaults.d.ts +9 -0
  76. package/dist/core/mcp/defaults.d.ts.map +1 -0
  77. package/dist/core/mcp/defaults.js +47 -0
  78. package/dist/core/mcp/defaults.js.map +1 -0
  79. package/dist/core/mcp/index.d.ts +4 -0
  80. package/dist/core/mcp/index.d.ts.map +1 -0
  81. package/dist/core/mcp/index.js +3 -0
  82. package/dist/core/mcp/index.js.map +1 -0
  83. package/dist/core/mcp/types.d.ts +15 -0
  84. package/dist/core/mcp/types.d.ts.map +1 -0
  85. package/dist/core/mcp/types.js +2 -0
  86. package/dist/core/mcp/types.js.map +1 -0
  87. package/dist/core/model-registry.d.ts +25 -0
  88. package/dist/core/model-registry.d.ts.map +1 -0
  89. package/dist/core/model-registry.js +135 -0
  90. package/dist/core/model-registry.js.map +1 -0
  91. package/dist/core/oauth/anthropic.d.ts +4 -0
  92. package/dist/core/oauth/anthropic.d.ts.map +1 -0
  93. package/dist/core/oauth/anthropic.js +75 -0
  94. package/dist/core/oauth/anthropic.js.map +1 -0
  95. package/dist/core/oauth/openai.d.ts +4 -0
  96. package/dist/core/oauth/openai.d.ts.map +1 -0
  97. package/dist/core/oauth/openai.js +186 -0
  98. package/dist/core/oauth/openai.js.map +1 -0
  99. package/dist/core/oauth/pkce.d.ts +5 -0
  100. package/dist/core/oauth/pkce.d.ts.map +1 -0
  101. package/dist/core/oauth/pkce.js +17 -0
  102. package/dist/core/oauth/pkce.js.map +1 -0
  103. package/dist/core/oauth/types.d.ts +12 -0
  104. package/dist/core/oauth/types.d.ts.map +1 -0
  105. package/dist/core/oauth/types.js +2 -0
  106. package/dist/core/oauth/types.js.map +1 -0
  107. package/dist/core/process-manager.d.ts +30 -0
  108. package/dist/core/process-manager.d.ts.map +1 -0
  109. package/dist/core/process-manager.js +130 -0
  110. package/dist/core/process-manager.js.map +1 -0
  111. package/dist/core/prompt-commands.d.ts +14 -0
  112. package/dist/core/prompt-commands.d.ts.map +1 -0
  113. package/dist/core/prompt-commands.js +496 -0
  114. package/dist/core/prompt-commands.js.map +1 -0
  115. package/dist/core/session-manager.d.ts +112 -0
  116. package/dist/core/session-manager.d.ts.map +1 -0
  117. package/dist/core/session-manager.js +326 -0
  118. package/dist/core/session-manager.js.map +1 -0
  119. package/dist/core/settings-manager.d.ts +43 -0
  120. package/dist/core/settings-manager.d.ts.map +1 -0
  121. package/dist/core/settings-manager.js +64 -0
  122. package/dist/core/settings-manager.js.map +1 -0
  123. package/dist/core/skills.d.ts +23 -0
  124. package/dist/core/skills.d.ts.map +1 -0
  125. package/dist/core/skills.js +89 -0
  126. package/dist/core/skills.js.map +1 -0
  127. package/dist/core/slash-commands.d.ts +35 -0
  128. package/dist/core/slash-commands.d.ts.map +1 -0
  129. package/dist/core/slash-commands.js +183 -0
  130. package/dist/core/slash-commands.js.map +1 -0
  131. package/dist/core/telegram.d.ts +94 -0
  132. package/dist/core/telegram.d.ts.map +1 -0
  133. package/dist/core/telegram.js +227 -0
  134. package/dist/core/telegram.js.map +1 -0
  135. package/dist/index.d.ts +10 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +15 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/interactive.d.ts +3 -0
  140. package/dist/interactive.d.ts.map +1 -0
  141. package/dist/interactive.js +173 -0
  142. package/dist/interactive.js.map +1 -0
  143. package/dist/modes/index.d.ts +3 -0
  144. package/dist/modes/index.d.ts.map +1 -0
  145. package/dist/modes/index.js +3 -0
  146. package/dist/modes/index.js.map +1 -0
  147. package/dist/modes/json-mode.d.ts +13 -0
  148. package/dist/modes/json-mode.d.ts.map +1 -0
  149. package/dist/modes/json-mode.js +74 -0
  150. package/dist/modes/json-mode.js.map +1 -0
  151. package/dist/modes/print-mode.d.ts +12 -0
  152. package/dist/modes/print-mode.d.ts.map +1 -0
  153. package/dist/modes/print-mode.js +49 -0
  154. package/dist/modes/print-mode.js.map +1 -0
  155. package/dist/modes/rpc-mode.d.ts +28 -0
  156. package/dist/modes/rpc-mode.d.ts.map +1 -0
  157. package/dist/modes/rpc-mode.js +145 -0
  158. package/dist/modes/rpc-mode.js.map +1 -0
  159. package/dist/modes/serve-mode.d.ts +21 -0
  160. package/dist/modes/serve-mode.d.ts.map +1 -0
  161. package/dist/modes/serve-mode.js +649 -0
  162. package/dist/modes/serve-mode.js.map +1 -0
  163. package/dist/session.d.ts +16 -0
  164. package/dist/session.d.ts.map +1 -0
  165. package/dist/session.js +129 -0
  166. package/dist/session.js.map +1 -0
  167. package/dist/system-prompt.d.ts +6 -0
  168. package/dist/system-prompt.d.ts.map +1 -0
  169. package/dist/system-prompt.js +115 -0
  170. package/dist/system-prompt.js.map +1 -0
  171. package/dist/tools/bash.d.ts +13 -0
  172. package/dist/tools/bash.d.ts.map +1 -0
  173. package/dist/tools/bash.js +165 -0
  174. package/dist/tools/bash.js.map +1 -0
  175. package/dist/tools/edit-diff.d.ts +18 -0
  176. package/dist/tools/edit-diff.d.ts.map +1 -0
  177. package/dist/tools/edit-diff.js +92 -0
  178. package/dist/tools/edit-diff.js.map +1 -0
  179. package/dist/tools/edit.d.ts +11 -0
  180. package/dist/tools/edit.d.ts.map +1 -0
  181. package/dist/tools/edit.js +57 -0
  182. package/dist/tools/edit.js.map +1 -0
  183. package/dist/tools/find.d.ts +9 -0
  184. package/dist/tools/find.d.ts.map +1 -0
  185. package/dist/tools/find.js +59 -0
  186. package/dist/tools/find.js.map +1 -0
  187. package/dist/tools/grep.d.ts +13 -0
  188. package/dist/tools/grep.d.ts.map +1 -0
  189. package/dist/tools/grep.js +121 -0
  190. package/dist/tools/grep.js.map +1 -0
  191. package/dist/tools/index.d.ts +30 -0
  192. package/dist/tools/index.d.ts.map +1 -0
  193. package/dist/tools/index.js +50 -0
  194. package/dist/tools/index.js.map +1 -0
  195. package/dist/tools/ls.d.ts +10 -0
  196. package/dist/tools/ls.d.ts.map +1 -0
  197. package/dist/tools/ls.js +56 -0
  198. package/dist/tools/ls.js.map +1 -0
  199. package/dist/tools/operations.d.ts +39 -0
  200. package/dist/tools/operations.d.ts.map +1 -0
  201. package/dist/tools/operations.js +27 -0
  202. package/dist/tools/operations.js.map +1 -0
  203. package/dist/tools/path-utils.d.ts +7 -0
  204. package/dist/tools/path-utils.d.ts.map +1 -0
  205. package/dist/tools/path-utils.js +27 -0
  206. package/dist/tools/path-utils.js.map +1 -0
  207. package/dist/tools/read.d.ts +12 -0
  208. package/dist/tools/read.d.ts.map +1 -0
  209. package/dist/tools/read.js +113 -0
  210. package/dist/tools/read.js.map +1 -0
  211. package/dist/tools/subagent.d.ts +26 -0
  212. package/dist/tools/subagent.d.ts.map +1 -0
  213. package/dist/tools/subagent.js +210 -0
  214. package/dist/tools/subagent.js.map +1 -0
  215. package/dist/tools/task-output.d.ts +10 -0
  216. package/dist/tools/task-output.d.ts.map +1 -0
  217. package/dist/tools/task-output.js +33 -0
  218. package/dist/tools/task-output.js.map +1 -0
  219. package/dist/tools/task-stop.d.ts +9 -0
  220. package/dist/tools/task-stop.d.ts.map +1 -0
  221. package/dist/tools/task-stop.js +15 -0
  222. package/dist/tools/task-stop.js.map +1 -0
  223. package/dist/tools/tasks.d.ts +16 -0
  224. package/dist/tools/tasks.d.ts.map +1 -0
  225. package/dist/tools/tasks.js +132 -0
  226. package/dist/tools/tasks.js.map +1 -0
  227. package/dist/tools/truncate.d.ts +19 -0
  228. package/dist/tools/truncate.d.ts.map +1 -0
  229. package/dist/tools/truncate.js +59 -0
  230. package/dist/tools/truncate.js.map +1 -0
  231. package/dist/tools/truncate.test.d.ts +2 -0
  232. package/dist/tools/truncate.test.d.ts.map +1 -0
  233. package/dist/tools/truncate.test.js +100 -0
  234. package/dist/tools/truncate.test.js.map +1 -0
  235. package/dist/tools/web-fetch.d.ts +9 -0
  236. package/dist/tools/web-fetch.d.ts.map +1 -0
  237. package/dist/tools/web-fetch.js +97 -0
  238. package/dist/tools/web-fetch.js.map +1 -0
  239. package/dist/tools/write.d.ts +10 -0
  240. package/dist/tools/write.d.ts.map +1 -0
  241. package/dist/tools/write.js +30 -0
  242. package/dist/tools/write.js.map +1 -0
  243. package/dist/tools/write.test.d.ts +2 -0
  244. package/dist/tools/write.test.d.ts.map +1 -0
  245. package/dist/tools/write.test.js +84 -0
  246. package/dist/tools/write.test.js.map +1 -0
  247. package/dist/types.d.ts +36 -0
  248. package/dist/types.d.ts.map +1 -0
  249. package/dist/types.js +2 -0
  250. package/dist/types.js.map +1 -0
  251. package/dist/ui/App.d.ts +148 -0
  252. package/dist/ui/App.d.ts.map +1 -0
  253. package/dist/ui/App.js +1191 -0
  254. package/dist/ui/App.js.map +1 -0
  255. package/dist/ui/components/ActivityIndicator.d.ts +13 -0
  256. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -0
  257. package/dist/ui/components/ActivityIndicator.js +313 -0
  258. package/dist/ui/components/ActivityIndicator.js.map +1 -0
  259. package/dist/ui/components/AnimationContext.d.ts +22 -0
  260. package/dist/ui/components/AnimationContext.d.ts.map +1 -0
  261. package/dist/ui/components/AnimationContext.js +35 -0
  262. package/dist/ui/components/AnimationContext.js.map +1 -0
  263. package/dist/ui/components/AssistantMessage.d.ts +9 -0
  264. package/dist/ui/components/AssistantMessage.d.ts.map +1 -0
  265. package/dist/ui/components/AssistantMessage.js +11 -0
  266. package/dist/ui/components/AssistantMessage.js.map +1 -0
  267. package/dist/ui/components/BackgroundTasksBar.d.ts +15 -0
  268. package/dist/ui/components/BackgroundTasksBar.d.ts.map +1 -0
  269. package/dist/ui/components/BackgroundTasksBar.js +74 -0
  270. package/dist/ui/components/BackgroundTasksBar.js.map +1 -0
  271. package/dist/ui/components/Banner.d.ts +11 -0
  272. package/dist/ui/components/Banner.d.ts.map +1 -0
  273. package/dist/ui/components/Banner.js +55 -0
  274. package/dist/ui/components/Banner.js.map +1 -0
  275. package/dist/ui/components/CompactionNotice.d.ts +10 -0
  276. package/dist/ui/components/CompactionNotice.d.ts.map +1 -0
  277. package/dist/ui/components/CompactionNotice.js +27 -0
  278. package/dist/ui/components/CompactionNotice.js.map +1 -0
  279. package/dist/ui/components/DiffView.d.ts +4 -0
  280. package/dist/ui/components/DiffView.d.ts.map +1 -0
  281. package/dist/ui/components/DiffView.js +20 -0
  282. package/dist/ui/components/DiffView.js.map +1 -0
  283. package/dist/ui/components/Footer.d.ts +10 -0
  284. package/dist/ui/components/Footer.d.ts.map +1 -0
  285. package/dist/ui/components/Footer.js +105 -0
  286. package/dist/ui/components/Footer.js.map +1 -0
  287. package/dist/ui/components/InputArea.d.ts +21 -0
  288. package/dist/ui/components/InputArea.d.ts.map +1 -0
  289. package/dist/ui/components/InputArea.js +465 -0
  290. package/dist/ui/components/InputArea.js.map +1 -0
  291. package/dist/ui/components/Markdown.d.ts +9 -0
  292. package/dist/ui/components/Markdown.d.ts.map +1 -0
  293. package/dist/ui/components/Markdown.js +246 -0
  294. package/dist/ui/components/Markdown.js.map +1 -0
  295. package/dist/ui/components/ModelSelector.d.ts +11 -0
  296. package/dist/ui/components/ModelSelector.d.ts.map +1 -0
  297. package/dist/ui/components/ModelSelector.js +20 -0
  298. package/dist/ui/components/ModelSelector.js.map +1 -0
  299. package/dist/ui/components/Overlay.d.ts +8 -0
  300. package/dist/ui/components/Overlay.d.ts.map +1 -0
  301. package/dist/ui/components/Overlay.js +9 -0
  302. package/dist/ui/components/Overlay.js.map +1 -0
  303. package/dist/ui/components/SelectList.d.ts +14 -0
  304. package/dist/ui/components/SelectList.d.ts.map +1 -0
  305. package/dist/ui/components/SelectList.js +46 -0
  306. package/dist/ui/components/SelectList.js.map +1 -0
  307. package/dist/ui/components/ServerToolExecution.d.ts +17 -0
  308. package/dist/ui/components/ServerToolExecution.d.ts.map +1 -0
  309. package/dist/ui/components/ServerToolExecution.js +26 -0
  310. package/dist/ui/components/ServerToolExecution.js.map +1 -0
  311. package/dist/ui/components/SessionSelector.d.ts +9 -0
  312. package/dist/ui/components/SessionSelector.d.ts.map +1 -0
  313. package/dist/ui/components/SessionSelector.js +13 -0
  314. package/dist/ui/components/SessionSelector.js.map +1 -0
  315. package/dist/ui/components/SettingsSelector.d.ts +9 -0
  316. package/dist/ui/components/SettingsSelector.d.ts.map +1 -0
  317. package/dist/ui/components/SettingsSelector.js +13 -0
  318. package/dist/ui/components/SettingsSelector.js.map +1 -0
  319. package/dist/ui/components/SlashCommandMenu.d.ts +15 -0
  320. package/dist/ui/components/SlashCommandMenu.d.ts.map +1 -0
  321. package/dist/ui/components/SlashCommandMenu.js +32 -0
  322. package/dist/ui/components/SlashCommandMenu.js.map +1 -0
  323. package/dist/ui/components/Spinner.d.ts +4 -0
  324. package/dist/ui/components/Spinner.d.ts.map +1 -0
  325. package/dist/ui/components/Spinner.js +13 -0
  326. package/dist/ui/components/Spinner.js.map +1 -0
  327. package/dist/ui/components/StreamingArea.d.ts +10 -0
  328. package/dist/ui/components/StreamingArea.d.ts.map +1 -0
  329. package/dist/ui/components/StreamingArea.js +58 -0
  330. package/dist/ui/components/StreamingArea.js.map +1 -0
  331. package/dist/ui/components/SubAgentPanel.d.ts +21 -0
  332. package/dist/ui/components/SubAgentPanel.d.ts.map +1 -0
  333. package/dist/ui/components/SubAgentPanel.js +71 -0
  334. package/dist/ui/components/SubAgentPanel.js.map +1 -0
  335. package/dist/ui/components/TaskOverlay.d.ts +10 -0
  336. package/dist/ui/components/TaskOverlay.d.ts.map +1 -0
  337. package/dist/ui/components/TaskOverlay.js +263 -0
  338. package/dist/ui/components/TaskOverlay.js.map +1 -0
  339. package/dist/ui/components/ThinkingBlock.d.ts +11 -0
  340. package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
  341. package/dist/ui/components/ThinkingBlock.js +43 -0
  342. package/dist/ui/components/ThinkingBlock.js.map +1 -0
  343. package/dist/ui/components/ThinkingIndicator.d.ts +6 -0
  344. package/dist/ui/components/ThinkingIndicator.d.ts.map +1 -0
  345. package/dist/ui/components/ThinkingIndicator.js +144 -0
  346. package/dist/ui/components/ThinkingIndicator.js.map +1 -0
  347. package/dist/ui/components/ToolExecution.d.ts +16 -0
  348. package/dist/ui/components/ToolExecution.d.ts.map +1 -0
  349. package/dist/ui/components/ToolExecution.js +490 -0
  350. package/dist/ui/components/ToolExecution.js.map +1 -0
  351. package/dist/ui/components/ToolGroupExecution.d.ts +7 -0
  352. package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -0
  353. package/dist/ui/components/ToolGroupExecution.js +115 -0
  354. package/dist/ui/components/ToolGroupExecution.js.map +1 -0
  355. package/dist/ui/components/UserMessage.d.ts +7 -0
  356. package/dist/ui/components/UserMessage.d.ts.map +1 -0
  357. package/dist/ui/components/UserMessage.js +16 -0
  358. package/dist/ui/components/UserMessage.js.map +1 -0
  359. package/dist/ui/components/index.d.ts +15 -0
  360. package/dist/ui/components/index.d.ts.map +1 -0
  361. package/dist/ui/components/index.js +15 -0
  362. package/dist/ui/components/index.js.map +1 -0
  363. package/dist/ui/hooks/useAgentLoop.d.ts +69 -0
  364. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -0
  365. package/dist/ui/hooks/useAgentLoop.js +483 -0
  366. package/dist/ui/hooks/useAgentLoop.js.map +1 -0
  367. package/dist/ui/hooks/useSessionManager.d.ts +13 -0
  368. package/dist/ui/hooks/useSessionManager.d.ts.map +1 -0
  369. package/dist/ui/hooks/useSessionManager.js +43 -0
  370. package/dist/ui/hooks/useSessionManager.js.map +1 -0
  371. package/dist/ui/hooks/useSlashCommands.d.ts +7 -0
  372. package/dist/ui/hooks/useSlashCommands.d.ts.map +1 -0
  373. package/dist/ui/hooks/useSlashCommands.js +11 -0
  374. package/dist/ui/hooks/useSlashCommands.js.map +1 -0
  375. package/dist/ui/hooks/useTerminalSize.d.ts +20 -0
  376. package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -0
  377. package/dist/ui/hooks/useTerminalSize.js +55 -0
  378. package/dist/ui/hooks/useTerminalSize.js.map +1 -0
  379. package/dist/ui/hooks/useTerminalTitle.d.ts +3 -0
  380. package/dist/ui/hooks/useTerminalTitle.d.ts.map +1 -0
  381. package/dist/ui/hooks/useTerminalTitle.js +41 -0
  382. package/dist/ui/hooks/useTerminalTitle.js.map +1 -0
  383. package/dist/ui/live-item-flush.d.ts +59 -0
  384. package/dist/ui/live-item-flush.d.ts.map +1 -0
  385. package/dist/ui/live-item-flush.js +135 -0
  386. package/dist/ui/live-item-flush.js.map +1 -0
  387. package/dist/ui/live-item-flush.test.d.ts +2 -0
  388. package/dist/ui/live-item-flush.test.d.ts.map +1 -0
  389. package/dist/ui/live-item-flush.test.js +307 -0
  390. package/dist/ui/live-item-flush.test.js.map +1 -0
  391. package/dist/ui/login.d.ts +3 -0
  392. package/dist/ui/login.d.ts.map +1 -0
  393. package/dist/ui/login.js +117 -0
  394. package/dist/ui/login.js.map +1 -0
  395. package/dist/ui/render.d.ts +38 -0
  396. package/dist/ui/render.d.ts.map +1 -0
  397. package/dist/ui/render.js +72 -0
  398. package/dist/ui/render.js.map +1 -0
  399. package/dist/ui/sessions.d.ts +2 -0
  400. package/dist/ui/sessions.d.ts.map +1 -0
  401. package/dist/ui/sessions.js +208 -0
  402. package/dist/ui/sessions.js.map +1 -0
  403. package/dist/ui/spinner-frames.d.ts +3 -0
  404. package/dist/ui/spinner-frames.d.ts.map +1 -0
  405. package/dist/ui/spinner-frames.js +7 -0
  406. package/dist/ui/spinner-frames.js.map +1 -0
  407. package/dist/ui/theme/dark.json +24 -0
  408. package/dist/ui/theme/detect-theme.d.ts +12 -0
  409. package/dist/ui/theme/detect-theme.d.ts.map +1 -0
  410. package/dist/ui/theme/detect-theme.js +152 -0
  411. package/dist/ui/theme/detect-theme.js.map +1 -0
  412. package/dist/ui/theme/light.json +24 -0
  413. package/dist/ui/theme/theme.d.ts +29 -0
  414. package/dist/ui/theme/theme.d.ts.map +1 -0
  415. package/dist/ui/theme/theme.js +11 -0
  416. package/dist/ui/theme/theme.js.map +1 -0
  417. package/dist/ui/utils/highlight.d.ts +8 -0
  418. package/dist/ui/utils/highlight.d.ts.map +1 -0
  419. package/dist/ui/utils/highlight.js +49 -0
  420. package/dist/ui/utils/highlight.js.map +1 -0
  421. package/dist/ui/utils/table-text.d.ts +25 -0
  422. package/dist/ui/utils/table-text.d.ts.map +1 -0
  423. package/dist/ui/utils/table-text.js +78 -0
  424. package/dist/ui/utils/table-text.js.map +1 -0
  425. package/dist/ui/utils/table-text.test.d.ts +2 -0
  426. package/dist/ui/utils/table-text.test.d.ts.map +1 -0
  427. package/dist/ui/utils/table-text.test.js +202 -0
  428. package/dist/ui/utils/table-text.test.js.map +1 -0
  429. package/dist/utils/error-handler.d.ts +5 -0
  430. package/dist/utils/error-handler.d.ts.map +1 -0
  431. package/dist/utils/error-handler.js +120 -0
  432. package/dist/utils/error-handler.js.map +1 -0
  433. package/dist/utils/format.d.ts +21 -0
  434. package/dist/utils/format.d.ts.map +1 -0
  435. package/dist/utils/format.js +120 -0
  436. package/dist/utils/format.js.map +1 -0
  437. package/dist/utils/git.d.ts +2 -0
  438. package/dist/utils/git.d.ts.map +1 -0
  439. package/dist/utils/git.js +13 -0
  440. package/dist/utils/git.js.map +1 -0
  441. package/dist/utils/image.d.ts +30 -0
  442. package/dist/utils/image.d.ts.map +1 -0
  443. package/dist/utils/image.js +231 -0
  444. package/dist/utils/image.js.map +1 -0
  445. package/dist/utils/markdown.d.ts +6 -0
  446. package/dist/utils/markdown.d.ts.map +1 -0
  447. package/dist/utils/markdown.js +25 -0
  448. package/dist/utils/markdown.js.map +1 -0
  449. package/dist/utils/process.d.ts +6 -0
  450. package/dist/utils/process.d.ts.map +1 -0
  451. package/dist/utils/process.js +19 -0
  452. package/dist/utils/process.js.map +1 -0
  453. package/dist/utils/shell.d.ts +3 -0
  454. package/dist/utils/shell.d.ts.map +1 -0
  455. package/dist/utils/shell.js +8 -0
  456. package/dist/utils/shell.js.map +1 -0
  457. package/dist/utils/sound.d.ts +2 -0
  458. package/dist/utils/sound.d.ts.map +1 -0
  459. package/dist/utils/sound.js +11 -0
  460. package/dist/utils/sound.js.map +1 -0
  461. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-mode.js","sourceRoot":"","sources":["../../src/modes/serve-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Message } from "@mragentix/ai";
2
+ import type { SessionHeader, SessionEntry, SessionInfo } from "./types.js";
3
+ export interface Session {
4
+ id: string;
5
+ path: string;
6
+ append(entry: SessionEntry): Promise<void>;
7
+ }
8
+ export declare function createSession(cwd: string, provider: string, model: string): Promise<Session>;
9
+ export declare function loadSession(sessionPath: string): Promise<{
10
+ header: SessionHeader;
11
+ messages: Message[];
12
+ }>;
13
+ export declare function listSessions(cwd: string): Promise<SessionInfo[]>;
14
+ export declare function getMostRecentSession(cwd: string): Promise<string | null>;
15
+ export declare function persistMessage(session: Session, message: Message): Promise<void>;
16
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAuB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAchG,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CA4BlB;AAID,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CA8BzD;AAID,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgDtE;AAID,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG9E;AAID,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF"}
@@ -0,0 +1,129 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import os from "node:os";
4
+ import crypto from "node:crypto";
5
+ const SESSION_DIR = path.join(os.homedir(), ".mragentix", "sessions");
6
+ function encodeCwd(cwd) {
7
+ return cwd.replace(/[\\/]/g, "_").replace(/:/g, "").replace(/^_/, "");
8
+ }
9
+ function sessionDirForCwd(cwd) {
10
+ return path.join(SESSION_DIR, encodeCwd(cwd));
11
+ }
12
+ export async function createSession(cwd, provider, model) {
13
+ const id = crypto.randomUUID();
14
+ const timestamp = new Date().toISOString();
15
+ const dir = sessionDirForCwd(cwd);
16
+ await fs.mkdir(dir, { recursive: true });
17
+ const fileName = `${timestamp.replace(/[:.]/g, "-")}_${id.slice(0, 8)}.jsonl`;
18
+ const filePath = path.join(dir, fileName);
19
+ const header = {
20
+ type: "session",
21
+ version: 1,
22
+ id,
23
+ timestamp,
24
+ cwd,
25
+ provider: provider,
26
+ model,
27
+ };
28
+ await fs.appendFile(filePath, JSON.stringify(header) + "\n", "utf-8");
29
+ return {
30
+ id,
31
+ path: filePath,
32
+ async append(entry) {
33
+ await fs.appendFile(filePath, JSON.stringify(entry) + "\n", "utf-8");
34
+ },
35
+ };
36
+ }
37
+ // ── Load Session ────────────────────────────────────────────
38
+ export async function loadSession(sessionPath) {
39
+ const content = await fs.readFile(sessionPath, "utf-8");
40
+ const lines = content.trim().split("\n").filter(Boolean);
41
+ let header = null;
42
+ const messages = [];
43
+ for (const line of lines) {
44
+ let entry;
45
+ try {
46
+ entry = JSON.parse(line);
47
+ }
48
+ catch {
49
+ // Skip corrupted lines (partial writes, disk corruption)
50
+ continue;
51
+ }
52
+ if (entry.type === "session") {
53
+ header = entry;
54
+ }
55
+ else if (entry.type === "message") {
56
+ // Skip system messages — they'll be rebuilt fresh
57
+ if (entry.message.role !== "system") {
58
+ messages.push(entry.message);
59
+ }
60
+ }
61
+ }
62
+ if (!header) {
63
+ throw new Error(`Invalid session file: no header found in ${sessionPath}`);
64
+ }
65
+ return { header, messages };
66
+ }
67
+ // ── List Sessions ───────────────────────────────────────────
68
+ export async function listSessions(cwd) {
69
+ const dir = sessionDirForCwd(cwd);
70
+ let files;
71
+ try {
72
+ files = await fs.readdir(dir);
73
+ }
74
+ catch {
75
+ return [];
76
+ }
77
+ const sessions = [];
78
+ for (const file of files) {
79
+ if (!file.endsWith(".jsonl"))
80
+ continue;
81
+ const filePath = path.join(dir, file);
82
+ try {
83
+ const content = await fs.readFile(filePath, "utf-8");
84
+ const lines = content.trim().split("\n").filter(Boolean);
85
+ if (lines.length === 0)
86
+ continue;
87
+ const header = JSON.parse(lines[0]);
88
+ if (header.type !== "session")
89
+ continue;
90
+ const messageCount = lines.filter((line) => {
91
+ try {
92
+ const entry = JSON.parse(line);
93
+ return entry.type === "message";
94
+ }
95
+ catch {
96
+ return false;
97
+ }
98
+ }).length;
99
+ sessions.push({
100
+ id: header.id,
101
+ path: filePath,
102
+ timestamp: header.timestamp,
103
+ cwd: header.cwd,
104
+ messageCount,
105
+ });
106
+ }
107
+ catch {
108
+ // Skip corrupt files
109
+ }
110
+ }
111
+ // Sort by timestamp descending (most recent first)
112
+ sessions.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
113
+ return sessions;
114
+ }
115
+ // ── Get Most Recent Session ─────────────────────────────────
116
+ export async function getMostRecentSession(cwd) {
117
+ const sessions = await listSessions(cwd);
118
+ return sessions.length > 0 ? sessions[0].path : null;
119
+ }
120
+ // ── Persist Messages ────────────────────────────────────────
121
+ export function persistMessage(session, message) {
122
+ const entry = {
123
+ type: "message",
124
+ timestamp: new Date().toISOString(),
125
+ message,
126
+ };
127
+ return session.append(entry);
128
+ }
129
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type Skill } from "./core/skills.js";
2
+ /**
3
+ * Build the system prompt dynamically based on cwd and context.
4
+ */
5
+ export declare function buildSystemPrompt(cwd: string, skills?: Skill[]): Promise<string>;
6
+ //# sourceMappingURL=system-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIrE;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmItF"}
@@ -0,0 +1,115 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { formatSkillsForPrompt } from "./core/skills.js";
4
+ const CONTEXT_FILES = ["AGENTS.md", "CLAUDE.md", ".cursorrules", "CONVENTIONS.md"];
5
+ /**
6
+ * Build the system prompt dynamically based on cwd and context.
7
+ */
8
+ export async function buildSystemPrompt(cwd, skills) {
9
+ const sections = [];
10
+ // 1. Identity
11
+ sections.push(`You are MR Agentix Coder by Michael Rathgeb — a coding agent that works directly in the user's codebase. ` +
12
+ `You explore, understand, change, and verify code — completing tasks end-to-end ` +
13
+ `rather than just suggesting edits.`);
14
+ // 2. How to Work
15
+ sections.push(`## How to Work\n\n` +
16
+ `### Before making changes\n` +
17
+ `- **IMPORTANT: \`edit\` and \`write\` will FAIL on any file you haven't \`read\` yet this session. Always read first.**\n` +
18
+ `- Understand the task fully before touching code.\n` +
19
+ `- Use \`find\`, \`grep\`, and \`read\` to explore the relevant area of the codebase.\n` +
20
+ `- Look for project context files (CLAUDE.md, AGENTS.md) — they take precedence over defaults.\n` +
21
+ `- Identify existing patterns, conventions, and related code.\n\n` +
22
+ `### Making changes\n` +
23
+ `- Plan multi-file changes before starting — know which files you'll touch and in what order.\n` +
24
+ `- Make incremental, focused edits. One logical change at a time.\n` +
25
+ `- Follow existing code style, naming conventions, and architecture.\n` +
26
+ `- Write code that fits in, not code that stands out.\n\n` +
27
+ `### After making changes\n` +
28
+ `- Run the project's test suite, linter, and type-checker if available.\n` +
29
+ `- Check command output for errors — don't assume a clean compile means success.\n` +
30
+ `- If the project needs to be rebuilt for changes to take effect, rebuild it.\n` +
31
+ `- If a dev server is running and needs restarting, ask the user before killing processes.\n` +
32
+ `- Re-read complex edits to catch mistakes before reporting done.\n\n` +
33
+ `### Safety\n` +
34
+ `- **Ask before destructive actions**: deleting files/directories, force-pushing, dropping data, killing processes, or overwriting uncommitted work.\n` +
35
+ `- Don't use \`--force\`, \`--hard\`, or \`rm -rf\` without user confirmation.\n` +
36
+ `- If you encounter unexpected state (unfamiliar files, branches, locks), investigate before overwriting or deleting — it may be the user's in-progress work.`);
37
+ // 3. Code Quality
38
+ sections.push(`## Code Quality\n\n` +
39
+ `- Use descriptive file and function names that reveal intent.\n` +
40
+ `- Define types and interfaces before implementation.\n` +
41
+ `- No dead code, no commented-out code — delete what's unused.\n` +
42
+ `- Handle errors at appropriate boundaries (I/O, user input, external APIs).\n` +
43
+ `- Prefer existing dependencies over introducing new ones.\n` +
44
+ `- Only refactor or restructure code when explicitly asked — don't split files, rename variables, or reorganize code unprompted.`);
45
+ // 4. Tools
46
+ sections.push(`## Tools\n\n` +
47
+ `- **read**: Read file contents. Use offset/limit for large files.\n` +
48
+ `- **edit**: Surgical changes to existing files. The old_text must uniquely match one location.\n` +
49
+ `- **write**: Create new files or complete rewrites. Prefer edit for small changes.\n` +
50
+ `- **bash**: Run commands (tests, builds, git, installs). The shell already runs in the project working directory — don't \`cd\` into it redundantly. Check exit code and output for errors. Use non-interactive flags where needed (e.g. \`--yes\`, \`-y\`) to avoid blocking prompts. Set \`run_in_background=true\` for long-running processes (dev servers, watchers) — returns a process ID immediately.\n` +
51
+ `- **find** / **ls**: Discover project structure and orient in unfamiliar directories.\n` +
52
+ `- **grep**: Find usages, definitions, and imports across the codebase. Use to understand how code connects.\n` +
53
+ `- **web_fetch**: Read documentation, check live endpoints, fetch external resources.\n` +
54
+ `- **task_output**: Read output from a background process by ID. Returns new output since last read (incremental). Use \`from_start=true\` to read from the beginning.\n` +
55
+ `- **task_stop**: Stop a background process by ID. Sends SIGTERM, then SIGKILL after 5 seconds.\n` +
56
+ `- **subagent**: Delegate focused, isolated subtasks (research, parallel exploration, independent fixes).\n` +
57
+ `- **tasks**: Manage the project task pane (Shift+\`). Actions: \`add\` (title + prompt required), \`list\`, \`done\` (id required), \`remove\` (id required). Only create tasks when the user explicitly asks you to. After creating tasks, STOP and tell the user to press **Shift+\\\`** to open the Tasks Pane, then press **R** to run all. Do NOT start executing tasks on your own.\n` +
58
+ ` - **title**: Short label (~10 words max) shown in the task pane.\n` +
59
+ ` - **prompt**: Standalone instruction sent to an agent with NO prior context. The agent must complete it from the prompt alone, so include specific file paths, what to change, and enough context to act without ambiguity. Be as long as needed for clarity, but no longer. If the task requires latest docs or APIs, tell the agent to research/fetch them.\n` +
60
+ ` - **Ordering**: When creating multiple tasks (e.g. from a PRD or spec), add them in correct dependency order — foundational work first (types, schemas, config), then core logic, then integration, then UI, then tests. Each task should be completable independently given that prior tasks are done. Think like an engineer planning a project: what must exist before the next piece can be built?\n` +
61
+ `- **mcp__grep__searchGitHub**: Search real-world code across 1M+ public GitHub repos. Use to verify your implementation against production patterns — check correct API usage, library idioms, and common conventions before finalizing changes. Search for literal code patterns (e.g. \`StreamableHTTPClientTransport(\`, \`useEffect(() =>\`), not keywords.`);
62
+ // 5. Avoid
63
+ sections.push(`## Avoid\n\n` +
64
+ `- Don't assume changes worked without verifying.\n` +
65
+ `- Don't generate stubs or placeholder implementations unless asked.\n` +
66
+ `- Don't add TODOs for yourself — finish the work or state what's incomplete.\n` +
67
+ `- Don't pad responses with filler or repeat back what the user said.\n` +
68
+ `- Don't guess or make up file paths, function names, API methods, CLI flags, config options, or package versions. If unsure, use \`find\`, \`grep\`, \`web_fetch\`, or \`--help\` to verify.`);
69
+ // 6. Response Format
70
+ sections.push(`## Response Format\n\n` +
71
+ `Keep responses short and concise. Summarize what you did, then tell the user what to do next if applicable. For pure questions, answer directly.`);
72
+ // 7. Project context — walk from cwd to root looking for context files
73
+ const contextParts = [];
74
+ let dir = cwd;
75
+ const visited = new Set();
76
+ while (!visited.has(dir)) {
77
+ visited.add(dir);
78
+ for (const name of CONTEXT_FILES) {
79
+ const filePath = path.join(dir, name);
80
+ try {
81
+ const content = await fs.readFile(filePath, "utf-8");
82
+ const relPath = path.relative(cwd, filePath) || name;
83
+ contextParts.push(`### ${relPath}\n\n${content.trim()}`);
84
+ }
85
+ catch {
86
+ // File doesn't exist, skip
87
+ }
88
+ }
89
+ const parent = path.dirname(dir);
90
+ if (parent === dir)
91
+ break;
92
+ dir = parent;
93
+ }
94
+ if (contextParts.length > 0) {
95
+ sections.push(`## Project Context\n\n${contextParts.join("\n\n")}`);
96
+ }
97
+ // 8. Skills
98
+ if (skills && skills.length > 0) {
99
+ const skillsSection = formatSkillsForPrompt(skills);
100
+ if (skillsSection) {
101
+ sections.push(skillsSection);
102
+ }
103
+ }
104
+ // 9. Environment (static — cacheable)
105
+ sections.push(`## Environment\n\n` + `- Working directory: ${cwd}\n` + `- Platform: ${process.platform}`);
106
+ // Dynamic section (uncached) — separated by marker so the transform layer
107
+ // can split the system prompt into cached + uncached blocks.
108
+ const today = new Date();
109
+ const day = today.getDate();
110
+ const month = today.toLocaleString("en-US", { month: "long" });
111
+ const year = today.getFullYear();
112
+ sections.push(`<!-- uncached -->\nToday's date: ${day} ${month} ${year}`);
113
+ return sections.join("\n\n");
114
+ }
115
+ //# sourceMappingURL=system-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ import type { AgentTool } from "@mragentix/agent";
3
+ import type { ProcessManager } from "../core/process-manager.js";
4
+ import { type ToolOperations } from "./operations.js";
5
+ export declare function getSafeEnv(): Record<string, string>;
6
+ declare const BashParams: z.ZodObject<{
7
+ command: z.ZodString;
8
+ timeout: z.ZodOptional<z.ZodNumber>;
9
+ run_in_background: z.ZodOptional<z.ZodBoolean>;
10
+ }, z.core.$strip>;
11
+ export declare function createBashTool(cwd: string, processManager: ProcessManager, ops?: ToolOperations): AgentTool<typeof BashParams>;
12
+ export {};
13
+ //# sourceMappingURL=bash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgDvE,wBAAgB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnD;AAED,QAAA,MAAM,UAAU;;;;iBAed,CAAC;AAEH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,cAAc,EAC9B,GAAG,GAAE,cAAgC,GACpC,SAAS,CAAC,OAAO,UAAU,CAAC,CAuG9B"}
@@ -0,0 +1,165 @@
1
+ import fs from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { z } from "zod";
5
+ import { killProcessTree } from "../utils/process.js";
6
+ import { truncateTail } from "./truncate.js";
7
+ import { localOperations } from "./operations.js";
8
+ const DEFAULT_TIMEOUT = 120_000; // 120 seconds
9
+ const MAX_OUTPUT_BYTES = 10 * 1024 * 1024; // 10 MB — cap buffered output to prevent OOM
10
+ /** Environment variables safe to inherit. Everything else is stripped to prevent leaking secrets to LLM. */
11
+ const ENV_ALLOWLIST = new Set([
12
+ "PATH",
13
+ "HOME",
14
+ "USER",
15
+ "LOGNAME",
16
+ "SHELL",
17
+ "LANG",
18
+ "LC_ALL",
19
+ "LC_CTYPE",
20
+ "TMPDIR",
21
+ "XDG_CONFIG_HOME",
22
+ "XDG_DATA_HOME",
23
+ "XDG_CACHE_HOME",
24
+ "XDG_RUNTIME_DIR",
25
+ "EDITOR",
26
+ "VISUAL",
27
+ "PAGER",
28
+ "CLICOLOR",
29
+ "CLICOLOR_FORCE",
30
+ "NO_COLOR",
31
+ "FORCE_COLOR",
32
+ // Development toolchains
33
+ "NODE_PATH",
34
+ "NVM_DIR",
35
+ "NPM_CONFIG_PREFIX",
36
+ "PNPM_HOME",
37
+ "GOPATH",
38
+ "GOROOT",
39
+ "CARGO_HOME",
40
+ "RUSTUP_HOME",
41
+ "PYENV_ROOT",
42
+ "VIRTUAL_ENV",
43
+ "CONDA_DEFAULT_ENV",
44
+ "CONDA_PREFIX",
45
+ "JAVA_HOME",
46
+ "ANDROID_HOME",
47
+ "ANDROID_SDK_ROOT",
48
+ "RUBY_VERSION",
49
+ "GEM_HOME",
50
+ "RBENV_ROOT",
51
+ ]);
52
+ export function getSafeEnv() {
53
+ const env = { TERM: "dumb" };
54
+ for (const key of ENV_ALLOWLIST) {
55
+ if (process.env[key])
56
+ env[key] = process.env[key];
57
+ }
58
+ return env;
59
+ }
60
+ const BashParams = z.object({
61
+ command: z.string().describe("The bash command to execute"),
62
+ timeout: z
63
+ .number()
64
+ .int()
65
+ .min(1000)
66
+ .optional()
67
+ .describe("Timeout in milliseconds (default: 120000)"),
68
+ run_in_background: z
69
+ .boolean()
70
+ .optional()
71
+ .describe("Run the command in the background. Returns a process ID immediately. " +
72
+ "Use task_output to read output and task_stop to stop it."),
73
+ });
74
+ export function createBashTool(cwd, processManager, ops = localOperations) {
75
+ return {
76
+ name: "bash",
77
+ description: "Execute a bash command. The shell's working directory is already set to the project root — " +
78
+ "don't cd into it redundantly. Use cd only when you need a different directory. " +
79
+ "Returns exit code and combined stdout/stderr. " +
80
+ "Commands run in a non-interactive bash shell with TERM=dumb. " +
81
+ "Long output is truncated (tail kept). " +
82
+ "Set run_in_background=true for long-running processes (dev servers, watchers). " +
83
+ "Use task_output/task_stop to interact with background processes.",
84
+ parameters: BashParams,
85
+ async execute({ command, timeout: timeoutMs, run_in_background }, context) {
86
+ if (run_in_background) {
87
+ const result = await processManager.start(command, cwd);
88
+ return (`Background process started.\n` +
89
+ `ID: ${result.id}\n` +
90
+ `PID: ${result.pid}\n` +
91
+ `Log: ${result.logFile}\n` +
92
+ `Use task_output with id="${result.id}" to read output.`);
93
+ }
94
+ const effectiveTimeout = timeoutMs ?? DEFAULT_TIMEOUT;
95
+ return new Promise((resolve) => {
96
+ const child = ops.spawn("bash", ["-c", command], {
97
+ cwd,
98
+ detached: true,
99
+ stdio: ["ignore", "pipe", "pipe"],
100
+ env: getSafeEnv(),
101
+ });
102
+ const chunks = [];
103
+ let totalBytes = 0;
104
+ let outputCapped = false;
105
+ const onData = (data) => {
106
+ if (outputCapped)
107
+ return;
108
+ totalBytes += data.length;
109
+ if (totalBytes > MAX_OUTPUT_BYTES) {
110
+ outputCapped = true;
111
+ // Keep what we have — it'll be truncated by truncateTail anyway
112
+ return;
113
+ }
114
+ chunks.push(data);
115
+ };
116
+ child.stdout?.on("data", onData);
117
+ child.stderr?.on("data", onData);
118
+ let killed = false;
119
+ let timedOut = false;
120
+ // Timeout handling
121
+ const timer = setTimeout(() => {
122
+ timedOut = true;
123
+ killed = true;
124
+ if (child.pid)
125
+ killProcessTree(child.pid);
126
+ }, effectiveTimeout);
127
+ // Abort signal handling
128
+ const onAbort = () => {
129
+ killed = true;
130
+ if (child.pid)
131
+ killProcessTree(child.pid);
132
+ };
133
+ context.signal.addEventListener("abort", onAbort, { once: true });
134
+ child.on("close", async (code) => {
135
+ clearTimeout(timer);
136
+ context.signal.removeEventListener("abort", onAbort);
137
+ const rawOutput = Buffer.concat(chunks).toString("utf-8");
138
+ const result = truncateTail(rawOutput);
139
+ let output = result.content;
140
+ if (outputCapped) {
141
+ output = `[Output capped at ${MAX_OUTPUT_BYTES / 1024 / 1024} MB to prevent memory exhaustion]\n${output}`;
142
+ }
143
+ if (result.truncated) {
144
+ // Save full output to temp file
145
+ const tmpPath = path.join(os.tmpdir(), `gg-bash-${Date.now()}.txt`);
146
+ await fs.writeFile(tmpPath, rawOutput, "utf-8").catch(() => { });
147
+ output = `[Truncated: showing last ${result.keptLines} of ${result.totalLines} lines. Full output: ${tmpPath}]\n${output}`;
148
+ }
149
+ const exitCode = timedOut
150
+ ? `TIMEOUT (${effectiveTimeout}ms)`
151
+ : killed
152
+ ? "KILLED"
153
+ : String(code ?? 1);
154
+ resolve(`Exit code: ${exitCode}\n${output}`);
155
+ });
156
+ child.on("error", (err) => {
157
+ clearTimeout(timer);
158
+ context.signal.removeEventListener("abort", onAbort);
159
+ resolve(`Exit code: 1\nFailed to spawn: ${err.message}`);
160
+ });
161
+ });
162
+ },
163
+ };
164
+ }
165
+ //# sourceMappingURL=bash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Find text in content, trying exact match first then fuzzy.
3
+ */
4
+ export declare function fuzzyFindText(content: string, oldText: string): {
5
+ found: boolean;
6
+ index: number;
7
+ matchLength: number;
8
+ usedFuzzy: boolean;
9
+ };
10
+ /**
11
+ * Count occurrences of oldText in content (exact first, then fuzzy).
12
+ */
13
+ export declare function countOccurrences(content: string, oldText: string): number;
14
+ /**
15
+ * Generate a unified diff string.
16
+ */
17
+ export declare function generateDiff(oldContent: string, newContent: string, filePath: string): string;
18
+ //# sourceMappingURL=edit-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-diff.d.ts","sourceRoot":"","sources":["../../src/tools/edit-diff.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAyC5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa7F"}