@visorcraft/idlehands 1.4.5 → 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.
Files changed (171) hide show
  1. package/dist/agent/constants.js +12 -0
  2. package/dist/agent/constants.js.map +1 -0
  3. package/dist/agent/errors.js +8 -0
  4. package/dist/agent/errors.js.map +1 -0
  5. package/dist/agent/exec-helpers.js +105 -0
  6. package/dist/agent/exec-helpers.js.map +1 -0
  7. package/dist/agent/model-pick.js +21 -0
  8. package/dist/agent/model-pick.js.map +1 -0
  9. package/dist/agent/session-utils.js +63 -0
  10. package/dist/agent/session-utils.js.map +1 -0
  11. package/dist/agent/subagent-context.js +78 -0
  12. package/dist/agent/subagent-context.js.map +1 -0
  13. package/dist/agent/tool-loop-guard.js.map +1 -1
  14. package/dist/agent/tool-policy.js +54 -0
  15. package/dist/agent/tool-policy.js.map +1 -0
  16. package/dist/agent/tools-schema.js +281 -0
  17. package/dist/agent/tools-schema.js.map +1 -0
  18. package/dist/agent.js +136 -630
  19. package/dist/agent.js.map +1 -1
  20. package/dist/anton/controller.js +42 -139
  21. package/dist/anton/controller.js.map +1 -1
  22. package/dist/anton/lint-baseline.js +64 -0
  23. package/dist/anton/lint-baseline.js.map +1 -0
  24. package/dist/anton/preflight.js.map +1 -1
  25. package/dist/anton/prompt.js +71 -71
  26. package/dist/anton/reporter.js.map +1 -1
  27. package/dist/anton/runtime-ready.js +120 -0
  28. package/dist/anton/runtime-ready.js.map +1 -0
  29. package/dist/anton/session.js +8 -6
  30. package/dist/anton/session.js.map +1 -1
  31. package/dist/anton/verifier-utils.js +148 -0
  32. package/dist/anton/verifier-utils.js.map +1 -0
  33. package/dist/anton/verifier.js +26 -227
  34. package/dist/anton/verifier.js.map +1 -1
  35. package/dist/bot/anton-auto-pin.js +12 -0
  36. package/dist/bot/anton-auto-pin.js.map +1 -0
  37. package/dist/bot/anton-commands.js +137 -0
  38. package/dist/bot/anton-commands.js.map +1 -0
  39. package/dist/bot/anton-run.js +144 -0
  40. package/dist/bot/anton-run.js.map +1 -0
  41. package/dist/bot/anton-status-format.js +18 -0
  42. package/dist/bot/anton-status-format.js.map +1 -0
  43. package/dist/bot/basic-commands.js +114 -0
  44. package/dist/bot/basic-commands.js.map +1 -0
  45. package/dist/bot/command-format.js.map +1 -1
  46. package/dist/bot/command-logic.js +8 -728
  47. package/dist/bot/command-logic.js.map +1 -1
  48. package/dist/bot/commands.js +18 -1
  49. package/dist/bot/commands.js.map +1 -1
  50. package/dist/bot/discord-anton-autopin.js +29 -0
  51. package/dist/bot/discord-anton-autopin.js.map +1 -0
  52. package/dist/bot/discord-anton.js +45 -0
  53. package/dist/bot/discord-anton.js.map +1 -0
  54. package/dist/bot/discord-commands.js +20 -52
  55. package/dist/bot/discord-commands.js.map +1 -1
  56. package/dist/bot/discord-result.js +9 -0
  57. package/dist/bot/discord-result.js.map +1 -0
  58. package/dist/bot/discord-routing.js.map +1 -1
  59. package/dist/bot/discord.js +42 -12
  60. package/dist/bot/discord.js.map +1 -1
  61. package/dist/bot/escalation-commands.js +145 -0
  62. package/dist/bot/escalation-commands.js.map +1 -0
  63. package/dist/bot/escalation.js.map +1 -1
  64. package/dist/bot/git-status-command.js +28 -0
  65. package/dist/bot/git-status-command.js.map +1 -0
  66. package/dist/bot/model-endpoint.js +25 -0
  67. package/dist/bot/model-endpoint.js.map +1 -0
  68. package/dist/bot/session-history.js +61 -0
  69. package/dist/bot/session-history.js.map +1 -0
  70. package/dist/bot/session-settings.js +89 -0
  71. package/dist/bot/session-settings.js.map +1 -0
  72. package/dist/bot/telegram-commands.js +15 -7
  73. package/dist/bot/telegram-commands.js.map +1 -1
  74. package/dist/bot/telegram.js +13 -28
  75. package/dist/bot/telegram.js.map +1 -1
  76. package/dist/cli/agent-turn.js +8 -2
  77. package/dist/cli/agent-turn.js.map +1 -1
  78. package/dist/cli/commands/anton.js +8 -3
  79. package/dist/cli/commands/anton.js.map +1 -1
  80. package/dist/cli/commands/model.js +1 -3
  81. package/dist/cli/commands/model.js.map +1 -1
  82. package/dist/cli/commands/project.js +1 -1
  83. package/dist/cli/commands/project.js.map +1 -1
  84. package/dist/cli/commands/secrets.js +1 -1
  85. package/dist/cli/commands/secrets.js.map +1 -1
  86. package/dist/cli/commands/session.js +22 -12
  87. package/dist/cli/commands/session.js.map +1 -1
  88. package/dist/cli/guided-onboarding.js +20 -0
  89. package/dist/cli/guided-onboarding.js.map +1 -0
  90. package/dist/cli/runtime-cmds.js +8 -133
  91. package/dist/cli/runtime-cmds.js.map +1 -1
  92. package/dist/cli/runtime-common.js +35 -0
  93. package/dist/cli/runtime-common.js.map +1 -0
  94. package/dist/cli/runtime-detect.js +12 -0
  95. package/dist/cli/runtime-detect.js.map +1 -0
  96. package/dist/cli/runtime-host-command.js +7 -0
  97. package/dist/cli/runtime-host-command.js.map +1 -0
  98. package/dist/cli/runtime-probe-defaults.js +63 -0
  99. package/dist/cli/runtime-probe-defaults.js.map +1 -0
  100. package/dist/cli/runtime-scan-ports.js +30 -0
  101. package/dist/cli/runtime-scan-ports.js.map +1 -0
  102. package/dist/cli/setup-bot-step.js +51 -0
  103. package/dist/cli/setup-bot-step.js.map +1 -0
  104. package/dist/cli/setup-runtime-forms.js +214 -0
  105. package/dist/cli/setup-runtime-forms.js.map +1 -0
  106. package/dist/cli/setup-style.js +8 -0
  107. package/dist/cli/setup-style.js.map +1 -0
  108. package/dist/cli/setup-ui.js +146 -0
  109. package/dist/cli/setup-ui.js.map +1 -0
  110. package/dist/cli/setup.js +11 -449
  111. package/dist/cli/setup.js.map +1 -1
  112. package/dist/client/error-utils.js +37 -0
  113. package/dist/client/error-utils.js.map +1 -0
  114. package/dist/client/pressure.js +77 -0
  115. package/dist/client/pressure.js.map +1 -0
  116. package/dist/client.js +24 -122
  117. package/dist/client.js.map +1 -1
  118. package/dist/config.js +34 -17
  119. package/dist/config.js.map +1 -1
  120. package/dist/git.js +8 -2
  121. package/dist/git.js.map +1 -1
  122. package/dist/hooks/types.js.map +1 -1
  123. package/dist/index.js.map +1 -1
  124. package/dist/progress/message-edit-scheduler.js.map +1 -1
  125. package/dist/progress/turn-progress.js.map +1 -1
  126. package/dist/runtime/executor.js +4 -1
  127. package/dist/runtime/executor.js.map +1 -1
  128. package/dist/runtime/health.js.map +1 -1
  129. package/dist/runtime/host-runner.js.map +1 -1
  130. package/dist/safety.js +3 -2
  131. package/dist/safety.js.map +1 -1
  132. package/dist/shared/config-utils.js.map +1 -1
  133. package/dist/tools/exec-core.js +252 -0
  134. package/dist/tools/exec-core.js.map +1 -0
  135. package/dist/tools/exec-pty.js +89 -0
  136. package/dist/tools/exec-pty.js.map +1 -0
  137. package/dist/tools/exec-utils.js +94 -0
  138. package/dist/tools/exec-utils.js.map +1 -0
  139. package/dist/tools/file-discovery.js +144 -0
  140. package/dist/tools/file-discovery.js.map +1 -0
  141. package/dist/tools/file-mutations.js +326 -0
  142. package/dist/tools/file-mutations.js.map +1 -0
  143. package/dist/tools/file-read.js +133 -0
  144. package/dist/tools/file-read.js.map +1 -0
  145. package/dist/tools/patch-apply.js +168 -0
  146. package/dist/tools/patch-apply.js.map +1 -0
  147. package/dist/tools/path-safety.js.map +1 -1
  148. package/dist/tools/replay-utils.js +25 -0
  149. package/dist/tools/replay-utils.js.map +1 -0
  150. package/dist/tools/search-utils.js +55 -0
  151. package/dist/tools/search-utils.js.map +1 -0
  152. package/dist/tools/sys-notes.js +34 -0
  153. package/dist/tools/sys-notes.js.map +1 -0
  154. package/dist/tools/text-utils.js +164 -0
  155. package/dist/tools/text-utils.js.map +1 -0
  156. package/dist/tools/undo.js +1 -1
  157. package/dist/tools/undo.js.map +1 -1
  158. package/dist/tools/vault-tools.js +36 -0
  159. package/dist/tools/vault-tools.js.map +1 -0
  160. package/dist/tools.js +19 -1460
  161. package/dist/tools.js.map +1 -1
  162. package/dist/tui/controller.js +5 -2
  163. package/dist/tui/controller.js.map +1 -1
  164. package/dist/tui/render.js.map +1 -1
  165. package/dist/utils.js +2 -2
  166. package/dist/utils.js.map +1 -1
  167. package/dist/vault.js +1 -1
  168. package/dist/vault.js.map +1 -1
  169. package/dist/watchdog.js +1 -3
  170. package/dist/watchdog.js.map +1 -1
  171. package/package.json +2 -1
