@evalops/maestro 0.10.18 → 0.10.20

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 (922) hide show
  1. package/README.md +56 -1
  2. package/dist/agent/action-approval.d.ts +12 -2
  3. package/dist/agent/action-approval.d.ts.map +1 -1
  4. package/dist/agent/action-approval.js +19 -32
  5. package/dist/agent/action-approval.js.map +1 -1
  6. package/dist/agent/agent.d.ts +1 -0
  7. package/dist/agent/agent.d.ts.map +1 -1
  8. package/dist/agent/agent.js +26 -0
  9. package/dist/agent/agent.js.map +1 -1
  10. package/dist/agent/compaction.d.ts +2 -0
  11. package/dist/agent/compaction.d.ts.map +1 -1
  12. package/dist/agent/compaction.js +4 -2
  13. package/dist/agent/compaction.js.map +1 -1
  14. package/dist/agent/index.d.ts +1 -1
  15. package/dist/agent/index.d.ts.map +1 -1
  16. package/dist/agent/index.js +1 -1
  17. package/dist/agent/index.js.map +1 -1
  18. package/dist/agent/modes.d.ts +56 -4
  19. package/dist/agent/modes.d.ts.map +1 -1
  20. package/dist/agent/modes.js +163 -2
  21. package/dist/agent/modes.js.map +1 -1
  22. package/dist/agent/prompt-recovery.d.ts.map +1 -1
  23. package/dist/agent/prompt-recovery.js +1 -3
  24. package/dist/agent/prompt-recovery.js.map +1 -1
  25. package/dist/agent/providers/anthropic.d.ts.map +1 -1
  26. package/dist/agent/providers/anthropic.js +9 -1
  27. package/dist/agent/providers/anthropic.js.map +1 -1
  28. package/dist/agent/providers/codex-app-server.d.ts +12 -0
  29. package/dist/agent/providers/codex-app-server.d.ts.map +1 -0
  30. package/dist/agent/providers/codex-app-server.js +788 -0
  31. package/dist/agent/providers/codex-app-server.js.map +1 -0
  32. package/dist/agent/providers/google-gemini-cli.js +14 -3
  33. package/dist/agent/providers/google.js +22 -3
  34. package/dist/agent/providers/scripted.d.ts +11 -0
  35. package/dist/agent/providers/scripted.d.ts.map +1 -0
  36. package/dist/agent/providers/scripted.js +399 -0
  37. package/dist/agent/providers/scripted.js.map +1 -0
  38. package/dist/agent/providers/vertex.js +14 -3
  39. package/dist/agent/scenario-source.d.ts +19 -0
  40. package/dist/agent/scenario-source.d.ts.map +1 -0
  41. package/dist/agent/scenario-source.js +112 -0
  42. package/dist/agent/scenario-source.js.map +1 -0
  43. package/dist/agent/subagent-specs.d.ts +1 -1
  44. package/dist/agent/subagent-specs.js +1 -1
  45. package/dist/agent/subagent-specs.js.map +1 -1
  46. package/dist/agent/swarm/executor.d.ts +25 -0
  47. package/dist/agent/swarm/executor.d.ts.map +1 -1
  48. package/dist/agent/swarm/executor.js +795 -20
  49. package/dist/agent/swarm/executor.js.map +1 -1
  50. package/dist/agent/swarm/runtime-events.d.ts +11 -0
  51. package/dist/agent/swarm/runtime-events.d.ts.map +1 -0
  52. package/dist/agent/swarm/runtime-events.js +26 -0
  53. package/dist/agent/swarm/runtime-events.js.map +1 -0
  54. package/dist/agent/swarm/types.d.ts +78 -0
  55. package/dist/agent/swarm/types.d.ts.map +1 -1
  56. package/dist/agent/swarm/types.js.map +1 -1
  57. package/dist/agent/tracing.d.ts +1 -1
  58. package/dist/agent/tracing.d.ts.map +1 -1
  59. package/dist/agent/tracing.js +17 -9
  60. package/dist/agent/tracing.js.map +1 -1
  61. package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
  62. package/dist/agent/transport/create-provider-stream.js +14 -0
  63. package/dist/agent/transport/create-provider-stream.js.map +1 -1
  64. package/dist/agent/transport/stable-stringify.d.ts +2 -0
  65. package/dist/agent/transport/stable-stringify.d.ts.map +1 -0
  66. package/dist/agent/transport/stable-stringify.js +14 -0
  67. package/dist/agent/transport/stable-stringify.js.map +1 -0
  68. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  69. package/dist/agent/transport/tool-execution-bridge.js +2 -15
  70. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  71. package/dist/agent/transport/tool-safety-pipeline.d.ts +5 -1
  72. package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
  73. package/dist/agent/transport/tool-safety-pipeline.js +184 -36
  74. package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
  75. package/dist/agent/transport.d.ts +8 -0
  76. package/dist/agent/transport.d.ts.map +1 -1
  77. package/dist/agent/transport.js +1613 -68
  78. package/dist/agent/transport.js.map +1 -1
  79. package/dist/agent/types.d.ts +170 -2
  80. package/dist/agent/types.d.ts.map +1 -1
  81. package/dist/agent/types.js.map +1 -1
  82. package/dist/api/enterprise-routes.d.ts.map +1 -1
  83. package/dist/api/enterprise-routes.js +34 -3
  84. package/dist/api/enterprise-routes.js.map +1 -1
  85. package/dist/app-server/in-process-client.d.ts +32 -0
  86. package/dist/app-server/in-process-client.d.ts.map +1 -0
  87. package/dist/app-server/in-process-client.js +73 -0
  88. package/dist/app-server/in-process-client.js.map +1 -0
  89. package/dist/app-server/session-api.d.ts +36 -0
  90. package/dist/app-server/session-api.d.ts.map +1 -0
  91. package/dist/app-server/session-api.js +713 -0
  92. package/dist/app-server/session-api.js.map +1 -0
  93. package/dist/approvals/platform-action-approval.d.ts +3 -1
  94. package/dist/approvals/platform-action-approval.d.ts.map +1 -1
  95. package/dist/approvals/platform-action-approval.js +16 -9
  96. package/dist/approvals/platform-action-approval.js.map +1 -1
  97. package/dist/approvals/service-client.d.ts.map +1 -1
  98. package/dist/approvals/service-client.js +7 -7
  99. package/dist/approvals/service-client.js.map +1 -1
  100. package/dist/audit/logger.d.ts +4 -4
  101. package/dist/bootstrap/agent-creation-setup.d.ts +4 -0
  102. package/dist/bootstrap/agent-creation-setup.d.ts.map +1 -1
  103. package/dist/bootstrap/agent-creation-setup.js +3 -1
  104. package/dist/bootstrap/agent-creation-setup.js.map +1 -1
  105. package/dist/bootstrap/auth-setup.js +1 -1
  106. package/dist/bootstrap/auth-setup.js.map +1 -1
  107. package/dist/bootstrap/event-subscriptions-setup.d.ts +6 -0
  108. package/dist/bootstrap/event-subscriptions-setup.d.ts.map +1 -1
  109. package/dist/bootstrap/event-subscriptions-setup.js +26 -2
  110. package/dist/bootstrap/event-subscriptions-setup.js.map +1 -1
  111. package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
  112. package/dist/bootstrap/model-resolution-setup.js +4 -1
  113. package/dist/bootstrap/model-resolution-setup.js.map +1 -1
  114. package/dist/bootstrap/tools-setup.d.ts +2 -1
  115. package/dist/bootstrap/tools-setup.d.ts.map +1 -1
  116. package/dist/bootstrap/tools-setup.js +5 -1
  117. package/dist/bootstrap/tools-setup.js.map +1 -1
  118. package/dist/cli/args.d.ts +9 -1
  119. package/dist/cli/args.d.ts.map +1 -1
  120. package/dist/cli/args.js +130 -5
  121. package/dist/cli/args.js.map +1 -1
  122. package/dist/cli/commands/a2a.d.ts +9 -0
  123. package/dist/cli/commands/a2a.d.ts.map +1 -0
  124. package/dist/cli/commands/a2a.js +1714 -0
  125. package/dist/cli/commands/a2a.js.map +1 -0
  126. package/dist/cli/commands/agents.d.ts +16 -2
  127. package/dist/cli/commands/agents.d.ts.map +1 -1
  128. package/dist/cli/commands/agents.js +223 -35
  129. package/dist/cli/commands/agents.js.map +1 -1
  130. package/dist/cli/commands/codex.d.ts +1 -1
  131. package/dist/cli/commands/codex.d.ts.map +1 -1
  132. package/dist/cli/commands/codex.js +145 -39
  133. package/dist/cli/commands/codex.js.map +1 -1
  134. package/dist/cli/commands/context.d.ts +10 -0
  135. package/dist/cli/commands/context.d.ts.map +1 -0
  136. package/dist/cli/commands/context.js +176 -0
  137. package/dist/cli/commands/context.js.map +1 -0
  138. package/dist/cli/commands/hosted-runner.d.ts +1 -0
  139. package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
  140. package/dist/cli/commands/hosted-runner.js +9 -1
  141. package/dist/cli/commands/hosted-runner.js.map +1 -1
  142. package/dist/cli/commands/modes.d.ts +8 -0
  143. package/dist/cli/commands/modes.d.ts.map +1 -0
  144. package/dist/cli/commands/modes.js +151 -0
  145. package/dist/cli/commands/modes.js.map +1 -0
  146. package/dist/cli/commands/operating-plane.d.ts +14 -0
  147. package/dist/cli/commands/operating-plane.d.ts.map +1 -0
  148. package/dist/cli/commands/operating-plane.js +160 -0
  149. package/dist/cli/commands/operating-plane.js.map +1 -0
  150. package/dist/cli/commands/run.d.ts +87 -0
  151. package/dist/cli/commands/run.d.ts.map +1 -0
  152. package/dist/cli/commands/run.js +356 -0
  153. package/dist/cli/commands/run.js.map +1 -0
  154. package/dist/cli/commands/scenario.d.ts +7 -0
  155. package/dist/cli/commands/scenario.d.ts.map +1 -0
  156. package/dist/cli/commands/scenario.js +195 -0
  157. package/dist/cli/commands/scenario.js.map +1 -0
  158. package/dist/cli/commands/skill.d.ts +7 -0
  159. package/dist/cli/commands/skill.d.ts.map +1 -0
  160. package/dist/cli/commands/skill.js +286 -0
  161. package/dist/cli/commands/skill.js.map +1 -0
  162. package/dist/cli/headless-protocol.d.ts +55 -1
  163. package/dist/cli/headless-protocol.d.ts.map +1 -1
  164. package/dist/cli/headless-protocol.js +446 -7
  165. package/dist/cli/headless-protocol.js.map +1 -1
  166. package/dist/cli/headless-runtime-selection.d.ts +38 -0
  167. package/dist/cli/headless-runtime-selection.d.ts.map +1 -0
  168. package/dist/cli/headless-runtime-selection.js +48 -0
  169. package/dist/cli/headless-runtime-selection.js.map +1 -0
  170. package/dist/cli/headless.d.ts +5 -1
  171. package/dist/cli/headless.d.ts.map +1 -1
  172. package/dist/cli/headless.js +11 -1
  173. package/dist/cli/headless.js.map +1 -1
  174. package/dist/cli/help.d.ts +3 -1
  175. package/dist/cli/help.d.ts.map +1 -1
  176. package/dist/cli/help.js +135 -30
  177. package/dist/cli/help.js.map +1 -1
  178. package/dist/cli/system-prompt.d.ts +22 -4
  179. package/dist/cli/system-prompt.d.ts.map +1 -1
  180. package/dist/cli/system-prompt.js +224 -127
  181. package/dist/cli/system-prompt.js.map +1 -1
  182. package/dist/cli-tui/commands/a2a-handlers.d.ts +7 -0
  183. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -0
  184. package/dist/cli-tui/commands/a2a-handlers.js +160 -0
  185. package/dist/cli-tui/commands/a2a-handlers.js.map +1 -0
  186. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
  187. package/dist/cli-tui/commands/command-catalog.js +15 -0
  188. package/dist/cli-tui/commands/command-catalog.js.map +1 -1
  189. package/dist/cli-tui/commands/command-registry-adapter.js +10 -1
  190. package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -1
  191. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +1 -1
  192. package/dist/cli-tui/commands/handlers/mode-handler.js +22 -10
  193. package/dist/cli-tui/commands/handlers/mode-handler.js.map +1 -1
  194. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +1 -1
  195. package/dist/cli-tui/commands/mcp-handlers.js +6 -5
  196. package/dist/cli-tui/commands/mcp-handlers.js.map +1 -1
  197. package/dist/cli-tui/commands/types.d.ts +1 -0
  198. package/dist/cli-tui/commands/types.d.ts.map +1 -1
  199. package/dist/cli-tui/commands/types.js.map +1 -1
  200. package/dist/cli-tui/commands/utility-handlers.d.ts +4 -0
  201. package/dist/cli-tui/commands/utility-handlers.d.ts.map +1 -1
  202. package/dist/cli-tui/commands/utility-handlers.js +45 -6
  203. package/dist/cli-tui/commands/utility-handlers.js.map +1 -1
  204. package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
  205. package/dist/cli-tui/run/run-shell-command.js +14 -5
  206. package/dist/cli-tui/run/run-shell-command.js.map +1 -1
  207. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
  208. package/dist/cli-tui/run/streaming-shell-command.js +14 -5
  209. package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
  210. package/dist/cli-tui/selectors/model-selector.d.ts +1 -0
  211. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  212. package/dist/cli-tui/selectors/model-selector.js +6 -2
  213. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  214. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
  215. package/dist/cli-tui/tui-renderer/command-registry-options.js +5 -0
  216. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
  217. package/dist/cli-tui/utils/commands/review-prompt.d.ts +1 -1
  218. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +1 -1
  219. package/dist/cli-tui/utils/commands/review-prompt.js +8 -3
  220. package/dist/cli-tui/utils/commands/review-prompt.js.map +1 -1
  221. package/dist/cli-tui/utils/runtime-badges.d.ts +1 -0
  222. package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
  223. package/dist/cli-tui/utils/runtime-badges.js +7 -0
  224. package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
  225. package/dist/cli-tui/utils/text-formatting.d.ts +1 -0
  226. package/dist/cli-tui/utils/text-formatting.d.ts.map +1 -1
  227. package/dist/cli-tui/utils/text-formatting.js +5 -0
  228. package/dist/cli-tui/utils/text-formatting.js.map +1 -1
  229. package/dist/cli.js +49158 -26161
  230. package/dist/cli.js.map +1 -1
  231. package/dist/codex/app-server-client.d.ts +139 -0
  232. package/dist/codex/app-server-client.d.ts.map +1 -0
  233. package/dist/codex/app-server-client.js +352 -0
  234. package/dist/codex/app-server-client.js.map +1 -0
  235. package/dist/codex/compatibility.d.ts +48 -0
  236. package/dist/codex/compatibility.d.ts.map +1 -0
  237. package/dist/codex/compatibility.js +344 -0
  238. package/dist/codex/compatibility.js.map +1 -0
  239. package/dist/codex/subagent-dispatch-table.d.ts +66 -0
  240. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -0
  241. package/dist/codex/subagent-dispatch-table.js +127 -0
  242. package/dist/codex/subagent-dispatch-table.js.map +1 -0
  243. package/dist/codex/subagent-workgraph.d.ts +56 -0
  244. package/dist/codex/subagent-workgraph.d.ts.map +1 -0
  245. package/dist/codex/subagent-workgraph.js +89 -0
  246. package/dist/codex/subagent-workgraph.js.map +1 -0
  247. package/dist/config/constants.d.ts +3 -1
  248. package/dist/config/constants.d.ts.map +1 -1
  249. package/dist/config/constants.js +9 -0
  250. package/dist/config/constants.js.map +1 -1
  251. package/dist/config/feature-flags.d.ts +10 -1
  252. package/dist/config/feature-flags.d.ts.map +1 -1
  253. package/dist/config/feature-flags.js +17 -6
  254. package/dist/config/feature-flags.js.map +1 -1
  255. package/dist/config/index.d.ts +1 -1
  256. package/dist/config/index.d.ts.map +1 -1
  257. package/dist/config/index.js +1 -1
  258. package/dist/config/index.js.map +1 -1
  259. package/dist/config/toml-config.d.ts +32 -0
  260. package/dist/config/toml-config.d.ts.map +1 -1
  261. package/dist/config/toml-config.js +152 -43
  262. package/dist/config/toml-config.js.map +1 -1
  263. package/dist/connectors/service-client.d.ts.map +1 -1
  264. package/dist/connectors/service-client.js +4 -7
  265. package/dist/connectors/service-client.js.map +1 -1
  266. package/dist/context/manifest-types.d.ts +59 -0
  267. package/dist/context/manifest-types.d.ts.map +1 -0
  268. package/dist/context/manifest-types.js +2 -0
  269. package/dist/context/manifest-types.js.map +1 -0
  270. package/dist/context/manifest.d.ts +16 -0
  271. package/dist/context/manifest.d.ts.map +1 -0
  272. package/dist/context/manifest.js +503 -0
  273. package/dist/context/manifest.js.map +1 -0
  274. package/dist/db/schema.d.ts +10 -1
  275. package/dist/db/schema.d.ts.map +1 -1
  276. package/dist/db/schema.js.map +1 -1
  277. package/dist/evalops/env-aliases.d.ts +13 -0
  278. package/dist/evalops/env-aliases.d.ts.map +1 -0
  279. package/dist/evalops/env-aliases.js +60 -0
  280. package/dist/evalops/env-aliases.js.map +1 -0
  281. package/dist/evalops/managed-context.d.ts.map +1 -1
  282. package/dist/evalops/managed-context.js +28 -62
  283. package/dist/evalops/managed-context.js.map +1 -1
  284. package/dist/guardian/config.d.ts.map +1 -1
  285. package/dist/guardian/config.js +1 -0
  286. package/dist/guardian/config.js.map +1 -1
  287. package/dist/guardian/runner.d.ts +2 -0
  288. package/dist/guardian/runner.d.ts.map +1 -1
  289. package/dist/guardian/runner.js +105 -2
  290. package/dist/guardian/runner.js.map +1 -1
  291. package/dist/guardian/types.d.ts +1 -0
  292. package/dist/guardian/types.d.ts.map +1 -1
  293. package/dist/guardian/types.js.map +1 -1
  294. package/dist/index.d.ts +5 -1
  295. package/dist/index.d.ts.map +1 -1
  296. package/dist/index.js +5 -1
  297. package/dist/index.js.map +1 -1
  298. package/dist/main.d.ts.map +1 -1
  299. package/dist/main.js +267 -55
  300. package/dist/main.js.map +1 -1
  301. package/dist/mcp/config.d.ts.map +1 -1
  302. package/dist/mcp/config.js +89 -7
  303. package/dist/mcp/config.js.map +1 -1
  304. package/dist/mcp/manager.d.ts +5 -1
  305. package/dist/mcp/manager.d.ts.map +1 -1
  306. package/dist/mcp/manager.js +159 -4
  307. package/dist/mcp/manager.js.map +1 -1
  308. package/dist/mcp/platform-plugin.d.ts.map +1 -1
  309. package/dist/mcp/platform-plugin.js +9 -26
  310. package/dist/mcp/platform-plugin.js.map +1 -1
  311. package/dist/mcp/schema.d.ts +15 -0
  312. package/dist/mcp/schema.d.ts.map +1 -1
  313. package/dist/mcp/schema.js +24 -0
  314. package/dist/mcp/schema.js.map +1 -1
  315. package/dist/mcp/tool-bridge.d.ts +39 -10
  316. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  317. package/dist/mcp/tool-bridge.js +101 -24
  318. package/dist/mcp/tool-bridge.js.map +1 -1
  319. package/dist/mcp/types.d.ts +27 -0
  320. package/dist/mcp/types.d.ts.map +1 -1
  321. package/dist/mcp/types.js.map +1 -1
  322. package/dist/mcp/workspace-trust.d.ts +10 -0
  323. package/dist/mcp/workspace-trust.d.ts.map +1 -0
  324. package/dist/mcp/workspace-trust.js +295 -0
  325. package/dist/mcp/workspace-trust.js.map +1 -0
  326. package/dist/memory/service-client.d.ts +1 -0
  327. package/dist/memory/service-client.d.ts.map +1 -1
  328. package/dist/memory/service-client.js +194 -9
  329. package/dist/memory/service-client.js.map +1 -1
  330. package/dist/models/builtin.d.ts.map +1 -1
  331. package/dist/models/builtin.js +66 -25
  332. package/dist/models/builtin.js.map +1 -1
  333. package/dist/models/config-loader.d.ts +10 -10
  334. package/dist/models/config-loader.d.ts.map +1 -1
  335. package/dist/models/config-loader.js +2 -0
  336. package/dist/models/config-loader.js.map +1 -1
  337. package/dist/models/registry.d.ts +1 -0
  338. package/dist/models/registry.d.ts.map +1 -1
  339. package/dist/models/registry.js +1 -0
  340. package/dist/models/registry.js.map +1 -1
  341. package/dist/oauth/device-identity.d.ts.map +1 -1
  342. package/dist/oauth/device-identity.js +1 -3
  343. package/dist/oauth/device-identity.js.map +1 -1
  344. package/dist/oauth/evalops.d.ts.map +1 -1
  345. package/dist/oauth/evalops.js +2 -5
  346. package/dist/oauth/evalops.js.map +1 -1
  347. package/dist/opentelemetry.d.ts.map +1 -1
  348. package/dist/opentelemetry.js +12 -12
  349. package/dist/opentelemetry.js.map +1 -1
  350. package/dist/package-version.d.ts +2 -0
  351. package/dist/package-version.d.ts.map +1 -0
  352. package/dist/package-version.js +11 -0
  353. package/dist/package-version.js.map +1 -0
  354. package/dist/packages/constants.d.ts +3 -0
  355. package/dist/packages/constants.d.ts.map +1 -0
  356. package/dist/packages/constants.js +3 -0
  357. package/dist/packages/constants.js.map +1 -0
  358. package/dist/packages/inspection.d.ts.map +1 -1
  359. package/dist/packages/inspection.js +2 -1
  360. package/dist/packages/inspection.js.map +1 -1
  361. package/dist/packages/search.d.ts.map +1 -1
  362. package/dist/packages/search.js +1 -1
  363. package/dist/packages/search.js.map +1 -1
  364. package/dist/platform/a2a-capability-market.d.ts +21 -0
  365. package/dist/platform/a2a-capability-market.d.ts.map +1 -0
  366. package/dist/platform/a2a-capability-market.js +176 -0
  367. package/dist/platform/a2a-capability-market.js.map +1 -0
  368. package/dist/platform/a2a-client.d.ts +119 -0
  369. package/dist/platform/a2a-client.d.ts.map +1 -1
  370. package/dist/platform/a2a-client.js +413 -24
  371. package/dist/platform/a2a-client.js.map +1 -1
  372. package/dist/platform/a2a-fleet.d.ts +41 -0
  373. package/dist/platform/a2a-fleet.d.ts.map +1 -0
  374. package/dist/platform/a2a-fleet.js +109 -0
  375. package/dist/platform/a2a-fleet.js.map +1 -0
  376. package/dist/platform/a2a-maestro-peer.d.ts +20 -0
  377. package/dist/platform/a2a-maestro-peer.d.ts.map +1 -0
  378. package/dist/platform/a2a-maestro-peer.js +176 -0
  379. package/dist/platform/a2a-maestro-peer.js.map +1 -0
  380. package/dist/platform/a2a-peer-pairing.d.ts +107 -0
  381. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -0
  382. package/dist/platform/a2a-peer-pairing.js +489 -0
  383. package/dist/platform/a2a-peer-pairing.js.map +1 -0
  384. package/dist/platform/a2a-peer-registry.d.ts +68 -0
  385. package/dist/platform/a2a-peer-registry.d.ts.map +1 -0
  386. package/dist/platform/a2a-peer-registry.js +320 -0
  387. package/dist/platform/a2a-peer-registry.js.map +1 -0
  388. package/dist/platform/a2a-task-ledger.d.ts +86 -0
  389. package/dist/platform/a2a-task-ledger.d.ts.map +1 -0
  390. package/dist/platform/a2a-task-ledger.js +546 -0
  391. package/dist/platform/a2a-task-ledger.js.map +1 -0
  392. package/dist/platform/a2a-work-graph.d.ts +43 -0
  393. package/dist/platform/a2a-work-graph.d.ts.map +1 -0
  394. package/dist/platform/a2a-work-graph.js +267 -0
  395. package/dist/platform/a2a-work-graph.js.map +1 -0
  396. package/dist/platform/agent-registry-client.d.ts +327 -0
  397. package/dist/platform/agent-registry-client.d.ts.map +1 -0
  398. package/dist/platform/agent-registry-client.js +803 -0
  399. package/dist/platform/agent-registry-client.js.map +1 -0
  400. package/dist/platform/agent-runtime-client.d.ts +135 -1
  401. package/dist/platform/agent-runtime-client.d.ts.map +1 -1
  402. package/dist/platform/agent-runtime-client.js +467 -10
  403. package/dist/platform/agent-runtime-client.js.map +1 -1
  404. package/dist/platform/cerebro-facts-client.d.ts.map +1 -1
  405. package/dist/platform/cerebro-facts-client.js +4 -7
  406. package/dist/platform/cerebro-facts-client.js.map +1 -1
  407. package/dist/platform/client.d.ts.map +1 -1
  408. package/dist/platform/client.js +3 -12
  409. package/dist/platform/client.js.map +1 -1
  410. package/dist/platform/core-services.d.ts +68 -0
  411. package/dist/platform/core-services.d.ts.map +1 -1
  412. package/dist/platform/core-services.js +68 -0
  413. package/dist/platform/core-services.js.map +1 -1
  414. package/dist/platform/fermata-eval-client.d.ts +195 -0
  415. package/dist/platform/fermata-eval-client.d.ts.map +1 -0
  416. package/dist/platform/fermata-eval-client.js +146 -0
  417. package/dist/platform/fermata-eval-client.js.map +1 -0
  418. package/dist/platform/fermata-scenario-suite.d.ts +99 -0
  419. package/dist/platform/fermata-scenario-suite.d.ts.map +1 -0
  420. package/dist/platform/fermata-scenario-suite.js +459 -0
  421. package/dist/platform/fermata-scenario-suite.js.map +1 -0
  422. package/dist/platform/maestro-timeline-client.d.ts.map +1 -1
  423. package/dist/platform/maestro-timeline-client.js +5 -11
  424. package/dist/platform/maestro-timeline-client.js.map +1 -1
  425. package/dist/platform/operating-plane-client.d.ts +156 -0
  426. package/dist/platform/operating-plane-client.d.ts.map +1 -0
  427. package/dist/platform/operating-plane-client.js +131 -0
  428. package/dist/platform/operating-plane-client.js.map +1 -0
  429. package/dist/platform/operating-plane-summary.d.ts +47 -0
  430. package/dist/platform/operating-plane-summary.d.ts.map +1 -0
  431. package/dist/platform/operating-plane-summary.js +209 -0
  432. package/dist/platform/operating-plane-summary.js.map +1 -0
  433. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  434. package/dist/platform/tool-execution-client.js +4 -11
  435. package/dist/platform/tool-execution-client.js.map +1 -1
  436. package/dist/prompts/service-client.d.ts.map +1 -1
  437. package/dist/prompts/service-client.js +3 -5
  438. package/dist/prompts/service-client.js.map +1 -1
  439. package/dist/prompts/system-prompt.d.ts +3 -0
  440. package/dist/prompts/system-prompt.d.ts.map +1 -1
  441. package/dist/prompts/system-prompt.js +13 -3
  442. package/dist/prompts/system-prompt.js.map +1 -1
  443. package/dist/prompts/types.d.ts +2 -0
  444. package/dist/prompts/types.d.ts.map +1 -1
  445. package/dist/prompts/types.js.map +1 -1
  446. package/dist/providers/api-keys.d.ts +1 -1
  447. package/dist/providers/api-keys.d.ts.map +1 -1
  448. package/dist/providers/api-keys.js +2 -1
  449. package/dist/providers/api-keys.js.map +1 -1
  450. package/dist/providers/auth.d.ts.map +1 -1
  451. package/dist/providers/auth.js +48 -25
  452. package/dist/providers/auth.js.map +1 -1
  453. package/dist/remote-runner/attach-client.d.ts.map +1 -1
  454. package/dist/remote-runner/attach-client.js +1 -0
  455. package/dist/remote-runner/attach-client.js.map +1 -1
  456. package/dist/remote-runner/client.d.ts.map +1 -1
  457. package/dist/remote-runner/client.js +4 -7
  458. package/dist/remote-runner/client.js.map +1 -1
  459. package/dist/rpc/rpc-types.d.ts.map +1 -1
  460. package/dist/rpc/rpc-types.js +1 -0
  461. package/dist/rpc/rpc-types.js.map +1 -1
  462. package/dist/safety/action-firewall.d.ts.map +1 -1
  463. package/dist/safety/action-firewall.js +69 -6
  464. package/dist/safety/action-firewall.js.map +1 -1
  465. package/dist/safety/attack-patterns.d.ts.map +1 -1
  466. package/dist/safety/attack-patterns.js +31 -14
  467. package/dist/safety/attack-patterns.js.map +1 -1
  468. package/dist/safety/bash-parser.d.ts.map +1 -1
  469. package/dist/safety/bash-parser.js +4 -3
  470. package/dist/safety/bash-parser.js.map +1 -1
  471. package/dist/safety/execpolicy.d.ts +15 -3
  472. package/dist/safety/execpolicy.d.ts.map +1 -1
  473. package/dist/safety/execpolicy.js +248 -37
  474. package/dist/safety/execpolicy.js.map +1 -1
  475. package/dist/safety/governance-service-client.d.ts.map +1 -1
  476. package/dist/safety/governance-service-client.js +4 -7
  477. package/dist/safety/governance-service-client.js.map +1 -1
  478. package/dist/safety/guarded-files.d.ts +34 -0
  479. package/dist/safety/guarded-files.d.ts.map +1 -0
  480. package/dist/safety/guarded-files.js +372 -0
  481. package/dist/safety/guarded-files.js.map +1 -0
  482. package/dist/safety/loop-detector.d.ts.map +1 -1
  483. package/dist/safety/loop-detector.js +6 -1
  484. package/dist/safety/loop-detector.js.map +1 -1
  485. package/dist/safety/permission-profile.d.ts +47 -0
  486. package/dist/safety/permission-profile.d.ts.map +1 -0
  487. package/dist/safety/permission-profile.js +349 -0
  488. package/dist/safety/permission-profile.js.map +1 -0
  489. package/dist/safety/safety-middleware.d.ts +5 -1
  490. package/dist/safety/safety-middleware.d.ts.map +1 -1
  491. package/dist/safety/safety-middleware.js +3 -2
  492. package/dist/safety/safety-middleware.js.map +1 -1
  493. package/dist/safety/suspicious-patterns.d.ts.map +1 -1
  494. package/dist/safety/suspicious-patterns.js +12 -7
  495. package/dist/safety/suspicious-patterns.js.map +1 -1
  496. package/dist/safety/tool-categorization.js +1 -1
  497. package/dist/safety/tool-categorization.js.map +1 -1
  498. package/dist/safety/validators/path-policy-validator.d.ts.map +1 -1
  499. package/dist/safety/validators/path-policy-validator.js +7 -0
  500. package/dist/safety/validators/path-policy-validator.js.map +1 -1
  501. package/dist/sandbox/index.d.ts +6 -1
  502. package/dist/sandbox/index.d.ts.map +1 -1
  503. package/dist/sandbox/index.js +30 -4
  504. package/dist/sandbox/index.js.map +1 -1
  505. package/dist/sandbox/native-sandbox.d.ts +3 -0
  506. package/dist/sandbox/native-sandbox.d.ts.map +1 -1
  507. package/dist/sandbox/native-sandbox.js +139 -18
  508. package/dist/sandbox/native-sandbox.js.map +1 -1
  509. package/dist/sentry.d.ts +17 -0
  510. package/dist/sentry.d.ts.map +1 -0
  511. package/dist/sentry.js +91 -0
  512. package/dist/sentry.js.map +1 -0
  513. package/dist/server/agent-runtime-ledger.d.ts +141 -0
  514. package/dist/server/agent-runtime-ledger.d.ts.map +1 -0
  515. package/dist/server/agent-runtime-ledger.js +334 -0
  516. package/dist/server/agent-runtime-ledger.js.map +1 -0
  517. package/dist/server/agent-trajectory-inspection.d.ts +104 -0
  518. package/dist/server/agent-trajectory-inspection.d.ts.map +1 -0
  519. package/dist/server/agent-trajectory-inspection.js +168 -0
  520. package/dist/server/agent-trajectory-inspection.js.map +1 -0
  521. package/dist/server/agent-trajectory-replay.d.ts +56 -0
  522. package/dist/server/agent-trajectory-replay.d.ts.map +1 -0
  523. package/dist/server/agent-trajectory-replay.js +214 -0
  524. package/dist/server/agent-trajectory-replay.js.map +1 -0
  525. package/dist/server/agent-trajectory-scenarios.d.ts +109 -0
  526. package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -0
  527. package/dist/server/agent-trajectory-scenarios.js +822 -0
  528. package/dist/server/agent-trajectory-scenarios.js.map +1 -0
  529. package/dist/server/agent-trajectory-scorers.d.ts +61 -0
  530. package/dist/server/agent-trajectory-scorers.d.ts.map +1 -0
  531. package/dist/server/agent-trajectory-scorers.js +162 -0
  532. package/dist/server/agent-trajectory-scorers.js.map +1 -0
  533. package/dist/server/agent-trajectory-validation.d.ts +7 -0
  534. package/dist/server/agent-trajectory-validation.d.ts.map +1 -0
  535. package/dist/server/agent-trajectory-validation.js +101 -0
  536. package/dist/server/agent-trajectory-validation.js.map +1 -0
  537. package/dist/server/agent-trajectory.d.ts +50 -0
  538. package/dist/server/agent-trajectory.d.ts.map +1 -0
  539. package/dist/server/agent-trajectory.js +159 -0
  540. package/dist/server/agent-trajectory.js.map +1 -0
  541. package/dist/server/app-context.d.ts +18 -0
  542. package/dist/server/app-context.d.ts.map +1 -1
  543. package/dist/server/app-context.js.map +1 -1
  544. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  545. package/dist/server/handlers/headless-sessions.js +64 -27
  546. package/dist/server/handlers/headless-sessions.js.map +1 -1
  547. package/dist/server/handlers/health.d.ts +6 -0
  548. package/dist/server/handlers/health.d.ts.map +1 -1
  549. package/dist/server/handlers/health.js +6 -0
  550. package/dist/server/handlers/health.js.map +1 -1
  551. package/dist/server/handlers/hosted-runner-drain.d.ts +69 -1
  552. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  553. package/dist/server/handlers/hosted-runner-drain.js +309 -18
  554. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  555. package/dist/server/handlers/hosted-runner-identity.d.ts +16 -0
  556. package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -1
  557. package/dist/server/handlers/hosted-runner-identity.js +43 -0
  558. package/dist/server/handlers/hosted-runner-identity.js.map +1 -1
  559. package/dist/server/handlers/mode.d.ts.map +1 -1
  560. package/dist/server/handlers/mode.js +3 -1
  561. package/dist/server/handlers/mode.js.map +1 -1
  562. package/dist/server/handlers/pending-requests.d.ts.map +1 -1
  563. package/dist/server/handlers/pending-requests.js +336 -51
  564. package/dist/server/handlers/pending-requests.js.map +1 -1
  565. package/dist/server/handlers/platform-a2a-push.d.ts +6 -0
  566. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -0
  567. package/dist/server/handlers/platform-a2a-push.js +136 -0
  568. package/dist/server/handlers/platform-a2a-push.js.map +1 -0
  569. package/dist/server/handlers/sessions.d.ts.map +1 -1
  570. package/dist/server/handlers/sessions.js +21 -1
  571. package/dist/server/handlers/sessions.js.map +1 -1
  572. package/dist/server/headless-runtime-service.d.ts +9 -2
  573. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  574. package/dist/server/headless-runtime-service.js +39 -0
  575. package/dist/server/headless-runtime-service.js.map +1 -1
  576. package/dist/server/hosted-agent-runtime-progress.d.ts +144 -0
  577. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -0
  578. package/dist/server/hosted-agent-runtime-progress.js +1650 -0
  579. package/dist/server/hosted-agent-runtime-progress.js.map +1 -0
  580. package/dist/server/hosted-runner-lease.d.ts +41 -0
  581. package/dist/server/hosted-runner-lease.d.ts.map +1 -0
  582. package/dist/server/hosted-runner-lease.js +140 -0
  583. package/dist/server/hosted-runner-lease.js.map +1 -0
  584. package/dist/server/hosted-session-manager.d.ts +16 -8
  585. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  586. package/dist/server/hosted-session-manager.js +98 -76
  587. package/dist/server/hosted-session-manager.js.map +1 -1
  588. package/dist/server/junit-xml.d.ts +2 -0
  589. package/dist/server/junit-xml.d.ts.map +1 -0
  590. package/dist/server/junit-xml.js +9 -0
  591. package/dist/server/junit-xml.js.map +1 -0
  592. package/dist/server/routes.d.ts.map +1 -1
  593. package/dist/server/routes.js +6 -0
  594. package/dist/server/routes.js.map +1 -1
  595. package/dist/server/scenario-recorder.d.ts +56 -0
  596. package/dist/server/scenario-recorder.d.ts.map +1 -0
  597. package/dist/server/scenario-recorder.js +109 -0
  598. package/dist/server/scenario-recorder.js.map +1 -0
  599. package/dist/server/scripted-scenario-runner.d.ts +46 -0
  600. package/dist/server/scripted-scenario-runner.d.ts.map +1 -0
  601. package/dist/server/scripted-scenario-runner.js +190 -0
  602. package/dist/server/scripted-scenario-runner.js.map +1 -0
  603. package/dist/server/server-middlewares.d.ts +6 -2
  604. package/dist/server/server-middlewares.d.ts.map +1 -1
  605. package/dist/server/server-middlewares.js +8 -2
  606. package/dist/server/server-middlewares.js.map +1 -1
  607. package/dist/server/server-request-manager.d.ts +9 -1
  608. package/dist/server/server-request-manager.d.ts.map +1 -1
  609. package/dist/server/server-request-manager.js +49 -4
  610. package/dist/server/server-request-manager.js.map +1 -1
  611. package/dist/services/intelligent-router/service.d.ts +2 -0
  612. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  613. package/dist/services/intelligent-router/service.js +4 -0
  614. package/dist/services/intelligent-router/service.js.map +1 -1
  615. package/dist/services/service-authority.d.ts +25 -0
  616. package/dist/services/service-authority.d.ts.map +1 -0
  617. package/dist/services/service-authority.js +143 -0
  618. package/dist/services/service-authority.js.map +1 -0
  619. package/dist/services/workspace-config/service.d.ts +2 -0
  620. package/dist/services/workspace-config/service.d.ts.map +1 -1
  621. package/dist/services/workspace-config/service.js +4 -0
  622. package/dist/services/workspace-config/service.js.map +1 -1
  623. package/dist/session/manager.d.ts +8 -2
  624. package/dist/session/manager.d.ts.map +1 -1
  625. package/dist/session/manager.js +19 -4
  626. package/dist/session/manager.js.map +1 -1
  627. package/dist/session/session-branch.d.ts.map +1 -1
  628. package/dist/session/session-branch.js +5 -1
  629. package/dist/session/session-branch.js.map +1 -1
  630. package/dist/session/session-catalog.d.ts +7 -2
  631. package/dist/session/session-catalog.d.ts.map +1 -1
  632. package/dist/session/session-catalog.js +13 -2
  633. package/dist/session/session-catalog.js.map +1 -1
  634. package/dist/session/session-context.d.ts +6 -2
  635. package/dist/session/session-context.d.ts.map +1 -1
  636. package/dist/session/session-context.js +44 -4
  637. package/dist/session/session-context.js.map +1 -1
  638. package/dist/session/session-graph-projection.d.ts +32 -0
  639. package/dist/session/session-graph-projection.d.ts.map +1 -0
  640. package/dist/session/session-graph-projection.js +133 -0
  641. package/dist/session/session-graph-projection.js.map +1 -0
  642. package/dist/session/types.d.ts +18 -0
  643. package/dist/session/types.d.ts.map +1 -1
  644. package/dist/session/types.js +8 -0
  645. package/dist/session/types.js.map +1 -1
  646. package/dist/session/wire-format.generated.d.ts +3 -0
  647. package/dist/session/wire-format.generated.d.ts.map +1 -1
  648. package/dist/session/wire-format.generated.js +20 -0
  649. package/dist/session/wire-format.generated.js.map +1 -1
  650. package/dist/skills/eval-harness.d.ts +38 -0
  651. package/dist/skills/eval-harness.d.ts.map +1 -0
  652. package/dist/skills/eval-harness.js +112 -0
  653. package/dist/skills/eval-harness.js.map +1 -0
  654. package/dist/skills/index.d.ts +5 -1
  655. package/dist/skills/index.d.ts.map +1 -1
  656. package/dist/skills/index.js +5 -1
  657. package/dist/skills/index.js.map +1 -1
  658. package/dist/skills/linter.d.ts +36 -0
  659. package/dist/skills/linter.d.ts.map +1 -0
  660. package/dist/skills/linter.js +398 -0
  661. package/dist/skills/linter.js.map +1 -0
  662. package/dist/skills/loader.d.ts +36 -6
  663. package/dist/skills/loader.d.ts.map +1 -1
  664. package/dist/skills/loader.js +169 -86
  665. package/dist/skills/loader.js.map +1 -1
  666. package/dist/skills/package-contract.d.ts +45 -0
  667. package/dist/skills/package-contract.d.ts.map +1 -0
  668. package/dist/skills/package-contract.js +153 -0
  669. package/dist/skills/package-contract.js.map +1 -0
  670. package/dist/skills/runtime-activation.d.ts +68 -0
  671. package/dist/skills/runtime-activation.d.ts.map +1 -0
  672. package/dist/skills/runtime-activation.js +228 -0
  673. package/dist/skills/runtime-activation.js.map +1 -0
  674. package/dist/skills/service-client.d.ts.map +1 -1
  675. package/dist/skills/service-client.js +3 -4
  676. package/dist/skills/service-client.js.map +1 -1
  677. package/dist/skills/tool.d.ts.map +1 -1
  678. package/dist/skills/tool.js +2 -0
  679. package/dist/skills/tool.js.map +1 -1
  680. package/dist/skills/types.d.ts +14 -0
  681. package/dist/skills/types.d.ts.map +1 -1
  682. package/dist/skills/types.js.map +1 -1
  683. package/dist/telemetry/agent-operating-plane-context.d.ts +24 -0
  684. package/dist/telemetry/agent-operating-plane-context.d.ts.map +1 -0
  685. package/dist/telemetry/agent-operating-plane-context.js +54 -0
  686. package/dist/telemetry/agent-operating-plane-context.js.map +1 -0
  687. package/dist/telemetry/beacon.d.ts +24 -0
  688. package/dist/telemetry/beacon.d.ts.map +1 -0
  689. package/dist/telemetry/beacon.js +115 -0
  690. package/dist/telemetry/beacon.js.map +1 -0
  691. package/dist/telemetry/cli-command-aggregator.d.ts +36 -0
  692. package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -0
  693. package/dist/telemetry/cli-command-aggregator.js +251 -0
  694. package/dist/telemetry/cli-command-aggregator.js.map +1 -0
  695. package/dist/telemetry/cli-startup.d.ts +21 -0
  696. package/dist/telemetry/cli-startup.d.ts.map +1 -0
  697. package/dist/telemetry/cli-startup.js +83 -0
  698. package/dist/telemetry/cli-startup.js.map +1 -0
  699. package/dist/telemetry/disablement.d.ts +13 -0
  700. package/dist/telemetry/disablement.d.ts.map +1 -0
  701. package/dist/telemetry/disablement.js +19 -0
  702. package/dist/telemetry/disablement.js.map +1 -0
  703. package/dist/telemetry/index.d.ts +6 -2
  704. package/dist/telemetry/index.d.ts.map +1 -1
  705. package/dist/telemetry/index.js +6 -2
  706. package/dist/telemetry/index.js.map +1 -1
  707. package/dist/telemetry/maestro-event-bus.d.ts +52 -0
  708. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  709. package/dist/telemetry/maestro-event-bus.js +179 -3
  710. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  711. package/dist/telemetry/maestro-event-catalog.d.ts +3 -1
  712. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  713. package/dist/telemetry/maestro-event-catalog.js +2 -0
  714. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  715. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  716. package/dist/telemetry/maestro-platform-replay-fixture.js +74 -9
  717. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  718. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +1 -1
  719. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -1
  720. package/dist/telemetry/maestro-publisher-conformance-fixture.js +46 -11
  721. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  722. package/dist/telemetry/mcp-beacon.d.ts +20 -0
  723. package/dist/telemetry/mcp-beacon.d.ts.map +1 -0
  724. package/dist/telemetry/mcp-beacon.js +54 -0
  725. package/dist/telemetry/mcp-beacon.js.map +1 -0
  726. package/dist/telemetry/metadata-normalization.d.ts +7 -0
  727. package/dist/telemetry/metadata-normalization.d.ts.map +1 -0
  728. package/dist/telemetry/metadata-normalization.js +189 -0
  729. package/dist/telemetry/metadata-normalization.js.map +1 -0
  730. package/dist/telemetry/meter-service-client.d.ts.map +1 -1
  731. package/dist/telemetry/meter-service-client.js +5 -10
  732. package/dist/telemetry/meter-service-client.js.map +1 -1
  733. package/dist/telemetry/metrics.d.ts +123 -0
  734. package/dist/telemetry/metrics.d.ts.map +1 -0
  735. package/dist/telemetry/metrics.js +184 -0
  736. package/dist/telemetry/metrics.js.map +1 -0
  737. package/dist/telemetry/turn-tracker.d.ts +1 -0
  738. package/dist/telemetry/turn-tracker.d.ts.map +1 -1
  739. package/dist/telemetry/turn-tracker.js +22 -1
  740. package/dist/telemetry/turn-tracker.js.map +1 -1
  741. package/dist/telemetry/wide-events.d.ts +31 -1
  742. package/dist/telemetry/wide-events.d.ts.map +1 -1
  743. package/dist/telemetry/wide-events.js +229 -1
  744. package/dist/telemetry/wide-events.js.map +1 -1
  745. package/dist/telemetry.d.ts +39 -3
  746. package/dist/telemetry.d.ts.map +1 -1
  747. package/dist/telemetry.js +160 -3
  748. package/dist/telemetry.js.map +1 -1
  749. package/dist/testing/test-verification-hook.d.ts.map +1 -1
  750. package/dist/testing/test-verification-hook.js +34 -21
  751. package/dist/testing/test-verification-hook.js.map +1 -1
  752. package/dist/tools/apply-patch-parser.d.ts +26 -0
  753. package/dist/tools/apply-patch-parser.d.ts.map +1 -0
  754. package/dist/tools/apply-patch-parser.js +146 -0
  755. package/dist/tools/apply-patch-parser.js.map +1 -0
  756. package/dist/tools/apply-patch.d.ts +42 -0
  757. package/dist/tools/apply-patch.d.ts.map +1 -0
  758. package/dist/tools/apply-patch.js +648 -0
  759. package/dist/tools/apply-patch.js.map +1 -0
  760. package/dist/tools/ask-user.d.ts +1 -0
  761. package/dist/tools/ask-user.d.ts.map +1 -1
  762. package/dist/tools/background/tool-handler.d.ts +1 -0
  763. package/dist/tools/background/tool-handler.d.ts.map +1 -1
  764. package/dist/tools/bash.d.ts +1 -0
  765. package/dist/tools/bash.d.ts.map +1 -1
  766. package/dist/tools/codesearch.d.ts +1 -0
  767. package/dist/tools/codesearch.d.ts.map +1 -1
  768. package/dist/tools/conductor-client.d.ts +1 -0
  769. package/dist/tools/conductor-client.d.ts.map +1 -1
  770. package/dist/tools/conductor-client.js +63 -0
  771. package/dist/tools/conductor-client.js.map +1 -1
  772. package/dist/tools/diff.d.ts +1 -0
  773. package/dist/tools/diff.d.ts.map +1 -1
  774. package/dist/tools/edit.d.ts +1 -0
  775. package/dist/tools/edit.d.ts.map +1 -1
  776. package/dist/tools/extract-document.d.ts +1 -0
  777. package/dist/tools/extract-document.d.ts.map +1 -1
  778. package/dist/tools/find.d.ts +10 -0
  779. package/dist/tools/find.d.ts.map +1 -1
  780. package/dist/tools/find.js +236 -27
  781. package/dist/tools/find.js.map +1 -1
  782. package/dist/tools/gh.d.ts +3 -0
  783. package/dist/tools/gh.d.ts.map +1 -1
  784. package/dist/tools/index.d.ts +50 -0
  785. package/dist/tools/index.d.ts.map +1 -1
  786. package/dist/tools/index.js +4 -0
  787. package/dist/tools/index.js.map +1 -1
  788. package/dist/tools/list.d.ts +1 -0
  789. package/dist/tools/list.d.ts.map +1 -1
  790. package/dist/tools/notebook.d.ts +1 -0
  791. package/dist/tools/notebook.d.ts.map +1 -1
  792. package/dist/tools/oracle.d.ts +1 -0
  793. package/dist/tools/oracle.d.ts.map +1 -1
  794. package/dist/tools/oracle.js +17 -32
  795. package/dist/tools/oracle.js.map +1 -1
  796. package/dist/tools/parallel-execution.d.ts +13 -2
  797. package/dist/tools/parallel-execution.d.ts.map +1 -1
  798. package/dist/tools/parallel-execution.js +178 -7
  799. package/dist/tools/parallel-execution.js.map +1 -1
  800. package/dist/tools/parallel-ripgrep.d.ts +1 -0
  801. package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
  802. package/dist/tools/pipeline.d.ts +4 -0
  803. package/dist/tools/pipeline.d.ts.map +1 -1
  804. package/dist/tools/read.d.ts +1 -0
  805. package/dist/tools/read.d.ts.map +1 -1
  806. package/dist/tools/search.d.ts +1 -0
  807. package/dist/tools/search.d.ts.map +1 -1
  808. package/dist/tools/status.d.ts +1 -0
  809. package/dist/tools/status.d.ts.map +1 -1
  810. package/dist/tools/todo.d.ts +1 -0
  811. package/dist/tools/todo.d.ts.map +1 -1
  812. package/dist/tools/tool-dsl.d.ts +5 -1
  813. package/dist/tools/tool-dsl.d.ts.map +1 -1
  814. package/dist/tools/tool-dsl.js +1 -0
  815. package/dist/tools/tool-dsl.js.map +1 -1
  816. package/dist/tools/tool-result-cache.d.ts.map +1 -1
  817. package/dist/tools/tool-result-cache.js +1 -0
  818. package/dist/tools/tool-result-cache.js.map +1 -1
  819. package/dist/tools/typebox-tool.d.ts.map +1 -1
  820. package/dist/tools/typebox-tool.js +3 -0
  821. package/dist/tools/typebox-tool.js.map +1 -1
  822. package/dist/tools/webfetch.d.ts +1 -0
  823. package/dist/tools/webfetch.d.ts.map +1 -1
  824. package/dist/tools/websearch.d.ts +1 -0
  825. package/dist/tools/websearch.d.ts.map +1 -1
  826. package/dist/tools/write.d.ts +1 -0
  827. package/dist/tools/write.d.ts.map +1 -1
  828. package/dist/utils/abort-error.d.ts +2 -0
  829. package/dist/utils/abort-error.d.ts.map +1 -0
  830. package/dist/utils/abort-error.js +7 -0
  831. package/dist/utils/abort-error.js.map +1 -0
  832. package/dist/utils/downstream.d.ts.map +1 -1
  833. package/dist/utils/downstream.js +4 -0
  834. package/dist/utils/downstream.js.map +1 -1
  835. package/dist/utils/logger.d.ts +3 -0
  836. package/dist/utils/logger.d.ts.map +1 -1
  837. package/dist/utils/logger.js +14 -3
  838. package/dist/utils/logger.js.map +1 -1
  839. package/dist/utils/path-containment.d.ts +2 -0
  840. package/dist/utils/path-containment.d.ts.map +1 -0
  841. package/dist/utils/path-containment.js +14 -0
  842. package/dist/utils/path-containment.js.map +1 -0
  843. package/dist/utils/prompt-safe-text.d.ts +7 -0
  844. package/dist/utils/prompt-safe-text.d.ts.map +1 -0
  845. package/dist/utils/prompt-safe-text.js +44 -0
  846. package/dist/utils/prompt-safe-text.js.map +1 -0
  847. package/dist/version.json +2 -2
  848. package/dist/web-server.d.ts.map +1 -1
  849. package/dist/web-server.js +32 -7
  850. package/dist/web-server.js.map +1 -1
  851. package/dist/workspace/root-resolver.d.ts +4 -1
  852. package/dist/workspace/root-resolver.d.ts.map +1 -1
  853. package/dist/workspace/root-resolver.js +16 -6
  854. package/dist/workspace/root-resolver.js.map +1 -1
  855. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts +8 -0
  856. package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts.map +1 -0
  857. package/node_modules/@evalops/contracts/dist/advisor-effort.js +35 -0
  858. package/node_modules/@evalops/contracts/dist/advisor-effort.js.map +1 -0
  859. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts +10 -0
  860. package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts.map +1 -0
  861. package/node_modules/@evalops/contracts/dist/delegation-prompt.js +48 -0
  862. package/node_modules/@evalops/contracts/dist/delegation-prompt.js.map +1 -0
  863. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts +20 -0
  864. package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts.map +1 -0
  865. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js +147 -0
  866. package/node_modules/@evalops/contracts/dist/guarded-files-settings.js.map +1 -0
  867. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts +2 -0
  868. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts.map +1 -1
  869. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js +1 -0
  870. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js.map +1 -1
  871. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +280 -5
  872. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
  873. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +36 -1
  874. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
  875. package/node_modules/@evalops/contracts/dist/index.d.ts +15 -1
  876. package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  877. package/node_modules/@evalops/contracts/dist/index.js +6 -0
  878. package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  879. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +593 -0
  880. package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -0
  881. package/node_modules/@evalops/contracts/dist/maestro-app-server.js +218 -0
  882. package/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -0
  883. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +91 -0
  884. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
  885. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +92 -61
  886. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
  887. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +3 -0
  888. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -1
  889. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts +28 -0
  890. package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts.map +1 -0
  891. package/node_modules/@evalops/contracts/dist/runtime-constraints.js +71 -0
  892. package/node_modules/@evalops/contracts/dist/runtime-constraints.js.map +1 -0
  893. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +7 -0
  894. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -1
  895. package/node_modules/@evalops/contracts/dist/runtime-server-request.js +2 -0
  896. package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -1
  897. package/node_modules/@evalops/contracts/dist/scenario.d.ts +191 -0
  898. package/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -0
  899. package/node_modules/@evalops/contracts/dist/scenario.js +4 -0
  900. package/node_modules/@evalops/contracts/dist/scenario.js.map +1 -0
  901. package/node_modules/@evalops/contracts/dist/schemas.d.ts +17 -3
  902. package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  903. package/node_modules/@evalops/contracts/dist/schemas.js +16 -0
  904. package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  905. package/node_modules/@evalops/contracts/package.json +1 -1
  906. package/node_modules/@evalops/tui/package.json +1 -1
  907. package/package.json +41 -7
  908. package/skills/incident-triage/SKILL.md +40 -0
  909. package/skills/incident-triage/mcp.json +14 -0
  910. package/skills/incident-triage/reference/triage.md +20 -0
  911. package/skills/incident-triage/toolbox/incident-timeline +22 -0
  912. package/skills/incident-triage/toolbox/incident-timeline.cmd +16 -0
  913. package/skills/pr-review/SKILL.md +40 -0
  914. package/skills/pr-review/mcp.json +14 -0
  915. package/skills/pr-review/reference/rubric.md +20 -0
  916. package/skills/pr-review/toolbox/review-summary +20 -0
  917. package/skills/pr-review/toolbox/review-summary.cmd +14 -0
  918. package/skills/release-verification/SKILL.md +40 -0
  919. package/skills/release-verification/mcp.json +15 -0
  920. package/skills/release-verification/reference/checklist.md +21 -0
  921. package/skills/release-verification/toolbox/release-readiness +18 -0
  922. package/skills/release-verification/toolbox/release-readiness.cmd +12 -0
