@visorcraft/idlehands 1.1.17 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/dist/agent/formatting.js +30 -13
  2. package/dist/agent/formatting.js.map +1 -1
  3. package/dist/agent/review-artifact.js +12 -8
  4. package/dist/agent/review-artifact.js.map +1 -1
  5. package/dist/agent/tool-calls.js +57 -20
  6. package/dist/agent/tool-calls.js.map +1 -1
  7. package/dist/agent/tool-loop-detection.js +310 -0
  8. package/dist/agent/tool-loop-detection.js.map +1 -0
  9. package/dist/agent/tool-loop-guard.js +235 -0
  10. package/dist/agent/tool-loop-guard.js.map +1 -0
  11. package/dist/agent.js +442 -141
  12. package/dist/agent.js.map +1 -1
  13. package/dist/anton/controller.js +46 -30
  14. package/dist/anton/controller.js.map +1 -1
  15. package/dist/anton/lock.js +5 -1
  16. package/dist/anton/lock.js.map +1 -1
  17. package/dist/anton/parser.js +18 -19
  18. package/dist/anton/parser.js.map +1 -1
  19. package/dist/anton/prompt.js +42 -11
  20. package/dist/anton/prompt.js.map +1 -1
  21. package/dist/anton/reporter.js.map +1 -1
  22. package/dist/anton/session.js.map +1 -1
  23. package/dist/anton/verifier.js +3 -5
  24. package/dist/anton/verifier.js.map +1 -1
  25. package/dist/bench/compare.js +53 -20
  26. package/dist/bench/compare.js.map +1 -1
  27. package/dist/bench/openclaw.js +4 -4
  28. package/dist/bench/openclaw.js.map +1 -1
  29. package/dist/bench/report.js +11 -3
  30. package/dist/bench/report.js.map +1 -1
  31. package/dist/bench/runner.js +20 -14
  32. package/dist/bench/runner.js.map +1 -1
  33. package/dist/bot/commands.js +65 -31
  34. package/dist/bot/commands.js.map +1 -1
  35. package/dist/bot/confirm-discord.js +32 -9
  36. package/dist/bot/confirm-discord.js.map +1 -1
  37. package/dist/bot/confirm-telegram.js +26 -10
  38. package/dist/bot/confirm-telegram.js.map +1 -1
  39. package/dist/bot/dir-guard.js +18 -3
  40. package/dist/bot/dir-guard.js.map +1 -1
  41. package/dist/bot/discord-routing.js +28 -4
  42. package/dist/bot/discord-routing.js.map +1 -1
  43. package/dist/bot/discord-streaming.js +3 -3
  44. package/dist/bot/discord-streaming.js.map +1 -1
  45. package/dist/bot/discord.js +82 -37
  46. package/dist/bot/discord.js.map +1 -1
  47. package/dist/bot/escalation.js +124 -0
  48. package/dist/bot/escalation.js.map +1 -0
  49. package/dist/bot/format.js +2 -5
  50. package/dist/bot/format.js.map +1 -1
  51. package/dist/bot/session-manager.js +17 -6
  52. package/dist/bot/session-manager.js.map +1 -1
  53. package/dist/bot/telegram.js +88 -28
  54. package/dist/bot/telegram.js.map +1 -1
  55. package/dist/cli/agent-turn.js +10 -4
  56. package/dist/cli/agent-turn.js.map +1 -1
  57. package/dist/cli/args.js +51 -9
  58. package/dist/cli/args.js.map +1 -1
  59. package/dist/cli/bot.js +19 -9
  60. package/dist/cli/bot.js.map +1 -1
  61. package/dist/cli/build-repl-context.js +60 -26
  62. package/dist/cli/build-repl-context.js.map +1 -1
  63. package/dist/cli/command-registry.js.map +1 -1
  64. package/dist/cli/commands/anton.js +5 -3
  65. package/dist/cli/commands/anton.js.map +1 -1
  66. package/dist/cli/commands/editing.js +27 -12
  67. package/dist/cli/commands/editing.js.map +1 -1
  68. package/dist/cli/commands/model.js +16 -7
  69. package/dist/cli/commands/model.js.map +1 -1
  70. package/dist/cli/commands/project.js +52 -17
  71. package/dist/cli/commands/project.js.map +1 -1
  72. package/dist/cli/commands/runtime.js +1 -1
  73. package/dist/cli/commands/runtime.js.map +1 -1
  74. package/dist/cli/commands/secrets.js +279 -0
  75. package/dist/cli/commands/secrets.js.map +1 -0
  76. package/dist/cli/commands/session.js +49 -1
  77. package/dist/cli/commands/session.js.map +1 -1
  78. package/dist/cli/commands/tools.js +3 -1
  79. package/dist/cli/commands/tools.js.map +1 -1
  80. package/dist/cli/commands/trifecta.js +1 -1
  81. package/dist/cli/commands/trifecta.js.map +1 -1
  82. package/dist/cli/commands/tui.js.map +1 -1
  83. package/dist/cli/init.js +50 -16
  84. package/dist/cli/init.js.map +1 -1
  85. package/dist/cli/input.js +25 -7
  86. package/dist/cli/input.js.map +1 -1
  87. package/dist/cli/oneshot.js +31 -19
  88. package/dist/cli/oneshot.js.map +1 -1
  89. package/dist/cli/repl-dispatch.js +10 -6
  90. package/dist/cli/repl-dispatch.js.map +1 -1
  91. package/dist/cli/runtime-cmds.js +110 -46
  92. package/dist/cli/runtime-cmds.js.map +1 -1
  93. package/dist/cli/service.js +3 -3
  94. package/dist/cli/service.js.map +1 -1
  95. package/dist/cli/session-state.js +12 -5
  96. package/dist/cli/session-state.js.map +1 -1
  97. package/dist/cli/setup.js +86 -33
  98. package/dist/cli/setup.js.map +1 -1
  99. package/dist/cli/shell.js +4 -4
  100. package/dist/cli/shell.js.map +1 -1
  101. package/dist/cli/status.js +56 -12
  102. package/dist/cli/status.js.map +1 -1
  103. package/dist/client.js +40 -21
  104. package/dist/client.js.map +1 -1
  105. package/dist/commands.js +1 -1
  106. package/dist/commands.js.map +1 -1
  107. package/dist/config.js +171 -15
  108. package/dist/config.js.map +1 -1
  109. package/dist/confirm/auto.js.map +1 -1
  110. package/dist/confirm/headless.js +13 -2
  111. package/dist/confirm/headless.js.map +1 -1
  112. package/dist/confirm/terminal.js +1 -5
  113. package/dist/confirm/terminal.js.map +1 -1
  114. package/dist/context.js +9 -3
  115. package/dist/context.js.map +1 -1
  116. package/dist/git.js +56 -61
  117. package/dist/git.js.map +1 -1
  118. package/dist/harnesses.js +137 -37
  119. package/dist/harnesses.js.map +1 -1
  120. package/dist/history.js +12 -4
  121. package/dist/history.js.map +1 -1
  122. package/dist/hooks/index.js +2 -2
  123. package/dist/hooks/index.js.map +1 -1
  124. package/dist/hooks/loader.js +6 -5
  125. package/dist/hooks/loader.js.map +1 -1
  126. package/dist/hooks/manager.js.map +1 -1
  127. package/dist/hooks/plugins/example-console.js.map +1 -1
  128. package/dist/hooks/scaffold.js +8 -6
  129. package/dist/hooks/scaffold.js.map +1 -1
  130. package/dist/index.js +120 -66
  131. package/dist/index.js.map +1 -1
  132. package/dist/indexer.js +6 -18
  133. package/dist/indexer.js.map +1 -1
  134. package/dist/jsonrpc.js.map +1 -1
  135. package/dist/lens.js +38 -16
  136. package/dist/lens.js.map +1 -1
  137. package/dist/lsp.js +60 -24
  138. package/dist/lsp.js.map +1 -1
  139. package/dist/markdown.js +6 -6
  140. package/dist/markdown.js.map +1 -1
  141. package/dist/mcp.js +15 -6
  142. package/dist/mcp.js.map +1 -1
  143. package/dist/model-customization.js +7 -3
  144. package/dist/model-customization.js.map +1 -1
  145. package/dist/progress/message-edit-scheduler.js +15 -3
  146. package/dist/progress/message-edit-scheduler.js.map +1 -1
  147. package/dist/progress/progress-message-renderer.js.map +1 -1
  148. package/dist/progress/progress-presenter.js +3 -3
  149. package/dist/progress/progress-presenter.js.map +1 -1
  150. package/dist/progress/serialize-telegram.js.map +1 -1
  151. package/dist/progress/tool-summary.js +3 -1
  152. package/dist/progress/tool-summary.js.map +1 -1
  153. package/dist/progress/turn-progress.js +3 -1
  154. package/dist/progress/turn-progress.js.map +1 -1
  155. package/dist/recovery.js +11 -3
  156. package/dist/recovery.js.map +1 -1
  157. package/dist/replay.js +9 -3
  158. package/dist/replay.js.map +1 -1
  159. package/dist/replay_cli.js +5 -3
  160. package/dist/replay_cli.js.map +1 -1
  161. package/dist/runtime/executor.js +66 -20
  162. package/dist/runtime/executor.js.map +1 -1
  163. package/dist/runtime/health.js.map +1 -1
  164. package/dist/runtime/host-runner.js +103 -0
  165. package/dist/runtime/host-runner.js.map +1 -0
  166. package/dist/runtime/planner.js +3 -1
  167. package/dist/runtime/planner.js.map +1 -1
  168. package/dist/runtime/secrets.js +102 -0
  169. package/dist/runtime/secrets.js.map +1 -0
  170. package/dist/runtime/store.js +95 -19
  171. package/dist/runtime/store.js.map +1 -1
  172. package/dist/safety.js +38 -21
  173. package/dist/safety.js.map +1 -1
  174. package/dist/spinner.js +7 -8
  175. package/dist/spinner.js.map +1 -1
  176. package/dist/sys/context.js +3 -3
  177. package/dist/sys/context.js.map +1 -1
  178. package/dist/term.js +1 -1
  179. package/dist/term.js.map +1 -1
  180. package/dist/themes.js +11 -5
  181. package/dist/themes.js.map +1 -1
  182. package/dist/tools/tool-error.js +2 -5
  183. package/dist/tools/tool-error.js.map +1 -1
  184. package/dist/tools.js +69 -34
  185. package/dist/tools.js.map +1 -1
  186. package/dist/tui/branch-picker.js +9 -3
  187. package/dist/tui/branch-picker.js.map +1 -1
  188. package/dist/tui/command-handler.js +88 -36
  189. package/dist/tui/command-handler.js.map +1 -1
  190. package/dist/tui/confirm.js.map +1 -1
  191. package/dist/tui/controller.js +234 -117
  192. package/dist/tui/controller.js.map +1 -1
  193. package/dist/tui/event-bridge.js.map +1 -1
  194. package/dist/tui/keymap.js +93 -71
  195. package/dist/tui/keymap.js.map +1 -1
  196. package/dist/tui/layout.js +9 -1
  197. package/dist/tui/layout.js.map +1 -1
  198. package/dist/tui/render.js +17 -5
  199. package/dist/tui/render.js.map +1 -1
  200. package/dist/tui/screen.js.map +1 -1
  201. package/dist/tui/state.js +129 -63
  202. package/dist/tui/state.js.map +1 -1
  203. package/dist/tui/theme.js +12 -3
  204. package/dist/tui/theme.js.map +1 -1
  205. package/dist/upgrade.js +28 -15
  206. package/dist/upgrade.js.map +1 -1
  207. package/dist/utils.js +8 -5
  208. package/dist/utils.js.map +1 -1
  209. package/dist/vault.js +48 -12
  210. package/dist/vault.js.map +1 -1
  211. package/dist/vim.js.map +1 -1
  212. package/package.json +11 -2
