@qduc/term2 0.19.0 → 0.21.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 (457) hide show
  1. package/dist/agent.d.ts +9 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +151 -93
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.d.ts +1 -1
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +62 -36
  8. package/dist/app.js.map +1 -1
  9. package/dist/cli.js +122 -41
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/guarded-settings-command.d.ts.map +1 -1
  12. package/dist/commands/guarded-settings-command.js +33 -5
  13. package/dist/commands/guarded-settings-command.js.map +1 -1
  14. package/dist/commands/mode-commands.d.ts +17 -12
  15. package/dist/commands/mode-commands.d.ts.map +1 -1
  16. package/dist/commands/mode-commands.js +68 -44
  17. package/dist/commands/mode-commands.js.map +1 -1
  18. package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
  19. package/dist/components/input/ApplicationInputSurface.js +4 -0
  20. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  21. package/dist/components/input/MenuSurface.d.ts.map +1 -1
  22. package/dist/components/input/MenuSurface.js +1 -0
  23. package/dist/components/input/MenuSurface.js.map +1 -1
  24. package/dist/components/input/ProfileMenuSession.d.ts +16 -0
  25. package/dist/components/input/ProfileMenuSession.d.ts.map +1 -0
  26. package/dist/components/input/ProfileMenuSession.js +64 -0
  27. package/dist/components/input/ProfileMenuSession.js.map +1 -0
  28. package/dist/components/input/determine-active-menu.d.ts +3 -0
  29. package/dist/components/input/determine-active-menu.d.ts.map +1 -1
  30. package/dist/components/input/determine-active-menu.js +6 -1
  31. package/dist/components/input/determine-active-menu.js.map +1 -1
  32. package/dist/components/input/menu-registry.d.ts.map +1 -1
  33. package/dist/components/input/menu-registry.js +2 -0
  34. package/dist/components/input/menu-registry.js.map +1 -1
  35. package/dist/components/input/menu-types.d.ts +4 -0
  36. package/dist/components/input/menu-types.d.ts.map +1 -1
  37. package/dist/components/input/triggers.d.ts +1 -0
  38. package/dist/components/input/triggers.d.ts.map +1 -1
  39. package/dist/components/input/triggers.js +26 -0
  40. package/dist/components/input/triggers.js.map +1 -1
  41. package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
  42. package/dist/components/layout/BackgroundTaskManager.js +6 -2
  43. package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
  44. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  45. package/dist/components/layout/BackgroundTasksPanel.js +16 -8
  46. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  47. package/dist/components/layout/Banner.d.ts.map +1 -1
  48. package/dist/components/layout/Banner.js +10 -5
  49. package/dist/components/layout/Banner.js.map +1 -1
  50. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  51. package/dist/components/layout/BottomArea.js +4 -3
  52. package/dist/components/layout/BottomArea.js.map +1 -1
  53. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  54. package/dist/components/layout/StatusBar.js +28 -13
  55. package/dist/components/layout/StatusBar.js.map +1 -1
  56. package/dist/components/menu/ProfileSelectionMenu.d.ts +12 -0
  57. package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -0
  58. package/dist/components/menu/ProfileSelectionMenu.js +48 -0
  59. package/dist/components/menu/ProfileSelectionMenu.js.map +1 -0
  60. package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
  61. package/dist/components/menu/ResumeSelectionMenu.js +6 -14
  62. package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
  63. package/dist/components/message/ChatMessage.js +1 -1
  64. package/dist/components/message/ChatMessage.js.map +1 -1
  65. package/dist/components/message/MessageList.d.ts.map +1 -1
  66. package/dist/components/message/MessageList.js +32 -16
  67. package/dist/components/message/MessageList.js.map +1 -1
  68. package/dist/components/message/command-grouping.d.ts +6 -6
  69. package/dist/components/message/command-grouping.d.ts.map +1 -1
  70. package/dist/components/message/command-grouping.js +21 -8
  71. package/dist/components/message/command-grouping.js.map +1 -1
  72. package/dist/context/InputContext.d.ts +1 -1
  73. package/dist/context/InputContext.d.ts.map +1 -1
  74. package/dist/context/InputContext.js +8 -0
  75. package/dist/context/InputContext.js.map +1 -1
  76. package/dist/contracts/session-rollover.d.ts +9 -1
  77. package/dist/contracts/session-rollover.d.ts.map +1 -1
  78. package/dist/contracts/streamed-model-turn.d.ts +20 -2
  79. package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
  80. package/dist/gateway/gateway.d.ts.map +1 -1
  81. package/dist/gateway/gateway.js +19 -23
  82. package/dist/gateway/gateway.js.map +1 -1
  83. package/dist/gateway/launcher-seam.d.ts.map +1 -1
  84. package/dist/gateway/launcher-seam.js +2 -19
  85. package/dist/gateway/launcher-seam.js.map +1 -1
  86. package/dist/gateway/settings-rpc.d.ts +1 -1
  87. package/dist/gateway/settings-rpc.d.ts.map +1 -1
  88. package/dist/gateway/settings-rpc.js +2 -0
  89. package/dist/gateway/settings-rpc.js.map +1 -1
  90. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  91. package/dist/hooks/settings-completion-config.js +25 -3
  92. package/dist/hooks/settings-completion-config.js.map +1 -1
  93. package/dist/hooks/use-app-commands.d.ts +3 -1
  94. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  95. package/dist/hooks/use-app-commands.js +21 -14
  96. package/dist/hooks/use-app-commands.js.map +1 -1
  97. package/dist/hooks/use-conversation.d.ts +2 -2
  98. package/dist/hooks/use-conversation.d.ts.map +1 -1
  99. package/dist/hooks/use-conversation.js +1 -1
  100. package/dist/hooks/use-conversation.js.map +1 -1
  101. package/dist/hooks/use-handoff-flow.d.ts +1 -0
  102. package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
  103. package/dist/hooks/use-handoff-flow.js +19 -12
  104. package/dist/hooks/use-handoff-flow.js.map +1 -1
  105. package/dist/hooks/use-profile-selection.d.ts +34 -0
  106. package/dist/hooks/use-profile-selection.d.ts.map +1 -0
  107. package/dist/hooks/use-profile-selection.js +103 -0
  108. package/dist/hooks/use-profile-selection.js.map +1 -0
  109. package/dist/hooks/use-resume-selection.d.ts +2 -0
  110. package/dist/hooks/use-resume-selection.d.ts.map +1 -1
  111. package/dist/hooks/use-resume-selection.js +11 -9
  112. package/dist/hooks/use-resume-selection.js.map +1 -1
  113. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  114. package/dist/hooks/use-settings-value-completion.js +16 -0
  115. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  116. package/dist/hooks/use-skill-selection.d.ts +5 -3
  117. package/dist/hooks/use-skill-selection.d.ts.map +1 -1
  118. package/dist/hooks/use-skill-selection.js +8 -6
  119. package/dist/hooks/use-skill-selection.js.map +1 -1
  120. package/dist/lib/agent-client.d.ts +18 -0
  121. package/dist/lib/agent-client.d.ts.map +1 -1
  122. package/dist/lib/agent-client.js +69 -14
  123. package/dist/lib/agent-client.js.map +1 -1
  124. package/dist/lib/agent-configuration.d.ts +8 -0
  125. package/dist/lib/agent-configuration.d.ts.map +1 -1
  126. package/dist/lib/agent-configuration.js +7 -4
  127. package/dist/lib/agent-configuration.js.map +1 -1
  128. package/dist/lib/agent-factory.d.ts +8 -0
  129. package/dist/lib/agent-factory.d.ts.map +1 -1
  130. package/dist/lib/agent-factory.js +65 -41
  131. package/dist/lib/agent-factory.js.map +1 -1
  132. package/dist/lib/harness-input-idle.d.ts +10 -0
  133. package/dist/lib/harness-input-idle.d.ts.map +1 -1
  134. package/dist/lib/harness-input-idle.js +47 -5
  135. package/dist/lib/harness-input-idle.js.map +1 -1
  136. package/dist/non-interactive.d.ts.map +1 -1
  137. package/dist/non-interactive.js +6 -6
  138. package/dist/non-interactive.js.map +1 -1
  139. package/dist/prompts/memory.md +1 -1
  140. package/dist/prompts/prefix-quality.test.ts +8 -5
  141. package/dist/prompts/prompt-constructor.d.ts +5 -6
  142. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  143. package/dist/prompts/prompt-constructor.js +15 -7
  144. package/dist/prompts/prompt-constructor.js.map +1 -1
  145. package/dist/prompts/prompt-constructor.test.ts +73 -48
  146. package/dist/prompts/prompt-constructor.ts +21 -13
  147. package/dist/prompts/session-browser.md +2 -0
  148. package/dist/prompts/shell-auto-approval.d.ts +2 -2
  149. package/dist/prompts/shell-auto-approval.d.ts.map +1 -1
  150. package/dist/prompts/shell-auto-approval.js +19 -16
  151. package/dist/prompts/shell-auto-approval.js.map +1 -1
  152. package/dist/prompts/shell-auto-approval.ts +19 -16
  153. package/dist/providers/aborted-stream-recorder.js +2 -1
  154. package/dist/providers/aborted-stream-recorder.js.map +1 -1
  155. package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
  156. package/dist/providers/ai-sdk-streamed-model.js +7 -0
  157. package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
  158. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  159. package/dist/providers/codex-responses-model.js +75 -14
  160. package/dist/providers/codex-responses-model.js.map +1 -1
  161. package/dist/providers/codex-turn-converter.d.ts.map +1 -1
  162. package/dist/providers/codex-turn-converter.js +21 -4
  163. package/dist/providers/codex-turn-converter.js.map +1 -1
  164. package/dist/providers/codex.provider.d.ts.map +1 -1
  165. package/dist/providers/codex.provider.js +1 -0
  166. package/dist/providers/codex.provider.js.map +1 -1
  167. package/dist/providers/fetch/logging-middleware.d.ts.map +1 -1
  168. package/dist/providers/fetch/logging-middleware.js +22 -2
  169. package/dist/providers/fetch/logging-middleware.js.map +1 -1
  170. package/dist/providers/openai-chat-completions-model.js +119 -50
  171. package/dist/providers/openai-chat-completions-model.js.map +1 -1
  172. package/dist/providers/openai-responses-model.d.ts.map +1 -1
  173. package/dist/providers/openai-responses-model.js +131 -15
  174. package/dist/providers/openai-responses-model.js.map +1 -1
  175. package/dist/providers/registry.d.ts +1 -1
  176. package/dist/providers/registry.d.ts.map +1 -1
  177. package/dist/providers/retrying-model.d.ts.map +1 -1
  178. package/dist/providers/retrying-model.js +11 -2
  179. package/dist/providers/retrying-model.js.map +1 -1
  180. package/dist/services/agent-runtime/application-run-loop.d.ts +3 -1
  181. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  182. package/dist/services/agent-runtime/application-run-loop.js +99 -19
  183. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  184. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.d.ts +2 -3
  185. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.d.ts.map +1 -1
  186. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js +18 -9
  187. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js.map +1 -1
  188. package/dist/services/agent-runtime/generation-guard.d.ts +25 -1
  189. package/dist/services/agent-runtime/generation-guard.d.ts.map +1 -1
  190. package/dist/services/agent-runtime/generation-guard.js +105 -1
  191. package/dist/services/agent-runtime/generation-guard.js.map +1 -1
  192. package/dist/services/agent-stream.d.ts +2 -0
  193. package/dist/services/agent-stream.d.ts.map +1 -1
  194. package/dist/services/agent-stream.js.map +1 -1
  195. package/dist/services/approval/approval-decision-policy.js +2 -2
  196. package/dist/services/approval/approval-decision-policy.js.map +1 -1
  197. package/dist/services/approval/shell-auto-approval-evaluator.d.ts +5 -1
  198. package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
  199. package/dist/services/approval/shell-auto-approval-evaluator.js +42 -18
  200. package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
  201. package/dist/services/approval/shell-auto-approval-resolver.d.ts +5 -0
  202. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  203. package/dist/services/approval/shell-auto-approval-resolver.js +117 -20
  204. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  205. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  206. package/dist/services/approval/tool-approval-batch-coordinator.js +20 -3
  207. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  208. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  209. package/dist/services/conversation/conversation-adapter.js +2 -9
  210. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  211. package/dist/services/conversation/conversation-decoder.d.ts.map +1 -1
  212. package/dist/services/conversation/conversation-decoder.js +6 -2
  213. package/dist/services/conversation/conversation-decoder.js.map +1 -1
  214. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  215. package/dist/services/conversation/conversation-orchestrator.js +22 -2
  216. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  217. package/dist/services/conversation/conversation-persistence.d.ts +30 -0
  218. package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
  219. package/dist/services/conversation/conversation-persistence.js +101 -7
  220. package/dist/services/conversation/conversation-persistence.js.map +1 -1
  221. package/dist/services/conversation/conversation-replay.d.ts +2 -0
  222. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  223. package/dist/services/conversation/conversation-replay.js +71 -57
  224. package/dist/services/conversation/conversation-replay.js.map +1 -1
  225. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  226. package/dist/services/conversation/conversation-result-builder.js +21 -4
  227. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  228. package/dist/services/conversation/conversation-service.d.ts +3 -2
  229. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  230. package/dist/services/conversation/conversation-service.js +36 -15
  231. package/dist/services/conversation/conversation-service.js.map +1 -1
  232. package/dist/services/conversation/session-browser.d.ts +8 -1
  233. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  234. package/dist/services/conversation/session-browser.js +134 -16
  235. package/dist/services/conversation/session-browser.js.map +1 -1
  236. package/dist/services/handoff/handoff-session.d.ts +2 -0
  237. package/dist/services/handoff/handoff-session.d.ts.map +1 -1
  238. package/dist/services/handoff/handoff-session.js +19 -3
  239. package/dist/services/handoff/handoff-session.js.map +1 -1
  240. package/dist/services/logging/conversation-log-events.d.ts +30 -3
  241. package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
  242. package/dist/services/logging/conversation-log-events.js +1 -4
  243. package/dist/services/logging/conversation-log-events.js.map +1 -1
  244. package/dist/services/logging/logging-service.d.ts +1 -0
  245. package/dist/services/logging/logging-service.d.ts.map +1 -1
  246. package/dist/services/logging/logging-service.js +5 -2
  247. package/dist/services/logging/logging-service.js.map +1 -1
  248. package/dist/services/logging/provider-traffic.d.ts +8 -1
  249. package/dist/services/logging/provider-traffic.d.ts.map +1 -1
  250. package/dist/services/logging/provider-traffic.js +105 -10
  251. package/dist/services/logging/provider-traffic.js.map +1 -1
  252. package/dist/services/memory/memory-capabilities.d.ts.map +1 -1
  253. package/dist/services/memory/memory-capabilities.js +17 -5
  254. package/dist/services/memory/memory-capabilities.js.map +1 -1
  255. package/dist/services/memory/memory-store.d.ts +17 -0
  256. package/dist/services/memory/memory-store.d.ts.map +1 -1
  257. package/dist/services/memory/memory-store.js +74 -27
  258. package/dist/services/memory/memory-store.js.map +1 -1
  259. package/dist/services/mode-notices.d.ts +12 -9
  260. package/dist/services/mode-notices.d.ts.map +1 -1
  261. package/dist/services/mode-notices.js +83 -54
  262. package/dist/services/mode-notices.js.map +1 -1
  263. package/dist/services/model-service.d.ts +22 -4
  264. package/dist/services/model-service.d.ts.map +1 -1
  265. package/dist/services/model-service.js +148 -1
  266. package/dist/services/model-service.js.map +1 -1
  267. package/dist/services/models/model-catalog-session.d.ts +6 -0
  268. package/dist/services/models/model-catalog-session.d.ts.map +1 -1
  269. package/dist/services/models/model-catalog-session.js +7 -3
  270. package/dist/services/models/model-catalog-session.js.map +1 -1
  271. package/dist/services/models/model-listing.d.ts +57 -0
  272. package/dist/services/models/model-listing.d.ts.map +1 -0
  273. package/dist/services/models/model-listing.js +96 -0
  274. package/dist/services/models/model-listing.js.map +1 -0
  275. package/dist/services/models/model-resolution.d.ts +88 -0
  276. package/dist/services/models/model-resolution.d.ts.map +1 -0
  277. package/dist/services/models/model-resolution.js +292 -0
  278. package/dist/services/models/model-resolution.js.map +1 -0
  279. package/dist/services/plan-mode-interceptor.d.ts.map +1 -1
  280. package/dist/services/plan-mode-interceptor.js +5 -6
  281. package/dist/services/plan-mode-interceptor.js.map +1 -1
  282. package/dist/services/profiles/active-profile.d.ts +5 -0
  283. package/dist/services/profiles/active-profile.d.ts.map +1 -0
  284. package/dist/services/profiles/active-profile.js +33 -0
  285. package/dist/services/profiles/active-profile.js.map +1 -0
  286. package/dist/services/profiles/index.d.ts +9 -0
  287. package/dist/services/profiles/index.d.ts.map +1 -0
  288. package/dist/services/profiles/index.js +9 -0
  289. package/dist/services/profiles/index.js.map +1 -0
  290. package/dist/services/profiles/labels.d.ts +7 -0
  291. package/dist/services/profiles/labels.d.ts.map +1 -0
  292. package/dist/services/profiles/labels.js +22 -0
  293. package/dist/services/profiles/labels.js.map +1 -0
  294. package/dist/services/profiles/legacy-adapter.d.ts +28 -0
  295. package/dist/services/profiles/legacy-adapter.d.ts.map +1 -0
  296. package/dist/services/profiles/legacy-adapter.js +69 -0
  297. package/dist/services/profiles/legacy-adapter.js.map +1 -0
  298. package/dist/services/profiles/profile-transition.d.ts +48 -0
  299. package/dist/services/profiles/profile-transition.d.ts.map +1 -0
  300. package/dist/services/profiles/profile-transition.js +109 -0
  301. package/dist/services/profiles/profile-transition.js.map +1 -0
  302. package/dist/services/profiles/registry.d.ts +17 -0
  303. package/dist/services/profiles/registry.d.ts.map +1 -0
  304. package/dist/services/profiles/registry.js +147 -0
  305. package/dist/services/profiles/registry.js.map +1 -0
  306. package/dist/services/profiles/resolver.d.ts +10 -0
  307. package/dist/services/profiles/resolver.d.ts.map +1 -0
  308. package/dist/services/profiles/resolver.js +573 -0
  309. package/dist/services/profiles/resolver.js.map +1 -0
  310. package/dist/services/profiles/schema.d.ts +960 -0
  311. package/dist/services/profiles/schema.d.ts.map +1 -0
  312. package/dist/services/profiles/schema.js +196 -0
  313. package/dist/services/profiles/schema.js.map +1 -0
  314. package/dist/services/profiles/types.d.ts +224 -0
  315. package/dist/services/profiles/types.d.ts.map +1 -0
  316. package/dist/services/profiles/types.js +9 -0
  317. package/dist/services/profiles/types.js.map +1 -0
  318. package/dist/services/retry/committed-tool-continuation.d.ts +5 -0
  319. package/dist/services/retry/committed-tool-continuation.d.ts.map +1 -1
  320. package/dist/services/retry/committed-tool-continuation.js +6 -3
  321. package/dist/services/retry/committed-tool-continuation.js.map +1 -1
  322. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  323. package/dist/services/retry/retry-classifier.js +13 -10
  324. package/dist/services/retry/retry-classifier.js.map +1 -1
  325. package/dist/services/retry/retry-error-classification.d.ts +7 -0
  326. package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
  327. package/dist/services/retry/retry-error-classification.js +32 -9
  328. package/dist/services/retry/retry-error-classification.js.map +1 -1
  329. package/dist/services/runtime-setting-router.d.ts.map +1 -1
  330. package/dist/services/runtime-setting-router.js +76 -23
  331. package/dist/services/runtime-setting-router.js.map +1 -1
  332. package/dist/services/session/background-check-in-scheduler.d.ts +20 -4
  333. package/dist/services/session/background-check-in-scheduler.d.ts.map +1 -1
  334. package/dist/services/session/background-check-in-scheduler.js +73 -6
  335. package/dist/services/session/background-check-in-scheduler.js.map +1 -1
  336. package/dist/services/session/initial-turn-recovery-handler.js +4 -4
  337. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  338. package/dist/services/session/session-composition.d.ts.map +1 -1
  339. package/dist/services/session/session-composition.js +2 -1
  340. package/dist/services/session/session-composition.js.map +1 -1
  341. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  342. package/dist/services/session/session-input-planner.js +2 -9
  343. package/dist/services/session/session-input-planner.js.map +1 -1
  344. package/dist/services/session/session-manager.d.ts.map +1 -1
  345. package/dist/services/session/session-manager.js +4 -1
  346. package/dist/services/session/session-manager.js.map +1 -1
  347. package/dist/services/session-rollover/session-rollover-brief.d.ts +2 -1
  348. package/dist/services/session-rollover/session-rollover-brief.d.ts.map +1 -1
  349. package/dist/services/session-rollover/session-rollover-brief.js +5 -3
  350. package/dist/services/session-rollover/session-rollover-brief.js.map +1 -1
  351. package/dist/services/settings/settings-persistence.js +1 -1
  352. package/dist/services/settings/settings-persistence.js.map +1 -1
  353. package/dist/services/settings/settings-schema.d.ts +124 -19
  354. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  355. package/dist/services/settings/settings-schema.js +111 -31
  356. package/dist/services/settings/settings-schema.js.map +1 -1
  357. package/dist/services/settings/settings-service.d.ts +3 -1
  358. package/dist/services/settings/settings-service.d.ts.map +1 -1
  359. package/dist/services/settings/settings-service.js +88 -91
  360. package/dist/services/settings/settings-service.js.map +1 -1
  361. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  362. package/dist/services/settings/settings-sources.js +13 -1
  363. package/dist/services/settings/settings-sources.js.map +1 -1
  364. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +3 -3
  365. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  366. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +15 -1
  367. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  368. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  369. package/dist/services/subagents/mentor-runner.js +5 -2
  370. package/dist/services/subagents/mentor-runner.js.map +1 -1
  371. package/dist/services/subagents/subagent-notification-store.d.ts +10 -2
  372. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
  373. package/dist/services/subagents/subagent-notification-store.js +10 -5
  374. package/dist/services/subagents/subagent-notification-store.js.map +1 -1
  375. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  376. package/dist/services/subagents/tool-policy.js +10 -15
  377. package/dist/services/subagents/tool-policy.js.map +1 -1
  378. package/dist/services/tool-toggles.d.ts +20 -0
  379. package/dist/services/tool-toggles.d.ts.map +1 -0
  380. package/dist/services/tool-toggles.js +115 -0
  381. package/dist/services/tool-toggles.js.map +1 -0
  382. package/dist/slash-commands.d.ts +3 -0
  383. package/dist/slash-commands.d.ts.map +1 -1
  384. package/dist/slash-commands.js.map +1 -1
  385. package/dist/tools/agent/configure-task-check-in.d.ts +19 -0
  386. package/dist/tools/agent/configure-task-check-in.d.ts.map +1 -0
  387. package/dist/tools/agent/configure-task-check-in.js +82 -0
  388. package/dist/tools/agent/configure-task-check-in.js.map +1 -0
  389. package/dist/tools/agent/run-subagent-async.d.ts +11 -1
  390. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  391. package/dist/tools/agent/run-subagent-async.js +22 -1
  392. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  393. package/dist/tools/agent/run-subagent.d.ts +15 -0
  394. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  395. package/dist/tools/agent/run-subagent.js +24 -2
  396. package/dist/tools/agent/run-subagent.js.map +1 -1
  397. package/dist/tools/file/apply-patch.d.ts +2 -15
  398. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  399. package/dist/tools/file/apply-patch.js +163 -98
  400. package/dist/tools/file/apply-patch.js.map +1 -1
  401. package/dist/tools/file/read-file.d.ts.map +1 -1
  402. package/dist/tools/file/read-file.js +48 -0
  403. package/dist/tools/file/read-file.js.map +1 -1
  404. package/dist/tools/file/upstream-apply-patch.d.ts +31 -0
  405. package/dist/tools/file/upstream-apply-patch.d.ts.map +1 -0
  406. package/dist/tools/file/upstream-apply-patch.js +123 -0
  407. package/dist/tools/file/upstream-apply-patch.js.map +1 -0
  408. package/dist/tools/format-helpers.d.ts +2 -0
  409. package/dist/tools/format-helpers.d.ts.map +1 -1
  410. package/dist/tools/format-helpers.js +7 -0
  411. package/dist/tools/format-helpers.js.map +1 -1
  412. package/dist/tools/memory/memory-tools.js +1 -1
  413. package/dist/tools/memory/memory-tools.js.map +1 -1
  414. package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -1
  415. package/dist/tools/session-browser/session-browser-tools.js +11 -1
  416. package/dist/tools/session-browser/session-browser-tools.js.map +1 -1
  417. package/dist/tools/session-rollover/session-rollover-tool.d.ts.map +1 -1
  418. package/dist/tools/session-rollover/session-rollover-tool.js +10 -1
  419. package/dist/tools/session-rollover/session-rollover-tool.js.map +1 -1
  420. package/dist/tools/system/shell.d.ts +12 -0
  421. package/dist/tools/system/shell.d.ts.map +1 -1
  422. package/dist/tools/system/shell.js +30 -4
  423. package/dist/tools/system/shell.js.map +1 -1
  424. package/dist/tools/types.d.ts +15 -2
  425. package/dist/tools/types.d.ts.map +1 -1
  426. package/dist/tools/types.js.map +1 -1
  427. package/dist/utils/ai/token-usage.d.ts +9 -0
  428. package/dist/utils/ai/token-usage.d.ts.map +1 -1
  429. package/dist/utils/ai/token-usage.js +15 -3
  430. package/dist/utils/ai/token-usage.js.map +1 -1
  431. package/dist/utils/conversation/conversation-utils.d.ts.map +1 -1
  432. package/dist/utils/conversation/conversation-utils.js +40 -1
  433. package/dist/utils/conversation/conversation-utils.js.map +1 -1
  434. package/dist/utils/conversation/message-buffer.d.ts +16 -0
  435. package/dist/utils/conversation/message-buffer.d.ts.map +1 -1
  436. package/dist/utils/conversation/message-buffer.js +33 -0
  437. package/dist/utils/conversation/message-buffer.js.map +1 -1
  438. package/dist/utils/output/trim-tool-output.d.ts +1 -1
  439. package/dist/utils/output/trim-tool-output.d.ts.map +1 -1
  440. package/dist/utils/output/trim-tool-output.js +20 -0
  441. package/dist/utils/output/trim-tool-output.js.map +1 -1
  442. package/dist/utils/resume-list.d.ts +2 -0
  443. package/dist/utils/resume-list.d.ts.map +1 -1
  444. package/dist/utils/resume-list.js +7 -14
  445. package/dist/utils/resume-list.js.map +1 -1
  446. package/dist/utils/settings-command.d.ts.map +1 -1
  447. package/dist/utils/settings-command.js +95 -14
  448. package/dist/utils/settings-command.js.map +1 -1
  449. package/dist/utils/streaming/streaming-session-factory.d.ts +3 -0
  450. package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
  451. package/dist/utils/streaming/streaming-session-factory.js +35 -17
  452. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  453. package/dist/utils/streaming/streaming-speed-tracker.d.ts +47 -6
  454. package/dist/utils/streaming/streaming-speed-tracker.d.ts.map +1 -1
  455. package/dist/utils/streaming/streaming-speed-tracker.js +91 -23
  456. package/dist/utils/streaming/streaming-speed-tracker.js.map +1 -1
  457. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { readFile, writeFile, mkdir } from 'fs/promises';
