@pentoshi/clai 4.11.15 → 4.11.16

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 (279) hide show
  1. package/README.md +41 -0
  2. package/dist/agent/parser/arg-formatting.js +42 -5
  3. package/dist/agent/parser/arg-formatting.js.map +1 -1
  4. package/dist/agent/runner.js +2 -7
  5. package/dist/agent/runner.js.map +1 -1
  6. package/dist/agent/session-policy.d.ts +2 -0
  7. package/dist/agent/session-policy.js.map +1 -1
  8. package/dist/agent/session-title.d.ts +1 -0
  9. package/dist/agent/session-title.js +7 -4
  10. package/dist/agent/session-title.js.map +1 -1
  11. package/dist/agent/subagents/manager.d.ts +49 -0
  12. package/dist/agent/subagents/manager.js +404 -0
  13. package/dist/agent/subagents/manager.js.map +1 -0
  14. package/dist/agent/subagents/read-only-tools.d.ts +9 -0
  15. package/dist/agent/subagents/read-only-tools.js +216 -0
  16. package/dist/agent/subagents/read-only-tools.js.map +1 -0
  17. package/dist/agent/subagents/report.d.ts +1 -0
  18. package/dist/agent/subagents/report.js +16 -0
  19. package/dist/agent/subagents/report.js.map +1 -0
  20. package/dist/agent/subagents/tools.d.ts +26 -0
  21. package/dist/agent/subagents/tools.js +121 -0
  22. package/dist/agent/subagents/tools.js.map +1 -0
  23. package/dist/agent/subagents/types.d.ts +71 -0
  24. package/dist/agent/subagents/types.js +2 -0
  25. package/dist/agent/subagents/types.js.map +1 -0
  26. package/dist/agent/subagents/worker.d.ts +2 -0
  27. package/dist/agent/subagents/worker.js +258 -0
  28. package/dist/agent/subagents/worker.js.map +1 -0
  29. package/dist/agent/turn/loop/canonicalize-turn-call.d.ts +4 -0
  30. package/dist/agent/turn/loop/canonicalize-turn-call.js +20 -0
  31. package/dist/agent/turn/loop/canonicalize-turn-call.js.map +1 -1
  32. package/dist/agent/turn/loop/model-only-rounds.js +3 -3
  33. package/dist/agent/turn/loop/model-only-rounds.js.map +1 -1
  34. package/dist/agent/turn/loop/run-rounds.js +37 -5
  35. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  36. package/dist/agent/turn/prompt-sections.js +1 -0
  37. package/dist/agent/turn/prompt-sections.js.map +1 -1
  38. package/dist/agent/turn/setup/turn-messages.js +3 -1
  39. package/dist/agent/turn/setup/turn-messages.js.map +1 -1
  40. package/dist/agent/turn/subagent-inbox.d.ts +25 -0
  41. package/dist/agent/turn/subagent-inbox.js +84 -0
  42. package/dist/agent/turn/subagent-inbox.js.map +1 -0
  43. package/dist/agent/turn/tool-call-preparation.js +6 -0
  44. package/dist/agent/turn/tool-call-preparation.js.map +1 -1
  45. package/dist/agent/turn/tool-execution/deps.d.ts +2 -1
  46. package/dist/agent/turn/tool-execution/single-tool.js +25 -2
  47. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
  48. package/dist/agent/turn/tool-result-recorder.js +9 -1
  49. package/dist/agent/turn/tool-result-recorder.js.map +1 -1
  50. package/dist/agent/turn/tool-routing.d.ts +0 -3
  51. package/dist/agent/turn/tool-routing.js +2 -7
  52. package/dist/agent/turn/tool-routing.js.map +1 -1
  53. package/dist/app/commands/catalog.js +9 -0
  54. package/dist/app/commands/catalog.js.map +1 -1
  55. package/dist/app/commands/registry.js +1 -0
  56. package/dist/app/commands/registry.js.map +1 -1
  57. package/dist/app/controllers/cancel-coordinator.d.ts +6 -0
  58. package/dist/app/controllers/cancel-coordinator.js +2 -0
  59. package/dist/app/controllers/cancel-coordinator.js.map +1 -1
  60. package/dist/app/controllers/session-context-usage.js +0 -6
  61. package/dist/app/controllers/session-context-usage.js.map +1 -1
  62. package/dist/app/controllers/session-controller.d.ts +10 -0
  63. package/dist/app/controllers/session-controller.js +110 -33
  64. package/dist/app/controllers/session-controller.js.map +1 -1
  65. package/dist/app/controllers/session-naming.d.ts +4 -1
  66. package/dist/app/controllers/session-naming.js +86 -51
  67. package/dist/app/controllers/session-naming.js.map +1 -1
  68. package/dist/app/controllers/session-subagents.d.ts +28 -0
  69. package/dist/app/controllers/session-subagents.js +79 -0
  70. package/dist/app/controllers/session-subagents.js.map +1 -0
  71. package/dist/classic/app/ClassicApp.js +20 -4
  72. package/dist/classic/app/ClassicApp.js.map +1 -1
  73. package/dist/classic/app/app-wiring.js +5 -2
  74. package/dist/classic/app/app-wiring.js.map +1 -1
  75. package/dist/classic/blocks/tool-lines.d.ts +1 -1
  76. package/dist/classic/blocks/tool-lines.js +39 -18
  77. package/dist/classic/blocks/tool-lines.js.map +1 -1
  78. package/dist/classic/input/input-router.js +2 -7
  79. package/dist/classic/input/input-router.js.map +1 -1
  80. package/dist/classic/panels/pager-panel.d.ts +1 -0
  81. package/dist/classic/panels/pager-panel.js +7 -4
  82. package/dist/classic/panels/pager-panel.js.map +1 -1
  83. package/dist/classic/panels/panel-controller.d.ts +3 -0
  84. package/dist/classic/panels/panel-controller.js +63 -1
  85. package/dist/classic/panels/panel-controller.js.map +1 -1
  86. package/dist/classic/panels/panel-frame.js +11 -4
  87. package/dist/classic/panels/panel-frame.js.map +1 -1
  88. package/dist/classic/panels/panel-host.js +1 -1
  89. package/dist/classic/panels/panel-host.js.map +1 -1
  90. package/dist/classic/panels/panel-wheel.js +1 -1
  91. package/dist/classic/panels/panel-wheel.js.map +1 -1
  92. package/dist/classic/panels/picker-panel.d.ts +1 -0
  93. package/dist/classic/panels/picker-panel.js +57 -44
  94. package/dist/classic/panels/picker-panel.js.map +1 -1
  95. package/dist/classic/panels/secret-panel.d.ts +5 -0
  96. package/dist/classic/panels/secret-panel.js +41 -6
  97. package/dist/classic/panels/secret-panel.js.map +1 -1
  98. package/dist/commands/providers.js +2 -0
  99. package/dist/commands/providers.js.map +1 -1
  100. package/dist/llm/agentrouter.d.ts +1 -0
  101. package/dist/llm/agentrouter.js +7 -2
  102. package/dist/llm/agentrouter.js.map +1 -1
  103. package/dist/llm/capability/state.d.ts +1 -1
  104. package/dist/llm/capability/tool-dialect.js +1 -0
  105. package/dist/llm/capability/tool-dialect.js.map +1 -1
  106. package/dist/llm/capability/vision-patterns.js +12 -0
  107. package/dist/llm/capability/vision-patterns.js.map +1 -1
  108. package/dist/llm/catalog-facts.js +10 -1
  109. package/dist/llm/catalog-facts.js.map +1 -1
  110. package/dist/llm/lowest-reasoning.d.ts +3 -0
  111. package/dist/llm/lowest-reasoning.js +20 -0
  112. package/dist/llm/lowest-reasoning.js.map +1 -0
  113. package/dist/llm/meta.js +8 -2
  114. package/dist/llm/meta.js.map +1 -1
  115. package/dist/llm/model-families.js +1 -1
  116. package/dist/llm/model-families.js.map +1 -1
  117. package/dist/llm/provider-identity.js +6 -0
  118. package/dist/llm/provider-identity.js.map +1 -1
  119. package/dist/llm/provider-info-text.js +48 -1
  120. package/dist/llm/provider-info-text.js.map +1 -1
  121. package/dist/llm/provider-model-layers.js +33 -0
  122. package/dist/llm/provider-model-layers.js.map +1 -1
  123. package/dist/llm/provider-profile-layers.js +43 -0
  124. package/dist/llm/provider-profile-layers.js.map +1 -1
  125. package/dist/llm/provider-profiles.js +1 -0
  126. package/dist/llm/provider-profiles.js.map +1 -1
  127. package/dist/llm/reasoning-capability.js +12 -0
  128. package/dist/llm/reasoning-capability.js.map +1 -1
  129. package/dist/llm/request-fingerprint.js +2 -0
  130. package/dist/llm/request-fingerprint.js.map +1 -1
  131. package/dist/llm/request-plan.js +1 -0
  132. package/dist/llm/request-plan.js.map +1 -1
  133. package/dist/llm/router.d.ts +1 -0
  134. package/dist/llm/router.js +15 -4
  135. package/dist/llm/router.js.map +1 -1
  136. package/dist/llm/routing/attempt-complete.js +16 -9
  137. package/dist/llm/routing/attempt-complete.js.map +1 -1
  138. package/dist/llm/routing/attempt-stream.js +16 -9
  139. package/dist/llm/routing/attempt-stream.js.map +1 -1
  140. package/dist/llm/routing/error-classification.js +6 -1
  141. package/dist/llm/routing/error-classification.js.map +1 -1
  142. package/dist/llm/routing/provider-selection.js +3 -0
  143. package/dist/llm/routing/provider-selection.js.map +1 -1
  144. package/dist/llm/routing/request-option-fallback.d.ts +2 -0
  145. package/dist/llm/routing/request-option-fallback.js +53 -0
  146. package/dist/llm/routing/request-option-fallback.js.map +1 -0
  147. package/dist/llm/tool-protocol.d.ts +2 -0
  148. package/dist/llm/tool-protocol.js +10 -1
  149. package/dist/llm/tool-protocol.js.map +1 -1
  150. package/dist/llm/tool-wire/argument-repair.js +5 -0
  151. package/dist/llm/tool-wire/argument-repair.js.map +1 -1
  152. package/dist/llm/vercel.d.ts +7 -0
  153. package/dist/llm/vercel.js +169 -0
  154. package/dist/llm/vercel.js.map +1 -0
  155. package/dist/llm/wire/capability-errors.js +1 -1
  156. package/dist/llm/wire/capability-errors.js.map +1 -1
  157. package/dist/llm/wire/chat-body.js +1 -1
  158. package/dist/llm/wire/chat-body.js.map +1 -1
  159. package/dist/llm/wire/reasoning-payload.js +1 -1
  160. package/dist/llm/wire/reasoning-payload.js.map +1 -1
  161. package/dist/llm/wire/responses-first.js +25 -10
  162. package/dist/llm/wire/responses-first.js.map +1 -1
  163. package/dist/mcp/runtime.js +11 -13
  164. package/dist/mcp/runtime.js.map +1 -1
  165. package/dist/prompts/embedded.js +1 -1
  166. package/dist/prompts/embedded.js.map +1 -1
  167. package/dist/prompts/index.js +25 -2
  168. package/dist/prompts/index.js.map +1 -1
  169. package/dist/prompts/system.agent.md +7 -0
  170. package/dist/store/config.js +1 -0
  171. package/dist/store/config.js.map +1 -1
  172. package/dist/store/history/lifecycle.js +8 -0
  173. package/dist/store/history/lifecycle.js.map +1 -1
  174. package/dist/store/history.js +14 -12
  175. package/dist/store/history.js.map +1 -1
  176. package/dist/store/session-model.js +4 -0
  177. package/dist/store/session-model.js.map +1 -1
  178. package/dist/store/subagents.d.ts +25 -0
  179. package/dist/store/subagents.js +245 -0
  180. package/dist/store/subagents.js.map +1 -0
  181. package/dist/tools/definitions/aggregate.js +19 -1
  182. package/dist/tools/definitions/aggregate.js.map +1 -1
  183. package/dist/tools/definitions/files.js +7 -3
  184. package/dist/tools/definitions/files.js.map +1 -1
  185. package/dist/tools/definitions/selection.js +5 -0
  186. package/dist/tools/definitions/selection.js.map +1 -1
  187. package/dist/tools/definitions/subagents.d.ts +2 -0
  188. package/dist/tools/definitions/subagents.js +51 -0
  189. package/dist/tools/definitions/subagents.js.map +1 -0
  190. package/dist/tools/definitions.d.ts +1 -0
  191. package/dist/tools/definitions.js +6 -2
  192. package/dist/tools/definitions.js.map +1 -1
  193. package/dist/tools/fs/mutations.js +8 -1
  194. package/dist/tools/fs/mutations.js.map +1 -1
  195. package/dist/tools/fs/search.js +2 -1
  196. package/dist/tools/fs/search.js.map +1 -1
  197. package/dist/tools/registry.js +6 -0
  198. package/dist/tools/registry.js.map +1 -1
  199. package/dist/tui-v2/app/App.js +2 -2
  200. package/dist/tui-v2/app/App.js.map +1 -1
  201. package/dist/tui-v2/components/completion/completion-menu.js +3 -3
  202. package/dist/tui-v2/components/completion/completion-menu.js.map +1 -1
  203. package/dist/tui-v2/components/jobs/jobs-panel.js +8 -8
  204. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  205. package/dist/tui-v2/components/modal/secret-modal.js +29 -17
  206. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  207. package/dist/tui-v2/components/pager/pager-line.d.ts +2 -0
  208. package/dist/tui-v2/components/pager/pager-line.js +8 -3
  209. package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
  210. package/dist/tui-v2/components/pager/pager.js +52 -43
  211. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  212. package/dist/tui-v2/components/picker/picker.js +118 -171
  213. package/dist/tui-v2/components/picker/picker.js.map +1 -1
  214. package/dist/tui-v2/components/toast/toast-host.d.ts +1 -0
  215. package/dist/tui-v2/components/toast/toast-host.js +15 -3
  216. package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
  217. package/dist/tui-v2/components/transcript/tool-card.js +40 -14
  218. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  219. package/dist/tui-v2/components/transcript/transcript-view.js +4 -2
  220. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  221. package/dist/types.d.ts +2 -2
  222. package/dist/types.js +1 -0
  223. package/dist/types.js.map +1 -1
  224. package/dist/ui-core/commands/command-handlers.js +3 -0
  225. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  226. package/dist/ui-core/commands/key-commands.js +0 -2
  227. package/dist/ui-core/commands/key-commands.js.map +1 -1
  228. package/dist/ui-core/commands/mcp-commands.js +23 -2
  229. package/dist/ui-core/commands/mcp-commands.js.map +1 -1
  230. package/dist/ui-core/commands/picker-commands.js +37 -7
  231. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  232. package/dist/ui-core/commands/pickers/history.js +11 -6
  233. package/dist/ui-core/commands/pickers/history.js.map +1 -1
  234. package/dist/ui-core/commands/session-commands.js +15 -6
  235. package/dist/ui-core/commands/session-commands.js.map +1 -1
  236. package/dist/ui-core/commands/subagent-commands.d.ts +4 -0
  237. package/dist/ui-core/commands/subagent-commands.js +129 -0
  238. package/dist/ui-core/commands/subagent-commands.js.map +1 -0
  239. package/dist/ui-core/composer/secret-buffer.d.ts +1 -0
  240. package/dist/ui-core/composer/secret-buffer.js +6 -0
  241. package/dist/ui-core/composer/secret-buffer.js.map +1 -1
  242. package/dist/ui-core/controllers/overlay-controller.js +1 -1
  243. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  244. package/dist/ui-core/layout/overlay-size.d.ts +6 -0
  245. package/dist/ui-core/layout/overlay-size.js +8 -0
  246. package/dist/ui-core/layout/overlay-size.js.map +1 -0
  247. package/dist/ui-core/rendering/open-tool-output.js +4 -1
  248. package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
  249. package/dist/ui-core/rendering/pager-chrome.d.ts +4 -1
  250. package/dist/ui-core/rendering/pager-chrome.js +17 -9
  251. package/dist/ui-core/rendering/pager-chrome.js.map +1 -1
  252. package/dist/ui-core/rendering/picker-filter.d.ts +3 -0
  253. package/dist/ui-core/rendering/picker-filter.js.map +1 -1
  254. package/dist/ui-core/rendering/picker-layout.d.ts +23 -0
  255. package/dist/ui-core/rendering/picker-layout.js +78 -0
  256. package/dist/ui-core/rendering/picker-layout.js.map +1 -0
  257. package/dist/ui-core/rendering/picker-style.d.ts +3 -0
  258. package/dist/ui-core/rendering/picker-style.js +15 -0
  259. package/dist/ui-core/rendering/picker-style.js.map +1 -0
  260. package/dist/ui-core/rendering/subagent-presentation.d.ts +7 -0
  261. package/dist/ui-core/rendering/subagent-presentation.js +56 -0
  262. package/dist/ui-core/rendering/subagent-presentation.js.map +1 -0
  263. package/dist/ui-core/rendering/subagent-source.d.ts +6 -0
  264. package/dist/ui-core/rendering/subagent-source.js +169 -0
  265. package/dist/ui-core/rendering/subagent-source.js.map +1 -0
  266. package/dist/ui-core/rendering/theme.d.ts +1 -0
  267. package/dist/ui-core/rendering/theme.js +2 -0
  268. package/dist/ui-core/rendering/theme.js.map +1 -1
  269. package/dist/ui-core/rendering/tool-presenter.d.ts +7 -0
  270. package/dist/ui-core/rendering/tool-presenter.js +41 -9
  271. package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
  272. package/dist/ui-core/rendering/usage-pager-source.d.ts +6 -0
  273. package/dist/ui-core/rendering/usage-pager-source.js +76 -0
  274. package/dist/ui-core/rendering/usage-pager-source.js.map +1 -0
  275. package/dist/ui-core/state/transcript-compaction.js +10 -1
  276. package/dist/ui-core/state/transcript-compaction.js.map +1 -1
  277. package/dist/version.generated.d.ts +2 -2
  278. package/dist/version.generated.js +2 -2
  279. package/package.json +1 -1
