@visorcraft/idlehands 2.0.2 → 2.1.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 (43) hide show
  1. package/dist/agent/prompt-builder.js +188 -0
  2. package/dist/agent/prompt-builder.js.map +1 -0
  3. package/dist/agent/query-classifier.js +72 -0
  4. package/dist/agent/query-classifier.js.map +1 -0
  5. package/dist/agent/resilient-provider.js +170 -0
  6. package/dist/agent/resilient-provider.js.map +1 -0
  7. package/dist/agent/response-cache.js +124 -0
  8. package/dist/agent/response-cache.js.map +1 -0
  9. package/dist/agent/semantic-search.js +138 -0
  10. package/dist/agent/semantic-search.js.map +1 -0
  11. package/dist/agent/tool-calls.js +261 -1
  12. package/dist/agent/tool-calls.js.map +1 -1
  13. package/dist/agent/tool-name-alias.js +140 -0
  14. package/dist/agent/tool-name-alias.js.map +1 -0
  15. package/dist/agent.js +146 -43
  16. package/dist/agent.js.map +1 -1
  17. package/dist/anton/controller.js +165 -48
  18. package/dist/anton/controller.js.map +1 -1
  19. package/dist/anton/preflight.js +49 -9
  20. package/dist/anton/preflight.js.map +1 -1
  21. package/dist/anton/prompt.js +20 -0
  22. package/dist/anton/prompt.js.map +1 -1
  23. package/dist/anton/reporter.js +6 -1
  24. package/dist/anton/reporter.js.map +1 -1
  25. package/dist/bot/ux/discord-renderer.js +5 -21
  26. package/dist/bot/ux/discord-renderer.js.map +1 -1
  27. package/dist/bot/ux/emitter.js +104 -0
  28. package/dist/bot/ux/emitter.js.map +1 -0
  29. package/dist/bot/ux/telegram-renderer.js +5 -21
  30. package/dist/bot/ux/telegram-renderer.js.map +1 -1
  31. package/dist/client.js +51 -7
  32. package/dist/client.js.map +1 -1
  33. package/dist/harnesses.js +2 -0
  34. package/dist/harnesses.js.map +1 -1
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/model-customization.js +3 -1
  38. package/dist/model-customization.js.map +1 -1
  39. package/dist/security/leak-detector.js +109 -0
  40. package/dist/security/leak-detector.js.map +1 -0
  41. package/dist/security/prompt-guard.js +120 -0
  42. package/dist/security/prompt-guard.js.map +1 -0
  43. package/package.json +1 -1
@@ -2,6 +2,8 @@
2
2
  * Anton preflight helpers: discovery/review prompts, JSON parsing, and plan-file guards.
3
3
  */
4
4
  import { createHash } from 'node:crypto';
5
+ import { mkdir, stat, writeFile } from 'node:fs/promises';
6
+ import path from 'node:path';
5
7
  // Force-decision prompts for when the model doesn't return valid JSON in time
6
8
  export const FORCE_DISCOVERY_DECISION_PROMPT = `STOP. You must return your discovery result NOW.
7
9
 
@@ -19,8 +21,6 @@ Return ONLY this JSON (no markdown, no explanation, no tool calls):
19
21
 
20
22
  Use the plan file path you were reviewing.
21
23
  JSON only. Nothing else.`;