2
+ import { readFile, writeFile, mkdir, unlink } from 'fs/promises';
3
3
  import path from 'path';
4
4
  import { applyDiff } from '../../utils/apply-diff.js';
5
5
  import { isProtectedHookPath, isWorkspacePathPhysicallyInside, resolveWorkspacePath } from '../utils.js';
@@ -10,6 +10,7 @@ import { TOOL_NAME_APPLY_PATCH } from '../tool-names.js';
10
10
  import { boundToolResultText, truncateToUtf8Bytes } from '../../utils/output/bound-tool-result.js';
11
11
  import { healPatchOperation } from './patch-healing.js';
12
12
  import { resolveAncillaryModelTier } from '../../services/agent-runtime/model-resolver.js';
13
+ import { parseUpstreamApplyPatch } from './upstream-apply-patch.js';
13
14
  /**
14
15
  * Error thrown when patch validation fails (malformed diff)
15
16
  */
@@ -21,52 +22,27 @@ export class PatchValidationError extends Error {
21
22
  this.name = 'PatchValidationError';
22
23
  }
23
24
  }
24
- const applyPatchOperationSchema = z.object({
25
- type: z.enum(['create_file', 'update_file']).describe('Operation type: create_file or update_file.'),
26
- path: z.string().min(1, 'File path cannot be empty').describe('The absolute or relative path to the file.'),
27
- diff: z.string().describe('Headerless unified diff content for create/update operations.'),
28
- });
25
+ // Canonical-only schema: the patch envelope IS the argument. The legacy
26
+ // {type,path,diff} / operations[] JSON shape is deleted, not deprecated —
27
+ // keeping two accepted formats lets the model drift back into the shape
28
+ // suspected of causing whitespace degeneration.
29
29
  const applyPatchParametersSchema = z