@@ -6,8 +6,19 @@
6
6
  * - reject: reject all mutating operations (--non-interactive)
7
7
  * - default/plan: reject everything (can't prompt a non-interactive terminal)
8
8
  */
9
- const READ_ONLY_TOOLS = new Set(['read_file', 'read_files', 'list_dir', 'search_files', 'sys_context',
10
- 'vault_search', 'lsp_diagnostics', 'lsp_symbols', 'lsp_hover', 'lsp_definition', 'lsp_references']);
9
+ const READ_ONLY_TOOLS = new Set([
10
+ 'read_file',
11
+ 'read_files',
12
+ 'list_dir',
13
+ 'search_files',
14
+ 'sys_context',
15
+ 'vault_search',
16
+ 'lsp_diagnostics',
17
+ 'lsp_symbols',
18
+ 'lsp_hover',
19
+ 'lsp_definition',
20
+ 'lsp_references',
21
+ ]);
11
22
  export class HeadlessConfirmProvider {
12
23
  mode;
13
24
  constructor(mode) {
@@ -1 +1 @@
1
- {"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/confirm/headless.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa;IACnG,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEtG,MAAM,OAAO,uBAAuB;IACd;IAApB,YAAoB,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAE1C,KAAK,CAAC,OAAO,CAAC,IAAoB;QAChC,sCAAsC;QACtC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC;YACd,KAAK,WAAW;gBACd,wDAAwD;gBACxD,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;YAC9B,KAAK,QAAQ;gBACX,mFAAmF;gBACnF,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,cAAc,qCAAqC,CAAC,CAAC;gBAC/H,OAAO,KAAK,CAAC;YACf,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACT,4CAA4C;gBAC5C,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;gBAC/F,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAmB;QACnC,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;CACF"}
1
+ {"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/confirm/headless.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,WAAW;IACX,YAAY;IACZ,UAAU;IACV,cAAc;IACd,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,OAAO,uBAAuB;IACd;IAApB,YAAoB,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAE1C,KAAK,CAAC,OAAO,CAAC,IAAoB;QAChC,sCAAsC;QACtC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC;YACd,KAAK,WAAW;gBACd,wDAAwD;gBACxD,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;YAC9B,KAAK,QAAQ;gBACX,mFAAmF;gBACnF,OAAO,CAAC,KAAK,CACX,8BAA8B,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,cAAc,qCAAqC,CAChH,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACT,4CAA4C;gBAC5C,OAAO,CAAC,KAAK,CACX,uBAAuB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,IAAI,WAAW,CAChF,CAAC;gBACF,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAmB;QACnC,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;CACF"}
@@ -79,11 +79,7 @@ export class TerminalConfirmProvider {
79
79
  const maxW = Math.min(process.stdout.columns ?? 80, 80);
80
80
  const inner = summary.length > maxW - 6 ? summary.slice(0, maxW - 9) + '...' : summary;
81
81
  const border = '─'.repeat(Math.max(inner.length + 2, 20));
82
- const lines = [
83
- `┌${border}┐`,
84
- `│ ${inner.padEnd(border.length - 1)}│`,
85
- `└${border}┘`
86
- ];
82
+ const lines = [`┌${border}┐`, `│ ${inner.padEnd(border.length - 1)}│`, `└${border}┘`];
87
83
  return `${lines.join('\n')}\n${suffix} `;
88
84
  }
89
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/confirm/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/confirm/terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,OAAO,uBAAuB;IAOd;IANpB;;;OAGG;IACK,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEhD,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C,KAAK,CAAC,OAAO,CAAC,IAAoB;QAChC,6BAA6B;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,KAAK,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;YACnE,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAElE,sBAAsB;QACtB,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,+BAA+B;YAC/B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5E,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC;YAC/D,IAAI,MAAM;gBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC;QAC5D,IAAI,MAAM;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAmB;QACnC,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,0DAA0D;IAC1D,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,IAAoB;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3F,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,IAAoB,EAAE,OAAgB;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACrF,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,gCAAgC;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,6DAA6D;IACrD,WAAW,CAAC,OAAe,EAAE,MAAc;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;QACtF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC;IAC3C,CAAC;CACF"}
package/dist/context.js CHANGED
@@ -23,7 +23,9 @@ function resolveHintPath(abs, cwd) {
23
23
  }
24
24
  function summarizeProjectContext(text, maxTokens = 1024) {
25
25
  const maxChars = Math.max(800, Math.floor(maxTokens * 4));
26
- const lines = String(text ?? '').replace(/\r/g, '').split('\n');
26
+ const lines = String(text ?? '')
27
+ .replace(/\r/g, '')
28
+ .split('\n');
27
29
  const picked = [];
28
30
  const seen = new Set();
29
31
  const push = (line) => {
@@ -44,7 +46,8 @@ function summarizeProjectContext(text, maxTokens = 1024) {
44
46
  const nxt = lines[j] ?? '';
45
47
  if (/^\s{0,3}#{1,4}\s+/.test(nxt))
46
48
  break;
47
- if (/^\s*[-*]\s+/.test(nxt) || /\b(TODO|FIXME|NOTE|IMPORTANT|MUST|NEVER|ALWAYS|RULE)\b/i.test(nxt)) {
49
+ if (/^\s*[-*]\s+/.test(nxt) ||
50
+ /\b(TODO|FIXME|NOTE|IMPORTANT|MUST|NEVER|ALWAYS|RULE)\b/i.test(nxt)) {
48
51
  push(nxt);
49
52
  }
50
53
  }
@@ -71,7 +74,10 @@ function summarizeProjectContext(text, maxTokens = 1024) {
71
74
  }
72
75
  let out = picked.join('\n');
73
76
  if (!out.trim())
74
- out = lines.filter((l) => l.trim()).slice(0, 120).join('\n');
77
+ out = lines
78
+ .filter((l) => l.trim())
79
+ .slice(0, 120)
80
+ .join('\n');
75
81
  if (out.length > maxChars) {
76
82
  out = out.slice(0, maxChars) + `\n[summary truncated, source larger than ~${maxTokens} tokens]`;
77
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,KAAK,UAAU,YAAY,CAAC,CAAS;IACnC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW;IAChD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,GAAW;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,SAAS,GAAG,IAAI;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;SAC7B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,KAAK,CAAC,IAAI,CAAC,CAAC;IACf,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;YAAE,OAAO;QACtB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO;QACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,8FAA8F;IAC9F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,MAAM;gBACzC,IACE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;oBACvB,yDAAyD,CAAC,IAAI,CAAC,GAAG,CAAC,EACnE,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,0EAA0E,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;gBAAE,SAAS;YACxB,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ;gBAAE,MAAM;YAClC,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;gBAAE,MAAM;QAClC,CAAC;IACH,CAAC;IAED,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QACb,GAAG,GAAG,KAAK;aACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACvB,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aACb,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,6CAA6C,SAAS,UAAU,CAAC;IAClG,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAoB;IAC3D,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC;IACjD,MAAM,kBAAkB,GAAI,GAAW,CAAC,iBAAiB,KAAK,KAAK,CAAC;IACpE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAE,GAAW,CAAC,0BAA0B,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAChG,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAE5D,yEAAyE;IACzE,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1C,mBAAmB;IACnB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,yBAAyB,GAAG,MAAM,IAAI,yBAAyB,CAAC;QAClF,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAE7C,2CAA2C;QAC3C,IAAI,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;YACrD,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,8BAA8B,UAAU,+BAA+B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC1G,OAAO,GAAG,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,YAAY,GAAG,aAAa,SAAS,IAAI;gBAC7E,sCAAsC,CACzC,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,WAAW,GAAG,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE3C,IAAI,YAAY,GAAG;YACjB,iCAAiC,GAAG,GAAG;YACvC,WAAW;YACX,+BAA+B;YAC/B,2BAA2B,UAAU,gCAAgC,QAAQ,wDAAwD;SACtI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,+DAA+D;QAC/D,OAAO,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC5E,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACpF,YAAY,GAAG;gBACb,iCAAiC,GAAG,GAAG;gBACvC,WAAW;gBACX,+BAA+B;gBAC/B,2BAA2B,UAAU,gCAAgC,QAAQ,wDAAwD;aACtI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/dist/git.js CHANGED
@@ -1,27 +1,19 @@
1
- import { spawn, spawnSync } from 'node:child_process';
2
- import { BASH_PATH as BASH } from './utils.js';
3
- async function sh(cmd, cwd, timeoutSec) {
4
- return await new Promise((resolve) => {
5
- let child;
6
- try {
7
- child = spawn(BASH, ['-lc', cmd], { cwd, stdio: ['ignore', 'pipe', 'ignore'] });
8
- }
9
- catch {
10
- resolve({ rc: 127, out: '' });
11
- return;
12
- }
13
- const out = [];
14
- const t = setTimeout(() => child.kill('SIGKILL'), Math.max(1, timeoutSec) * 1000);
15
- child.on('error', () => {
16
- clearTimeout(t);
17
- resolve({ rc: 127, out: '' });
18
- });
19
- child.stdout.on('data', (d) => out.push(d));
20
- child.on('close', (code) => {
21
- clearTimeout(t);
22
- resolve({ rc: code ?? 0, out: Buffer.concat(out).toString('utf8') });
23
- });
1
+ import { spawnSync } from 'node:child_process';
2
+ function runGit(cwd, args, timeoutMs) {
3
+ const res = spawnSync('git', args, {
4
+ cwd,
5
+ encoding: 'utf8',
6
+ timeout: timeoutMs,
24
7
  });
8
+ return {
9
+ status: res.status ?? 1,
10
+ stdout: String(res.stdout || ''),
11
+ stderr: String(res.stderr || ''),
12
+ };
13
+ }
14
+ function isInsideWorkTree(cwd) {
15
+ const inside = runGit(cwd, ['rev-parse', '--is-inside-work-tree'], 1000);
16
+ return inside.status === 0 && inside.stdout.trim().startsWith('true');
25
17
  }
26
18
  function clipLines(s, maxLines, maxChars) {
27
19
  const lines = s.split(/\r?\n/).filter(Boolean);
@@ -35,26 +27,25 @@ function clipLines(s, maxLines, maxChars) {
35
27
  }
36
28
  export async function loadGitContext(cwd) {
37
29
  // Avoid slow git operations; keep it short and bounded.
38
- const inside = await sh('git rev-parse --is-inside-work-tree', cwd, 1);
39
- if (inside.rc !== 0 || !inside.out.trim().startsWith('true'))
30
+ if (!isInsideWorkTree(cwd))
40
31
  return '';
41
- const branch = await sh('git rev-parse --abbrev-ref HEAD', cwd, 1);
42
- const status = await sh('git status -s', cwd, 2);
43
- const diffstat = await sh('git diff --stat', cwd, 2);
44
- const recent = await sh('git log --oneline -5', cwd, 2);
32
+ const branch = runGit(cwd, ['rev-parse', '--abbrev-ref', 'HEAD'], 1000).stdout;
33
+ const status = runGit(cwd, ['status', '-s'], 2000).stdout;
34
+ const diffstat = runGit(cwd, ['diff', '--stat'], 2000).stdout;
35
+ const recent = runGit(cwd, ['log', '--oneline', '-5'], 2000).stdout;
45
36
  const parts = [];
46
- parts.push(`[git branch: ${branch.out.trim() || 'unknown'}]`);
47
- const st = clipLines(status.out, 40, 2000);
37
+ parts.push(`[git branch: ${branch.trim() || 'unknown'}]`);
38
+ const st = clipLines(status, 40, 2000);
48
39
  if (st.trim()) {
49
40
  parts.push('[git status -s]');
50
41
  parts.push(st);
51
42
  }
52
- const ds = clipLines(diffstat.out, 40, 2000);
43
+ const ds = clipLines(diffstat, 40, 2000);
53
44
  if (ds.trim()) {
54
45
  parts.push('[git diff --stat]');
55
46
  parts.push(ds);
56
47
  }
57
- const lg = clipLines(recent.out, 8, 1200);
48
+ const lg = clipLines(recent, 8, 1200);
58
49
  if (lg.trim()) {
59
50
  parts.push('[git log --oneline -5]');
60
51
  parts.push(lg);
@@ -62,73 +53,77 @@ export async function loadGitContext(cwd) {
62
53
  return parts.join('\n');
63
54
  }
64
55
  export function isGitDirty(cwd) {
65
- const inside = spawnSync(BASH, ['-lc', 'git rev-parse --is-inside-work-tree'], { cwd, encoding: 'utf8', timeout: 1000 });
66
- if (inside.status !== 0 || !String(inside.stdout || '').trim().startsWith('true'))
56
+ if (!isInsideWorkTree(cwd))
67
57
  return false;
68
- const st = spawnSync(BASH, ['-lc', 'git status --porcelain'], { cwd, encoding: 'utf8', timeout: 1500 });
69
- return st.status === 0 && String(st.stdout || '').trim().length > 0;
58
+ const st = runGit(cwd, ['status', '--porcelain'], 1500);
59
+ return st.status === 0 && st.stdout.trim().length > 0;
70
60
  }
71
61
  export function stashWorkingTree(cwd) {
72
62
  const stamp = new Date().toISOString();
73
- const res = spawnSync(BASH, ['-lc', `git stash push -u -m "idlehands auto-stash ${stamp}"`], { cwd, encoding: 'utf8', timeout: 5000 });
74
- const out = `${res.stdout || ''}${res.stderr || ''}`.trim();
63
+ const res = runGit(cwd, ['stash', 'push', '-u', '-m', `idlehands auto-stash ${stamp}`], 5000);
64
+ const out = `${res.stdout}${res.stderr}`.trim();
75
65
  if (res.status === 0)
76
66
  return { ok: true, message: out || 'stashed' };
77
- return { ok: false, message: out || `git stash failed (rc=${res.status ?? 1})` };
67
+ return { ok: false, message: out || `git stash failed (rc=${res.status})` };
78
68
  }
79
69
  export async function loadGitStartupSummary(cwd) {
80
- const inside = await sh('git rev-parse --is-inside-work-tree', cwd, 1);
81
- if (inside.rc !== 0 || !inside.out.trim().startsWith('true'))
70
+ if (!isInsideWorkTree(cwd))
82
71
  return '';
83
- const branch = (await sh('git rev-parse --abbrev-ref HEAD', cwd, 1)).out.trim() || 'unknown';
84
- const status = (await sh('git status --porcelain', cwd, 2)).out.split(/\r?\n/).filter(Boolean);
72
+ const branch = runGit(cwd, ['rev-parse', '--abbrev-ref', 'HEAD'], 1000).stdout.trim() || 'unknown';
73
+ const status = runGit(cwd, ['status', '--porcelain'], 2000).stdout.split(/\r?\n/).filter(Boolean);
85
74
  const modified = status.filter((l) => /^[ MARC][MDARC]/.test(l) || /^[MDARC][ MARC]/.test(l)).length;
86
75
  const untracked = status.filter((l) => l.startsWith('??')).length;
87
76
  return `${modified} modified files, ${untracked} untracked, on branch ${branch}`;
88
77
  }
89
78
  export function ensureCleanWorkingTree(cwd) {
90
79
  if (isGitDirty(cwd)) {
91
- throw new Error("Anton: Working tree not clean. Commit or stash first.");
80
+ throw new Error('Anton: Working tree not clean. Commit or stash first.');
92
81
  }
93
82
  }
94
83
  export function getWorkingDiff(cwd) {
95
- const inside = spawnSync(BASH, ['-lc', 'git rev-parse --is-inside-work-tree'], { cwd, encoding: 'utf8', timeout: 1000 });
96
- if (inside.status !== 0 || !String(inside.stdout || '').trim().startsWith('true'))
84
+ if (!isInsideWorkTree(cwd))
97
85
  return '';
98
- const res = spawnSync(BASH, ['-lc', 'git diff HEAD'], { cwd, encoding: 'utf8', timeout: 30000 });
99
- return String(res.stdout || '');
86
+ const res = runGit(cwd, ['diff', 'HEAD'], 30000);
87
+ return res.stdout;
100
88
  }
101
89
  export function commitAll(cwd, message) {
102
- const res = spawnSync(BASH, ['-lc', `git add -A && git commit -m ${JSON.stringify(message)}`], { cwd, encoding: 'utf8', timeout: 30000 });
103
- if (res.status !== 0) {
90
+ const addRes = runGit(cwd, ['add', '-A'], 30000);
91
+ if (addRes.status !== 0) {
92
+ throw new Error(`git add failed: ${addRes.stderr || addRes.stdout || 'unknown error'}`);
93
+ }
94
+ const commitRes = runGit(cwd, ['commit', '-m', message], 30000);
95
+ if (commitRes.status !== 0) {
104
96
  // Check if it's because there's nothing to commit
105
- const status = spawnSync(BASH, ['-lc', 'git status --porcelain'], { cwd, encoding: 'utf8', timeout: 1500 });
106
- if (status.status === 0 && String(status.stdout || '').trim().length === 0) {
97
+ const status = runGit(cwd, ['status', '--porcelain'], 1500);
98
+ if (status.status === 0 && status.stdout.trim().length === 0) {
107
99
  return '';
108
100
  }
109
- throw new Error(`git commit failed: ${res.stderr || res.stdout || 'unknown error'}`);
101
+ throw new Error(`git commit failed: ${commitRes.stderr || commitRes.stdout || 'unknown error'}`);
110
102
  }
111
- // Get the commit hash
112
- const hashRes = spawnSync(BASH, ['-lc', 'git rev-parse --short HEAD'], { cwd, encoding: 'utf8', timeout: 30000 });
113
- return String(hashRes.stdout || '').trim();
103
+ const hashRes = runGit(cwd, ['rev-parse', '--short', 'HEAD'], 30000);
104
+ return hashRes.stdout.trim();
114
105
  }
115
106
  export function commitAmend(cwd) {
116
- const res = spawnSync(BASH, ['-lc', 'git add -A && git commit --amend --no-edit'], { cwd, encoding: 'utf8', timeout: 30000 });
107
+ const addRes = runGit(cwd, ['add', '-A'], 30000);
108
+ if (addRes.status !== 0) {
109
+ throw new Error(`git add failed: ${addRes.stderr || addRes.stdout || 'unknown error'}`);
110
+ }
111
+ const res = runGit(cwd, ['commit', '--amend', '--no-edit'], 30000);
117
112
  if (res.status !== 0) {
118
113
  throw new Error(`git commit --amend failed: ${res.stderr || res.stdout || 'unknown error'}`);
119
114
  }
120
115
  }
121
116
  export function restoreTrackedChanges(cwd) {
122
- spawnSync(BASH, ['-lc', 'git checkout -- .'], { cwd, encoding: 'utf8', timeout: 30000 });
117
+ runGit(cwd, ['checkout', '--', '.'], 30000);
123
118
  }
124
119
  export function cleanUntracked(cwd) {
125
- const res = spawnSync(BASH, ['-lc', 'git clean -fd'], { cwd, encoding: 'utf8', timeout: 30000 });
120
+ const res = runGit(cwd, ['clean', '-fd'], 30000);
126
121
  if (res.status !== 0) {
127
122
  throw new Error(`git clean failed: ${res.stderr || res.stdout || 'unknown error'}`);
128
123
  }
129
124
  }
130
125
  export function createBranch(cwd, name) {
131
- const res = spawnSync(BASH, ['-lc', `git checkout -b ${JSON.stringify(name)}`], { cwd, encoding: 'utf8', timeout: 30000 });
126
+ const res = runGit(cwd, ['checkout', '-b', name], 30000);
132
127
  if (res.status !== 0) {
133
128
  throw new Error(`git checkout -b failed: ${res.stderr || res.stdout || 'unknown error'}`);
134
129
  }
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,SAAS,MAAM,CACb,GAAW,EACX,IAAc,EACd,SAAiB;IAEjB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;QACjC,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,QAAgB,EAAE,QAAgB;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,eAAe,CAAC;IAC1E,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ;QAAE,GAAG,IAAI,iBAAiB,KAAK,CAAC,MAAM,GAAG,QAAQ,cAAc,CAAC;IAC3F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,wDAAwD;IACxD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAEpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;IAE1D,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9F,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IACrE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,wBAAwB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW;IACrD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9D,CAAC,MAAM,CAAC;IACT,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAElE,OAAO,GAAG,QAAQ,oBAAoB,SAAS,yBAAyB,MAAM,EAAE,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,OAAe;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAChE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
package/dist/harnesses.js CHANGED
@@ -2,88 +2,191 @@ import { readFileSync, readdirSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { configDir } from './utils.js';
4
4
  /** Default behavioral configs used to fill gaps in user-defined harnesses and inline definitions */
5
- const DEFAULT_THINKING = { format: 'xml', openTag: '<think>', closeTag: '</think>', strip: true };
6
- const DEFAULT_TOOL_CALLS = { reliableToolCallsArray: false, contentFallbackLikely: true, parallelCalls: true, retryOnMalformed: 3 };
7
- const DEFAULT_QUIRKS = { omitsRequiredParams: false, loopsOnToolError: false, emitsMarkdownInToolArgs: false, needsExplicitToolCallFormatReminder: false };
8
- const QUIRKS_NEEDS_REMINDER = { ...DEFAULT_QUIRKS, needsExplicitToolCallFormatReminder: true };
5
+ const DEFAULT_THINKING = {
6
+ format: 'xml',
7
+ openTag: '<think>',
8
+ closeTag: '</think>',
9
+ strip: true,
10
+ };
11
+ const DEFAULT_TOOL_CALLS = {
12
+ reliableToolCallsArray: false,
13
+ contentFallbackLikely: true,
14
+ parallelCalls: true,
15
+ retryOnMalformed: 3,
16
+ };
17
+ const DEFAULT_QUIRKS = {
18
+ omitsRequiredParams: false,
19
+ loopsOnToolError: false,
20
+ emitsMarkdownInToolArgs: false,
21
+ needsExplicitToolCallFormatReminder: false,
22
+ };
23
+ const QUIRKS_NEEDS_REMINDER = {
24
+ ...DEFAULT_QUIRKS,
25
+ needsExplicitToolCallFormatReminder: true,
26
+ };
9
27
  const HARNESS = [
10
28
  {
11
29
  id: 'qwen3-coder',
12
30
  match: [/qwen3-coder/i],
13
31
  description: 'Qwen3-Coder family (tool-native MoE)',
14
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 32768, trifecta: { vaultMode: 'active' } },
32
+ defaults: {
33
+ temperature: 0.2,
34
+ top_p: 0.95,
35
+ max_tokens: 32768,
36
+ trifecta: { vaultMode: 'active' },
37
+ },
15
38
  thinking: { format: 'xml', openTag: '<think>', closeTag: '</think>', strip: true },
16
- toolCalls: { reliableToolCallsArray: false, contentFallbackLikely: true, parallelCalls: true, retryOnMalformed: 3 },
39
+ toolCalls: {
40
+ reliableToolCallsArray: false,
41
+ contentFallbackLikely: true,
42
+ parallelCalls: true,
43
+ retryOnMalformed: 3,
44
+ },
17
45
  quirks: DEFAULT_QUIRKS,
18
- systemPromptSuffix: 'Prefer apply_patch or edit_range for most edits. Use write_file for full rewrites, and use edit_file only for exact old_text replacement when necessary.\nWhen answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.'
46
+ systemPromptSuffix: 'Prefer apply_patch or edit_range for most edits. Use write_file for full rewrites, and use edit_file only for exact old_text replacement when necessary.\nWhen answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.',
19
47
  },
20
48
  {
21
49
  id: 'qwen3-moe',
22
50
  match: [/qwen3/i],
23
51
  description: 'Qwen3 MoE family (non-coder variants)',
24
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 16384, trifecta: { vaultMode: 'passive' } },
52
+ defaults: {
53
+ temperature: 0.2,
54
+ top_p: 0.95,
55
+ max_tokens: 16384,
56
+ trifecta: { vaultMode: 'passive' },
57
+ },
25
58
  thinking: { format: 'xml', openTag: '<think>', closeTag: '</think>', strip: true },
26
- toolCalls: { reliableToolCallsArray: true, contentFallbackLikely: true, parallelCalls: true, retryOnMalformed: 2 },
59
+ toolCalls: {
60
+ reliableToolCallsArray: true,
61
+ contentFallbackLikely: true,
62
+ parallelCalls: true,
63
+ retryOnMalformed: 2,
64
+ },
27
65
  quirks: QUIRKS_NEEDS_REMINDER,
28
- systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.'
66
+ systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.',
29
67
  },
30
68
  {
31
69
  id: 'qwen',
32
70
  match: [/qwen/i],
33
71
  description: 'Qwen family (generic, includes Qwen2.5)',
34
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 16384, trifecta: { vaultMode: 'passive' } },
72
+ defaults: {
73
+ temperature: 0.2,
74
+ top_p: 0.95,
75
+ max_tokens: 16384,
76
+ trifecta: { vaultMode: 'passive' },
77
+ },
35
78
  thinking: { format: 'none', strip: false },
36
- toolCalls: { reliableToolCallsArray: true, contentFallbackLikely: true, parallelCalls: true, retryOnMalformed: 2 },
37
- quirks: QUIRKS_NEEDS_REMINDER
79
+ toolCalls: {
80
+ reliableToolCallsArray: true,
81
+ contentFallbackLikely: true,
82
+ parallelCalls: true,
83
+ retryOnMalformed: 2,
84
+ },
85
+ quirks: QUIRKS_NEEDS_REMINDER,
38
86
  },
39
87
  {
40
88
  id: 'nemotron',
41
89
  match: [/nemotron/i],
42
90
  description: 'Nemotron family — loops on errors, omits params, low agent quality',
43
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 16384, trifecta: { vaultMode: 'passive' } },
91
+ defaults: {
92
+ temperature: 0.2,
93
+ top_p: 0.95,
94
+ max_tokens: 16384,
95
+ trifecta: { vaultMode: 'passive' },
96
+ },
44
97
  thinking: { format: 'none', strip: false },
45
- toolCalls: { reliableToolCallsArray: false, contentFallbackLikely: true, parallelCalls: false, retryOnMalformed: 1 },
46
- quirks: { ...QUIRKS_NEEDS_REMINDER, omitsRequiredParams: true, loopsOnToolError: true, maxIterationsOverride: 10 }
98
+ toolCalls: {
99
+ reliableToolCallsArray: false,
100
+ contentFallbackLikely: true,
101
+ parallelCalls: false,
102
+ retryOnMalformed: 1,
103
+ },
104
+ quirks: {
105
+ ...QUIRKS_NEEDS_REMINDER,
106
+ omitsRequiredParams: true,
107
+ loopsOnToolError: true,
108
+ maxIterationsOverride: 10,
109
+ },
47
110
  },
48
111
  {
49
112
  id: 'mistral',
50
113
  match: [/mistral/i],
51
114
  description: 'Mistral family — no thinking tokens, may need chat-template-file',
52
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 16384, trifecta: { vaultMode: 'passive' } },
115
+ defaults: {
116
+ temperature: 0.2,
117
+ top_p: 0.95,
118
+ max_tokens: 16384,
119
+ trifecta: { vaultMode: 'passive' },
120
+ },
53
121
  thinking: { format: 'none', strip: false },
54
- toolCalls: { reliableToolCallsArray: true, contentFallbackLikely: false, parallelCalls: true, retryOnMalformed: 2 },
55
- quirks: DEFAULT_QUIRKS
122
+ toolCalls: {
123
+ reliableToolCallsArray: true,
124
+ contentFallbackLikely: false,
125
+ parallelCalls: true,
126
+ retryOnMalformed: 2,
127
+ },
128
+ quirks: DEFAULT_QUIRKS,
56
129
  },
57
130
  {
58
131
  id: 'gpt-oss',
59
132
  match: [/gpt-oss/i, /gpt_oss/i],
60
133
  description: 'GPT-OSS — correct tool format but bad decisions, scans everything',
61
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 16384, trifecta: { vaultMode: 'passive' } },
134
+ defaults: {
135
+ temperature: 0.2,
136
+ top_p: 0.95,
137
+ max_tokens: 16384,
138
+ trifecta: { vaultMode: 'passive' },
139
+ },
62
140
  thinking: { format: 'none', strip: false },
63
- toolCalls: { reliableToolCallsArray: true, contentFallbackLikely: false, parallelCalls: true, retryOnMalformed: 2 },
141
+ toolCalls: {
142
+ reliableToolCallsArray: true,
143
+ contentFallbackLikely: false,
144
+ parallelCalls: true,
145
+ retryOnMalformed: 2,
146
+ },
64
147
  quirks: { ...DEFAULT_QUIRKS, maxIterationsOverride: 10 },
65
- systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.'
148
+ systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.',
66
149
  },
67
150
  {
68
151
  id: 'llama',
69
152
  match: [/llama/i],
70
153
  description: 'Llama family (llama.cpp style)',
71
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 16384, trifecta: { vaultMode: 'passive' } },
154
+ defaults: {
155
+ temperature: 0.2,
156
+ top_p: 0.95,
157
+ max_tokens: 16384,
158
+ trifecta: { vaultMode: 'passive' },
159
+ },
72
160
  thinking: { format: 'none', strip: false },
73
- toolCalls: { reliableToolCallsArray: false, contentFallbackLikely: true, parallelCalls: false, retryOnMalformed: 2 },
161
+ toolCalls: {
162
+ reliableToolCallsArray: false,
163
+ contentFallbackLikely: true,
164
+ parallelCalls: false,
165
+ retryOnMalformed: 2,
166
+ },
74
167
  quirks: QUIRKS_NEEDS_REMINDER,
75
- systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.'
168
+ systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.',
76
169
  },
77
170
  {
78
171
  id: 'generic',
79
172
  match: [/.*/],
80
173
  description: 'Generic fallback harness — conservative, all fallbacks enabled',
81
- defaults: { temperature: 0.2, top_p: 0.95, max_tokens: 16384, trifecta: { vaultMode: 'passive' } },
174
+ defaults: {
175
+ temperature: 0.2,
176
+ top_p: 0.95,
177
+ max_tokens: 16384,
178
+ trifecta: { vaultMode: 'passive' },
179
+ },
82
180
  thinking: { format: 'xml', openTag: '<think>', closeTag: '</think>', strip: true },
83
- toolCalls: { reliableToolCallsArray: false, contentFallbackLikely: true, parallelCalls: true, retryOnMalformed: 3 },
181
+ toolCalls: {
182
+ reliableToolCallsArray: false,
183
+ contentFallbackLikely: true,
184
+ parallelCalls: true,
185
+ retryOnMalformed: 3,
186
+ },
84
187
  quirks: DEFAULT_QUIRKS,
85
- systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.'
86
- }
188
+ systemPromptSuffix: 'When answering questions about code, search first (search_files or grep), then read only the relevant files. Never scan an entire directory by reading files one by one.',
189
+ },
87
190
  ];
88
191
  /**
89
192
  * Load user-defined harnesses from ~/.config/idlehands/harnesses/*.json
@@ -94,7 +197,7 @@ function loadUserHarnesses() {
94
197
  const dir = join(configDir(), 'harnesses');
95
198
  let files;
96
199
  try {
97
- files = readdirSync(dir).filter(f => f.endsWith('.json'));
200
+ files = readdirSync(dir).filter((f) => f.endsWith('.json'));
98
201
  }
99
202
  catch {
100
203
  return [];
@@ -114,12 +217,12 @@ function loadUserHarnesses() {
114
217
  temperature: raw.params?.temperature ?? raw.defaults?.temperature,
115
218
  top_p: raw.params?.top_p ?? raw.defaults?.top_p,
116
219
  max_tokens: raw.params?.max_tokens ?? raw.defaults?.max_tokens,
117
- trifecta: raw.defaults?.trifecta
220
+ trifecta: raw.defaults?.trifecta,
118
221
  },
119
222
  thinking: { ...DEFAULT_THINKING, ...(raw.thinking ?? {}) },
120
223
  toolCalls: { ...DEFAULT_TOOL_CALLS, ...(raw.toolCalls ?? {}) },
121
224
  quirks: { ...DEFAULT_QUIRKS, ...(raw.quirks ?? {}) },
122
- systemPromptSuffix: raw.systemPromptSuffix
225
+ systemPromptSuffix: raw.systemPromptSuffix,
123
226
  };
124
227
  result.push(harness);
125
228
  }
@@ -140,11 +243,8 @@ function getMergedHarnesses() {
140
243
  return HARNESS;
141
244
  }
142
245
  // User harnesses override built-ins by id, then remaining built-ins follow
143
- const userIds = new Set(user.map(h => h.id));
144
- const merged = [
145
- ...user,
146
- ...HARNESS.filter(h => !userIds.has(h.id))
147
- ];
246
+ const userIds = new Set(user.map((h) => h.id));
247
+ const merged = [...user, ...HARNESS.filter((h) => !userIds.has(h.id))];
148
248
  _mergedHarnesses = merged;
149
249
  return merged;
150
250
  }