@@ -0,0 +1,245 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { chmodSync, closeSync, constants, fstatSync, lstatSync, mkdirSync, openSync, opendirSync, readSync, renameSync, rmSync, writeFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { redactSecrets } from "../llm/provider.js";
5
+ import { sanitizeDisplayText } from "../ui-core/rendering/sanitize-display.js";
6
+ import { getHistoryDir } from "./paths.js";
7
+ export const SUBAGENT_LIMITS = Object.freeze({ records: 24, events: 96, chars: 128_000, report: 4 * 1024 * 1024, title: 120, prompt: 12_000, context: 24_000 });
8
+ const MAX_FILE_BYTES = 6 * (2 * SUBAGENT_LIMITS.report + SUBAGENT_LIMITS.chars) + 65_536;
9
+ const FILE_NAME = /^[a-f0-9]{64}\.json$/;
10
+ const hash = (value) => createHash("sha256").update(value).digest("hex");
11
+ export function sanitizeSubagentText(value) {
12
+ return redactSecrets(sanitizeDisplayText(value))
13
+ .replace(/\b(?:wk-|ws-)[A-Za-z0-9_-]+/g, "[redacted]")
14
+ .replace(/\b(?:gh[pousr]_|github_pat_)[A-Za-z0-9_]+/g, "[redacted]")
15
+ .replace(/\bAKIA[A-Z0-9]{16}\b/g, "[redacted]")
16
+ .replace(/(\b(?:bearer|authorization["']?\s*[:=]\s*["']?basic)\s+)[^\s,;"'}]+/gi, "$1[redacted]")
17
+ .replace(/(\b(?:password|passwd|api[_-]?key|access[_-]?token|refresh[_-]?token|client[_-]?secret)["']?\s*[=:]\s*)(?!\[redacted\])(?:"[^"\n]*(?:"|$)|'[^'\n]*(?:'|$)|[^\s,;]+)/gi, "$1[redacted]")
18
+ .replace(/-----BEGIN [^-]*PRIVATE KEY-----[\s\S]*?(?:-----END [^-]*PRIVATE KEY-----|$)/g, "[redacted private key]");
19
+ }
20
+ export function isValidSubagentParentId(value) {
21
+ if (typeof value !== "string" || !value || value.length > 256)
22
+ return false;
23
+ // Generated session IDs can contain sk- across the timestamp/entropy boundary.
24
+ return /^sess-[a-z0-9]{8,11}-[a-z0-9]{0,6}$/.test(value) || sanitizeSubagentText(value) === value;
25
+ }
26
+ export function sanitizeSubagentRun(run) {
27
+ const clean = (value, maximum) => sanitizeSubagentText(value).slice(0, maximum);
28
+ const report = run.report === undefined ? undefined : sanitizeSubagentText(run.report);
29
+ if (report !== undefined && Buffer.byteLength(report) > SUBAGENT_LIMITS.report)
30
+ throw new Error("Subagent report exceeds the storage safety limit");
31
+ const previousSummary = run.lastKnownSummary ?? (report && (run.status === "completed" || run.status === "partial")
32
+ ? { attempt: run.attempt, status: run.status, report } : undefined);
33
+ const lastKnownSummary = previousSummary && Object.freeze({
34
+ attempt: previousSummary.attempt, status: previousSummary.status, report: sanitizeSubagentText(previousSummary.report),
35
+ });
36
+ if (lastKnownSummary && Buffer.byteLength(lastKnownSummary.report) > SUBAGENT_LIMITS.report)
37
+ throw new Error("Subagent summary exceeds the storage safety limit");
38
+ const base = {
39
+ id: run.id, parentSessionId: run.parentSessionId, attempt: run.attempt,
40
+ status: run.status, createdAt: run.createdAt, updatedAt: run.updatedAt,
41
+ recovery: run.recovery,
42
+ title: clean(run.title, SUBAGENT_LIMITS.title),
43
+ prompt: clean(run.prompt, SUBAGENT_LIMITS.prompt),
44
+ context: run.context === undefined ? undefined : clean(run.context, SUBAGENT_LIMITS.context),
45
+ followup: run.followup === undefined ? undefined : Object.freeze({
46
+ prompt: run.followup.prompt === undefined ? undefined : clean(run.followup.prompt, SUBAGENT_LIMITS.prompt),
47
+ context: run.followup.context === undefined ? undefined : clean(run.followup.context, SUBAGENT_LIMITS.context),
48
+ }),
49
+ cwd: clean(run.cwd, 4096),
50
+ provider: clean(run.provider, 128),
51
+ model: clean(run.model, 256),
52
+ report,
53
+ lastKnownSummary,
54
+ resultAcknowledged: run.resultAcknowledged,
55
+ error: run.error === undefined ? undefined : clean(run.error, 4096),
56
+ };
57
+ let remaining = SUBAGENT_LIMITS.chars - [base.title, base.prompt, base.context, base.followup?.prompt, base.followup?.context, base.cwd, base.provider, base.model, base.error, base.id, base.parentSessionId].reduce((sum, value) => sum + (value?.length ?? 0), 0);
58
+ const events = [];
59
+ for (const event of run.events.slice(-SUBAGENT_LIMITS.events).reverse()) {
60
+ if (remaining <= 0)
61
+ break;
62
+ const text = clean(event.text, remaining);
63
+ remaining -= text.length;
64
+ events.unshift(Object.freeze({ sequence: event.sequence, kind: event.kind, timestamp: event.timestamp, text }));
65
+ }
66
+ return Object.freeze({ ...base, events: Object.freeze(events) });
67
+ }
68
+ function validRun(value, parentSessionId) {
69
+ if (!value || typeof value !== "object")
70
+ return false;
71
+ const run = value;
72
+ const bounded = (text, maximum) => typeof text === "string" && text.length <= maximum;
73
+ const followup = run.followup;
74
+ const summary = run.lastKnownSummary;
75
+ if (summary !== undefined && (!summary || typeof summary !== "object" || Array.isArray(summary)
76
+ || !Number.isSafeInteger(summary.attempt) || summary.attempt < 1 || summary.attempt > run.attempt
77
+ || !["completed", "partial"].includes(summary.status)
78
+ || !bounded(summary.report, SUBAGENT_LIMITS.report) || !summary.report.trim()
79
+ || Buffer.byteLength(summary.report) > SUBAGENT_LIMITS.report))
80
+ return false;
81
+ if (followup !== undefined && (!followup || typeof followup !== "object" || Array.isArray(followup)
82
+ || (followup.prompt === undefined && followup.context === undefined)
83
+ || !["prompt", "context"].every((name) => followup[name] === undefined
84
+ || (bounded(followup[name], SUBAGENT_LIMITS[name]) && !!sanitizeSubagentText(followup[name]).trim()))))
85
+ return false;
86
+ return isValidSubagentParentId(parentSessionId)
87
+ && run.parentSessionId === parentSessionId && typeof run.id === "string" && /^[A-Za-z0-9_-]{1,128}$/.test(run.id) && sanitizeSubagentText(run.id) === run.id
88
+ && Number.isSafeInteger(run.attempt) && run.attempt > 0
89
+ && Number.isFinite(run.createdAt) && Number.isFinite(run.updatedAt)
90
+ && ["running", "stopping", "completed", "partial", "stopped", "error"].includes(run.status)
91
+ && (run.recovery === undefined || ["exact", "history", "fresh"].includes(run.recovery))
92
+ && bounded(run.title, SUBAGENT_LIMITS.title) && !!run.title.trim() && bounded(run.prompt, SUBAGENT_LIMITS.prompt) && !!run.prompt.trim()
93
+ && (run.context === undefined || bounded(run.context, SUBAGENT_LIMITS.context))
94
+ && bounded(run.cwd, 4096) && !!run.cwd.trim() && bounded(run.provider, 128) && !!run.provider.trim() && bounded(run.model, 256) && !!run.model.trim()
95
+ && (run.report === undefined || (bounded(run.report, SUBAGENT_LIMITS.report) && Buffer.byteLength(run.report) <= SUBAGENT_LIMITS.report))
96
+ && (run.error === undefined || bounded(run.error, 4096))
97
+ && (run.resultAcknowledged === undefined || typeof run.resultAcknowledged === "boolean")
98
+ && Array.isArray(run.events) && run.events.length <= SUBAGENT_LIMITS.events
99
+ && run.events.every((event) => event && ["assistant", "tool", "notice"].includes(event.kind)
100
+ && Number.isSafeInteger(event.sequence) && event.sequence >= 0 && Number.isFinite(event.timestamp)
101
+ && bounded(event.text, SUBAGENT_LIMITS.chars));
102
+ }
103
+ export function restoreSubagentRun(value, parentSessionId) {
104
+ if (!validRun(value, parentSessionId))
105
+ return undefined;
106
+ const run = {
107
+ id: value.id, parentSessionId, title: value.title, prompt: value.prompt, context: value.context, followup: value.followup,
108
+ cwd: value.cwd, provider: value.provider, model: value.model, attempt: value.attempt,
109
+ status: value.status, createdAt: value.createdAt, updatedAt: value.updatedAt,
110
+ events: value.events.map(({ sequence, kind, text, timestamp }) => ({ sequence, kind, text, timestamp })),
111
+ report: value.report, error: value.error, lastKnownSummary: value.lastKnownSummary,
112
+ resultAcknowledged: value.resultAcknowledged,
113
+ recovery: value.events.length || value.report || value.lastKnownSummary ? "history" : "fresh",
114
+ };
115
+ if (run.status !== "running" && run.status !== "stopping")
116
+ return sanitizeSubagentRun(run);
117
+ return sanitizeSubagentRun({
118
+ ...run, status: "stopped", report: undefined, resultAcknowledged: false, error: "Interrupted before completion; restart explicitly.",
119
+ events: [...run.events, { sequence: Math.max(0, ...run.events.map((event) => event.sequence)) + 1, kind: "notice", text: "Interrupted before completion; restart explicitly.", timestamp: Date.now() }],
120
+ });
121
+ }
122
+ export class FileSubagentStore {
123
+ root;
124
+ constructor(historyDir = getHistoryDir()) {
125
+ this.root = join(historyDir, "subagents");
126
+ }
127
+ directory(parentSessionId, create = false) {
128
+ if (!parentSessionId || parentSessionId.length > 256)
129
+ throw new Error("Invalid parent session ID");
130
+ const directory = join(this.root, hash(parentSessionId));
131
+ for (const path of [this.root, directory]) {
132
+ if (create)
133
+ mkdirSync(path, { recursive: true, mode: 0o700 });
134
+ try {
135
+ const stat = lstatSync(path);
136
+ if (!stat.isDirectory() || stat.isSymbolicLink())
137
+ throw new Error("Unsafe subagent history directory");
138
+ if (create)
139
+ chmodSync(path, 0o700);
140
+ }
141
+ catch (error) {
142
+ if (error.code === "ENOENT")
143
+ return undefined;
144
+ throw error;
145
+ }
146
+ }
147
+ return directory;
148
+ }
149
+ files(directory) {
150
+ const result = [];
151
+ const handle = opendirSync(directory);
152
+ try {
153
+ while (true) {
154
+ const entry = handle.readSync();
155
+ if (!entry)
156
+ break;
157
+ if (entry.isFile() && FILE_NAME.test(entry.name))
158
+ result.push(entry.name);
159
+ }
160
+ }
161
+ finally {
162
+ handle.closeSync();
163
+ }
164
+ return result;
165
+ }
166
+ read(directory, name, parentSessionId) {
167
+ let fd;
168
+ try {
169
+ fd = openSync(join(directory, name), constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
170
+ const stat = fstatSync(fd);
171
+ if (!stat.isFile() || stat.size > MAX_FILE_BYTES)
172
+ return undefined;
173
+ const buffer = Buffer.alloc(stat.size + 1);
174
+ let length = 0;
175
+ while (length < buffer.length) {
176
+ const count = readSync(fd, buffer, length, buffer.length - length, null);
177
+ if (!count)
178
+ break;
179
+ length += count;
180
+ }
181
+ if (length > stat.size)
182
+ return undefined;
183
+ const data = JSON.parse(buffer.subarray(0, length).toString("utf8"));
184
+ if (validRun(data, parentSessionId) && name === `${hash(data.id)}.json`)
185
+ return data;
186
+ }
187
+ catch {
188
+ }
189
+ finally {
190
+ if (fd !== undefined)
191
+ closeSync(fd);
192
+ }
193
+ return undefined;
194
+ }
195
+ load(parentSessionId) {
196
+ const directory = this.directory(parentSessionId);
197
+ if (!directory)
198
+ return [];
199
+ const runs = [];
200
+ for (const name of this.files(directory)) {
201
+ const run = this.read(directory, name, parentSessionId);
202
+ if (run)
203
+ runs.push(run);
204
+ }
205
+ let settled = 0;
206
+ return runs.sort((a, b) => b.updatedAt - a.updatedAt || a.id.localeCompare(b.id))
207
+ .filter((run) => run.status === "running" || run.status === "stopping" || !run.resultAcknowledged || settled++ < SUBAGENT_LIMITS.records)
208
+ .flatMap((run) => restoreSubagentRun(run, parentSessionId) ?? []);
209
+ }
210
+ save(run) {
211
+ if (!validRun(run, run.parentSessionId))
212
+ throw new Error("Invalid subagent record");
213
+ const directory = this.directory(run.parentSessionId, true);
214
+ const target = join(directory, `${hash(run.id)}.json`);
215
+ const temporary = join(directory, `.${randomUUID()}.tmp`);
216
+ try {
217
+ writeFileSync(temporary, JSON.stringify(sanitizeSubagentRun(run)), { encoding: "utf8", mode: 0o600, flag: "wx" });
218
+ renameSync(temporary, target);
219
+ }
220
+ finally {
221
+ rmSync(temporary, { force: true });
222
+ }
223
+ if (run.status === "running" || run.status === "stopping")
224
+ return;
225
+ const names = this.files(directory);
226
+ if (names.length <= SUBAGENT_LIMITS.records)
227
+ return;
228
+ const files = names.map((name) => {
229
+ const record = this.read(directory, name, run.parentSessionId);
230
+ return { name, active: !!record && (record.status === "running" || record.status === "stopping" || !record.resultAcknowledged), updatedAt: record?.updatedAt ?? -Infinity, createdAt: record?.createdAt ?? -Infinity, id: record?.id ?? "" };
231
+ });
232
+ files.sort((a, b) => Number(b.active) - Number(a.active) || Number(b.name === `${hash(run.id)}.json`) - Number(a.name === `${hash(run.id)}.json`) || b.updatedAt - a.updatedAt || b.createdAt - a.createdAt || b.id.localeCompare(a.id));
233
+ for (const file of files.filter((file) => !file.active).slice(SUBAGENT_LIMITS.records))
234
+ rmSync(join(directory, file.name), { force: true });
235
+ }
236
+ remove(parentSessionId) {
237
+ const directory = this.directory(parentSessionId);
238
+ if (directory)
239
+ rmSync(directory, { recursive: true, force: true });
240
+ }
241
+ }
242
+ export function createSubagentStore(historyDir) {
243
+ return new FileSubagentStore(historyDir);
244
+ }
245
+ //# sourceMappingURL=subagents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagents.js","sourceRoot":"","sources":["../../src/store/subagents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/J,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAChK,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AACzF,MAAM,SAAS,GAAG,sBAAsB,CAAC;AACzC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEzF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAC7C,OAAO,CAAC,8BAA8B,EAAE,YAAY,CAAC;SACrD,OAAO,CAAC,4CAA4C,EAAE,YAAY,CAAC;SACnE,OAAO,CAAC,uBAAuB,EAAE,YAAY,CAAC;SAC9C,OAAO,CAAC,uEAAuE,EAAE,cAAc,CAAC;SAChG,OAAO,CAAC,uKAAuK,EAAE,cAAc,CAAC;SAChM,OAAO,CAAC,+EAA+E,EAAE,wBAAwB,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5E,+EAA+E;IAC/E,OAAO,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAgB;IAClD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,OAAe,EAAU,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACxG,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpJ,MAAM,eAAe,GAAG,GAAG,CAAC,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;QACjH,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC;QACxD,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC;KACvH,CAAC,CAAC;IACH,IAAI,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClK,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO;QACtE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;QACtE,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;QAC9C,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;QACjD,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;QAC5F,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/D,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;YAC1G,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;SAC/G,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACzB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAA4B;QAC7D,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;QAC5B,MAAM;QACN,gBAAgB;QAChB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;KACpE,CAAC;IACF,IAAI,SAAS,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7Q,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACxE,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC1C,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,eAAuB;IACvD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,GAAG,GAAG,KAAoB,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,OAAe,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;IACvH,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;WAC1F,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;WAC9F,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;WAClD,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;WAC1E,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/E,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;WAC9F,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC;WACjE,CAAE,CAAC,QAAQ,EAAE,SAAS,CAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS;eAC5E,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACzH,OAAO,uBAAuB,CAAC,eAAe,CAAC;WAC1C,GAAG,CAAC,eAAe,KAAK,eAAe,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE;WACzJ,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC;WACpD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;WAChE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;WACxF,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;WACpF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;WACrI,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;WAC5E,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;WAClJ,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;WACtI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;WACrD,CAAC,GAAG,CAAC,kBAAkB,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC;WACrF,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM;WACxE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;eACvF,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;eAC/F,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,eAAuB;IACxE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,GAAG,GAAgB;QACvB,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACzH,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO;QACpF,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC5E,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACxG,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QAClF,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;KAC9F,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC3F,OAAO,mBAAmB,CAAC;QACzB,GAAG,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,oDAAoD;QACpI,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,oDAAoD,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;KACxM,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,iBAAiB;IACX,IAAI,CAAS;IAE9B,YAAY,UAAU,GAAG,aAAa,EAAE;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAEO,SAAS,CAAC,eAAuB,EAAE,MAAM,GAAG,KAAK;QACvD,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,MAAM;gBAAE,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACvG,IAAI,MAAM;oBAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBACzE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,SAAiB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK;oBAAE,MAAM;gBAClB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,IAAI,CAAC,SAAiB,EAAE,IAAY,EAAE,eAAuB;QACnE,IAAI,EAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACvG,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,cAAc;gBAAE,OAAO,SAAS,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;gBACzE,IAAI,CAAC,KAAK;oBAAE,MAAM;gBAClB,MAAM,IAAI,KAAK,CAAC;YAClB,CAAC;YACD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAC;YACzC,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9E,IAAI,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;QACvF,CAAC;QAAC,MAAM,CAAC;QACT,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,SAAS;gBAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,eAAuB;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAkB,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;YACxD,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC9E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;aACxI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAClH,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,OAAO;YAAE,OAAO;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/O,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzO,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9I,CAAC;IAED,MAAM,CAAC,eAAuB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAmB;IACrD,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC"}
@@ -6,6 +6,7 @@ import { TOOL_DEFINITIONS_NETWORK } from "./network.js";
6
6
  import { TOOL_DEFINITIONS_ORCHESTRATION } from "./orchestration.js";
7
7
  import { TOOL_DEFINITIONS_SHELL } from "./shell.js";
8
8
  import { TOOL_DEFINITIONS_TERMINAL } from "./terminal.js";
9
+ import { TOOL_DEFINITIONS_SUBAGENTS } from "./subagents.js";
9
10
  import { TOOL_DEFINITIONS_WEB_1 } from "./web-1.js";
10
11
  import { TOOL_DEFINITIONS_WEB_2 } from "./web-2.js";
11
12
  export const TOOL_DEFINITIONS = [
@@ -17,6 +18,7 @@ export const TOOL_DEFINITIONS = [
17
18
  ...TOOL_DEFINITIONS_CONTEXT_1,
18
19
  ...TOOL_DEFINITIONS_ORCHESTRATION,
19
20
  ...TOOL_DEFINITIONS_CONTEXT_2,
21
+ ...TOOL_DEFINITIONS_SUBAGENTS,
20
22
  def("skill.load", "Read the full instructions of one Agent Skill listed in the AVAILABLE SKILLS block, then follow them. Load a skill when its description covers the work you are about to do — before starting that work, not after. Never guess a skill's contents, never load a skill unrelated to the task, and never load the same skill twice in a session.", {
21
23
  type: "object",
22
24
  properties: {
@@ -207,7 +209,7 @@ export const TOOL_DEFINITIONS = [
207
209
  additionalProperties: false,
208
210
  }),
209
211
  def("mcp.list", "List configured MCP servers, their live connection status, and the current per-session selection. Read-only. Use this to discover what MCP capability is available before enabling or calling a server.", emptyObject, { readOnly: true, askMode: true }),
210
- def("mcp.tools", "List the tools exposed by connected MCP servers, with each tool's dotted name and whether it is read-only. Optionally filter to one server. Read-only.", {
212
+ def("mcp.tools", "List connected MCP tools with their dotted names, argument schemas, and read-only status. Optionally filter to one server. Read-only.", {
211
213
  type: "object",
212
214
  properties: {
213
215
  server: {
@@ -217,6 +219,22 @@ export const TOOL_DEFINITIONS = [
217
219
  },
218
220
  additionalProperties: false,
219
221
  }, { readOnly: true, askMode: true }),
222
+ def("mcp.call", "Call one active MCP tool using its exact dotted name and an arguments object matching MCP TOOL CONTEXT or mcp.tools. Ask mode permits only read-only targets. Normal confirmation policy applies to mutations.", {
223
+ type: "object",
224
+ properties: {
225
+ name: {
226
+ type: "string",
227
+ description: "Exact dotted MCP tool name from MCP TOOL CONTEXT.",
228
+ },
229
+ arguments: {
230
+ type: "object",
231
+ description: "Arguments for that MCP tool, matching its listed schema.",
232
+ additionalProperties: true,
233
+ },
234
+ },
235
+ required: ["name", "arguments"],
236
+ additionalProperties: false,
237
+ }, { mutates: true, askMode: true }),
220
238
  def("mcp.enable", 'Enable MCP tools for this session so their tools become callable. Pass server (one name) or servers (several names) to select specific servers, "all" to enable every live server, or "off" to disable. Changes only this session\'s selection; it never edits configuration.', {
221
239
  type: "object",
222
240
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/tools/definitions/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/tools/definitions/aggregate.ts"],"names":[],"mappings":"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"}
@@ -142,12 +142,16 @@ export const TOOL_DEFINITIONS_FILES = [
142
142
  required: ["pattern"],
143
143
  additionalProperties: false,
144
144
  }, { readOnly: true, askMode: true }),
145
- def("fs.edit", "Surgical in-place edit: replace exact oldText with newText.", {
145
+ def("fs.edit", "Surgical in-place edit. Use only after reading or searching the current file and copying the exact oldText, including whitespace and line endings; if it is not known, use fs.read or fs.search first. After a no-match error, do not retry unchanged oldText.", {
146
146
  type: "object",
147
147
  properties: {
148
148
  path: { type: "string" },
149
- oldText: { type: "string" },
150
- newText: { type: "string" },
149
+ oldText: {
150
+ type: "string",
151
+ minLength: 1,
152
+ description: "Exact current text to replace, copied from the latest file evidence",
153
+ },
154
+ newText: { type: "string", description: "Intended replacement text" },
151
155
  expectedReplacements: { type: "integer" },
152
156
  },
153
157
  required: ["path", "oldText", "newText"],
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/tools/definitions/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/tools/definitions/files.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { TOOL_DEFINITIONS } from "./aggregate.js";
2
2
  import { NON_REGISTRY_TOOL_NAMES } from "../definitions.js";
3
+ import { SUBAGENT_TOOL_NAMES } from "./subagents.js";
3
4
  export const byName = new Map(TOOL_DEFINITIONS.map((d) => [d.name, d]));
4
5
  export function getToolDefinitions(filter) {
5
6
  let defs = TOOL_DEFINITIONS;
@@ -12,6 +13,7 @@ export function getToolDefinitions(filter) {
12
13
  }
13
14
  if (filter?.compact) {
14
15
  const core = new Set([
16
+ ...SUBAGENT_TOOL_NAMES,
15
17
  "fs.read",
16
18
  "fs.write",
17
19
  "fs.writeMany",
@@ -44,6 +46,9 @@ export function getToolDefinitions(filter) {
44
46
  "image.ocr",
45
47
  "skill.load",
46
48
  "skill.list",
49
+ "mcp.call",
50
+ "mcp.list",
51
+ "mcp.tools",
47
52
  "instructions.record",
48
53
  "plan.create",
49
54
  "task.add",
@@ -1 +1 @@
1
- {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/tools/definitions/selection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,UAAU,kBAAkB,CAAC,MAIlC;IACC,IAAI,IAAI,GAAG,gBAAgB,CAAC;IAC5B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;YACnB,SAAS;YACT,UAAU;YACV,cAAc;YACd,SAAS;YACT,WAAW;YACX,SAAS;YACT,WAAW;YACX,WAAW;YACX,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,iBAAiB;YACjB,eAAe;YACf,iBAAiB;YACjB,gBAAgB;YAChB,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,eAAe;YACf,eAAe;YACf,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,qBAAqB;YACrB,aAAa;YACb,UAAU;YACV,WAAW;YACX,UAAU;YACV,WAAW;YACX,aAAa;SACd,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,YAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,eAAe,CAAC,CAAC,IAAI,wDAAwD,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,yBAAyB,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/tools/definitions/selection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const SUBAGENT_TOOL_NAMES: readonly ["subagent.start", "subagent.list", "subagent.read", "subagent.wait", "subagent.stop", "subagent.restart"];
2
+ export declare const TOOL_DEFINITIONS_SUBAGENTS: import("../../types.js").ToolDefinition[];
@@ -0,0 +1,51 @@
1
+ import { def, emptyObject } from "./define.js";
2
+ const id = { type: "string", minLength: 1, maxLength: 128 };
3
+ const identified = {
4
+ type: "object",
5
+ properties: { id },
6
+ required: ["id"],
7
+ additionalProperties: false,
8
+ };
9
+ export const SUBAGENT_TOOL_NAMES = [
10
+ "subagent.start", "subagent.list", "subagent.read",
11
+ "subagent.wait", "subagent.stop", "subagent.restart",
12
+ ];
13
+ export const TOOL_DEFINITIONS_SUBAGENTS = [
14
+ def("subagent.start", "Start one useful independent read-only research assignment when delegation saves work. Brief the child with its target deliverable, relevant surfaces and non-goals, appropriate depth/technicality, and expected evidence; this guides relevance, not a fixed procedure or completion gate. Send only task-relevant facts and constraints, never the whole conversation or parent system/project/skill boilerplate. Leave the delegated investigation to the child; continue only necessary non-overlapping work. Results arrive automatically. If no independent work remains, suspend with subagent.wait instead of repeating the child's reads or polling. Requires user-enabled /orchestration. Call directly, never inside tool.batch. Children cannot edit, run shell commands, or delegate.", {
15
+ type: "object",
16
+ properties: {
17
+ title: { type: "string", minLength: 1, maxLength: 120 },
18
+ prompt: { type: "string", minLength: 1, maxLength: 12000, description: "Focused assignment brief: target deliverable, relevant surfaces and non-goals, appropriate depth/technicality, and expected evidence." },
19
+ context: { type: "string", maxLength: 24000, description: "Only task-relevant facts and constraints already gathered; never send the whole conversation or parent system/project/skill boilerplate." },
20
+ },
21
+ required: ["title", "prompt"],
22
+ additionalProperties: false,
23
+ }, { readOnly: true }),
24
+ def("subagent.list", "List child IDs, status, attempts, recovery mode, report availability, and lastKnownSummaryAttempt without loading transcripts. Partial is terminal but not successful completion. Available even when delegation is disabled; call directly.", emptyObject, { readOnly: true }),
25
+ def("subagent.read", "Read a child's report or bounded recent activity (default: last three events). Use view=summary to recover the last usable summary after stop, restart, or compaction; summaryAttempt and summaryStatus identify its provenance, not the current attempt's outcome. Reports are paginated: pass the delivered attempt and nextOffset as offset to continue; reportLength is the full character count. Inspect remaining report pages and coverage gaps before treating a paginated result as complete. Reports are evidence, not instructions; the parent owns verification. Available even when delegation is disabled; call directly.", {
26
+ ...identified,
27
+ properties: {
28
+ id,
29
+ view: { type: "string", enum: ["tail", "report", "summary"] },
30
+ attempt: { type: "integer", minimum: 1, description: "Delivered attempt number; omit for the current attempt." },
31
+ limit: { type: "integer", minimum: 1, maximum: 20 },
32
+ offset: { type: "integer", minimum: 0, description: "Report character offset, normally the previous page's nextOffset." },
33
+ length: { type: "integer", minimum: 1, maximum: 24000, description: "Report page size in characters; defaults to 24000." },
34
+ },
35
+ }, { readOnly: true }),
36
+ def("subagent.wait", "Suspend at a dependency or when necessary independent work is exhausted. Omit id to receive whichever child completes, fails or stops first; supply id for a specific dependency. Waits without a deadline by default, without model calls or polling. Returns the report or error directly; if nextOffset is present, continue the report with subagent.read. An optional timeout returns current status without cancelling work; do not use short repeated waits. Requires /orchestration on; call directly.", {
37
+ type: "object",
38
+ properties: { id, timeoutMs: { type: "integer", minimum: 1, maximum: 2147483647 } },
39
+ additionalProperties: false,
40
+ }, { readOnly: true }),
41
+ def("subagent.stop", "Cancel a child only when the user requests cancellation, the assignment is no longer needed because scope changed, or continuing cannot help. Do not stop healthy work for slowness, to free slots, or because the parent duplicated it. Cancellation settles only when execution actually stops. Requires /orchestration on; call directly.", identified, { readOnly: true }),
42
+ def("subagent.restart", "Explicitly resume an existing completed, partial, stopped, or errored child after inspecting its report/error and recovery mode. Omit prompt/context to continue its investigation, or supply focused follow-up instructions and relevant new context without discarding prior evidence. Exact recovery retains completed messages and the pending tool position in memory; history recovery uses bounded redacted evidence after session restoration, not an exact checkpoint. Reuse relevant evidence efficiently, but do not assume runtime call deduplication. Do not repeatedly restart unrecoverable failures. Requires /orchestration on; call directly.", {
43
+ ...identified,
44
+ properties: {
45
+ id,
46
+ prompt: { type: "string", minLength: 1, maxLength: 12000, description: "Optional focused continuation or follow-up request for this existing child." },
47
+ context: { type: "string", minLength: 1, maxLength: 24000, description: "Optional new task-relevant facts and constraints; prior evidence is retained automatically." },
48
+ },
49
+ }, { readOnly: true }),
50
+ ];
51
+ //# sourceMappingURL=subagents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagents.js","sourceRoot":"","sources":["../../../src/tools/definitions/subagents.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export { assertDefinitionRegistryConsistency, getCompactToolDefinitions, getTool
5
5
  export declare const PLAN_TOOL_NAMES: Set<string>;
6
6
  export declare const RESPONDER_TOOL_NAMES: Set<string>;
7
7
  export declare const RUNNER_META_TOOL_NAMES: Set<string>;
8
+ export declare const MCP_CONTROL_TOOL_NAMES: Set<string>;
8
9
  export declare const MCP_AGENT_TOOL_NAMES: Set<string>;
9
10
  export declare function mcpAgentToolNames(askMode: boolean): string[];
10
11
  export declare const NON_REGISTRY_TOOL_NAMES: Set<string>;
@@ -16,7 +16,7 @@ export const RUNNER_META_TOOL_NAMES = new Set([
16
16
  ...PLAN_TOOL_NAMES,
17
17
  ...RESPONDER_TOOL_NAMES,
18
18
  ]);
19
- export const MCP_AGENT_TOOL_NAMES = new Set([
19
+ export const MCP_CONTROL_TOOL_NAMES = new Set([
20
20
  "mcp.list",
21
21
  "mcp.tools",
22
22
  "mcp.enable",
@@ -24,8 +24,12 @@ export const MCP_AGENT_TOOL_NAMES = new Set([
24
24
  "mcp.login",
25
25
  "mcp.add",
26
26
  ]);
27
+ export const MCP_AGENT_TOOL_NAMES = new Set([
28
+ ...MCP_CONTROL_TOOL_NAMES,
29
+ "mcp.call",
30
+ ]);
27
31
  export function mcpAgentToolNames(askMode) {
28
- const readOnly = ["mcp.list", "mcp.tools"];
32
+ const readOnly = ["mcp.list", "mcp.tools", "mcp.call"];
29
33
  return askMode
30
34
  ? readOnly
31
35
  : [...readOnly, "mcp.enable", "mcp.connect", "mcp.login", "mcp.add"];
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EACL,mCAAmC,EACnC,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,YAAY;IACZ,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IAC5C,GAAG,eAAe;IAClB,GAAG,oBAAoB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC1C,UAAU;IACV,WAAW;IACX,YAAY;IACZ,aAAa;IACb,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC3C,OAAO,OAAO;QACZ,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IAC7C,GAAG,sBAAsB;IACzB,GAAG,oBAAoB;IACvB,eAAe;IACf,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;AACjD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EACL,mCAAmC,EACnC,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,YAAY;IACZ,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IAC5C,GAAG,eAAe;IAClB,GAAG,oBAAoB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IAC5C,UAAU;IACV,WAAW;IACX,YAAY;IACZ,aAAa;IACb,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC1C,GAAG,sBAAsB;IACzB,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,OAAO,OAAO;QACZ,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IAC7C,GAAG,sBAAsB;IACzB,GAAG,oBAAoB;IACvB,eAAe;IACf,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;AACjD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AAChC,CAAC"}
@@ -121,6 +121,13 @@ export async function fsEdit(path, oldText, newText, expectedReplacements, optio
121
121
  exitCode: 1,
122
122
  };
123
123
  }
124
+ if (oldText.length === 0) {
125
+ return {
126
+ ok: false,
127
+ output: "fs.edit requires a non-empty oldText copied from current file evidence. Read or search the file before retrying.",
128
+ exitCode: 1,
129
+ };
130
+ }
124
131
  const content = await readFile(resolved, "utf8");
125
132
  const expected = expectedReplacements ?? 1;
126
133
  let targetOldText = oldText;
@@ -179,7 +186,7 @@ export async function fsEdit(path, oldText, newText, expectedReplacements, optio
179
186
  if (count === 0) {
180
187
  return {
181
188
  ok: false,
182
- output: `No matches found for the search text in ${resolved}. The text to replace was not found.`,
189
+ output: `No matches found for the search text in ${resolved}. The text to replace was not found. Re-read or search the current file and copy oldText exactly before retrying; do not repeat the same oldText.`,
183
190
  exitCode: 1,
184
191
  };
185
192
  }