22
- import { mkdir, stat, writeFile } from 'node:fs/promises';
23
- import path from 'node:path';
24
24
  export async function ensureAgentsTasksDir(projectDir) {
25
25
  const dir = path.resolve(projectDir, '.agents', 'tasks');
26
26
  await mkdir(dir, { recursive: true });
@@ -90,6 +90,37 @@ export async function assertPlanFileExists(absPath) {
90
90
  if (!s.isFile())
91
91
  throw new Error(`preflight-plan-not-a-file:${absPath}`);
92
92
  }
93
+ export async function assertPlanFileExistsAndNonEmpty(absPath) {
94
+ const s = await stat(absPath);
95
+ if (!s.isFile())
96
+ throw new Error(`preflight-plan-not-a-file:${absPath}`);
97
+ if (s.size <= 0)
98
+ throw new Error(`preflight-plan-empty:${absPath}`);
99
+ }
100
+ export function buildDiscoveryRewritePrompt(planFilePath, reason) {
101
+ return `The plan file you returned is invalid (${reason}).
102
+
103
+ You must now write a NON-EMPTY markdown plan file at EXACTLY this path:
104
+ ${planFilePath}
105
+
106
+ Do NOT edit source files. Only write this plan file.
107
+ After writing it, return EXACT JSON only:
108
+ {"status":"incomplete","filename":"${planFilePath}"}
109
+
110
+ Return JSON only. No markdown fences. No commentary.`;
111
+ }
112
+ export function buildReviewRewritePrompt(planFilePath, reason) {
113
+ return `The reviewed plan file is invalid (${reason}).
114
+
115
+ You must now write/update a NON-EMPTY markdown file at EXACTLY this path:
116
+ ${planFilePath}
117
+
118
+ Do NOT edit source files. Only write this plan file.
119
+ After writing it, return EXACT JSON only:
120
+ {"status":"ready","filename":"${planFilePath}"}
121
+
122
+ Return JSON only. No markdown fences. No commentary.`;
123
+ }
93
124
  /**
94
125
  * Ensure a plan file exists. If the model returned a filename but failed to write it,
95
126
  * bootstrap a deterministic fallback file so preflight can continue.
@@ -131,15 +162,13 @@ export async function ensurePlanFileExistsOrBootstrap(opts) {
131
162
  export function buildDiscoveryPrompt(opts) {
132
163
  return `You are running PRE-FLIGHT for an autonomous coding orchestrator.
133
164
 
134
- ## SPEED PRIORITY
135
- Return your JSON decision IMMEDIATELY if possible.
136
- - Most new tasks are obviously incomplete — don't waste time verifying.
137
- - Only read files if you CANNOT determine status from the task description alone.
138
- - If in doubt, assume INCOMPLETE and write the plan.
165
+ ## PRIORITY
166
+ Be fast, but NEVER claim a file was written unless it truly exists and has content.
139
167
 
140
168
  ## RULES
141
169
  - DO NOT implement code changes. DO NOT modify source files.
142
170
  - You may ONLY write to: ${path.resolve(opts.projectDir, '.agents', 'tasks')}
171
+ - Never call edit_range/apply_patch on source files during discovery.
143
172
 
144
173
  ## TASK
145
174
  File: ${opts.taskFilePath} (line ${opts.task.line})
@@ -159,14 +188,18 @@ ${opts.task.text}
159
188
  - What needs to be done
160
189
  - Implementation approach (reviewed for correctness, edge cases, code reuse)
161
190
  - Files to modify/create
162
- 3. Return: {"status":"incomplete","filename":"${opts.planFilePath}"}
191
+ 3. Verify the file exists and is NON-EMPTY (check file content/size).
192
+ 4. ONLY after verification, return:
193
+ {"status":"incomplete","filename":"${opts.planFilePath}"}
194
+
195
+ CRITICAL: Do NOT return status=incomplete with filename unless the file is truly written and non-empty.
163
196
 
164
197
  Note: Write a REVIEWED plan — thorough enough that implementation can proceed without further planning.
165
198
  ${opts.retryHint
166
199
  ? `
167
200
  ## RETRY CONTEXT
168
201
  ${opts.retryHint}
169
- Keep output minimal. Write the plan file and return JSON immediately.`
202
+ Keep output minimal. Write/verify the plan file, then return JSON.`
170
203
  : ''}
171
204
 
172
205
  ## OUTPUT
@@ -180,9 +213,16 @@ Treat it as written by an entry-level developer who may miss edge cases and fail
180
213
  Be thorough and precise. Update the SAME file in-place to improve correctness, reuse, and clarity.
181
214
  Remove ambiguity and tighten implementation steps.
182
215
 
216
+ Before returning status=ready:
217
+ 1) Ensure the file exists
218
+ 2) Ensure the file is NON-EMPTY
219
+ 3) Ensure your reviewed content is persisted to that same path
220
+
183
221
  After review, return EXACT JSON only:
184
222
  {"status":"ready","filename":"${planFilePath}"}
185
223
 
224
+ CRITICAL: Do not return status=ready unless that file truly exists and has non-empty content.
225
+
186
226
  Return JSON only. No markdown fences. No commentary.`;
187
227
  }
188
228
  //# sourceMappingURL=preflight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/anton/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/anton/preflight.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export async function buildAntonPrompt(opts) {
11
11
  const sections = [];
12
12
  // 1. Preamble - rules and instructions
13
13
  sections.push(buildPreamble(opts.config));
14
+ // 1a. Iteration budget - tell model how many turns it has
15
+ if (opts.maxIterations && opts.maxIterations > 0) {
16
+ sections.push(buildIterationBudget(opts.currentTurn ?? 1, opts.maxIterations));
17
+ }
14
18
  // 1b. Decomposition nudge for complex tasks
15
19
  if (opts.config.decompose && classifyTaskComplexity(opts.task.text) === 'complex') {
16
20
  sections.push(`## Task Analysis
@@ -108,6 +112,22 @@ export function classifyTaskComplexity(taskText) {
108
112
  ];
109
113
  return complexPatterns.some((p) => p.test(taskText)) ? 'complex' : 'simple';
110
114
  }
115
+ function buildIterationBudget(currentTurn, maxIterations) {
116
+ const remaining = Math.max(0, maxIterations - currentTurn);
117
+ const urgency = remaining <= 5 ? '🚨 ' : remaining <= 10 ? '⚠️ ' : '';
118
+ let section = `## Iteration Budget
119
+
120
+ ${urgency}**Turn ${currentTurn} of ${maxIterations}** (${remaining} remaining)
121
+
122
+ You have a LIMITED number of turns to complete this task. Plan accordingly:
123
+ - Do NOT explore endlessly — identify what you need, make changes, verify, done.
124
+ - If you're past turn ${Math.floor(maxIterations * 0.6)}, start wrapping up.
125
+ - If you cannot complete the task in time, emit \`status: failed\` with a reason.`;
126
+ if (remaining <= 5) {
127
+ section += `\n\n**URGENT:** You are almost out of turns. Finish NOW or report failure.`;
128
+ }
129
+ return section;
130
+ }
111
131
  function buildPreamble(config) {
112
132
  let preamble = `You are an autonomous coding agent working on exactly ONE task at a time.
113
133
  Complete ONLY the task described below, then emit exactly one \`<anton-result>\` block at the very end of your response, even if you fail.
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/anton/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/anton/prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAsB7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAqB;IAC1D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,uCAAuC;IACvC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1C,0DAA0D;IAC1D,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAClF,QAAQ,CAAC,IAAI,CAAC;;;;;;oFAMkE,CAAC,CAAC;IACpF,CAAC;IAED,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAErE,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9D,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,gDAAgD;IAChD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,MAAM,wBAAwB,CACjD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,iCAAiC;IACjC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,oCAAoC;IACpC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9D,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,2CAA2C,CAAC;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAE7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,sCAAsC;YAC9C,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzC,oBAAoB;IACpB,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,sCAAsC;YAC9C,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/F,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,mBAAmB,MAAM,EAAE;YACnC,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/D,sCAAsC;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAa;QACrB,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,eAAe,GAAG;QACtB,sDAAsD;QACtD,+BAA+B;QAC/B,6BAA6B;QAC7B,2CAA2C;QAC3C,sBAAsB;QACtB,+BAA+B;KAChC,CAAC;IACF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,aAAqB;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,IAAI,OAAO,GAAG;;EAEd,OAAO,UAAU,WAAW,OAAO,aAAa,OAAO,SAAS;;;;wBAI1C,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC;kFAC2B,CAAC;IAEjF,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,4EAA4E,CAAC;IAC1F,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,MAAsB;IAC3C,IAAI,QAAQ,GAAG;;;;;;;;+FAQ8E,CAAC;IAE9F,QAAQ,IAAI;;;;;;;sEAOwD,CAAC;IAErE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,QAAQ,IAAI,oHAAoH,CAAC;IACnI,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,QAAQ,IAAI;+BACe,MAAM,CAAC,iBAAiB;sFAC+B,CAAC;IACrF,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAe,EAAE,YAAoB;IACpE,IAAI,OAAO,GAAG;;YAEJ,YAAY;YACZ,IAAI,CAAC,IAAI;aACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;IAEtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,mBAAmB,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7C,OAAO,IAAI,OAAO,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACpD,OAAO;;qBAEY,YAAY;2GAC0E,CAAC;AAC5G,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAuB,EAAE,WAAsB;IAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtF,IAAI,OAAO,GAAG;;EAEd,SAAS,IAAI,KAAK,qBAAqB,KAAK,GAAG,CAAC;IAEhD,wDAAwD;IACxD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;IACtF,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,gDAAgD,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,cAAc,mBAAmB,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAe,EACf,KAAiB,EACjB,gBAAwB;IAExB,kCAAkC;IAClC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iDAAiD;IACjD,IAAI,OAAO,GAAG,uBAAuB,CAAC;IACtC,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,QAAQ,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,OAAO,MAAM,CAAC;QAClE,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,UAAU,GAAG,UAAU,GAAG,gBAAgB,EAAE,CAAC;YAC/C,MAAM;QACR,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC;QACpB,UAAU,IAAI,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;QACxB,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,IAAI;SACR,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;AAC1C,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,UAAkB;IACrD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CACnB,SAAS,UAAU,0LAA0L,EAC7M,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CACpC,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,oCAAoC,IAAI,UAAU,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACpD,OAAO;;EAEP,YAAY;;;;;;;;6DAQ+C,CAAC;AAC9D,CAAC;AAED,SAAS,uBAAuB,CAAC,gBAAyB;IACxD,IAAI,YAAY,GAAG;;;;;;;;;;;;;;;;;OAiBd,CAAC;IAEN,IAAI,gBAAgB,EAAE,CAAC;QACrB,YAAY,IAAI;;;;;;;;;;;OAWb,CAAC;IACN,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -65,7 +65,12 @@ export function formatTaskHeartbeat(progress) {
65
65
  const eta = progress.estimatedRemainingMs !== undefined
66
66
  ? ` · ETA ~${formatDuration(progress.estimatedRemainingMs)}`
67
67
  : '';
68
- return `⏳ Still working: ${task} (attempt ${attempt})\n${bar}\nElapsed: ${elapsed}${eta}`;
68
+ // Show turn progress if available
69
+ const turn = progress.currentTurn ?? 0;
70
+ const maxTurns = progress.maxTurns ?? 0;
71
+ const turnInfo = maxTurns > 0 ? ` · Turn ${turn}/${maxTurns}` : '';
72
+ const urgency = maxTurns > 0 && turn >= maxTurns - 5 ? ' ⚠️' : '';
73
+ return `⏳ Still working: ${task} (attempt ${attempt}${turnInfo}${urgency})\n${bar}\nElapsed: ${elapsed}${eta}`;
69
74
  }
70
75
  /**
71
76
  * Format task end message.
@@ -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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"}
@@ -5,6 +5,7 @@
5
5
  * Discord Markdown format, respecting Discord's message limits and formatting.
6
6
  */
7
7
  import { blocksToPlainText } from './renderer.js';
8
+ import { truncateBlocks } from './shared-formatter.js';
8
9
  /**
9
10
  * Discord message length limit (recommended: 1900, hard limit: 2000).
10
11
  */
@@ -83,27 +84,10 @@ function blockToDiscordMarkdown(block, opts) {
83
84
  * Truncates content if necessary and adds ellipsis.
84
85
  */
85
86
  export function renderDiscordMarkdown(blocks, opts) {
86
- const maxLen = Math.max(256, Math.floor(opts?.maxLen ?? DISCORD_MAX_LEN));
87
- const parts = [];
88
- let used = 0;
89
- let truncated = false;
90
- for (const block of blocks) {
91
- const piece = blockToDiscordMarkdown(block, opts);
92
- const sep = parts.length ? '\n\n' : '';
93
- const add = sep + piece;
94
- if (used + add.length > maxLen) {
95
- truncated = true;
96
- break;
97
- }
98
- parts.push(add);
99
- used += add.length;
100
- }
101
- let out = parts.join('');
102
- if (truncated && out.length + 2 <= maxLen)
103
- out += '\n…';
104
- if (!out.trim())
105
- out = '⏳ Thinking...';
106
- return out;
87
+ return truncateBlocks(blocks, blockToDiscordMarkdown, {
88
+ maxLen: opts?.maxLen ?? DISCORD_MAX_LEN,
89
+ fallback: '⏳ Thinking...',
90
+ });
107
91
  }
108
92
  /**
109
93
  * Fallback: render blocks to plain text for very long messages.
@@ -1 +1 @@
1
- {"version":3,"file":"discord-renderer.js","sourceRoot":"","sources":["../../../src/bot/ux/discord-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-renderer.js","sourceRoot":"","sources":["../../../src/bot/ux/discord-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Shared UX event emitter for IdleHands bots.
3
+ *
4
+ * This module provides a unified event emitter that both Telegram and Discord
5
+ * bots use to emit identical semantic events for the same workflow stages.
6
+ * This ensures consistent event semantics across all platforms.
7
+ */
8
+ import { createACKEvent, createPROGRESSEvent, createWARNINGEvent, createERROREvent, createRESULTEvent, createACTIONSEvent } from './events.js';
9
+ /**
10
+ * Create a new event emitter state.
11
+ */
12
+ export function createUXEventEmitterState(sessionId, userId, opts) {
13
+ return {
14
+ sessionId,
15
+ userId,
16
+ sequence: 0,
17
+ buffer: [],
18
+ maxBuffer: opts?.maxBuffer,
19
+ listeners: [],
20
+ };
21
+ }
22
+ /**
23
+ * Emit an event to all listeners.
24
+ */
25
+ export function emit(state, event) {
26
+ // Update sequence number
27
+ state.sequence = event.sequence ?? state.sequence + 1;
28
+ event.sequence = state.sequence;
29
+ event.sessionId = state.sessionId;
30
+ event.userId = state.userId;
31
+ // Add to buffer
32
+ state.buffer.push(event);
33
+ if (state.maxBuffer && state.buffer.length > state.maxBuffer) {
34
+ state.buffer.shift();
35
+ }
36
+ // Notify listeners
37
+ for (const listener of state.listeners) {
38
+ void listener(event);
39
+ }
40
+ }
41
+ /**
42
+ * Add an event listener.
43
+ */
44
+ export function on(state, listener) {
45
+ state.listeners.push(listener);
46
+ return () => {
47
+ state.listeners = state.listeners.filter((l) => l !== listener);
48
+ };
49
+ }
50
+ /**
51
+ * Emit an ACK event.
52
+ */
53
+ export function emitACK(state, message, opts) {
54
+ const event = createACKEvent(state.sessionId, state.userId, state.sequence + 1, message, opts);
55
+ emit(state, event);
56
+ }
57
+ /**
58
+ * Emit a PROGRESS event.
59
+ */
60
+ export function emitPROGRESS(state, message, progress, opts) {
61
+ const event = createPROGRESSEvent(state.sessionId, state.userId, state.sequence + 1, message, { ...opts, progress });
62
+ emit(state, event);
63
+ }
64
+ /**
65
+ * Emit a WARNING event.
66
+ */
67
+ export function emitWARNING(state, message, opts) {
68
+ const event = createWARNINGEvent(state.sessionId, state.userId, state.sequence + 1, message, opts);
69
+ emit(state, event);
70
+ }
71
+ /**
72
+ * Emit an ERROR event.
73
+ */
74
+ export function emitERROR(state, message, opts) {
75
+ const event = createERROREvent(state.sessionId, state.userId, state.sequence + 1, message, opts);
76
+ emit(state, event);
77
+ }
78
+ /**
79
+ * Emit a RESULT event.
80
+ */
81
+ export function emitRESULT(state, summary, opts) {
82
+ const event = createRESULTEvent(state.sessionId, state.userId, state.sequence + 1, summary, opts);
83
+ emit(state, event);
84
+ }
85
+ /**
86
+ * Emit an ACTIONS event.
87
+ */
88
+ export function emitACTIONS(state, actions, opts) {
89
+ const event = createACTIONSEvent(state.sessionId, state.userId, state.sequence + 1, actions, opts);
90
+ emit(state, event);
91
+ }
92
+ /**
93
+ * Get the last N events from the buffer.
94
+ */
95
+ export function getRecentEvents(state, count = 10) {
96
+ return state.buffer.slice(-count);
97
+ }
98
+ /**
99
+ * Clear the event buffer.
100
+ */
101
+ export function clearBuffer(state) {
102
+ state.buffer = [];
103
+ }
104
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/bot/ux/emitter.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Telegram HTML format, respecting Telegram's message limits and formatting.
6
6
  */
7
7
  import { blocksToPlainText } from './renderer.js';
8
+ import { truncateBlocks } from './shared-formatter.js';
8
9
  /**
9
10
  * Telegram message length limit (hard limit: 4096 characters).
10
11
  */
@@ -79,27 +80,10 @@ function blockToTelegramHtml(block, opts) {
79
80
  * Truncates content if necessary and adds ellipsis.
80
81
  */
81
82
  export function renderTelegramHtml(blocks, opts) {
82
- const maxLen = Math.max(256, Math.floor(opts?.maxLen ?? TELEGRAM_MAX_LEN));
83
- const parts = [];
84
- let used = 0;
85
- let truncated = false;
86
- for (const block of blocks) {
87
- const piece = blockToTelegramHtml(block, opts);
88
- const sep = parts.length ? '\n\n' : '';
89
- const add = sep + piece;
90
- if (used + add.length > maxLen) {
91
- truncated = true;
92
- break;
93
- }
94
- parts.push(add);
95
- used += add.length;
96
- }
97
- let out = parts.join('');
98
- if (truncated && out.length + 2 <= maxLen)
99
- out += '\n…';
100
- if (!out.trim())
101
- out = '⏳ Thinking...';
102
- return out;
83
+ return truncateBlocks(blocks, blockToTelegramHtml, {
84
+ maxLen: opts?.maxLen ?? TELEGRAM_MAX_LEN,
85
+ fallback: '⏳ Thinking...',
86
+ });
103
87
  }
104
88
  /**
105
89
  * Fallback: render blocks to plain text for very long messages.
@@ -1 +1 @@
1
- {"version":3,"file":"telegram-renderer.js","sourceRoot":"","sources":["../../../src/bot/ux/telegram-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telegram-renderer.js","sourceRoot":"","sources":["../../../src/bot/ux/telegram-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AASrC;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAE,IAA4B;IACvE,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,gBAAgB,CAAC;IAEhD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;gBAC5B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,CAAC;YAED,IAAI,SAAS,GAAG,OAAO,CAAC;YACxB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI;gBAAE,SAAS,GAAG,MAAM,SAAS,MAAM,CAAC;YAC1D,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM;gBAAE,SAAS,GAAG,MAAM,SAAS,MAAM,CAAC;YAC5D,IAAI,KAAK,CAAC,MAAM,EAAE,SAAS;gBAAE,SAAS,GAAG,SAAS,SAAS,SAAS,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI;gBAAE,SAAS,GAAG,SAAS,SAAS,SAAS,CAAC;YAChE,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBACxB,8EAA8E;gBAC9E,SAAS,GAAG,SAAS,SAAS,SAAS,CAAC;YAC1C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC1C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,KAAK,GAAG,OAAO,CAAC;QACzB,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC1C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC;gBAClC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACtD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,sBAAsB,OAAO,EAAE,CAAC;QACzC,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC;YACjD,OAAO,MAAM,OAAO,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC;QACnJ,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvE,OAAO,QAAQ,IAAI,QAAQ,CAAC;QAC9B,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,IAA4B;IAChF,OAAO,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE;QACjD,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,gBAAgB;QACxC,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,IAA4B;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAC3E,IAAI,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,IAAI,GAAG,eAAe,CAAC;IAEzC,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/client.js CHANGED
@@ -2,9 +2,27 @@ import fsSync from 'node:fs';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { setTimeout as delay } from 'node:timers/promises';
5
+ import { Agent } from 'undici';
5
6
  import { asError, getRetryDelayMs, isConnRefused, isConnTimeout, isFetchFailed, makeClientError, } from './client/error-utils.js';
6
7
  import { BackpressureMonitor, RateLimiter } from './client/pressure.js';
7
8
  export { BackpressureMonitor, RateLimiter } from './client/pressure.js';
9
+ // ── Persistent connection pool ───────────────────────────────────────────
10
+ // Reuses TCP+TLS connections across requests to avoid the overhead of
11
+ // handshake negotiation on every API call. Supports HTTP/2 multiplexing
12
+ // when the server advertises it (e.g., llama-server, OpenAI, Anthropic).
13
+ //
14
+ // ZeroClaw does this via reqwest::Client with connection pooling;
15
+ // we use undici's Agent which backs Node's global fetch().
16
+ const pooledAgent = new Agent({
17
+ keepAliveTimeout: 30_000, // Keep idle connections alive for 30s
18
+ keepAliveMaxTimeout: 120_000, // Max keep-alive for any connection
19
+ connections: 16, // Max connections per origin
20
+ pipelining: 1, // HTTP/1.1 pipelining depth
21
+ allowH2: true, // Negotiate HTTP/2 when available
22
+ connect: {
23
+ rejectUnauthorized: true, // Enforce TLS verification
24
+ },
25
+ });
8
26
  export class OpenAIClient {
9
27
  endpoint;
10
28
  apiKey;
@@ -353,7 +371,12 @@ export class OpenAIClient {
353
371
  chainedAbort?.addEventListener('abort', onCallerAbort, { once: true });
354
372
  const timer = setTimeout(() => ac.abort(), connTimeoutMs);
355
373
  try {
356
- const res = await fetch(url, { ...init, signal: ac.signal });
374
+ const res = await fetch(url, {
375
+ ...init,
376
+ signal: ac.signal,
377
+ // @ts-expect-error -- undici dispatcher is not in the standard RequestInit type
378
+ dispatcher: pooledAgent,
379
+ });
357
380
  clearTimeout(timer);
358
381
  return res;
359
382
  }
@@ -692,19 +715,40 @@ export class OpenAIClient {
692
715
  const { value, done } = result;
693
716
  if (done)
694
717
  break;
695
- buf += decoder.decode(value, { stream: true });
718
+ // ── Optimized SSE parsing ──────────────────────────────────
719
+ // Instead of buf += decoder.decode(value), which creates a new
720
+ // string on every chunk, we check if the chunk contains a complete
721
+ // frame boundary first. If the buffer is empty and the chunk
722
+ // contains no frame boundary, we can skip the concat entirely
723
+ // for partial-line chunks (common with fast local models).
724
+ const decoded = decoder.decode(value, { stream: true });
725
+ // Fast path: if buffer is empty and no frame boundary in this chunk,
726
+ // just assign (avoid string concat allocation)
727
+ if (buf.length === 0) {
728
+ buf = decoded;
729
+ }
730
+ else {
731
+ buf += decoded;
732
+ }
696
733
  while (true) {
697
734
  const idx = buf.indexOf('\n\n');
698
735
  if (idx === -1)
699
736
  break;
700
737
  const frame = buf.slice(0, idx);
701
738
  buf = buf.slice(idx + 2);
702
- const lines = frame.split('\n');
703
- for (const line of lines) {
704
- const m = /^data:\s*(.*)$/.exec(line);
705
- if (!m)
739
+ // ── Fast SSE line parser ─────────────────────────────────
740
+ // Parse `data: ...` lines without splitting the entire frame
741
+ // into an array first. For single-data-line frames (the common
742
+ // case), this avoids an array allocation entirely.
743
+ let searchStart = 0;
744
+ while (searchStart < frame.length) {
745
+ const lineEnd = frame.indexOf('\n', searchStart);
746
+ const line = lineEnd === -1 ? frame.slice(searchStart) : frame.slice(searchStart, lineEnd);
747
+ searchStart = lineEnd === -1 ? frame.length : lineEnd + 1;
748
+ // Only process "data: ..." lines (skip event:, id:, etc.)
749
+ if (!line.startsWith('data:'))
706
750
  continue;
707
- const data = m[1];
751
+ const data = line.slice(5).trimStart();
708
752
  if (data === '[DONE]') {
709
753
  const doneResult = this.finalizeStreamAggregate(agg, toolIdByIndex, toolNameByIndex, toolArgsByIndex);
710
754
  const totalMs = Date.now() - reqStart;