@@ -13,12 +13,12 @@ export async function buildAntonPrompt(opts) {
13
13
  sections.push(buildPreamble(opts.config));
14
14
  // 1b. Decomposition nudge for complex tasks
15
15
  if (opts.config.decompose && classifyTaskComplexity(opts.task.text) === 'complex') {
16
- sections.push(`## Task Analysis
17
-
18
- CRITICAL: You have NO tools in this session. Do NOT emit <tool:...> tags — they will NOT execute.
19
- This task involves changes across multiple files/modules.
20
- Your ONLY job is to emit an <anton-result> block with status: decompose and a list of subtasks.
21
- Each subtask should touch 1-3 files maximum.
16
+ sections.push(`## Task Analysis
17
+
18
+ CRITICAL: You have NO tools in this session. Do NOT emit <tool:...> tags — they will NOT execute.
19
+ This task involves changes across multiple files/modules.
20
+ Your ONLY job is to emit an <anton-result> block with status: decompose and a list of subtasks.
21
+ Each subtask should touch 1-3 files maximum.
22
22
  Do NOT attempt to read files. Do NOT narrate. Output ONLY the <anton-result> block.`);
23
23
  }
24
24
  // 2. Current task - task details and location
@@ -109,39 +109,39 @@ export function classifyTaskComplexity(taskText) {
109
109
  return complexPatterns.some((p) => p.test(taskText)) ? 'complex' : 'simple';
110
110
  }
111
111
  function buildPreamble(config) {
112
- let preamble = `You are an autonomous coding agent working on exactly ONE task at a time.
113
- Complete ONLY the task described below, then emit exactly one \`<anton-result>\` block at the very end of your response, even if you fail.
114
-
115
- RULES:
116
- - Do NOT work on any task other than the one specified below.
117
- - Do NOT modify or check off tasks in the task file.
118
- - Do NOT create files, functions, or code that belong to other tasks.
119
- - Keep changes minimal, focused, and scoped to the current task only.
112
+ let preamble = `You are an autonomous coding agent working on exactly ONE task at a time.
113
+ Complete ONLY the task described below, then emit exactly one \`<anton-result>\` block at the very end of your response, even if you fail.
114
+
115
+ RULES:
116
+ - Do NOT work on any task other than the one specified below.
117
+ - Do NOT modify or check off tasks in the task file.
118
+ - Do NOT create files, functions, or code that belong to other tasks.
119
+ - Keep changes minimal, focused, and scoped to the current task only.
120
120
  - If the task references other code that doesn't exist yet, stub or mock it — do NOT build it.`;
121
- preamble += `
122
-
123
- ## Context Efficiency
124
-
125
- You have a limited context window. Work smart:
126
- 1. Use search_files FIRST to locate relevant code — never browse directories reading files one by one.
127
- 2. Use read_file with search="keyword" to jump to specific sections instead of reading entire files.
121
+ preamble += `
122
+
123
+ ## Context Efficiency
124
+
125
+ You have a limited context window. Work smart:
126
+ 1. Use search_files FIRST to locate relevant code — never browse directories reading files one by one.
127
+ 2. Use read_file with search="keyword" to jump to specific sections instead of reading entire files.
128
128
  3. Identify ALL files you need before reading any — batch your reads.`;
129
129
  if (config.decompose) {
130
130
  preamble += `\n4. For tasks touching more than 5 files, emit status: decompose to break into focused subtasks (1-3 files each).`;
131
131
  }
132
132
  if (config.decompose) {
133
- preamble += `\n\nIf a task is too large or complex, you can decompose it into smaller subtasks.
134
- Maximum decomposition depth: ${config.maxDecomposeDepth}
133
+ preamble += `\n\nIf a task is too large or complex, you can decompose it into smaller subtasks.
134
+ Maximum decomposition depth: ${config.maxDecomposeDepth}
135
135
  Only decompose when truly necessary - prefer completing tasks directly when possible.`;
136
136
  }
137
137
  return preamble;
138
138
  }
139
139
  function buildCurrentTaskSection(task, taskFilePath) {
140
- let section = `## Current Task
141
-
142
- **File:** ${taskFilePath}
143
- **Line:** ${task.line}
144
- **Phase:** ${task.phasePath.join(' → ')}
140
+ let section = `## Current Task
141
+
142
+ **File:** ${taskFilePath}
143
+ **Line:** ${task.line}
144
+ **Phase:** ${task.phasePath.join(' → ')}
145
145
  **Task:** ${task.text}`;
146
146
  if (task.children.length > 0) {
147
147
  section += '\n\n**Children:**';
@@ -153,17 +153,17 @@ function buildCurrentTaskSection(task, taskFilePath) {
153
153
  return section;
154
154
  }
155
155
  function buildTaskPlanFileSection(taskPlanFile) {
156
- return `## Vetted Implementation Plan
157
-
158
- Primary plan file: ${taskPlanFile}
156
+ return `## Vetted Implementation Plan
157
+
158
+ Primary plan file: ${taskPlanFile}
159
159
  Implement according to this vetted plan. If there is any conflict, the current task text is authoritative.`;
160
160
  }
161
161
  function buildProgressSummary(taskFile, currentTask) {
162
162
  const completed = taskFile.completed.length;
163
163
  const total = taskFile.totalCount;
164
164
  const phase = currentTask.phasePath.length > 0 ? currentTask.phasePath[0] : 'Unknown';
165
- let summary = `## Progress Summary
166
-
165
+ let summary = `## Progress Summary
166
+
167
167
  ${completed}/${total} complete. Phase: ${phase}.`;
168
168
  // Show upcoming tasks so the agent knows what NOT to do
169
169
  const pendingAfterCurrent = taskFile.pending.filter((t) => t.key !== currentTask.key);
@@ -267,49 +267,49 @@ async function buildCodebaseSnapshot(projectDir) {
267
267
  }
268
268
  }
269
269
  function buildRetryContextSection(retryContext) {
270
- return `## Previous Attempt Failed — Fix Required
271
-
272
- ${retryContext}
273
-
274
- RETRY RULES (follow exactly):
275
- 1. Your previous code changes are STILL IN PLACE. Do NOT start over.
276
- 2. The errors above are filtered to show ONLY the issues you need to fix.
277
- 3. Open the specific file(s) mentioned, fix the exact error(s), nothing else.
278
- 4. Do NOT modify files that are not listed in the errors.
279
- 5. After fixing, run the relevant command (lint/build/test) to confirm the fix works.
270
+ return `## Previous Attempt Failed — Fix Required
271
+
272
+ ${retryContext}
273
+
274
+ RETRY RULES (follow exactly):
275
+ 1. Your previous code changes are STILL IN PLACE. Do NOT start over.
276
+ 2. The errors above are filtered to show ONLY the issues you need to fix.
277
+ 3. Open the specific file(s) mentioned, fix the exact error(s), nothing else.
278
+ 4. Do NOT modify files that are not listed in the errors.
279
+ 5. After fixing, run the relevant command (lint/build/test) to confirm the fix works.
280
280
  6. Emit your structured result immediately after confirming.`;
281
281
  }
282
282
  function buildResultInstructions(decomposeEnabled) {
283
- let instructions = `## Instructions
284
-
285
- When finished, emit exactly this block at the end of your response:
286
-
287
- \`\`\`
288
- <anton-result>
289
- status: done
290
- </anton-result>
291
- \`\`\`
292
-
293
- If blocked or if you failed:
294
-
295
- \`\`\`
296
- <anton-result>
297
- status: failed
298
- reason: <why it failed or why you are blocked>
299
- </anton-result>
283
+ let instructions = `## Instructions
284
+
285
+ When finished, emit exactly this block at the end of your response:
286
+
287
+ \`\`\`
288
+ <anton-result>
289
+ status: done
290
+ </anton-result>
291
+ \`\`\`
292
+
293
+ If blocked or if you failed:
294
+
295
+ \`\`\`
296
+ <anton-result>
297
+ status: failed
298
+ reason: <why it failed or why you are blocked>
299
+ </anton-result>
300
300
  \`\`\``;
301
301
  if (decomposeEnabled) {
302
- instructions += `
303
-
304
- If task is too large:
305
-
306
- \`\`\`
307
- <anton-result>
308
- status: decompose
309
- subtasks:
310
- - <sub-task 1>
311
- - <sub-task 2>
312
- </anton-result>
302
+ instructions += `
303
+
304
+ If task is too large:
305
+
306
+ \`\`\`
307
+ <anton-result>
308
+ status: decompose
309
+ subtasks:
310
+ - <sub-task 1>
311
+ - <sub-task 2>
312
+ </anton-result>
313
313
  \`\`\``;
314
314
  }
315
315
  return instructions;
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/anton/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/anton/reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { execute, loadActiveRuntime, runOnHost } from '../runtime/executor.js';
2
+ import { waitForModelsReady } from '../runtime/health.js';
3
+ import { plan } from '../runtime/planner.js';
4
+ import { loadRuntimes } from '../runtime/store.js';
5
+ function endpointBase(endpoint) {
6
+ if (!endpoint)
7
+ return null;
8
+ const e = endpoint.trim().replace(/\/+$/, '');
9
+ if (!e)
10
+ return null;
11
+ return e.endsWith('/v1') ? e : `${e}/v1`;
12
+ }
13
+ async function probeEndpointReady(endpoint) {
14
+ const base = endpointBase(endpoint);
15
+ if (!base)
16
+ return { ok: false, reason: 'endpoint-not-configured' };
17
+ const ctrl = new AbortController();
18
+ const t = setTimeout(() => ctrl.abort(), 7000);
19
+ try {
20
+ const res = await fetch(`${base}/models`, { signal: ctrl.signal });
21
+ if (res.status === 503)
22
+ return { ok: false, reason: 'loading-http-503' };
23
+ if (!res.ok)
24
+ return { ok: false, reason: `http-${res.status}` };
25
+ return { ok: true, reason: 'ok' };
26
+ }
27
+ catch (e) {
28
+ const msg = String(e?.message ?? e).toLowerCase();
29
+ if (msg.includes('aborted'))
30
+ return { ok: false, reason: 'timeout' };
31
+ return { ok: false, reason: msg.slice(0, 120) };
32
+ }
33
+ finally {
34
+ clearTimeout(t);
35
+ }
36
+ }
37
+ export function classifyInfraError(err) {
38
+ const msg = String(err?.message ?? err ?? '').toLowerCase();
39
+ if (!msg)
40
+ return 'other';
41
+ if (msg.includes('aborted') || msg.includes('cancel'))
42
+ return 'other';
43
+ if (msg.includes('503') || msg.includes('model is loading') || msg.includes('loading')) {
44
+ return 'loading';
45
+ }
46
+ const infraPatterns = [
47
+ 'econnrefused',
48
+ 'could not connect',
49
+ 'connection refused',
50
+ 'enotfound',
51
+ 'fetch failed',
52
+ 'connect timeout',
53
+ 'socket hang up',
54
+ 'no models found',
55
+ 'endpoint',
56
+ ];
57
+ if (infraPatterns.some((p) => msg.includes(p))) {
58
+ return 'infra_down';
59
+ }
60
+ return 'other';
61
+ }
62
+ export async function ensureAntonRuntimeReady(idlehandsConfig, opts) {
63
+ const endpointProbe = await probeEndpointReady(idlehandsConfig.endpoint);
64
+ if (endpointProbe.ok)
65
+ return { ok: true, detail: 'endpoint-ready' };
66
+ let rtConfig;
67
+ try {
68
+ rtConfig = await loadRuntimes();
69
+ }
70
+ catch {
71
+ return {
72
+ ok: false,
73
+ detail: `endpoint-not-ready (${endpointProbe.reason}); runtimes-unavailable`,
74
+ };
75
+ }
76
+ const active = await loadActiveRuntime();
77
+ let targetModelId;
78
+ if (active?.modelId && rtConfig.models.some((m) => m.id === active.modelId && m.enabled)) {
79
+ targetModelId = active.modelId;
80
+ }
81
+ else if (typeof idlehandsConfig.model === 'string' &&
82
+ rtConfig.models.some((m) => m.id === idlehandsConfig.model && m.enabled)) {
83
+ targetModelId = idlehandsConfig.model;
84
+ }
85
+ if (!targetModelId) {
86
+ return {
87
+ ok: false,
88
+ detail: `endpoint-not-ready (${endpointProbe.reason}); no-runtime-model-mapping`,
89
+ };
90
+ }
91
+ const planOut = plan({ modelId: targetModelId, mode: 'live', forceRestart: opts.forceRestart }, rtConfig, active);
92
+ if (!planOut.ok) {
93
+ return { ok: false, detail: `runtime-plan-failed ${planOut.code}: ${planOut.reason}` };
94
+ }
95
+ const execRes = await execute(planOut, {
96
+ force: true,
97
+ confirm: async () => true,
98
+ });
99
+ if (!execRes.ok) {
100
+ return { ok: false, detail: `runtime-exec-failed: ${execRes.error ?? 'unknown'}` };
101
+ }
102
+ const timeoutMs = Math.max(10_000, opts.timeoutMs ?? (planOut.model.launch.probe_timeout_sec ?? 600) * 1000);
103
+ for (const resolvedHost of planOut.hosts) {
104
+ const hostCfg = rtConfig.hosts.find((h) => h.id === resolvedHost.id);
105
+ if (!hostCfg)
106
+ continue;
107
+ const ready = await waitForModelsReady(runOnHost, hostCfg, planOut.model.runtime_defaults?.port ?? 8080, {
108
+ timeoutMs,
109
+ intervalMs: planOut.model.launch.probe_interval_ms ?? 2000,
110
+ });
111
+ if (!ready.ok) {
112
+ return {
113
+ ok: false,
114
+ detail: `wait-ready failed on ${resolvedHost.id}: ${ready.reason ?? 'timeout'}`,
115
+ };
116
+ }
117
+ }
118
+ return { ok: true, detail: 'runtime-ready' };
119
+ }
120
+ //# sourceMappingURL=runtime-ready.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-ready.js","sourceRoot":"","sources":["../../src/anton/runtime-ready.ts"],"names":[],"mappings":"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"}
@@ -26,15 +26,17 @@ export function buildSessionConfig(base, config) {
26
26
  * Build session config for preflight discovery/review sessions.
27
27
  * Uses stricter limits while keeping core tools available for plan-file writes.
28
28
  */
29
- export function buildPreflightConfig(base, config, stageTimeoutSec) {
30
- const preflightMaxIterations = Number.isFinite(config.preflightSessionMaxIterations) &&
31
- Number(config.preflightSessionMaxIterations) > 0
32
- ? Math.floor(Number(config.preflightSessionMaxIterations))
33
- : 3;
29
+ export function buildPreflightConfig(base, config, stageTimeoutSec, maxIterationsOverride) {
30
+ const preflightMaxIterations = Number.isFinite(maxIterationsOverride) && Number(maxIterationsOverride) > 0
31
+ ? Math.floor(Number(maxIterationsOverride))
32
+ : Number.isFinite(config.preflightSessionMaxIterations) &&
33
+ Number(config.preflightSessionMaxIterations) > 0
34
+ ? Math.floor(Number(config.preflightSessionMaxIterations))
35
+ : 500;
34
36
  const preflightTimeoutCapSec = Number.isFinite(config.preflightSessionTimeoutSec) &&
35
37
  Number(config.preflightSessionTimeoutSec) > 0
36
38
  ? Math.floor(Number(config.preflightSessionTimeoutSec))
37
- : 120;
39
+ : Math.max(10, Math.floor(Number(config.taskTimeoutSec) || 600));
38
40
  return {
39
41
  ...base,
40
42
  dir: config.projectDir,
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/anton/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/anton/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { getChangedFiles } from '../git.js';
3
+ /**
4
+ * If task text explicitly names files, enforce working tree changes stay in scope.
5
+ */
6
+ export function checkTaskScopeGuard(taskText, projectDir) {
7
+ const expected = extractExplicitTaskFiles(taskText);
8
+ if (expected.length === 0)
9
+ return { ok: true };
10
+ const changed = getChangedFiles(projectDir)
11
+ .map((p) => p.replace(/^\.\//, ''))
12
+ .filter(Boolean);
13
+ if (changed.length === 0)
14
+ return { ok: true };
15
+ const expectedSet = new Set(expected);
16
+ const outOfScope = changed.filter((f) => !expectedSet.has(f));
17
+ if (outOfScope.length === 0)
18
+ return { ok: true };
19
+ return {
20
+ ok: false,
21
+ reason: `Scope guard failed: task explicitly targets ${expected.join(', ')} but modified out-of-scope files`,
22
+ details: `Expected: ${expected.join(', ')}\nChanged: ${changed.join(', ')}\nOut-of-scope: ${outOfScope.join(', ')}`,
23
+ };
24
+ }
25
+ export function extractExplicitTaskFiles(taskText) {
26
+ const text = String(taskText || '');
27
+ const files = new Set();
28
+ const pathRegex = /\b([A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)+\.[A-Za-z0-9]{1,8})\b/g;
29
+ for (const m of text.matchAll(pathRegex)) {
30
+ files.add(m[1].replace(/^\.\//, ''));
31
+ }
32
+ const bareRegex = /\b([A-Za-z0-9._-]+\.[A-Za-z0-9]{1,8})\b/g;
33
+ for (const m of text.matchAll(bareRegex)) {
34
+ const file = m[1];
35
+ if (!file.includes('/'))
36
+ files.add(file);
37
+ }
38
+ return [...files];
39
+ }
40
+ export function isCommandAvailable(...cmd) {
41
+ const command = cmd.length === 1 ? cmd[0] : cmd.join(' ');
42
+ const result = spawnSync('which', [cmd[0]], {
43
+ timeout: 5000,
44
+ encoding: 'utf8',
45
+ stdio: ['ignore', 'pipe', 'ignore'],
46
+ });
47
+ if (result.status !== 0)
48
+ return false;
49
+ if (cmd.length > 1) {
50
+ const testResult = spawnSync('bash', ['-c', `${command} --help >/dev/null 2>&1`], {
51
+ timeout: 5000,
52
+ });
53
+ return testResult.status === 0;
54
+ }
55
+ return true;
56
+ }
57
+ export function makeTargetExists(cwd, target) {
58
+ try {
59
+ const result = spawnSync('make', ['-n', target], {
60
+ cwd,
61
+ timeout: 5000,
62
+ stdio: ['ignore', 'ignore', 'pipe'],
63
+ });
64
+ return result.status === 0;
65
+ }
66
+ catch {
67
+ return false;
68
+ }
69
+ }
70
+ export function truncateOutput(text, maxLen = 2000) {
71
+ const cleaned = text.trim();
72
+ return cleaned.length > maxLen ? `${cleaned.slice(0, maxLen)}...` : cleaned;
73
+ }
74
+ export function combineOutput(label, stdout, stderr) {
75
+ const parts = [`=== ${label} ===`];
76
+ const out = stdout.trim();
77
+ const err = stderr.trim();
78
+ if (out)
79
+ parts.push(`stdout:\n${out}`);
80
+ if (err)
81
+ parts.push(`stderr:\n${err}`);
82
+ if (!out && !err)
83
+ parts.push('(no output)');
84
+ return parts.join('\n');
85
+ }
86
+ export function parseVerifierResponse(raw) {
87
+ const text = raw.trim();
88
+ // 1. Try direct JSON parse
89
+ try {
90
+ const parsed = JSON.parse(text);
91
+ if (typeof parsed.pass === 'boolean') {
92
+ return { pass: parsed.pass, reason: parsed.reason || 'No reason provided' };
93
+ }
94
+ }
95
+ catch {
96
+ /* not valid JSON, continue */
97
+ }
98
+ // 2. Try extracting JSON from markdown code fences or inline braces
99
+ const jsonMatch = text.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/) || text.match(/(\{[\s\S]*?"pass"[\s\S]*?\})/);
100
+ if (jsonMatch) {
101
+ try {
102
+ const parsed = JSON.parse(jsonMatch[1].trim());
103
+ if (typeof parsed.pass === 'boolean') {
104
+ return { pass: parsed.pass, reason: parsed.reason || 'No reason provided' };
105
+ }
106
+ }
107
+ catch {
108
+ /* still not valid, continue */
109
+ }
110
+ }
111
+ // 3. Keyword inference from prose
112
+ const lower = text.toLowerCase();
113
+ const passPatterns = [
114
+ /\bpass\b/,
115
+ /\bapproved?\b/,
116
+ /\blooks?\s+good\b/,
117
+ /\bcorrect(ly)?\b/,
118
+ /\bwell[- ]implemented\b/,
119
+ /\bno\s+(issues?|problems?|concerns?)\b/,
120
+ /\bcode\s+(is\s+)?clean\b/,
121
+ /\btask\s+(is\s+)?(complete|done)\b/,
122
+ ];
123
+ const failPatterns = [
124
+ /\bfail\b/,
125
+ /\breject(ed)?\b/,
126
+ /\bnot\s+(correct|approved?)\b/,
127
+ /\bissues?\s+found\b/,
128
+ /\bproblems?\s+found\b/,
129
+ /\bbug(s)?\b/,
130
+ /\bmissing\b/,
131
+ /\bincorrect\b/,
132
+ /\bbroken\b/,
133
+ ];
134
+ const passScore = passPatterns.filter((p) => p.test(lower)).length;
135
+ const failScore = failPatterns.filter((p) => p.test(lower)).length;
136
+ if (passScore > 0 && passScore > failScore) {
137
+ const snippet = text.length > 200 ? text.slice(0, 200) + '...' : text;
138
+ return { pass: true, reason: `(inferred from prose) ${snippet}` };
139
+ }
140
+ if (failScore > 0) {
141
+ const snippet = text.length > 200 ? text.slice(0, 200) + '...' : text;
142
+ return { pass: false, reason: `(inferred from prose) ${snippet}` };
143
+ }
144
+ // 4. Ambiguous — default to pass since L1 already validated build/test
145
+ const snippet = text.length > 200 ? text.slice(0, 200) + '...' : text;
146
+ return { pass: true, reason: `(ambiguous response, defaulting to pass) ${snippet}` };
147
+ }
148
+ //# sourceMappingURL=verifier-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifier-utils.js","sourceRoot":"","sources":["../../src/anton/verifier-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,UAAkB;IACtE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAE/C,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAE9C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,+CAA+C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC;QAC5G,OAAO,EAAE,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACpH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,MAAM,SAAS,GAAG,gEAAgE,CAAC;IACnF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,SAAS,GAAG,0CAA0C,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAG,GAAa;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1C,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;KACpC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,yBAAyB,CAAC,EAAE;YAChF,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAAc;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YAC/C,GAAG;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,SAAiB,IAAI;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;IACzE,MAAM,KAAK,GAAa,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAExB,2BAA2B;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC9E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,oEAAoE;IACpE,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjG,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG;QACnB,UAAU;QACV,eAAe;QACf,mBAAmB;QACnB,kBAAkB;QAClB,yBAAyB;QACzB,wCAAwC;QACxC,0BAA0B;QAC1B,oCAAoC;KACrC,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,UAAU;QACV,iBAAiB;QACjB,+BAA+B;QAC/B,qBAAqB;QACrB,uBAAuB;QACvB,aAAa;QACb,aAAa;QACb,eAAe;QACf,YAAY;KACb,CAAC;IAEF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAEnE,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,yBAAyB,OAAO,EAAE,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,OAAO,EAAE,EAAE,CAAC;IACrE,CAAC;IAED,uEAAuE;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,4CAA4C,OAAO,EAAE,EAAE,CAAC;AACvF,CAAC"}