30
30
  .object({
31
- type: z.enum(['create_file', 'update_file']).optional(),
32
- path: z.string().min(1, 'File path cannot be empty').optional(),
33
- diff: z.string().describe('Unified diff content for create/update operations').optional(),
34
- operations: z.array(applyPatchOperationSchema).min(1).optional(),
31
+ patch: z
32
+ .string()
33
+ .min(1, 'Patch cannot be empty')
34
+ .describe('Complete patch script starting with *** Begin Patch and ending with *** End Patch.'),
35
35
  })
36
- .superRefine((params, ctx) => {
37
- const hasBatch = Array.isArray(params.operations);
38
- const hasSingle = params.type !== undefined || params.path !== undefined || params.diff !== undefined;
39
- if (hasBatch && hasSingle) {
40
- ctx.addIssue({
41
- code: z.ZodIssueCode.custom,
42
- message: 'Provide either operations or a single type/path/diff operation, not both.',
43
- });
44
- return;
45
- }
46
- if (!hasBatch && (params.type === undefined || params.path === undefined || params.diff === undefined)) {
47
- ctx.addIssue({
48
- code: z.ZodIssueCode.custom,
49
- message: 'Provide operations or all single operation fields: type, path, and diff.',
50
- });
51
- }
52
- });
53
- // Strict tool-schema providers cannot represent the legacy single-operation
54
- // form's mutual exclusion with `operations`. Advertise one unambiguous shape
55
- // while retaining the legacy parser for existing runtime callers.
36
+ .strict();
37
+ // Strict-schema providers receive the identical single-string shape.
56
38
  const applyPatchStrictParametersSchema = z.object({
57
- operations: z.array(applyPatchOperationSchema).min(1),
39
+ patch: z
40
+ .string()
41
+ .min(1, 'Patch cannot be empty')
42
+ .describe('Complete patch script starting with *** Begin Patch and ending with *** End Patch.'),
58
43
  });