@@ -10,7 +10,7 @@ export { AutoCompactionMonitor, createAutoCompactionMonitor, getAutoCompactionCo
10
10
  export { enterPlanMode, exitPlanMode, isPlanModeActive, getCurrentPlanFilePath, readPlanFile, writePlanFile, appendToPlanFile, listPlanFiles, loadPlanModeState, savePlanModeState, clearPlanModeState, generatePlanFilePath, getPlanModeConfig, type PlanModeState, type PlanModeConfig, } from "./plan-mode.js";
11
11
  export { SessionRecoveryManager, createSessionRecoveryManager, saveSessionBackup, loadSessionBackup, listSessionBackups, cleanupExpiredBackups, deleteSessionBackups, getSessionRecoveryConfig, type SessionBackup, type SessionRecoveryConfig, } from "./session-recovery.js";
12
12
  export { PromptCacheManager, createPromptCacheManager, getPromptCacheConfig, estimateTokens, type CacheControl, type CacheableBlock, type CacheStats, type PromptCacheConfig, } from "./prompt-cache.js";
13
- export { MODE_CONFIGS, MODEL_BY_TIER, formatModeDisplay, getAllModes, getCurrentMode, getModeConfig, getModeFromEnv, getModelForMode, getModelForTier, parseMode, setCurrentMode, suggestMode, type AgentMode, type ModeConfig, type ModelMapping, type ModelTier, } from "./modes.js";
13
+ export { MODE_CONFIGS, MODEL_BY_TIER, formatModeDisplay, getAllModes, getCurrentMode, getModeConfig, getModeFromEnv, getModelForMode, getModelForTier, parseMode, resolveSubagentDispatch, setCurrentMode, suggestMode, type AgentMode, type DispatchSource, type ModeConfig, type ModelMapping, type ModelProvider, type ModelTier, type ResolvedSubagentDispatch, type SubagentDispatch, } from "./modes.js";
14
14
  export { ContextHandoffManager, createContextHandoffManager, estimateTokenCount, formatContextUsage, DEFAULT_THRESHOLDS, type ContextThresholds, type ContextStatus, type ContextUsage, type HandoffContext, } from "./context-handoff.js";
15
15
  export { SUBAGENT_SPECS, TOOL_CATEGORIES, createCustomSpec, filterToolsForSubagent, formatSubagentDisplay, getAllSubagentTypes, getAllowedTools, getCurrentSubagentType, getSubagentSpec, getSubagentTypeFromEnv, isToolAllowed, parseSubagentType, setCurrentSubagentType, validateSpec, type SubagentSpec, type SubagentType, } from "./subagent-specs.js";
16
16
  export type { AgentEvent, AgentMessage, AgentRunConfig, AgentState, AgentTool, AgentToolResult, AgentToolUpdateCallback, AgentTransport, Api, AppMessage, AssistantMessage, AssistantMessageEvent, Attachment, BranchSummaryMessage, CompactionSummaryMessage, Context, CustomAgentMessages, CustomMessages, HookMessage, ImageContent, Message, Model, Provider, QueuedMessage, ReasoningEffort, StopReason, StreamOptions, TextContent, ThinkingContent, ThinkingLevel, Tool, ToolCall, ToolResultMessage, Usage, UserMessage, UserMessageWithAttachments, } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export { AutoCompactionMonitor, createAutoCompactionMonitor, getAutoCompactionCo
10
10
  export { enterPlanMode, exitPlanMode, isPlanModeActive, getCurrentPlanFilePath, readPlanFile, writePlanFile, appendToPlanFile, listPlanFiles, loadPlanModeState, savePlanModeState, clearPlanModeState, generatePlanFilePath, getPlanModeConfig, } from "./plan-mode.js";
11
11
  export { SessionRecoveryManager, createSessionRecoveryManager, saveSessionBackup, loadSessionBackup, listSessionBackups, cleanupExpiredBackups, deleteSessionBackups, getSessionRecoveryConfig, } from "./session-recovery.js";
12
12
  export { PromptCacheManager, createPromptCacheManager, getPromptCacheConfig, estimateTokens, } from "./prompt-cache.js";
13
- export { MODE_CONFIGS, MODEL_BY_TIER, formatModeDisplay, getAllModes, getCurrentMode, getModeConfig, getModeFromEnv, getModelForMode, getModelForTier, parseMode, setCurrentMode, suggestMode, } from "./modes.js";
13
+ export { MODE_CONFIGS, MODEL_BY_TIER, formatModeDisplay, getAllModes, getCurrentMode, getModeConfig, getModeFromEnv, getModelForMode, getModelForTier, parseMode, resolveSubagentDispatch, setCurrentMode, suggestMode, } from "./modes.js";
14
14
  export { ContextHandoffManager, createContextHandoffManager, estimateTokenCount, formatContextUsage, DEFAULT_THRESHOLDS, } from "./context-handoff.js";
15
15
  export { SUBAGENT_SPECS, TOOL_CATEGORIES, createCustomSpec, filterToolsForSubagent, formatSubagentDisplay, getAllSubagentTypes, getAllowedTools, getCurrentSubagentType, getSubagentSpec, getSubagentTypeFromEnv, isToolAllowed, parseSubagentType, setCurrentSubagentType, validateSpec, } from "./subagent-specs.js";
16
16
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EACN,mBAAmB,GAInB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,iBAAiB,GAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACN,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GAKpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,GAGzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,GAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,GAGxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GAKd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,WAAW,GAKX,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAKlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,GAGZ,MAAM,qBAAqB,CAAC;AAuC7B,OAAO;AACN,sBAAsB;AACtB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,cAAc,EACd,YAAY;AACZ,sBAAsB;AACtB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,UAAU;AACV,oBAAoB;AACpB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC","sourcesContent":["export { Agent, type AgentOptions } from \"./agent.js\";\nexport {\n\tAgentContextManager,\n\ttype AgentContextSource,\n\ttype ContextLoadResult,\n\ttype SourceLoadStatus,\n} from \"./context-manager.js\";\nexport {\n\tProviderTransport,\n\ttype ProviderTransportOptions,\n} from \"./transport.js\";\nexport { sanitizeSurrogates } from \"./providers/sanitize-unicode.js\";\nexport { StringEnum } from \"./providers/typebox-helpers.js\";\nexport { validateToolArguments } from \"./providers/validation.js\";\nexport {\n\tSystemReminderManager,\n\tcreateDefaultReminderManager,\n\twrapInSystemReminder,\n\textractSystemReminders,\n\tstripSystemReminders,\n\ttodoReminderProvider,\n\tfileReadReminderProvider,\n\teditReminderProvider,\n\ttype SystemReminder,\n\ttype ReminderContext,\n\ttype ReminderProvider,\n\ttype ReminderManagerConfig,\n} from \"./system-reminders.js\";\nexport {\n\tFileTranscriptStore,\n\tMemoryTranscriptStore,\n\tcreateTranscript,\n\tupdateTranscript,\n\tcompleteTranscript,\n\tfailTranscript,\n\tgetTranscriptSummary,\n\tbuildResumePrompt,\n\tgetDefaultTranscriptStore,\n\tsetDefaultTranscriptStore,\n\ttype AgentTranscript,\n\ttype TranscriptStore,\n} from \"./agent-resume.js\";\nexport {\n\tAutoCompactionMonitor,\n\tcreateAutoCompactionMonitor,\n\tgetAutoCompactionConfig,\n\tcalculateContextUsage,\n\tshouldAutoCompact,\n\ttype AutoCompactionConfig,\n\ttype CompactionStats,\n} from \"./auto-compaction.js\";\nexport {\n\tenterPlanMode,\n\texitPlanMode,\n\tisPlanModeActive,\n\tgetCurrentPlanFilePath,\n\treadPlanFile,\n\twritePlanFile,\n\tappendToPlanFile,\n\tlistPlanFiles,\n\tloadPlanModeState,\n\tsavePlanModeState,\n\tclearPlanModeState,\n\tgeneratePlanFilePath,\n\tgetPlanModeConfig,\n\ttype PlanModeState,\n\ttype PlanModeConfig,\n} from \"./plan-mode.js\";\nexport {\n\tSessionRecoveryManager,\n\tcreateSessionRecoveryManager,\n\tsaveSessionBackup,\n\tloadSessionBackup,\n\tlistSessionBackups,\n\tcleanupExpiredBackups,\n\tdeleteSessionBackups,\n\tgetSessionRecoveryConfig,\n\ttype SessionBackup,\n\ttype SessionRecoveryConfig,\n} from \"./session-recovery.js\";\nexport {\n\tPromptCacheManager,\n\tcreatePromptCacheManager,\n\tgetPromptCacheConfig,\n\testimateTokens,\n\ttype CacheControl,\n\ttype CacheableBlock,\n\ttype CacheStats,\n\ttype PromptCacheConfig,\n} from \"./prompt-cache.js\";\nexport {\n\tMODE_CONFIGS,\n\tMODEL_BY_TIER,\n\tformatModeDisplay,\n\tgetAllModes,\n\tgetCurrentMode,\n\tgetModeConfig,\n\tgetModeFromEnv,\n\tgetModelForMode,\n\tgetModelForTier,\n\tparseMode,\n\tsetCurrentMode,\n\tsuggestMode,\n\ttype AgentMode,\n\ttype ModeConfig,\n\ttype ModelMapping,\n\ttype ModelTier,\n} from \"./modes.js\";\nexport {\n\tContextHandoffManager,\n\tcreateContextHandoffManager,\n\testimateTokenCount,\n\tformatContextUsage,\n\tDEFAULT_THRESHOLDS,\n\ttype ContextThresholds,\n\ttype ContextStatus,\n\ttype ContextUsage,\n\ttype HandoffContext,\n} from \"./context-handoff.js\";\nexport {\n\tSUBAGENT_SPECS,\n\tTOOL_CATEGORIES,\n\tcreateCustomSpec,\n\tfilterToolsForSubagent,\n\tformatSubagentDisplay,\n\tgetAllSubagentTypes,\n\tgetAllowedTools,\n\tgetCurrentSubagentType,\n\tgetSubagentSpec,\n\tgetSubagentTypeFromEnv,\n\tisToolAllowed,\n\tparseSubagentType,\n\tsetCurrentSubagentType,\n\tvalidateSpec,\n\ttype SubagentSpec,\n\ttype SubagentType,\n} from \"./subagent-specs.js\";\nexport type {\n\tAgentEvent,\n\tAgentMessage,\n\tAgentRunConfig,\n\tAgentState,\n\tAgentTool,\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAgentTransport,\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tAttachment,\n\tBranchSummaryMessage,\n\tCompactionSummaryMessage,\n\tContext,\n\tCustomAgentMessages,\n\tCustomMessages,\n\tHookMessage,\n\tImageContent,\n\tMessage,\n\tModel,\n\tProvider,\n\tQueuedMessage,\n\tReasoningEffort,\n\tStopReason,\n\tStreamOptions,\n\tTextContent,\n\tThinkingContent,\n\tThinkingLevel,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\nexport {\n\t// Message type guards\n\tisUserMessage,\n\tisAssistantMessage,\n\tisToolResultMessage,\n\tisHookMessage,\n\tisBranchSummaryMessage,\n\tisCompactionSummaryMessage,\n\tisUserMessageWithAttachments,\n\thasAttachments,\n\tisLLMMessage,\n\t// Content type guards\n\tisTextContent,\n\tisThinkingContent,\n\tisImageContent,\n\tisToolCall,\n\t// Utility functions\n\tgetToolCalls,\n\tgetTextContent,\n\tgetThinkingContent,\n\thasToolCalls,\n\tgetUserMessageText,\n\tgetFirstToolCall,\n\tisErrorResult,\n\tgetLastAssistantMessage,\n\tgetLastUserMessage,\n\tcountMessagesByRole,\n\tgetImageContent,\n} from \"./type-guards.js\";\nexport { convertToLlm, isLlmMessage } from \"./message-converter.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EACN,mBAAmB,GAInB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,iBAAiB,GAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACN,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GAKpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,GAGzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,GAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,GAGxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GAKd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,WAAW,GASX,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAKlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,GAGZ,MAAM,qBAAqB,CAAC;AAuC7B,OAAO;AACN,sBAAsB;AACtB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,cAAc,EACd,YAAY;AACZ,sBAAsB;AACtB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,UAAU;AACV,oBAAoB;AACpB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC","sourcesContent":["export { Agent, type AgentOptions } from \"./agent.js\";\nexport {\n\tAgentContextManager,\n\ttype AgentContextSource,\n\ttype ContextLoadResult,\n\ttype SourceLoadStatus,\n} from \"./context-manager.js\";\nexport {\n\tProviderTransport,\n\ttype ProviderTransportOptions,\n} from \"./transport.js\";\nexport { sanitizeSurrogates } from \"./providers/sanitize-unicode.js\";\nexport { StringEnum } from \"./providers/typebox-helpers.js\";\nexport { validateToolArguments } from \"./providers/validation.js\";\nexport {\n\tSystemReminderManager,\n\tcreateDefaultReminderManager,\n\twrapInSystemReminder,\n\textractSystemReminders,\n\tstripSystemReminders,\n\ttodoReminderProvider,\n\tfileReadReminderProvider,\n\teditReminderProvider,\n\ttype SystemReminder,\n\ttype ReminderContext,\n\ttype ReminderProvider,\n\ttype ReminderManagerConfig,\n} from \"./system-reminders.js\";\nexport {\n\tFileTranscriptStore,\n\tMemoryTranscriptStore,\n\tcreateTranscript,\n\tupdateTranscript,\n\tcompleteTranscript,\n\tfailTranscript,\n\tgetTranscriptSummary,\n\tbuildResumePrompt,\n\tgetDefaultTranscriptStore,\n\tsetDefaultTranscriptStore,\n\ttype AgentTranscript,\n\ttype TranscriptStore,\n} from \"./agent-resume.js\";\nexport {\n\tAutoCompactionMonitor,\n\tcreateAutoCompactionMonitor,\n\tgetAutoCompactionConfig,\n\tcalculateContextUsage,\n\tshouldAutoCompact,\n\ttype AutoCompactionConfig,\n\ttype CompactionStats,\n} from \"./auto-compaction.js\";\nexport {\n\tenterPlanMode,\n\texitPlanMode,\n\tisPlanModeActive,\n\tgetCurrentPlanFilePath,\n\treadPlanFile,\n\twritePlanFile,\n\tappendToPlanFile,\n\tlistPlanFiles,\n\tloadPlanModeState,\n\tsavePlanModeState,\n\tclearPlanModeState,\n\tgeneratePlanFilePath,\n\tgetPlanModeConfig,\n\ttype PlanModeState,\n\ttype PlanModeConfig,\n} from \"./plan-mode.js\";\nexport {\n\tSessionRecoveryManager,\n\tcreateSessionRecoveryManager,\n\tsaveSessionBackup,\n\tloadSessionBackup,\n\tlistSessionBackups,\n\tcleanupExpiredBackups,\n\tdeleteSessionBackups,\n\tgetSessionRecoveryConfig,\n\ttype SessionBackup,\n\ttype SessionRecoveryConfig,\n} from \"./session-recovery.js\";\nexport {\n\tPromptCacheManager,\n\tcreatePromptCacheManager,\n\tgetPromptCacheConfig,\n\testimateTokens,\n\ttype CacheControl,\n\ttype CacheableBlock,\n\ttype CacheStats,\n\ttype PromptCacheConfig,\n} from \"./prompt-cache.js\";\nexport {\n\tMODE_CONFIGS,\n\tMODEL_BY_TIER,\n\tformatModeDisplay,\n\tgetAllModes,\n\tgetCurrentMode,\n\tgetModeConfig,\n\tgetModeFromEnv,\n\tgetModelForMode,\n\tgetModelForTier,\n\tparseMode,\n\tresolveSubagentDispatch,\n\tsetCurrentMode,\n\tsuggestMode,\n\ttype AgentMode,\n\ttype DispatchSource,\n\ttype ModeConfig,\n\ttype ModelMapping,\n\ttype ModelProvider,\n\ttype ModelTier,\n\ttype ResolvedSubagentDispatch,\n\ttype SubagentDispatch,\n} from \"./modes.js\";\nexport {\n\tContextHandoffManager,\n\tcreateContextHandoffManager,\n\testimateTokenCount,\n\tformatContextUsage,\n\tDEFAULT_THRESHOLDS,\n\ttype ContextThresholds,\n\ttype ContextStatus,\n\ttype ContextUsage,\n\ttype HandoffContext,\n} from \"./context-handoff.js\";\nexport {\n\tSUBAGENT_SPECS,\n\tTOOL_CATEGORIES,\n\tcreateCustomSpec,\n\tfilterToolsForSubagent,\n\tformatSubagentDisplay,\n\tgetAllSubagentTypes,\n\tgetAllowedTools,\n\tgetCurrentSubagentType,\n\tgetSubagentSpec,\n\tgetSubagentTypeFromEnv,\n\tisToolAllowed,\n\tparseSubagentType,\n\tsetCurrentSubagentType,\n\tvalidateSpec,\n\ttype SubagentSpec,\n\ttype SubagentType,\n} from \"./subagent-specs.js\";\nexport type {\n\tAgentEvent,\n\tAgentMessage,\n\tAgentRunConfig,\n\tAgentState,\n\tAgentTool,\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAgentTransport,\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tAttachment,\n\tBranchSummaryMessage,\n\tCompactionSummaryMessage,\n\tContext,\n\tCustomAgentMessages,\n\tCustomMessages,\n\tHookMessage,\n\tImageContent,\n\tMessage,\n\tModel,\n\tProvider,\n\tQueuedMessage,\n\tReasoningEffort,\n\tStopReason,\n\tStreamOptions,\n\tTextContent,\n\tThinkingContent,\n\tThinkingLevel,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\nexport {\n\t// Message type guards\n\tisUserMessage,\n\tisAssistantMessage,\n\tisToolResultMessage,\n\tisHookMessage,\n\tisBranchSummaryMessage,\n\tisCompactionSummaryMessage,\n\tisUserMessageWithAttachments,\n\thasAttachments,\n\tisLLMMessage,\n\t// Content type guards\n\tisTextContent,\n\tisThinkingContent,\n\tisImageContent,\n\tisToolCall,\n\t// Utility functions\n\tgetToolCalls,\n\tgetTextContent,\n\tgetThinkingContent,\n\thasToolCalls,\n\tgetUserMessageText,\n\tgetFirstToolCall,\n\tisErrorResult,\n\tgetLastAssistantMessage,\n\tgetLastUserMessage,\n\tcountMessagesByRole,\n\tgetImageContent,\n} from \"./type-guards.js\";\nexport { convertToLlm, isLlmMessage } from \"./message-converter.js\";\n"]}
@@ -44,6 +44,7 @@
44
44
  *
45
45
  * - `MAESTRO_MODE`: Override the default mode at startup
46
46
  */
47
+ import type { SubagentType } from "./subagent-specs.js";
47
48
  /**
48
49
  * Available agent modes representing different quality/speed/cost tradeoffs.
49
50
  *
@@ -52,7 +53,7 @@
52
53
  * - "free": Cost-optimized, uses haiku-class models for simple operations
53
54
  * - "custom": User-defined settings for specialized workflows
54
55
  */
55
- export type AgentMode = "smart" | "rush" | "free" | "custom";
56
+ export type AgentMode = "smart" | "rush" | "free" | "custom" | "frontier" | "replay";
56
57
  /**
57
58
  * Model tier representing capability levels that map to provider-specific models.
58
59
  *
@@ -62,6 +63,42 @@ export type AgentMode = "smart" | "rush" | "free" | "custom";
62
63
  * - "haiku": Fast/efficient (claude-haiku, gpt-4o-mini, gemini-flash-lite)
63
64
  */
64
65
  export type ModelTier = "opus" | "sonnet" | "haiku";
66
+ /** Supported model providers for tier and subagent dispatch. */
67
+ export type ModelProvider = "anthropic" | "openai" | "openai-codex" | "google";
68
+ /** Reasoning budget hint passed to subagents that support it. */
69
+ export type ReasoningEffort = "low" | "medium" | "high" | "xhigh";
70
+ /** Where the resolved subagent dispatch came from. */
71
+ export type DispatchSource = "mode" | "fallback";
72
+ /**
73
+ * Per-subagent model routing override.
74
+ *
75
+ * `model` can be a logical model tier (`opus`, `sonnet`, `haiku`) or an
76
+ * explicit model ID. Explicit model IDs may be provider-prefixed, for example
77
+ * `openai-codex/gpt-5.5`.
78
+ */
79
+ export interface SubagentDispatch {
80
+ model: ModelTier | string;
81
+ provider?: ModelProvider;
82
+ reasoningEffort?: ReasoningEffort;
83
+ maxTokens?: number;
84
+ temperature?: number;
85
+ timeoutMs?: number;
86
+ promptTemplate?: string;
87
+ }
88
+ /** Fully resolved model routing for one subagent invocation. */
89
+ export interface ResolvedSubagentDispatch {
90
+ mode: AgentMode;
91
+ type: SubagentType;
92
+ provider: ModelProvider;
93
+ model: string;
94
+ modelTier?: ModelTier;
95
+ reasoningEffort: ReasoningEffort;
96
+ maxTokens?: number;
97
+ temperature?: number;
98
+ timeoutMs?: number;
99
+ promptTemplate?: string;
100
+ source: DispatchSource;
101
+ }
65
102
  /**
66
103
  * Mode configuration that determines model selection and behavior.
67
104
  *
@@ -82,6 +119,8 @@ export interface ModeConfig {
82
119
  fallbackTier: ModelTier;
83
120
  /** Whether to enable thinking/reasoning */
84
121
  enableThinking: boolean;
122
+ /** Default reasoning effort for mode-level and fallback subagent routing. */
123
+ reasoningEffort?: ReasoningEffort;
85
124
  /** Maximum thinking budget (tokens) */
86
125
  thinkingBudget: number;
87
126
  /** Whether to use extended context */
@@ -92,6 +131,12 @@ export interface ModeConfig {
92
131
  costMultiplier: number;
93
132
  /** Speed hint (1-10, higher is faster) */
94
133
  speedHint: number;
134
+ /** Whether this mode is shown in default user-facing mode lists. */
135
+ visible: boolean;
136
+ /** Optional dispatch table for mode-specific subagent routing. */
137
+ subagents?: Partial<Record<SubagentType, SubagentDispatch>>;
138
+ /** Owner responsible for promotion or removal when hidden. */
139
+ rolloutOwner?: string;
95
140
  }
96
141
  /**
97
142
  * Model mapping for different providers.
@@ -99,6 +144,7 @@ export interface ModeConfig {
99
144
  export interface ModelMapping {
100
145
  anthropic: string;
101
146
  openai?: string;
147
+ "openai-codex"?: string;
102
148
  google?: string;
103
149
  }
104
150
  /**
@@ -135,7 +181,11 @@ export declare const MODEL_BY_TIER: Record<ModelTier, ModelMapping>;
135
181
  * Falls back to the Anthropic model if the requested provider
136
182
  * doesn't have a mapping for the tier.
137
183
  */
138
- export declare function getModelForTier(tier: ModelTier, provider?: "anthropic" | "openai" | "google"): string;
184
+ export declare function getModelForTier(tier: ModelTier, provider?: ModelProvider): string;
185
+ /**
186
+ * Resolve the concrete model/provider a subagent should use in a mode.
187
+ */
188
+ export declare function resolveSubagentDispatch(mode: AgentMode, type: SubagentType, provider?: ModelProvider): ResolvedSubagentDispatch;
139
189
  /**
140
190
  * Get the configuration for a mode.
141
191
  */
@@ -143,7 +193,7 @@ export declare function getModeConfig(mode: AgentMode): ModeConfig;
143
193
  /**
144
194
  * Get the recommended model for a mode and provider.
145
195
  */
146
- export declare function getModelForMode(mode: AgentMode, provider?: "anthropic" | "openai" | "google"): string;
196
+ export declare function getModelForMode(mode: AgentMode, provider?: ModelProvider): string;
147
197
  /**
148
198
  * Get the current agent mode.
149
199
  *
@@ -184,7 +234,9 @@ export declare function formatModeDisplay(mode: AgentMode): string;
184
234
  /**
185
235
  * Get all available modes with their descriptions.
186
236
  */
187
- export declare function getAllModes(): Array<{
237
+ export declare function getAllModes(options?: {
238
+ includeHidden?: boolean;
239
+ }): Array<{
188
240
  mode: AgentMode;
189
241
  config: ModeConfig;
190
242
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/agent/modes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAOH;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IAC1B,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,WAAW,EAAE,SAAS,CAAC;IACvB,oDAAoD;IACpD,YAAY,EAAE,SAAS,CAAC;IACxB,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAqDtD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAmBzD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,SAAS,EACf,QAAQ,GAAE,WAAW,GAAG,QAAQ,GAAG,QAAsB,GACvD,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,SAAS,EACf,QAAQ,GAAE,WAAW,GAAG,QAAQ,GAAG,QAAsB,GACvD,MAAM,CAGR;AAWD;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,SAAS,CAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAGpD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAM3D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,SAAS,CAO1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAGzD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,CAO5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAkE9D"}
1
+ {"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/agent/modes.ts"],"names":[],"mappings":"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"}
@@ -44,9 +44,16 @@
44
44
  *
45
45
  * - `MAESTRO_MODE`: Override the default mode at startup
46
46
  */
47
+ import { recordStagedRolloutSurfaceUsage } from "../telemetry.js";
47
48
  import { createLogger } from "../utils/logger.js";
48
49
  // Logger scoped to agent modes for debugging mode transitions
49
50
  const logger = createLogger("agent:modes");
51
+ const PROVIDERS = [
52
+ "anthropic",
53
+ "openai",
54
+ "openai-codex",
55
+ "google",
56
+ ];
50
57
  /**
51
58
  * Default mode configurations defining the behavior of each agent mode.
52
59
  *
@@ -67,11 +74,21 @@ export const MODE_CONFIGS = {
67
74
  primaryTier: "opus",
68
75
  fallbackTier: "sonnet",
69
76
  enableThinking: true,
77
+ reasoningEffort: "medium",
70
78
  thinkingBudget: 16000,
71
79
  useExtendedContext: true,
72
80
  maxRetries: 3,
73
81
  costMultiplier: 1.0,
74
82
  speedHint: 5,
83
+ visible: true,
84
+ subagents: {
85
+ explorer: { model: "haiku", reasoningEffort: "low" },
86
+ planner: { model: "opus", reasoningEffort: "high" },
87
+ coder: { model: "openai-codex/gpt-5.5", reasoningEffort: "medium" },
88
+ reviewer: { model: "sonnet", reasoningEffort: "medium" },
89
+ researcher: { model: "sonnet", reasoningEffort: "medium" },
90
+ minimal: { model: "haiku", reasoningEffort: "low" },
91
+ },
75
92
  },
76
93
  // Rush mode: Speed-optimized for quick iterations
77
94
  rush: {
@@ -80,11 +97,21 @@ export const MODE_CONFIGS = {
80
97
  primaryTier: "sonnet",
81
98
  fallbackTier: "haiku",
82
99
  enableThinking: false,
100
+ reasoningEffort: "low",
83
101
  thinkingBudget: 4000,
84
102
  useExtendedContext: false,
85
103
  maxRetries: 2,
86
104
  costMultiplier: 0.5,
87
105
  speedHint: 8,
106
+ visible: true,
107
+ subagents: {
108
+ explorer: { model: "haiku", reasoningEffort: "low" },
109
+ planner: { model: "sonnet", reasoningEffort: "low" },
110
+ coder: { model: "sonnet", reasoningEffort: "low" },
111
+ reviewer: { model: "haiku", reasoningEffort: "low" },
112
+ researcher: { model: "haiku", reasoningEffort: "low" },
113
+ minimal: { model: "haiku", reasoningEffort: "low" },
114
+ },
88
115
  },
89
116
  // Free mode: Cost-optimized for simple tasks
90
117
  free: {
@@ -93,11 +120,21 @@ export const MODE_CONFIGS = {
93
120
  primaryTier: "haiku",
94
121
  fallbackTier: "haiku",
95
122
  enableThinking: false,
123
+ reasoningEffort: "low",
96
124
  thinkingBudget: 2000,
97
125
  useExtendedContext: false,
98
126
  maxRetries: 1,
99
127
  costMultiplier: 0.1,
100
128
  speedHint: 10,
129
+ visible: true,
130
+ subagents: {
131
+ explorer: { model: "haiku", reasoningEffort: "low" },
132
+ planner: { model: "haiku", reasoningEffort: "low" },
133
+ coder: { model: "haiku", reasoningEffort: "low" },
134
+ reviewer: { model: "haiku", reasoningEffort: "low" },
135
+ researcher: { model: "haiku", reasoningEffort: "low" },
136
+ minimal: { model: "haiku", reasoningEffort: "low" },
137
+ },
101
138
  },
102
139
  // Custom mode: User-configurable defaults (can be overridden at runtime)
103
140
  custom: {
@@ -106,11 +143,59 @@ export const MODE_CONFIGS = {
106
143
  primaryTier: "sonnet",
107
144
  fallbackTier: "haiku",
108
145
  enableThinking: true,
146
+ reasoningEffort: "medium",
109
147
  thinkingBudget: 8000,
110
148
  useExtendedContext: true,
111
149
  maxRetries: 2,
112
150
  costMultiplier: 0.7,
113
151
  speedHint: 6,
152
+ visible: true,
153
+ },
154
+ frontier: {
155
+ displayName: "Frontier",
156
+ description: "Experimental high-capability orchestration mode",
157
+ primaryTier: "opus",
158
+ fallbackTier: "sonnet",
159
+ enableThinking: true,
160
+ reasoningEffort: "high",
161
+ thinkingBudget: 20000,
162
+ useExtendedContext: true,
163
+ maxRetries: 3,
164
+ costMultiplier: 1.25,
165
+ speedHint: 4,
166
+ visible: false,
167
+ subagents: {
168
+ explorer: { model: "sonnet", reasoningEffort: "medium" },
169
+ planner: { model: "opus", reasoningEffort: "xhigh" },
170
+ coder: { model: "openai-codex/gpt-5.5", reasoningEffort: "high" },
171
+ reviewer: { model: "openai-codex/gpt-5.5", reasoningEffort: "medium" },
172
+ researcher: { model: "sonnet", reasoningEffort: "medium" },
173
+ minimal: { model: "haiku", reasoningEffort: "low" },
174
+ },
175
+ rolloutOwner: "agent-runtime",
176
+ },
177
+ replay: {
178
+ displayName: "Replay",
179
+ description: "Deterministic scripted scenario replay",
180
+ primaryTier: "haiku",
181
+ fallbackTier: "haiku",
182
+ enableThinking: false,
183
+ reasoningEffort: "low",
184
+ thinkingBudget: 0,
185
+ useExtendedContext: false,
186
+ maxRetries: 0,
187
+ costMultiplier: 0,
188
+ speedHint: 10,
189
+ visible: false,
190
+ subagents: {
191
+ explorer: { model: "haiku", reasoningEffort: "low" },
192
+ planner: { model: "haiku", reasoningEffort: "low" },
193
+ coder: { model: "haiku", reasoningEffort: "low" },
194
+ reviewer: { model: "haiku", reasoningEffort: "low" },
195
+ researcher: { model: "haiku", reasoningEffort: "low" },
196
+ minimal: { model: "haiku", reasoningEffort: "low" },
197
+ },
198
+ rolloutOwner: "agent-evals",
114
199
  },
115
200
  };
116
201
  /**
@@ -128,18 +213,21 @@ export const MODEL_BY_TIER = {
128
213
  opus: {
129
214
  anthropic: "claude-opus-4-6",
130
215
  openai: "gpt-5.2",
216
+ "openai-codex": "gpt-5.5",
131
217
  google: "gemini-2.0-flash-thinking-exp",
132
218
  },
133
219
  // Sonnet tier: Balanced performance models for general use
134
220
  sonnet: {
135
221
  anthropic: "claude-sonnet-4-5-20250929",
136
222
  openai: "gpt-4o",
223
+ "openai-codex": "gpt-5.4",
137
224
  google: "gemini-2.0-flash-exp",
138
225
  },
139
226
  // Haiku tier: Fast, efficient models for simple tasks
140
227
  haiku: {
141
228
  anthropic: "claude-haiku-4-5-20251001",
142
229
  openai: "gpt-4o-mini",
230
+ "openai-codex": "gpt-5.4-mini",
143
231
  google: "gemini-2.0-flash-lite-exp",
144
232
  },
145
233
  };
@@ -158,6 +246,69 @@ export function getModelForTier(tier, provider = "anthropic") {
158
246
  // Fall back to Anthropic if provider doesn't have a mapping
159
247
  return mapping[provider] ?? mapping.anthropic;
160
248
  }
249
+ function isModelTier(model) {
250
+ return model in MODEL_BY_TIER;
251
+ }
252
+ function isModelProvider(provider) {
253
+ return PROVIDERS.includes(provider);
254
+ }
255
+ function splitExplicitModel(model) {
256
+ const slashIndex = model.indexOf("/");
257
+ if (slashIndex <= 0) {
258
+ return { model };
259
+ }
260
+ const provider = model.slice(0, slashIndex);
261
+ if (!isModelProvider(provider)) {
262
+ return { model };
263
+ }
264
+ return {
265
+ provider,
266
+ model: model.slice(slashIndex + 1),
267
+ };
268
+ }
269
+ function defaultReasoningEffort(config) {
270
+ return config.reasoningEffort ?? (config.enableThinking ? "medium" : "low");
271
+ }
272
+ /**
273
+ * Resolve the concrete model/provider a subagent should use in a mode.
274
+ */
275
+ export function resolveSubagentDispatch(mode, type, provider = "anthropic") {
276
+ const config = getModeConfig(mode);
277
+ const dispatch = config.subagents?.[type];
278
+ const source = dispatch ? "mode" : "fallback";
279
+ const requestedModel = dispatch?.model ?? config.primaryTier;
280
+ const reasoningEffort = dispatch?.reasoningEffort ?? defaultReasoningEffort(config);
281
+ if (isModelTier(requestedModel)) {
282
+ const resolvedProvider = dispatch?.provider ?? provider;
283
+ return {
284
+ mode,
285
+ type,
286
+ provider: resolvedProvider,
287
+ model: getModelForTier(requestedModel, resolvedProvider),
288
+ modelTier: requestedModel,
289
+ reasoningEffort,
290
+ maxTokens: dispatch?.maxTokens,
291
+ temperature: dispatch?.temperature,
292
+ timeoutMs: dispatch?.timeoutMs,
293
+ promptTemplate: dispatch?.promptTemplate,
294
+ source,
295
+ };
296
+ }
297
+ const explicit = splitExplicitModel(requestedModel);
298
+ const resolvedProvider = dispatch?.provider ?? explicit.provider ?? provider;
299
+ return {
300
+ mode,
301
+ type,
302
+ provider: resolvedProvider,
303
+ model: explicit.model,
304
+ reasoningEffort,
305
+ maxTokens: dispatch?.maxTokens,
306
+ temperature: dispatch?.temperature,
307
+ timeoutMs: dispatch?.timeoutMs,
308
+ promptTemplate: dispatch?.promptTemplate,
309
+ source,
310
+ };
311
+ }
161
312
  /**
162
313
  * Get the configuration for a mode.
163
314
  */
@@ -198,6 +349,14 @@ export function getCurrentMode() {
198
349
  export function setCurrentMode(mode) {
199
350
  logger.info("Setting agent mode", { mode });
200
351
  currentMode = mode;
352
+ const config = getModeConfig(mode);
353
+ if (config.visible === false) {
354
+ void recordStagedRolloutSurfaceUsage("hidden_mode_used", {
355
+ surfaceId: `mode:${mode}`,
356
+ surfaceType: "mode",
357
+ owner: config.rolloutOwner,
358
+ });
359
+ }
201
360
  }
202
361
  /**
203
362
  * Parse mode from string (case-insensitive).
@@ -240,8 +399,10 @@ export function formatModeDisplay(mode) {
240
399
  /**
241
400
  * Get all available modes with their descriptions.
242
401
  */
243
- export function getAllModes() {
244
- return Object.entries(MODE_CONFIGS).map(([mode, config]) => ({
402
+ export function getAllModes(options) {
403
+ return Object.entries(MODE_CONFIGS)
404
+ .filter(([, config]) => options?.includeHidden === true || config.visible)
405
+ .map(([mode, config]) => ({
245
406
  mode,
246
407
  config,
247
408
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/agent/modes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,8DAA8D;AAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AA+D3C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkC;IAC1D,6DAA6D;IAC7D,KAAK,EAAE;QACN,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,SAAS,EAAE,CAAC;KACZ;IACD,kDAAkD;IAClD,IAAI,EAAE;QACL,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,uCAAuC;QACpD,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,KAAK;QACzB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,SAAS,EAAE,CAAC;KACZ;IACD,6CAA6C;IAC7C,IAAI,EAAE;QACL,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,KAAK;QACzB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,SAAS,EAAE,EAAE;KACb;IACD,yEAAyE;IACzE,MAAM,EAAE;QACP,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,SAAS,EAAE,CAAC;KACZ;CACD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAoC;IAC7D,+DAA+D;IAC/D,IAAI,EAAE;QACL,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,+BAA+B;KACvC;IACD,2DAA2D;IAC3D,MAAM,EAAE;QACP,SAAS,EAAE,4BAA4B;QACvC,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,sBAAsB;KAC9B;IACD,sDAAsD;IACtD,KAAK,EAAE;QACN,SAAS,EAAE,2BAA2B;QACtC,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,2BAA2B;KACnC;CACD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAe,EACf,WAA8C,WAAW;IAEzD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,4DAA4D;IAC5D,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAe;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAe,EACf,WAA8C,WAAW;IAEzD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,IAAI,WAAW,GAAc,OAAO,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAe;IAC7C,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,WAAW,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;QAChC,OAAO,UAAuB,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;IACxD,IAAI,OAAO,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QACxC,OAAO,OAAoB,CAAC;IAC7B,CAAC;IACD,4DAA4D;IAC5D,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,GAAG,MAAM,CAAC,WAAW,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAQ,MAAM,CAAC,OAAO,CAAC,YAAY,CAA+B,CAAC,GAAG,CACrE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACpB,IAAI;QACJ,MAAM;KACN,CAAC,CACF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,WAAW,CAAC,eAAuB;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;IAEhD,sDAAsD;IACtD,MAAM,iBAAiB,GAAG;QACzB,UAAU;QACV,WAAW;QACX,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,eAAe;KACf,CAAC;IAEF,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG;QACxB,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;KACR,CAAC;IAEF,6DAA6D;IAC7D,MAAM,cAAc,GAAG;QACtB,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;KACR,CAAC;IAEF,2CAA2C;IAC3C,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACnD,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CACrB,CAAC,MAAM,CAAC;IACT,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CACrB,CAAC,MAAM,CAAC;IACT,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7E,mDAAmD;IACnD,IAAI,YAAY,GAAG,WAAW,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,uDAAuD;IACvD,2DAA2D;IAC3D,OAAO,OAAO,CAAC;AAChB,CAAC","sourcesContent":["/**\n * Agent Modes - Different operating modes for the agent.\n *\n * This module implements a tiered model selection system inspired by Amp's\n * smart/rush/free modes. Each mode represents a different balance between\n * response quality, speed, and cost:\n *\n * - **smart**: Uses the highest capability model (opus) for complex reasoning\n * tasks. Enables thinking/reasoning mode with extended context windows.\n * Best for: Architecture decisions, complex refactoring, debugging.\n *\n * - **rush**: Uses mid-tier models (sonnet) for faster responses. Disables\n * thinking mode to reduce latency. Best for: Quick fixes, simple edits,\n * straightforward code generation.\n *\n * - **free**: Uses the most cost-effective models (haiku) with minimal\n * features. Best for: Simple questions, file searches, documentation\n * lookups where speed and cost matter more than depth.\n *\n * - **custom**: User-defined configuration allowing fine-tuned control\n * over model selection and feature toggles.\n *\n * ## Architecture\n *\n * The mode system uses a two-level abstraction:\n * 1. **ModelTier** (opus/sonnet/haiku): Logical capability levels\n * 2. **ModelMapping**: Provider-specific model IDs for each tier\n *\n * This allows the same mode configuration to work across different\n * LLM providers (Anthropic, OpenAI, Google) by mapping tiers to\n * provider-specific model identifiers.\n *\n * ## Usage\n *\n * ```typescript\n * // Set mode based on task\n * setCurrentMode(suggestMode(\"refactor the auth module\")); // → \"smart\"\n *\n * // Get model for current provider\n * const model = getModelForMode(getCurrentMode(), \"anthropic\");\n * ```\n *\n * ## Environment Variables\n *\n * - `MAESTRO_MODE`: Override the default mode at startup\n */\n\nimport { createLogger } from \"../utils/logger.js\";\n\n// Logger scoped to agent modes for debugging mode transitions\nconst logger = createLogger(\"agent:modes\");\n\n/**\n * Available agent modes representing different quality/speed/cost tradeoffs.\n *\n * - \"smart\": Maximum capability, uses opus-class models with reasoning enabled\n * - \"rush\": Balanced speed, uses sonnet-class models without reasoning overhead\n * - \"free\": Cost-optimized, uses haiku-class models for simple operations\n * - \"custom\": User-defined settings for specialized workflows\n */\nexport type AgentMode = \"smart\" | \"rush\" | \"free\" | \"custom\";\n\n/**\n * Model tier representing capability levels that map to provider-specific models.\n *\n * The tier abstraction allows the same configuration to work across providers:\n * - \"opus\": Highest capability (claude-opus, gpt-5.2, gemini-thinking)\n * - \"sonnet\": Balanced capability (claude-sonnet, gpt-4o, gemini-flash)\n * - \"haiku\": Fast/efficient (claude-haiku, gpt-4o-mini, gemini-flash-lite)\n */\nexport type ModelTier = \"opus\" | \"sonnet\" | \"haiku\";\n\n/**\n * Mode configuration that determines model selection and behavior.\n *\n * Each mode has a complete configuration that controls:\n * - Which model tier to use (primary and fallback)\n * - Whether to enable extended reasoning/thinking\n * - Context and retry limits\n * - UI hints for cost/speed display\n */\nexport interface ModeConfig {\n\t/** Display name for the mode */\n\tdisplayName: string;\n\t/** Description of what this mode does */\n\tdescription: string;\n\t/** Primary model tier to use */\n\tprimaryTier: ModelTier;\n\t/** Fallback model tier if primary is unavailable */\n\tfallbackTier: ModelTier;\n\t/** Whether to enable thinking/reasoning */\n\tenableThinking: boolean;\n\t/** Maximum thinking budget (tokens) */\n\tthinkingBudget: number;\n\t/** Whether to use extended context */\n\tuseExtendedContext: boolean;\n\t/** Retry configuration */\n\tmaxRetries: number;\n\t/** Cost multiplier hint (for UI display) */\n\tcostMultiplier: number;\n\t/** Speed hint (1-10, higher is faster) */\n\tspeedHint: number;\n}\n\n/**\n * Model mapping for different providers.\n */\nexport interface ModelMapping {\n\tanthropic: string;\n\topenai?: string;\n\tgoogle?: string;\n}\n\n/**\n * Default mode configurations defining the behavior of each agent mode.\n *\n * These configurations are the canonical source of truth for how each mode\n * behaves. The settings are carefully tuned based on model capabilities\n * and typical use case requirements:\n *\n * - **smart**: Full-featured for complex tasks (16k thinking budget, 3 retries)\n * - **rush**: Optimized for speed (no thinking, 2 retries, smaller context)\n * - **free**: Minimal resource usage (no thinking, 1 retry, no extended context)\n * - **custom**: Balanced defaults that users can override\n */\nexport const MODE_CONFIGS: Record<AgentMode, ModeConfig> = {\n\t// Smart mode: Maximum capability for complex reasoning tasks\n\tsmart: {\n\t\tdisplayName: \"Smart\",\n\t\tdescription: \"Best quality, uses opus for complex tasks\",\n\t\tprimaryTier: \"opus\",\n\t\tfallbackTier: \"sonnet\",\n\t\tenableThinking: true,\n\t\tthinkingBudget: 16000,\n\t\tuseExtendedContext: true,\n\t\tmaxRetries: 3,\n\t\tcostMultiplier: 1.0,\n\t\tspeedHint: 5,\n\t},\n\t// Rush mode: Speed-optimized for quick iterations\n\trush: {\n\t\tdisplayName: \"Rush\",\n\t\tdescription: \"Fast responses, uses sonnet for speed\",\n\t\tprimaryTier: \"sonnet\",\n\t\tfallbackTier: \"haiku\",\n\t\tenableThinking: false,\n\t\tthinkingBudget: 4000,\n\t\tuseExtendedContext: false,\n\t\tmaxRetries: 2,\n\t\tcostMultiplier: 0.5,\n\t\tspeedHint: 8,\n\t},\n\t// Free mode: Cost-optimized for simple tasks\n\tfree: {\n\t\tdisplayName: \"Free\",\n\t\tdescription: \"Most cost-effective, uses haiku\",\n\t\tprimaryTier: \"haiku\",\n\t\tfallbackTier: \"haiku\",\n\t\tenableThinking: false,\n\t\tthinkingBudget: 2000,\n\t\tuseExtendedContext: false,\n\t\tmaxRetries: 1,\n\t\tcostMultiplier: 0.1,\n\t\tspeedHint: 10,\n\t},\n\t// Custom mode: User-configurable defaults (can be overridden at runtime)\n\tcustom: {\n\t\tdisplayName: \"Custom\",\n\t\tdescription: \"User-defined configuration\",\n\t\tprimaryTier: \"sonnet\",\n\t\tfallbackTier: \"haiku\",\n\t\tenableThinking: true,\n\t\tthinkingBudget: 8000,\n\t\tuseExtendedContext: true,\n\t\tmaxRetries: 2,\n\t\tcostMultiplier: 0.7,\n\t\tspeedHint: 6,\n\t},\n};\n\n/**\n * Model mappings by tier for each provider.\n *\n * This lookup table maps abstract capability tiers to concrete model IDs\n * for each supported LLM provider. When adding new providers or updating\n * model versions, update this table to maintain consistent tier behavior.\n *\n * Note: Model IDs include version dates to ensure reproducibility.\n * Update these periodically as providers release improved versions.\n */\nexport const MODEL_BY_TIER: Record<ModelTier, ModelMapping> = {\n\t// Opus tier: Highest capability models with advanced reasoning\n\topus: {\n\t\tanthropic: \"claude-opus-4-6\",\n\t\topenai: \"gpt-5.2\",\n\t\tgoogle: \"gemini-2.0-flash-thinking-exp\",\n\t},\n\t// Sonnet tier: Balanced performance models for general use\n\tsonnet: {\n\t\tanthropic: \"claude-sonnet-4-5-20250929\",\n\t\topenai: \"gpt-4o\",\n\t\tgoogle: \"gemini-2.0-flash-exp\",\n\t},\n\t// Haiku tier: Fast, efficient models for simple tasks\n\thaiku: {\n\t\tanthropic: \"claude-haiku-4-5-20251001\",\n\t\topenai: \"gpt-4o-mini\",\n\t\tgoogle: \"gemini-2.0-flash-lite-exp\",\n\t},\n};\n\n/**\n * Get the model ID for a given tier and provider.\n *\n * @param tier - The capability tier (opus/sonnet/haiku)\n * @param provider - The LLM provider (defaults to anthropic)\n * @returns The concrete model ID string for the provider\n *\n * Falls back to the Anthropic model if the requested provider\n * doesn't have a mapping for the tier.\n */\nexport function getModelForTier(\n\ttier: ModelTier,\n\tprovider: \"anthropic\" | \"openai\" | \"google\" = \"anthropic\",\n): string {\n\tconst mapping = MODEL_BY_TIER[tier];\n\t// Fall back to Anthropic if provider doesn't have a mapping\n\treturn mapping[provider] ?? mapping.anthropic;\n}\n\n/**\n * Get the configuration for a mode.\n */\nexport function getModeConfig(mode: AgentMode): ModeConfig {\n\treturn MODE_CONFIGS[mode];\n}\n\n/**\n * Get the recommended model for a mode and provider.\n */\nexport function getModelForMode(\n\tmode: AgentMode,\n\tprovider: \"anthropic\" | \"openai\" | \"google\" = \"anthropic\",\n): string {\n\tconst config = getModeConfig(mode);\n\treturn getModelForTier(config.primaryTier, provider);\n}\n\n/**\n * Current agent mode state (module-level singleton).\n *\n * This tracks the active mode for the current process. In multi-session\n * scenarios, each session should manage its own mode state rather than\n * relying on this global.\n */\nlet currentMode: AgentMode = \"smart\";\n\n/**\n * Get the current agent mode.\n *\n * @returns The currently active agent mode\n */\nexport function getCurrentMode(): AgentMode {\n\treturn currentMode;\n}\n\n/**\n * Set the current agent mode.\n *\n * This updates the global mode state and logs the transition for debugging.\n * Mode changes take effect immediately for subsequent operations.\n *\n * @param mode - The new mode to activate\n */\nexport function setCurrentMode(mode: AgentMode): void {\n\tlogger.info(\"Setting agent mode\", { mode });\n\tcurrentMode = mode;\n}\n\n/**\n * Parse mode from string (case-insensitive).\n *\n * Validates user input and converts to a valid AgentMode type.\n *\n * @param modeStr - User-provided mode string (e.g., \"Smart\", \"RUSH\")\n * @returns The parsed AgentMode, or null if invalid\n */\nexport function parseMode(modeStr: string): AgentMode | null {\n\tconst normalized = modeStr.toLowerCase().trim();\n\tif (normalized in MODE_CONFIGS) {\n\t\treturn normalized as AgentMode;\n\t}\n\treturn null;\n}\n\n/**\n * Get mode from environment variable.\n *\n * Reads MAESTRO_MODE from environment and validates it.\n * Defaults to \"smart\" if not set or invalid.\n *\n * @returns The configured mode or \"smart\" as default\n */\nexport function getModeFromEnv(): AgentMode {\n\tconst envMode = process.env.MAESTRO_MODE?.toLowerCase();\n\tif (envMode && envMode in MODE_CONFIGS) {\n\t\treturn envMode as AgentMode;\n\t}\n\t// Default to smart mode for best quality when not specified\n\treturn \"smart\";\n}\n\n/**\n * Format mode for display.\n */\nexport function formatModeDisplay(mode: AgentMode): string {\n\tconst config = getModeConfig(mode);\n\treturn `${config.displayName} - ${config.description}`;\n}\n\n/**\n * Get all available modes with their descriptions.\n */\nexport function getAllModes(): Array<{ mode: AgentMode; config: ModeConfig }> {\n\treturn (Object.entries(MODE_CONFIGS) as [AgentMode, ModeConfig][]).map(\n\t\t([mode, config]) => ({\n\t\t\tmode,\n\t\t\tconfig,\n\t\t}),\n\t);\n}\n\n/**\n * Suggest a mode based on task complexity heuristics.\n *\n * This function analyzes the task description to recommend an appropriate\n * mode based on keyword matching. It uses a scoring system to determine\n * task complexity:\n *\n * **Scoring Algorithm:**\n * 1. Count matches against complex/simple/info indicator word lists\n * 2. Compare scores to determine dominant category\n * 3. Return mode matching the highest score\n *\n * **Keyword Categories:**\n * - Complex (→ smart): refactor, architect, design, implement, build...\n * - Simple (→ rush): fix, typo, rename, update, small changes...\n * - Info (→ free): what, where, explain, find, search queries...\n *\n * @param taskDescription - The user's task description to analyze\n * @returns The recommended AgentMode based on task complexity\n *\n * @example\n * suggestMode(\"refactor the authentication module\") // → \"smart\"\n * suggestMode(\"fix typo in README\") // → \"rush\"\n * suggestMode(\"what does this function do?\") // → \"free\"\n */\nexport function suggestMode(taskDescription: string): AgentMode {\n\tconst lowerTask = taskDescription.toLowerCase();\n\n\t// Complex tasks → smart mode (require deep reasoning)\n\tconst complexIndicators = [\n\t\t\"refactor\",\n\t\t\"architect\",\n\t\t\"design\",\n\t\t\"implement\",\n\t\t\"create\",\n\t\t\"build\",\n\t\t\"complex\",\n\t\t\"system\",\n\t\t\"full\",\n\t\t\"entire\",\n\t\t\"comprehensive\",\n\t];\n\n\t// Simple tasks → rush mode (straightforward modifications)\n\tconst simpleIndicators = [\n\t\t\"fix\",\n\t\t\"typo\",\n\t\t\"simple\",\n\t\t\"quick\",\n\t\t\"small\",\n\t\t\"minor\",\n\t\t\"rename\",\n\t\t\"update\",\n\t\t\"change\",\n\t];\n\n\t// Information tasks → free mode (queries, not modifications)\n\tconst infoIndicators = [\n\t\t\"what\",\n\t\t\"where\",\n\t\t\"explain\",\n\t\t\"describe\",\n\t\t\"list\",\n\t\t\"show\",\n\t\t\"find\",\n\t\t\"search\",\n\t];\n\n\t// Calculate match scores for each category\n\tconst complexScore = complexIndicators.filter((i) =>\n\t\tlowerTask.includes(i),\n\t).length;\n\tconst simpleScore = simpleIndicators.filter((i) =>\n\t\tlowerTask.includes(i),\n\t).length;\n\tconst infoScore = infoIndicators.filter((i) => lowerTask.includes(i)).length;\n\n\t// Determine mode based on highest scoring category\n\tif (complexScore > simpleScore && complexScore > infoScore) {\n\t\treturn \"smart\";\n\t}\n\tif (infoScore > simpleScore) {\n\t\treturn \"free\";\n\t}\n\tif (simpleScore > 0) {\n\t\treturn \"rush\";\n\t}\n\n\t// Default to smart mode when no clear indicators found\n\t// (better to over-estimate complexity than under-estimate)\n\treturn \"smart\";\n}\n"]}
1
+ {"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/agent/modes.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Modes - Different operating modes for the agent.\n *\n * This module implements a tiered model selection system inspired by Amp's\n * smart/rush/free modes. Each mode represents a different balance between\n * response quality, speed, and cost:\n *\n * - **smart**: Uses the highest capability model (opus) for complex reasoning\n * tasks. Enables thinking/reasoning mode with extended context windows.\n * Best for: Architecture decisions, complex refactoring, debugging.\n *\n * - **rush**: Uses mid-tier models (sonnet) for faster responses. Disables\n * thinking mode to reduce latency. Best for: Quick fixes, simple edits,\n * straightforward code generation.\n *\n * - **free**: Uses the most cost-effective models (haiku) with minimal\n * features. Best for: Simple questions, file searches, documentation\n * lookups where speed and cost matter more than depth.\n *\n * - **custom**: User-defined configuration allowing fine-tuned control\n * over model selection and feature toggles.\n *\n * ## Architecture\n *\n * The mode system uses a two-level abstraction:\n * 1. **ModelTier** (opus/sonnet/haiku): Logical capability levels\n * 2. **ModelMapping**: Provider-specific model IDs for each tier\n *\n * This allows the same mode configuration to work across different\n * LLM providers (Anthropic, OpenAI, Google) by mapping tiers to\n * provider-specific model identifiers.\n *\n * ## Usage\n *\n * ```typescript\n * // Set mode based on task\n * setCurrentMode(suggestMode(\"refactor the auth module\")); // → \"smart\"\n *\n * // Get model for current provider\n * const model = getModelForMode(getCurrentMode(), \"anthropic\");\n * ```\n *\n * ## Environment Variables\n *\n * - `MAESTRO_MODE`: Override the default mode at startup\n */\n\nimport { recordStagedRolloutSurfaceUsage } from \"../telemetry.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport type { SubagentType } from \"./subagent-specs.js\";\n\n// Logger scoped to agent modes for debugging mode transitions\nconst logger = createLogger(\"agent:modes\");\n\n/**\n * Available agent modes representing different quality/speed/cost tradeoffs.\n *\n * - \"smart\": Maximum capability, uses opus-class models with reasoning enabled\n * - \"rush\": Balanced speed, uses sonnet-class models without reasoning overhead\n * - \"free\": Cost-optimized, uses haiku-class models for simple operations\n * - \"custom\": User-defined settings for specialized workflows\n */\nexport type AgentMode =\n\t| \"smart\"\n\t| \"rush\"\n\t| \"free\"\n\t| \"custom\"\n\t| \"frontier\"\n\t| \"replay\";\n\n/**\n * Model tier representing capability levels that map to provider-specific models.\n *\n * The tier abstraction allows the same configuration to work across providers:\n * - \"opus\": Highest capability (claude-opus, gpt-5.2, gemini-thinking)\n * - \"sonnet\": Balanced capability (claude-sonnet, gpt-4o, gemini-flash)\n * - \"haiku\": Fast/efficient (claude-haiku, gpt-4o-mini, gemini-flash-lite)\n */\nexport type ModelTier = \"opus\" | \"sonnet\" | \"haiku\";\n\n/** Supported model providers for tier and subagent dispatch. */\nexport type ModelProvider = \"anthropic\" | \"openai\" | \"openai-codex\" | \"google\";\n\n/** Reasoning budget hint passed to subagents that support it. */\nexport type ReasoningEffort = \"low\" | \"medium\" | \"high\" | \"xhigh\";\n\n/** Where the resolved subagent dispatch came from. */\nexport type DispatchSource = \"mode\" | \"fallback\";\n\n/**\n * Per-subagent model routing override.\n *\n * `model` can be a logical model tier (`opus`, `sonnet`, `haiku`) or an\n * explicit model ID. Explicit model IDs may be provider-prefixed, for example\n * `openai-codex/gpt-5.5`.\n */\nexport interface SubagentDispatch {\n\tmodel: ModelTier | string;\n\tprovider?: ModelProvider;\n\treasoningEffort?: ReasoningEffort;\n\tmaxTokens?: number;\n\ttemperature?: number;\n\ttimeoutMs?: number;\n\tpromptTemplate?: string;\n}\n\n/** Fully resolved model routing for one subagent invocation. */\nexport interface ResolvedSubagentDispatch {\n\tmode: AgentMode;\n\ttype: SubagentType;\n\tprovider: ModelProvider;\n\tmodel: string;\n\tmodelTier?: ModelTier;\n\treasoningEffort: ReasoningEffort;\n\tmaxTokens?: number;\n\ttemperature?: number;\n\ttimeoutMs?: number;\n\tpromptTemplate?: string;\n\tsource: DispatchSource;\n}\n\n/**\n * Mode configuration that determines model selection and behavior.\n *\n * Each mode has a complete configuration that controls:\n * - Which model tier to use (primary and fallback)\n * - Whether to enable extended reasoning/thinking\n * - Context and retry limits\n * - UI hints for cost/speed display\n */\nexport interface ModeConfig {\n\t/** Display name for the mode */\n\tdisplayName: string;\n\t/** Description of what this mode does */\n\tdescription: string;\n\t/** Primary model tier to use */\n\tprimaryTier: ModelTier;\n\t/** Fallback model tier if primary is unavailable */\n\tfallbackTier: ModelTier;\n\t/** Whether to enable thinking/reasoning */\n\tenableThinking: boolean;\n\t/** Default reasoning effort for mode-level and fallback subagent routing. */\n\treasoningEffort?: ReasoningEffort;\n\t/** Maximum thinking budget (tokens) */\n\tthinkingBudget: number;\n\t/** Whether to use extended context */\n\tuseExtendedContext: boolean;\n\t/** Retry configuration */\n\tmaxRetries: number;\n\t/** Cost multiplier hint (for UI display) */\n\tcostMultiplier: number;\n\t/** Speed hint (1-10, higher is faster) */\n\tspeedHint: number;\n\t/** Whether this mode is shown in default user-facing mode lists. */\n\tvisible: boolean;\n\t/** Optional dispatch table for mode-specific subagent routing. */\n\tsubagents?: Partial<Record<SubagentType, SubagentDispatch>>;\n\t/** Owner responsible for promotion or removal when hidden. */\n\trolloutOwner?: string;\n}\n\n/**\n * Model mapping for different providers.\n */\nexport interface ModelMapping {\n\tanthropic: string;\n\topenai?: string;\n\t\"openai-codex\"?: string;\n\tgoogle?: string;\n}\n\nconst PROVIDERS: ModelProvider[] = [\n\t\"anthropic\",\n\t\"openai\",\n\t\"openai-codex\",\n\t\"google\",\n];\n\n/**\n * Default mode configurations defining the behavior of each agent mode.\n *\n * These configurations are the canonical source of truth for how each mode\n * behaves. The settings are carefully tuned based on model capabilities\n * and typical use case requirements:\n *\n * - **smart**: Full-featured for complex tasks (16k thinking budget, 3 retries)\n * - **rush**: Optimized for speed (no thinking, 2 retries, smaller context)\n * - **free**: Minimal resource usage (no thinking, 1 retry, no extended context)\n * - **custom**: Balanced defaults that users can override\n */\nexport const MODE_CONFIGS: Record<AgentMode, ModeConfig> = {\n\t// Smart mode: Maximum capability for complex reasoning tasks\n\tsmart: {\n\t\tdisplayName: \"Smart\",\n\t\tdescription: \"Best quality, uses opus for complex tasks\",\n\t\tprimaryTier: \"opus\",\n\t\tfallbackTier: \"sonnet\",\n\t\tenableThinking: true,\n\t\treasoningEffort: \"medium\",\n\t\tthinkingBudget: 16000,\n\t\tuseExtendedContext: true,\n\t\tmaxRetries: 3,\n\t\tcostMultiplier: 1.0,\n\t\tspeedHint: 5,\n\t\tvisible: true,\n\t\tsubagents: {\n\t\t\texplorer: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tplanner: { model: \"opus\", reasoningEffort: \"high\" },\n\t\t\tcoder: { model: \"openai-codex/gpt-5.5\", reasoningEffort: \"medium\" },\n\t\t\treviewer: { model: \"sonnet\", reasoningEffort: \"medium\" },\n\t\t\tresearcher: { model: \"sonnet\", reasoningEffort: \"medium\" },\n\t\t\tminimal: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t},\n\t},\n\t// Rush mode: Speed-optimized for quick iterations\n\trush: {\n\t\tdisplayName: \"Rush\",\n\t\tdescription: \"Fast responses, uses sonnet for speed\",\n\t\tprimaryTier: \"sonnet\",\n\t\tfallbackTier: \"haiku\",\n\t\tenableThinking: false,\n\t\treasoningEffort: \"low\",\n\t\tthinkingBudget: 4000,\n\t\tuseExtendedContext: false,\n\t\tmaxRetries: 2,\n\t\tcostMultiplier: 0.5,\n\t\tspeedHint: 8,\n\t\tvisible: true,\n\t\tsubagents: {\n\t\t\texplorer: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tplanner: { model: \"sonnet\", reasoningEffort: \"low\" },\n\t\t\tcoder: { model: \"sonnet\", reasoningEffort: \"low\" },\n\t\t\treviewer: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tresearcher: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tminimal: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t},\n\t},\n\t// Free mode: Cost-optimized for simple tasks\n\tfree: {\n\t\tdisplayName: \"Free\",\n\t\tdescription: \"Most cost-effective, uses haiku\",\n\t\tprimaryTier: \"haiku\",\n\t\tfallbackTier: \"haiku\",\n\t\tenableThinking: false,\n\t\treasoningEffort: \"low\",\n\t\tthinkingBudget: 2000,\n\t\tuseExtendedContext: false,\n\t\tmaxRetries: 1,\n\t\tcostMultiplier: 0.1,\n\t\tspeedHint: 10,\n\t\tvisible: true,\n\t\tsubagents: {\n\t\t\texplorer: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tplanner: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tcoder: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\treviewer: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tresearcher: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tminimal: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t},\n\t},\n\t// Custom mode: User-configurable defaults (can be overridden at runtime)\n\tcustom: {\n\t\tdisplayName: \"Custom\",\n\t\tdescription: \"User-defined configuration\",\n\t\tprimaryTier: \"sonnet\",\n\t\tfallbackTier: \"haiku\",\n\t\tenableThinking: true,\n\t\treasoningEffort: \"medium\",\n\t\tthinkingBudget: 8000,\n\t\tuseExtendedContext: true,\n\t\tmaxRetries: 2,\n\t\tcostMultiplier: 0.7,\n\t\tspeedHint: 6,\n\t\tvisible: true,\n\t},\n\tfrontier: {\n\t\tdisplayName: \"Frontier\",\n\t\tdescription: \"Experimental high-capability orchestration mode\",\n\t\tprimaryTier: \"opus\",\n\t\tfallbackTier: \"sonnet\",\n\t\tenableThinking: true,\n\t\treasoningEffort: \"high\",\n\t\tthinkingBudget: 20000,\n\t\tuseExtendedContext: true,\n\t\tmaxRetries: 3,\n\t\tcostMultiplier: 1.25,\n\t\tspeedHint: 4,\n\t\tvisible: false,\n\t\tsubagents: {\n\t\t\texplorer: { model: \"sonnet\", reasoningEffort: \"medium\" },\n\t\t\tplanner: { model: \"opus\", reasoningEffort: \"xhigh\" },\n\t\t\tcoder: { model: \"openai-codex/gpt-5.5\", reasoningEffort: \"high\" },\n\t\t\treviewer: { model: \"openai-codex/gpt-5.5\", reasoningEffort: \"medium\" },\n\t\t\tresearcher: { model: \"sonnet\", reasoningEffort: \"medium\" },\n\t\t\tminimal: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t},\n\t\trolloutOwner: \"agent-runtime\",\n\t},\n\treplay: {\n\t\tdisplayName: \"Replay\",\n\t\tdescription: \"Deterministic scripted scenario replay\",\n\t\tprimaryTier: \"haiku\",\n\t\tfallbackTier: \"haiku\",\n\t\tenableThinking: false,\n\t\treasoningEffort: \"low\",\n\t\tthinkingBudget: 0,\n\t\tuseExtendedContext: false,\n\t\tmaxRetries: 0,\n\t\tcostMultiplier: 0,\n\t\tspeedHint: 10,\n\t\tvisible: false,\n\t\tsubagents: {\n\t\t\texplorer: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tplanner: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tcoder: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\treviewer: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tresearcher: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t\tminimal: { model: \"haiku\", reasoningEffort: \"low\" },\n\t\t},\n\t\trolloutOwner: \"agent-evals\",\n\t},\n};\n\n/**\n * Model mappings by tier for each provider.\n *\n * This lookup table maps abstract capability tiers to concrete model IDs\n * for each supported LLM provider. When adding new providers or updating\n * model versions, update this table to maintain consistent tier behavior.\n *\n * Note: Model IDs include version dates to ensure reproducibility.\n * Update these periodically as providers release improved versions.\n */\nexport const MODEL_BY_TIER: Record<ModelTier, ModelMapping> = {\n\t// Opus tier: Highest capability models with advanced reasoning\n\topus: {\n\t\tanthropic: \"claude-opus-4-6\",\n\t\topenai: \"gpt-5.2\",\n\t\t\"openai-codex\": \"gpt-5.5\",\n\t\tgoogle: \"gemini-2.0-flash-thinking-exp\",\n\t},\n\t// Sonnet tier: Balanced performance models for general use\n\tsonnet: {\n\t\tanthropic: \"claude-sonnet-4-5-20250929\",\n\t\topenai: \"gpt-4o\",\n\t\t\"openai-codex\": \"gpt-5.4\",\n\t\tgoogle: \"gemini-2.0-flash-exp\",\n\t},\n\t// Haiku tier: Fast, efficient models for simple tasks\n\thaiku: {\n\t\tanthropic: \"claude-haiku-4-5-20251001\",\n\t\topenai: \"gpt-4o-mini\",\n\t\t\"openai-codex\": \"gpt-5.4-mini\",\n\t\tgoogle: \"gemini-2.0-flash-lite-exp\",\n\t},\n};\n\n/**\n * Get the model ID for a given tier and provider.\n *\n * @param tier - The capability tier (opus/sonnet/haiku)\n * @param provider - The LLM provider (defaults to anthropic)\n * @returns The concrete model ID string for the provider\n *\n * Falls back to the Anthropic model if the requested provider\n * doesn't have a mapping for the tier.\n */\nexport function getModelForTier(\n\ttier: ModelTier,\n\tprovider: ModelProvider = \"anthropic\",\n): string {\n\tconst mapping = MODEL_BY_TIER[tier];\n\t// Fall back to Anthropic if provider doesn't have a mapping\n\treturn mapping[provider] ?? mapping.anthropic;\n}\n\nfunction isModelTier(model: string): model is ModelTier {\n\treturn model in MODEL_BY_TIER;\n}\n\nfunction isModelProvider(provider: string): provider is ModelProvider {\n\treturn PROVIDERS.includes(provider as ModelProvider);\n}\n\nfunction splitExplicitModel(model: string): {\n\tprovider?: ModelProvider;\n\tmodel: string;\n} {\n\tconst slashIndex = model.indexOf(\"/\");\n\tif (slashIndex <= 0) {\n\t\treturn { model };\n\t}\n\n\tconst provider = model.slice(0, slashIndex);\n\tif (!isModelProvider(provider)) {\n\t\treturn { model };\n\t}\n\n\treturn {\n\t\tprovider,\n\t\tmodel: model.slice(slashIndex + 1),\n\t};\n}\n\nfunction defaultReasoningEffort(config: ModeConfig): ReasoningEffort {\n\treturn config.reasoningEffort ?? (config.enableThinking ? \"medium\" : \"low\");\n}\n\n/**\n * Resolve the concrete model/provider a subagent should use in a mode.\n */\nexport function resolveSubagentDispatch(\n\tmode: AgentMode,\n\ttype: SubagentType,\n\tprovider: ModelProvider = \"anthropic\",\n): ResolvedSubagentDispatch {\n\tconst config = getModeConfig(mode);\n\tconst dispatch = config.subagents?.[type];\n\tconst source: DispatchSource = dispatch ? \"mode\" : \"fallback\";\n\tconst requestedModel = dispatch?.model ?? config.primaryTier;\n\tconst reasoningEffort =\n\t\tdispatch?.reasoningEffort ?? defaultReasoningEffort(config);\n\n\tif (isModelTier(requestedModel)) {\n\t\tconst resolvedProvider = dispatch?.provider ?? provider;\n\t\treturn {\n\t\t\tmode,\n\t\t\ttype,\n\t\t\tprovider: resolvedProvider,\n\t\t\tmodel: getModelForTier(requestedModel, resolvedProvider),\n\t\t\tmodelTier: requestedModel,\n\t\t\treasoningEffort,\n\t\t\tmaxTokens: dispatch?.maxTokens,\n\t\t\ttemperature: dispatch?.temperature,\n\t\t\ttimeoutMs: dispatch?.timeoutMs,\n\t\t\tpromptTemplate: dispatch?.promptTemplate,\n\t\t\tsource,\n\t\t};\n\t}\n\n\tconst explicit = splitExplicitModel(requestedModel);\n\tconst resolvedProvider = dispatch?.provider ?? explicit.provider ?? provider;\n\treturn {\n\t\tmode,\n\t\ttype,\n\t\tprovider: resolvedProvider,\n\t\tmodel: explicit.model,\n\t\treasoningEffort,\n\t\tmaxTokens: dispatch?.maxTokens,\n\t\ttemperature: dispatch?.temperature,\n\t\ttimeoutMs: dispatch?.timeoutMs,\n\t\tpromptTemplate: dispatch?.promptTemplate,\n\t\tsource,\n\t};\n}\n\n/**\n * Get the configuration for a mode.\n */\nexport function getModeConfig(mode: AgentMode): ModeConfig {\n\treturn MODE_CONFIGS[mode];\n}\n\n/**\n * Get the recommended model for a mode and provider.\n */\nexport function getModelForMode(\n\tmode: AgentMode,\n\tprovider: ModelProvider = \"anthropic\",\n): string {\n\tconst config = getModeConfig(mode);\n\treturn getModelForTier(config.primaryTier, provider);\n}\n\n/**\n * Current agent mode state (module-level singleton).\n *\n * This tracks the active mode for the current process. In multi-session\n * scenarios, each session should manage its own mode state rather than\n * relying on this global.\n */\nlet currentMode: AgentMode = \"smart\";\n\n/**\n * Get the current agent mode.\n *\n * @returns The currently active agent mode\n */\nexport function getCurrentMode(): AgentMode {\n\treturn currentMode;\n}\n\n/**\n * Set the current agent mode.\n *\n * This updates the global mode state and logs the transition for debugging.\n * Mode changes take effect immediately for subsequent operations.\n *\n * @param mode - The new mode to activate\n */\nexport function setCurrentMode(mode: AgentMode): void {\n\tlogger.info(\"Setting agent mode\", { mode });\n\tcurrentMode = mode;\n\tconst config = getModeConfig(mode);\n\tif (config.visible === false) {\n\t\tvoid recordStagedRolloutSurfaceUsage(\"hidden_mode_used\", {\n\t\t\tsurfaceId: `mode:${mode}`,\n\t\t\tsurfaceType: \"mode\",\n\t\t\towner: config.rolloutOwner,\n\t\t});\n\t}\n}\n\n/**\n * Parse mode from string (case-insensitive).\n *\n * Validates user input and converts to a valid AgentMode type.\n *\n * @param modeStr - User-provided mode string (e.g., \"Smart\", \"RUSH\")\n * @returns The parsed AgentMode, or null if invalid\n */\nexport function parseMode(modeStr: string): AgentMode | null {\n\tconst normalized = modeStr.toLowerCase().trim();\n\tif (normalized in MODE_CONFIGS) {\n\t\treturn normalized as AgentMode;\n\t}\n\treturn null;\n}\n\n/**\n * Get mode from environment variable.\n *\n * Reads MAESTRO_MODE from environment and validates it.\n * Defaults to \"smart\" if not set or invalid.\n *\n * @returns The configured mode or \"smart\" as default\n */\nexport function getModeFromEnv(): AgentMode {\n\tconst envMode = process.env.MAESTRO_MODE?.toLowerCase();\n\tif (envMode && envMode in MODE_CONFIGS) {\n\t\treturn envMode as AgentMode;\n\t}\n\t// Default to smart mode for best quality when not specified\n\treturn \"smart\";\n}\n\n/**\n * Format mode for display.\n */\nexport function formatModeDisplay(mode: AgentMode): string {\n\tconst config = getModeConfig(mode);\n\treturn `${config.displayName} - ${config.description}`;\n}\n\n/**\n * Get all available modes with their descriptions.\n */\nexport function getAllModes(options?: {\n\tincludeHidden?: boolean;\n}): Array<{ mode: AgentMode; config: ModeConfig }> {\n\treturn (Object.entries(MODE_CONFIGS) as [AgentMode, ModeConfig][])\n\t\t.filter(([, config]) => options?.includeHidden === true || config.visible)\n\t\t.map(([mode, config]) => ({\n\t\t\tmode,\n\t\t\tconfig,\n\t\t}));\n}\n\n/**\n * Suggest a mode based on task complexity heuristics.\n *\n * This function analyzes the task description to recommend an appropriate\n * mode based on keyword matching. It uses a scoring system to determine\n * task complexity:\n *\n * **Scoring Algorithm:**\n * 1. Count matches against complex/simple/info indicator word lists\n * 2. Compare scores to determine dominant category\n * 3. Return mode matching the highest score\n *\n * **Keyword Categories:**\n * - Complex (→ smart): refactor, architect, design, implement, build...\n * - Simple (→ rush): fix, typo, rename, update, small changes...\n * - Info (→ free): what, where, explain, find, search queries...\n *\n * @param taskDescription - The user's task description to analyze\n * @returns The recommended AgentMode based on task complexity\n *\n * @example\n * suggestMode(\"refactor the authentication module\") // → \"smart\"\n * suggestMode(\"fix typo in README\") // → \"rush\"\n * suggestMode(\"what does this function do?\") // → \"free\"\n */\nexport function suggestMode(taskDescription: string): AgentMode {\n\tconst lowerTask = taskDescription.toLowerCase();\n\n\t// Complex tasks → smart mode (require deep reasoning)\n\tconst complexIndicators = [\n\t\t\"refactor\",\n\t\t\"architect\",\n\t\t\"design\",\n\t\t\"implement\",\n\t\t\"create\",\n\t\t\"build\",\n\t\t\"complex\",\n\t\t\"system\",\n\t\t\"full\",\n\t\t\"entire\",\n\t\t\"comprehensive\",\n\t];\n\n\t// Simple tasks → rush mode (straightforward modifications)\n\tconst simpleIndicators = [\n\t\t\"fix\",\n\t\t\"typo\",\n\t\t\"simple\",\n\t\t\"quick\",\n\t\t\"small\",\n\t\t\"minor\",\n\t\t\"rename\",\n\t\t\"update\",\n\t\t\"change\",\n\t];\n\n\t// Information tasks → free mode (queries, not modifications)\n\tconst infoIndicators = [\n\t\t\"what\",\n\t\t\"where\",\n\t\t\"explain\",\n\t\t\"describe\",\n\t\t\"list\",\n\t\t\"show\",\n\t\t\"find\",\n\t\t\"search\",\n\t];\n\n\t// Calculate match scores for each category\n\tconst complexScore = complexIndicators.filter((i) =>\n\t\tlowerTask.includes(i),\n\t).length;\n\tconst simpleScore = simpleIndicators.filter((i) =>\n\t\tlowerTask.includes(i),\n\t).length;\n\tconst infoScore = infoIndicators.filter((i) => lowerTask.includes(i)).length;\n\n\t// Determine mode based on highest scoring category\n\tif (complexScore > simpleScore && complexScore > infoScore) {\n\t\treturn \"smart\";\n\t}\n\tif (infoScore > simpleScore) {\n\t\treturn \"free\";\n\t}\n\tif (simpleScore > 0) {\n\t\treturn \"rush\";\n\t}\n\n\t// Default to smart mode when no clear indicators found\n\t// (better to over-estimate complexity than under-estimate)\n\treturn \"smart\";\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-recovery.d.ts","sourceRoot":"","sources":["../../src/agent/prompt-recovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EACX,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE5B,MAAM,iBAAiB,CAAC;AAUzB,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAa/D,MAAM,WAAW,uBAAuB;IACvC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACxD,yBAAyB,CAAC,EAAE,CAC3B,MAAM,EAAE,uBAAuB,KAC3B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,4BAA4B;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,wBAAwB,CAAC;IACzC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,mBAAmB,CAAC,EAAE,CACrB,iBAAiB,EAAE,UAAU,EAAE,KAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE;IACT,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;EAYD;AAwUD,wBAAsB,oBAAoB,CACzC,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,IAAI,CACf,uBAAuB,EACvB,qBAAqB,GAAG,sBAAsB,GAAG,yBAAyB,CAC1E,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B,GACC,OAAO,CAAC,uBAAuB,CAAC,CA+GlC;AAmED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,IAAI,CAAC,CA4Mf"}
1
+ {"version":3,"file":"prompt-recovery.d.ts","sourceRoot":"","sources":["../../src/agent/prompt-recovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EACX,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE5B,MAAM,iBAAiB,CAAC;AAUzB,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAa/D,MAAM,WAAW,uBAAuB;IACvC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACxD,yBAAyB,CAAC,EAAE,CAC3B,MAAM,EAAE,uBAAuB,KAC3B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,4BAA4B;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,wBAAwB,CAAC;IACzC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,mBAAmB,CAAC,EAAE,CACrB,iBAAiB,EAAE,UAAU,EAAE,KAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE;IACT,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;EAYD;AAoUD,wBAAsB,oBAAoB,CACzC,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,IAAI,CACf,uBAAuB,EACvB,qBAAqB,GAAG,sBAAsB,GAAG,yBAAyB,CAC1E,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B,GACC,OAAO,CAAC,uBAAuB,CAAC,CA+GlC;AAmED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,IAAI,CAAC,CA4Mf"}
@@ -1,3 +1,4 @@
1
+ import { isAbortError } from "../utils/abort-error.js";
1
2
  import { isContextOverflow as isOverflowError } from "../utils/context-overflow.js";
2
3
  import { createLogger } from "../utils/logger.js";
3
4
  import * as compactionHooks from "./compaction-hooks.js";
@@ -58,9 +59,6 @@ function getErrorMessage(error) {
58
59
  }
59
60
  return undefined;
60
61
  }
61
- function isAbortError(error) {
62
- return error instanceof Error && error.name === "AbortError";
63
- }
64
62
  function getTaskBudgetPreCompactionTokens(params) {
65
63
  const lastAssistant = getRecoverableOverflowAssistantMessage(params.agent) ??
66
64
  getLastAssistantMessage(params.newMessages);