@mragentix/cli 4.2.37 → 4.2.38

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 (178) hide show
  1. package/dist/cli.js +180 -9
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +64 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/core/agent-session.d.ts.map +1 -1
  7. package/dist/core/agent-session.js +13 -1
  8. package/dist/core/agent-session.js.map +1 -1
  9. package/dist/core/compaction/compactor.d.ts +1 -0
  10. package/dist/core/compaction/compactor.d.ts.map +1 -1
  11. package/dist/core/compaction/compactor.js +8 -1
  12. package/dist/core/compaction/compactor.js.map +1 -1
  13. package/dist/core/skills.d.ts +2 -1
  14. package/dist/core/skills.d.ts.map +1 -1
  15. package/dist/core/skills.js +8 -8
  16. package/dist/core/skills.js.map +1 -1
  17. package/dist/interactive.d.ts.map +1 -1
  18. package/dist/interactive.js +17 -5
  19. package/dist/interactive.js.map +1 -1
  20. package/dist/modes/json-mode.d.ts.map +1 -1
  21. package/dist/modes/json-mode.js +2 -1
  22. package/dist/modes/json-mode.js.map +1 -1
  23. package/dist/modes/print-mode.d.ts.map +1 -1
  24. package/dist/modes/print-mode.js +2 -1
  25. package/dist/modes/print-mode.js.map +1 -1
  26. package/dist/modes/rpc-mode.d.ts.map +1 -1
  27. package/dist/modes/rpc-mode.js +2 -1
  28. package/dist/modes/rpc-mode.js.map +1 -1
  29. package/dist/modes/serve-mode.d.ts.map +1 -1
  30. package/dist/modes/serve-mode.js +7 -6
  31. package/dist/modes/serve-mode.js.map +1 -1
  32. package/dist/system-prompt.d.ts +1 -1
  33. package/dist/system-prompt.d.ts.map +1 -1
  34. package/dist/system-prompt.js +40 -2
  35. package/dist/system-prompt.js.map +1 -1
  36. package/dist/tools/bash.d.ts +3 -1
  37. package/dist/tools/bash.d.ts.map +1 -1
  38. package/dist/tools/bash.js +4 -1
  39. package/dist/tools/bash.js.map +1 -1
  40. package/dist/tools/edit-diff.test.d.ts +2 -0
  41. package/dist/tools/edit-diff.test.d.ts.map +1 -0
  42. package/dist/tools/edit-diff.test.js +67 -0
  43. package/dist/tools/edit-diff.test.js.map +1 -0
  44. package/dist/tools/edit.d.ts +3 -1
  45. package/dist/tools/edit.d.ts.map +1 -1
  46. package/dist/tools/edit.js +4 -1
  47. package/dist/tools/edit.js.map +1 -1
  48. package/dist/tools/edit.test.d.ts +2 -0
  49. package/dist/tools/edit.test.d.ts.map +1 -0
  50. package/dist/tools/edit.test.js +93 -0
  51. package/dist/tools/edit.test.js.map +1 -0
  52. package/dist/tools/enter-plan.d.ts +8 -0
  53. package/dist/tools/enter-plan.d.ts.map +1 -0
  54. package/dist/tools/enter-plan.js +28 -0
  55. package/dist/tools/enter-plan.js.map +1 -0
  56. package/dist/tools/exit-plan.d.ts +8 -0
  57. package/dist/tools/exit-plan.d.ts.map +1 -0
  58. package/dist/tools/exit-plan.js +36 -0
  59. package/dist/tools/exit-plan.js.map +1 -0
  60. package/dist/tools/index.d.ts +10 -0
  61. package/dist/tools/index.d.ts.map +1 -1
  62. package/dist/tools/index.js +20 -4
  63. package/dist/tools/index.js.map +1 -1
  64. package/dist/tools/path-utils.test.d.ts +2 -0
  65. package/dist/tools/path-utils.test.d.ts.map +1 -0
  66. package/dist/tools/path-utils.test.js +49 -0
  67. package/dist/tools/path-utils.test.js.map +1 -0
  68. package/dist/tools/plan-mode.test.d.ts +2 -0
  69. package/dist/tools/plan-mode.test.d.ts.map +1 -0
  70. package/dist/tools/plan-mode.test.js +214 -0
  71. package/dist/tools/plan-mode.test.js.map +1 -0
  72. package/dist/tools/read.test.d.ts +2 -0
  73. package/dist/tools/read.test.d.ts.map +1 -0
  74. package/dist/tools/read.test.js +81 -0
  75. package/dist/tools/read.test.js.map +1 -0
  76. package/dist/tools/skill.d.ts +10 -0
  77. package/dist/tools/skill.d.ts.map +1 -0
  78. package/dist/tools/skill.js +36 -0
  79. package/dist/tools/skill.js.map +1 -0
  80. package/dist/tools/subagent.d.ts +3 -1
  81. package/dist/tools/subagent.d.ts.map +1 -1
  82. package/dist/tools/subagent.js +4 -1
  83. package/dist/tools/subagent.js.map +1 -1
  84. package/dist/tools/truncate-utils.test.d.ts +2 -0
  85. package/dist/tools/truncate-utils.test.d.ts.map +1 -0
  86. package/dist/tools/truncate-utils.test.js +93 -0
  87. package/dist/tools/truncate-utils.test.js.map +1 -0
  88. package/dist/tools/write.d.ts +3 -1
  89. package/dist/tools/write.d.ts.map +1 -1
  90. package/dist/tools/write.js +11 -1
  91. package/dist/tools/write.js.map +1 -1
  92. package/dist/tools/write.test.js +65 -52
  93. package/dist/tools/write.test.js.map +1 -1
  94. package/dist/ui/App.d.ts +18 -1
  95. package/dist/ui/App.d.ts.map +1 -1
  96. package/dist/ui/App.js +234 -31
  97. package/dist/ui/App.js.map +1 -1
  98. package/dist/ui/components/ActivityIndicator.d.ts +2 -1
  99. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  100. package/dist/ui/components/ActivityIndicator.js +25 -4
  101. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  102. package/dist/ui/components/AssistantMessage.d.ts.map +1 -1
  103. package/dist/ui/components/AssistantMessage.js +6 -1
  104. package/dist/ui/components/AssistantMessage.js.map +1 -1
  105. package/dist/ui/components/Banner.d.ts.map +1 -1
  106. package/dist/ui/components/Banner.js +13 -4
  107. package/dist/ui/components/Banner.js.map +1 -1
  108. package/dist/ui/components/Footer.d.ts +2 -1
  109. package/dist/ui/components/Footer.d.ts.map +1 -1
  110. package/dist/ui/components/Footer.js +30 -16
  111. package/dist/ui/components/Footer.js.map +1 -1
  112. package/dist/ui/components/InputArea.d.ts +3 -1
  113. package/dist/ui/components/InputArea.d.ts.map +1 -1
  114. package/dist/ui/components/InputArea.js +27 -17
  115. package/dist/ui/components/InputArea.js.map +1 -1
  116. package/dist/ui/components/Markdown.d.ts +5 -1
  117. package/dist/ui/components/Markdown.d.ts.map +1 -1
  118. package/dist/ui/components/Markdown.js +14 -6
  119. package/dist/ui/components/Markdown.js.map +1 -1
  120. package/dist/ui/components/PlanApproval.d.ts +8 -0
  121. package/dist/ui/components/PlanApproval.d.ts.map +1 -0
  122. package/dist/ui/components/PlanApproval.js +58 -0
  123. package/dist/ui/components/PlanApproval.js.map +1 -0
  124. package/dist/ui/components/PlanBanner.d.ts +6 -0
  125. package/dist/ui/components/PlanBanner.d.ts.map +1 -0
  126. package/dist/ui/components/PlanBanner.js +28 -0
  127. package/dist/ui/components/PlanBanner.js.map +1 -0
  128. package/dist/ui/components/PlanOverlay.d.ts +11 -0
  129. package/dist/ui/components/PlanOverlay.d.ts.map +1 -0
  130. package/dist/ui/components/PlanOverlay.js +271 -0
  131. package/dist/ui/components/PlanOverlay.js.map +1 -0
  132. package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
  133. package/dist/ui/components/ServerToolExecution.js +11 -3
  134. package/dist/ui/components/ServerToolExecution.js.map +1 -1
  135. package/dist/ui/components/SkillsOverlay.d.ts +7 -0
  136. package/dist/ui/components/SkillsOverlay.d.ts.map +1 -0
  137. package/dist/ui/components/SkillsOverlay.js +162 -0
  138. package/dist/ui/components/SkillsOverlay.js.map +1 -0
  139. package/dist/ui/components/Spinner.js +1 -1
  140. package/dist/ui/components/Spinner.js.map +1 -1
  141. package/dist/ui/components/StreamingArea.d.ts +2 -1
  142. package/dist/ui/components/StreamingArea.d.ts.map +1 -1
  143. package/dist/ui/components/StreamingArea.js +7 -2
  144. package/dist/ui/components/StreamingArea.js.map +1 -1
  145. package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
  146. package/dist/ui/components/SubAgentPanel.js +21 -11
  147. package/dist/ui/components/SubAgentPanel.js.map +1 -1
  148. package/dist/ui/components/TaskOverlay.d.ts.map +1 -1
  149. package/dist/ui/components/TaskOverlay.js +10 -6
  150. package/dist/ui/components/TaskOverlay.js.map +1 -1
  151. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  152. package/dist/ui/components/ToolExecution.js +33 -13
  153. package/dist/ui/components/ToolExecution.js.map +1 -1
  154. package/dist/ui/components/ToolGroupExecution.js +1 -1
  155. package/dist/ui/components/ToolGroupExecution.js.map +1 -1
  156. package/dist/ui/hooks/useAgentLoop.d.ts +8 -0
  157. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  158. package/dist/ui/hooks/useAgentLoop.js +318 -236
  159. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  160. package/dist/ui/hooks/useTerminalSize.d.ts +18 -16
  161. package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -1
  162. package/dist/ui/hooks/useTerminalSize.js +31 -24
  163. package/dist/ui/hooks/useTerminalSize.js.map +1 -1
  164. package/dist/ui/login.d.ts.map +1 -1
  165. package/dist/ui/login.js +1 -5
  166. package/dist/ui/login.js.map +1 -1
  167. package/dist/ui/render.d.ts +11 -0
  168. package/dist/ui/render.d.ts.map +1 -1
  169. package/dist/ui/render.js +7 -2
  170. package/dist/ui/render.js.map +1 -1
  171. package/dist/ui/sessions.d.ts.map +1 -1
  172. package/dist/ui/sessions.js +1 -5
  173. package/dist/ui/sessions.js.map +1 -1
  174. package/dist/ui/theme/dark.json +3 -1
  175. package/dist/ui/theme/light.json +3 -1
  176. package/dist/ui/theme/theme.d.ts +2 -0
  177. package/dist/ui/theme/theme.d.ts.map +1 -1
  178. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQzD,QAAA,MAAM,cAAc;;;iBAMlB,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,EAAE,EACzB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,SAAS,CAAC,OAAO,cAAc,CAAC,CAwKlC"}