59
44
  function getApplyPatchOperations(params) {
60
- if (params.operations) {
61
- return params.operations;
62
- }
63
- return [
64
- {
65
- type: params.type,
66
- path: params.path,
67
- diff: params.diff,
68
- },
69
- ];
45
+ return parseUpstreamApplyPatch(params.patch).operations;
70
46
  }
71
47
  export const formatApplyPatchCommandMessage = (item, index, toolCallArgumentsById) => {
72
48
  const rawItem = item?.providerItem ?? item?.rawItem ?? item;
@@ -81,7 +57,19 @@ export const formatApplyPatchCommandMessage = (item, index, toolCallArgumentsByI
81
57
  item?.toolCallId ??
82
58
  item?.id;
83
59
  const argsFromMap = callId ? toolCallArgumentsById.get(callId) : undefined;
84
- const normalizedArgs = normalizeToolArguments(item?.arguments ?? argsFromMap ?? rawItem?.arguments ?? rawItem?.operation) ?? {};
60
+ const rawArguments = item?.arguments ?? item?.input ?? argsFromMap ?? rawItem?.arguments ?? rawItem?.input ?? rawItem?.operation;
61
+ let normalizedArgs = normalizeToolArguments(rawArguments) ?? {};
62
+ // Canonical-only arguments: a raw envelope string parses to parsed
63
+ // operations; the legacy {type,path,diff} / operations[] object shape is
64
+ // no longer accepted, only displayed from inert history records.
65
+ if (typeof rawArguments === 'string' && rawArguments.trimStart().startsWith('*** Begin Patch')) {
66
+ try {
67
+ normalizedArgs = parseUpstreamApplyPatch(rawArguments);
68
+ }
69
+ catch {
70
+ normalizedArgs = {};
71
+ }
72
+ }
85
73
  const isNativePatchResult = rawItem?.type === 'apply_patch_call_output' || item?.type === 'apply_patch_call_output';
86
74
  const rawStatus = rawItem?.status ?? item?.status;
87
75
  const operations = Array.isArray(normalizedArgs?.operations)
@@ -132,49 +120,69 @@ export const formatApplyPatchCommandMessage = (item, index, toolCallArgumentsByI
132
120
  }),
133
121
  ];
