fixo-cli 1.0.3 → 2.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.

Potentially problematic release.


This version of fixo-cli might be problematic. Click here for more details.

Files changed (222) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +18 -14
  3. package/dist/agent/agent-client.d.ts +28 -6
  4. package/dist/agent/agent-client.d.ts.map +1 -1
  5. package/dist/agent/agent-client.js +118 -39
  6. package/dist/agent/agent-client.js.map +1 -1
  7. package/dist/agent/agent-pool.d.ts +55 -6
  8. package/dist/agent/agent-pool.d.ts.map +1 -1
  9. package/dist/agent/agent-pool.js +120 -20
  10. package/dist/agent/agent-pool.js.map +1 -1
  11. package/dist/agent/auto-verifier.d.ts +55 -0
  12. package/dist/agent/auto-verifier.d.ts.map +1 -0
  13. package/dist/agent/auto-verifier.js +50 -0
  14. package/dist/agent/auto-verifier.js.map +1 -0
  15. package/dist/agent/command-parser.d.ts +37 -0
  16. package/dist/agent/command-parser.d.ts.map +1 -1
  17. package/dist/agent/command-parser.js +473 -1
  18. package/dist/agent/command-parser.js.map +1 -1
  19. package/dist/agent/context-builder.d.ts +24 -0
  20. package/dist/agent/context-builder.d.ts.map +1 -0
  21. package/dist/agent/context-builder.js +197 -0
  22. package/dist/agent/context-builder.js.map +1 -0
  23. package/dist/agent/conversation.d.ts +32 -2
  24. package/dist/agent/conversation.d.ts.map +1 -1
  25. package/dist/agent/conversation.js +84 -9
  26. package/dist/agent/conversation.js.map +1 -1
  27. package/dist/agent/duration.d.ts +24 -0
  28. package/dist/agent/duration.d.ts.map +1 -0
  29. package/dist/agent/duration.js +42 -0
  30. package/dist/agent/duration.js.map +1 -0
  31. package/dist/agent/file-writing-rules.d.ts +19 -0
  32. package/dist/agent/file-writing-rules.d.ts.map +1 -0
  33. package/dist/agent/file-writing-rules.js +31 -0
  34. package/dist/agent/file-writing-rules.js.map +1 -0
  35. package/dist/agent/mcp-bridge.js +1 -1
  36. package/dist/agent/mcp-bridge.js.map +1 -1
  37. package/dist/agent/orchestrator.d.ts +45 -0
  38. package/dist/agent/orchestrator.d.ts.map +1 -1
  39. package/dist/agent/orchestrator.js +140 -3
  40. package/dist/agent/orchestrator.js.map +1 -1
  41. package/dist/agent/parser-adapter.d.ts +17 -0
  42. package/dist/agent/parser-adapter.d.ts.map +1 -1
  43. package/dist/agent/parser-adapter.js +311 -7
  44. package/dist/agent/parser-adapter.js.map +1 -1
  45. package/dist/agent/predictive-gate.d.ts.map +1 -1
  46. package/dist/agent/predictive-gate.js +4 -1
  47. package/dist/agent/predictive-gate.js.map +1 -1
  48. package/dist/agent/provider-cooldown.d.ts.map +1 -1
  49. package/dist/agent/provider-cooldown.js +3 -2
  50. package/dist/agent/provider-cooldown.js.map +1 -1
  51. package/dist/agent/providers-manager.d.ts +5 -0
  52. package/dist/agent/providers-manager.d.ts.map +1 -1
  53. package/dist/agent/providers-manager.js +119 -8
  54. package/dist/agent/providers-manager.js.map +1 -1
  55. package/dist/agent/repo-map.d.ts +18 -1
  56. package/dist/agent/repo-map.d.ts.map +1 -1
  57. package/dist/agent/repo-map.js +144 -54
  58. package/dist/agent/repo-map.js.map +1 -1
  59. package/dist/agent/retry.js +1 -2
  60. package/dist/agent/retry.js.map +1 -1
  61. package/dist/agent/single-agent.d.ts +13 -0
  62. package/dist/agent/single-agent.d.ts.map +1 -1
  63. package/dist/agent/single-agent.js +225 -37
  64. package/dist/agent/single-agent.js.map +1 -1
  65. package/dist/agent/skills.d.ts.map +1 -1
  66. package/dist/agent/skills.js +2 -1
  67. package/dist/agent/skills.js.map +1 -1
  68. package/dist/agent/subagent.js +2 -2
  69. package/dist/agent/subagent.js.map +1 -1
  70. package/dist/agent/task-router.d.ts +46 -0
  71. package/dist/agent/task-router.d.ts.map +1 -0
  72. package/dist/agent/task-router.js +352 -0
  73. package/dist/agent/task-router.js.map +1 -0
  74. package/dist/agent/telemetry.d.ts +29 -1
  75. package/dist/agent/telemetry.d.ts.map +1 -1
  76. package/dist/agent/telemetry.js +29 -11
  77. package/dist/agent/telemetry.js.map +1 -1
  78. package/dist/agent/tool-definitions.d.ts +3 -0
  79. package/dist/agent/tool-definitions.d.ts.map +1 -0
  80. package/dist/agent/tool-definitions.js +519 -0
  81. package/dist/agent/tool-definitions.js.map +1 -0
  82. package/dist/agent/tool-executor.d.ts +6 -1
  83. package/dist/agent/tool-executor.d.ts.map +1 -1
  84. package/dist/agent/tool-executor.js +99 -553
  85. package/dist/agent/tool-executor.js.map +1 -1
  86. package/dist/agent/tools/command-tools.d.ts +6 -0
  87. package/dist/agent/tools/command-tools.d.ts.map +1 -0
  88. package/dist/agent/tools/command-tools.js +104 -0
  89. package/dist/agent/tools/command-tools.js.map +1 -0
  90. package/dist/agent/tools/file-tools.d.ts +15 -0
  91. package/dist/agent/tools/file-tools.d.ts.map +1 -0
  92. package/dist/agent/tools/file-tools.js +551 -0
  93. package/dist/agent/tools/file-tools.js.map +1 -0
  94. package/dist/agent/tools/todo-tools.d.ts +3 -0
  95. package/dist/agent/tools/todo-tools.d.ts.map +1 -0
  96. package/dist/agent/tools/todo-tools.js +70 -0
  97. package/dist/agent/tools/todo-tools.js.map +1 -0
  98. package/dist/agent/web-impl.d.ts.map +1 -1
  99. package/dist/agent/web-impl.js +45 -0
  100. package/dist/agent/web-impl.js.map +1 -1
  101. package/dist/agent/worker-agent.d.ts +3 -1
  102. package/dist/agent/worker-agent.d.ts.map +1 -1
  103. package/dist/agent/worker-agent.js +56 -16
  104. package/dist/agent/worker-agent.js.map +1 -1
  105. package/dist/config.d.ts +253 -1
  106. package/dist/config.d.ts.map +1 -1
  107. package/dist/config.js +81 -1
  108. package/dist/config.js.map +1 -1
  109. package/dist/git/git-manager.d.ts +33 -2
  110. package/dist/git/git-manager.d.ts.map +1 -1
  111. package/dist/git/git-manager.js +111 -15
  112. package/dist/git/git-manager.js.map +1 -1
  113. package/dist/git/git-ops.d.ts.map +1 -1
  114. package/dist/git/git-ops.js +2 -1
  115. package/dist/git/git-ops.js.map +1 -1
  116. package/dist/index.js +89 -8
  117. package/dist/index.js.map +1 -1
  118. package/dist/lsp/lsp-manager.js +1 -1
  119. package/dist/lsp/lsp-manager.js.map +1 -1
  120. package/dist/model-outcomes.d.ts.map +1 -1
  121. package/dist/model-outcomes.js +2 -1
  122. package/dist/model-outcomes.js.map +1 -1
  123. package/dist/planner.d.ts +0 -9
  124. package/dist/planner.d.ts.map +1 -1
  125. package/dist/planner.js +0 -9
  126. package/dist/planner.js.map +1 -1
  127. package/dist/project-memory.d.ts +12 -1
  128. package/dist/project-memory.d.ts.map +1 -1
  129. package/dist/project-memory.js +8 -6
  130. package/dist/project-memory.js.map +1 -1
  131. package/dist/runtime/loop-mitigation.d.ts +119 -0
  132. package/dist/runtime/loop-mitigation.d.ts.map +1 -0
  133. package/dist/runtime/loop-mitigation.js +192 -0
  134. package/dist/runtime/loop-mitigation.js.map +1 -0
  135. package/dist/runtime/os-sandbox.d.ts +100 -0
  136. package/dist/runtime/os-sandbox.d.ts.map +1 -0
  137. package/dist/runtime/os-sandbox.js +246 -0
  138. package/dist/runtime/os-sandbox.js.map +1 -0
  139. package/dist/runtime/run-inventory.d.ts +17 -0
  140. package/dist/runtime/run-inventory.d.ts.map +1 -0
  141. package/dist/runtime/run-inventory.js +49 -0
  142. package/dist/runtime/run-inventory.js.map +1 -0
  143. package/dist/runtime/session-snapshots.d.ts +52 -2
  144. package/dist/runtime/session-snapshots.d.ts.map +1 -1
  145. package/dist/runtime/session-snapshots.js +76 -1
  146. package/dist/runtime/session-snapshots.js.map +1 -1
  147. package/dist/runtime/staging.d.ts.map +1 -1
  148. package/dist/runtime/staging.js +4 -1
  149. package/dist/runtime/staging.js.map +1 -1
  150. package/dist/runtime/task-session.d.ts +14 -0
  151. package/dist/runtime/task-session.d.ts.map +1 -1
  152. package/dist/runtime/task-session.js +26 -0
  153. package/dist/runtime/task-session.js.map +1 -1
  154. package/dist/setup-wizard.d.ts +11 -3
  155. package/dist/setup-wizard.d.ts.map +1 -1
  156. package/dist/setup-wizard.js +113 -15
  157. package/dist/setup-wizard.js.map +1 -1
  158. package/dist/types.d.ts +8 -0
  159. package/dist/types.d.ts.map +1 -1
  160. package/dist/ui/commands/context-commands.d.ts +7 -0
  161. package/dist/ui/commands/context-commands.d.ts.map +1 -0
  162. package/dist/ui/commands/context-commands.js +241 -0
  163. package/dist/ui/commands/context-commands.js.map +1 -0
  164. package/dist/ui/commands/index.d.ts +3 -0
  165. package/dist/ui/commands/index.d.ts.map +1 -0
  166. package/dist/ui/commands/index.js +46 -0
  167. package/dist/ui/commands/index.js.map +1 -0
  168. package/dist/ui/commands/info-commands.d.ts +15 -0
  169. package/dist/ui/commands/info-commands.d.ts.map +1 -0
  170. package/dist/ui/commands/info-commands.js +122 -0
  171. package/dist/ui/commands/info-commands.js.map +1 -0
  172. package/dist/ui/commands/model-commands.d.ts +5 -0
  173. package/dist/ui/commands/model-commands.d.ts.map +1 -0
  174. package/dist/ui/commands/model-commands.js +417 -0
  175. package/dist/ui/commands/model-commands.js.map +1 -0
  176. package/dist/ui/commands/session-commands.d.ts +5 -0
  177. package/dist/ui/commands/session-commands.d.ts.map +1 -0
  178. package/dist/ui/commands/session-commands.js +154 -0
  179. package/dist/ui/commands/session-commands.js.map +1 -0
  180. package/dist/ui/commands/task-commands.d.ts +8 -0
  181. package/dist/ui/commands/task-commands.d.ts.map +1 -0
  182. package/dist/ui/commands/task-commands.js +152 -0
  183. package/dist/ui/commands/task-commands.js.map +1 -0
  184. package/dist/ui/commands/types.d.ts +46 -0
  185. package/dist/ui/commands/types.d.ts.map +1 -0
  186. package/dist/ui/commands/types.js +2 -0
  187. package/dist/ui/commands/types.js.map +1 -0
  188. package/dist/ui/commands/workspace-commands.d.ts +8 -0
  189. package/dist/ui/commands/workspace-commands.d.ts.map +1 -0
  190. package/dist/ui/commands/workspace-commands.js +131 -0
  191. package/dist/ui/commands/workspace-commands.js.map +1 -0
  192. package/dist/ui/loading-animation.d.ts +24 -0
  193. package/dist/ui/loading-animation.d.ts.map +1 -0
  194. package/dist/ui/loading-animation.js +123 -0
  195. package/dist/ui/loading-animation.js.map +1 -0
  196. package/dist/ui/markdown-stream.js +2 -2
  197. package/dist/ui/markdown-stream.js.map +1 -1
  198. package/dist/ui/prompt.d.ts +7 -0
  199. package/dist/ui/prompt.d.ts.map +1 -1
  200. package/dist/ui/prompt.js +461 -1143
  201. package/dist/ui/prompt.js.map +1 -1
  202. package/dist/ui/render-primitives.d.ts +6 -0
  203. package/dist/ui/render-primitives.d.ts.map +1 -1
  204. package/dist/ui/render-primitives.js +30 -13
  205. package/dist/ui/render-primitives.js.map +1 -1
  206. package/dist/ui/render.d.ts.map +1 -1
  207. package/dist/ui/render.js +2 -0
  208. package/dist/ui/render.js.map +1 -1
  209. package/dist/ui/session-header.d.ts +13 -0
  210. package/dist/ui/session-header.d.ts.map +1 -1
  211. package/dist/ui/session-header.js +6 -0
  212. package/dist/ui/session-header.js.map +1 -1
  213. package/package.json +22 -4
  214. package/scripts/check-vendor-wasm.js +55 -0
  215. package/vendor/tree-sitter-bash.wasm +0 -0
  216. package/vendor/tree-sitter-go.wasm +0 -0
  217. package/vendor/tree-sitter-javascript.wasm +0 -0
  218. package/vendor/tree-sitter-python.wasm +0 -0
  219. package/vendor/tree-sitter-rust.wasm +0 -0
  220. package/vendor/tree-sitter-tsx.wasm +0 -0
  221. package/vendor/tree-sitter-typescript.wasm +0 -0
  222. package/vendor/tree-sitter.wasm +0 -0
