@evalops/maestro 0.10.51 → 0.10.53

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 (1502) hide show
  1. package/README.md +1 -3
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/compaction.d.ts.map +1 -1
  5. package/dist/agent/compaction.js +1 -1
  6. package/dist/agent/compaction.js.map +1 -1
  7. package/dist/agent/context-handoff.d.ts.map +1 -1
  8. package/dist/agent/context-handoff.js +2 -1
  9. package/dist/agent/context-handoff.js.map +1 -1
  10. package/dist/agent/index.d.ts +8 -1
  11. package/dist/agent/index.d.ts.map +1 -1
  12. package/dist/agent/index.js +8 -1
  13. package/dist/agent/index.js.map +1 -1
  14. package/dist/agent/modes.d.ts +1 -1
  15. package/dist/agent/modes.d.ts.map +1 -1
  16. package/dist/agent/modes.js +56 -0
  17. package/dist/agent/modes.js.map +1 -1
  18. package/dist/agent/oracle-consultation-policy.d.ts +22 -0
  19. package/dist/agent/oracle-consultation-policy.d.ts.map +1 -0
  20. package/dist/agent/oracle-consultation-policy.js +72 -0
  21. package/dist/agent/oracle-consultation-policy.js.map +1 -0
  22. package/dist/agent/oracle-policy-experiment.d.ts +27 -0
  23. package/dist/agent/oracle-policy-experiment.d.ts.map +1 -0
  24. package/dist/agent/oracle-policy-experiment.js +59 -0
  25. package/dist/agent/oracle-policy-experiment.js.map +1 -0
  26. package/dist/agent/oracle-policy-rollout.d.ts +42 -0
  27. package/dist/agent/oracle-policy-rollout.d.ts.map +1 -0
  28. package/dist/agent/oracle-policy-rollout.js +80 -0
  29. package/dist/agent/oracle-policy-rollout.js.map +1 -0
  30. package/dist/agent/plugin-agent-api.d.ts +13 -0
  31. package/dist/agent/plugin-agent-api.d.ts.map +1 -0
  32. package/dist/agent/plugin-agent-api.js +11 -0
  33. package/dist/agent/plugin-agent-api.js.map +1 -0
  34. package/dist/agent/plugin-agent-loader.d.ts +17 -0
  35. package/dist/agent/plugin-agent-loader.d.ts.map +1 -0
  36. package/dist/agent/plugin-agent-loader.js +81 -0
  37. package/dist/agent/plugin-agent-loader.js.map +1 -0
  38. package/dist/agent/plugin-agent-registry.d.ts +62 -0
  39. package/dist/agent/plugin-agent-registry.d.ts.map +1 -0
  40. package/dist/agent/plugin-agent-registry.js +109 -0
  41. package/dist/agent/plugin-agent-registry.js.map +1 -0
  42. package/dist/agent/profile-loader.d.ts +7 -0
  43. package/dist/agent/profile-loader.d.ts.map +1 -0
  44. package/dist/agent/profile-loader.js +115 -0
  45. package/dist/agent/profile-loader.js.map +1 -0
  46. package/dist/agent/profiles.d.ts +30 -0
  47. package/dist/agent/profiles.d.ts.map +1 -0
  48. package/dist/agent/profiles.js +146 -0
  49. package/dist/agent/profiles.js.map +1 -0
  50. package/dist/agent/prompt-cache.d.ts +0 -4
  51. package/dist/agent/prompt-cache.d.ts.map +1 -1
  52. package/dist/agent/prompt-cache.js +1 -7
  53. package/dist/agent/prompt-cache.js.map +1 -1
  54. package/dist/agent/providers/google-gemini-cli.js +1 -0
  55. package/dist/agent/providers/google.js +1 -0
  56. package/dist/agent/providers/vertex.js +1 -0
  57. package/dist/agent/routing-receipt.d.ts +34 -0
  58. package/dist/agent/routing-receipt.d.ts.map +1 -0
  59. package/dist/agent/routing-receipt.js +55 -0
  60. package/dist/agent/routing-receipt.js.map +1 -0
  61. package/dist/{skills/artifact-metadata.d.ts → agent/skill-artifact-metadata.d.ts} +2 -4
  62. package/dist/agent/skill-artifact-metadata.d.ts.map +1 -0
  63. package/dist/{skills/artifact-metadata.js → agent/skill-artifact-metadata.js} +1 -38
  64. package/dist/agent/skill-artifact-metadata.js.map +1 -0
  65. package/dist/agent/subagent-specs.d.ts +1 -1
  66. package/dist/agent/subagent-specs.js +2 -2
  67. package/dist/agent/subagent-specs.js.map +1 -1
  68. package/dist/agent/token-counter.d.ts +40 -0
  69. package/dist/agent/token-counter.d.ts.map +1 -0
  70. package/dist/agent/token-counter.js +74 -0
  71. package/dist/agent/token-counter.js.map +1 -0
  72. package/dist/agent/transport/events.d.ts +1 -1
  73. package/dist/agent/transport/events.d.ts.map +1 -1
  74. package/dist/agent/transport/events.js +1 -1
  75. package/dist/agent/transport/events.js.map +1 -1
  76. package/dist/agent/types.d.ts +4 -2
  77. package/dist/agent/types.d.ts.map +1 -1
  78. package/dist/agent/types.js.map +1 -1
  79. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
  80. package/dist/app-server/plugin-bundle-api.js +1 -0
  81. package/dist/app-server/plugin-bundle-api.js.map +1 -1
  82. package/dist/app-server/session-api.d.ts.map +1 -1
  83. package/dist/app-server/session-api.js +15 -2
  84. package/dist/app-server/session-api.js.map +1 -1
  85. package/dist/audit/logger.d.ts +5 -5
  86. package/dist/cli/args.d.ts +2 -0
  87. package/dist/cli/args.d.ts.map +1 -1
  88. package/dist/cli/args.js +18 -1
  89. package/dist/cli/args.js.map +1 -1
  90. package/dist/cli/direct-runtime-command.d.ts +1 -0
  91. package/dist/cli/direct-runtime-command.d.ts.map +1 -1
  92. package/dist/cli/direct-runtime-command.js +25 -3
  93. package/dist/cli/direct-runtime-command.js.map +1 -1
  94. package/dist/cli/headless.d.ts +3 -19
  95. package/dist/cli/headless.d.ts.map +1 -1
  96. package/dist/cli/headless.js +8 -619
  97. package/dist/cli/headless.js.map +1 -1
  98. package/dist/cli/help.d.ts.map +1 -1
  99. package/dist/cli/help.js +3 -0
  100. package/dist/cli/help.js.map +1 -1
  101. package/dist/cli/native-tui-launcher.d.ts +126 -0
  102. package/dist/cli/native-tui-launcher.d.ts.map +1 -0
  103. package/dist/cli/native-tui-launcher.js +425 -0
  104. package/dist/cli/native-tui-launcher.js.map +1 -0
  105. package/dist/cli/rpc-mode.d.ts +3 -27
  106. package/dist/cli/rpc-mode.d.ts.map +1 -1
  107. package/dist/cli/rpc-mode.js +8 -177
  108. package/dist/cli/rpc-mode.js.map +1 -1
  109. package/dist/cli/session.d.ts +11 -19
  110. package/dist/cli/session.d.ts.map +1 -1
  111. package/dist/cli/session.js +6 -64
  112. package/dist/cli/session.js.map +1 -1
  113. package/dist/cli-command-runtime.d.ts.map +1 -1
  114. package/dist/cli-command-runtime.js +26 -24
  115. package/dist/cli-command-runtime.js.map +1 -1
  116. package/dist/cli-runtime.js +52529 -137615
  117. package/dist/config/env-vars.d.ts +12 -0
  118. package/dist/config/env-vars.d.ts.map +1 -1
  119. package/dist/config/env-vars.js +12 -0
  120. package/dist/config/env-vars.js.map +1 -1
  121. package/dist/{cli-tui → config}/ui-state.d.ts +6 -1
  122. package/dist/config/ui-state.d.ts.map +1 -0
  123. package/dist/{cli-tui → config}/ui-state.js +1 -1
  124. package/dist/config/ui-state.js.map +1 -0
  125. package/dist/context/repo-map.d.ts.map +1 -1
  126. package/dist/context/repo-map.js +1 -7
  127. package/dist/context/repo-map.js.map +1 -1
  128. package/dist/context/token-optimizer.d.ts.map +1 -1
  129. package/dist/context/token-optimizer.js +1 -8
  130. package/dist/context/token-optimizer.js.map +1 -1
  131. package/dist/db/schema.d.ts +2 -2
  132. package/dist/hooks/notification-hooks.d.ts +1 -1
  133. package/dist/hooks/notification-hooks.d.ts.map +1 -1
  134. package/dist/hooks/notification-hooks.js.map +1 -1
  135. package/dist/hooks/tui-surface.d.ts +35 -0
  136. package/dist/hooks/tui-surface.d.ts.map +1 -0
  137. package/dist/hooks/tui-surface.js +11 -0
  138. package/dist/hooks/tui-surface.js.map +1 -0
  139. package/dist/hooks/types.d.ts +2 -1
  140. package/dist/hooks/types.d.ts.map +1 -1
  141. package/dist/hooks/types.js.map +1 -1
  142. package/dist/hooks/typescript-loader.d.ts.map +1 -1
  143. package/dist/hooks/typescript-loader.js.map +1 -1
  144. package/dist/hooks/ui-context.d.ts.map +1 -1
  145. package/dist/hooks/ui-context.js.map +1 -1
  146. package/dist/main.d.ts.map +1 -1
  147. package/dist/main.js +154 -882
  148. package/dist/main.js.map +1 -1
  149. package/dist/models/config-loader.d.ts +5 -5
  150. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +45 -0
  151. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  152. package/dist/node_modules/@evalops/contracts/dist/index.js +2 -0
  153. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  154. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +284 -0
  155. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
  156. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +41 -0
  157. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
  158. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +986 -0
  159. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  160. package/dist/node_modules/@evalops/contracts/dist/schemas.js +49 -0
  161. package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  162. package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts +56 -0
  163. package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts.map +1 -0
  164. package/dist/node_modules/@evalops/contracts/dist/token-estimation.js +86 -0
  165. package/dist/node_modules/@evalops/contracts/dist/token-estimation.js.map +1 -0
  166. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  167. package/dist/packages/discovery.d.ts.map +1 -1
  168. package/dist/packages/discovery.js +1 -0
  169. package/dist/packages/discovery.js.map +1 -1
  170. package/dist/packages/inspection.d.ts.map +1 -1
  171. package/dist/packages/inspection.js +7 -1
  172. package/dist/packages/inspection.js.map +1 -1
  173. package/dist/packages/loader.d.ts.map +1 -1
  174. package/dist/packages/loader.js +8 -1
  175. package/dist/packages/loader.js.map +1 -1
  176. package/dist/packages/runtime.d.ts +1 -0
  177. package/dist/packages/runtime.d.ts.map +1 -1
  178. package/dist/packages/runtime.js +9 -1
  179. package/dist/packages/runtime.js.map +1 -1
  180. package/dist/packages/types.d.ts +6 -0
  181. package/dist/packages/types.d.ts.map +1 -1
  182. package/dist/packages/types.js.map +1 -1
  183. package/dist/runtime/agent-runtime.d.ts +22 -6
  184. package/dist/runtime/agent-runtime.d.ts.map +1 -1
  185. package/dist/runtime/agent-runtime.js +1 -1
  186. package/dist/runtime/agent-runtime.js.map +1 -1
  187. package/dist/runtime/env.d.ts +1 -0
  188. package/dist/runtime/env.d.ts.map +1 -1
  189. package/dist/runtime/env.js +1 -0
  190. package/dist/runtime/env.js.map +1 -1
  191. package/dist/{cli-tui → runtime}/prompt-queue.d.ts.map +1 -1
  192. package/dist/{cli-tui → runtime}/prompt-queue.js.map +1 -1
  193. package/dist/server/handlers/chat-ws.d.ts +2 -1
  194. package/dist/server/handlers/chat-ws.d.ts.map +1 -1
  195. package/dist/server/handlers/chat-ws.js +150 -5
  196. package/dist/server/handlers/chat-ws.js.map +1 -1
  197. package/dist/server/handlers/chat.d.ts.map +1 -1
  198. package/dist/server/handlers/chat.js +78 -5
  199. package/dist/server/handlers/chat.js.map +1 -1
  200. package/dist/server/handlers/package.d.ts.map +1 -1
  201. package/dist/server/handlers/package.js +1 -0
  202. package/dist/server/handlers/package.js.map +1 -1
  203. package/dist/server/handlers/queue.js +1 -1
  204. package/dist/server/handlers/queue.js.map +1 -1
  205. package/dist/server/handlers/ui.js +1 -1
  206. package/dist/server/handlers/ui.js.map +1 -1
  207. package/dist/server/handlers/zen.js +1 -1
  208. package/dist/server/handlers/zen.js.map +1 -1
  209. package/dist/server/hosted-session-manager.d.ts +3 -0
  210. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  211. package/dist/server/hosted-session-manager.js +26 -0
  212. package/dist/server/hosted-session-manager.js.map +1 -1
  213. package/dist/server/model-selection.d.ts +1 -0
  214. package/dist/server/model-selection.d.ts.map +1 -1
  215. package/dist/server/model-selection.js +4 -0
  216. package/dist/server/model-selection.js.map +1 -1
  217. package/dist/server/session-serialization.d.ts.map +1 -1
  218. package/dist/server/session-serialization.js +3 -0
  219. package/dist/server/session-serialization.js.map +1 -1
  220. package/dist/server/session-timeline.d.ts.map +1 -1
  221. package/dist/server/session-timeline.js +1 -1
  222. package/dist/server/session-timeline.js.map +1 -1
  223. package/dist/server/sse-session.d.ts +2 -0
  224. package/dist/server/sse-session.d.ts.map +1 -1
  225. package/dist/server/sse-session.js +3 -0
  226. package/dist/server/sse-session.js.map +1 -1
  227. package/dist/server/stores/ui-store.d.ts +1 -1
  228. package/dist/server/stores/ui-store.d.ts.map +1 -1
  229. package/dist/server/stores/ui-store.js.map +1 -1
  230. package/dist/server/utils/token-estimator.d.ts +2 -2
  231. package/dist/server/utils/token-estimator.d.ts.map +1 -1
  232. package/dist/server/utils/token-estimator.js +2 -12
  233. package/dist/server/utils/token-estimator.js.map +1 -1
  234. package/dist/server/validation.d.ts +54 -0
  235. package/dist/server/validation.d.ts.map +1 -1
  236. package/dist/services/image-providers/cost.d.ts +70 -0
  237. package/dist/services/image-providers/cost.d.ts.map +1 -0
  238. package/dist/services/image-providers/cost.js +164 -0
  239. package/dist/services/image-providers/cost.js.map +1 -0
  240. package/dist/services/image-providers/flux.d.ts +40 -0
  241. package/dist/services/image-providers/flux.d.ts.map +1 -0
  242. package/dist/services/image-providers/flux.js +99 -0
  243. package/dist/services/image-providers/flux.js.map +1 -0
  244. package/dist/services/image-providers/index.d.ts +24 -0
  245. package/dist/services/image-providers/index.d.ts.map +1 -0
  246. package/dist/services/image-providers/index.js +27 -0
  247. package/dist/services/image-providers/index.js.map +1 -0
  248. package/dist/services/image-providers/masks.d.ts +51 -0
  249. package/dist/services/image-providers/masks.d.ts.map +1 -0
  250. package/dist/services/image-providers/masks.js +132 -0
  251. package/dist/services/image-providers/masks.js.map +1 -0
  252. package/dist/services/image-providers/openai.d.ts +35 -0
  253. package/dist/services/image-providers/openai.d.ts.map +1 -0
  254. package/dist/services/image-providers/openai.js +93 -0
  255. package/dist/services/image-providers/openai.js.map +1 -0
  256. package/dist/services/image-providers/types.d.ts +61 -0
  257. package/dist/services/image-providers/types.d.ts.map +1 -0
  258. package/dist/services/image-providers/types.js +17 -0
  259. package/dist/services/image-providers/types.js.map +1 -0
  260. package/dist/services/intelligent-router/index.d.ts +1 -0
  261. package/dist/services/intelligent-router/index.d.ts.map +1 -1
  262. package/dist/services/intelligent-router/index.js +1 -0
  263. package/dist/services/intelligent-router/index.js.map +1 -1
  264. package/dist/services/intelligent-router/normalize.d.ts +1 -0
  265. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  266. package/dist/services/intelligent-router/normalize.js +17 -0
  267. package/dist/services/intelligent-router/normalize.js.map +1 -1
  268. package/dist/services/intelligent-router/outcome.d.ts +19 -0
  269. package/dist/services/intelligent-router/outcome.d.ts.map +1 -0
  270. package/dist/services/intelligent-router/outcome.js +51 -0
  271. package/dist/services/intelligent-router/outcome.js.map +1 -0
  272. package/dist/services/intelligent-router/recorder.d.ts +2 -0
  273. package/dist/services/intelligent-router/recorder.d.ts.map +1 -1
  274. package/dist/services/intelligent-router/recorder.js +72 -1
  275. package/dist/services/intelligent-router/recorder.js.map +1 -1
  276. package/dist/services/intelligent-router/service.d.ts +1 -0
  277. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  278. package/dist/services/intelligent-router/service.js +60 -11
  279. package/dist/services/intelligent-router/service.js.map +1 -1
  280. package/dist/services/intelligent-router/types.d.ts +18 -0
  281. package/dist/services/intelligent-router/types.d.ts.map +1 -1
  282. package/dist/services/intelligent-router/types.js.map +1 -1
  283. package/dist/services/workspace-config/middleware.d.ts +2 -0
  284. package/dist/services/workspace-config/middleware.d.ts.map +1 -1
  285. package/dist/services/workspace-config/middleware.js +25 -28
  286. package/dist/services/workspace-config/middleware.js.map +1 -1
  287. package/dist/session/agent-lineage-projection.d.ts +30 -0
  288. package/dist/session/agent-lineage-projection.d.ts.map +1 -0
  289. package/dist/session/agent-lineage-projection.js +109 -0
  290. package/dist/session/agent-lineage-projection.js.map +1 -0
  291. package/dist/session/manager.d.ts +3 -0
  292. package/dist/session/manager.d.ts.map +1 -1
  293. package/dist/session/manager.js +24 -0
  294. package/dist/session/manager.js.map +1 -1
  295. package/dist/session/session-graph-projection.d.ts +11 -0
  296. package/dist/session/session-graph-projection.d.ts.map +1 -1
  297. package/dist/session/session-graph-projection.js +28 -0
  298. package/dist/session/session-graph-projection.js.map +1 -1
  299. package/dist/session/types.d.ts +2 -0
  300. package/dist/session/types.d.ts.map +1 -1
  301. package/dist/session/types.js.map +1 -1
  302. package/dist/telemetry/maestro-event-bus.d.ts +1 -1
  303. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  304. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  305. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  306. package/dist/telemetry/oracle-policy.d.ts +6 -0
  307. package/dist/telemetry/oracle-policy.d.ts.map +1 -0
  308. package/dist/telemetry/oracle-policy.js +17 -0
  309. package/dist/telemetry/oracle-policy.js.map +1 -0
  310. package/dist/telemetry/wide-events.d.ts +1 -1
  311. package/dist/telemetry/wide-events.d.ts.map +1 -1
  312. package/dist/telemetry/wide-events.js.map +1 -1
  313. package/dist/theme/theme.d.ts +2 -8
  314. package/dist/theme/theme.d.ts.map +1 -1
  315. package/dist/theme/theme.js +7 -0
  316. package/dist/theme/theme.js.map +1 -1
  317. package/dist/theme/tui-theme-helpers.d.ts +2 -1
  318. package/dist/theme/tui-theme-helpers.d.ts.map +1 -1
  319. package/dist/theme/tui-theme-helpers.js.map +1 -1
  320. package/dist/theme/tui-theme-types.d.ts +39 -0
  321. package/dist/theme/tui-theme-types.d.ts.map +1 -0
  322. package/dist/theme/tui-theme-types.js +10 -0
  323. package/dist/theme/tui-theme-types.js.map +1 -0
  324. package/dist/tools/index.d.ts +199 -160
  325. package/dist/tools/index.d.ts.map +1 -1
  326. package/dist/tools/index.js +4 -0
  327. package/dist/tools/index.js.map +1 -1
  328. package/dist/tools/lazy-registry.d.ts.map +1 -1
  329. package/dist/tools/lazy-registry.js +1 -0
  330. package/dist/tools/lazy-registry.js.map +1 -1
  331. package/dist/tools/oracle.d.ts +9 -0
  332. package/dist/tools/oracle.d.ts.map +1 -1
  333. package/dist/tools/oracle.js +26 -24
  334. package/dist/tools/oracle.js.map +1 -1
  335. package/dist/tools/painter.d.ts +73 -0
  336. package/dist/tools/painter.d.ts.map +1 -0
  337. package/dist/tools/painter.js +283 -0
  338. package/dist/tools/painter.js.map +1 -0
  339. package/dist/tools/typebox-tool.d.ts.map +1 -1
  340. package/dist/tools/typebox-tool.js +1 -1
  341. package/dist/tools/typebox-tool.js.map +1 -1
  342. package/dist/utils/terminal-image.d.ts +52 -0
  343. package/dist/utils/terminal-image.d.ts.map +1 -0
  344. package/dist/utils/terminal-image.js +95 -0
  345. package/dist/utils/terminal-image.js.map +1 -0
  346. package/dist/utils/terminal-text.d.ts +11 -0
  347. package/dist/utils/terminal-text.d.ts.map +1 -0
  348. package/dist/utils/terminal-text.js +21 -0
  349. package/dist/utils/terminal-text.js.map +1 -0
  350. package/dist/version.json +2 -2
  351. package/dist/web-server.d.ts.map +1 -1
  352. package/dist/web-server.js +24 -2
  353. package/dist/web-server.js.map +1 -1
  354. package/package.json +13 -11
  355. package/skills/incident-triage/SKILL.md +4 -3
  356. package/dist/cli/commands/agents.d.ts +0 -24
  357. package/dist/cli/commands/agents.d.ts.map +0 -1
  358. package/dist/cli/commands/agents.js +0 -429
  359. package/dist/cli/commands/agents.js.map +0 -1
  360. package/dist/cli/commands/anthropic.d.ts +0 -2
  361. package/dist/cli/commands/anthropic.d.ts.map +0 -1
  362. package/dist/cli/commands/anthropic.js +0 -6
  363. package/dist/cli/commands/anthropic.js.map +0 -1
  364. package/dist/cli/commands/cost.d.ts +0 -13
  365. package/dist/cli/commands/cost.d.ts.map +0 -1
  366. package/dist/cli/commands/cost.js +0 -143
  367. package/dist/cli/commands/cost.js.map +0 -1
  368. package/dist/cli/commands/exec-constants.d.ts +0 -3
  369. package/dist/cli/commands/exec-constants.d.ts.map +0 -1
  370. package/dist/cli/commands/exec-constants.js +0 -3
  371. package/dist/cli/commands/exec-constants.js.map +0 -1
  372. package/dist/cli/commands/exec.d.ts +0 -19
  373. package/dist/cli/commands/exec.d.ts.map +0 -1
  374. package/dist/cli/commands/exec.js +0 -207
  375. package/dist/cli/commands/exec.js.map +0 -1
  376. package/dist/cli/commands/hooks.d.ts +0 -2
  377. package/dist/cli/commands/hooks.d.ts.map +0 -1
  378. package/dist/cli/commands/hooks.js +0 -25
  379. package/dist/cli/commands/hooks.js.map +0 -1
  380. package/dist/cli/commands/hosted-runner.d.ts +0 -25
  381. package/dist/cli/commands/hosted-runner.d.ts.map +0 -1
  382. package/dist/cli/commands/hosted-runner.js +0 -278
  383. package/dist/cli/commands/hosted-runner.js.map +0 -1
  384. package/dist/cli/commands/memory.d.ts +0 -2
  385. package/dist/cli/commands/memory.d.ts.map +0 -1
  386. package/dist/cli/commands/memory.js +0 -208
  387. package/dist/cli/commands/memory.js.map +0 -1
  388. package/dist/cli/commands/models.d.ts +0 -3
  389. package/dist/cli/commands/models.d.ts.map +0 -1
  390. package/dist/cli/commands/models.js +0 -154
  391. package/dist/cli/commands/models.js.map +0 -1
  392. package/dist/cli/commands/modes.d.ts +0 -8
  393. package/dist/cli/commands/modes.d.ts.map +0 -1
  394. package/dist/cli/commands/modes.js +0 -151
  395. package/dist/cli/commands/modes.js.map +0 -1
  396. package/dist/cli/commands/openai.d.ts +0 -2
  397. package/dist/cli/commands/openai.d.ts.map +0 -1
  398. package/dist/cli/commands/openai.js +0 -116
  399. package/dist/cli/commands/openai.js.map +0 -1
  400. package/dist/cli/commands/session-transfer.d.ts +0 -5
  401. package/dist/cli/commands/session-transfer.d.ts.map +0 -1
  402. package/dist/cli/commands/session-transfer.js +0 -43
  403. package/dist/cli/commands/session-transfer.js.map +0 -1
  404. package/dist/cli/commands/sessions.d.ts +0 -8
  405. package/dist/cli/commands/sessions.d.ts.map +0 -1
  406. package/dist/cli/commands/sessions.js +0 -152
  407. package/dist/cli/commands/sessions.js.map +0 -1
  408. package/dist/cli/commands/skill.d.ts +0 -10
  409. package/dist/cli/commands/skill.d.ts.map +0 -1
  410. package/dist/cli/commands/skill.js +0 -303
  411. package/dist/cli/commands/skill.js.map +0 -1
  412. package/dist/cli/commands/stats.d.ts +0 -7
  413. package/dist/cli/commands/stats.d.ts.map +0 -1
  414. package/dist/cli/commands/stats.js +0 -167
  415. package/dist/cli/commands/stats.js.map +0 -1
  416. package/dist/cli/commands/status.d.ts +0 -2
  417. package/dist/cli/commands/status.d.ts.map +0 -1
  418. package/dist/cli/commands/status.js +0 -11
  419. package/dist/cli/commands/status.js.map +0 -1
  420. package/dist/cli/commands/update.d.ts +0 -12
  421. package/dist/cli/commands/update.d.ts.map +0 -1
  422. package/dist/cli/commands/update.js +0 -148
  423. package/dist/cli/commands/update.js.map +0 -1
  424. package/dist/cli-tui/about-view.d.ts +0 -48
  425. package/dist/cli-tui/about-view.d.ts.map +0 -1
  426. package/dist/cli-tui/about-view.js +0 -206
  427. package/dist/cli-tui/about-view.js.map +0 -1
  428. package/dist/cli-tui/agent-event-router.d.ts +0 -28
  429. package/dist/cli-tui/agent-event-router.d.ts.map +0 -1
  430. package/dist/cli-tui/agent-event-router.js +0 -126
  431. package/dist/cli-tui/agent-event-router.js.map +0 -1
  432. package/dist/cli-tui/approval/approval-controller.d.ts +0 -28
  433. package/dist/cli-tui/approval/approval-controller.d.ts.map +0 -1
  434. package/dist/cli-tui/approval/approval-controller.js +0 -99
  435. package/dist/cli-tui/approval/approval-controller.js.map +0 -1
  436. package/dist/cli-tui/approval/approval-modal.d.ts +0 -26
  437. package/dist/cli-tui/approval/approval-modal.d.ts.map +0 -1
  438. package/dist/cli-tui/approval/approval-modal.js +0 -143
  439. package/dist/cli-tui/approval/approval-modal.js.map +0 -1
  440. package/dist/cli-tui/assistant-message.d.ts +0 -41
  441. package/dist/cli-tui/assistant-message.d.ts.map +0 -1
  442. package/dist/cli-tui/assistant-message.js +0 -236
  443. package/dist/cli-tui/assistant-message.js.map +0 -1
  444. package/dist/cli-tui/auth-state.d.ts +0 -7
  445. package/dist/cli-tui/auth-state.d.ts.map +0 -1
  446. package/dist/cli-tui/auth-state.js +0 -46
  447. package/dist/cli-tui/auth-state.js.map +0 -1
  448. package/dist/cli-tui/background/background-tasks-controller.d.ts +0 -31
  449. package/dist/cli-tui/background/background-tasks-controller.d.ts.map +0 -1
  450. package/dist/cli-tui/background/background-tasks-controller.js +0 -84
  451. package/dist/cli-tui/background/background-tasks-controller.js.map +0 -1
  452. package/dist/cli-tui/base-view.d.ts +0 -111
  453. package/dist/cli-tui/base-view.d.ts.map +0 -1
  454. package/dist/cli-tui/base-view.js +0 -145
  455. package/dist/cli-tui/base-view.js.map +0 -1
  456. package/dist/cli-tui/bash/background-launcher.d.ts +0 -14
  457. package/dist/cli-tui/bash/background-launcher.d.ts.map +0 -1
  458. package/dist/cli-tui/bash/background-launcher.js +0 -50
  459. package/dist/cli-tui/bash/background-launcher.js.map +0 -1
  460. package/dist/cli-tui/bash/bash-autocomplete.d.ts +0 -40
  461. package/dist/cli-tui/bash/bash-autocomplete.d.ts.map +0 -1
  462. package/dist/cli-tui/bash/bash-autocomplete.js +0 -347
  463. package/dist/cli-tui/bash/bash-autocomplete.js.map +0 -1
  464. package/dist/cli-tui/bash/bash-history.d.ts +0 -21
  465. package/dist/cli-tui/bash/bash-history.d.ts.map +0 -1
  466. package/dist/cli-tui/bash/bash-history.js +0 -72
  467. package/dist/cli-tui/bash/bash-history.js.map +0 -1
  468. package/dist/cli-tui/bash/bash-syntax.d.ts +0 -5
  469. package/dist/cli-tui/bash/bash-syntax.d.ts.map +0 -1
  470. package/dist/cli-tui/bash/bash-syntax.js +0 -176
  471. package/dist/cli-tui/bash/bash-syntax.js.map +0 -1
  472. package/dist/cli-tui/bash/index.d.ts +0 -4
  473. package/dist/cli-tui/bash/index.d.ts.map +0 -1
  474. package/dist/cli-tui/bash/index.js +0 -4
  475. package/dist/cli-tui/bash/index.js.map +0 -1
  476. package/dist/cli-tui/bash-mode-view.d.ts +0 -86
  477. package/dist/cli-tui/bash-mode-view.d.ts.map +0 -1
  478. package/dist/cli-tui/bash-mode-view.js +0 -560
  479. package/dist/cli-tui/bash-mode-view.js.map +0 -1
  480. package/dist/cli-tui/bash-shell-block.d.ts +0 -50
  481. package/dist/cli-tui/bash-shell-block.d.ts.map +0 -1
  482. package/dist/cli-tui/bash-shell-block.js +0 -119
  483. package/dist/cli-tui/bash-shell-block.js.map +0 -1
  484. package/dist/cli-tui/changelog-view.d.ts +0 -13
  485. package/dist/cli-tui/changelog-view.d.ts.map +0 -1
  486. package/dist/cli-tui/changelog-view.js +0 -34
  487. package/dist/cli-tui/changelog-view.js.map +0 -1
  488. package/dist/cli-tui/clean-mode.d.ts +0 -13
  489. package/dist/cli-tui/clean-mode.d.ts.map +0 -1
  490. package/dist/cli-tui/clean-mode.js +0 -32
  491. package/dist/cli-tui/clean-mode.js.map +0 -1
  492. package/dist/cli-tui/client-tools/client-tool-controller.d.ts +0 -41
  493. package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +0 -1
  494. package/dist/cli-tui/client-tools/client-tool-controller.js +0 -860
  495. package/dist/cli-tui/client-tools/client-tool-controller.js.map +0 -1
  496. package/dist/cli-tui/client-tools/local-client-tool-service.d.ts +0 -33
  497. package/dist/cli-tui/client-tools/local-client-tool-service.d.ts.map +0 -1
  498. package/dist/cli-tui/client-tools/local-client-tool-service.js +0 -94
  499. package/dist/cli-tui/client-tools/local-client-tool-service.js.map +0 -1
  500. package/dist/cli-tui/commands/a2a-handlers.d.ts +0 -7
  501. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +0 -1
  502. package/dist/cli-tui/commands/a2a-handlers.js +0 -215
  503. package/dist/cli-tui/commands/a2a-handlers.js.map +0 -1
  504. package/dist/cli-tui/commands/access-command.d.ts +0 -3
  505. package/dist/cli-tui/commands/access-command.d.ts.map +0 -1
  506. package/dist/cli-tui/commands/access-command.js +0 -89
  507. package/dist/cli-tui/commands/access-command.js.map +0 -1
  508. package/dist/cli-tui/commands/argument-parser.d.ts +0 -12
  509. package/dist/cli-tui/commands/argument-parser.d.ts.map +0 -1
  510. package/dist/cli-tui/commands/argument-parser.js +0 -135
  511. package/dist/cli-tui/commands/argument-parser.js.map +0 -1
  512. package/dist/cli-tui/commands/audit-command.d.ts +0 -5
  513. package/dist/cli-tui/commands/audit-command.d.ts.map +0 -1
  514. package/dist/cli-tui/commands/audit-command.js +0 -35
  515. package/dist/cli-tui/commands/audit-command.js.map +0 -1
  516. package/dist/cli-tui/commands/background-handlers.d.ts +0 -14
  517. package/dist/cli-tui/commands/background-handlers.d.ts.map +0 -1
  518. package/dist/cli-tui/commands/background-handlers.js +0 -115
  519. package/dist/cli-tui/commands/background-handlers.js.map +0 -1
  520. package/dist/cli-tui/commands/command-catalog.d.ts +0 -29
  521. package/dist/cli-tui/commands/command-catalog.d.ts.map +0 -1
  522. package/dist/cli-tui/commands/command-catalog.js +0 -666
  523. package/dist/cli-tui/commands/command-catalog.js.map +0 -1
  524. package/dist/cli-tui/commands/command-registry-adapter.d.ts +0 -12
  525. package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +0 -1
  526. package/dist/cli-tui/commands/command-registry-adapter.js +0 -129
  527. package/dist/cli-tui/commands/command-registry-adapter.js.map +0 -1
  528. package/dist/cli-tui/commands/command-suite-catalog.d.ts +0 -14
  529. package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +0 -1
  530. package/dist/cli-tui/commands/command-suite-catalog.js +0 -147
  531. package/dist/cli-tui/commands/command-suite-catalog.js.map +0 -1
  532. package/dist/cli-tui/commands/command-suite-handlers.d.ts +0 -111
  533. package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +0 -1
  534. package/dist/cli-tui/commands/command-suite-handlers.js +0 -110
  535. package/dist/cli-tui/commands/command-suite-handlers.js.map +0 -1
  536. package/dist/cli-tui/commands/composer-handlers.d.ts +0 -8
  537. package/dist/cli-tui/commands/composer-handlers.d.ts.map +0 -1
  538. package/dist/cli-tui/commands/composer-handlers.js +0 -90
  539. package/dist/cli-tui/commands/composer-handlers.js.map +0 -1
  540. package/dist/cli-tui/commands/framework-handlers.d.ts +0 -18
  541. package/dist/cli-tui/commands/framework-handlers.d.ts.map +0 -1
  542. package/dist/cli-tui/commands/framework-handlers.js +0 -57
  543. package/dist/cli-tui/commands/framework-handlers.js.map +0 -1
  544. package/dist/cli-tui/commands/guardian-handlers.d.ts +0 -20
  545. package/dist/cli-tui/commands/guardian-handlers.d.ts.map +0 -1
  546. package/dist/cli-tui/commands/guardian-handlers.js +0 -48
  547. package/dist/cli-tui/commands/guardian-handlers.js.map +0 -1
  548. package/dist/cli-tui/commands/handlers/mode-handler.d.ts +0 -32
  549. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +0 -1
  550. package/dist/cli-tui/commands/handlers/mode-handler.js +0 -153
  551. package/dist/cli-tui/commands/handlers/mode-handler.js.map +0 -1
  552. package/dist/cli-tui/commands/hotkeys-command.d.ts +0 -8
  553. package/dist/cli-tui/commands/hotkeys-command.d.ts.map +0 -1
  554. package/dist/cli-tui/commands/hotkeys-command.js +0 -61
  555. package/dist/cli-tui/commands/hotkeys-command.js.map +0 -1
  556. package/dist/cli-tui/commands/limits-command.d.ts +0 -3
  557. package/dist/cli-tui/commands/limits-command.d.ts.map +0 -1
  558. package/dist/cli-tui/commands/limits-command.js +0 -88
  559. package/dist/cli-tui/commands/limits-command.js.map +0 -1
  560. package/dist/cli-tui/commands/mcp-handlers.d.ts +0 -12
  561. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +0 -1
  562. package/dist/cli-tui/commands/mcp-handlers.js +0 -1306
  563. package/dist/cli-tui/commands/mcp-handlers.js.map +0 -1
  564. package/dist/cli-tui/commands/memory-handlers.d.ts +0 -28
  565. package/dist/cli-tui/commands/memory-handlers.d.ts.map +0 -1
  566. package/dist/cli-tui/commands/memory-handlers.js +0 -414
  567. package/dist/cli-tui/commands/memory-handlers.js.map +0 -1
  568. package/dist/cli-tui/commands/otel-handlers.d.ts +0 -11
  569. package/dist/cli-tui/commands/otel-handlers.d.ts.map +0 -1
  570. package/dist/cli-tui/commands/otel-handlers.js +0 -20
  571. package/dist/cli-tui/commands/otel-handlers.js.map +0 -1
  572. package/dist/cli-tui/commands/package-handlers.d.ts +0 -30
  573. package/dist/cli-tui/commands/package-handlers.d.ts.map +0 -1
  574. package/dist/cli-tui/commands/package-handlers.js +0 -499
  575. package/dist/cli-tui/commands/package-handlers.js.map +0 -1
  576. package/dist/cli-tui/commands/pii-command.d.ts +0 -3
  577. package/dist/cli-tui/commands/pii-command.d.ts.map +0 -1
  578. package/dist/cli-tui/commands/pii-command.js +0 -54
  579. package/dist/cli-tui/commands/pii-command.js.map +0 -1
  580. package/dist/cli-tui/commands/registry.d.ts +0 -3
  581. package/dist/cli-tui/commands/registry.d.ts.map +0 -1
  582. package/dist/cli-tui/commands/registry.js +0 -36
  583. package/dist/cli-tui/commands/registry.js.map +0 -1
  584. package/dist/cli-tui/commands/safety-handlers.d.ts +0 -36
  585. package/dist/cli-tui/commands/safety-handlers.d.ts.map +0 -1
  586. package/dist/cli-tui/commands/safety-handlers.js +0 -62
  587. package/dist/cli-tui/commands/safety-handlers.js.map +0 -1
  588. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +0 -26
  589. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +0 -1
  590. package/dist/cli-tui/commands/subcommands/auth-commands.js +0 -79
  591. package/dist/cli-tui/commands/subcommands/auth-commands.js.map +0 -1
  592. package/dist/cli-tui/commands/subcommands/config-commands.d.ts +0 -23
  593. package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +0 -1
  594. package/dist/cli-tui/commands/subcommands/config-commands.js +0 -61
  595. package/dist/cli-tui/commands/subcommands/config-commands.js.map +0 -1
  596. package/dist/cli-tui/commands/subcommands/diag-commands.d.ts +0 -46
  597. package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +0 -1
  598. package/dist/cli-tui/commands/subcommands/diag-commands.js +0 -163
  599. package/dist/cli-tui/commands/subcommands/diag-commands.js.map +0 -1
  600. package/dist/cli-tui/commands/subcommands/git-commands.d.ts +0 -18
  601. package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +0 -1
  602. package/dist/cli-tui/commands/subcommands/git-commands.js +0 -50
  603. package/dist/cli-tui/commands/subcommands/git-commands.js.map +0 -1
  604. package/dist/cli-tui/commands/subcommands/index.d.ts +0 -18
  605. package/dist/cli-tui/commands/subcommands/index.d.ts.map +0 -1
  606. package/dist/cli-tui/commands/subcommands/index.js +0 -18
  607. package/dist/cli-tui/commands/subcommands/index.js.map +0 -1
  608. package/dist/cli-tui/commands/subcommands/safety-commands.d.ts +0 -26
  609. package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +0 -1
  610. package/dist/cli-tui/commands/subcommands/safety-commands.js +0 -149
  611. package/dist/cli-tui/commands/subcommands/safety-commands.js.map +0 -1
  612. package/dist/cli-tui/commands/subcommands/session-commands.d.ts +0 -36
  613. package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +0 -1
  614. package/dist/cli-tui/commands/subcommands/session-commands.js +0 -112
  615. package/dist/cli-tui/commands/subcommands/session-commands.js.map +0 -1
  616. package/dist/cli-tui/commands/subcommands/tools-commands.d.ts +0 -27
  617. package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +0 -1
  618. package/dist/cli-tui/commands/subcommands/tools-commands.js +0 -80
  619. package/dist/cli-tui/commands/subcommands/tools-commands.js.map +0 -1
  620. package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +0 -30
  621. package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +0 -1
  622. package/dist/cli-tui/commands/subcommands/ui-commands.js +0 -74
  623. package/dist/cli-tui/commands/subcommands/ui-commands.js.map +0 -1
  624. package/dist/cli-tui/commands/subcommands/undo-commands.d.ts +0 -25
  625. package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +0 -1
  626. package/dist/cli-tui/commands/subcommands/undo-commands.js +0 -74
  627. package/dist/cli-tui/commands/subcommands/undo-commands.js.map +0 -1
  628. package/dist/cli-tui/commands/subcommands/usage-commands.d.ts +0 -19
  629. package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +0 -1
  630. package/dist/cli-tui/commands/subcommands/usage-commands.js +0 -63
  631. package/dist/cli-tui/commands/subcommands/usage-commands.js.map +0 -1
  632. package/dist/cli-tui/commands/subcommands/utils.d.ts +0 -127
  633. package/dist/cli-tui/commands/subcommands/utils.d.ts.map +0 -1
  634. package/dist/cli-tui/commands/subcommands/utils.js +0 -395
  635. package/dist/cli-tui/commands/subcommands/utils.js.map +0 -1
  636. package/dist/cli-tui/commands/types.d.ts +0 -105
  637. package/dist/cli-tui/commands/types.d.ts.map +0 -1
  638. package/dist/cli-tui/commands/types.js +0 -2
  639. package/dist/cli-tui/commands/types.js.map +0 -1
  640. package/dist/cli-tui/commands/undo-handlers.d.ts +0 -29
  641. package/dist/cli-tui/commands/undo-handlers.d.ts.map +0 -1
  642. package/dist/cli-tui/commands/undo-handlers.js +0 -305
  643. package/dist/cli-tui/commands/undo-handlers.js.map +0 -1
  644. package/dist/cli-tui/commands/utility-handlers.d.ts +0 -55
  645. package/dist/cli-tui/commands/utility-handlers.d.ts.map +0 -1
  646. package/dist/cli-tui/commands/utility-handlers.js +0 -137
  647. package/dist/cli-tui/commands/utility-handlers.js.map +0 -1
  648. package/dist/cli-tui/commands/workflow-handlers.d.ts +0 -22
  649. package/dist/cli-tui/commands/workflow-handlers.d.ts.map +0 -1
  650. package/dist/cli-tui/commands/workflow-handlers.js +0 -227
  651. package/dist/cli-tui/commands/workflow-handlers.js.map +0 -1
  652. package/dist/cli-tui/compact-boundary-message.d.ts +0 -9
  653. package/dist/cli-tui/compact-boundary-message.d.ts.map +0 -1
  654. package/dist/cli-tui/compact-boundary-message.js +0 -18
  655. package/dist/cli-tui/compact-boundary-message.js.map +0 -1
  656. package/dist/cli-tui/compaction-recovery.d.ts +0 -6
  657. package/dist/cli-tui/compaction-recovery.d.ts.map +0 -1
  658. package/dist/cli-tui/compaction-recovery.js +0 -13
  659. package/dist/cli-tui/compaction-recovery.js.map +0 -1
  660. package/dist/cli-tui/config-view.d.ts +0 -30
  661. package/dist/cli-tui/config-view.d.ts.map +0 -1
  662. package/dist/cli-tui/config-view.js +0 -255
  663. package/dist/cli-tui/config-view.js.map +0 -1
  664. package/dist/cli-tui/context-view.d.ts +0 -20
  665. package/dist/cli-tui/context-view.d.ts.map +0 -1
  666. package/dist/cli-tui/context-view.js +0 -191
  667. package/dist/cli-tui/context-view.js.map +0 -1
  668. package/dist/cli-tui/custom-editor.d.ts +0 -25
  669. package/dist/cli-tui/custom-editor.d.ts.map +0 -1
  670. package/dist/cli-tui/custom-editor.js +0 -241
  671. package/dist/cli-tui/custom-editor.js.map +0 -1
  672. package/dist/cli-tui/editor-view.d.ts +0 -34
  673. package/dist/cli-tui/editor-view.d.ts.map +0 -1
  674. package/dist/cli-tui/editor-view.js +0 -102
  675. package/dist/cli-tui/editor-view.js.map +0 -1
  676. package/dist/cli-tui/feedback-view.d.ts +0 -35
  677. package/dist/cli-tui/feedback-view.d.ts.map +0 -1
  678. package/dist/cli-tui/feedback-view.js +0 -271
  679. package/dist/cli-tui/feedback-view.js.map +0 -1
  680. package/dist/cli-tui/footer.d.ts +0 -56
  681. package/dist/cli-tui/footer.d.ts.map +0 -1
  682. package/dist/cli-tui/footer.js +0 -228
  683. package/dist/cli-tui/footer.js.map +0 -1
  684. package/dist/cli-tui/git/commit-modal.d.ts +0 -14
  685. package/dist/cli-tui/git/commit-modal.d.ts.map +0 -1
  686. package/dist/cli-tui/git/commit-modal.js +0 -56
  687. package/dist/cli-tui/git/commit-modal.js.map +0 -1
  688. package/dist/cli-tui/git/git-preview-modal.d.ts +0 -40
  689. package/dist/cli-tui/git/git-preview-modal.d.ts.map +0 -1
  690. package/dist/cli-tui/git/git-preview-modal.js +0 -123
  691. package/dist/cli-tui/git/git-preview-modal.js.map +0 -1
  692. package/dist/cli-tui/git/git-view.d.ts +0 -65
  693. package/dist/cli-tui/git/git-view.d.ts.map +0 -1
  694. package/dist/cli-tui/git/git-view.js +0 -529
  695. package/dist/cli-tui/git/git-view.js.map +0 -1
  696. package/dist/cli-tui/history/history-config.d.ts +0 -7
  697. package/dist/cli-tui/history/history-config.d.ts.map +0 -1
  698. package/dist/cli-tui/history/history-config.js +0 -49
  699. package/dist/cli-tui/history/history-config.js.map +0 -1
  700. package/dist/cli-tui/history/prompt-history.d.ts +0 -33
  701. package/dist/cli-tui/history/prompt-history.d.ts.map +0 -1
  702. package/dist/cli-tui/history/prompt-history.js +0 -185
  703. package/dist/cli-tui/history/prompt-history.js.map +0 -1
  704. package/dist/cli-tui/history/tool-history.d.ts +0 -50
  705. package/dist/cli-tui/history/tool-history.d.ts.map +0 -1
  706. package/dist/cli-tui/history/tool-history.js +0 -253
  707. package/dist/cli-tui/history/tool-history.js.map +0 -1
  708. package/dist/cli-tui/hook-message.d.ts +0 -13
  709. package/dist/cli-tui/hook-message.d.ts.map +0 -1
  710. package/dist/cli-tui/hook-message.js +0 -56
  711. package/dist/cli-tui/hook-message.js.map +0 -1
  712. package/dist/cli-tui/hooks/hook-input-modal.d.ts +0 -22
  713. package/dist/cli-tui/hooks/hook-input-modal.d.ts.map +0 -1
  714. package/dist/cli-tui/hooks/hook-input-modal.js +0 -63
  715. package/dist/cli-tui/hooks/hook-input-modal.js.map +0 -1
  716. package/dist/cli-tui/hotkeys-view.d.ts +0 -13
  717. package/dist/cli-tui/hotkeys-view.d.ts.map +0 -1
  718. package/dist/cli-tui/hotkeys-view.js +0 -96
  719. package/dist/cli-tui/hotkeys-view.js.map +0 -1
  720. package/dist/cli-tui/import-view.d.ts +0 -28
  721. package/dist/cli-tui/import-view.d.ts.map +0 -1
  722. package/dist/cli-tui/import-view.js +0 -184
  723. package/dist/cli-tui/import-view.js.map +0 -1
  724. package/dist/cli-tui/info-view.d.ts +0 -18
  725. package/dist/cli-tui/info-view.d.ts.map +0 -1
  726. package/dist/cli-tui/info-view.js +0 -107
  727. package/dist/cli-tui/info-view.js.map +0 -1
  728. package/dist/cli-tui/instruction-panel.d.ts +0 -11
  729. package/dist/cli-tui/instruction-panel.d.ts.map +0 -1
  730. package/dist/cli-tui/instruction-panel.js +0 -86
  731. package/dist/cli-tui/instruction-panel.js.map +0 -1
  732. package/dist/cli-tui/interrupt-controller.d.ts +0 -78
  733. package/dist/cli-tui/interrupt-controller.d.ts.map +0 -1
  734. package/dist/cli-tui/interrupt-controller.js +0 -104
  735. package/dist/cli-tui/interrupt-controller.js.map +0 -1
  736. package/dist/cli-tui/keybindings-config.d.ts +0 -27
  737. package/dist/cli-tui/keybindings-config.d.ts.map +0 -1
  738. package/dist/cli-tui/keybindings-config.js +0 -372
  739. package/dist/cli-tui/keybindings-config.js.map +0 -1
  740. package/dist/cli-tui/keybindings-watcher.d.ts +0 -8
  741. package/dist/cli-tui/keybindings-watcher.d.ts.map +0 -1
  742. package/dist/cli-tui/keybindings-watcher.js +0 -56
  743. package/dist/cli-tui/keybindings-watcher.js.map +0 -1
  744. package/dist/cli-tui/keybindings.d.ts +0 -13
  745. package/dist/cli-tui/keybindings.d.ts.map +0 -1
  746. package/dist/cli-tui/keybindings.js +0 -223
  747. package/dist/cli-tui/keybindings.js.map +0 -1
  748. package/dist/cli-tui/loader/loader-stage-manager.d.ts +0 -43
  749. package/dist/cli-tui/loader/loader-stage-manager.d.ts.map +0 -1
  750. package/dist/cli-tui/loader/loader-stage-manager.js +0 -241
  751. package/dist/cli-tui/loader/loader-stage-manager.js.map +0 -1
  752. package/dist/cli-tui/loader/loader-stage-telemetry.d.ts +0 -14
  753. package/dist/cli-tui/loader/loader-stage-telemetry.d.ts.map +0 -1
  754. package/dist/cli-tui/loader/loader-stage-telemetry.js +0 -34
  755. package/dist/cli-tui/loader/loader-stage-telemetry.js.map +0 -1
  756. package/dist/cli-tui/loader/loader-view.d.ts +0 -41
  757. package/dist/cli-tui/loader/loader-view.d.ts.map +0 -1
  758. package/dist/cli-tui/loader/loader-view.js +0 -162
  759. package/dist/cli-tui/loader/loader-view.js.map +0 -1
  760. package/dist/cli-tui/lsp-view.d.ts +0 -21
  761. package/dist/cli-tui/lsp-view.d.ts.map +0 -1
  762. package/dist/cli-tui/lsp-view.js +0 -183
  763. package/dist/cli-tui/lsp-view.js.map +0 -1
  764. package/dist/cli-tui/mermaid-renderer.d.ts +0 -2
  765. package/dist/cli-tui/mermaid-renderer.d.ts.map +0 -1
  766. package/dist/cli-tui/mermaid-renderer.js +0 -391
  767. package/dist/cli-tui/mermaid-renderer.js.map +0 -1
  768. package/dist/cli-tui/message-view.d.ts +0 -27
  769. package/dist/cli-tui/message-view.d.ts.map +0 -1
  770. package/dist/cli-tui/message-view.js +0 -169
  771. package/dist/cli-tui/message-view.js.map +0 -1
  772. package/dist/cli-tui/modal-manager.d.ts +0 -77
  773. package/dist/cli-tui/modal-manager.d.ts.map +0 -1
  774. package/dist/cli-tui/modal-manager.js +0 -131
  775. package/dist/cli-tui/modal-manager.js.map +0 -1
  776. package/dist/cli-tui/notification-view.d.ts +0 -16
  777. package/dist/cli-tui/notification-view.d.ts.map +0 -1
  778. package/dist/cli-tui/notification-view.js +0 -53
  779. package/dist/cli-tui/notification-view.js.map +0 -1
  780. package/dist/cli-tui/oauth/index.d.ts +0 -2
  781. package/dist/cli-tui/oauth/index.d.ts.map +0 -1
  782. package/dist/cli-tui/oauth/index.js +0 -2
  783. package/dist/cli-tui/oauth/index.js.map +0 -1
  784. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +0 -65
  785. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +0 -1
  786. package/dist/cli-tui/oauth/oauth-flow-controller.js +0 -400
  787. package/dist/cli-tui/oauth/oauth-flow-controller.js.map +0 -1
  788. package/dist/cli-tui/ollama-view.d.ts +0 -38
  789. package/dist/cli-tui/ollama-view.d.ts.map +0 -1
  790. package/dist/cli-tui/ollama-view.js +0 -395
  791. package/dist/cli-tui/ollama-view.js.map +0 -1
  792. package/dist/cli-tui/paste/index.d.ts +0 -2
  793. package/dist/cli-tui/paste/index.d.ts.map +0 -1
  794. package/dist/cli-tui/paste/index.js +0 -2
  795. package/dist/cli-tui/paste/index.js.map +0 -1
  796. package/dist/cli-tui/paste/paste-handler.d.ts +0 -54
  797. package/dist/cli-tui/paste/paste-handler.d.ts.map +0 -1
  798. package/dist/cli-tui/paste/paste-handler.js +0 -128
  799. package/dist/cli-tui/paste/paste-handler.js.map +0 -1
  800. package/dist/cli-tui/plan/plan-controller.d.ts +0 -28
  801. package/dist/cli-tui/plan/plan-controller.d.ts.map +0 -1
  802. package/dist/cli-tui/plan/plan-controller.js +0 -66
  803. package/dist/cli-tui/plan/plan-controller.js.map +0 -1
  804. package/dist/cli-tui/plan-panel-modal.d.ts +0 -28
  805. package/dist/cli-tui/plan-panel-modal.d.ts.map +0 -1
  806. package/dist/cli-tui/plan-panel-modal.js +0 -193
  807. package/dist/cli-tui/plan-panel-modal.js.map +0 -1
  808. package/dist/cli-tui/plan-view.d.ts +0 -57
  809. package/dist/cli-tui/plan-view.d.ts.map +0 -1
  810. package/dist/cli-tui/plan-view.js +0 -404
  811. package/dist/cli-tui/plan-view.js.map +0 -1
  812. package/dist/cli-tui/queue/follow-up-shortcut.d.ts +0 -6
  813. package/dist/cli-tui/queue/follow-up-shortcut.d.ts.map +0 -1
  814. package/dist/cli-tui/queue/follow-up-shortcut.js +0 -12
  815. package/dist/cli-tui/queue/follow-up-shortcut.js.map +0 -1
  816. package/dist/cli-tui/queue/index.d.ts +0 -3
  817. package/dist/cli-tui/queue/index.d.ts.map +0 -1
  818. package/dist/cli-tui/queue/index.js +0 -3
  819. package/dist/cli-tui/queue/index.js.map +0 -1
  820. package/dist/cli-tui/queue/queue-controller.d.ts +0 -109
  821. package/dist/cli-tui/queue/queue-controller.d.ts.map +0 -1
  822. package/dist/cli-tui/queue/queue-controller.js +0 -327
  823. package/dist/cli-tui/queue/queue-controller.js.map +0 -1
  824. package/dist/cli-tui/queue/queue-panel-controller.d.ts +0 -34
  825. package/dist/cli-tui/queue/queue-panel-controller.d.ts.map +0 -1
  826. package/dist/cli-tui/queue/queue-panel-controller.js +0 -163
  827. package/dist/cli-tui/queue/queue-panel-controller.js.map +0 -1
  828. package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts +0 -7
  829. package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts.map +0 -1
  830. package/dist/cli-tui/queue/queued-follow-up-edit-binding.js +0 -14
  831. package/dist/cli-tui/queue/queued-follow-up-edit-binding.js.map +0 -1
  832. package/dist/cli-tui/queue-panel-modal.d.ts +0 -26
  833. package/dist/cli-tui/queue-panel-modal.d.ts.map +0 -1
  834. package/dist/cli-tui/queue-panel-modal.js +0 -159
  835. package/dist/cli-tui/queue-panel-modal.js.map +0 -1
  836. package/dist/cli-tui/run/run-command-view.d.ts +0 -17
  837. package/dist/cli-tui/run/run-command-view.d.ts.map +0 -1
  838. package/dist/cli-tui/run/run-command-view.js +0 -62
  839. package/dist/cli-tui/run/run-command-view.js.map +0 -1
  840. package/dist/cli-tui/run/run-controller.d.ts +0 -24
  841. package/dist/cli-tui/run/run-controller.d.ts.map +0 -1
  842. package/dist/cli-tui/run/run-controller.js +0 -38
  843. package/dist/cli-tui/run/run-controller.js.map +0 -1
  844. package/dist/cli-tui/run/run-shell-command.d.ts +0 -13
  845. package/dist/cli-tui/run/run-shell-command.d.ts.map +0 -1
  846. package/dist/cli-tui/run/run-shell-command.js +0 -51
  847. package/dist/cli-tui/run/run-shell-command.js.map +0 -1
  848. package/dist/cli-tui/run/streaming-shell-command.d.ts +0 -19
  849. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +0 -1
  850. package/dist/cli-tui/run/streaming-shell-command.js +0 -107
  851. package/dist/cli-tui/run/streaming-shell-command.js.map +0 -1
  852. package/dist/cli-tui/search/file-search-view.d.ts +0 -22
  853. package/dist/cli-tui/search/file-search-view.d.ts.map +0 -1
  854. package/dist/cli-tui/search/file-search-view.js +0 -68
  855. package/dist/cli-tui/search/file-search-view.js.map +0 -1
  856. package/dist/cli-tui/search/file-search.d.ts +0 -13
  857. package/dist/cli-tui/search/file-search.d.ts.map +0 -1
  858. package/dist/cli-tui/search/file-search.js +0 -52
  859. package/dist/cli-tui/search/file-search.js.map +0 -1
  860. package/dist/cli-tui/security-status.d.ts +0 -83
  861. package/dist/cli-tui/security-status.d.ts.map +0 -1
  862. package/dist/cli-tui/security-status.js +0 -214
  863. package/dist/cli-tui/security-status.js.map +0 -1
  864. package/dist/cli-tui/selectors/base-selector.d.ts +0 -27
  865. package/dist/cli-tui/selectors/base-selector.d.ts.map +0 -1
  866. package/dist/cli-tui/selectors/base-selector.js +0 -47
  867. package/dist/cli-tui/selectors/base-selector.js.map +0 -1
  868. package/dist/cli-tui/selectors/branch-summary-modal.d.ts +0 -18
  869. package/dist/cli-tui/selectors/branch-summary-modal.d.ts.map +0 -1
  870. package/dist/cli-tui/selectors/branch-summary-modal.js +0 -24
  871. package/dist/cli-tui/selectors/branch-summary-modal.js.map +0 -1
  872. package/dist/cli-tui/selectors/model-selector-view.d.ts +0 -22
  873. package/dist/cli-tui/selectors/model-selector-view.d.ts.map +0 -1
  874. package/dist/cli-tui/selectors/model-selector-view.js +0 -31
  875. package/dist/cli-tui/selectors/model-selector-view.js.map +0 -1
  876. package/dist/cli-tui/selectors/model-selector.d.ts +0 -30
  877. package/dist/cli-tui/selectors/model-selector.d.ts.map +0 -1
  878. package/dist/cli-tui/selectors/model-selector.js +0 -218
  879. package/dist/cli-tui/selectors/model-selector.js.map +0 -1
  880. package/dist/cli-tui/selectors/oauth-selector-view.d.ts +0 -20
  881. package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +0 -1
  882. package/dist/cli-tui/selectors/oauth-selector-view.js +0 -28
  883. package/dist/cli-tui/selectors/oauth-selector-view.js.map +0 -1
  884. package/dist/cli-tui/selectors/oauth-selector.d.ts +0 -19
  885. package/dist/cli-tui/selectors/oauth-selector.d.ts.map +0 -1
  886. package/dist/cli-tui/selectors/oauth-selector.js +0 -120
  887. package/dist/cli-tui/selectors/oauth-selector.js.map +0 -1
  888. package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts +0 -19
  889. package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts.map +0 -1
  890. package/dist/cli-tui/selectors/queue-mode-selector-view.js +0 -29
  891. package/dist/cli-tui/selectors/queue-mode-selector-view.js.map +0 -1
  892. package/dist/cli-tui/selectors/queue-mode-selector.d.ts +0 -5
  893. package/dist/cli-tui/selectors/queue-mode-selector.d.ts.map +0 -1
  894. package/dist/cli-tui/selectors/queue-mode-selector.js +0 -34
  895. package/dist/cli-tui/selectors/queue-mode-selector.js.map +0 -1
  896. package/dist/cli-tui/selectors/report-selector-view.d.ts +0 -17
  897. package/dist/cli-tui/selectors/report-selector-view.d.ts.map +0 -1
  898. package/dist/cli-tui/selectors/report-selector-view.js +0 -29
  899. package/dist/cli-tui/selectors/report-selector-view.js.map +0 -1
  900. package/dist/cli-tui/selectors/report-selector.d.ts +0 -7
  901. package/dist/cli-tui/selectors/report-selector.d.ts.map +0 -1
  902. package/dist/cli-tui/selectors/report-selector.js +0 -31
  903. package/dist/cli-tui/selectors/report-selector.js.map +0 -1
  904. package/dist/cli-tui/selectors/theme-selector-view.d.ts +0 -19
  905. package/dist/cli-tui/selectors/theme-selector-view.d.ts.map +0 -1
  906. package/dist/cli-tui/selectors/theme-selector-view.js +0 -41
  907. package/dist/cli-tui/selectors/theme-selector-view.js.map +0 -1
  908. package/dist/cli-tui/selectors/theme-selector.d.ts +0 -14
  909. package/dist/cli-tui/selectors/theme-selector.d.ts.map +0 -1
  910. package/dist/cli-tui/selectors/theme-selector.js +0 -46
  911. package/dist/cli-tui/selectors/theme-selector.js.map +0 -1
  912. package/dist/cli-tui/selectors/thinking-selector-view.d.ts +0 -20
  913. package/dist/cli-tui/selectors/thinking-selector-view.d.ts.map +0 -1
  914. package/dist/cli-tui/selectors/thinking-selector-view.js +0 -31
  915. package/dist/cli-tui/selectors/thinking-selector-view.js.map +0 -1
  916. package/dist/cli-tui/selectors/thinking-selector.d.ts +0 -9
  917. package/dist/cli-tui/selectors/thinking-selector.d.ts.map +0 -1
  918. package/dist/cli-tui/selectors/thinking-selector.js +0 -47
  919. package/dist/cli-tui/selectors/thinking-selector.js.map +0 -1
  920. package/dist/cli-tui/selectors/tree-selector-view.d.ts +0 -32
  921. package/dist/cli-tui/selectors/tree-selector-view.d.ts.map +0 -1
  922. package/dist/cli-tui/selectors/tree-selector-view.js +0 -407
  923. package/dist/cli-tui/selectors/tree-selector-view.js.map +0 -1
  924. package/dist/cli-tui/selectors/tree-selector.d.ts +0 -27
  925. package/dist/cli-tui/selectors/tree-selector.d.ts.map +0 -1
  926. package/dist/cli-tui/selectors/tree-selector.js +0 -194
  927. package/dist/cli-tui/selectors/tree-selector.js.map +0 -1
  928. package/dist/cli-tui/selectors/user-message-selector-view.d.ts +0 -25
  929. package/dist/cli-tui/selectors/user-message-selector-view.d.ts.map +0 -1
  930. package/dist/cli-tui/selectors/user-message-selector-view.js +0 -101
  931. package/dist/cli-tui/selectors/user-message-selector-view.js.map +0 -1
  932. package/dist/cli-tui/selectors/user-message-selector.d.ts +0 -30
  933. package/dist/cli-tui/selectors/user-message-selector.d.ts.map +0 -1
  934. package/dist/cli-tui/selectors/user-message-selector.js +0 -114
  935. package/dist/cli-tui/selectors/user-message-selector.js.map +0 -1
  936. package/dist/cli-tui/session/branch-controller.d.ts +0 -65
  937. package/dist/cli-tui/session/branch-controller.d.ts.map +0 -1
  938. package/dist/cli-tui/session/branch-controller.js +0 -125
  939. package/dist/cli-tui/session/branch-controller.js.map +0 -1
  940. package/dist/cli-tui/session/conversation-compactor.d.ts +0 -64
  941. package/dist/cli-tui/session/conversation-compactor.d.ts.map +0 -1
  942. package/dist/cli-tui/session/conversation-compactor.js +0 -77
  943. package/dist/cli-tui/session/conversation-compactor.js.map +0 -1
  944. package/dist/cli-tui/session/session-context.d.ts +0 -59
  945. package/dist/cli-tui/session/session-context.d.ts.map +0 -1
  946. package/dist/cli-tui/session/session-context.js +0 -79
  947. package/dist/cli-tui/session/session-context.js.map +0 -1
  948. package/dist/cli-tui/session/session-data-provider.d.ts +0 -23
  949. package/dist/cli-tui/session/session-data-provider.d.ts.map +0 -1
  950. package/dist/cli-tui/session/session-data-provider.js +0 -22
  951. package/dist/cli-tui/session/session-data-provider.js.map +0 -1
  952. package/dist/cli-tui/session/session-list.d.ts +0 -18
  953. package/dist/cli-tui/session/session-list.d.ts.map +0 -1
  954. package/dist/cli-tui/session/session-list.js +0 -103
  955. package/dist/cli-tui/session/session-list.js.map +0 -1
  956. package/dist/cli-tui/session/session-selector.d.ts +0 -12
  957. package/dist/cli-tui/session/session-selector.d.ts.map +0 -1
  958. package/dist/cli-tui/session/session-selector.js +0 -37
  959. package/dist/cli-tui/session/session-selector.js.map +0 -1
  960. package/dist/cli-tui/session/session-summary-controller.d.ts +0 -24
  961. package/dist/cli-tui/session/session-summary-controller.d.ts.map +0 -1
  962. package/dist/cli-tui/session/session-summary-controller.js +0 -96
  963. package/dist/cli-tui/session/session-summary-controller.js.map +0 -1
  964. package/dist/cli-tui/session/session-switcher-view.d.ts +0 -20
  965. package/dist/cli-tui/session/session-switcher-view.d.ts.map +0 -1
  966. package/dist/cli-tui/session/session-switcher-view.js +0 -43
  967. package/dist/cli-tui/session/session-switcher-view.js.map +0 -1
  968. package/dist/cli-tui/session/session-switcher.d.ts +0 -38
  969. package/dist/cli-tui/session/session-switcher.d.ts.map +0 -1
  970. package/dist/cli-tui/session/session-switcher.js +0 -204
  971. package/dist/cli-tui/session/session-switcher.js.map +0 -1
  972. package/dist/cli-tui/session/session-view.d.ts +0 -46
  973. package/dist/cli-tui/session/session-view.d.ts.map +0 -1
  974. package/dist/cli-tui/session/session-view.js +0 -311
  975. package/dist/cli-tui/session/session-view.js.map +0 -1
  976. package/dist/cli-tui/slash/index.d.ts +0 -2
  977. package/dist/cli-tui/slash/index.d.ts.map +0 -1
  978. package/dist/cli-tui/slash/index.js +0 -2
  979. package/dist/cli-tui/slash/index.js.map +0 -1
  980. package/dist/cli-tui/slash/slash-command-matcher.d.ts +0 -55
  981. package/dist/cli-tui/slash/slash-command-matcher.d.ts.map +0 -1
  982. package/dist/cli-tui/slash/slash-command-matcher.js +0 -113
  983. package/dist/cli-tui/slash/slash-command-matcher.js.map +0 -1
  984. package/dist/cli-tui/smart-autocomplete-provider.d.ts +0 -5
  985. package/dist/cli-tui/smart-autocomplete-provider.d.ts.map +0 -1
  986. package/dist/cli-tui/smart-autocomplete-provider.js +0 -44
  987. package/dist/cli-tui/smart-autocomplete-provider.js.map +0 -1
  988. package/dist/cli-tui/startup-announcements.d.ts +0 -15
  989. package/dist/cli-tui/startup-announcements.d.ts.map +0 -1
  990. package/dist/cli-tui/startup-announcements.js +0 -75
  991. package/dist/cli-tui/startup-announcements.js.map +0 -1
  992. package/dist/cli-tui/status/cost-view.d.ts +0 -27
  993. package/dist/cli-tui/status/cost-view.d.ts.map +0 -1
  994. package/dist/cli-tui/status/cost-view.js +0 -212
  995. package/dist/cli-tui/status/cost-view.js.map +0 -1
  996. package/dist/cli-tui/status/diagnostics-templates.d.ts +0 -34
  997. package/dist/cli-tui/status/diagnostics-templates.d.ts.map +0 -1
  998. package/dist/cli-tui/status/diagnostics-templates.js +0 -167
  999. package/dist/cli-tui/status/diagnostics-templates.js.map +0 -1
  1000. package/dist/cli-tui/status/diagnostics-view.d.ts +0 -48
  1001. package/dist/cli-tui/status/diagnostics-view.d.ts.map +0 -1
  1002. package/dist/cli-tui/status/diagnostics-view.js +0 -249
  1003. package/dist/cli-tui/status/diagnostics-view.js.map +0 -1
  1004. package/dist/cli-tui/status/diagnostics.d.ts +0 -39
  1005. package/dist/cli-tui/status/diagnostics.d.ts.map +0 -1
  1006. package/dist/cli-tui/status/diagnostics.js +0 -286
  1007. package/dist/cli-tui/status/diagnostics.js.map +0 -1
  1008. package/dist/cli-tui/status/health-snapshot.d.ts +0 -17
  1009. package/dist/cli-tui/status/health-snapshot.d.ts.map +0 -1
  1010. package/dist/cli-tui/status/health-snapshot.js +0 -28
  1011. package/dist/cli-tui/status/health-snapshot.js.map +0 -1
  1012. package/dist/cli-tui/status/quota-view.d.ts +0 -37
  1013. package/dist/cli-tui/status/quota-view.d.ts.map +0 -1
  1014. package/dist/cli-tui/status/quota-view.js +0 -309
  1015. package/dist/cli-tui/status/quota-view.js.map +0 -1
  1016. package/dist/cli-tui/status/telemetry-view.d.ts +0 -23
  1017. package/dist/cli-tui/status/telemetry-view.d.ts.map +0 -1
  1018. package/dist/cli-tui/status/telemetry-view.js +0 -77
  1019. package/dist/cli-tui/status/telemetry-view.js.map +0 -1
  1020. package/dist/cli-tui/status/training-view.d.ts +0 -23
  1021. package/dist/cli-tui/status/training-view.d.ts.map +0 -1
  1022. package/dist/cli-tui/status/training-view.js +0 -71
  1023. package/dist/cli-tui/status/training-view.js.map +0 -1
  1024. package/dist/cli-tui/streaming-view.d.ts +0 -43
  1025. package/dist/cli-tui/streaming-view.d.ts.map +0 -1
  1026. package/dist/cli-tui/streaming-view.js +0 -176
  1027. package/dist/cli-tui/streaming-view.js.map +0 -1
  1028. package/dist/cli-tui/terminal/index.d.ts +0 -2
  1029. package/dist/cli-tui/terminal/index.d.ts.map +0 -1
  1030. package/dist/cli-tui/terminal/index.js +0 -2
  1031. package/dist/cli-tui/terminal/index.js.map +0 -1
  1032. package/dist/cli-tui/terminal/terminal-utils.d.ts +0 -44
  1033. package/dist/cli-tui/terminal/terminal-utils.d.ts.map +0 -1
  1034. package/dist/cli-tui/terminal/terminal-utils.js +0 -145
  1035. package/dist/cli-tui/terminal/terminal-utils.js.map +0 -1
  1036. package/dist/cli-tui/tips/tip-scheduler.d.ts +0 -19
  1037. package/dist/cli-tui/tips/tip-scheduler.d.ts.map +0 -1
  1038. package/dist/cli-tui/tips/tip-scheduler.js +0 -135
  1039. package/dist/cli-tui/tips/tip-scheduler.js.map +0 -1
  1040. package/dist/cli-tui/tool-execution.d.ts +0 -76
  1041. package/dist/cli-tui/tool-execution.d.ts.map +0 -1
  1042. package/dist/cli-tui/tool-execution.js +0 -217
  1043. package/dist/cli-tui/tool-execution.js.map +0 -1
  1044. package/dist/cli-tui/tool-output-view.d.ts +0 -22
  1045. package/dist/cli-tui/tool-output-view.d.ts.map +0 -1
  1046. package/dist/cli-tui/tool-output-view.js +0 -71
  1047. package/dist/cli-tui/tool-output-view.js.map +0 -1
  1048. package/dist/cli-tui/tool-renderers/index.d.ts +0 -4
  1049. package/dist/cli-tui/tool-renderers/index.d.ts.map +0 -1
  1050. package/dist/cli-tui/tool-renderers/index.js +0 -19
  1051. package/dist/cli-tui/tool-renderers/index.js.map +0 -1
  1052. package/dist/cli-tui/tool-renderers/render-bash.d.ts +0 -6
  1053. package/dist/cli-tui/tool-renderers/render-bash.d.ts.map +0 -1
  1054. package/dist/cli-tui/tool-renderers/render-bash.js +0 -90
  1055. package/dist/cli-tui/tool-renderers/render-bash.js.map +0 -1
  1056. package/dist/cli-tui/tool-renderers/render-batch.d.ts +0 -12
  1057. package/dist/cli-tui/tool-renderers/render-batch.d.ts.map +0 -1
  1058. package/dist/cli-tui/tool-renderers/render-batch.js +0 -133
  1059. package/dist/cli-tui/tool-renderers/render-batch.js.map +0 -1
  1060. package/dist/cli-tui/tool-renderers/render-edit.d.ts +0 -6
  1061. package/dist/cli-tui/tool-renderers/render-edit.d.ts.map +0 -1
  1062. package/dist/cli-tui/tool-renderers/render-edit.js +0 -125
  1063. package/dist/cli-tui/tool-renderers/render-edit.js.map +0 -1
  1064. package/dist/cli-tui/tool-renderers/render-generic.d.ts +0 -6
  1065. package/dist/cli-tui/tool-renderers/render-generic.d.ts.map +0 -1
  1066. package/dist/cli-tui/tool-renderers/render-generic.js +0 -66
  1067. package/dist/cli-tui/tool-renderers/render-generic.js.map +0 -1
  1068. package/dist/cli-tui/tool-renderers/render-read.d.ts +0 -9
  1069. package/dist/cli-tui/tool-renderers/render-read.d.ts.map +0 -1
  1070. package/dist/cli-tui/tool-renderers/render-read.js +0 -108
  1071. package/dist/cli-tui/tool-renderers/render-read.js.map +0 -1
  1072. package/dist/cli-tui/tool-renderers/render-style.d.ts +0 -21
  1073. package/dist/cli-tui/tool-renderers/render-style.d.ts.map +0 -1
  1074. package/dist/cli-tui/tool-renderers/render-style.js +0 -51
  1075. package/dist/cli-tui/tool-renderers/render-style.js.map +0 -1
  1076. package/dist/cli-tui/tool-renderers/render-write.d.ts +0 -5
  1077. package/dist/cli-tui/tool-renderers/render-write.d.ts.map +0 -1
  1078. package/dist/cli-tui/tool-renderers/render-write.js +0 -60
  1079. package/dist/cli-tui/tool-renderers/render-write.js.map +0 -1
  1080. package/dist/cli-tui/tool-renderers/types.d.ts +0 -20
  1081. package/dist/cli-tui/tool-renderers/types.d.ts.map +0 -1
  1082. package/dist/cli-tui/tool-renderers/types.js +0 -2
  1083. package/dist/cli-tui/tool-renderers/types.js.map +0 -1
  1084. package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts +0 -29
  1085. package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts.map +0 -1
  1086. package/dist/cli-tui/tool-retry/tool-retry-controller.js +0 -110
  1087. package/dist/cli-tui/tool-retry/tool-retry-controller.js.map +0 -1
  1088. package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts +0 -27
  1089. package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts.map +0 -1
  1090. package/dist/cli-tui/tool-retry/tool-retry-modal.js +0 -118
  1091. package/dist/cli-tui/tool-retry/tool-retry-modal.js.map +0 -1
  1092. package/dist/cli-tui/tool-status-view.d.ts +0 -32
  1093. package/dist/cli-tui/tool-status-view.d.ts.map +0 -1
  1094. package/dist/cli-tui/tool-status-view.js +0 -86
  1095. package/dist/cli-tui/tool-status-view.js.map +0 -1
  1096. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +0 -59
  1097. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +0 -1
  1098. package/dist/cli-tui/tui-renderer/agent-event-bridge.js +0 -129
  1099. package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +0 -1
  1100. package/dist/cli-tui/tui-renderer/approval-setup.d.ts +0 -13
  1101. package/dist/cli-tui/tui-renderer/approval-setup.d.ts.map +0 -1
  1102. package/dist/cli-tui/tui-renderer/approval-setup.js +0 -5
  1103. package/dist/cli-tui/tui-renderer/approval-setup.js.map +0 -1
  1104. package/dist/cli-tui/tui-renderer/attachment-controller.d.ts +0 -54
  1105. package/dist/cli-tui/tui-renderer/attachment-controller.d.ts.map +0 -1
  1106. package/dist/cli-tui/tui-renderer/attachment-controller.js +0 -160
  1107. package/dist/cli-tui/tui-renderer/attachment-controller.js.map +0 -1
  1108. package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts +0 -9
  1109. package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts.map +0 -1
  1110. package/dist/cli-tui/tui-renderer/background-tasks-setup.js +0 -7
  1111. package/dist/cli-tui/tui-renderer/background-tasks-setup.js.map +0 -1
  1112. package/dist/cli-tui/tui-renderer/branch-controller.d.ts +0 -41
  1113. package/dist/cli-tui/tui-renderer/branch-controller.d.ts.map +0 -1
  1114. package/dist/cli-tui/tui-renderer/branch-controller.js +0 -102
  1115. package/dist/cli-tui/tui-renderer/branch-controller.js.map +0 -1
  1116. package/dist/cli-tui/tui-renderer/clear-controller.d.ts +0 -75
  1117. package/dist/cli-tui/tui-renderer/clear-controller.d.ts.map +0 -1
  1118. package/dist/cli-tui/tui-renderer/clear-controller.js +0 -75
  1119. package/dist/cli-tui/tui-renderer/clear-controller.js.map +0 -1
  1120. package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts +0 -14
  1121. package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts.map +0 -1
  1122. package/dist/cli-tui/tui-renderer/client-tools-setup.js +0 -5
  1123. package/dist/cli-tui/tui-renderer/client-tools-setup.js.map +0 -1
  1124. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +0 -111
  1125. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +0 -1
  1126. package/dist/cli-tui/tui-renderer/command-registry-options.js +0 -163
  1127. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +0 -1
  1128. package/dist/cli-tui/tui-renderer/command-registry.d.ts +0 -16
  1129. package/dist/cli-tui/tui-renderer/command-registry.d.ts.map +0 -1
  1130. package/dist/cli-tui/tui-renderer/command-registry.js +0 -23
  1131. package/dist/cli-tui/tui-renderer/command-registry.js.map +0 -1
  1132. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +0 -29
  1133. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +0 -1
  1134. package/dist/cli-tui/tui-renderer/command-suite-wiring.js +0 -108
  1135. package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +0 -1
  1136. package/dist/cli-tui/tui-renderer/compaction-controller.d.ts +0 -100
  1137. package/dist/cli-tui/tui-renderer/compaction-controller.d.ts.map +0 -1
  1138. package/dist/cli-tui/tui-renderer/compaction-controller.js +0 -160
  1139. package/dist/cli-tui/tui-renderer/compaction-controller.js.map +0 -1
  1140. package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts +0 -42
  1141. package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts.map +0 -1
  1142. package/dist/cli-tui/tui-renderer/custom-commands-controller.js +0 -106
  1143. package/dist/cli-tui/tui-renderer/custom-commands-controller.js.map +0 -1
  1144. package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts +0 -37
  1145. package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts.map +0 -1
  1146. package/dist/cli-tui/tui-renderer/delegating-command-handlers.js +0 -139
  1147. package/dist/cli-tui/tui-renderer/delegating-command-handlers.js.map +0 -1
  1148. package/dist/cli-tui/tui-renderer/editor-bindings.d.ts +0 -21
  1149. package/dist/cli-tui/tui-renderer/editor-bindings.d.ts.map +0 -1
  1150. package/dist/cli-tui/tui-renderer/editor-bindings.js +0 -76
  1151. package/dist/cli-tui/tui-renderer/editor-bindings.js.map +0 -1
  1152. package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts +0 -90
  1153. package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts.map +0 -1
  1154. package/dist/cli-tui/tui-renderer/footer-hints-controller.js +0 -152
  1155. package/dist/cli-tui/tui-renderer/footer-hints-controller.js.map +0 -1
  1156. package/dist/cli-tui/tui-renderer/history-controller.d.ts +0 -35
  1157. package/dist/cli-tui/tui-renderer/history-controller.d.ts.map +0 -1
  1158. package/dist/cli-tui/tui-renderer/history-controller.js +0 -153
  1159. package/dist/cli-tui/tui-renderer/history-controller.js.map +0 -1
  1160. package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts +0 -83
  1161. package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts.map +0 -1
  1162. package/dist/cli-tui/tui-renderer/hook-ui-controller.js +0 -309
  1163. package/dist/cli-tui/tui-renderer/hook-ui-controller.js.map +0 -1
  1164. package/dist/cli-tui/tui-renderer/initial-preferences.d.ts +0 -19
  1165. package/dist/cli-tui/tui-renderer/initial-preferences.d.ts.map +0 -1
  1166. package/dist/cli-tui/tui-renderer/initial-preferences.js +0 -54
  1167. package/dist/cli-tui/tui-renderer/initial-preferences.js.map +0 -1
  1168. package/dist/cli-tui/tui-renderer/input-controller.d.ts +0 -56
  1169. package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +0 -1
  1170. package/dist/cli-tui/tui-renderer/input-controller.js +0 -104
  1171. package/dist/cli-tui/tui-renderer/input-controller.js.map +0 -1
  1172. package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts +0 -19
  1173. package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts.map +0 -1
  1174. package/dist/cli-tui/tui-renderer/interrupt-setup.js +0 -18
  1175. package/dist/cli-tui/tui-renderer/interrupt-setup.js.map +0 -1
  1176. package/dist/cli-tui/tui-renderer/loader-setup.d.ts +0 -14
  1177. package/dist/cli-tui/tui-renderer/loader-setup.d.ts.map +0 -1
  1178. package/dist/cli-tui/tui-renderer/loader-setup.js +0 -13
  1179. package/dist/cli-tui/tui-renderer/loader-setup.js.map +0 -1
  1180. package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts +0 -55
  1181. package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts.map +0 -1
  1182. package/dist/cli-tui/tui-renderer/mcp-events-setup.js +0 -143
  1183. package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +0 -1
  1184. package/dist/cli-tui/tui-renderer/misc-handlers.d.ts +0 -59
  1185. package/dist/cli-tui/tui-renderer/misc-handlers.d.ts.map +0 -1
  1186. package/dist/cli-tui/tui-renderer/misc-handlers.js +0 -143
  1187. package/dist/cli-tui/tui-renderer/misc-handlers.js.map +0 -1
  1188. package/dist/cli-tui/tui-renderer/oauth-setup.d.ts +0 -14
  1189. package/dist/cli-tui/tui-renderer/oauth-setup.d.ts.map +0 -1
  1190. package/dist/cli-tui/tui-renderer/oauth-setup.js +0 -26
  1191. package/dist/cli-tui/tui-renderer/oauth-setup.js.map +0 -1
  1192. package/dist/cli-tui/tui-renderer/plan-setup.d.ts +0 -19
  1193. package/dist/cli-tui/tui-renderer/plan-setup.d.ts.map +0 -1
  1194. package/dist/cli-tui/tui-renderer/plan-setup.js +0 -23
  1195. package/dist/cli-tui/tui-renderer/plan-setup.js.map +0 -1
  1196. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts +0 -21
  1197. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts.map +0 -1
  1198. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js +0 -64
  1199. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js.map +0 -1
  1200. package/dist/cli-tui/tui-renderer/queue-setup.d.ts +0 -18
  1201. package/dist/cli-tui/tui-renderer/queue-setup.d.ts.map +0 -1
  1202. package/dist/cli-tui/tui-renderer/queue-setup.js +0 -42
  1203. package/dist/cli-tui/tui-renderer/queue-setup.js.map +0 -1
  1204. package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts +0 -53
  1205. package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts.map +0 -1
  1206. package/dist/cli-tui/tui-renderer/quick-settings-controller.js +0 -100
  1207. package/dist/cli-tui/tui-renderer/quick-settings-controller.js.map +0 -1
  1208. package/dist/cli-tui/tui-renderer/session-setup.d.ts +0 -31
  1209. package/dist/cli-tui/tui-renderer/session-setup.d.ts.map +0 -1
  1210. package/dist/cli-tui/tui-renderer/session-setup.js +0 -45
  1211. package/dist/cli-tui/tui-renderer/session-setup.js.map +0 -1
  1212. package/dist/cli-tui/tui-renderer/session-state-controller.d.ts +0 -66
  1213. package/dist/cli-tui/tui-renderer/session-state-controller.d.ts.map +0 -1
  1214. package/dist/cli-tui/tui-renderer/session-state-controller.js +0 -139
  1215. package/dist/cli-tui/tui-renderer/session-state-controller.js.map +0 -1
  1216. package/dist/cli-tui/tui-renderer/skills-controller.d.ts +0 -73
  1217. package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +0 -1
  1218. package/dist/cli-tui/tui-renderer/skills-controller.js +0 -455
  1219. package/dist/cli-tui/tui-renderer/skills-controller.js.map +0 -1
  1220. package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts +0 -90
  1221. package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts.map +0 -1
  1222. package/dist/cli-tui/tui-renderer/slash-hint-controller.js +0 -131
  1223. package/dist/cli-tui/tui-renderer/slash-hint-controller.js.map +0 -1
  1224. package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts +0 -13
  1225. package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts.map +0 -1
  1226. package/dist/cli-tui/tui-renderer/tool-retry-setup.js +0 -5
  1227. package/dist/cli-tui/tui-renderer/tool-retry-setup.js.map +0 -1
  1228. package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts +0 -38
  1229. package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts.map +0 -1
  1230. package/dist/cli-tui/tui-renderer/tooling-views-setup.js +0 -48
  1231. package/dist/cli-tui/tui-renderer/tooling-views-setup.js.map +0 -1
  1232. package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +0 -70
  1233. package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +0 -1
  1234. package/dist/cli-tui/tui-renderer/ui-state-controller.js +0 -184
  1235. package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +0 -1
  1236. package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts +0 -13
  1237. package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts.map +0 -1
  1238. package/dist/cli-tui/tui-renderer/ui-state-setup.js +0 -11
  1239. package/dist/cli-tui/tui-renderer/ui-state-setup.js.map +0 -1
  1240. package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts +0 -26
  1241. package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts.map +0 -1
  1242. package/dist/cli-tui/tui-renderer/utility-views-setup.js +0 -23
  1243. package/dist/cli-tui/tui-renderer/utility-views-setup.js.map +0 -1
  1244. package/dist/cli-tui/tui-renderer/viewport-controller.d.ts +0 -33
  1245. package/dist/cli-tui/tui-renderer/viewport-controller.d.ts.map +0 -1
  1246. package/dist/cli-tui/tui-renderer/viewport-controller.js +0 -98
  1247. package/dist/cli-tui/tui-renderer/viewport-controller.js.map +0 -1
  1248. package/dist/cli-tui/tui-renderer.d.ts +0 -268
  1249. package/dist/cli-tui/tui-renderer.d.ts.map +0 -1
  1250. package/dist/cli-tui/tui-renderer.js +0 -2131
  1251. package/dist/cli-tui/tui-renderer.js.map +0 -1
  1252. package/dist/cli-tui/ui-state.d.ts.map +0 -1
  1253. package/dist/cli-tui/ui-state.js.map +0 -1
  1254. package/dist/cli-tui/update-view.d.ts +0 -16
  1255. package/dist/cli-tui/update-view.d.ts.map +0 -1
  1256. package/dist/cli-tui/update-view.js +0 -45
  1257. package/dist/cli-tui/update-view.js.map +0 -1
  1258. package/dist/cli-tui/user-message.d.ts +0 -17
  1259. package/dist/cli-tui/user-message.d.ts.map +0 -1
  1260. package/dist/cli-tui/user-message.js +0 -83
  1261. package/dist/cli-tui/user-message.js.map +0 -1
  1262. package/dist/cli-tui/utils/borders.d.ts +0 -131
  1263. package/dist/cli-tui/utils/borders.d.ts.map +0 -1
  1264. package/dist/cli-tui/utils/borders.js +0 -254
  1265. package/dist/cli-tui/utils/borders.js.map +0 -1
  1266. package/dist/cli-tui/utils/commands/command-palette-view.d.ts +0 -22
  1267. package/dist/cli-tui/utils/commands/command-palette-view.d.ts.map +0 -1
  1268. package/dist/cli-tui/utils/commands/command-palette-view.js +0 -31
  1269. package/dist/cli-tui/utils/commands/command-palette-view.js.map +0 -1
  1270. package/dist/cli-tui/utils/commands/command-palette.d.ts +0 -29
  1271. package/dist/cli-tui/utils/commands/command-palette.d.ts.map +0 -1
  1272. package/dist/cli-tui/utils/commands/command-palette.js +0 -213
  1273. package/dist/cli-tui/utils/commands/command-palette.js.map +0 -1
  1274. package/dist/cli-tui/utils/commands/command-registry-builder.d.ts +0 -8
  1275. package/dist/cli-tui/utils/commands/command-registry-builder.d.ts.map +0 -1
  1276. package/dist/cli-tui/utils/commands/command-registry-builder.js +0 -9
  1277. package/dist/cli-tui/utils/commands/command-registry-builder.js.map +0 -1
  1278. package/dist/cli-tui/utils/commands/review-prompt.d.ts +0 -10
  1279. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +0 -1
  1280. package/dist/cli-tui/utils/commands/review-prompt.js +0 -90
  1281. package/dist/cli-tui/utils/commands/review-prompt.js.map +0 -1
  1282. package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts +0 -15
  1283. package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts.map +0 -1
  1284. package/dist/cli-tui/utils/commands/slash-hint-bar.js +0 -106
  1285. package/dist/cli-tui/utils/commands/slash-hint-bar.js.map +0 -1
  1286. package/dist/cli-tui/utils/env-detect.d.ts +0 -11
  1287. package/dist/cli-tui/utils/env-detect.d.ts.map +0 -1
  1288. package/dist/cli-tui/utils/env-detect.js +0 -107
  1289. package/dist/cli-tui/utils/env-detect.js.map +0 -1
  1290. package/dist/cli-tui/utils/external-editor.d.ts +0 -7
  1291. package/dist/cli-tui/utils/external-editor.d.ts.map +0 -1
  1292. package/dist/cli-tui/utils/external-editor.js +0 -53
  1293. package/dist/cli-tui/utils/external-editor.js.map +0 -1
  1294. package/dist/cli-tui/utils/footer-utils.d.ts +0 -169
  1295. package/dist/cli-tui/utils/footer-utils.d.ts.map +0 -1
  1296. package/dist/cli-tui/utils/footer-utils.js +0 -716
  1297. package/dist/cli-tui/utils/footer-utils.js.map +0 -1
  1298. package/dist/cli-tui/utils/footer-visual-widgets.d.ts +0 -38
  1299. package/dist/cli-tui/utils/footer-visual-widgets.d.ts.map +0 -1
  1300. package/dist/cli-tui/utils/footer-visual-widgets.js +0 -141
  1301. package/dist/cli-tui/utils/footer-visual-widgets.js.map +0 -1
  1302. package/dist/cli-tui/utils/git-branch-tracker.d.ts +0 -38
  1303. package/dist/cli-tui/utils/git-branch-tracker.d.ts.map +0 -1
  1304. package/dist/cli-tui/utils/git-branch-tracker.js +0 -90
  1305. package/dist/cli-tui/utils/git-branch-tracker.js.map +0 -1
  1306. package/dist/cli-tui/utils/glyphs.d.ts +0 -207
  1307. package/dist/cli-tui/utils/glyphs.d.ts.map +0 -1
  1308. package/dist/cli-tui/utils/glyphs.js +0 -249
  1309. package/dist/cli-tui/utils/glyphs.js.map +0 -1
  1310. package/dist/cli-tui/utils/layout.d.ts +0 -77
  1311. package/dist/cli-tui/utils/layout.d.ts.map +0 -1
  1312. package/dist/cli-tui/utils/layout.js +0 -83
  1313. package/dist/cli-tui/utils/layout.js.map +0 -1
  1314. package/dist/cli-tui/utils/links.d.ts +0 -2
  1315. package/dist/cli-tui/utils/links.d.ts.map +0 -1
  1316. package/dist/cli-tui/utils/links.js +0 -14
  1317. package/dist/cli-tui/utils/links.js.map +0 -1
  1318. package/dist/cli-tui/utils/motion.d.ts +0 -4
  1319. package/dist/cli-tui/utils/motion.d.ts.map +0 -1
  1320. package/dist/cli-tui/utils/motion.js +0 -28
  1321. package/dist/cli-tui/utils/motion.js.map +0 -1
  1322. package/dist/cli-tui/utils/runtime-badges.d.ts +0 -26
  1323. package/dist/cli-tui/utils/runtime-badges.d.ts.map +0 -1
  1324. package/dist/cli-tui/utils/runtime-badges.js +0 -178
  1325. package/dist/cli-tui/utils/runtime-badges.js.map +0 -1
  1326. package/dist/cli-tui/utils/shimmer.d.ts +0 -12
  1327. package/dist/cli-tui/utils/shimmer.d.ts.map +0 -1
  1328. package/dist/cli-tui/utils/shimmer.js +0 -57
  1329. package/dist/cli-tui/utils/shimmer.js.map +0 -1
  1330. package/dist/cli-tui/utils/stage-labels.d.ts +0 -9
  1331. package/dist/cli-tui/utils/stage-labels.d.ts.map +0 -1
  1332. package/dist/cli-tui/utils/stage-labels.js +0 -65
  1333. package/dist/cli-tui/utils/stage-labels.js.map +0 -1
  1334. package/dist/cli-tui/utils/text-formatting.d.ts +0 -13
  1335. package/dist/cli-tui/utils/text-formatting.d.ts.map +0 -1
  1336. package/dist/cli-tui/utils/text-formatting.js +0 -109
  1337. package/dist/cli-tui/utils/text-formatting.js.map +0 -1
  1338. package/dist/cli-tui/utils/text-preview.d.ts +0 -10
  1339. package/dist/cli-tui/utils/text-preview.d.ts.map +0 -1
  1340. package/dist/cli-tui/utils/text-preview.js +0 -26
  1341. package/dist/cli-tui/utils/text-preview.js.map +0 -1
  1342. package/dist/cli-tui/utils/tool-text-utils.d.ts +0 -42
  1343. package/dist/cli-tui/utils/tool-text-utils.d.ts.map +0 -1
  1344. package/dist/cli-tui/utils/tool-text-utils.js +0 -361
  1345. package/dist/cli-tui/utils/tool-text-utils.js.map +0 -1
  1346. package/dist/cli-tui/welcome-animation.d.ts +0 -24
  1347. package/dist/cli-tui/welcome-animation.d.ts.map +0 -1
  1348. package/dist/cli-tui/welcome-animation.js +0 -99
  1349. package/dist/cli-tui/welcome-animation.js.map +0 -1
  1350. package/dist/cli-tui/welcome-colors.d.ts +0 -3
  1351. package/dist/cli-tui/welcome-colors.d.ts.map +0 -1
  1352. package/dist/cli-tui/welcome-colors.js +0 -39
  1353. package/dist/cli-tui/welcome-colors.js.map +0 -1
  1354. package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts +0 -304
  1355. package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts.map +0 -1
  1356. package/dist/node_modules/@evalops/tui/dist/autocomplete.js +0 -712
  1357. package/dist/node_modules/@evalops/tui/dist/autocomplete.js.map +0 -1
  1358. package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts +0 -185
  1359. package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts.map +0 -1
  1360. package/dist/node_modules/@evalops/tui/dist/components/editor.js +0 -1460
  1361. package/dist/node_modules/@evalops/tui/dist/components/editor.js.map +0 -1
  1362. package/dist/node_modules/@evalops/tui/dist/components/input.d.ts +0 -117
  1363. package/dist/node_modules/@evalops/tui/dist/components/input.d.ts.map +0 -1
  1364. package/dist/node_modules/@evalops/tui/dist/components/input.js +0 -391
  1365. package/dist/node_modules/@evalops/tui/dist/components/input.js.map +0 -1
  1366. package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts +0 -256
  1367. package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts.map +0 -1
  1368. package/dist/node_modules/@evalops/tui/dist/components/layout.js +0 -478
  1369. package/dist/node_modules/@evalops/tui/dist/components/layout.js.map +0 -1
  1370. package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts +0 -199
  1371. package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts.map +0 -1
  1372. package/dist/node_modules/@evalops/tui/dist/components/loader.js +0 -374
  1373. package/dist/node_modules/@evalops/tui/dist/components/loader.js.map +0 -1
  1374. package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts +0 -65
  1375. package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts.map +0 -1
  1376. package/dist/node_modules/@evalops/tui/dist/components/markdown.js +0 -562
  1377. package/dist/node_modules/@evalops/tui/dist/components/markdown.js.map +0 -1
  1378. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts +0 -262
  1379. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -1
  1380. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js +0 -575
  1381. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js.map +0 -1
  1382. package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts +0 -131
  1383. package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts.map +0 -1
  1384. package/dist/node_modules/@evalops/tui/dist/components/select-list.js +0 -257
  1385. package/dist/node_modules/@evalops/tui/dist/components/select-list.js.map +0 -1
  1386. package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts +0 -11
  1387. package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts.map +0 -1
  1388. package/dist/node_modules/@evalops/tui/dist/components/spacer.js +0 -19
  1389. package/dist/node_modules/@evalops/tui/dist/components/spacer.js.map +0 -1
  1390. package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts +0 -22
  1391. package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts.map +0 -1
  1392. package/dist/node_modules/@evalops/tui/dist/components/status-bar.js +0 -44
  1393. package/dist/node_modules/@evalops/tui/dist/components/status-bar.js.map +0 -1
  1394. package/dist/node_modules/@evalops/tui/dist/components/text.d.ts +0 -26
  1395. package/dist/node_modules/@evalops/tui/dist/components/text.d.ts.map +0 -1
  1396. package/dist/node_modules/@evalops/tui/dist/components/text.js +0 -181
  1397. package/dist/node_modules/@evalops/tui/dist/components/text.js.map +0 -1
  1398. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts +0 -15
  1399. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -1
  1400. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js +0 -84
  1401. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js.map +0 -1
  1402. package/dist/node_modules/@evalops/tui/dist/index.d.ts +0 -87
  1403. package/dist/node_modules/@evalops/tui/dist/index.d.ts.map +0 -1
  1404. package/dist/node_modules/@evalops/tui/dist/index.js +0 -85
  1405. package/dist/node_modules/@evalops/tui/dist/index.js.map +0 -1
  1406. package/dist/node_modules/@evalops/tui/dist/keymap.d.ts +0 -189
  1407. package/dist/node_modules/@evalops/tui/dist/keymap.d.ts.map +0 -1
  1408. package/dist/node_modules/@evalops/tui/dist/keymap.js +0 -363
  1409. package/dist/node_modules/@evalops/tui/dist/keymap.js.map +0 -1
  1410. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts +0 -25
  1411. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -1
  1412. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js +0 -828
  1413. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js.map +0 -1
  1414. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts +0 -40
  1415. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -1
  1416. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js +0 -474
  1417. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js.map +0 -1
  1418. package/dist/node_modules/@evalops/tui/dist/terminal.d.ts +0 -201
  1419. package/dist/node_modules/@evalops/tui/dist/terminal.d.ts.map +0 -1
  1420. package/dist/node_modules/@evalops/tui/dist/terminal.js +0 -241
  1421. package/dist/node_modules/@evalops/tui/dist/terminal.js.map +0 -1
  1422. package/dist/node_modules/@evalops/tui/dist/tui.d.ts +0 -263
  1423. package/dist/node_modules/@evalops/tui/dist/tui.d.ts.map +0 -1
  1424. package/dist/node_modules/@evalops/tui/dist/tui.js +0 -694
  1425. package/dist/node_modules/@evalops/tui/dist/tui.js.map +0 -1
  1426. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts +0 -14
  1427. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -1
  1428. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js +0 -44
  1429. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js.map +0 -1
  1430. package/dist/node_modules/@evalops/tui/dist/utils.d.ts +0 -32
  1431. package/dist/node_modules/@evalops/tui/dist/utils.d.ts.map +0 -1
  1432. package/dist/node_modules/@evalops/tui/dist/utils.js +0 -556
  1433. package/dist/node_modules/@evalops/tui/dist/utils.js.map +0 -1
  1434. package/dist/node_modules/@evalops/tui/package.json +0 -58
  1435. package/dist/skills/artifact-metadata.d.ts.map +0 -1
  1436. package/dist/skills/artifact-metadata.js.map +0 -1
  1437. package/dist/skills/composer-diagnostics.d.ts +0 -69
  1438. package/dist/skills/composer-diagnostics.d.ts.map +0 -1
  1439. package/dist/skills/composer-diagnostics.js +0 -78
  1440. package/dist/skills/composer-diagnostics.js.map +0 -1
  1441. package/dist/skills/composer.d.ts +0 -19
  1442. package/dist/skills/composer.d.ts.map +0 -1
  1443. package/dist/skills/composer.js +0 -64
  1444. package/dist/skills/composer.js.map +0 -1
  1445. package/dist/skills/eval-harness.d.ts +0 -38
  1446. package/dist/skills/eval-harness.d.ts.map +0 -1
  1447. package/dist/skills/eval-harness.js +0 -112
  1448. package/dist/skills/eval-harness.js.map +0 -1
  1449. package/dist/skills/index.d.ts +0 -41
  1450. package/dist/skills/index.d.ts.map +0 -1
  1451. package/dist/skills/index.js +0 -41
  1452. package/dist/skills/index.js.map +0 -1
  1453. package/dist/skills/learned-guidelines.d.ts +0 -33
  1454. package/dist/skills/learned-guidelines.d.ts.map +0 -1
  1455. package/dist/skills/learned-guidelines.js +0 -291
  1456. package/dist/skills/learned-guidelines.js.map +0 -1
  1457. package/dist/skills/linter.d.ts +0 -36
  1458. package/dist/skills/linter.d.ts.map +0 -1
  1459. package/dist/skills/linter.js +0 -397
  1460. package/dist/skills/linter.js.map +0 -1
  1461. package/dist/skills/loader.d.ts +0 -252
  1462. package/dist/skills/loader.d.ts.map +0 -1
  1463. package/dist/skills/loader.js +0 -957
  1464. package/dist/skills/loader.js.map +0 -1
  1465. package/dist/skills/package-contract.d.ts +0 -45
  1466. package/dist/skills/package-contract.d.ts.map +0 -1
  1467. package/dist/skills/package-contract.js +0 -153
  1468. package/dist/skills/package-contract.js.map +0 -1
  1469. package/dist/skills/runtime-activation.d.ts +0 -69
  1470. package/dist/skills/runtime-activation.d.ts.map +0 -1
  1471. package/dist/skills/runtime-activation.js +0 -227
  1472. package/dist/skills/runtime-activation.js.map +0 -1
  1473. package/dist/skills/scaffold-from-template.d.ts +0 -58
  1474. package/dist/skills/scaffold-from-template.d.ts.map +0 -1
  1475. package/dist/skills/scaffold-from-template.js +0 -72
  1476. package/dist/skills/scaffold-from-template.js.map +0 -1
  1477. package/dist/skills/scaffolder.d.ts +0 -65
  1478. package/dist/skills/scaffolder.d.ts.map +0 -1
  1479. package/dist/skills/scaffolder.js +0 -167
  1480. package/dist/skills/scaffolder.js.map +0 -1
  1481. package/dist/skills/service-client.d.ts +0 -56
  1482. package/dist/skills/service-client.d.ts.map +0 -1
  1483. package/dist/skills/service-client.js +0 -266
  1484. package/dist/skills/service-client.js.map +0 -1
  1485. package/dist/skills/skill-templates.d.ts +0 -70
  1486. package/dist/skills/skill-templates.d.ts.map +0 -1
  1487. package/dist/skills/skill-templates.js +0 -154
  1488. package/dist/skills/skill-templates.js.map +0 -1
  1489. package/dist/skills/tool.d.ts +0 -21
  1490. package/dist/skills/tool.d.ts.map +0 -1
  1491. package/dist/skills/tool.js +0 -339
  1492. package/dist/skills/tool.js.map +0 -1
  1493. package/dist/skills/trust-cache.d.ts +0 -65
  1494. package/dist/skills/trust-cache.d.ts.map +0 -1
  1495. package/dist/skills/trust-cache.js +0 -146
  1496. package/dist/skills/trust-cache.js.map +0 -1
  1497. package/dist/skills/types.d.ts +0 -91
  1498. package/dist/skills/types.d.ts.map +0 -1
  1499. package/dist/skills/types.js +0 -8
  1500. package/dist/skills/types.js.map +0 -1
  1501. /package/dist/{cli-tui → runtime}/prompt-queue.d.ts +0 -0
  1502. /package/dist/{cli-tui → runtime}/prompt-queue.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Core - Event-Driven LLM Interaction Engine\n *\n * This module provides the central Agent class that orchestrates all LLM\n * communication, tool execution, and state management for the Maestro CLI.\n * It implements an event-driven architecture that enables real-time streaming,\n * concurrent tool execution, and extensible transport layers.\n *\n * ## Architecture Overview\n *\n * ```\n * ┌─────────────────────────────────────────────────────────────────────────┐\n * │ Agent │\n * │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────────────────┐ │\n * │ │ State │ │ Transport │ │ Context Sources │ │\n * │ │ - messages │ │ - Anthropic │ │ - TodoContextSource │ │\n * │ │ - model │ │ - OpenAI │ │ - BackgroundTaskContextSource │ │\n * │ │ - tools │ │ - Google │ │ - LspContextSource │ │\n * │ │ - streaming │ │ - Custom │ │ - FrameworkPreferenceContext │ │\n * │ └─────────────┘ └──────────────┘ └─────────────────────────────────┘ │\n * │ │ │ │ │\n * │ ▼ ▼ ▼ │\n * │ ┌─────────────────────────────────────────────────────────────────────┐│\n * │ │ Event Emitter ││\n * │ │ message_start, message_update, message_end, tool_execution_* ││\n * │ └─────────────────────────────────────────────────────────────────────┘│\n * │ │ │\n * └─────────────────────────────────┼────────────────────────────────────────┘\n * ▼\n * ┌───────────────────┐\n * │ Subscribers │\n * │ - TUI Renderer │\n * │ - Session Mgr │\n * │ - JSONL Writer │\n * └───────────────────┘\n * ```\n *\n * ## Event Flow\n *\n * When `agent.prompt()` is called, the following sequence occurs:\n *\n * 1. **agent_start**: Signals the beginning of a prompt cycle\n * 2. **message_start**: Message envelope begins (user or assistant)\n * 3. **message_end**: Message envelope completes (user or assistant)\n * 4. **content_block_delta**: Streaming text/thinking content\n * 5. **tool_execution_start**: Tool call initiated\n * 6. **tool_execution_end**: Tool call completed\n * 7. **message_update**: Partial message with accumulated content\n * 8. **agent_end**: Prompt cycle completed\n *\n * ## Message Transformation\n *\n * Messages are transformed through a pipeline before being sent to the LLM:\n *\n * 1. **App Messages**: Internal format with attachments, metadata\n * 2. **Message Transform**: Convert attachments to content blocks\n * 3. **Provider Normalization**: Adapt to target provider's format\n * 4. **System Prompt Injection**: Add context from context sources\n *\n * ## Thinking/Reasoning Support\n *\n * The agent supports extended thinking for compatible models:\n *\n * | Level | Description |\n * |---------|------------------------------------------|\n * | off | No extended thinking |\n * | minimal | Brief chain-of-thought |\n * | low | Short reasoning steps |\n * | medium | Moderate reasoning depth |\n * | high | Deep reasoning with exploration |\n * | max | Maximum reasoning effort |\n *\n * ## Abort and Partial Handling\n *\n * The agent supports graceful interruption:\n *\n * - `abort()`: Cancel current request, discard partial response\n * - `abortAndKeepPartial()`: Cancel but preserve partial content\n *\n * @module agent/agent\n */\n\nimport { validate as uuidValidate } from \"uuid\";\nimport {\n\tbuildDiagnosticRepairFollowUpMessage,\n\tgetDiagnosticDeltaFromToolResult,\n\thasDiagnosticRepairOptOut,\n} from \"../lsp/diagnostic-repair.js\";\nimport type { SkillArtifactMetadata } from \"../skills/artifact-metadata.js\";\nimport {\n\tprojectSafeToolCallArguments,\n\trecordMaestroEvalScored,\n\trecordMaestroSkillInvoked,\n\trecordMaestroSkillOutcome,\n\trecordMaestroToolCallAttempt,\n\trecordMaestroToolCallCompleted,\n} from \"../telemetry/maestro-event-bus.js\";\nimport { createQueryProfilerFromEnv } from \"../utils/checkpoint-profiler.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport {\n\tdescribeToolActivity,\n\tdescribeToolDisplayName,\n\tsummarizeToolBatch,\n\tsummarizeToolUse,\n} from \"../utils/tool-use-summary.js\";\nimport {\n\tAgentContextManager,\n\ttype AgentContextSource,\n\ttype ContextLoadResult,\n} from \"./context-manager.js\";\nimport { isContextOverflow as isAssistantContextOverflow } from \"./context-overflow.js\";\nimport { convertAppMessagesToLlm, isCoreMessage } from \"./custom-messages.js\";\nimport {\n\ttype PreprocessMessagesFn,\n\tchainPreprocessMessages,\n\tdefaultPreprocessMessages,\n} from \"./preprocess-messages.js\";\nimport { isAssistantMessage } from \"./type-guards.js\";\nimport type {\n\tAgentEvent,\n\tAgentState,\n\tAgentTool,\n\tAgentTransport,\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tAttachment,\n\tImageContent,\n\tMessage,\n\tModel,\n\tQueuedMessage,\n\tReasoningEffort,\n\tStopReason,\n\tTextContent,\n\tThinkingLevel,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\n\nconst logger = createLogger(\"agent\");\n\ntype ToolEvaluationSummary = {\n\tscore?: number;\n\tthreshold?: number;\n\tpassed?: boolean;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype SkillEvaluationFailure = {\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\ttoolName?: string;\n\tscore?: number;\n\tthreshold?: number;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype CurrentTurnSkillSelection = {\n\tskillMetadata: SkillArtifactMetadata;\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\tevaluationFailure?: SkillEvaluationFailure;\n};\n\nfunction getToolEvaluationSummary(\n\tdetails: unknown,\n): ToolEvaluationSummary | undefined {\n\tif (!details || typeof details !== \"object\" || Array.isArray(details)) {\n\t\treturn undefined;\n\t}\n\n\tconst normalized = details as {\n\t\tevaluation?: unknown;\n\t\tassertions?: unknown;\n\t};\n\tif (\n\t\t!normalized.evaluation ||\n\t\ttypeof normalized.evaluation !== \"object\" ||\n\t\tArray.isArray(normalized.evaluation)\n\t) {\n\t\treturn undefined;\n\t}\n\n\tconst evaluation = normalized.evaluation as Record<string, unknown>;\n\tconst summary: ToolEvaluationSummary = {};\n\tif (\n\t\ttypeof evaluation.score === \"number\" &&\n\t\tNumber.isFinite(evaluation.score)\n\t) {\n\t\tsummary.score = evaluation.score;\n\t}\n\tif (\n\t\ttypeof evaluation.threshold === \"number\" &&\n\t\tNumber.isFinite(evaluation.threshold)\n\t) {\n\t\tsummary.threshold = evaluation.threshold;\n\t}\n\tif (typeof evaluation.passed === \"boolean\") {\n\t\tsummary.passed = evaluation.passed;\n\t}\n\tif (\n\t\ttypeof evaluation.rationale === \"string\" &&\n\t\tevaluation.rationale.trim().length > 0\n\t) {\n\t\tsummary.rationale = evaluation.rationale.trim();\n\t}\n\tif (\n\t\tArray.isArray(normalized.assertions) &&\n\t\tnormalized.assertions.length > 0\n\t) {\n\t\tsummary.assertionCount = normalized.assertions.length;\n\t}\n\n\treturn Object.keys(summary).length > 0 ? summary : undefined;\n}\n\nfunction isFailedToolEvaluation(summary: ToolEvaluationSummary): boolean {\n\tif (summary.passed === false) {\n\t\treturn true;\n\t}\n\tif (summary.passed === true) {\n\t\treturn false;\n\t}\n\treturn (\n\t\ttypeof summary.score === \"number\" &&\n\t\ttypeof summary.threshold === \"number\" &&\n\t\tsummary.score < summary.threshold\n\t);\n}\n\nfunction buildEvaluationFailureMessage(\n\tfailure: SkillEvaluationFailure,\n): string | undefined {\n\tif (failure.rationale) {\n\t\treturn failure.rationale;\n\t}\n\tif (\n\t\ttypeof failure.score === \"number\" &&\n\t\ttypeof failure.threshold === \"number\"\n\t) {\n\t\treturn `Eval score ${failure.score} below threshold ${failure.threshold}`;\n\t}\n\tif (typeof failure.score === \"number\") {\n\t\treturn `Eval score ${failure.score} did not pass`;\n\t}\n\treturn \"Selected skill failed evaluation\";\n}\n\n/**\n * Default message transformer that converts app messages to LLM-ready format.\n *\n * This transformer handles:\n * - Filtering to valid message roles (user, assistant, toolResult)\n * - Expanding user message attachments into content blocks\n * - Converting images to base64 image content\n * - Converting documents to text content with filename headers\n *\n * @param messages - Array of app messages to transform\n * @returns Array of messages ready for LLM consumption\n */\nfunction defaultMessageTransformer(messages: AppMessage[]): Message[] {\n\treturn (\n\t\tconvertAppMessagesToLlm(messages)\n\t\t\t// Filter to only roles the LLM understands\n\t\t\t.filter(\n\t\t\t\t(m) =>\n\t\t\t\t\tm.role === \"user\" ||\n\t\t\t\t\tm.role === \"assistant\" ||\n\t\t\t\t\tm.role === \"toolResult\",\n\t\t\t)\n\t\t\t.map((message) => {\n\t\t\t\t// Non-user messages pass through unchanged\n\t\t\t\tif (message.role !== \"user\") {\n\t\t\t\t\treturn message as Message;\n\t\t\t\t}\n\n\t\t\t\t// Handle user messages with attachments\n\t\t\t\tconst { attachments, ...rest } = message as UserMessageWithAttachments;\n\t\t\t\tif (!attachments || attachments.length === 0) {\n\t\t\t\t\treturn rest as Message;\n\t\t\t\t}\n\n\t\t\t\t// Expand attachments into content array\n\t\t\t\t// Start with existing content (may be string or array)\n\t\t\t\tconst content: Array<TextContent | ImageContent> = Array.isArray(\n\t\t\t\t\trest.content,\n\t\t\t\t)\n\t\t\t\t\t? [...rest.content]\n\t\t\t\t\t: [{ type: \"text\", text: rest.content }];\n\n\t\t\t\t// Convert each attachment to appropriate content type\n\t\t\t\tfor (const attachment of attachments) {\n\t\t\t\t\tif (attachment.type === \"image\") {\n\t\t\t\t\t\t// Images become image content blocks with base64 data\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"image\",\n\t\t\t\t\t\t\tdata: attachment.content,\n\t\t\t\t\t\t\tmimeType: attachment.mimeType,\n\t\t\t\t\t\t} as ImageContent);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tattachment.type === \"document\" &&\n\t\t\t\t\t\tattachment.extractedText\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Documents become text blocks with filename headers\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `\\n\\n[Document: ${attachment.fileName}]\\n${attachment.extractedText}`,\n\t\t\t\t\t\t} as TextContent);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn { ...rest, content } as Message;\n\t\t\t})\n\t);\n}\n\n/**\n * Maps internal thinking level to provider reasoning effort parameter.\n *\n * Different providers have different reasoning/thinking capabilities.\n * This function normalizes our internal levels to what providers support.\n *\n * @param level - Internal thinking level\n * @returns Provider-specific reasoning effort, or undefined if disabled\n */\nfunction mapThinkingLevel(level: ThinkingLevel): ReasoningEffort | undefined {\n\tswitch (level) {\n\t\tcase \"off\":\n\t\t\treturn undefined; // No extended thinking\n\t\tcase \"minimal\":\n\t\t\treturn \"minimal\"; // Brief chain-of-thought\n\t\tcase \"low\":\n\t\t\treturn \"low\"; // Short reasoning steps\n\t\tcase \"medium\":\n\t\t\treturn \"medium\"; // Moderate depth\n\t\tcase \"high\":\n\t\t\treturn \"high\"; // Thorough reasoning\n\t\tcase \"ultra\":\n\t\t\treturn \"ultra\"; // Provider max where supported\n\t\tcase \"max\":\n\t\t\treturn \"high\"; // Maximum reasoning (max maps to high for providers)\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nfunction buildPromptOnlyToolBatchSummaryMessage(\n\tsummaryLabels: string[],\n): UserMessage {\n\tconst bulletList = summaryLabels.map((label) => `- ${label}`).join(\"\\n\");\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is a transient summary of the most recent tool activity:\\n${bulletList}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nconst PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT =\n\t\"When you need several independent reads or searches, emit them together in one assistant message so Maestro can batch them safely.\";\n\nfunction buildPromptOnlyBatchShapingFeedbackMessage(): UserMessage {\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is transient tool batching feedback for the next assistant turn:\\n- ${PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\n/**\n * Ensures prior assistant messages remain provider-compatible when switching models mid-session.\n *\n * When users switch between providers (e.g., Anthropic → OpenAI), previous assistant\n * messages may contain provider-specific content like \"thinking\" blocks. This function\n * converts those blocks to a format all providers can understand.\n *\n * ## Problem\n *\n * Anthropic's thinking blocks look like: `{ type: \"thinking\", thinking: \"...\" }`\n * OpenAI doesn't understand this format and may error or ignore it.\n *\n * ## Solution\n *\n * Convert thinking blocks to text: `<thinking>...</thinking>` which all providers\n * can process as regular text content.\n *\n * @param messages - Messages from conversation history\n * @param targetModel - The model that will receive these messages\n * @returns Messages with thinking blocks normalized for the target provider\n */\nfunction normalizeMessagesForProvider(\n\tmessages: Message[],\n\ttargetModel: Model<Api>,\n): Message[] {\n\tconst normalizedMessages: Message[] = [];\n\n\tfor (const msg of messages) {\n\t\tif (msg.role !== \"assistant\") {\n\t\t\tif (msg.role === \"user\") {\n\t\t\t\tconst previous = normalizedMessages[normalizedMessages.length - 1];\n\t\t\t\tif (previous?.role === \"user\") {\n\t\t\t\t\tconst previousContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof previous.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: previous.content }]\n\t\t\t\t\t\t\t: [...previous.content];\n\t\t\t\t\tconst currentContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof msg.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: msg.content }]\n\t\t\t\t\t\t\t: [...msg.content];\n\t\t\t\t\tconst mergedContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\tpreviousContent.length > 0 && currentContent.length > 0\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...previousContent,\n\t\t\t\t\t\t\t\t\t{ type: \"text\", text: \"\\n\\n\" } as TextContent,\n\t\t\t\t\t\t\t\t\t...currentContent,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t: [...previousContent, ...currentContent];\n\t\t\t\t\tconst previousAttachments = (\n\t\t\t\t\t\t\"attachments\" in previous ? previous.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst currentAttachments = (\n\t\t\t\t\t\t\"attachments\" in msg ? msg.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst mergedAttachments: Attachment[] = [\n\t\t\t\t\t\t...(previousAttachments ?? []),\n\t\t\t\t\t\t...(currentAttachments ?? []),\n\t\t\t\t\t];\n\t\t\t\t\tconst mergedUser: UserMessageWithAttachments = {\n\t\t\t\t\t\t...previous,\n\t\t\t\t\t\tcontent: mergedContent,\n\t\t\t\t\t\tattachments:\n\t\t\t\t\t\t\tmergedAttachments.length > 0 ? mergedAttachments : undefined,\n\t\t\t\t\t\tmetadata: previous.metadata ?? msg.metadata,\n\t\t\t\t\t};\n\t\t\t\t\tnormalizedMessages[normalizedMessages.length - 1] = mergedUser;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst shouldConvertThinking =\n\t\t\tmsg.provider !== targetModel.provider ||\n\t\t\tmsg.api !== targetModel.api ||\n\t\t\t!targetModel.reasoning;\n\t\tif (!shouldConvertThinking) {\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst content = msg.content.map((block) => {\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: `<thinking>${block.thinking}</thinking>`,\n\t\t\t\t} as TextContent;\n\t\t\t}\n\t\t\treturn block;\n\t\t});\n\t\tnormalizedMessages.push({ ...msg, content });\n\t}\n\n\treturn normalizedMessages;\n}\n\ntype BufferedAssistantStartState = {\n\tpendingAssistantStart: AssistantMessage | null;\n\tlastStopReason?: StopReason;\n};\n\ntype StreamedMessageEvent = Extract<\n\tAgentEvent,\n\t{ type: \"message_start\" | \"message_update\" | \"message_end\" }\n>;\n\nfunction isDuplicateMessage(\n\texisting: AppMessage | undefined,\n\tincoming: AppMessage,\n): boolean {\n\tif (!existing) return false;\n\tif (existing.role !== incoming.role) return false;\n\tif (\"timestamp\" in existing && \"timestamp\" in incoming) {\n\t\tif (existing.timestamp !== incoming.timestamp) return false;\n\t}\n\tif (existing.role === \"toolResult\" && incoming.role === \"toolResult\") {\n\t\treturn existing.toolCallId === incoming.toolCallId;\n\t}\n\t// For assistant messages, compare stopReason and content fingerprint to avoid\n\t// discarding distinct messages that share a timestamp (e.g. parallel tool calls).\n\tif (existing.role === \"assistant\" && incoming.role === \"assistant\") {\n\t\tif (existing.stopReason !== incoming.stopReason) return false;\n\t\tif (existing.content.length !== incoming.content.length) return false;\n\t\t// Compare first content block identity for a stronger structural check.\n\t\tconst a = existing.content[0];\n\t\tconst b = incoming.content[0];\n\t\tif (a && b) {\n\t\t\tif (a.type !== b.type) return false;\n\t\t\tif (a.type === \"toolCall\" && b.type === \"toolCall\") {\n\t\t\t\tif (a.id !== b.id) return false;\n\t\t\t} else if (a.type === \"text\" && b.type === \"text\") {\n\t\t\t\tif (a.text !== b.text) return false;\n\t\t\t} else if (a.type === \"thinking\" && b.type === \"thinking\") {\n\t\t\t\tif (a.thinking !== b.thinking) return false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction mergeUsage(messages: AssistantMessage[]): Usage {\n\treturn messages.reduce<Usage>(\n\t\t(acc, message) => ({\n\t\t\tinput: acc.input + message.usage.input,\n\t\t\toutput: acc.output + message.usage.output,\n\t\t\tcacheRead: acc.cacheRead + message.usage.cacheRead,\n\t\t\tcacheWrite: acc.cacheWrite + message.usage.cacheWrite,\n\t\t\tcost: {\n\t\t\t\tinput: acc.cost.input + message.usage.cost.input,\n\t\t\t\toutput: acc.cost.output + message.usage.cost.output,\n\t\t\t\tcacheRead: acc.cost.cacheRead + message.usage.cost.cacheRead,\n\t\t\t\tcacheWrite: acc.cost.cacheWrite + message.usage.cost.cacheWrite,\n\t\t\t\ttotal: acc.cost.total + message.usage.cost.total,\n\t\t\t},\n\t\t}),\n\t\t{\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\tcost: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotal: 0,\n\t\t\t},\n\t\t},\n\t);\n}\n\nfunction mergeAssistantMessages(\n\tmessages: AssistantMessage[],\n): AssistantMessage {\n\tconst lastMessage = messages[messages.length - 1]!;\n\treturn {\n\t\t...lastMessage,\n\t\tcontent: messages.flatMap((message) => message.content),\n\t\tusage: mergeUsage(messages),\n\t};\n}\n\n/**\n * Configuration options for creating an Agent instance.\n */\nexport interface AgentOptions {\n\t/** Initial state to override defaults (system prompt, model, tools, etc.) */\n\tinitialState?: Partial<AgentState>;\n\t/** Transport implementation for LLM provider communication */\n\ttransport: AgentTransport;\n\t/** Optional transformer to convert app messages to provider-specific format */\n\tmessageTransformer?: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\t/** Optional message preprocessor executed immediately before provider invocation */\n\tpreprocessMessages?: PreprocessMessagesFn;\n\t/** Disable Maestro's built-in preprocessing (not recommended) */\n\tdisableDefaultPreprocessMessages?: boolean;\n\t/** Optional context sources for environment injection */\n\tcontextSources?: AgentContextSource[];\n}\n\n/**\n * Core Agent class implementing event-driven LLM interaction.\n *\n * The Agent manages conversation state, tool execution, and streaming responses\n * across multiple LLM providers through an abstracted transport layer.\n *\n * @example\n * ```typescript\n * const agent = new Agent({\n * transport: new AnthropicTransport(apiKey),\n * initialState: { model: claudeSonnet4, tools: codingTools }\n * });\n *\n * agent.subscribe((event) => {\n * if (event.type === 'content_block_delta') {\n * process.stdout.write(event.text);\n * }\n * });\n *\n * await agent.prompt(\"Create a hello world function\");\n * ```\n */\nexport class Agent {\n\tprivate _state: AgentState;\n\tprivate listeners: Array<(e: AgentEvent) => void> = [];\n\tprivate abortController?: AbortController;\n\tprivate transport: AgentTransport;\n\tprivate messageTransformer: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\tprivate preprocessMessages?: PreprocessMessagesFn;\n\tprivate steeringQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate followUpQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate nextRunHistoryQueue: AppMessage[] = [];\n\tprivate nextRunPromptOnlyQueue: Message[] = [];\n\tprivate promptOnlyQueue: Message[] = [];\n\tprivate queuedBatchShapingFeedbackKeys = new Set<string>();\n\tprivate nextRunSystemPromptAdditions: string[] = [];\n\tprivate defaultTaskBudgetTotal?: number;\n\tprivate currentTaskBudget?:\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined;\n\tprivate steeringMode: \"all\" | \"one\" = \"all\";\n\tprivate followUpMode: \"all\" | \"one\" = \"all\";\n\tprivate queueMode: \"all\" | \"one\" = \"all\";\n\tprivate nextQueuedMessageId = 1;\n\tprivate runningPrompt?: Promise<void>;\n\tprivate resolveRunningPrompt?: () => void;\n\tprivate contextManager: AgentContextManager;\n\tprivate activeToolBatchIds: Set<string> | null = null;\n\tprivate completedToolBatch: Array<{\n\t\ttoolCallId: string;\n\t\ttoolName: string;\n\t\targs: Record<string, unknown>;\n\t\tisError: boolean;\n\t\ttool?: Pick<AgentTool, \"getToolUseSummary\" | \"getActivityDescription\">;\n\t}> = [];\n\tprivate suppressRecoverableOverflowErrors = false;\n\tprivate withheldRecoverableOverflowError?: AssistantMessage;\n\tprivate withheldRecoverableLengthMessages: AssistantMessage[] = [];\n\tprivate pendingMergedRecoverableTurnEnd?: AssistantMessage;\n\tprivate diagnosticRepairAttempts = new Map<string, number>();\n\tprivate currentTurnEvaluationFailure?: SkillEvaluationFailure;\n\tprivate currentTurnSkillSelections = new Map<\n\t\tstring,\n\t\tCurrentTurnSkillSelection\n\t>();\n\n\t/**\n\t * Creates a new Agent instance.\n\t *\n\t * @param opts - Configuration options including transport and initial state\n\t */\n\tconstructor(opts: AgentOptions) {\n\t\tthis.transport = opts.transport;\n\t\tthis.messageTransformer =\n\t\t\topts.messageTransformer ??\n\t\t\t((messages) => defaultMessageTransformer(messages));\n\t\tthis.preprocessMessages = chainPreprocessMessages(\n\t\t\topts.disableDefaultPreprocessMessages\n\t\t\t\t? undefined\n\t\t\t\t: defaultPreprocessMessages,\n\t\t\topts.preprocessMessages,\n\t\t);\n\n\t\tthis.contextManager = new AgentContextManager();\n\t\tif (opts.contextSources) {\n\t\t\tfor (const source of opts.contextSources) {\n\t\t\t\tthis.contextManager.addSource(source);\n\t\t\t}\n\t\t}\n\n\t\tconst {\n\t\t\tsystemPrompt,\n\t\t\tmodel,\n\t\t\tthinkingLevel,\n\t\t\ttools,\n\t\t\tqueueMode,\n\t\t\tsteeringMode,\n\t\t\tfollowUpMode,\n\t\t\t...restInitialState\n\t\t} = opts.initialState ?? {};\n\t\tthis.queueMode = queueMode ?? \"all\";\n\t\tthis.steeringMode = steeringMode ?? queueMode ?? \"all\";\n\t\tthis.followUpMode = followUpMode ?? queueMode ?? \"all\";\n\n\t\tif (restInitialState.user) {\n\t\t\tif (\n\t\t\t\t!uuidValidate(restInitialState.user.id) ||\n\t\t\t\t!uuidValidate(restInitialState.user.orgId)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Invalid user ID or Org ID: Must be a valid UUID\");\n\t\t\t}\n\t\t}\n\n\t\tthis._state = {\n\t\t\tsystemPrompt: systemPrompt ?? \"\",\n\t\t\tmodel:\n\t\t\t\tmodel ??\n\t\t\t\t((): never => {\n\t\t\t\t\tthrow new Error(\"Agent requires an initial model\");\n\t\t\t\t})(),\n\t\t\tthinkingLevel: thinkingLevel ?? \"off\",\n\t\t\ttools: tools ?? [],\n\t\t\tmessages: [],\n\t\t\tisStreaming: false,\n\t\t\tstreamMessage: null,\n\t\t\tpendingToolCalls: new Map(),\n\t\t\tsandbox: restInitialState.sandbox,\n\t\t\tsandboxMode: restInitialState.sandboxMode ?? null,\n\t\t\tsandboxEnabled:\n\t\t\t\trestInitialState.sandboxEnabled ?? Boolean(restInitialState.sandbox),\n\t\t\t...restInitialState,\n\t\t\tqueueMode: this.queueMode,\n\t\t\tsteeringMode: this.steeringMode,\n\t\t\tfollowUpMode: this.followUpMode,\n\t\t};\n\t}\n\n\t/**\n\t * Gets the current agent state (read-only).\n\t *\n\t * @returns The current state including messages, model, tools, and streaming status\n\t */\n\tget state(): Readonly<AgentState> {\n\t\treturn this._state;\n\t}\n\n\t/**\n\t * Gets detailed status of all context sources.\n\t *\n\t * Context sources provide dynamic content injected into the system prompt,\n\t * such as todo lists, LSP diagnostics, and IDE information.\n\t *\n\t * @returns Promise resolving to context load result with per-source status\n\t *\n\t * @example\n\t * ```typescript\n\t * const result = await agent.getContextSourceStatus();\n\t * for (const source of result.sourceStatuses) {\n\t * console.log(`${source.name}: ${source.status} (${source.durationMs}ms)`);\n\t * }\n\t * ```\n\t */\n\tasync getContextSourceStatus(): Promise<ContextLoadResult> {\n\t\treturn this.contextManager.getCombinedSystemPromptWithStatus();\n\t}\n\n\t/**\n\t * Optionally probes the underlying transport for connectivity checks.\n\t */\n\tasync probeTransport(): Promise<void> {\n\t\tif (this.transport.ping) {\n\t\t\tawait this.transport.ping();\n\t\t}\n\t}\n\n\t/**\n\t * Subscribes to agent events (streaming deltas, tool calls, errors, etc.).\n\t *\n\t * @param fn - Event listener function to be called on each event\n\t * @returns Unsubscribe function to remove the listener\n\t *\n\t * @example\n\t * ```typescript\n\t * const unsubscribe = agent.subscribe((event) => {\n\t * if (event.type === 'content_block_delta') {\n\t * console.log(event.text);\n\t * }\n\t * });\n\t *\n\t * // Later, to stop listening:\n\t * unsubscribe();\n\t * ```\n\t */\n\tsubscribe(fn: (e: AgentEvent) => void): () => void {\n\t\tthis.listeners.push(fn);\n\t\treturn () => {\n\t\t\tconst idx = this.listeners.indexOf(fn);\n\t\t\tif (idx >= 0) this.listeners.splice(idx, 1);\n\t\t};\n\t}\n\n\t/**\n\t * Emits an event to all subscribed listeners.\n\t * Errors in listeners are caught and logged to prevent cascading failures.\n\t *\n\t * @param event - The event to emit\n\t */\n\tprivate emit(event: AgentEvent): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\ttry {\n\t\t\t\tlistener(event);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\n\t\t\t\t\t\"Error in agent event listener\",\n\t\t\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async dequeueSteeringMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.steeringQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.steeringMode === \"one\") {\n\t\t\tconst next = this.steeringQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.steeringQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueFollowUpMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.followUpQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.followUpMode === \"one\") {\n\t\t\tconst next = this.followUpQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.followUpQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeuePromptOnlyMessages(): Promise<Message[]> {\n\t\tif (\n\t\t\tthis.nextRunPromptOnlyQueue.length === 0 &&\n\t\t\tthis.promptOnlyQueue.length === 0\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunPromptOnlyQueue, ...this.promptOnlyQueue];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunHistoryMessages(): AppMessage[] {\n\t\tif (this.nextRunHistoryQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunHistoryQueue];\n\t\tthis.nextRunHistoryQueue = [];\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunSystemPromptAdditions(): string[] {\n\t\tif (this.nextRunSystemPromptAdditions.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunSystemPromptAdditions];\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueQueuedMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\treturn this.dequeueFollowUpMessages<T>();\n\t}\n\n\t/**\n\t * Sets the system prompt that provides context and instructions to the model.\n\t *\n\t * @param v - The system prompt text\n\t */\n\tsetSystemPrompt(v: string): void {\n\t\tthis._state.systemPrompt = v;\n\t}\n\n\tsetSystemPromptSourcePaths(paths: string[] | undefined): void {\n\t\tthis._state.systemPromptSourcePaths =\n\t\t\tpaths && paths.length > 0 ? [...paths] : undefined;\n\t}\n\n\t/**\n\t * Sets the active LLM model for this agent.\n\t *\n\t * @param m - The model configuration\n\t */\n\tsetModel(m: Model<Api>): void {\n\t\tthis._state.model = m;\n\t\tif (!m.reasoning && this._state.thinkingLevel !== \"off\") {\n\t\t\tthis._state.thinkingLevel = \"off\";\n\t\t}\n\t}\n\n\t/**\n\t * Sets the thinking/reasoning level for extended reasoning models.\n\t *\n\t * @param l - Thinking level: \"off\", \"minimal\", \"low\", \"medium\", \"high\", \"max\"\n\t */\n\tsetThinkingLevel(l: ThinkingLevel): void {\n\t\tthis._state.thinkingLevel = l;\n\t}\n\n\t/**\n\t * Controls how queued steering messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetSteeringMode(mode: \"all\" | \"one\"): void {\n\t\tthis.steeringMode = mode;\n\t\tthis.queueMode = mode;\n\t\tthis._state.steeringMode = mode;\n\t\tthis._state.queueMode = mode;\n\t}\n\n\tgetSteeringMode(): \"all\" | \"one\" {\n\t\treturn this.steeringMode;\n\t}\n\n\t/**\n\t * Controls how queued follow-up messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetFollowUpMode(mode: \"all\" | \"one\"): void {\n\t\tthis.followUpMode = mode;\n\t\tthis._state.followUpMode = mode;\n\t}\n\n\tgetFollowUpMode(): \"all\" | \"one\" {\n\t\treturn this.followUpMode;\n\t}\n\n\t/**\n\t * @deprecated Use setSteeringMode/setFollowUpMode instead.\n\t * Sets both steering + follow-up modes for compatibility.\n\t */\n\tsetQueueMode(mode: \"all\" | \"one\"): void {\n\t\tthis.queueMode = mode;\n\t\tthis._state.queueMode = mode;\n\t\tthis.setSteeringMode(mode);\n\t\tthis.setFollowUpMode(mode);\n\t}\n\n\t/**\n\t * Sets the available tools that the model can invoke.\n\t *\n\t * @param t - Array of tool definitions with schemas and execute functions\n\t */\n\tsetTools(t: AgentTool[]): void {\n\t\tthis._state.tools = t;\n\t}\n\n\t/**\n\t * Sets the active user for this agent.\n\t */\n\tsetUser(user: AgentState[\"user\"]): void {\n\t\tthis._state.user = user;\n\t}\n\n\t/**\n\t * Sets the active session for this agent.\n\t */\n\tsetSession(session: AgentState[\"session\"]): void {\n\t\tthis._state.session = session;\n\t}\n\n\t/**\n\t * Sets the sampling temperature for LLM generation.\n\t *\n\t * @param t - Temperature value (0.0-2.0, lower = more deterministic). Pass undefined to reset to default.\n\t */\n\tsetTemperature(t: number | undefined): void {\n\t\tthis._state.temperature = t;\n\t}\n\n\t/**\n\t * Sets the top-p sampling parameter for LLM generation.\n\t *\n\t * @param p - Top-p value (0.0-1.0). Pass undefined to reset to default.\n\t */\n\tsetTopP(p: number | undefined): void {\n\t\tthis._state.topP = p;\n\t}\n\n\tsetTaskBudgetTotal(total: number | undefined): void {\n\t\tthis.defaultTaskBudgetTotal = total;\n\t}\n\n\tgetTaskBudgetTotal(): number | undefined {\n\t\treturn this.defaultTaskBudgetTotal;\n\t}\n\n\tsetCurrentTaskBudget(\n\t\ttaskBudget:\n\t\t\t| {\n\t\t\t\t\ttotal: number;\n\t\t\t\t\tremaining?: number;\n\t\t\t }\n\t\t\t| undefined,\n\t): void {\n\t\tthis.currentTaskBudget = taskBudget ? { ...taskBudget } : undefined;\n\t}\n\n\tgetCurrentTaskBudget():\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined {\n\t\treturn this.currentTaskBudget ? { ...this.currentTaskBudget } : undefined;\n\t}\n\n\t/**\n\t * Replaces the entire message history with a new set of messages.\n\t *\n\t * @param ms - New message array\n\t */\n\treplaceMessages(ms: AppMessage[]): void {\n\t\tthis._state.messages = ms.slice();\n\t}\n\n\t/**\n\t * Clear transient run state without touching message history or queued inputs.\n\t *\n\t * This is useful before starting a fresh run, or after operations like\n\t * compaction that rewrite history while the agent is otherwise idle.\n\t */\n\tclearTransientRunState(options?: {\n\t\tclearSessionContextCache?: boolean;\n\t}): void {\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tif (options?.clearSessionContextCache) {\n\t\t\tthis.contextManager.clearSessionCache();\n\t\t}\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis._state.error = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tif (!this.suppressRecoverableOverflowErrors) {\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t}\n\t\tthis._partialAccepted = null;\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tsetRecoverableOverflowErrorSuppression(enabled: boolean): void {\n\t\tthis.suppressRecoverableOverflowErrors = enabled;\n\t\tif (!enabled) {\n\t\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t}\n\t}\n\n\tgetWithheldRecoverableOverflowError(): AssistantMessage | undefined {\n\t\treturn this.withheldRecoverableOverflowError;\n\t}\n\n\tflushWithheldRecoverableLengthMessage(): AssistantMessage | undefined {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages(\n\t\t\tthis.withheldRecoverableLengthMessages,\n\t\t);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.primeToolBatch(merged);\n\t\tthis.emit({ type: \"message_start\", message: merged });\n\t\tthis.emit({ type: \"message_end\", message: merged });\n\t\tthis.emit({ type: \"turn_end\", message: merged, toolResults: [] });\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Appends a single message to the conversation history.\n\t *\n\t * @param m - Message to append\n\t */\n\tappendMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t}\n\n\t/**\n\t * Inject a message into the conversation history and emit a message_end event.\n\t */\n\tinjectMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t\tthis.emit({ type: \"message_end\", message: m });\n\t}\n\n\t/**\n\t * Emit a transient runtime status update without mutating conversation history.\n\t */\n\temitStatus(status: string, details: Record<string, unknown> = {}): void {\n\t\tconst normalized = status.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"status\", status: normalized, details });\n\t}\n\n\t/**\n\t * Emit a transient runtime error without mutating conversation history.\n\t */\n\temitError(message: string): void {\n\t\tconst normalized = message.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"error\", message: normalized });\n\t}\n\n\tprivate shouldWithholdRecoverableOverflowError(\n\t\tmessage: AppMessage,\n\t): message is AssistantMessage {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tisAssistantMessage(message) &&\n\t\t\tmessage.stopReason === \"error\" &&\n\t\t\tisAssistantContextOverflow(message, this._state.model.contextWindow)\n\t\t);\n\t}\n\n\tprivate shouldWithholdRecoverableMaxOutput(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors && message.stopReason === \"length\"\n\t\t);\n\t}\n\n\tprivate shouldMergeRecoverableLengthContinuation(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tthis.withheldRecoverableLengthMessages.length > 0 &&\n\t\t\tmessage.stopReason !== \"length\" &&\n\t\t\tmessage.stopReason !== \"error\"\n\t\t);\n\t}\n\n\tprivate mergeWithWithheldRecoverableLengthMessages(\n\t\tincoming: AssistantMessage,\n\t): AssistantMessage {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn incoming;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages([\n\t\t\t...this.withheldRecoverableLengthMessages,\n\t\t\tincoming,\n\t\t]);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = merged;\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Emit a compaction lifecycle event without mutating conversation history.\n\t */\n\temitCompaction(\n\t\tevent: Omit<Extract<AgentEvent, { type: \"compaction\" }>, \"type\">,\n\t): void {\n\t\tthis.emit({ type: \"compaction\", ...event });\n\t}\n\n\t/**\n\t * Queue a prompt-only message for the next run without persisting it to history.\n\t */\n\tqueueNextRunPromptOnlyMessage(message: Message): void {\n\t\tthis.nextRunPromptOnlyQueue.push(message);\n\t}\n\n\t/**\n\t * Queue a persisted history message for the next run.\n\t */\n\tqueueNextRunHistoryMessage(message: AppMessage): void {\n\t\tthis.nextRunHistoryQueue.push(message);\n\t}\n\n\t/**\n\t * Queue transient system guidance for the next run.\n\t */\n\tqueueNextRunSystemPromptAddition(text: string): void {\n\t\tconst normalized = text.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.nextRunSystemPromptAdditions.push(normalized);\n\t}\n\n\t/**\n\t * Clear queued one-shot prompt inputs that were prepared for the next run but\n\t * not yet consumed.\n\t */\n\tclearQueuedPromptInputs(): void {\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t}\n\n\t/**\n\t * Queues a steering message to interrupt the agent mid-run.\n\t *\n\t * Delivered after the current tool execution and skips remaining tools.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync steer(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"steer\", m);\n\t}\n\n\t/**\n\t * Queues a follow-up message to be processed after the agent finishes.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync followUp(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m);\n\t}\n\n\t/**\n\t * Re-inserts a follow-up at the front of the follow-up queue.\n\t */\n\tasync prependFollowUp(\n\t\tm: AppMessage,\n\t\toptions?: { id?: number; createdAt?: number },\n\t): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m, {\n\t\t\tposition: \"front\",\n\t\t\tid: options?.id,\n\t\t\tcreatedAt: options?.createdAt,\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated Use steer() or followUp() instead.\n\t * Defaults to follow-up semantics.\n\t */\n\tasync queueMessage(m: AppMessage): Promise<void> {\n\t\tawait this.followUp(m);\n\t}\n\n\tprivate async enqueueQueuedMessage(\n\t\tkind: \"steer\" | \"followUp\",\n\t\tmessage: AppMessage,\n\t\toptions?: {\n\t\t\tposition?: \"front\" | \"back\";\n\t\t\tid?: number;\n\t\t\tcreatedAt?: number;\n\t\t},\n\t): Promise<void> {\n\t\tconst transformed = await this.messageTransformer([message]);\n\t\tconst id = options?.id ?? this.nextQueuedMessageId++;\n\t\tif (id >= this.nextQueuedMessageId) {\n\t\t\tthis.nextQueuedMessageId = id + 1;\n\t\t}\n\t\tconst queued = {\n\t\t\tid,\n\t\t\tcreatedAt: options?.createdAt ?? Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: transformed[0],\n\t\t};\n\t\tconst position = options?.position ?? \"back\";\n\t\tif (kind === \"steer\") {\n\t\t\tif (position === \"front\") {\n\t\t\t\tthis.steeringQueue.unshift(queued);\n\t\t\t} else {\n\t\t\t\tthis.steeringQueue.push(queued);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t} else {\n\t\t\tthis.followUpQueue.push(queued);\n\t\t}\n\t}\n\n\t/**\n\t * Clears all messages from the conversation history.\n\t */\n\tclearMessages(): void {\n\t\tthis._state.messages = [];\n\t}\n\n\t/**\n\t * Get the number of queued messages.\n\t */\n\tgetQueuedMessageCount(): number {\n\t\treturn this.steeringQueue.length + this.followUpQueue.length;\n\t}\n\n\tgetQueuedSteeringCount(): number {\n\t\treturn this.steeringQueue.length;\n\t}\n\n\tgetQueuedFollowUpCount(): number {\n\t\treturn this.followUpQueue.length;\n\t}\n\n\tgetQueuedMessagesSnapshot(): {\n\t\tsteering: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t\tfollowUps: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t} {\n\t\treturn {\n\t\t\tsteering: [...this.steeringQueue],\n\t\t\tfollowUps: [...this.followUpQueue],\n\t\t};\n\t}\n\n\tremoveQueuedMessage(id: number): QueuedMessage<AppMessage> | null {\n\t\tconst steeringIndex = this.steeringQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (steeringIndex !== -1) {\n\t\t\treturn this.steeringQueue.splice(steeringIndex, 1)[0] ?? null;\n\t\t}\n\t\tconst followUpIndex = this.followUpQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (followUpIndex !== -1) {\n\t\t\treturn this.followUpQueue.splice(followUpIndex, 1)[0] ?? null;\n\t\t}\n\t\treturn null;\n\t}\n\n\tclearQueuedMessages(): Array<QueuedMessage<AppMessage>> {\n\t\tconst queued = [...this.steeringQueue, ...this.followUpQueue].sort(\n\t\t\t(a, b) => a.createdAt - b.createdAt || a.id - b.id,\n\t\t);\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\treturn queued;\n\t}\n\n\t/**\n\t * Aborts the current streaming request if one is in progress.\n\t */\n\tabort(): void {\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Aborts the current streaming request and saves any partial response.\n\t *\n\t * Unlike `abort()`, this method preserves the partial assistant message\n\t * that was being streamed, adding it to the message history. This allows\n\t * users to keep useful partial responses when interrupting long generations.\n\t *\n\t * @returns The partial message that was saved, or null if no partial was available\n\t *\n\t * @example\n\t * ```typescript\n\t * // User presses Ctrl+C during a long response\n\t * const partial = agent.abortAndKeepPartial();\n\t * if (partial) {\n\t * console.log(\"Saved partial response:\", partial.content);\n\t * }\n\t * ```\n\t */\n\tabortAndKeepPartial(): AppMessage | null {\n\t\tconst partialMessage = this._state.streamMessage;\n\n\t\t// Only save if we have an assistant message (not user message)\n\t\tif (\n\t\t\tpartialMessage &&\n\t\t\tpartialMessage.role === \"assistant\" &&\n\t\t\tthis.abortController\n\t\t) {\n\t\t\t// Mark as interrupted by setting stopReason\n\t\t\tconst savedMessage: AssistantMessage = {\n\t\t\t\t...partialMessage,\n\t\t\t\tstopReason: \"aborted\",\n\t\t\t};\n\n\t\t\t// Add to message history before aborting\n\t\t\tthis._state.messages = [...this._state.messages, savedMessage];\n\t\t\tthis._state.streamMessage = null;\n\t\t\tthis._partialAccepted = savedMessage;\n\n\t\t\tlogger.info(\"Saved partial message on interrupt\", {\n\t\t\t\tcontentLength: JSON.stringify(savedMessage.content).length,\n\t\t\t});\n\n\t\t\t// Now abort\n\t\t\tthis.abort();\n\n\t\t\treturn savedMessage;\n\t\t}\n\n\t\t// No partial to save, just abort\n\t\tthis.abort();\n\n\t\treturn null;\n\t}\n\n\t/** Tracks if a partial message was accepted during abort */\n\tprivate _partialAccepted: AppMessage | null = null;\n\n\t/**\n\t * Returns a promise that resolves when the current prompt completes.\n\t * Returns immediately resolved promise if no prompt is running.\n\t */\n\twaitForIdle(): Promise<void> {\n\t\treturn this.runningPrompt ?? Promise.resolve();\n\t}\n\n\t/**\n\t * Clear all messages and state. Call abort() first if a prompt is in flight.\n\t */\n\treset(): void {\n\t\tthis._state.messages = [];\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\tthis._state.error = undefined;\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\tthis.abortController = undefined;\n\t\tthis.runningPrompt = undefined;\n\t\tthis.resolveRunningPrompt = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.currentTaskBudget = undefined;\n\t\tthis.diagnosticRepairAttempts.clear();\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t\t// Note: Do NOT clear listeners - they contain the TUI subscription\n\t\t// and must persist across resets for UI updates to work\n\t}\n\n\tprivate buildProviderMessages(\n\t\ttransformedMessages: Message[],\n\t\tcontinuationPrompt?: string,\n\t): Message[] {\n\t\tconst providerInputMessages = continuationPrompt\n\t\t\t? [\n\t\t\t\t\t...transformedMessages,\n\t\t\t\t\t{\n\t\t\t\t\t\trole: \"user\" as const,\n\t\t\t\t\t\tcontent: continuationPrompt,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: transformedMessages;\n\t\treturn normalizeMessagesForProvider(\n\t\t\tproviderInputMessages,\n\t\t\tthis._state.model,\n\t\t);\n\t}\n\n\tprivate handleStreamedMessageEvent(\n\t\tevent: StreamedMessageEvent,\n\t\tstate: BufferedAssistantStartState,\n\t): BufferedAssistantStartState {\n\t\tlet { pendingAssistantStart, lastStopReason } = state;\n\n\t\tif (event.type === \"message_start\") {\n\t\t\tif (\n\t\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\t\tisAssistantMessage(event.message)\n\t\t\t) {\n\t\t\t\tpendingAssistantStart = event.message;\n\t\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t\t? event.message\n\t\t\t\t\t: null;\n\t\t\t\tif (\n\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t) ||\n\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)\n\t\t\t\t) {\n\t\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\t\tpendingAssistantStart = null;\n\t\t\t\t}\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tif (event.type === \"message_update\") {\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (pendingAssistantStart) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"message_start\",\n\t\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t\t});\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tthis._state.streamMessage = null;\n\t\tlet incoming = event.message as AppMessage;\n\t\tif (this.shouldWithholdRecoverableOverflowError(incoming)) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tthis.withheldRecoverableOverflowError = incoming;\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldWithholdRecoverableMaxOutput(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tconst assistantIncoming = incoming;\n\t\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\t\tif (!isDuplicateMessage(lastMessage, assistantIncoming)) {\n\t\t\t\tthis._state.messages = [...this._state.messages, assistantIncoming];\n\t\t\t\tthis.withheldRecoverableLengthMessages.push(assistantIncoming);\n\t\t\t}\n\t\t\tlastStopReason = \"length\";\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldMergeRecoverableLengthContinuation(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tincoming = this.mergeWithWithheldRecoverableLengthMessages(incoming);\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\tthis.primeToolBatch(incoming);\n\t\t\tthis.emit({ type: \"message_start\", message: incoming });\n\t\t\tthis.emit({ ...event, message: incoming });\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (pendingAssistantStart && isAssistantMessage(incoming)) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"message_start\",\n\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t});\n\t\t\tpendingAssistantStart = null;\n\t\t}\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\tif (!isDuplicateMessage(lastMessage, incoming)) {\n\t\t\tthis._state.messages = [...this._state.messages, incoming];\n\t\t}\n\t\tif (\n\t\t\t\"stopReason\" in event.message &&\n\t\t\tevent.message.stopReason !== undefined\n\t\t) {\n\t\t\tlastStopReason = event.message.stopReason;\n\t\t}\n\t\tthis.primeToolBatch(incoming);\n\t\tthis.emit({ ...event, message: incoming });\n\t\treturn { pendingAssistantStart, lastStopReason };\n\t}\n\n\t/**\n\t * Sends a prompt to the model and processes the response, including tool calls.\n\t *\n\t * This is the main entry point for interacting with the agent. It handles:\n\t * - Building the user message with optional image/document attachments\n\t * - Streaming the model's response\n\t * - Executing any tool calls made by the model\n\t * - Automatic retries for tool execution\n\t *\n\t * @param input - The user's text prompt\n\t * @param attachments - Optional images or documents to include with the prompt\n\t *\n\t * @example\n\t * ```typescript\n\t * await agent.prompt(\"Read the package.json file\");\n\t *\n\t * // With image attachment\n\t * await agent.prompt(\"What's in this screenshot?\", [{\n\t * type: \"image\",\n\t * content: base64Data,\n\t * mimeType: \"image/png\"\n\t * }]);\n\t * ```\n\t */\n\tasync prompt(input: string, attachments?: Attachment[]): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\");\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tconst userMessage: UserMessageWithAttachments = {\n\t\t\trole: \"user\",\n\t\t\tcontent: input,\n\t\t\tattachments: attachments?.length ? attachments : undefined,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tthis._state.messages = [...this._state.messages, userMessage];\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\" });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst messagesToSend = this.buildProviderMessages(transformedMessages);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: messagesToSend.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment (Terrarium Principle)\n\t\t\tlet systemPrompt = this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tmessagesToSend, // Include userMessage in messages array\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Continue the agent conversation from existing messages without adding a new user message.\n\t * Useful for overflow recovery after compaction, or resuming a partial response.\n\t *\n\t * @param options - Optional configuration for continuation\n\t */\n\tasync continue(options?: {\n\t\t/** Override the system prompt for this continuation */\n\t\tsystemPromptOverride?: string;\n\t\t/** Override max output tokens for this continuation only. */\n\t\tmaxTokensOverride?: number;\n\t\t/**\n\t\t * Provider-only user instruction appended for this continuation.\n\t\t * Not persisted to session history or shown in the UI.\n\t\t */\n\t\tcontinuationPrompt?: string;\n\t}): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\t// Check we have messages to continue from\n\t\tif (this._state.messages.length === 0) {\n\t\t\tthrow new Error(\"No messages to continue from\");\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\", { continuation: true });\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\", continuation: true });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst continuationPrompt = options?.continuationPrompt?.trim();\n\t\t\tconst providerMessages = this.buildProviderMessages(\n\t\t\t\ttransformedMessages,\n\t\t\t\tcontinuationPrompt,\n\t\t\t);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: providerMessages.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment\n\t\t\tlet systemPrompt =\n\t\t\t\toptions?.systemPromptOverride ?? this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\t// Create a synthetic continuation trigger message\n\t\t\t// This signals to the transport that we want the model to continue responding\n\t\t\tconst continuationMessage: UserMessage = {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [],\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel:\n\t\t\t\t\toptions?.maxTokensOverride !== undefined\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...this._state.model,\n\t\t\t\t\t\t\t\tmaxTokens: options.maxTokensOverride,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\temitUserMessageEnd: false,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tcontinuationMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleToolExecutionStart(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_start\" }>,\n\t): void {\n\t\tconst tool = this._state.tools.find(\n\t\t\t(candidate) => candidate.name === event.toolName,\n\t\t);\n\t\tconst displayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst summaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tthis._state.pendingToolCalls.set(event.toolCallId, {\n\t\t\ttoolName: event.toolName,\n\t\t\targs: event.args,\n\t\t\ttool,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tconst safeArgumentProjection = projectSafeToolCallArguments(event.args);\n\t\trecordMaestroToolCallAttempt({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\ttool_name: event.toolName,\n\t\t\tsafe_arguments: safeArgumentProjection.safe_arguments,\n\t\t\tredactions: safeArgumentProjection.redactions,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tthis.emitStatus(describeToolActivity(event.toolName, event.args, tool), {\n\t\t\tkind: \"tool_execution_summary\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate preserveSpecificPendingToolLabel(\n\t\tnextLabel: string,\n\t\tpendingLabel: string | undefined,\n\t\tgenericLabel: string,\n\t): string {\n\t\tif (\n\t\t\t!pendingLabel ||\n\t\t\tpendingLabel === genericLabel ||\n\t\t\tnextLabel !== genericLabel\n\t\t) {\n\t\t\treturn nextLabel;\n\t\t}\n\t\treturn pendingLabel;\n\t}\n\n\tprivate handleToolExecutionUpdate(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_update\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tconst tool = pending?.tool;\n\t\tconst nextDisplayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst nextSummaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tconst displayName = this.preserveSpecificPendingToolLabel(\n\t\t\tnextDisplayName,\n\t\t\tpending?.displayName,\n\t\t\tdescribeToolDisplayName(event.toolName, {}, tool),\n\t\t);\n\t\tconst summaryLabel = this.preserveSpecificPendingToolLabel(\n\t\t\tnextSummaryLabel,\n\t\t\tpending?.summaryLabel,\n\t\t\tsummarizeToolUse(event.toolName, {}, tool),\n\t\t);\n\t\tif (pending) {\n\t\t\tpending.args = event.args;\n\t\t\tpending.displayName = displayName;\n\t\t\tpending.summaryLabel = summaryLabel;\n\t\t}\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate handleToolExecutionEnd(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tthis._state.pendingToolCalls.delete(event.toolCallId);\n\t\tthis.emit({\n\t\t\t...event,\n\t\t\tdisplayName: pending?.displayName,\n\t\t\tsummaryLabel: pending?.summaryLabel,\n\t\t});\n\t\trecordMaestroToolCallCompleted({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\tstatus: event.isError\n\t\t\t\t? \"MAESTRO_TOOL_CALL_STATUS_FAILED\"\n\t\t\t\t: \"MAESTRO_TOOL_CALL_STATUS_SUCCEEDED\",\n\t\t\tskill_metadata: event.skillMetadata,\n\t\t\tapproval_request_id: event.approvalRequestId,\n\t\t\tgoverned_outcome: event.governedOutcome,\n\t\t\terror_code: event.errorCode,\n\t\t\terror_message: event.isError\n\t\t\t\t? event.result.content\n\t\t\t\t\t\t.map((part) => (part.type === \"text\" ? part.text : \"\"))\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\"\\n\")\n\t\t\t\t: undefined,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tif (event.skillMetadata) {\n\t\t\tthis.recordCurrentTurnSkillSelection({\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t});\n\t\t\tif (event.toolName === \"Skill\") {\n\t\t\t\trecordMaestroSkillInvoked({\n\t\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\t\tskill_metadata: event.skillMetadata,\n\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\t\tcorrelation: {\n\t\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t\t},\n\t\t\t\t\tinvoked_at: new Date(event.result.timestamp).toISOString(),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.publishCurrentTurnEvalScores(event);\n\t\tthis.handleDiagnosticDeltaToolResult(event);\n\t\tif (!pending) {\n\t\t\treturn;\n\t\t}\n\t\tthis.completedToolBatch.push({\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\targs: pending.args ?? {},\n\t\t\tisError: event.isError,\n\t\t\ttool: pending.tool,\n\t\t});\n\t\tif (this.activeToolBatchIds?.delete(event.toolCallId)) {\n\t\t\tif (this.activeToolBatchIds.size > 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.emitToolBatchSummary();\n\t\t}\n\t}\n\n\tprivate buildSkillSelectionKey(skillMetadata: SkillArtifactMetadata): string {\n\t\treturn [\n\t\t\tskillMetadata.artifactId,\n\t\t\tskillMetadata.source,\n\t\t\tskillMetadata.name,\n\t\t\tskillMetadata.version,\n\t\t\tskillMetadata.hash,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\":\");\n\t}\n\n\tprivate recordCurrentTurnSkillSelection(selection: {\n\t\tskillMetadata: SkillArtifactMetadata;\n\t\ttoolCallId: string;\n\t\ttoolExecutionId?: string;\n\t}): void {\n\t\tconst key = this.buildSkillSelectionKey(selection.skillMetadata);\n\t\tif (!key) {\n\t\t\treturn;\n\t\t}\n\t\tconst existing = this.currentTurnSkillSelections.get(key);\n\t\tthis.currentTurnSkillSelections.set(key, {\n\t\t\t...existing,\n\t\t\t...selection,\n\t\t\tevaluationFailure: existing?.evaluationFailure,\n\t\t});\n\t}\n\n\tprivate getCurrentTurnSkillSelectionForEvaluation(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): CurrentTurnSkillSelection | undefined {\n\t\tif (event.skillMetadata) {\n\t\t\treturn this.currentTurnSkillSelections.get(\n\t\t\t\tthis.buildSkillSelectionKey(event.skillMetadata),\n\t\t\t);\n\t\t}\n\t\tif (this.currentTurnSkillSelections.size === 1) {\n\t\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\t\treturn selection;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate publishCurrentTurnEvalScores(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst evaluation = getToolEvaluationSummary(event.result.details);\n\t\tif (!evaluation || this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scoredAt = new Date(event.result.timestamp).toISOString();\n\t\tconst failedEvaluation = isFailedToolEvaluation(evaluation)\n\t\t\t? {\n\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\tscore: evaluation.score,\n\t\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\t\trationale: evaluation.rationale,\n\t\t\t\t\tassertionCount: evaluation.assertionCount,\n\t\t\t\t}\n\t\t\t: undefined;\n\t\tconst evaluationTarget = failedEvaluation\n\t\t\t? this.getCurrentTurnSkillSelectionForEvaluation(event)\n\t\t\t: undefined;\n\t\tif (failedEvaluation) {\n\t\t\tthis.currentTurnEvaluationFailure = failedEvaluation;\n\t\t}\n\t\tif (failedEvaluation && evaluationTarget) {\n\t\t\tevaluationTarget.evaluationFailure = failedEvaluation;\n\t\t}\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\trecordMaestroEvalScored({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\ttool_name: event.toolName,\n\t\t\t\tscore: evaluation.score,\n\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\tpassed: evaluation.passed,\n\t\t\t\trationale: evaluation.rationale,\n\t\t\t\tassertion_count: evaluation.assertionCount,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t},\n\t\t\t\tscored_at: scoredAt,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate publishCurrentTurnSkillOutcomes(options: {\n\t\taborted: boolean;\n\t\tstopReason?: StopReason;\n\t}): void {\n\t\tif (this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst baseTurnStatus = options.aborted\n\t\t\t? \"aborted\"\n\t\t\t: this._state.error !== undefined\n\t\t\t\t? \"error\"\n\t\t\t\t: undefined;\n\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\tconst evaluationFailure = selection.evaluationFailure;\n\t\t\tconst turnStatus =\n\t\t\t\tbaseTurnStatus ??\n\t\t\t\t(evaluationFailure || this.currentTurnEvaluationFailure\n\t\t\t\t\t? \"evaluation_failed\"\n\t\t\t\t\t: \"success\");\n\t\t\tconst outcomeEvaluationFailure =\n\t\t\t\tevaluationFailure ?? this.currentTurnEvaluationFailure;\n\t\t\tconst errorMessage =\n\t\t\t\tturnStatus === \"aborted\"\n\t\t\t\t\t? \"Operation aborted\"\n\t\t\t\t\t: turnStatus === \"error\"\n\t\t\t\t\t\t? this._state.error\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\" && outcomeEvaluationFailure\n\t\t\t\t\t\t\t? buildEvaluationFailureMessage(outcomeEvaluationFailure)\n\t\t\t\t\t\t\t: undefined;\n\t\t\trecordMaestroSkillOutcome({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: selection.toolCallId,\n\t\t\t\ttool_execution_id: selection.toolExecutionId,\n\t\t\t\tturn_status: turnStatus,\n\t\t\t\terror_category:\n\t\t\t\t\tturnStatus === \"success\"\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\"\n\t\t\t\t\t\t\t? \"evaluation\"\n\t\t\t\t\t\t\t: \"runtime\",\n\t\t\t\terror_message: errorMessage,\n\t\t\t\tevaluation_tool_name: evaluationFailure?.toolName,\n\t\t\t\tevaluation_tool_call_id: evaluationFailure?.toolCallId,\n\t\t\t\tevaluation_tool_execution_id: evaluationFailure?.toolExecutionId,\n\t\t\t\tevaluation_score: evaluationFailure?.score,\n\t\t\t\tevaluation_threshold: evaluationFailure?.threshold,\n\t\t\t\tevaluation_assertion_count: evaluationFailure?.assertionCount,\n\t\t\t\tevaluation_rationale: evaluationFailure?.rationale,\n\t\t\t\tstop_reason: options.stopReason,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tprivate handleDiagnosticDeltaToolResult(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst summary = getDiagnosticDeltaFromToolResult(event.result);\n\t\tif (!summary) {\n\t\t\treturn;\n\t\t}\n\t\tif (summary.introducedCount === 0 && summary.repairedCount === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst repairKey = [event.toolName, summary.file, summary.fingerprint].join(\n\t\t\t\":\",\n\t\t);\n\t\tconst nextAttempt = (this.diagnosticRepairAttempts.get(repairKey) ?? 0) + 1;\n\t\tconst hasPendingUserInput =\n\t\t\tthis.steeringQueue.length > 0 || this.followUpQueue.length > 0;\n\t\tconst hasOptOut = hasDiagnosticRepairOptOut(this._state.messages);\n\t\tconst canAutoFollowUp =\n\t\t\t!event.isError &&\n\t\t\tsummary.repair.shouldFollowUp &&\n\t\t\t!hasPendingUserInput &&\n\t\t\t!hasOptOut &&\n\t\t\tnextAttempt <= summary.repair.maxAttempts;\n\n\t\tconst reason = !summary.repair.shouldFollowUp\n\t\t\t? summary.repair.reason\n\t\t\t: event.isError\n\t\t\t\t? \"Tool call failed; leaving diagnostics in the tool result.\"\n\t\t\t\t: hasPendingUserInput\n\t\t\t\t\t? \"Queued user input exists; not adding an automatic diagnostic repair turn.\"\n\t\t\t\t\t: hasOptOut\n\t\t\t\t\t\t? \"User asked Maestro not to continue or repair automatically.\"\n\t\t\t\t\t\t: nextAttempt > summary.repair.maxAttempts\n\t\t\t\t\t\t\t? \"Automatic diagnostic repair attempt limit reached.\"\n\t\t\t\t\t\t\t: \"Queued a bounded diagnostic repair follow-up.\";\n\n\t\tif (summary.repair.shouldFollowUp) {\n\t\t\tthis.diagnosticRepairAttempts.set(repairKey, nextAttempt);\n\t\t}\n\n\t\tthis.emit({\n\t\t\ttype: \"diagnostic_delta\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tfile: summary.file,\n\t\t\tdisplayPath: summary.displayPath,\n\t\t\tusedDelta: summary.usedDelta,\n\t\t\tintroducedCount: summary.introducedCount,\n\t\t\trepairedCount: summary.repairedCount,\n\t\t\tremainingCount: summary.remainingCount,\n\t\t\tfingerprint: summary.fingerprint,\n\t\t\trepairAttempt: summary.repair.shouldFollowUp ? nextAttempt : undefined,\n\t\t\tmaxRepairAttempts: summary.repair.shouldFollowUp\n\t\t\t\t? summary.repair.maxAttempts\n\t\t\t\t: undefined,\n\t\t\twillAutoFollowUp: canAutoFollowUp,\n\t\t\treason,\n\t\t});\n\n\t\tif (!canAutoFollowUp) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.enqueueFollowUpMessageSync(\n\t\t\tbuildDiagnosticRepairFollowUpMessage({\n\t\t\t\tsummary,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\tattempt: nextAttempt,\n\t\t\t}),\n\t\t\t\"front\",\n\t\t);\n\t}\n\n\tprivate enqueueFollowUpMessageSync(\n\t\tmessage: AppMessage,\n\t\tposition: \"front\" | \"back\" = \"back\",\n\t): void {\n\t\tconst queued: QueuedMessage<AppMessage> = {\n\t\t\tid: this.nextQueuedMessageId++,\n\t\t\tcreatedAt: Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: message as Message,\n\t\t};\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t\treturn;\n\t\t}\n\t\tthis.followUpQueue.push(queued);\n\t}\n\n\tprivate primeToolBatch(message: AppMessage): void {\n\t\tif (message.role !== \"assistant\" || message.stopReason !== \"toolUse\") {\n\t\t\treturn;\n\t\t}\n\t\tconst toolCallIds = message.content.flatMap((block) =>\n\t\t\tblock.type === \"toolCall\" ? [block.id] : [],\n\t\t);\n\t\tif (toolCallIds.length === 0) {\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.completedToolBatch = [];\n\t\t\treturn;\n\t\t}\n\t\tthis.activeToolBatchIds = new Set(toolCallIds);\n\t\tthis.completedToolBatch = [];\n\t}\n\n\tprivate emitToolBatchSummary(): void {\n\t\tif (this.completedToolBatch.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst batch = this.completedToolBatch;\n\t\tthis.completedToolBatch = [];\n\t\tconst { summary, summaryLabels, callsSucceeded, callsFailed } =\n\t\t\tsummarizeToolBatch(batch);\n\t\tthis.emit({\n\t\t\ttype: \"tool_batch_summary\",\n\t\t\tsummary,\n\t\t\tsummaryLabels,\n\t\t\ttoolCallIds: batch.map((entry) => entry.toolCallId),\n\t\t\ttoolNames: batch.map((entry) => entry.toolName),\n\t\t\tcallsSucceeded,\n\t\t\tcallsFailed,\n\t\t});\n\t\tif (summaryLabels.length > 0) {\n\t\t\tthis.promptOnlyQueue.push(\n\t\t\t\tbuildPromptOnlyToolBatchSummaryMessage(summaryLabels),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate handleToolPhaseSummary(\n\t\tevent: Extract<AgentEvent, { type: \"tool_phase_summary\" }>,\n\t): void {\n\t\tconst feedback = event.batchShapingFeedback;\n\t\tif (feedback?.avoidableSingleton) {\n\t\t\tconst key = feedback.reason || \"avoidable_singleton\";\n\t\t\tif (this.queuedBatchShapingFeedbackKeys.has(key)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.queuedBatchShapingFeedbackKeys.add(key);\n\t\t\tthis.promptOnlyQueue.push(buildPromptOnlyBatchShapingFeedbackMessage());\n\t\t}\n\t}\n\n\tprivate resolvePendingToolCalls(reason: string): void {\n\t\tfor (const [toolCallId, info] of this._state.pendingToolCalls.entries()) {\n\t\t\tconst abortedResult: ToolResultMessage = {\n\t\t\t\trole: \"toolResult\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: reason,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\tthis._state.messages = [...this._state.messages, abortedResult];\n\t\t\tthis.handleToolExecutionEnd({\n\t\t\t\ttype: \"tool_execution_end\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tresult: abortedResult,\n\t\t\t\tisError: true,\n\t\t\t});\n\t\t}\n\t\tthis._state.pendingToolCalls.clear();\n\t}\n\n\tasync generateSummary(\n\t\thistory: Message[],\n\t\tprompt: string,\n\t\tsystemPrompt = \"\",\n\t\tmodelOverride?: Model<Api>,\n\t\tsignal?: AbortSignal,\n\t): Promise<AssistantMessage> {\n\t\tconst summaryModel = modelOverride ?? this._state.model;\n\t\tif (!summaryModel) {\n\t\t\tthrow new Error(\"No model configured for summarization\");\n\t\t}\n\n\t\tconst userMessage: UserMessage = {\n\t\t\trole: \"user\",\n\t\t\tcontent: [{ type: \"text\", text: prompt }],\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tconst runMessages: Message[] = [...history, userMessage];\n\t\tconst providerMessages = normalizeMessagesForProvider(\n\t\t\trunMessages,\n\t\t\tsummaryModel,\n\t\t);\n\t\tconst runConfig = {\n\t\t\tsystemPrompt,\n\t\t\ttools: [],\n\t\t\tmodel: summaryModel,\n\t\t\treasoning: undefined,\n\t\t\t// Keep summary generation fast by not requesting reasoning summaries.\n\t\t\treasoningSummary: undefined,\n\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t};\n\n\t\tconst controller = new AbortController();\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t} else {\n\t\t\t\tsignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tlet finalMessage: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tcontroller.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_end\" &&\n\t\t\t\t\tevent.message.role === \"assistant\"\n\t\t\t\t) {\n\t\t\t\t\tfinalMessage = event.message as AssistantMessage;\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tcontroller.abort();\n\t\t}\n\n\t\tif (!finalMessage) {\n\t\t\tthrow new Error(\"Summary generation did not return a response\");\n\t\t}\n\n\t\treturn finalMessage;\n\t}\n}\n"]}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Core - Event-Driven LLM Interaction Engine\n *\n * This module provides the central Agent class that orchestrates all LLM\n * communication, tool execution, and state management for the Maestro CLI.\n * It implements an event-driven architecture that enables real-time streaming,\n * concurrent tool execution, and extensible transport layers.\n *\n * ## Architecture Overview\n *\n * ```\n * ┌─────────────────────────────────────────────────────────────────────────┐\n * │ Agent │\n * │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────────────────┐ │\n * │ │ State │ │ Transport │ │ Context Sources │ │\n * │ │ - messages │ │ - Anthropic │ │ - TodoContextSource │ │\n * │ │ - model │ │ - OpenAI │ │ - BackgroundTaskContextSource │ │\n * │ │ - tools │ │ - Google │ │ - LspContextSource │ │\n * │ │ - streaming │ │ - Custom │ │ - FrameworkPreferenceContext │ │\n * │ └─────────────┘ └──────────────┘ └─────────────────────────────────┘ │\n * │ │ │ │ │\n * │ ▼ ▼ ▼ │\n * │ ┌─────────────────────────────────────────────────────────────────────┐│\n * │ │ Event Emitter ││\n * │ │ message_start, message_update, message_end, tool_execution_* ││\n * │ └─────────────────────────────────────────────────────────────────────┘│\n * │ │ │\n * └─────────────────────────────────┼────────────────────────────────────────┘\n * ▼\n * ┌───────────────────┐\n * │ Subscribers │\n * │ - TUI Renderer │\n * │ - Session Mgr │\n * │ - JSONL Writer │\n * └───────────────────┘\n * ```\n *\n * ## Event Flow\n *\n * When `agent.prompt()` is called, the following sequence occurs:\n *\n * 1. **agent_start**: Signals the beginning of a prompt cycle\n * 2. **message_start**: Message envelope begins (user or assistant)\n * 3. **message_end**: Message envelope completes (user or assistant)\n * 4. **content_block_delta**: Streaming text/thinking content\n * 5. **tool_execution_start**: Tool call initiated\n * 6. **tool_execution_end**: Tool call completed\n * 7. **message_update**: Partial message with accumulated content\n * 8. **agent_end**: Prompt cycle completed\n *\n * ## Message Transformation\n *\n * Messages are transformed through a pipeline before being sent to the LLM:\n *\n * 1. **App Messages**: Internal format with attachments, metadata\n * 2. **Message Transform**: Convert attachments to content blocks\n * 3. **Provider Normalization**: Adapt to target provider's format\n * 4. **System Prompt Injection**: Add context from context sources\n *\n * ## Thinking/Reasoning Support\n *\n * The agent supports extended thinking for compatible models:\n *\n * | Level | Description |\n * |---------|------------------------------------------|\n * | off | No extended thinking |\n * | minimal | Brief chain-of-thought |\n * | low | Short reasoning steps |\n * | medium | Moderate reasoning depth |\n * | high | Deep reasoning with exploration |\n * | max | Maximum reasoning effort |\n *\n * ## Abort and Partial Handling\n *\n * The agent supports graceful interruption:\n *\n * - `abort()`: Cancel current request, discard partial response\n * - `abortAndKeepPartial()`: Cancel but preserve partial content\n *\n * @module agent/agent\n */\n\nimport { validate as uuidValidate } from \"uuid\";\nimport {\n\tbuildDiagnosticRepairFollowUpMessage,\n\tgetDiagnosticDeltaFromToolResult,\n\thasDiagnosticRepairOptOut,\n} from \"../lsp/diagnostic-repair.js\";\nimport {\n\tprojectSafeToolCallArguments,\n\trecordMaestroEvalScored,\n\trecordMaestroSkillInvoked,\n\trecordMaestroSkillOutcome,\n\trecordMaestroToolCallAttempt,\n\trecordMaestroToolCallCompleted,\n} from \"../telemetry/maestro-event-bus.js\";\nimport { createQueryProfilerFromEnv } from \"../utils/checkpoint-profiler.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport {\n\tdescribeToolActivity,\n\tdescribeToolDisplayName,\n\tsummarizeToolBatch,\n\tsummarizeToolUse,\n} from \"../utils/tool-use-summary.js\";\nimport {\n\tAgentContextManager,\n\ttype AgentContextSource,\n\ttype ContextLoadResult,\n} from \"./context-manager.js\";\nimport { isContextOverflow as isAssistantContextOverflow } from \"./context-overflow.js\";\nimport { convertAppMessagesToLlm, isCoreMessage } from \"./custom-messages.js\";\nimport {\n\ttype PreprocessMessagesFn,\n\tchainPreprocessMessages,\n\tdefaultPreprocessMessages,\n} from \"./preprocess-messages.js\";\nimport type { SkillArtifactMetadata } from \"./skill-artifact-metadata.js\";\nimport { isAssistantMessage } from \"./type-guards.js\";\nimport type {\n\tAgentEvent,\n\tAgentState,\n\tAgentTool,\n\tAgentTransport,\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tAttachment,\n\tImageContent,\n\tMessage,\n\tModel,\n\tQueuedMessage,\n\tReasoningEffort,\n\tStopReason,\n\tTextContent,\n\tThinkingLevel,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\n\nconst logger = createLogger(\"agent\");\n\ntype ToolEvaluationSummary = {\n\tscore?: number;\n\tthreshold?: number;\n\tpassed?: boolean;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype SkillEvaluationFailure = {\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\ttoolName?: string;\n\tscore?: number;\n\tthreshold?: number;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype CurrentTurnSkillSelection = {\n\tskillMetadata: SkillArtifactMetadata;\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\tevaluationFailure?: SkillEvaluationFailure;\n};\n\nfunction getToolEvaluationSummary(\n\tdetails: unknown,\n): ToolEvaluationSummary | undefined {\n\tif (!details || typeof details !== \"object\" || Array.isArray(details)) {\n\t\treturn undefined;\n\t}\n\n\tconst normalized = details as {\n\t\tevaluation?: unknown;\n\t\tassertions?: unknown;\n\t};\n\tif (\n\t\t!normalized.evaluation ||\n\t\ttypeof normalized.evaluation !== \"object\" ||\n\t\tArray.isArray(normalized.evaluation)\n\t) {\n\t\treturn undefined;\n\t}\n\n\tconst evaluation = normalized.evaluation as Record<string, unknown>;\n\tconst summary: ToolEvaluationSummary = {};\n\tif (\n\t\ttypeof evaluation.score === \"number\" &&\n\t\tNumber.isFinite(evaluation.score)\n\t) {\n\t\tsummary.score = evaluation.score;\n\t}\n\tif (\n\t\ttypeof evaluation.threshold === \"number\" &&\n\t\tNumber.isFinite(evaluation.threshold)\n\t) {\n\t\tsummary.threshold = evaluation.threshold;\n\t}\n\tif (typeof evaluation.passed === \"boolean\") {\n\t\tsummary.passed = evaluation.passed;\n\t}\n\tif (\n\t\ttypeof evaluation.rationale === \"string\" &&\n\t\tevaluation.rationale.trim().length > 0\n\t) {\n\t\tsummary.rationale = evaluation.rationale.trim();\n\t}\n\tif (\n\t\tArray.isArray(normalized.assertions) &&\n\t\tnormalized.assertions.length > 0\n\t) {\n\t\tsummary.assertionCount = normalized.assertions.length;\n\t}\n\n\treturn Object.keys(summary).length > 0 ? summary : undefined;\n}\n\nfunction isFailedToolEvaluation(summary: ToolEvaluationSummary): boolean {\n\tif (summary.passed === false) {\n\t\treturn true;\n\t}\n\tif (summary.passed === true) {\n\t\treturn false;\n\t}\n\treturn (\n\t\ttypeof summary.score === \"number\" &&\n\t\ttypeof summary.threshold === \"number\" &&\n\t\tsummary.score < summary.threshold\n\t);\n}\n\nfunction buildEvaluationFailureMessage(\n\tfailure: SkillEvaluationFailure,\n): string | undefined {\n\tif (failure.rationale) {\n\t\treturn failure.rationale;\n\t}\n\tif (\n\t\ttypeof failure.score === \"number\" &&\n\t\ttypeof failure.threshold === \"number\"\n\t) {\n\t\treturn `Eval score ${failure.score} below threshold ${failure.threshold}`;\n\t}\n\tif (typeof failure.score === \"number\") {\n\t\treturn `Eval score ${failure.score} did not pass`;\n\t}\n\treturn \"Selected skill failed evaluation\";\n}\n\n/**\n * Default message transformer that converts app messages to LLM-ready format.\n *\n * This transformer handles:\n * - Filtering to valid message roles (user, assistant, toolResult)\n * - Expanding user message attachments into content blocks\n * - Converting images to base64 image content\n * - Converting documents to text content with filename headers\n *\n * @param messages - Array of app messages to transform\n * @returns Array of messages ready for LLM consumption\n */\nfunction defaultMessageTransformer(messages: AppMessage[]): Message[] {\n\treturn (\n\t\tconvertAppMessagesToLlm(messages)\n\t\t\t// Filter to only roles the LLM understands\n\t\t\t.filter(\n\t\t\t\t(m) =>\n\t\t\t\t\tm.role === \"user\" ||\n\t\t\t\t\tm.role === \"assistant\" ||\n\t\t\t\t\tm.role === \"toolResult\",\n\t\t\t)\n\t\t\t.map((message) => {\n\t\t\t\t// Non-user messages pass through unchanged\n\t\t\t\tif (message.role !== \"user\") {\n\t\t\t\t\treturn message as Message;\n\t\t\t\t}\n\n\t\t\t\t// Handle user messages with attachments\n\t\t\t\tconst { attachments, ...rest } = message as UserMessageWithAttachments;\n\t\t\t\tif (!attachments || attachments.length === 0) {\n\t\t\t\t\treturn rest as Message;\n\t\t\t\t}\n\n\t\t\t\t// Expand attachments into content array\n\t\t\t\t// Start with existing content (may be string or array)\n\t\t\t\tconst content: Array<TextContent | ImageContent> = Array.isArray(\n\t\t\t\t\trest.content,\n\t\t\t\t)\n\t\t\t\t\t? [...rest.content]\n\t\t\t\t\t: [{ type: \"text\", text: rest.content }];\n\n\t\t\t\t// Convert each attachment to appropriate content type\n\t\t\t\tfor (const attachment of attachments) {\n\t\t\t\t\tif (attachment.type === \"image\") {\n\t\t\t\t\t\t// Images become image content blocks with base64 data\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"image\",\n\t\t\t\t\t\t\tdata: attachment.content,\n\t\t\t\t\t\t\tmimeType: attachment.mimeType,\n\t\t\t\t\t\t} as ImageContent);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tattachment.type === \"document\" &&\n\t\t\t\t\t\tattachment.extractedText\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Documents become text blocks with filename headers\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `\\n\\n[Document: ${attachment.fileName}]\\n${attachment.extractedText}`,\n\t\t\t\t\t\t} as TextContent);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn { ...rest, content } as Message;\n\t\t\t})\n\t);\n}\n\n/**\n * Maps internal thinking level to provider reasoning effort parameter.\n *\n * Different providers have different reasoning/thinking capabilities.\n * This function normalizes our internal levels to what providers support.\n *\n * @param level - Internal thinking level\n * @returns Provider-specific reasoning effort, or undefined if disabled\n */\nfunction mapThinkingLevel(level: ThinkingLevel): ReasoningEffort | undefined {\n\tswitch (level) {\n\t\tcase \"off\":\n\t\t\treturn undefined; // No extended thinking\n\t\tcase \"minimal\":\n\t\t\treturn \"minimal\"; // Brief chain-of-thought\n\t\tcase \"low\":\n\t\t\treturn \"low\"; // Short reasoning steps\n\t\tcase \"medium\":\n\t\t\treturn \"medium\"; // Moderate depth\n\t\tcase \"high\":\n\t\t\treturn \"high\"; // Thorough reasoning\n\t\tcase \"ultra\":\n\t\t\treturn \"ultra\"; // Provider max where supported\n\t\tcase \"max\":\n\t\t\treturn \"high\"; // Maximum reasoning (max maps to high for providers)\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nfunction buildPromptOnlyToolBatchSummaryMessage(\n\tsummaryLabels: string[],\n): UserMessage {\n\tconst bulletList = summaryLabels.map((label) => `- ${label}`).join(\"\\n\");\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is a transient summary of the most recent tool activity:\\n${bulletList}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nconst PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT =\n\t\"When you need several independent reads or searches, emit them together in one assistant message so Maestro can batch them safely.\";\n\nfunction buildPromptOnlyBatchShapingFeedbackMessage(): UserMessage {\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is transient tool batching feedback for the next assistant turn:\\n- ${PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\n/**\n * Ensures prior assistant messages remain provider-compatible when switching models mid-session.\n *\n * When users switch between providers (e.g., Anthropic → OpenAI), previous assistant\n * messages may contain provider-specific content like \"thinking\" blocks. This function\n * converts those blocks to a format all providers can understand.\n *\n * ## Problem\n *\n * Anthropic's thinking blocks look like: `{ type: \"thinking\", thinking: \"...\" }`\n * OpenAI doesn't understand this format and may error or ignore it.\n *\n * ## Solution\n *\n * Convert thinking blocks to text: `<thinking>...</thinking>` which all providers\n * can process as regular text content.\n *\n * @param messages - Messages from conversation history\n * @param targetModel - The model that will receive these messages\n * @returns Messages with thinking blocks normalized for the target provider\n */\nfunction normalizeMessagesForProvider(\n\tmessages: Message[],\n\ttargetModel: Model<Api>,\n): Message[] {\n\tconst normalizedMessages: Message[] = [];\n\n\tfor (const msg of messages) {\n\t\tif (msg.role !== \"assistant\") {\n\t\t\tif (msg.role === \"user\") {\n\t\t\t\tconst previous = normalizedMessages[normalizedMessages.length - 1];\n\t\t\t\tif (previous?.role === \"user\") {\n\t\t\t\t\tconst previousContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof previous.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: previous.content }]\n\t\t\t\t\t\t\t: [...previous.content];\n\t\t\t\t\tconst currentContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof msg.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: msg.content }]\n\t\t\t\t\t\t\t: [...msg.content];\n\t\t\t\t\tconst mergedContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\tpreviousContent.length > 0 && currentContent.length > 0\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...previousContent,\n\t\t\t\t\t\t\t\t\t{ type: \"text\", text: \"\\n\\n\" } as TextContent,\n\t\t\t\t\t\t\t\t\t...currentContent,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t: [...previousContent, ...currentContent];\n\t\t\t\t\tconst previousAttachments = (\n\t\t\t\t\t\t\"attachments\" in previous ? previous.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst currentAttachments = (\n\t\t\t\t\t\t\"attachments\" in msg ? msg.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst mergedAttachments: Attachment[] = [\n\t\t\t\t\t\t...(previousAttachments ?? []),\n\t\t\t\t\t\t...(currentAttachments ?? []),\n\t\t\t\t\t];\n\t\t\t\t\tconst mergedUser: UserMessageWithAttachments = {\n\t\t\t\t\t\t...previous,\n\t\t\t\t\t\tcontent: mergedContent,\n\t\t\t\t\t\tattachments:\n\t\t\t\t\t\t\tmergedAttachments.length > 0 ? mergedAttachments : undefined,\n\t\t\t\t\t\tmetadata: previous.metadata ?? msg.metadata,\n\t\t\t\t\t};\n\t\t\t\t\tnormalizedMessages[normalizedMessages.length - 1] = mergedUser;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst shouldConvertThinking =\n\t\t\tmsg.provider !== targetModel.provider ||\n\t\t\tmsg.api !== targetModel.api ||\n\t\t\t!targetModel.reasoning;\n\t\tif (!shouldConvertThinking) {\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst content = msg.content.map((block) => {\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: `<thinking>${block.thinking}</thinking>`,\n\t\t\t\t} as TextContent;\n\t\t\t}\n\t\t\treturn block;\n\t\t});\n\t\tnormalizedMessages.push({ ...msg, content });\n\t}\n\n\treturn normalizedMessages;\n}\n\ntype BufferedAssistantStartState = {\n\tpendingAssistantStart: AssistantMessage | null;\n\tlastStopReason?: StopReason;\n};\n\ntype StreamedMessageEvent = Extract<\n\tAgentEvent,\n\t{ type: \"message_start\" | \"message_update\" | \"message_end\" }\n>;\n\nfunction isDuplicateMessage(\n\texisting: AppMessage | undefined,\n\tincoming: AppMessage,\n): boolean {\n\tif (!existing) return false;\n\tif (existing.role !== incoming.role) return false;\n\tif (\"timestamp\" in existing && \"timestamp\" in incoming) {\n\t\tif (existing.timestamp !== incoming.timestamp) return false;\n\t}\n\tif (existing.role === \"toolResult\" && incoming.role === \"toolResult\") {\n\t\treturn existing.toolCallId === incoming.toolCallId;\n\t}\n\t// For assistant messages, compare stopReason and content fingerprint to avoid\n\t// discarding distinct messages that share a timestamp (e.g. parallel tool calls).\n\tif (existing.role === \"assistant\" && incoming.role === \"assistant\") {\n\t\tif (existing.stopReason !== incoming.stopReason) return false;\n\t\tif (existing.content.length !== incoming.content.length) return false;\n\t\t// Compare first content block identity for a stronger structural check.\n\t\tconst a = existing.content[0];\n\t\tconst b = incoming.content[0];\n\t\tif (a && b) {\n\t\t\tif (a.type !== b.type) return false;\n\t\t\tif (a.type === \"toolCall\" && b.type === \"toolCall\") {\n\t\t\t\tif (a.id !== b.id) return false;\n\t\t\t} else if (a.type === \"text\" && b.type === \"text\") {\n\t\t\t\tif (a.text !== b.text) return false;\n\t\t\t} else if (a.type === \"thinking\" && b.type === \"thinking\") {\n\t\t\t\tif (a.thinking !== b.thinking) return false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction mergeUsage(messages: AssistantMessage[]): Usage {\n\treturn messages.reduce<Usage>(\n\t\t(acc, message) => ({\n\t\t\tinput: acc.input + message.usage.input,\n\t\t\toutput: acc.output + message.usage.output,\n\t\t\tcacheRead: acc.cacheRead + message.usage.cacheRead,\n\t\t\tcacheWrite: acc.cacheWrite + message.usage.cacheWrite,\n\t\t\tcost: {\n\t\t\t\tinput: acc.cost.input + message.usage.cost.input,\n\t\t\t\toutput: acc.cost.output + message.usage.cost.output,\n\t\t\t\tcacheRead: acc.cost.cacheRead + message.usage.cost.cacheRead,\n\t\t\t\tcacheWrite: acc.cost.cacheWrite + message.usage.cost.cacheWrite,\n\t\t\t\ttotal: acc.cost.total + message.usage.cost.total,\n\t\t\t},\n\t\t}),\n\t\t{\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\tcost: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotal: 0,\n\t\t\t},\n\t\t},\n\t);\n}\n\nfunction mergeAssistantMessages(\n\tmessages: AssistantMessage[],\n): AssistantMessage {\n\tconst lastMessage = messages[messages.length - 1]!;\n\treturn {\n\t\t...lastMessage,\n\t\tcontent: messages.flatMap((message) => message.content),\n\t\tusage: mergeUsage(messages),\n\t};\n}\n\n/**\n * Configuration options for creating an Agent instance.\n */\nexport interface AgentOptions {\n\t/** Initial state to override defaults (system prompt, model, tools, etc.) */\n\tinitialState?: Partial<AgentState>;\n\t/** Transport implementation for LLM provider communication */\n\ttransport: AgentTransport;\n\t/** Optional transformer to convert app messages to provider-specific format */\n\tmessageTransformer?: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\t/** Optional message preprocessor executed immediately before provider invocation */\n\tpreprocessMessages?: PreprocessMessagesFn;\n\t/** Disable Maestro's built-in preprocessing (not recommended) */\n\tdisableDefaultPreprocessMessages?: boolean;\n\t/** Optional context sources for environment injection */\n\tcontextSources?: AgentContextSource[];\n}\n\n/**\n * Core Agent class implementing event-driven LLM interaction.\n *\n * The Agent manages conversation state, tool execution, and streaming responses\n * across multiple LLM providers through an abstracted transport layer.\n *\n * @example\n * ```typescript\n * const agent = new Agent({\n * transport: new AnthropicTransport(apiKey),\n * initialState: { model: claudeSonnet4, tools: codingTools }\n * });\n *\n * agent.subscribe((event) => {\n * if (event.type === 'content_block_delta') {\n * process.stdout.write(event.text);\n * }\n * });\n *\n * await agent.prompt(\"Create a hello world function\");\n * ```\n */\nexport class Agent {\n\tprivate _state: AgentState;\n\tprivate listeners: Array<(e: AgentEvent) => void> = [];\n\tprivate abortController?: AbortController;\n\tprivate transport: AgentTransport;\n\tprivate messageTransformer: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\tprivate preprocessMessages?: PreprocessMessagesFn;\n\tprivate steeringQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate followUpQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate nextRunHistoryQueue: AppMessage[] = [];\n\tprivate nextRunPromptOnlyQueue: Message[] = [];\n\tprivate promptOnlyQueue: Message[] = [];\n\tprivate queuedBatchShapingFeedbackKeys = new Set<string>();\n\tprivate nextRunSystemPromptAdditions: string[] = [];\n\tprivate defaultTaskBudgetTotal?: number;\n\tprivate currentTaskBudget?:\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined;\n\tprivate steeringMode: \"all\" | \"one\" = \"all\";\n\tprivate followUpMode: \"all\" | \"one\" = \"all\";\n\tprivate queueMode: \"all\" | \"one\" = \"all\";\n\tprivate nextQueuedMessageId = 1;\n\tprivate runningPrompt?: Promise<void>;\n\tprivate resolveRunningPrompt?: () => void;\n\tprivate contextManager: AgentContextManager;\n\tprivate activeToolBatchIds: Set<string> | null = null;\n\tprivate completedToolBatch: Array<{\n\t\ttoolCallId: string;\n\t\ttoolName: string;\n\t\targs: Record<string, unknown>;\n\t\tisError: boolean;\n\t\ttool?: Pick<AgentTool, \"getToolUseSummary\" | \"getActivityDescription\">;\n\t}> = [];\n\tprivate suppressRecoverableOverflowErrors = false;\n\tprivate withheldRecoverableOverflowError?: AssistantMessage;\n\tprivate withheldRecoverableLengthMessages: AssistantMessage[] = [];\n\tprivate pendingMergedRecoverableTurnEnd?: AssistantMessage;\n\tprivate diagnosticRepairAttempts = new Map<string, number>();\n\tprivate currentTurnEvaluationFailure?: SkillEvaluationFailure;\n\tprivate currentTurnSkillSelections = new Map<\n\t\tstring,\n\t\tCurrentTurnSkillSelection\n\t>();\n\n\t/**\n\t * Creates a new Agent instance.\n\t *\n\t * @param opts - Configuration options including transport and initial state\n\t */\n\tconstructor(opts: AgentOptions) {\n\t\tthis.transport = opts.transport;\n\t\tthis.messageTransformer =\n\t\t\topts.messageTransformer ??\n\t\t\t((messages) => defaultMessageTransformer(messages));\n\t\tthis.preprocessMessages = chainPreprocessMessages(\n\t\t\topts.disableDefaultPreprocessMessages\n\t\t\t\t? undefined\n\t\t\t\t: defaultPreprocessMessages,\n\t\t\topts.preprocessMessages,\n\t\t);\n\n\t\tthis.contextManager = new AgentContextManager();\n\t\tif (opts.contextSources) {\n\t\t\tfor (const source of opts.contextSources) {\n\t\t\t\tthis.contextManager.addSource(source);\n\t\t\t}\n\t\t}\n\n\t\tconst {\n\t\t\tsystemPrompt,\n\t\t\tmodel,\n\t\t\tthinkingLevel,\n\t\t\ttools,\n\t\t\tqueueMode,\n\t\t\tsteeringMode,\n\t\t\tfollowUpMode,\n\t\t\t...restInitialState\n\t\t} = opts.initialState ?? {};\n\t\tthis.queueMode = queueMode ?? \"all\";\n\t\tthis.steeringMode = steeringMode ?? queueMode ?? \"all\";\n\t\tthis.followUpMode = followUpMode ?? queueMode ?? \"all\";\n\n\t\tif (restInitialState.user) {\n\t\t\tif (\n\t\t\t\t!uuidValidate(restInitialState.user.id) ||\n\t\t\t\t!uuidValidate(restInitialState.user.orgId)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Invalid user ID or Org ID: Must be a valid UUID\");\n\t\t\t}\n\t\t}\n\n\t\tthis._state = {\n\t\t\tsystemPrompt: systemPrompt ?? \"\",\n\t\t\tmodel:\n\t\t\t\tmodel ??\n\t\t\t\t((): never => {\n\t\t\t\t\tthrow new Error(\"Agent requires an initial model\");\n\t\t\t\t})(),\n\t\t\tthinkingLevel: thinkingLevel ?? \"off\",\n\t\t\ttools: tools ?? [],\n\t\t\tmessages: [],\n\t\t\tisStreaming: false,\n\t\t\tstreamMessage: null,\n\t\t\tpendingToolCalls: new Map(),\n\t\t\tsandbox: restInitialState.sandbox,\n\t\t\tsandboxMode: restInitialState.sandboxMode ?? null,\n\t\t\tsandboxEnabled:\n\t\t\t\trestInitialState.sandboxEnabled ?? Boolean(restInitialState.sandbox),\n\t\t\t...restInitialState,\n\t\t\tqueueMode: this.queueMode,\n\t\t\tsteeringMode: this.steeringMode,\n\t\t\tfollowUpMode: this.followUpMode,\n\t\t};\n\t}\n\n\t/**\n\t * Gets the current agent state (read-only).\n\t *\n\t * @returns The current state including messages, model, tools, and streaming status\n\t */\n\tget state(): Readonly<AgentState> {\n\t\treturn this._state;\n\t}\n\n\t/**\n\t * Gets detailed status of all context sources.\n\t *\n\t * Context sources provide dynamic content injected into the system prompt,\n\t * such as todo lists, LSP diagnostics, and IDE information.\n\t *\n\t * @returns Promise resolving to context load result with per-source status\n\t *\n\t * @example\n\t * ```typescript\n\t * const result = await agent.getContextSourceStatus();\n\t * for (const source of result.sourceStatuses) {\n\t * console.log(`${source.name}: ${source.status} (${source.durationMs}ms)`);\n\t * }\n\t * ```\n\t */\n\tasync getContextSourceStatus(): Promise<ContextLoadResult> {\n\t\treturn this.contextManager.getCombinedSystemPromptWithStatus();\n\t}\n\n\t/**\n\t * Optionally probes the underlying transport for connectivity checks.\n\t */\n\tasync probeTransport(): Promise<void> {\n\t\tif (this.transport.ping) {\n\t\t\tawait this.transport.ping();\n\t\t}\n\t}\n\n\t/**\n\t * Subscribes to agent events (streaming deltas, tool calls, errors, etc.).\n\t *\n\t * @param fn - Event listener function to be called on each event\n\t * @returns Unsubscribe function to remove the listener\n\t *\n\t * @example\n\t * ```typescript\n\t * const unsubscribe = agent.subscribe((event) => {\n\t * if (event.type === 'content_block_delta') {\n\t * console.log(event.text);\n\t * }\n\t * });\n\t *\n\t * // Later, to stop listening:\n\t * unsubscribe();\n\t * ```\n\t */\n\tsubscribe(fn: (e: AgentEvent) => void): () => void {\n\t\tthis.listeners.push(fn);\n\t\treturn () => {\n\t\t\tconst idx = this.listeners.indexOf(fn);\n\t\t\tif (idx >= 0) this.listeners.splice(idx, 1);\n\t\t};\n\t}\n\n\t/**\n\t * Emits an event to all subscribed listeners.\n\t * Errors in listeners are caught and logged to prevent cascading failures.\n\t *\n\t * @param event - The event to emit\n\t */\n\tprivate emit(event: AgentEvent): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\ttry {\n\t\t\t\tlistener(event);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\n\t\t\t\t\t\"Error in agent event listener\",\n\t\t\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async dequeueSteeringMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.steeringQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.steeringMode === \"one\") {\n\t\t\tconst next = this.steeringQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.steeringQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueFollowUpMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.followUpQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.followUpMode === \"one\") {\n\t\t\tconst next = this.followUpQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.followUpQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeuePromptOnlyMessages(): Promise<Message[]> {\n\t\tif (\n\t\t\tthis.nextRunPromptOnlyQueue.length === 0 &&\n\t\t\tthis.promptOnlyQueue.length === 0\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunPromptOnlyQueue, ...this.promptOnlyQueue];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunHistoryMessages(): AppMessage[] {\n\t\tif (this.nextRunHistoryQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunHistoryQueue];\n\t\tthis.nextRunHistoryQueue = [];\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunSystemPromptAdditions(): string[] {\n\t\tif (this.nextRunSystemPromptAdditions.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunSystemPromptAdditions];\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueQueuedMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\treturn this.dequeueFollowUpMessages<T>();\n\t}\n\n\t/**\n\t * Sets the system prompt that provides context and instructions to the model.\n\t *\n\t * @param v - The system prompt text\n\t */\n\tsetSystemPrompt(v: string): void {\n\t\tthis._state.systemPrompt = v;\n\t}\n\n\tsetSystemPromptSourcePaths(paths: string[] | undefined): void {\n\t\tthis._state.systemPromptSourcePaths =\n\t\t\tpaths && paths.length > 0 ? [...paths] : undefined;\n\t}\n\n\t/**\n\t * Sets the active LLM model for this agent.\n\t *\n\t * @param m - The model configuration\n\t */\n\tsetModel(m: Model<Api>): void {\n\t\tthis._state.model = m;\n\t\tif (!m.reasoning && this._state.thinkingLevel !== \"off\") {\n\t\t\tthis._state.thinkingLevel = \"off\";\n\t\t}\n\t}\n\n\t/**\n\t * Sets the thinking/reasoning level for extended reasoning models.\n\t *\n\t * @param l - Thinking level: \"off\", \"minimal\", \"low\", \"medium\", \"high\", \"max\"\n\t */\n\tsetThinkingLevel(l: ThinkingLevel): void {\n\t\tthis._state.thinkingLevel = l;\n\t}\n\n\t/**\n\t * Controls how queued steering messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetSteeringMode(mode: \"all\" | \"one\"): void {\n\t\tthis.steeringMode = mode;\n\t\tthis.queueMode = mode;\n\t\tthis._state.steeringMode = mode;\n\t\tthis._state.queueMode = mode;\n\t}\n\n\tgetSteeringMode(): \"all\" | \"one\" {\n\t\treturn this.steeringMode;\n\t}\n\n\t/**\n\t * Controls how queued follow-up messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetFollowUpMode(mode: \"all\" | \"one\"): void {\n\t\tthis.followUpMode = mode;\n\t\tthis._state.followUpMode = mode;\n\t}\n\n\tgetFollowUpMode(): \"all\" | \"one\" {\n\t\treturn this.followUpMode;\n\t}\n\n\t/**\n\t * @deprecated Use setSteeringMode/setFollowUpMode instead.\n\t * Sets both steering + follow-up modes for compatibility.\n\t */\n\tsetQueueMode(mode: \"all\" | \"one\"): void {\n\t\tthis.queueMode = mode;\n\t\tthis._state.queueMode = mode;\n\t\tthis.setSteeringMode(mode);\n\t\tthis.setFollowUpMode(mode);\n\t}\n\n\t/**\n\t * Sets the available tools that the model can invoke.\n\t *\n\t * @param t - Array of tool definitions with schemas and execute functions\n\t */\n\tsetTools(t: AgentTool[]): void {\n\t\tthis._state.tools = t;\n\t}\n\n\t/**\n\t * Sets the active user for this agent.\n\t */\n\tsetUser(user: AgentState[\"user\"]): void {\n\t\tthis._state.user = user;\n\t}\n\n\t/**\n\t * Sets the active session for this agent.\n\t */\n\tsetSession(session: AgentState[\"session\"]): void {\n\t\tthis._state.session = session;\n\t}\n\n\t/**\n\t * Sets the sampling temperature for LLM generation.\n\t *\n\t * @param t - Temperature value (0.0-2.0, lower = more deterministic). Pass undefined to reset to default.\n\t */\n\tsetTemperature(t: number | undefined): void {\n\t\tthis._state.temperature = t;\n\t}\n\n\t/**\n\t * Sets the top-p sampling parameter for LLM generation.\n\t *\n\t * @param p - Top-p value (0.0-1.0). Pass undefined to reset to default.\n\t */\n\tsetTopP(p: number | undefined): void {\n\t\tthis._state.topP = p;\n\t}\n\n\tsetTaskBudgetTotal(total: number | undefined): void {\n\t\tthis.defaultTaskBudgetTotal = total;\n\t}\n\n\tgetTaskBudgetTotal(): number | undefined {\n\t\treturn this.defaultTaskBudgetTotal;\n\t}\n\n\tsetCurrentTaskBudget(\n\t\ttaskBudget:\n\t\t\t| {\n\t\t\t\t\ttotal: number;\n\t\t\t\t\tremaining?: number;\n\t\t\t }\n\t\t\t| undefined,\n\t): void {\n\t\tthis.currentTaskBudget = taskBudget ? { ...taskBudget } : undefined;\n\t}\n\n\tgetCurrentTaskBudget():\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined {\n\t\treturn this.currentTaskBudget ? { ...this.currentTaskBudget } : undefined;\n\t}\n\n\t/**\n\t * Replaces the entire message history with a new set of messages.\n\t *\n\t * @param ms - New message array\n\t */\n\treplaceMessages(ms: AppMessage[]): void {\n\t\tthis._state.messages = ms.slice();\n\t}\n\n\t/**\n\t * Clear transient run state without touching message history or queued inputs.\n\t *\n\t * This is useful before starting a fresh run, or after operations like\n\t * compaction that rewrite history while the agent is otherwise idle.\n\t */\n\tclearTransientRunState(options?: {\n\t\tclearSessionContextCache?: boolean;\n\t}): void {\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tif (options?.clearSessionContextCache) {\n\t\t\tthis.contextManager.clearSessionCache();\n\t\t}\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis._state.error = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tif (!this.suppressRecoverableOverflowErrors) {\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t}\n\t\tthis._partialAccepted = null;\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tsetRecoverableOverflowErrorSuppression(enabled: boolean): void {\n\t\tthis.suppressRecoverableOverflowErrors = enabled;\n\t\tif (!enabled) {\n\t\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t}\n\t}\n\n\tgetWithheldRecoverableOverflowError(): AssistantMessage | undefined {\n\t\treturn this.withheldRecoverableOverflowError;\n\t}\n\n\tflushWithheldRecoverableLengthMessage(): AssistantMessage | undefined {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages(\n\t\t\tthis.withheldRecoverableLengthMessages,\n\t\t);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.primeToolBatch(merged);\n\t\tthis.emit({ type: \"message_start\", message: merged });\n\t\tthis.emit({ type: \"message_end\", message: merged });\n\t\tthis.emit({ type: \"turn_end\", message: merged, toolResults: [] });\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Appends a single message to the conversation history.\n\t *\n\t * @param m - Message to append\n\t */\n\tappendMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t}\n\n\t/**\n\t * Inject a message into the conversation history and emit a message_end event.\n\t */\n\tinjectMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t\tthis.emit({ type: \"message_end\", message: m });\n\t}\n\n\t/**\n\t * Emit a transient runtime status update without mutating conversation history.\n\t */\n\temitStatus(status: string, details: Record<string, unknown> = {}): void {\n\t\tconst normalized = status.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"status\", status: normalized, details });\n\t}\n\n\t/**\n\t * Emit a transient runtime error without mutating conversation history.\n\t */\n\temitError(message: string): void {\n\t\tconst normalized = message.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"error\", message: normalized });\n\t}\n\n\tprivate shouldWithholdRecoverableOverflowError(\n\t\tmessage: AppMessage,\n\t): message is AssistantMessage {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tisAssistantMessage(message) &&\n\t\t\tmessage.stopReason === \"error\" &&\n\t\t\tisAssistantContextOverflow(message, this._state.model.contextWindow)\n\t\t);\n\t}\n\n\tprivate shouldWithholdRecoverableMaxOutput(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors && message.stopReason === \"length\"\n\t\t);\n\t}\n\n\tprivate shouldMergeRecoverableLengthContinuation(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tthis.withheldRecoverableLengthMessages.length > 0 &&\n\t\t\tmessage.stopReason !== \"length\" &&\n\t\t\tmessage.stopReason !== \"error\"\n\t\t);\n\t}\n\n\tprivate mergeWithWithheldRecoverableLengthMessages(\n\t\tincoming: AssistantMessage,\n\t): AssistantMessage {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn incoming;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages([\n\t\t\t...this.withheldRecoverableLengthMessages,\n\t\t\tincoming,\n\t\t]);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = merged;\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Emit a compaction lifecycle event without mutating conversation history.\n\t */\n\temitCompaction(\n\t\tevent: Omit<Extract<AgentEvent, { type: \"compaction\" }>, \"type\">,\n\t): void {\n\t\tthis.emit({ type: \"compaction\", ...event });\n\t}\n\n\t/**\n\t * Queue a prompt-only message for the next run without persisting it to history.\n\t */\n\tqueueNextRunPromptOnlyMessage(message: Message): void {\n\t\tthis.nextRunPromptOnlyQueue.push(message);\n\t}\n\n\t/**\n\t * Queue a persisted history message for the next run.\n\t */\n\tqueueNextRunHistoryMessage(message: AppMessage): void {\n\t\tthis.nextRunHistoryQueue.push(message);\n\t}\n\n\t/**\n\t * Queue transient system guidance for the next run.\n\t */\n\tqueueNextRunSystemPromptAddition(text: string): void {\n\t\tconst normalized = text.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.nextRunSystemPromptAdditions.push(normalized);\n\t}\n\n\t/**\n\t * Clear queued one-shot prompt inputs that were prepared for the next run but\n\t * not yet consumed.\n\t */\n\tclearQueuedPromptInputs(): void {\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t}\n\n\t/**\n\t * Queues a steering message to interrupt the agent mid-run.\n\t *\n\t * Delivered after the current tool execution and skips remaining tools.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync steer(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"steer\", m);\n\t}\n\n\t/**\n\t * Queues a follow-up message to be processed after the agent finishes.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync followUp(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m);\n\t}\n\n\t/**\n\t * Re-inserts a follow-up at the front of the follow-up queue.\n\t */\n\tasync prependFollowUp(\n\t\tm: AppMessage,\n\t\toptions?: { id?: number; createdAt?: number },\n\t): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m, {\n\t\t\tposition: \"front\",\n\t\t\tid: options?.id,\n\t\t\tcreatedAt: options?.createdAt,\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated Use steer() or followUp() instead.\n\t * Defaults to follow-up semantics.\n\t */\n\tasync queueMessage(m: AppMessage): Promise<void> {\n\t\tawait this.followUp(m);\n\t}\n\n\tprivate async enqueueQueuedMessage(\n\t\tkind: \"steer\" | \"followUp\",\n\t\tmessage: AppMessage,\n\t\toptions?: {\n\t\t\tposition?: \"front\" | \"back\";\n\t\t\tid?: number;\n\t\t\tcreatedAt?: number;\n\t\t},\n\t): Promise<void> {\n\t\tconst transformed = await this.messageTransformer([message]);\n\t\tconst id = options?.id ?? this.nextQueuedMessageId++;\n\t\tif (id >= this.nextQueuedMessageId) {\n\t\t\tthis.nextQueuedMessageId = id + 1;\n\t\t}\n\t\tconst queued = {\n\t\t\tid,\n\t\t\tcreatedAt: options?.createdAt ?? Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: transformed[0],\n\t\t};\n\t\tconst position = options?.position ?? \"back\";\n\t\tif (kind === \"steer\") {\n\t\t\tif (position === \"front\") {\n\t\t\t\tthis.steeringQueue.unshift(queued);\n\t\t\t} else {\n\t\t\t\tthis.steeringQueue.push(queued);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t} else {\n\t\t\tthis.followUpQueue.push(queued);\n\t\t}\n\t}\n\n\t/**\n\t * Clears all messages from the conversation history.\n\t */\n\tclearMessages(): void {\n\t\tthis._state.messages = [];\n\t}\n\n\t/**\n\t * Get the number of queued messages.\n\t */\n\tgetQueuedMessageCount(): number {\n\t\treturn this.steeringQueue.length + this.followUpQueue.length;\n\t}\n\n\tgetQueuedSteeringCount(): number {\n\t\treturn this.steeringQueue.length;\n\t}\n\n\tgetQueuedFollowUpCount(): number {\n\t\treturn this.followUpQueue.length;\n\t}\n\n\tgetQueuedMessagesSnapshot(): {\n\t\tsteering: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t\tfollowUps: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t} {\n\t\treturn {\n\t\t\tsteering: [...this.steeringQueue],\n\t\t\tfollowUps: [...this.followUpQueue],\n\t\t};\n\t}\n\n\tremoveQueuedMessage(id: number): QueuedMessage<AppMessage> | null {\n\t\tconst steeringIndex = this.steeringQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (steeringIndex !== -1) {\n\t\t\treturn this.steeringQueue.splice(steeringIndex, 1)[0] ?? null;\n\t\t}\n\t\tconst followUpIndex = this.followUpQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (followUpIndex !== -1) {\n\t\t\treturn this.followUpQueue.splice(followUpIndex, 1)[0] ?? null;\n\t\t}\n\t\treturn null;\n\t}\n\n\tclearQueuedMessages(): Array<QueuedMessage<AppMessage>> {\n\t\tconst queued = [...this.steeringQueue, ...this.followUpQueue].sort(\n\t\t\t(a, b) => a.createdAt - b.createdAt || a.id - b.id,\n\t\t);\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\treturn queued;\n\t}\n\n\t/**\n\t * Aborts the current streaming request if one is in progress.\n\t */\n\tabort(): void {\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Aborts the current streaming request and saves any partial response.\n\t *\n\t * Unlike `abort()`, this method preserves the partial assistant message\n\t * that was being streamed, adding it to the message history. This allows\n\t * users to keep useful partial responses when interrupting long generations.\n\t *\n\t * @returns The partial message that was saved, or null if no partial was available\n\t *\n\t * @example\n\t * ```typescript\n\t * // User presses Ctrl+C during a long response\n\t * const partial = agent.abortAndKeepPartial();\n\t * if (partial) {\n\t * console.log(\"Saved partial response:\", partial.content);\n\t * }\n\t * ```\n\t */\n\tabortAndKeepPartial(): AppMessage | null {\n\t\tconst partialMessage = this._state.streamMessage;\n\n\t\t// Only save if we have an assistant message (not user message)\n\t\tif (\n\t\t\tpartialMessage &&\n\t\t\tpartialMessage.role === \"assistant\" &&\n\t\t\tthis.abortController\n\t\t) {\n\t\t\t// Mark as interrupted by setting stopReason\n\t\t\tconst savedMessage: AssistantMessage = {\n\t\t\t\t...partialMessage,\n\t\t\t\tstopReason: \"aborted\",\n\t\t\t};\n\n\t\t\t// Add to message history before aborting\n\t\t\tthis._state.messages = [...this._state.messages, savedMessage];\n\t\t\tthis._state.streamMessage = null;\n\t\t\tthis._partialAccepted = savedMessage;\n\n\t\t\tlogger.info(\"Saved partial message on interrupt\", {\n\t\t\t\tcontentLength: JSON.stringify(savedMessage.content).length,\n\t\t\t});\n\n\t\t\t// Now abort\n\t\t\tthis.abort();\n\n\t\t\treturn savedMessage;\n\t\t}\n\n\t\t// No partial to save, just abort\n\t\tthis.abort();\n\n\t\treturn null;\n\t}\n\n\t/** Tracks if a partial message was accepted during abort */\n\tprivate _partialAccepted: AppMessage | null = null;\n\n\t/**\n\t * Returns a promise that resolves when the current prompt completes.\n\t * Returns immediately resolved promise if no prompt is running.\n\t */\n\twaitForIdle(): Promise<void> {\n\t\treturn this.runningPrompt ?? Promise.resolve();\n\t}\n\n\t/**\n\t * Clear all messages and state. Call abort() first if a prompt is in flight.\n\t */\n\treset(): void {\n\t\tthis._state.messages = [];\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\tthis._state.error = undefined;\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\tthis.abortController = undefined;\n\t\tthis.runningPrompt = undefined;\n\t\tthis.resolveRunningPrompt = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.currentTaskBudget = undefined;\n\t\tthis.diagnosticRepairAttempts.clear();\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t\t// Note: Do NOT clear listeners - they contain the TUI subscription\n\t\t// and must persist across resets for UI updates to work\n\t}\n\n\tprivate buildProviderMessages(\n\t\ttransformedMessages: Message[],\n\t\tcontinuationPrompt?: string,\n\t): Message[] {\n\t\tconst providerInputMessages = continuationPrompt\n\t\t\t? [\n\t\t\t\t\t...transformedMessages,\n\t\t\t\t\t{\n\t\t\t\t\t\trole: \"user\" as const,\n\t\t\t\t\t\tcontent: continuationPrompt,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: transformedMessages;\n\t\treturn normalizeMessagesForProvider(\n\t\t\tproviderInputMessages,\n\t\t\tthis._state.model,\n\t\t);\n\t}\n\n\tprivate handleStreamedMessageEvent(\n\t\tevent: StreamedMessageEvent,\n\t\tstate: BufferedAssistantStartState,\n\t): BufferedAssistantStartState {\n\t\tlet { pendingAssistantStart, lastStopReason } = state;\n\n\t\tif (event.type === \"message_start\") {\n\t\t\tif (\n\t\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\t\tisAssistantMessage(event.message)\n\t\t\t) {\n\t\t\t\tpendingAssistantStart = event.message;\n\t\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t\t? event.message\n\t\t\t\t\t: null;\n\t\t\t\tif (\n\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t) ||\n\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)\n\t\t\t\t) {\n\t\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\t\tpendingAssistantStart = null;\n\t\t\t\t}\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tif (event.type === \"message_update\") {\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (pendingAssistantStart) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"message_start\",\n\t\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t\t});\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tthis._state.streamMessage = null;\n\t\tlet incoming = event.message as AppMessage;\n\t\tif (this.shouldWithholdRecoverableOverflowError(incoming)) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tthis.withheldRecoverableOverflowError = incoming;\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldWithholdRecoverableMaxOutput(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tconst assistantIncoming = incoming;\n\t\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\t\tif (!isDuplicateMessage(lastMessage, assistantIncoming)) {\n\t\t\t\tthis._state.messages = [...this._state.messages, assistantIncoming];\n\t\t\t\tthis.withheldRecoverableLengthMessages.push(assistantIncoming);\n\t\t\t}\n\t\t\tlastStopReason = \"length\";\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldMergeRecoverableLengthContinuation(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tincoming = this.mergeWithWithheldRecoverableLengthMessages(incoming);\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\tthis.primeToolBatch(incoming);\n\t\t\tthis.emit({ type: \"message_start\", message: incoming });\n\t\t\tthis.emit({ ...event, message: incoming });\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (pendingAssistantStart && isAssistantMessage(incoming)) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"message_start\",\n\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t});\n\t\t\tpendingAssistantStart = null;\n\t\t}\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\tif (!isDuplicateMessage(lastMessage, incoming)) {\n\t\t\tthis._state.messages = [...this._state.messages, incoming];\n\t\t}\n\t\tif (\n\t\t\t\"stopReason\" in event.message &&\n\t\t\tevent.message.stopReason !== undefined\n\t\t) {\n\t\t\tlastStopReason = event.message.stopReason;\n\t\t}\n\t\tthis.primeToolBatch(incoming);\n\t\tthis.emit({ ...event, message: incoming });\n\t\treturn { pendingAssistantStart, lastStopReason };\n\t}\n\n\t/**\n\t * Sends a prompt to the model and processes the response, including tool calls.\n\t *\n\t * This is the main entry point for interacting with the agent. It handles:\n\t * - Building the user message with optional image/document attachments\n\t * - Streaming the model's response\n\t * - Executing any tool calls made by the model\n\t * - Automatic retries for tool execution\n\t *\n\t * @param input - The user's text prompt\n\t * @param attachments - Optional images or documents to include with the prompt\n\t *\n\t * @example\n\t * ```typescript\n\t * await agent.prompt(\"Read the package.json file\");\n\t *\n\t * // With image attachment\n\t * await agent.prompt(\"What's in this screenshot?\", [{\n\t * type: \"image\",\n\t * content: base64Data,\n\t * mimeType: \"image/png\"\n\t * }]);\n\t * ```\n\t */\n\tasync prompt(input: string, attachments?: Attachment[]): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\");\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tconst userMessage: UserMessageWithAttachments = {\n\t\t\trole: \"user\",\n\t\t\tcontent: input,\n\t\t\tattachments: attachments?.length ? attachments : undefined,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tthis._state.messages = [...this._state.messages, userMessage];\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\" });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst messagesToSend = this.buildProviderMessages(transformedMessages);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: messagesToSend.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment (Terrarium Principle)\n\t\t\tlet systemPrompt = this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tmessagesToSend, // Include userMessage in messages array\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Continue the agent conversation from existing messages without adding a new user message.\n\t * Useful for overflow recovery after compaction, or resuming a partial response.\n\t *\n\t * @param options - Optional configuration for continuation\n\t */\n\tasync continue(options?: {\n\t\t/** Override the system prompt for this continuation */\n\t\tsystemPromptOverride?: string;\n\t\t/** Override max output tokens for this continuation only. */\n\t\tmaxTokensOverride?: number;\n\t\t/**\n\t\t * Provider-only user instruction appended for this continuation.\n\t\t * Not persisted to session history or shown in the UI.\n\t\t */\n\t\tcontinuationPrompt?: string;\n\t}): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\t// Check we have messages to continue from\n\t\tif (this._state.messages.length === 0) {\n\t\t\tthrow new Error(\"No messages to continue from\");\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\", { continuation: true });\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\", continuation: true });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst continuationPrompt = options?.continuationPrompt?.trim();\n\t\t\tconst providerMessages = this.buildProviderMessages(\n\t\t\t\ttransformedMessages,\n\t\t\t\tcontinuationPrompt,\n\t\t\t);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: providerMessages.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment\n\t\t\tlet systemPrompt =\n\t\t\t\toptions?.systemPromptOverride ?? this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\t// Create a synthetic continuation trigger message\n\t\t\t// This signals to the transport that we want the model to continue responding\n\t\t\tconst continuationMessage: UserMessage = {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [],\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel:\n\t\t\t\t\toptions?.maxTokensOverride !== undefined\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...this._state.model,\n\t\t\t\t\t\t\t\tmaxTokens: options.maxTokensOverride,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\temitUserMessageEnd: false,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tcontinuationMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleToolExecutionStart(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_start\" }>,\n\t): void {\n\t\tconst tool = this._state.tools.find(\n\t\t\t(candidate) => candidate.name === event.toolName,\n\t\t);\n\t\tconst displayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst summaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tthis._state.pendingToolCalls.set(event.toolCallId, {\n\t\t\ttoolName: event.toolName,\n\t\t\targs: event.args,\n\t\t\ttool,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tconst safeArgumentProjection = projectSafeToolCallArguments(event.args);\n\t\trecordMaestroToolCallAttempt({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\ttool_name: event.toolName,\n\t\t\tsafe_arguments: safeArgumentProjection.safe_arguments,\n\t\t\tredactions: safeArgumentProjection.redactions,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tthis.emitStatus(describeToolActivity(event.toolName, event.args, tool), {\n\t\t\tkind: \"tool_execution_summary\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate preserveSpecificPendingToolLabel(\n\t\tnextLabel: string,\n\t\tpendingLabel: string | undefined,\n\t\tgenericLabel: string,\n\t): string {\n\t\tif (\n\t\t\t!pendingLabel ||\n\t\t\tpendingLabel === genericLabel ||\n\t\t\tnextLabel !== genericLabel\n\t\t) {\n\t\t\treturn nextLabel;\n\t\t}\n\t\treturn pendingLabel;\n\t}\n\n\tprivate handleToolExecutionUpdate(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_update\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tconst tool = pending?.tool;\n\t\tconst nextDisplayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst nextSummaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tconst displayName = this.preserveSpecificPendingToolLabel(\n\t\t\tnextDisplayName,\n\t\t\tpending?.displayName,\n\t\t\tdescribeToolDisplayName(event.toolName, {}, tool),\n\t\t);\n\t\tconst summaryLabel = this.preserveSpecificPendingToolLabel(\n\t\t\tnextSummaryLabel,\n\t\t\tpending?.summaryLabel,\n\t\t\tsummarizeToolUse(event.toolName, {}, tool),\n\t\t);\n\t\tif (pending) {\n\t\t\tpending.args = event.args;\n\t\t\tpending.displayName = displayName;\n\t\t\tpending.summaryLabel = summaryLabel;\n\t\t}\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate handleToolExecutionEnd(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tthis._state.pendingToolCalls.delete(event.toolCallId);\n\t\tthis.emit({\n\t\t\t...event,\n\t\t\tdisplayName: pending?.displayName,\n\t\t\tsummaryLabel: pending?.summaryLabel,\n\t\t});\n\t\trecordMaestroToolCallCompleted({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\tstatus: event.isError\n\t\t\t\t? \"MAESTRO_TOOL_CALL_STATUS_FAILED\"\n\t\t\t\t: \"MAESTRO_TOOL_CALL_STATUS_SUCCEEDED\",\n\t\t\tskill_metadata: event.skillMetadata,\n\t\t\tapproval_request_id: event.approvalRequestId,\n\t\t\tgoverned_outcome: event.governedOutcome,\n\t\t\terror_code: event.errorCode,\n\t\t\terror_message: event.isError\n\t\t\t\t? event.result.content\n\t\t\t\t\t\t.map((part) => (part.type === \"text\" ? part.text : \"\"))\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\"\\n\")\n\t\t\t\t: undefined,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tif (event.skillMetadata) {\n\t\t\tthis.recordCurrentTurnSkillSelection({\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t});\n\t\t\tif (event.toolName === \"Skill\") {\n\t\t\t\trecordMaestroSkillInvoked({\n\t\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\t\tskill_metadata: event.skillMetadata,\n\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\t\tcorrelation: {\n\t\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t\t},\n\t\t\t\t\tinvoked_at: new Date(event.result.timestamp).toISOString(),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.publishCurrentTurnEvalScores(event);\n\t\tthis.handleDiagnosticDeltaToolResult(event);\n\t\tif (!pending) {\n\t\t\treturn;\n\t\t}\n\t\tthis.completedToolBatch.push({\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\targs: pending.args ?? {},\n\t\t\tisError: event.isError,\n\t\t\ttool: pending.tool,\n\t\t});\n\t\tif (this.activeToolBatchIds?.delete(event.toolCallId)) {\n\t\t\tif (this.activeToolBatchIds.size > 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.emitToolBatchSummary();\n\t\t}\n\t}\n\n\tprivate buildSkillSelectionKey(skillMetadata: SkillArtifactMetadata): string {\n\t\treturn [\n\t\t\tskillMetadata.artifactId,\n\t\t\tskillMetadata.source,\n\t\t\tskillMetadata.name,\n\t\t\tskillMetadata.version,\n\t\t\tskillMetadata.hash,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\":\");\n\t}\n\n\tprivate recordCurrentTurnSkillSelection(selection: {\n\t\tskillMetadata: SkillArtifactMetadata;\n\t\ttoolCallId: string;\n\t\ttoolExecutionId?: string;\n\t}): void {\n\t\tconst key = this.buildSkillSelectionKey(selection.skillMetadata);\n\t\tif (!key) {\n\t\t\treturn;\n\t\t}\n\t\tconst existing = this.currentTurnSkillSelections.get(key);\n\t\tthis.currentTurnSkillSelections.set(key, {\n\t\t\t...existing,\n\t\t\t...selection,\n\t\t\tevaluationFailure: existing?.evaluationFailure,\n\t\t});\n\t}\n\n\tprivate getCurrentTurnSkillSelectionForEvaluation(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): CurrentTurnSkillSelection | undefined {\n\t\tif (event.skillMetadata) {\n\t\t\treturn this.currentTurnSkillSelections.get(\n\t\t\t\tthis.buildSkillSelectionKey(event.skillMetadata),\n\t\t\t);\n\t\t}\n\t\tif (this.currentTurnSkillSelections.size === 1) {\n\t\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\t\treturn selection;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate publishCurrentTurnEvalScores(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst evaluation = getToolEvaluationSummary(event.result.details);\n\t\tif (!evaluation || this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scoredAt = new Date(event.result.timestamp).toISOString();\n\t\tconst failedEvaluation = isFailedToolEvaluation(evaluation)\n\t\t\t? {\n\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\tscore: evaluation.score,\n\t\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\t\trationale: evaluation.rationale,\n\t\t\t\t\tassertionCount: evaluation.assertionCount,\n\t\t\t\t}\n\t\t\t: undefined;\n\t\tconst evaluationTarget = failedEvaluation\n\t\t\t? this.getCurrentTurnSkillSelectionForEvaluation(event)\n\t\t\t: undefined;\n\t\tif (failedEvaluation) {\n\t\t\tthis.currentTurnEvaluationFailure = failedEvaluation;\n\t\t}\n\t\tif (failedEvaluation && evaluationTarget) {\n\t\t\tevaluationTarget.evaluationFailure = failedEvaluation;\n\t\t}\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\trecordMaestroEvalScored({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\ttool_name: event.toolName,\n\t\t\t\tscore: evaluation.score,\n\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\tpassed: evaluation.passed,\n\t\t\t\trationale: evaluation.rationale,\n\t\t\t\tassertion_count: evaluation.assertionCount,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t},\n\t\t\t\tscored_at: scoredAt,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate publishCurrentTurnSkillOutcomes(options: {\n\t\taborted: boolean;\n\t\tstopReason?: StopReason;\n\t}): void {\n\t\tif (this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst baseTurnStatus = options.aborted\n\t\t\t? \"aborted\"\n\t\t\t: this._state.error !== undefined\n\t\t\t\t? \"error\"\n\t\t\t\t: undefined;\n\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\tconst evaluationFailure = selection.evaluationFailure;\n\t\t\tconst turnStatus =\n\t\t\t\tbaseTurnStatus ??\n\t\t\t\t(evaluationFailure || this.currentTurnEvaluationFailure\n\t\t\t\t\t? \"evaluation_failed\"\n\t\t\t\t\t: \"success\");\n\t\t\tconst outcomeEvaluationFailure =\n\t\t\t\tevaluationFailure ?? this.currentTurnEvaluationFailure;\n\t\t\tconst errorMessage =\n\t\t\t\tturnStatus === \"aborted\"\n\t\t\t\t\t? \"Operation aborted\"\n\t\t\t\t\t: turnStatus === \"error\"\n\t\t\t\t\t\t? this._state.error\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\" && outcomeEvaluationFailure\n\t\t\t\t\t\t\t? buildEvaluationFailureMessage(outcomeEvaluationFailure)\n\t\t\t\t\t\t\t: undefined;\n\t\t\trecordMaestroSkillOutcome({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: selection.toolCallId,\n\t\t\t\ttool_execution_id: selection.toolExecutionId,\n\t\t\t\tturn_status: turnStatus,\n\t\t\t\terror_category:\n\t\t\t\t\tturnStatus === \"success\"\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\"\n\t\t\t\t\t\t\t? \"evaluation\"\n\t\t\t\t\t\t\t: \"runtime\",\n\t\t\t\terror_message: errorMessage,\n\t\t\t\tevaluation_tool_name: evaluationFailure?.toolName,\n\t\t\t\tevaluation_tool_call_id: evaluationFailure?.toolCallId,\n\t\t\t\tevaluation_tool_execution_id: evaluationFailure?.toolExecutionId,\n\t\t\t\tevaluation_score: evaluationFailure?.score,\n\t\t\t\tevaluation_threshold: evaluationFailure?.threshold,\n\t\t\t\tevaluation_assertion_count: evaluationFailure?.assertionCount,\n\t\t\t\tevaluation_rationale: evaluationFailure?.rationale,\n\t\t\t\tstop_reason: options.stopReason,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tprivate handleDiagnosticDeltaToolResult(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst summary = getDiagnosticDeltaFromToolResult(event.result);\n\t\tif (!summary) {\n\t\t\treturn;\n\t\t}\n\t\tif (summary.introducedCount === 0 && summary.repairedCount === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst repairKey = [event.toolName, summary.file, summary.fingerprint].join(\n\t\t\t\":\",\n\t\t);\n\t\tconst nextAttempt = (this.diagnosticRepairAttempts.get(repairKey) ?? 0) + 1;\n\t\tconst hasPendingUserInput =\n\t\t\tthis.steeringQueue.length > 0 || this.followUpQueue.length > 0;\n\t\tconst hasOptOut = hasDiagnosticRepairOptOut(this._state.messages);\n\t\tconst canAutoFollowUp =\n\t\t\t!event.isError &&\n\t\t\tsummary.repair.shouldFollowUp &&\n\t\t\t!hasPendingUserInput &&\n\t\t\t!hasOptOut &&\n\t\t\tnextAttempt <= summary.repair.maxAttempts;\n\n\t\tconst reason = !summary.repair.shouldFollowUp\n\t\t\t? summary.repair.reason\n\t\t\t: event.isError\n\t\t\t\t? \"Tool call failed; leaving diagnostics in the tool result.\"\n\t\t\t\t: hasPendingUserInput\n\t\t\t\t\t? \"Queued user input exists; not adding an automatic diagnostic repair turn.\"\n\t\t\t\t\t: hasOptOut\n\t\t\t\t\t\t? \"User asked Maestro not to continue or repair automatically.\"\n\t\t\t\t\t\t: nextAttempt > summary.repair.maxAttempts\n\t\t\t\t\t\t\t? \"Automatic diagnostic repair attempt limit reached.\"\n\t\t\t\t\t\t\t: \"Queued a bounded diagnostic repair follow-up.\";\n\n\t\tif (summary.repair.shouldFollowUp) {\n\t\t\tthis.diagnosticRepairAttempts.set(repairKey, nextAttempt);\n\t\t}\n\n\t\tthis.emit({\n\t\t\ttype: \"diagnostic_delta\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tfile: summary.file,\n\t\t\tdisplayPath: summary.displayPath,\n\t\t\tusedDelta: summary.usedDelta,\n\t\t\tintroducedCount: summary.introducedCount,\n\t\t\trepairedCount: summary.repairedCount,\n\t\t\tremainingCount: summary.remainingCount,\n\t\t\tfingerprint: summary.fingerprint,\n\t\t\trepairAttempt: summary.repair.shouldFollowUp ? nextAttempt : undefined,\n\t\t\tmaxRepairAttempts: summary.repair.shouldFollowUp\n\t\t\t\t? summary.repair.maxAttempts\n\t\t\t\t: undefined,\n\t\t\twillAutoFollowUp: canAutoFollowUp,\n\t\t\treason,\n\t\t});\n\n\t\tif (!canAutoFollowUp) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.enqueueFollowUpMessageSync(\n\t\t\tbuildDiagnosticRepairFollowUpMessage({\n\t\t\t\tsummary,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\tattempt: nextAttempt,\n\t\t\t}),\n\t\t\t\"front\",\n\t\t);\n\t}\n\n\tprivate enqueueFollowUpMessageSync(\n\t\tmessage: AppMessage,\n\t\tposition: \"front\" | \"back\" = \"back\",\n\t): void {\n\t\tconst queued: QueuedMessage<AppMessage> = {\n\t\t\tid: this.nextQueuedMessageId++,\n\t\t\tcreatedAt: Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: message as Message,\n\t\t};\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t\treturn;\n\t\t}\n\t\tthis.followUpQueue.push(queued);\n\t}\n\n\tprivate primeToolBatch(message: AppMessage): void {\n\t\tif (message.role !== \"assistant\" || message.stopReason !== \"toolUse\") {\n\t\t\treturn;\n\t\t}\n\t\tconst toolCallIds = message.content.flatMap((block) =>\n\t\t\tblock.type === \"toolCall\" ? [block.id] : [],\n\t\t);\n\t\tif (toolCallIds.length === 0) {\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.completedToolBatch = [];\n\t\t\treturn;\n\t\t}\n\t\tthis.activeToolBatchIds = new Set(toolCallIds);\n\t\tthis.completedToolBatch = [];\n\t}\n\n\tprivate emitToolBatchSummary(): void {\n\t\tif (this.completedToolBatch.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst batch = this.completedToolBatch;\n\t\tthis.completedToolBatch = [];\n\t\tconst { summary, summaryLabels, callsSucceeded, callsFailed } =\n\t\t\tsummarizeToolBatch(batch);\n\t\tthis.emit({\n\t\t\ttype: \"tool_batch_summary\",\n\t\t\tsummary,\n\t\t\tsummaryLabels,\n\t\t\ttoolCallIds: batch.map((entry) => entry.toolCallId),\n\t\t\ttoolNames: batch.map((entry) => entry.toolName),\n\t\t\tcallsSucceeded,\n\t\t\tcallsFailed,\n\t\t});\n\t\tif (summaryLabels.length > 0) {\n\t\t\tthis.promptOnlyQueue.push(\n\t\t\t\tbuildPromptOnlyToolBatchSummaryMessage(summaryLabels),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate handleToolPhaseSummary(\n\t\tevent: Extract<AgentEvent, { type: \"tool_phase_summary\" }>,\n\t): void {\n\t\tconst feedback = event.batchShapingFeedback;\n\t\tif (feedback?.avoidableSingleton) {\n\t\t\tconst key = feedback.reason || \"avoidable_singleton\";\n\t\t\tif (this.queuedBatchShapingFeedbackKeys.has(key)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.queuedBatchShapingFeedbackKeys.add(key);\n\t\t\tthis.promptOnlyQueue.push(buildPromptOnlyBatchShapingFeedbackMessage());\n\t\t}\n\t}\n\n\tprivate resolvePendingToolCalls(reason: string): void {\n\t\tfor (const [toolCallId, info] of this._state.pendingToolCalls.entries()) {\n\t\t\tconst abortedResult: ToolResultMessage = {\n\t\t\t\trole: \"toolResult\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: reason,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\tthis._state.messages = [...this._state.messages, abortedResult];\n\t\t\tthis.handleToolExecutionEnd({\n\t\t\t\ttype: \"tool_execution_end\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tresult: abortedResult,\n\t\t\t\tisError: true,\n\t\t\t});\n\t\t}\n\t\tthis._state.pendingToolCalls.clear();\n\t}\n\n\tasync generateSummary(\n\t\thistory: Message[],\n\t\tprompt: string,\n\t\tsystemPrompt = \"\",\n\t\tmodelOverride?: Model<Api>,\n\t\tsignal?: AbortSignal,\n\t): Promise<AssistantMessage> {\n\t\tconst summaryModel = modelOverride ?? this._state.model;\n\t\tif (!summaryModel) {\n\t\t\tthrow new Error(\"No model configured for summarization\");\n\t\t}\n\n\t\tconst userMessage: UserMessage = {\n\t\t\trole: \"user\",\n\t\t\tcontent: [{ type: \"text\", text: prompt }],\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tconst runMessages: Message[] = [...history, userMessage];\n\t\tconst providerMessages = normalizeMessagesForProvider(\n\t\t\trunMessages,\n\t\t\tsummaryModel,\n\t\t);\n\t\tconst runConfig = {\n\t\t\tsystemPrompt,\n\t\t\ttools: [],\n\t\t\tmodel: summaryModel,\n\t\t\treasoning: undefined,\n\t\t\t// Keep summary generation fast by not requesting reasoning summaries.\n\t\t\treasoningSummary: undefined,\n\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t};\n\n\t\tconst controller = new AbortController();\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t} else {\n\t\t\t\tsignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tlet finalMessage: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tcontroller.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_end\" &&\n\t\t\t\t\tevent.message.role === \"assistant\"\n\t\t\t\t) {\n\t\t\t\t\tfinalMessage = event.message as AssistantMessage;\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tcontroller.abort();\n\t\t}\n\n\t\tif (!finalMessage) {\n\t\t\tthrow new Error(\"Summary generation did not return a response\");\n\t\t}\n\n\t\treturn finalMessage;\n\t}\n}\n"]}