134
122
  };
135
- const APPLY_PATCH_DESCRIPTION = 'Apply file changes using headerless V4A diff format. Supports creating, updating files.\n\n' +
136
- '## CRITICAL RULES:\n' +
137
- '1. Each line MUST start with exactly one character: space, +, or - (followed by the line content)\n' +
138
- '2. Use @@ markers to provide context anchors when needed\n' +
139
- '3. Context lines (unchanged) start with a SPACE character\n' +
140
- '4. Added lines start with + character\n' +
141
- '5. Removed lines start with - character\n' +
142
- '6. DO NOT include line numbers or @@ -n,m +n,m @@ headers (headerless format)\n\n' +
143
- '## CREATE_FILE:\n' +
144
- 'Every line must start with + (no context or - lines):\n' +
123
+ const APPLY_PATCH_DESCRIPTION = 'Apply file changes with a patch script. Write the patch directly — no JSON escaping of the body.\n\n' +
124
+ '```\n' +
125
+ '*** Begin Patch\n' +
126
+ '*** Add File: <path> — create a file; every following line is a + line\n' +
127
+ '*** Update File: <path> — edit a file (add *** Move to: <new-path> directly after to move)\n' +
128
+ '*** Delete File: <path> — delete a file\n' +
129
+ '*** End Patch\n' +
130
+ '```\n\n' +
131
+ '## Rules:\n' +
132
+ '1. Every line starts with exactly one of: space (unchanged context), + (added), - (removed)\n' +
133
+ '2. Prefix every new line with + — including when creating a new file, where EVERY line is a + line\n' +
134
+ '3. Use paths relative to the workspace root, never absolute paths\n' +
135
+ '4. Context lines start with a SPACE character; match the file indentation exactly\n' +
136
+ '5. Use @@ markers (e.g. @@ function calculate) to anchor where the change applies\n' +
137
+ '6. Include 2-3 context lines before and after each change\n\n' +
138
+ '## Grammar:\n' +
145
139
  '```\n' +