@@ -0,0 +1,31 @@
1
+ /**
2
+ * file-writing-rules.ts — Shared system-prompt fragment that steers
3
+ * the LLM toward the sanctioned write tools and away from shell-based
4
+ * file mutation.
5
+ *
6
+ * The shell sandbox (see `command-parser.ts` → `extractWriteTargets`)
7
+ * already rejects `cat > file`, `sed -i`, `tee`, `mv` into platform
8
+ * paths, `python3 -c "open(...,'w')"`, and heredoc smuggling. But a
9
+ * rejection still costs a turn and an approval prompt. This block
10
+ * tells the model up-front not to try, so the typical session never
11
+ * floods the user with security warnings the way Test 1 in the log
12
+ * did.
13
+ *
14
+ * Keep this fragment short: every agent persona that gets tool
15
+ * access (single-agent, code worker, test worker) pastes it into
16
+ * its system prompt.
17
+ */
18
+ export const FILE_WRITING_RULES_BLOCK = [
19
+ ``,
20
+ `## File Writing Rules (HARD CONSTRAINT)`,
21
+ `The ONLY sanctioned tools for writing files are \`write_file\`, \`str_replace\`, \`apply_patch\`, \`replace_range\`, \`insert_after\`, and \`rename_file\`. They are atomic, LSP-gated, and respect the platform path lock.`,
22
+ `Writing files via \`run_command\` is **sandbox-blocked**. The following patterns will be rejected with a security error and waste a tool call:`,
23
+ `- \`cat > file\`, \`cat >> file\`, \`echo … > file\`, or any \`>\`/\`>>\` redirect that writes a workspace file`,
24
+ `- heredocs like \`cat > file <<'EOF' … EOF\` or \`python3 << 'PYEOF' … PYEOF\``,
25
+ `- \`tee\`, \`sed -i\`, \`perl -i\`, \`awk … > file\``,
26
+ `- \`mv\`/\`cp\` whose destination is a tracked source file`,
27
+ `- interpreter payloads that write: \`python3 -c "open('x','w')…"\`, \`node -e "fs.writeFileSync('x', …)"\`, \`perl -e "open(FH,'>','x')…"\``,
28
+ `If you find yourself reaching for any of these, stop and use \`write_file\` (or \`str_replace\`/\`apply_patch\` for edits) instead — it is faster, safer, and the only path that actually succeeds.`,
29
+ `\`run_command\` is for running things (tests, builds, git, lint, format), not for producing files.`,
30
+ ].join('\n');
31
+ //# sourceMappingURL=file-writing-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-writing-rules.js","sourceRoot":"","sources":["../../src/agent/file-writing-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,EAAE;IACF,yCAAyC;IACzC,6NAA6N;IAC7N,gJAAgJ;IAChJ,iHAAiH;IACjH,gFAAgF;IAChF,sDAAsD;IACtD,4DAA4D;IAC5D,6IAA6I;IAC7I,qMAAqM;IACrM,oGAAoG;CACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -39,7 +39,7 @@ export class McpBridgeManager {
39
39
  loadProjectMcpConfig(cwd) {
40
40
  const ymlPath = path.join(cwd, '.fixo.yml');
41
41
  const yamlPath = path.join(cwd, '.fixo.yaml');
42
- let configPath = fs.existsSync(ymlPath) ? ymlPath : fs.existsSync(yamlPath) ? yamlPath : null;
42
+ const configPath = fs.existsSync(ymlPath) ? ymlPath : fs.existsSync(yamlPath) ? yamlPath : null;
43
43
  if (configPath) {
44
44
  try {
45
45
  const content = fs.readFileSync(configPath, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-bridge.js","sourceRoot":"","sources":["../../src/agent/mcp-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-bridge.js","sourceRoot":"","sources":["../../src/agent/mcp-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAwB,MAAM,iBAAiB,CAAC;AAGlE,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IACvC,QAAQ,GAAG,IAAI,GAAG,EAAuD,CAAC;IAC1E,eAAe,GAAyB,EAAE,CAAC;IAEnD,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,YAA+B,CAAC,CAAC;YACpE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;oBACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,cAAc,GAAG,aAAa,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;wBACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;4BACxB,IAAI,EAAE,UAAU;4BAChB,QAAQ,EAAE;gCACR,IAAI,EAAE,cAAc;gCACpB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;gCACnC,UAAU,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;6BACnE;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,sDAAsD,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,GAAW;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhG,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAS;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACzE,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,OAAO;iBAClB,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;gBACd,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAO,CAAC,CAAC,IAAI,CAAC;gBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,CAAC;CACF"}
@@ -1,4 +1,49 @@
1
1
  import type { AgentContext, Subtask, TaskDAG } from '../types.js';
2
+ /**
3
+ * Phase 5.3 — could the two file references possibly resolve to the
4
+ * same on-disk path?
5
+ *
6
+ * Pure-string match is the easy case. When either side is a glob
7
+ * (contains `*` or `?`), we test the glob against the literal. When
8
+ * BOTH sides are globs we punt and return true — pattern-vs-pattern
9
+ * overlap is undecidable cheaply, and conservative serialization is
10
+ * the explicit Phase 5.3 default.
11
+ */
12
+ export declare function couldOverlapFile(a: string, b: string): boolean;
13
+ /**
14
+ * Phase 5.3 — DAG post-pass that injects dependency edges between
15
+ * subtasks whose write-sets could conflict.
16
+ *
17
+ * Algorithm:
18
+ * 1. Iterate subtasks in deterministic `id`-lexicographic order.
19
+ * 2. For each pair (a, b) where a < b and both are write-shaped:
20
+ * a. If they're already directly ordered (a depends on b OR b
21
+ * depends on a), skip.
22
+ * b. If both declare non-empty `files` AND those sets could
23
+ * overlap → serialize b after a.
24
+ * c. If either declares empty `files` AND `serializeMissingFiles`
25
+ * is true → serialize b after a (conservative: can't prove
26
+ * disjoint write sets).
27
+ * 3. Each insertion is logged to telemetry so we can observe how
28
+ * often the conflict pass kicks in.
29
+ *
30
+ * Mutates the subtasks array in place (consistent with
31
+ * `validateAndSortDAG` style) and returns the inserted edges for
32
+ * observability.
33
+ */
34
+ export interface WriteConflictPlan {
35
+ /** Same array reference as input, with `dependencies` mutated. */
36
+ subtasks: Subtask[];
37
+ /** Edges injected by this pass; `from` blocks `to`. */
38
+ edgesInserted: Array<{
39
+ from: string;
40
+ to: string;
41
+ reason: string;
42
+ }>;
43
+ }
44
+ export declare function serializeWriteConflicts(subtasks: Subtask[], options?: {
45
+ serializeMissingFiles?: boolean;
46
+ }): WriteConflictPlan;
2
47
  export declare class Orchestrator {
3
48
  private client;
4
49
  private verbose;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAKlE,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAU;IAClB,UAAU;;;;MAA+D;gBAEpE,OAAO,UAAQ;IAMrB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAmFnD,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;CAmCnD"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAsBlE;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ9D;AAWD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,uDAAuD;IACvD,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GAChD,iBAAiB,CA4DnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAU;IAClB,UAAU;;;;MAA+D;gBAEpE,OAAO,UAAQ;IAYrB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAkHnD,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;CAmCnD"}
@@ -1,13 +1,120 @@
1
1
  import { AgentClient } from './agent-client.js';
2
- import { loadConfig } from '../config.js';
2
+ import { loadConfig, getAgentDagConfig } from '../config.js';
3
3
  import { C } from '../ui/colors.js';
4
+ import { globToRegExp } from './permissions.js';
5
+ import { telemetry, recordTelemetry } from './telemetry.js';
6
+ /**
7
+ * Phase 5.3 — Subtask personas that may write to the workspace.
8
+ *
9
+ * Reviewer is read-only (it produces a verdict, not a diff). Code,
10
+ * test, and doc personas all have plausible write-shaped tool calls —
11
+ * `test` writes test files, `doc` writes README/JSDoc, and `code` is
12
+ * the obvious case. Only pairs of MUTATING_PERSONAS members are
13
+ * candidates for write-conflict serialization.
14
+ */
15
+ const MUTATING_PERSONAS = new Set([
16
+ 'code',
17
+ 'test',
18
+ 'doc',
19
+ ]);
20
+ /**
21
+ * Phase 5.3 — could the two file references possibly resolve to the
22
+ * same on-disk path?
23
+ *
24
+ * Pure-string match is the easy case. When either side is a glob
25
+ * (contains `*` or `?`), we test the glob against the literal. When
26
+ * BOTH sides are globs we punt and return true — pattern-vs-pattern
27
+ * overlap is undecidable cheaply, and conservative serialization is
28
+ * the explicit Phase 5.3 default.
29
+ */
30
+ export function couldOverlapFile(a, b) {
31
+ if (a === b)
32
+ return true;
33
+ const aIsGlob = a.includes('*') || a.includes('?');
34
+ const bIsGlob = b.includes('*') || b.includes('?');
35
+ if (aIsGlob && bIsGlob)
36
+ return true; // can't cheaply decide; conservative
37
+ if (aIsGlob)
38
+ return globToRegExp(a).test(b);
39
+ if (bIsGlob)
40
+ return globToRegExp(b).test(a);
41
+ return false;
42
+ }
43
+ function fileSetsCouldOverlap(filesA, filesB) {
44
+ for (const a of filesA) {
45
+ for (const b of filesB) {
46
+ if (couldOverlapFile(a, b))
47
+ return true;
48
+ }
49
+ }
50
+ return false;
51
+ }
52
+ export function serializeWriteConflicts(subtasks, options = {}) {
53
+ const serializeMissingFiles = options.serializeMissingFiles ?? true;
54
+ const edges = [];
55
+ // Deterministic order — lexicographic `id`. Stable across runs so
56
+ // a re-plan produces the same DAG.
57
+ const ordered = [...subtasks].sort((a, b) => a.id.localeCompare(b.id));
58
+ for (let i = 0; i < ordered.length; i++) {
59
+ const a = ordered[i];
60
+ if (!MUTATING_PERSONAS.has(a.persona))
61
+ continue;
62
+ for (let j = i + 1; j < ordered.length; j++) {
63
+ const b = ordered[j];
64
+ if (!MUTATING_PERSONAS.has(b.persona))
65
+ continue;
66
+ // Skip if already directly ordered (in either direction).
67
+ if (b.dependencies.includes(a.id) || a.dependencies.includes(b.id))
68
+ continue;
69
+ const aFiles = a.files ?? [];
70
+ const bFiles = b.files ?? [];
71
+ let reason = null;
72
+ let conflictKey = '';
73
+ if (aFiles.length > 0 && bFiles.length > 0) {
74
+ if (fileSetsCouldOverlap(aFiles, bFiles)) {
75
+ // Find a representative overlapping pair for telemetry.
76
+ outer: for (const x of aFiles) {
77
+ for (const y of bFiles) {
78
+ if (couldOverlapFile(x, y)) {
79
+ conflictKey = x === y ? x : `${x} ↔ ${y}`;
80
+ break outer;
81
+ }
82
+ }
83
+ }
84
+ reason = `shared write target (${conflictKey})`;
85
+ }
86
+ }
87
+ else if (serializeMissingFiles) {
88
+ reason = aFiles.length === 0 && bFiles.length === 0
89
+ ? `both subtasks declared no files; conservative serialization`
90
+ : `one subtask declared no files; conservative serialization`;
91
+ conflictKey = '<unknown>';
92
+ }
93
+ if (reason) {
94
+ b.dependencies = [...b.dependencies, a.id];
95
+ edges.push({ from: a.id, to: b.id, reason });
96
+ try {
97
+ recordTelemetry(telemetry.dagWriteSetConflictAvoided({
98
+ runId: 'plan-time',
99
+ file: conflictKey,
100
+ serializedSubtasks: [a.id, b.id],
101
+ }));
102
+ }
103
+ catch {
104
+ // telemetry must never break planning
105
+ }
106
+ }
107
+ }
108
+ }
109
+ return { subtasks, edgesInserted: edges };
110
+ }
4
111
  export class Orchestrator {
5
112
  client;
6
113
  verbose;
7
114
  tokensUsed = { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 };
8
115
  constructor(verbose = false) {
9
116
  const config = loadConfig();
10
- this.client = new AgentClient(config.freellmapi_api_key || '', config.apiUrl, verbose);
117
+ this.client = new AgentClient(config.freellmapi_api_key || '', config.apiUrl, verbose, config.provider_mode, config.preferences.modelRouting);
11
118
  this.verbose = verbose;
12
119
  }
13
120
  async plan(context) {
@@ -56,9 +163,39 @@ JSON Schema:
56
163
  }
57
164
  const content = response.content?.trim() || '';
58
165
  const jsonMatch = content.match(/\{[\s\S]*\}/);
59
- const parsed = JSON.parse(jsonMatch ? jsonMatch[0] : content);
166
+ if (jsonMatch) {
167
+ const rawLength = content.length;
168
+ const matchLength = jsonMatch[0].length;
169
+ if (rawLength - matchLength > 50) {
170
+ throw new Error(`Model output contained too much conversational text (${rawLength - matchLength} chars outside JSON). Please output STRICTLY JSON without any conversational text or markdown formatting.`);
171
+ }
172
+ }
173
+ else {
174
+ throw new Error('No JSON object found in response.');
175
+ }
176
+ const parsed = JSON.parse(jsonMatch[0]);
60
177
  if (parsed && Array.isArray(parsed.subtasks)) {
61
178
  this.validateAndSortDAG(parsed.subtasks);
179
+ // Phase 5.3 — inject write-conflict edges. Default is to
180
+ // serialize on both observed overlap AND declared-empty
181
+ // file sets (LLMs frequently omit `files`). The flag lives
182
+ // under `agent.dag.serializeWriteConflicts`.
183
+ const dagCfg = getAgentDagConfig();
184
+ if (dagCfg.serializeWriteConflicts) {
185
+ const { edgesInserted } = serializeWriteConflicts(parsed.subtasks, {
186
+ serializeMissingFiles: dagCfg.serializeMissingFiles,
187
+ });
188
+ if (edgesInserted.length > 0 && this.verbose) {
189
+ console.log(`${C.BLUE}[Orchestrator] Injected ${edgesInserted.length} write-conflict edge(s).${C.RESET}`);
190
+ for (const e of edgesInserted) {
191
+ console.log(` ${C.DIM}${e.from} → ${e.to}: ${e.reason}${C.RESET}`);
192
+ }
193
+ }
194
+ // Re-validate to confirm acyclicity (insertion is by sorted
195
+ // id so a cycle is impossible, but we run validation again
196
+ // for defense in depth).
197
+ this.validateAndSortDAG(parsed.subtasks);
198
+ }
62
199
  return parsed;
63
200
  }
64
201
  feedback = 'Missing subtasks array';
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -74,7 +74,24 @@ export declare class TreeSitterAdapter implements ParserAdapter {
74
74
  supported: boolean;
75
75
  private parser;
76
76
  private initialised;
77
+ /** Lazily-loaded language grammars, keyed by LanguageId. The `bash`
78
+ * grammar is loaded eagerly in {@link init} because the shell-
79
+ * command parser path runs on virtually every tool call. The other
80
+ * languages are loaded on demand by {@link loadLanguage}. */
81
+ private languages;
77
82
  init(): Promise<ParserInitResult>;
83
+ /**
84
+ * Lazily load a language grammar from the vendored WASM. Idempotent.
85
+ * Returns `true` if the language is ready for tree-sitter-based
86
+ * extraction; `false` if the WASM is missing or fails to load
87
+ * (callers will fall back to the regex extractor).
88
+ *
89
+ * Pre-warm a language before calling {@link extractSymbols} in
90
+ * hot paths \u2014 extractSymbols itself is synchronous (see why in
91
+ * the {@link ParserAdapter} interface) and will silently fall
92
+ * through to the regex path if the grammar isn't loaded yet.
93
+ */
94
+ loadLanguage(lang: LanguageId): Promise<boolean>;
78
95
  extractSymbols(source: string, language: LanguageId): SymbolInfo[];
79
96
  extractImports(source: string, language: LanguageId): ImportInfo[];
80
97
  parseShellCommand(command: string): ParsedCommand[];
@@ -1 +1 @@
1
- {"version":3,"file":"parser-adapter.d.ts","sourceRoot":"","sources":["../../src/agent/parser-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA0CH,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,OAAO,GACP,UAAU,GACV,WAAW,GACX,MAAM,GACN,OAAO,GACP,KAAK,GACL,KAAK,GACL,MAAM,GACN,QAAQ,GACR,UAAU,GACV,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,qEAAqE;IACrE,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAElC;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAEnE;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAEnE;;;OAGG;IACH,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC;IAErD,gCAAgC;IAChC,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAe/D;AAID,qBAAa,iBAAkB,YAAW,aAAa;IACrD,SAAgB,IAAI,EAAG,aAAa,CAAU;IACvC,SAAS,UAAQ;IACxB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,WAAW,CAAS;IAEtB,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAmCvC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE;IAIlE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE;IAIlE,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAWnD,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,IAAI,IAAI;CAKhB;AAaD,qBAAa,kBAAmB,YAAW,aAAa;IACtD,SAAgB,IAAI,EAAG,OAAO,CAAU;IACjC,SAAS,UAAQ;IAElB,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIvC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE;IAIlE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE;IAIlE,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAInD,0EAA0E;IAC1E,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAInE,OAAO,IAAI,IAAI;CAGhB;AAgBD,qBAAa,aAAa;IACxB;;;;;;;;OAQG;WACU,SAAS,CACpB,KAAK,GAAE,aAAa,GAAG,OAAO,GAAG,MAAoB,GACpD,OAAO,CAAC,aAAa,CAAC;IAuCzB;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAI,aAAa,GAAG,IAAI;IAI9C,mDAAmD;IACnD,MAAM,CAAC,KAAK,IAAI,IAAI;IAapB;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI;CAM/D"}
1
+ {"version":3,"file":"parser-adapter.d.ts","sourceRoot":"","sources":["../../src/agent/parser-adapter.ts"],"names":[],"mappings":"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"}