1
+ {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQzD,QAAA,MAAM,cAAc;;;iBAMlB,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,EAAE,EACzB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACjC,SAAS,CAAC,OAAO,cAAc,CAAC,CA4KlC"}
@@ -13,7 +13,7 @@ const SubAgentParams = z.object({
13
13
  .optional()
14
14
  .describe("Named agent definition to use (from ~/.mragentix/agents/ or .mragentix/agents/)"),
15
15
  });
16
- export function createSubAgentTool(cwd, agents, parentProvider, parentModel) {
16
+ export function createSubAgentTool(cwd, agents, parentProvider, parentModel, planModeRef) {
17
17
  const agentList = agents.map((a) => `- ${a.name}: ${a.description}`).join("\n");
18
18
  const agentDesc = agentList
19
19
  ? `\n\nAvailable named agents:\n${agentList}`
@@ -24,6 +24,9 @@ export function createSubAgentTool(cwd, agents, parentProvider, parentModel) {
24
24
  agentDesc,
25
25
  parameters: SubAgentParams,
26
26
  async execute(args, context) {
27
+ if (planModeRef?.current) {
28
+ return "Error: subagent is restricted in plan mode. Use read-only tools to explore the codebase.";
29
+ }
27
30
  const startTime = Date.now();
28
31
  // Resolve agent definition if specified
29
32
  let agentDef;
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,0BAA0B,GAAG,OAAO,CAAC,CAAC,yCAAyC;AACrF,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,0BAA0B,GAAG,MAAM,CAAC,CAAC,yCAAyC;AAEpF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAClE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;CAC/F,CAAC,CAAC;AAcH,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,MAAyB,EACzB,cAAsB,EACtB,WAAmB;IAEnB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,SAAS;QACzB,CAAC,CAAC,gCAAgC,SAAS,EAAE;QAC7C,CAAC,CAAC,iCAAiC,CAAC;IAEtC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,sNAAsN;YACtN,SAAS;QACX,UAAU,EAAE,cAAc;QAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,wCAAwC;YACxC,IAAI,QAAqC,CAAC;YAC1C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO;wBACL,OAAO,EAAE,mBAAmB,IAAI,CAAC,KAAK,wBAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;qBAC/G,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,cAAc,CAAC;YAEnC,iEAAiE;YACjE,MAAM,OAAO,GAAa;gBACxB,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,SAAS;gBACT,WAAW;gBACX,aAAa;gBACb,MAAM,CAAC,mBAAmB,CAAC;aAC5B,CAAC;YAEF,IAAI,QAAQ,EAAE,YAAY,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExB,wCAAwC;YACxC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE;gBAC3D,GAAG;gBACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC;YAEH,iBAAiB;YACjB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC3C,IAAI,eAAmC,CAAC;YACxC,IAAI,UAAU,GAAG,EAAE,CAAC;YAEpB,sBAAsB;YACtB,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,MAAM;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,0BAA0B;gBAC1B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAO,EAAE,CAAC,CAAC;gBACrD,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;wBAClC,QAAQ,IAAI,EAAE,CAAC;4BACb,KAAK,YAAY;gCACf,6EAA6E;gCAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,0BAA0B,GAAG,CAAC,EAAE,CAAC;oCACvD,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC;gCAC3B,CAAC;qCAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;oCACnD,UAAU,IAAI,mBAAmB,CAAC;gCACpC,CAAC;gCACD,MAAM;4BACR,KAAK,iBAAiB;gCACpB,YAAY,EAAE,CAAC;gCACf,eAAe,GAAG,kBAAkB,CAClC,KAAK,CAAC,IAAc,EACpB,KAAK,CAAC,IAA+B,CACtC,CAAC;gCACF,OAAO,CAAC,QAAQ,EAAE,CAAC;oCACjB,YAAY;oCACZ,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE;oCAC7B,eAAe;iCAChB,CAAC,CAAC;gCACH,MAAM;4BACR,KAAK,eAAe;gCAClB,MAAM;4BACR,KAAK,UAAU,CAAC,CAAC,CAAC;gCAChB,MAAM,KAAK,GAAG,KAAK,CAAC,KAEP,CAAC;gCACd,IAAI,KAAK,EAAE,CAAC;oCACV,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC;oCACtC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC;gCAC1C,CAAC;gCACD,OAAO,CAAC,QAAQ,EAAE,CAAC;oCACjB,YAAY;oCACZ,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE;oCAC7B,eAAe;iCAChB,CAAC,CAAC;gCACH,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,uBAAuB;oBACzB,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,6DAA6D;gBAC7D,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBACzC,IAAI,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;wBAC/C,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;4BAC/C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzB,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAC1C,MAAM,OAAO,GAAoB;wBAC/B,YAAY;wBACZ,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE;wBAC7B,UAAU;qBACX,CAAC;oBAEF,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC9B,OAAO,CAAC;4BACN,OAAO,EAAE,0BAA0B,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE;4BAC/E,OAAO;yBACR,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,yDAAyD;oBACzD,MAAM,GAAG,GAAG,UAAU,IAAI,aAAa,CAAC;oBACxC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;oBACzF,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS;wBAC9B,CAAC,CAAC,gCAAgC,MAAM,CAAC,UAAU,8BAA8B,MAAM,CAAC,SAAS,OAAO;4BACtG,MAAM,CAAC,OAAO;wBAChB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBAEnB,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACxB,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBAC1D,OAAO,CAAC;wBACN,OAAO,EAAE,8BAA8B,GAAG,CAAC,OAAO,EAAE;qBACrD,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAA6B;IACrE,2DAA2D;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAChE,KAAK,OAAO;YACV,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAChE,KAAK,MAAM;YACT,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAChE,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO,kBAAkB,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;QACnD,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO,YAAY,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;QAC7C,CAAC;QACD,KAAK,IAAI;YACP,OAAO,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5D,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,OAAO,WAAW,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;QACD,KAAK,WAAW;YACd,OAAO,YAAY,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,CAAC,CAAC;YACR,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,OAAO,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,CAAS,EAAE,GAAW;IACzC,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=truncate-utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncate-utils.test.d.ts","sourceRoot":"","sources":["../../src/tools/truncate-utils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { truncateHead, truncateTail, MAX_LINES, MAX_CHARS } from "./truncate.js";
3
+ describe("constants", () => {
4
+ it("MAX_LINES is 500", () => {
5
+ expect(MAX_LINES).toBe(500);
6
+ });
7
+ it("MAX_CHARS is 100_000", () => {
8
+ expect(MAX_CHARS).toBe(100_000);
9
+ });
10
+ });
11
+ describe("truncateHead", () => {
12
+ it("short content returns unchanged", () => {
13
+ const result = truncateHead("line1\nline2\nline3");
14
+ expect(result.truncated).toBe(false);
15
+ expect(result.content).toBe("line1\nline2\nline3");
16
+ expect(result.keptLines).toBe(3);
17
+ expect(result.totalLines).toBe(3);
18
+ });
19
+ it("content over maxLines gets truncated from end (keeps first N)", () => {
20
+ const lines = Array.from({ length: 10 }, (_, i) => `line${i}`);
21
+ const content = lines.join("\n");
22
+ const result = truncateHead(content, 5);
23
+ expect(result.truncated).toBe(true);
24
+ expect(result.keptLines).toBe(5);
25
+ expect(result.totalLines).toBe(10);
26
+ expect(result.content).toBe("line0\nline1\nline2\nline3\nline4");
27
+ });
28
+ it("content over maxChars gets truncated by char limit", () => {
29
+ // Each line is 10 chars + 1 newline = 11 bytes per line
30
+ const lines = Array.from({ length: 20 }, () => "abcdefghij");
31
+ const content = lines.join("\n");
32
+ // maxChars = 55 means ~5 lines worth (5 * 11 = 55)
33
+ const result = truncateHead(content, 100, 55);
34
+ expect(result.truncated).toBe(true);
35
+ expect(result.keptLines).toBe(5);
36
+ expect(result.totalLines).toBe(20);
37
+ });
38
+ it("returns correct totalLines and keptLines counts", () => {
39
+ const lines = Array.from({ length: 100 }, (_, i) => `line${i}`);
40
+ const content = lines.join("\n");
41
+ const result = truncateHead(content, 30);
42
+ expect(result.totalLines).toBe(100);
43
+ expect(result.keptLines).toBe(30);
44
+ expect(result.truncated).toBe(true);
45
+ });
46
+ it("custom maxLines and maxChars parameters work", () => {
47
+ const lines = Array.from({ length: 50 }, (_, i) => `row${i}`);
48
+ const content = lines.join("\n");
49
+ const result1 = truncateHead(content, 10);
50
+ expect(result1.keptLines).toBe(10);
51
+ expect(result1.truncated).toBe(true);
52
+ const result2 = truncateHead(content, 1000);
53
+ expect(result2.keptLines).toBe(50);
54
+ expect(result2.truncated).toBe(false);
55
+ });
56
+ });
57
+ describe("truncateTail", () => {
58
+ it("short content returns unchanged", () => {
59
+ const result = truncateTail("line1\nline2\nline3");
60
+ expect(result.truncated).toBe(false);
61
+ expect(result.content).toBe("line1\nline2\nline3");
62
+ expect(result.keptLines).toBe(3);
63
+ expect(result.totalLines).toBe(3);
64
+ });
65
+ it("content over maxLines keeps last N lines", () => {
66
+ const lines = Array.from({ length: 10 }, (_, i) => `line${i}`);
67
+ const content = lines.join("\n");
68
+ const result = truncateTail(content, 5);
69
+ expect(result.truncated).toBe(true);
70
+ expect(result.keptLines).toBe(5);
71
+ expect(result.totalLines).toBe(10);
72
+ expect(result.content).toBe("line5\nline6\nline7\nline8\nline9");
73
+ });
74
+ it("content over maxChars keeps last N chars worth", () => {
75
+ // Each line is 10 chars + 1 newline = 11 bytes per line
76
+ const lines = Array.from({ length: 20 }, () => "abcdefghij");
77
+ const content = lines.join("\n");
78
+ // maxChars = 55 means ~5 lines worth (5 * 11 = 55)
79
+ const result = truncateTail(content, 100, 55);
80
+ expect(result.truncated).toBe(true);
81
+ expect(result.keptLines).toBe(5);
82
+ expect(result.totalLines).toBe(20);
83
+ });
84
+ it("returns correct totalLines and keptLines counts", () => {
85
+ const lines = Array.from({ length: 100 }, (_, i) => `line${i}`);
86
+ const content = lines.join("\n");
87
+ const result = truncateTail(content, 30);
88
+ expect(result.totalLines).toBe(100);
89
+ expect(result.keptLines).toBe(30);
90
+ expect(result.truncated).toBe(true);
91
+ });
92
+ });
93
+ //# sourceMappingURL=truncate-utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncate-utils.test.js","sourceRoot":"","sources":["../../src/tools/truncate-utils.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ declare const WriteParams: z.ZodObject<{
5
5
  file_path: z.ZodString;
6
6
  content: z.ZodString;
7
7
  }, z.core.$strip>;
8
- export declare function createWriteTool(cwd: string, readFiles?: Set<string>, ops?: ToolOperations): AgentTool<typeof WriteParams>;
8
+ export declare function createWriteTool(cwd: string, readFiles?: Set<string>, ops?: ToolOperations, planModeRef?: {
9
+ current: boolean;
10
+ }): AgentTool<typeof WriteParams>;
9
11
  export {};
10
12
  //# sourceMappingURL=write.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,QAAA,MAAM,WAAW;;;iBAGf,CAAC;AAEH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,GAAG,GAAE,cAAgC,GACpC,SAAS,CAAC,OAAO,WAAW,CAAC,CA0B/B"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,QAAA,MAAM,WAAW;;;iBAGf,CAAC;AAEH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,GAAG,GAAE,cAAgC,EACrC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACjC,SAAS,CAAC,OAAO,WAAW,CAAC,CAqC/B"}
@@ -1,3 +1,5 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
1
3
  import { z } from "zod";
2
4
  import { resolvePath, rejectSymlink } from "./path-utils.js";
3
5
  import { localOperations } from "./operations.js";
@@ -5,7 +7,7 @@ const WriteParams = z.object({
5
7
  file_path: z.string().describe("The file path to write to"),
6
8
  content: z.string().describe("The content to write"),
7
9
  });
8
- export function createWriteTool(cwd, readFiles, ops = localOperations) {
10
+ export function createWriteTool(cwd, readFiles, ops = localOperations, planModeRef) {
9
11
  return {
10
12
  name: "write",
11
13
  description: "Write content to a file. Creates parent directories if needed. " +
@@ -14,6 +16,14 @@ export function createWriteTool(cwd, readFiles, ops = localOperations) {
14
16
  async execute({ file_path, content }) {
15
17
  const resolved = resolvePath(cwd, file_path);
16
18
  await rejectSymlink(resolved);
19
+ if (planModeRef?.current) {
20
+ const plansDir = path.join(cwd, ".mragentix", "plans");
21
+ if (!resolved.startsWith(plansDir)) {
22
+ return ("Error: write is restricted in plan mode. You can only write to .mragentix/plans/. Got: " +
23
+ file_path);
24
+ }
25
+ await fs.mkdir(plansDir, { recursive: true });
26
+ }
17
27
  // Block overwriting existing files that haven't been read
18
28
  if (readFiles && !readFiles.has(resolved)) {
19
29
  const exists = await ops.stat(resolved).then(() => true, () => false);
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,SAAuB,EACvB,MAAsB,eAAe;IAErC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EACT,iEAAiE;YACjE,+FAA+F;QACjG,UAAU,EAAE,WAAW;QACvB,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAE9B,0DAA0D;YAC1D,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC1C,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;gBACF,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,SAAS,KAAK,aAAa,QAAQ,EAAE,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,SAAuB,EACvB,MAAsB,eAAe,EACrC,WAAkC;IAElC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EACT,iEAAiE;YACjE,+FAA+F;QACjG,UAAU,EAAE,WAAW;QACvB,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAE9B,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,OAAO,CACL,yFAAyF;wBACzF,SAAS,CACV,CAAC;gBACJ,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,0DAA0D;YAC1D,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC1C,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;gBACF,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,SAAS,KAAK,aAAa,QAAQ,EAAE,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -14,71 +14,84 @@ describe("createWriteTool", () => {
14
14
  afterEach(async () => {
15
15
  await fs.rm(tmpDir, { recursive: true, force: true });
16
16
  });
17
- it("returns line count and content for a short file", async () => {
17
+ it("writes file and returns byte count with absolute path", async () => {
18
18
  const tool = createWriteTool(tmpDir);
19
19
  const content = "line1\nline2\nline3\n";
20
20
  const raw = await tool.execute({ file_path: "test.txt", content }, { signal: new AbortController().signal, toolCallId: "test-1" });
21
- const lines = resultToString(raw).split("\n");
22
- expect(lines[0]).toBe("Wrote 3 lines to test.txt");
23
- // Rest should be the content itself
24
- expect(lines.slice(1).join("\n")).toBe(content);
21
+ const result = resultToString(raw);
22
+ const bytes = Buffer.byteLength(content, "utf-8");
23
+ expect(result).toBe(`Wrote ${bytes} bytes to ${path.join(tmpDir, "test.txt")}`);
24
+ // Verify file was actually written
25
+ const written = await fs.readFile(path.join(tmpDir, "test.txt"), "utf-8");
26
+ expect(written).toBe(content);
25
27
  });
26
- it("counts lines correctly without trailing newline", async () => {
28
+ it("reports correct byte count for unicode content", async () => {
27
29
  const tool = createWriteTool(tmpDir);
28
- const content = "a\nb\nc";
29
- const raw = await tool.execute({ file_path: "no-newline.txt", content }, { signal: new AbortController().signal, toolCallId: "test-2" });
30
- expect(resultToString(raw).split("\n")[0]).toBe("Wrote 3 lines to no-newline.txt");
30
+ const content = "héllo wörld 🚀\n";
31
+ const raw = await tool.execute({ file_path: "unicode.txt", content }, { signal: new AbortController().signal, toolCallId: "test-2" });
32
+ const result = resultToString(raw);
33
+ const bytes = Buffer.byteLength(content, "utf-8");
34
+ expect(result).toBe(`Wrote ${bytes} bytes to ${path.join(tmpDir, "unicode.txt")}`);
31
35
  });
32
- it("counts single line correctly", async () => {
36
+ it("creates parent directories if needed", async () => {
33
37
  const tool = createWriteTool(tmpDir);
34
- const content = "hello world\n";
35
- const raw = await tool.execute({ file_path: "one.txt", content }, { signal: new AbortController().signal, toolCallId: "test-3" });
36
- expect(resultToString(raw).split("\n")[0]).toBe("Wrote 1 lines to one.txt");
38
+ const raw = await tool.execute({ file_path: "sub/dir/file.txt", content: "test\n" }, { signal: new AbortController().signal, toolCallId: "test-3" });
39
+ const resolved = path.join(tmpDir, "sub/dir/file.txt");
40
+ const result = resultToString(raw);
41
+ expect(result).toBe(`Wrote 5 bytes to ${resolved}`);
42
+ // Verify file was actually created in the nested directory
43
+ const written = await fs.readFile(resolved, "utf-8");
44
+ expect(written).toBe("test\n");
37
45
  });
38
- it("uses relative path from cwd", async () => {
39
- const tool = createWriteTool(tmpDir);
40
- const subDir = path.join("sub", "dir");
41
- const raw = await tool.execute({ file_path: `${subDir}/file.txt`, content: "test\n" }, { signal: new AbortController().signal, toolCallId: "test-4" });
42
- expect(resultToString(raw).split("\n")[0]).toBe(`Wrote 1 lines to ${subDir}/file.txt`);
46
+ it("blocks overwriting existing files that haven't been read", async () => {
47
+ const readFiles = new Set();
48
+ const tool = createWriteTool(tmpDir, readFiles);
49
+ // Create an existing file
50
+ const filePath = path.join(tmpDir, "existing.txt");
51
+ await fs.writeFile(filePath, "original");
52
+ await expect(tool.execute({ file_path: "existing.txt", content: "new content" }, { signal: new AbortController().signal, toolCallId: "test-4" })).rejects.toThrow("File must be read first before overwriting");
43
53
  });
44
- it("content in result can be parsed by UI (trailing newline trimming)", async () => {
45
- const tool = createWriteTool(tmpDir);
46
- const content = "# Title\n\nSome content\nMore content\n";
47
- const raw = await tool.execute({ file_path: "readme.md", content }, { signal: new AbortController().signal, toolCallId: "test-5" });
48
- // Simulate the UI parsing logic from ToolExecution.tsx
54
+ it("allows overwriting files that have been read", async () => {
55
+ const readFiles = new Set();
56
+ const filePath = path.join(tmpDir, "existing.txt");
57
+ await fs.writeFile(filePath, "original");
58
+ // Mark as read
59
+ readFiles.add(filePath);
60
+ const tool = createWriteTool(tmpDir, readFiles);
61
+ const raw = await tool.execute({ file_path: "existing.txt", content: "new content" }, { signal: new AbortController().signal, toolCallId: "test-5" });
62
+ const result = resultToString(raw);
63
+ expect(result).toContain("Wrote");
64
+ const written = await fs.readFile(filePath, "utf-8");
65
+ expect(written).toBe("new content");
66
+ });
67
+ it("allows writing new files without reading", async () => {
68
+ const readFiles = new Set();
69
+ const tool = createWriteTool(tmpDir, readFiles);
70
+ const raw = await tool.execute({ file_path: "brand-new.txt", content: "hello" }, { signal: new AbortController().signal, toolCallId: "test-6" });
71
+ const result = resultToString(raw);
72
+ expect(result).toContain("Wrote 5 bytes");
73
+ });
74
+ it("restricts writes to .mragentix/plans/ in plan mode", async () => {
75
+ const planModeRef = { current: true };
76
+ const tool = createWriteTool(tmpDir, undefined, undefined, planModeRef);
77
+ const raw = await tool.execute({ file_path: "src/main.ts", content: "code" }, { signal: new AbortController().signal, toolCallId: "test-7" });
78
+ const result = resultToString(raw);
79
+ expect(result).toContain("Error: write is restricted in plan mode");
80
+ });
81
+ it("allows writing to .mragentix/plans/ in plan mode", async () => {
82
+ const planModeRef = { current: true };
83
+ const tool = createWriteTool(tmpDir, undefined, undefined, planModeRef);
84
+ const raw = await tool.execute({ file_path: ".mragentix/plans/plan.md", content: "# My Plan\n" }, { signal: new AbortController().signal, toolCallId: "test-8" });
49
85
  const result = resultToString(raw);
50
- const allLines = result.split("\n");
51
- const summary = allLines[0];
52
- let contentLines = allLines.slice(1);
53
- if (contentLines.length > 0 && contentLines[contentLines.length - 1] === "") {
54
- contentLines = contentLines.slice(0, -1);
55
- }
56
- expect(summary).toBe("Wrote 4 lines to readme.md");
57
- expect(contentLines).toEqual(["# Title", "", "Some content", "More content"]);
58
- expect(contentLines.length).toBe(4);
86
+ expect(result).toContain("Wrote");
87
+ const written = await fs.readFile(path.join(tmpDir, ".mragentix/plans/plan.md"), "utf-8");
88
+ expect(written).toBe("# My Plan\n");
59
89
  });
60
- it("UI truncation logic works for long files", async () => {
61
- const MAX_OUTPUT_LINES = 8;
90
+ it("writes empty content", async () => {
62
91
  const tool = createWriteTool(tmpDir);
63
- const lines = Array.from({ length: 20 }, (_, i) => `line ${i + 1}`);
64
- const content = lines.join("\n") + "\n";
65
- const raw = await tool.execute({ file_path: "long.txt", content }, { signal: new AbortController().signal, toolCallId: "test-6" });
92
+ const raw = await tool.execute({ file_path: "empty.txt", content: "" }, { signal: new AbortController().signal, toolCallId: "test-9" });
66
93
  const result = resultToString(raw);
67
- const allLines = result.split("\n");
68
- const summary = allLines[0];
69
- let contentLines = allLines.slice(1);
70
- if (contentLines.length > 0 && contentLines[contentLines.length - 1] === "") {
71
- contentLines = contentLines.slice(0, -1);
72
- }
73
- expect(summary).toBe("Wrote 20 lines to long.txt");
74
- expect(contentLines.length).toBe(20);
75
- // Simulate UI display
76
- const displayLines = contentLines.slice(0, MAX_OUTPUT_LINES);
77
- const totalLines = 1 + contentLines.length; // summary + content
78
- const renderedCount = 1 + displayLines.length; // summary + displayed content
79
- const hiddenCount = totalLines - renderedCount;
80
- expect(displayLines.length).toBe(8);
81
- expect(hiddenCount).toBe(12); // 21 - 9 = 12
94
+ expect(result).toBe(`Wrote 0 bytes to ${path.join(tmpDir, "empty.txt")}`);
82
95
  });
83
96
  });
84
97
  //# sourceMappingURL=write.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.test.js","sourceRoot":"","sources":["../../src/tools/write.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.test.js","sourceRoot":"","sources":["../../src/tools/write.test.ts"],"names":[],"mappings":"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"}
package/dist/ui/App.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { AgentTool } from "@mragentix/agent";
3
3
  import type { PasteInfo } from "./components/InputArea.js";
4
4
  import { type SubAgentInfo } from "./components/SubAgentPanel.js";
5
5
  import type { ProcessManager } from "../core/process-manager.js";
6
+ import type { Skill } from "../core/skills.js";
6
7
  import type { MCPClientManager } from "../core/mcp/index.js";
7
8
  import type { AuthStorage } from "../core/auth-storage.js";
8
9
  interface UserItem {
@@ -50,6 +51,12 @@ interface InfoItem {
50
51
  text: string;
51
52
  id: string;
52
53
  }
54
+ interface QueuedItem {
55
+ kind: "queued";
56
+ text: string;
57
+ imageCount?: number;
58
+ id: string;
59
+ }
53
60
  interface CompactingItem {
54
61
  kind: "compacting";
55
62
  id: string;
@@ -113,7 +120,7 @@ export interface ToolGroupItem {
113
120
  tools: ToolGroupTool[];
114
121
  id: string;
115
122
  }
116
- export type CompletedItem = UserItem | TaskItem | AssistantItem | ToolStartItem | ToolDoneItem | ServerToolStartItem | ServerToolDoneItem | ErrorItem | InfoItem | CompactingItem | CompactedItem | DurationItem | BannerItem | SubAgentGroupItem | ToolGroupItem | TombstoneItem;
123
+ export type CompletedItem = UserItem | TaskItem | AssistantItem | ToolStartItem | ToolDoneItem | ServerToolStartItem | ServerToolDoneItem | ErrorItem | InfoItem | QueuedItem | CompactingItem | CompactedItem | DurationItem | BannerItem | SubAgentGroupItem | ToolGroupItem | TombstoneItem;
117
124
  export interface AppProps {
118
125
  provider: Provider;
119
126
  model: string;
@@ -142,6 +149,16 @@ export interface AppProps {
142
149
  settingsFile?: string;
143
150
  mcpManager?: MCPClientManager;
144
151
  authStorage?: AuthStorage;
152
+ planModeRef?: {
153
+ current: boolean;
154
+ };
155
+ onEnterPlanRef?: {
156
+ current: (reason?: string) => void;
157
+ };
158
+ onExitPlanRef?: {
159
+ current: (planPath: string) => Promise<string>;
160
+ };
161
+ skills?: Skill[];
145
162
  }
146
163
  export declare function App(props: AppProps): import("react/jsx-runtime").JSX.Element;
147
164
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}