140
+ 'Patch := Begin { FileOp } End\n' +
141
+ 'Begin := "*** Begin Patch" NEWLINE\n' +
142
+ 'End := "*** End Patch" NEWLINE\n' +
143
+ 'FileOp := AddFile | DeleteFile | UpdateFile\n' +
144
+ 'AddFile := "*** Add File: " path NEWLINE { "+" line NEWLINE }\n' +
145
+ 'DeleteFile := "*** Delete File: " path NEWLINE\n' +
146
+ 'UpdateFile := "*** Update File: " path NEWLINE [ MoveTo ] { Hunk }\n' +
147
+ 'MoveTo := "*** Move to: " newPath NEWLINE\n' +
148
+ 'Hunk := "@@" [ header ] NEWLINE { HunkLine }\n' +
149
+ 'HunkLine := (" " | "-" | "+") text NEWLINE\n' +
150
+ '```\n\n' +
151
+ '## Examples:\n' +
152
+ 'Create:\n' +
153
+ '```\n' +
154
+ '*** Begin Patch\n' +
155
+ '*** Add File: notes.txt\n' +
146
156
  '+line 1\n' +
147
157
  '+line 2\n' +
148
- '+line 3\n' +
149
- '```\n\n' +
150
- '## UPDATE_FILE:\n' +
151
- 'Provide context (space-prefixed lines) around changes. Include 2-3 lines of context before and after:\n' +
158
+ '*** End Patch\n' +
152
159
  '```\n' +
160
+ 'Update:\n' +
161
+ '```\n' +
162
+ '*** Begin Patch\n' +
163
+ '*** Update File: calc.js\n' +
153
164
  '@@ function calculate\n' +
154
165
  ' function calculate(x) {\n' +
155
166
  '- return x * 2;\n' +
156
167
  '+ return x * 3;\n' +
157
168
  ' }\n' +
169
+ '*** End Patch\n' +
158
170
  '```\n\n' +
159
- '## Context Anchors:\n' +
160
- 'Use @@ markers to help locate code in the file:\n' +
161
- '- For classes: @@ class ClassName\n' +
162
- '- For functions: @@ function functionName\n' +
163
- '- For unique lines: @@ distinctive text from the line\n' +
164
- 'Stack multiple @@ for nested structures:\n' +
171
+ 'Combined (add + update-with-move + delete between one Begin/End pair):\n' +
165
172
  '```\n' +
166
- '@@ class MyClass\n' +
167
- '@@ method doSomething\n' +
168
- ' def doSomething(self):\n' +
169
- '- old code\n' +
170
- '+ new code\n' +
173
+ '*** Begin Patch\n' +
174
+ '*** Add File: hello.txt\n' +
175
+ '+Hello world\n' +
176
+ '*** Update File: src/app.py\n' +
177
+ '*** Move to: src/main.py\n' +
178
+ '@@ def greet():\n' +
179
+ '-print("Hi")\n' +
180
+ '+print("Hello, world!")\n' +
181
+ '*** Delete File: obsolete.txt\n' +
182
+ '*** End Patch\n' +
171
183
  '```\n\n' +
172
- '## Common Mistakes to Avoid:\n' +
173
- '- Missing space/+/- prefix on lines\n' +
174
- '- Including line numbers like "@@ -1,3 +1,4 @@"\n' +
175
- '- Not providing enough context (need 2-3 lines before/after)\n' +
176
- '- Context lines not starting with space character\n' +
177
- '- Using tabs instead of spaces for indentation matching\n\n' +
184
+ 'On failure, earlier operations in the same patch may already be applied — check the per-operation result lines and re-read files before retrying.\n' +
185
+ 'Put the whole script in the single patch argument.\n' +
178
186
  'Returns a plain-text summary with one line per operation: Created <path>, Updated <path>, or Error: <reason>.';
179
187
  export function createApplyPatchToolDefinition(deps) {
180
188
  const { loggingService, settingsService, executionContext, sessionAccess, patchHealing = healPatchOperation } = deps;
@@ -191,11 +199,19 @@ export function createApplyPatchToolDefinition(deps) {
191
199
  });
192
200
  return false;
193
201
  }
202
+ let operations;
203
+ try {
204
+ operations = getApplyPatchOperations(params);
205
+ }
206
+ catch {
207
+ // Envelope parse failures cannot be path-scoped, so require
208
+ // approval and let execute report the syntax error.
209
+ return true;
210
+ }
194
211
  try {
195
212
  const workspaceRoot = executionContext?.getCwd() || process.cwd();
196
213
  const sshService = executionContext?.getSSHService();
197
214
  const isRemote = executionContext?.isRemote() && !!sshService;
198
- const operations = getApplyPatchOperations(params);
199
215
  const resolvedOperations = [];
200
216
  // Resolve and check every target before validation. In particular, do
201
217
  // not read an update target until all batch paths have passed the
@@ -233,11 +249,32 @@ export function createApplyPatchToolDefinition(deps) {
233
249
  return true;
234
250
  }
235
251
  }
236
- resolvedOperations.push({ ...operation, targetPath, insideCwd });
252
+ let moveTargetPath;
253
+ if (operation.moveTo) {
254
+ try {
255
+ moveTargetPath = resolveWorkspacePath(operation.moveTo, workspaceRoot);
256
+ }
257
+ catch {
258
+ return true;
259
+ }
260
+ if (!sessionAccess?.allowsEdit(moveTargetPath, workspaceRoot)) {
261
+ const moveTargetInside = moveTargetPath.startsWith(workspaceRoot + path.sep) ||
262
+ moveTargetPath === SANDBOX_TEMP_DIR ||
263
+ moveTargetPath.startsWith(SANDBOX_TEMP_DIR + path.sep);
264
+ if (!moveTargetInside || isProtectedHookPath(moveTargetPath, workspaceRoot))
265
+ return true;
266
+ }
267
+ }
268
+ resolvedOperations.push({
269
+ ...operation,
270
+ targetPath,
271
+ insideCwd,
272
+ ...(moveTargetPath ? { moveTargetPath } : {}),
273
+ });
237
274
  }
238
- for (const { type, path: filePath, diff, targetPath, insideCwd } of resolvedOperations) {
275
+ for (const { type, path: filePath, diff, targetPath, insideCwd, moveTo } of resolvedOperations) {
239
276
  // Validate diff syntax by attempting a dry-run (before approval)
240
- if (type === 'create_file' || type === 'update_file') {
277
+ if ((type === 'create_file' || type === 'update_file') && !(type === 'update_file' && moveTo && !diff)) {
241
278
  try {
242
279
  if (type === 'create_file') {
243
280
  // Dry-run: apply diff to empty content for new file
@@ -281,16 +318,7 @@ export function createApplyPatchToolDefinition(deps) {
281
318
  return false;
282
319
  }
283
320
  }
284
- // Deletions ALWAYS require approval per policy
285
- // if (type === 'delete_file') {
286
- // loggingService.security('apply_patch needsApproval: delete requires approval', {
287
- // mode,
288
- // type,
289
- // path: filePath,
290
- // });
291
- // return true;
292
- // }
293
- if (!insideCwd || (type !== 'create_file' && type !== 'update_file')) {
321
+ if (!insideCwd || type === 'delete_file' || Boolean(moveTo)) {
294
322
  loggingService.security('apply_patch needsApproval: approval required', {
295
323
  type,
296
324
  path: filePath,
@@ -318,6 +346,14 @@ export function createApplyPatchToolDefinition(deps) {
318
346
  const cwd = executionContext?.getCwd() || process.cwd();
319
347
  const sshService = executionContext?.getSSHService();
320
348
  const isRemote = executionContext?.isRemote() && !!sshService;
349
+ let operations;
350
+ try {
351
+ operations = getApplyPatchOperations(params);
352
+ }
353
+ catch (error) {
354
+ const message = `Error: Invalid patch: ${error?.message || String(error)}`;
355
+ return (await boundToolResultText({ fullText: message })).text;
356
+ }
321
357
  const readFileFn = async (p) => {
322
358
  if (isRemote && sshService)
323
359
  return sshService.readFile(p);
@@ -333,7 +369,7 @@ export function createApplyPatchToolDefinition(deps) {
333
369
  return sshService.mkdir(p);
334
370
  return mkdir(p, { recursive: true });
335
371
  };
336
- const runOperation = async ({ type, path: filePath, diff }) => {
372
+ const runOperation = async ({ type, path: filePath, diff, moveTo }) => {
337
373
  // Standard modes enforce the workspace boundary in `needsApproval`;
338
374
  // YOLO deliberately reaches execute without a permission prompt.
339
375
  const targetPath = resolveWorkspacePath(filePath, cwd, { allowOutsideWorkspace: true });
@@ -410,7 +446,7 @@ export function createApplyPatchToolDefinition(deps) {
410
446
  let patched;
411
447
  let usedHealing = false;
412
448
  try {
413
- patched = applyDiff(original, diff);
449
+ patched = diff ? applyDiff(original, diff) : original;
414
450
  }
415
451
  catch (err) {
416
452
  const errMessage = err?.message || String(err);
@@ -454,7 +490,17 @@ export function createApplyPatchToolDefinition(deps) {
454
490
  };
455
491
  }
456
492
  }
457
- await writeFileFn(targetPath, patched);
493
+ if (moveTo) {
494
+ if (isRemote)
495
+ throw new Error('Move operations are not supported for remote workspaces.');
496
+ const destinationPath = resolveWorkspacePath(moveTo, cwd, { allowOutsideWorkspace: true });
497
+ await mkdirFn(path.dirname(destinationPath));
498
+ await writeFileFn(destinationPath, patched);
499
+ await unlink(targetPath);
500
+ }
501
+ else {
502
+ await writeFileFn(targetPath, patched);
503
+ }
458
504
  if (enableFileLogging) {
459
505
  try {
460
506
  loggingService.debug('File updated', {
@@ -462,6 +508,7 @@ export function createApplyPatchToolDefinition(deps) {
462
508
  originalLength: original.length,
463
509
  patchedLength: patched.length,
464
510
  healed: usedHealing,
511
+ ...(moveTo ? { moveTo } : {}),
465
512
  });
466
513
  }
467
514
  catch (_error) {
@@ -472,7 +519,24 @@ export function createApplyPatchToolDefinition(deps) {
472
519
  success: true,
473
520
  operation: 'update_file',
474
521
  path: filePath,
475
- message: usedHealing ? `Updated ${filePath} (healed)` : `Updated ${filePath}`,
522
+ message: moveTo
523
+ ? `Updated ${filePath} and moved to ${moveTo}`
524
+ : usedHealing
525
+ ? `Updated ${filePath} (healed)`
526
+ : `Updated ${filePath}`,
527
+ };
528
+ });
529
+ }
530
+ case 'delete_file': {
531
+ return withFileLock(targetPath, async () => {
532
+ if (isRemote)
533
+ throw new Error('Delete operations are not supported for remote workspaces.');
534
+ await unlink(targetPath);
535
+ return {
536
+ success: true,
537
+ operation: 'delete_file',
538
+ path: filePath,
539
+ message: `Deleted ${filePath}`,
476
540
  };
477
541
  });
478
542
  }
@@ -486,7 +550,7 @@ export function createApplyPatchToolDefinition(deps) {
486
550
  };
487
551
  try {
488
552
  const output = [];
489
- for (const operation of getApplyPatchOperations(params)) {
553
+ for (const operation of operations) {
490
554
  try {
491
555
  output.push(await runOperation(operation));
492
556
  }
@@ -504,7 +568,7 @@ export function createApplyPatchToolDefinition(deps) {
504
568
  }
505
569
  const joined = output
506
570
  .map((item) => item.success
507
- ? item.message || `Updated ${item.path ?? params.path}`
571
+ ? item.message || `Updated ${item.path ?? 'unknown'}`
508
572
  : `Error: ${(item.error || 'unknown error').replace(/\n/g, ' ')}`)
509
573
  .join('\n');
510
574
  return (await boundToolResultText({ fullText: joined })).text;
@@ -512,8 +576,8 @@ export function createApplyPatchToolDefinition(deps) {
512
576
  catch (error) {
513
577
  if (enableFileLogging) {
514
578
  loggingService.error('File operation failed', {
515
- type: params.type ?? 'batch',
516
- path: params.path ?? 'multiple',
579
+ type: 'apply_patch',
580
+ path: 'multiple',
517
581
  error: error instanceof Error ? error.message : String(error),
518
582
  });
519
583
  }
@@ -555,7 +619,7 @@ export function diagnoseContextMismatch(contextText, original) {
555
619
  const contextLines = contextText.split(/\r?\n/);
556
620
  const originalLines = original.split(/\r?\n/);
557
621
  if (originalLines.length === 0 || (originalLines.length === 1 && originalLines[0] === '')) {
558
- return 'The target file is empty. If you want to create a new file, use type: "create_file" or provide a diff that starts from an empty file.';
622
+ return 'The target file is empty. To create a new file, use a *** Add File: <path> *** section with + lines.';
559
623
  }
560
624
  const reports = [];
561
625
  for (let i = 0; i < contextLines.length; i++) {
@@ -627,11 +691,12 @@ export function formatPatchError(error, diff, original) {
627
691
  let formatted = '';
628
692
  // 1. Check for standard unified diff headers: "--- a/file" or "+++ b/file"
629
693
  if (diff.includes('--- ') || diff.includes('+++ ')) {
630
- formatted = 'Remove standard file headers. Use headerless anchors with context, + lines, and - lines only.';
694
+ formatted =
695
+ 'Remove standard file headers. Use *** Update File: <path> with @@ anchors, context, + lines, and - lines.';
631
696
  }
632
697
  // 2. Check for unified diff chunk headers with line numbers: "@@ -1,5 +1,6 @@"
633
698
  else if (/@@\s+-\d+(?:,\d+)?\s+\+\d+(?:,\d+)?\s+@@/.test(diff)) {
634
- formatted = 'Remove line numbers from "@@" headers. Use headerless anchors like "@@ functionName" or a bare "@@".';
699
+ formatted = 'Remove line numbers from "@@" headers. Use plain anchors like "@@ functionName" or a bare "@@".';
635
700
  }
636
701
  // 3. Check for leading line numbers like "10: const x = 1;" or "10 const x = 1;"
637
702
  else if (diff.split(/\r?\n/).some((line) => /^\s*\d+[:\s]/.test(line) && !line.startsWith('@@') && !line.startsWith('***'))) {
@@ -1 +1 @@
1
- {"version":3,"file":"apply-patch.js","sourceRoot":"","sources":["../../../source/tools/file/apply-patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply-patch.js","sourceRoot":"","sources":["../../../source/tools/file/apply-patch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../source/tools/file/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AAkC9G,QAAA,MAAM,wBAAwB;;;;iBAY5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B,EAAE,oBA6B1C,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,UACjC;IACJ,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;IACnD,mDAAmD;IACnD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KACA,cAAc,CAAC,OAAO,wBAAwB,CA2IhD,CAAC"}
1
+ {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../source/tools/file/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AA6E9G,QAAA,MAAM,wBAAwB;;;;iBAY5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B,EAAE,oBA6B1C,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,UACjC;IACJ,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;IACnD,mDAAmD;IACnD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KACA,cAAc,CAAC,OAAO,wBAAwB,CAyJhD,CAAC"}
@@ -5,21 +5,56 @@ import { isSessionReadGranted } from '../../services/approval/session-read-acces
5
5
  import { getOutputText, normalizeToolArguments, createBaseMessage, getCallIdFromItem, isSuccessOutput, } from '../format-helpers.js';
6
6
  import { boundToolResultText, looksLikeBinary, resolveToolResultMaxBytes, } from '../../utils/output/bound-tool-result.js';
7
7
  const READ_FILE_DESCRIPTION = 'Read file content from the workspace (like cat command). Supports reading specific line ranges. ' +
8
+ 'Image files are returned as image content for visual models. ' +
8
9
  'Use this to inspect a known file or verify a specific claim about a location. ' +
9
10
  'Avoid reading tiny repeated chunks (e.g. 50 lines at a time); read the full file if it is under 1000 lines or use a larger window. ' +
10
11
  'Do NOT use this to search for text across files (use grep). ' +
11
12
  'Returns the file path, total line count, and the requested lines. ' +
12
13
  'Large results are truncated and the full payload is saved to a file; look for "Full output saved to" and read that path when you need more.';
13
14
  const READ_FILE_DESCRIPTION_OUTSIDE = 'Read file content from the filesystem (like cat command). Supports reading specific line ranges. ' +
15
+ 'Image files are returned as image content for visual models. ' +
14
16
  'Use this to inspect a known file or verify a specific claim about a location. ' +
15
17
  'Avoid reading tiny repeated chunks (e.g. 50 lines at a time); read the full file if it is under 1000 lines or use a larger window. ' +
16
18
  'Returns the file path, total line count, and the requested lines. ' +
17
19
  'Large results are truncated and the full payload is saved to a file; look for "Full output saved to" and read that path when you need more.';
18
20
  const READ_FILE_DESCRIPTION_ORCHESTRATOR = 'Inspect a known file directly, including to understand a small or clear area of the workspace. ' +
21
+ 'Image files are returned as image content for visual models. ' +
19
22
  'Delegate broad or separable exploration when it provides meaningful context compression or specialization. ' +
20
23
  'Supports line ranges — read the smallest relevant range. ' +
21
24
  'Returns the file path, total line count, and the requested lines. ' +
22
25
  'Large results are truncated and the full payload is saved to a file; look for "Full output saved to" and read that path when you need more.';
26
+ /** Detect image formats that the model adapters can send as image content. */
27
+ function detectImageMediaType(buffer, filePath) {
28
+ if (buffer.length >= 8 &&
29
+ buffer.subarray(0, 8).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))) {
30
+ return 'image/png';
31
+ }
32
+ if (buffer.length >= 3 && buffer.subarray(0, 3).equals(Buffer.from([0xff, 0xd8, 0xff])))
33
+ return 'image/jpeg';
34
+ if (buffer.length >= 6 &&
35
+ (buffer.subarray(0, 6).toString('ascii') === 'GIF87a' || buffer.subarray(0, 6).toString('ascii') === 'GIF89a')) {
36
+ return 'image/gif';
37
+ }
38
+ if (buffer.length >= 12 &&
39
+ buffer.subarray(0, 4).toString('ascii') === 'RIFF' &&
40
+ buffer.subarray(8, 12).toString('ascii') === 'WEBP') {
41
+ return 'image/webp';
42
+ }
43
+ if (buffer.length >= 2 && buffer.subarray(0, 2).equals(Buffer.from([0x42, 0x4d])))
44
+ return 'image/bmp';
45
+ if (buffer.length >= 4 &&
46
+ (buffer.subarray(0, 4).equals(Buffer.from([0x49, 0x49, 0x2a, 0x00])) ||
47
+ buffer.subarray(0, 4).equals(Buffer.from([0x4d, 0x4d, 0x00, 0x2a])))) {
48
+ return 'image/tiff';
49
+ }
50
+ if (buffer.length >= 4 && buffer.subarray(0, 4).equals(Buffer.from([0x00, 0x00, 0x01, 0x00])))
51
+ return 'image/x-icon';
52
+ if (/\.svg$/i.test(filePath) &&
53
+ /^\s*(?:<\?xml[^>]*>\s*)?<svg(?:\s|>)/i.test(buffer.toString('utf8', 0, Math.min(buffer.length, 512)))) {
54
+ return 'image/svg+xml';
55
+ }
56
+ return undefined;
57
+ }
23
58
  const readFileParametersSchema = z.object({
24
59
  path: z.string().describe('File path relative to workspace root'),
25
60
  start_line: relaxedNumber
@@ -116,6 +151,19 @@ export const createReadFileToolDefinition = (deps = {}) => {
116
151
  if (buffer.length === 0) {
117
152
  return '';
118
153
  }
154
+ const imageMediaType = detectImageMediaType(buffer, filePath);
155
+ if (imageMediaType) {
156
+ return [
157
+ {
158
+ type: 'text',
159
+ text: `Image: ${filePath} (${buffer.length} bytes, ${imageMediaType})`,
160
+ },
161
+ {
162
+ type: 'image',
163
+ image: { data: buffer.toString('base64'), mediaType: imageMediaType },
164
+ },
165
+ ];
166
+ }
119
167
  if (looksLikeBinary(buffer)) {
120
168
  return (`Error: File appears to be binary and was not loaded into context: ${filePath} ` +
121
169
  `(${buffer.length} bytes). Use shell tools or a specialized binary viewer if you need its contents.`);