@evalops/maestro 0.10.49 → 0.10.51

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 (422) hide show
  1. package/dist/agent/agent-outcome.d.ts +54 -0
  2. package/dist/agent/agent-outcome.d.ts.map +1 -0
  3. package/dist/agent/agent-outcome.js +142 -0
  4. package/dist/agent/agent-outcome.js.map +1 -0
  5. package/dist/agent/agent-resume.d.ts.map +1 -1
  6. package/dist/agent/agent-resume.js +3 -3
  7. package/dist/agent/agent-resume.js.map +1 -1
  8. package/dist/agent/agent-run-summary.d.ts +37 -0
  9. package/dist/agent/agent-run-summary.d.ts.map +1 -0
  10. package/dist/agent/agent-run-summary.js +15 -0
  11. package/dist/agent/agent-run-summary.js.map +1 -0
  12. package/dist/agent/agent-work-board.d.ts +82 -0
  13. package/dist/agent/agent-work-board.d.ts.map +1 -0
  14. package/dist/agent/agent-work-board.js +312 -0
  15. package/dist/agent/agent-work-board.js.map +1 -0
  16. package/dist/agent/auto-compaction.d.ts +7 -2
  17. package/dist/agent/auto-compaction.d.ts.map +1 -1
  18. package/dist/agent/auto-compaction.js +23 -10
  19. package/dist/agent/auto-compaction.js.map +1 -1
  20. package/dist/agent/mission-artifacts.d.ts +62 -0
  21. package/dist/agent/mission-artifacts.d.ts.map +1 -0
  22. package/dist/agent/mission-artifacts.js +438 -0
  23. package/dist/agent/mission-artifacts.js.map +1 -0
  24. package/dist/agent/mission-manifest.d.ts +139 -3
  25. package/dist/agent/mission-manifest.d.ts.map +1 -1
  26. package/dist/agent/mission-manifest.js +549 -3
  27. package/dist/agent/mission-manifest.js.map +1 -1
  28. package/dist/agent/mission-store.d.ts +80 -0
  29. package/dist/agent/mission-store.d.ts.map +1 -0
  30. package/dist/agent/mission-store.js +603 -0
  31. package/dist/agent/mission-store.js.map +1 -0
  32. package/dist/agent/modes.d.ts +2 -2
  33. package/dist/agent/modes.d.ts.map +1 -1
  34. package/dist/agent/modes.js +10 -3
  35. package/dist/agent/modes.js.map +1 -1
  36. package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
  37. package/dist/agent/providers/codex-app-server.js +1 -3
  38. package/dist/agent/providers/codex-app-server.js.map +1 -1
  39. package/dist/agent/providers/google-gemini-cli.js +203 -107
  40. package/dist/agent/providers/google.js +100 -41
  41. package/dist/agent/providers/scripted.d.ts.map +1 -1
  42. package/dist/agent/providers/scripted.js +1 -3
  43. package/dist/agent/providers/scripted.js.map +1 -1
  44. package/dist/agent/providers/validation.d.ts.map +1 -1
  45. package/dist/agent/providers/validation.js +1 -3
  46. package/dist/agent/providers/validation.js.map +1 -1
  47. package/dist/agent/providers/vertex.js +203 -107
  48. package/dist/agent/snapshot-store.d.ts +32 -0
  49. package/dist/agent/snapshot-store.d.ts.map +1 -0
  50. package/dist/agent/snapshot-store.js +195 -0
  51. package/dist/agent/snapshot-store.js.map +1 -0
  52. package/dist/agent/specialist-profiles.d.ts +36 -0
  53. package/dist/agent/specialist-profiles.d.ts.map +1 -0
  54. package/dist/agent/specialist-profiles.js +159 -0
  55. package/dist/agent/specialist-profiles.js.map +1 -0
  56. package/dist/agent/subagent-specs.d.ts +4 -1
  57. package/dist/agent/subagent-specs.d.ts.map +1 -1
  58. package/dist/agent/subagent-specs.js +81 -8
  59. package/dist/agent/subagent-specs.js.map +1 -1
  60. package/dist/agent/swarm/coverage-gate.d.ts +37 -0
  61. package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
  62. package/dist/agent/swarm/coverage-gate.js +48 -0
  63. package/dist/agent/swarm/coverage-gate.js.map +1 -0
  64. package/dist/agent/swarm/executor.d.ts +1 -0
  65. package/dist/agent/swarm/executor.d.ts.map +1 -1
  66. package/dist/agent/swarm/executor.js +151 -15
  67. package/dist/agent/swarm/executor.js.map +1 -1
  68. package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
  69. package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
  70. package/dist/agent/swarm/orchestrator-prompt.js +48 -0
  71. package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
  72. package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
  73. package/dist/agent/swarm/plan-parser.js +27 -2
  74. package/dist/agent/swarm/plan-parser.js.map +1 -1
  75. package/dist/agent/swarm/types.d.ts +17 -0
  76. package/dist/agent/swarm/types.d.ts.map +1 -1
  77. package/dist/agent/swarm/types.js.map +1 -1
  78. package/dist/agent/swarm/validation-directive.d.ts +21 -0
  79. package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
  80. package/dist/agent/swarm/validation-directive.js +25 -0
  81. package/dist/agent/swarm/validation-directive.js.map +1 -0
  82. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  83. package/dist/agent/transport/tool-execution-bridge.js +4 -1
  84. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  85. package/dist/api/enterprise-routes.d.ts.map +1 -1
  86. package/dist/api/enterprise-routes.js +87 -10
  87. package/dist/api/enterprise-routes.js.map +1 -1
  88. package/dist/api/org-settings-merge.d.ts +12 -0
  89. package/dist/api/org-settings-merge.d.ts.map +1 -0
  90. package/dist/api/org-settings-merge.js +38 -0
  91. package/dist/api/org-settings-merge.js.map +1 -0
  92. package/dist/api/user-settings-merge.d.ts +16 -0
  93. package/dist/api/user-settings-merge.d.ts.map +1 -0
  94. package/dist/api/user-settings-merge.js +37 -0
  95. package/dist/api/user-settings-merge.js.map +1 -0
  96. package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
  97. package/dist/app-server/daemon-lifecycle-api.js +1 -3
  98. package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
  99. package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
  100. package/dist/app-server/external-agent-import-api.js +1 -3
  101. package/dist/app-server/external-agent-import-api.js.map +1 -1
  102. package/dist/app-server/network-governance-api.d.ts.map +1 -1
  103. package/dist/app-server/network-governance-api.js +1 -3
  104. package/dist/app-server/network-governance-api.js.map +1 -1
  105. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
  106. package/dist/app-server/plugin-bundle-api.js +1 -3
  107. package/dist/app-server/plugin-bundle-api.js.map +1 -1
  108. package/dist/app-server/policy-control-api.d.ts.map +1 -1
  109. package/dist/app-server/policy-control-api.js +1 -3
  110. package/dist/app-server/policy-control-api.js.map +1 -1
  111. package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
  112. package/dist/app-server/protocol-modes-api.js +1 -3
  113. package/dist/app-server/protocol-modes-api.js.map +1 -1
  114. package/dist/cli/args.d.ts +2 -0
  115. package/dist/cli/args.d.ts.map +1 -1
  116. package/dist/cli/args.js +15 -0
  117. package/dist/cli/args.js.map +1 -1
  118. package/dist/cli/commands/a2a.d.ts.map +1 -1
  119. package/dist/cli/commands/a2a.js +1 -3
  120. package/dist/cli/commands/a2a.js.map +1 -1
  121. package/dist/cli/commands/agents.d.ts +4 -0
  122. package/dist/cli/commands/agents.d.ts.map +1 -1
  123. package/dist/cli/commands/agents.js +149 -0
  124. package/dist/cli/commands/agents.js.map +1 -1
  125. package/dist/cli/commands/mission.d.ts +4 -0
  126. package/dist/cli/commands/mission.d.ts.map +1 -0
  127. package/dist/cli/commands/mission.js +196 -0
  128. package/dist/cli/commands/mission.js.map +1 -0
  129. package/dist/cli/commands/value.d.ts +10 -0
  130. package/dist/cli/commands/value.d.ts.map +1 -0
  131. package/dist/cli/commands/value.js +33 -0
  132. package/dist/cli/commands/value.js.map +1 -0
  133. package/dist/cli/headless-protocol.d.ts.map +1 -1
  134. package/dist/cli/headless-protocol.js +1 -3
  135. package/dist/cli/headless-protocol.js.map +1 -1
  136. package/dist/cli/help.d.ts.map +1 -1
  137. package/dist/cli/help.js +10 -0
  138. package/dist/cli/help.js.map +1 -1
  139. package/dist/cli/system-prompt.d.ts.map +1 -1
  140. package/dist/cli/system-prompt.js +38 -7
  141. package/dist/cli/system-prompt.js.map +1 -1
  142. package/dist/cli-command-runtime.js +2 -2
  143. package/dist/cli-command-runtime.js.map +1 -1
  144. package/dist/cli-runtime.js +7798 -2805
  145. package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
  146. package/dist/cli-tui/client-tools/client-tool-controller.js +1 -3
  147. package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
  148. package/dist/cli-tui/commands/undo-handlers.d.ts.map +1 -1
  149. package/dist/cli-tui/commands/undo-handlers.js +7 -2
  150. package/dist/cli-tui/commands/undo-handlers.js.map +1 -1
  151. package/dist/cli-tui/tui-renderer/skills-controller.d.ts +3 -0
  152. package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +1 -1
  153. package/dist/cli-tui/tui-renderer/skills-controller.js +77 -33
  154. package/dist/cli-tui/tui-renderer/skills-controller.js.map +1 -1
  155. package/dist/cli.js +4 -6
  156. package/dist/cli.js.map +1 -1
  157. package/dist/codex/app-server-client.d.ts.map +1 -1
  158. package/dist/codex/app-server-client.js +1 -3
  159. package/dist/codex/app-server-client.js.map +1 -1
  160. package/dist/codex/compatibility.d.ts.map +1 -1
  161. package/dist/codex/compatibility.js +1 -3
  162. package/dist/codex/compatibility.js.map +1 -1
  163. package/dist/codex/subagent-dispatch-table.d.ts +8 -0
  164. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
  165. package/dist/codex/subagent-dispatch-table.js +23 -0
  166. package/dist/codex/subagent-dispatch-table.js.map +1 -1
  167. package/dist/context/manifest.d.ts.map +1 -1
  168. package/dist/context/manifest.js +1 -3
  169. package/dist/context/manifest.js.map +1 -1
  170. package/dist/conversation/render-model.d.ts +0 -36
  171. package/dist/conversation/render-model.d.ts.map +1 -1
  172. package/dist/conversation/render-model.js +1 -3
  173. package/dist/conversation/render-model.js.map +1 -1
  174. package/dist/customer-value/ambient-learning.d.ts +75 -0
  175. package/dist/customer-value/ambient-learning.d.ts.map +1 -0
  176. package/dist/customer-value/ambient-learning.js +472 -0
  177. package/dist/customer-value/ambient-learning.js.map +1 -0
  178. package/dist/customer-value/internal-helpers.d.ts +13 -0
  179. package/dist/customer-value/internal-helpers.d.ts.map +1 -0
  180. package/dist/customer-value/internal-helpers.js +70 -0
  181. package/dist/customer-value/internal-helpers.js.map +1 -0
  182. package/dist/customer-value/report.d.ts +282 -0
  183. package/dist/customer-value/report.d.ts.map +1 -0
  184. package/dist/customer-value/report.js +2085 -0
  185. package/dist/customer-value/report.js.map +1 -0
  186. package/dist/db/health.d.ts +1 -1
  187. package/dist/db/health.d.ts.map +1 -1
  188. package/dist/db/health.js +10 -0
  189. package/dist/db/health.js.map +1 -1
  190. package/dist/db/migrations/0009_operating_layer_evidence.sql +30 -0
  191. package/dist/db/migrations/meta/_journal.json +7 -0
  192. package/dist/db/schema.d.ts +268 -1
  193. package/dist/db/schema.d.ts.map +1 -1
  194. package/dist/db/schema.js +28 -0
  195. package/dist/db/schema.js.map +1 -1
  196. package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
  197. package/dist/evalops/agent-bootstrap.js +1 -3
  198. package/dist/evalops/agent-bootstrap.js.map +1 -1
  199. package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
  200. package/dist/evalops/agent-mcp-metadata.js +1 -3
  201. package/dist/evalops/agent-mcp-metadata.js.map +1 -1
  202. package/dist/index.d.ts +1 -0
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +1 -0
  205. package/dist/index.js.map +1 -1
  206. package/dist/installers/maestro-review-workflow.d.ts +38 -0
  207. package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
  208. package/dist/installers/maestro-review-workflow.js +163 -0
  209. package/dist/installers/maestro-review-workflow.js.map +1 -0
  210. package/dist/load-env.d.ts +13 -0
  211. package/dist/load-env.d.ts.map +1 -1
  212. package/dist/load-env.js +17 -0
  213. package/dist/load-env.js.map +1 -1
  214. package/dist/main.d.ts.map +1 -1
  215. package/dist/main.js +96 -7
  216. package/dist/main.js.map +1 -1
  217. package/dist/mcp/config.d.ts.map +1 -1
  218. package/dist/mcp/config.js +1 -3
  219. package/dist/mcp/config.js.map +1 -1
  220. package/dist/mcp/elicitation.d.ts.map +1 -1
  221. package/dist/mcp/elicitation.js +1 -3
  222. package/dist/mcp/elicitation.js.map +1 -1
  223. package/dist/mcp/official-registry.d.ts.map +1 -1
  224. package/dist/mcp/official-registry.js +1 -3
  225. package/dist/mcp/official-registry.js.map +1 -1
  226. package/dist/mcp/workspace-trust.d.ts.map +1 -1
  227. package/dist/mcp/workspace-trust.js +1 -3
  228. package/dist/mcp/workspace-trust.js.map +1 -1
  229. package/dist/memory/service-client.d.ts.map +1 -1
  230. package/dist/memory/service-client.js +1 -3
  231. package/dist/memory/service-client.js.map +1 -1
  232. package/dist/models/config-loader.d.ts.map +1 -1
  233. package/dist/models/config-loader.js +1 -3
  234. package/dist/models/config-loader.js.map +1 -1
  235. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
  236. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  237. package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
  238. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  239. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
  240. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
  241. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
  242. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
  243. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  244. package/dist/node_modules/@evalops/tui/package.json +1 -1
  245. package/dist/oauth/connectors.d.ts.map +1 -1
  246. package/dist/oauth/connectors.js +1 -3
  247. package/dist/oauth/connectors.js.map +1 -1
  248. package/dist/oauth/evalops.d.ts.map +1 -1
  249. package/dist/oauth/evalops.js +1 -3
  250. package/dist/oauth/evalops.js.map +1 -1
  251. package/dist/platform/a2a-client.d.ts.map +1 -1
  252. package/dist/platform/a2a-client.js +1 -3
  253. package/dist/platform/a2a-client.js.map +1 -1
  254. package/dist/platform/a2a-cockpit.d.ts +1 -0
  255. package/dist/platform/a2a-cockpit.d.ts.map +1 -1
  256. package/dist/platform/a2a-cockpit.js +42 -11
  257. package/dist/platform/a2a-cockpit.js.map +1 -1
  258. package/dist/platform/a2a-completion-audit.d.ts +1 -1
  259. package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
  260. package/dist/platform/a2a-completion-audit.js +7 -11
  261. package/dist/platform/a2a-completion-audit.js.map +1 -1
  262. package/dist/platform/a2a-maestro-peer.js +16 -0
  263. package/dist/platform/a2a-maestro-peer.js.map +1 -1
  264. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
  265. package/dist/platform/a2a-peer-pairing.js +1 -3
  266. package/dist/platform/a2a-peer-pairing.js.map +1 -1
  267. package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
  268. package/dist/platform/a2a-peer-registry.js +1 -3
  269. package/dist/platform/a2a-peer-registry.js.map +1 -1
  270. package/dist/platform/a2a-task-ledger.d.ts +20 -0
  271. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  272. package/dist/platform/a2a-task-ledger.js +207 -11
  273. package/dist/platform/a2a-task-ledger.js.map +1 -1
  274. package/dist/platform/a2a-work-graph.d.ts.map +1 -1
  275. package/dist/platform/a2a-work-graph.js +1 -3
  276. package/dist/platform/a2a-work-graph.js.map +1 -1
  277. package/dist/platform/operating-layer.d.ts +127 -0
  278. package/dist/platform/operating-layer.d.ts.map +1 -0
  279. package/dist/platform/operating-layer.js +360 -0
  280. package/dist/platform/operating-layer.js.map +1 -0
  281. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  282. package/dist/platform/tool-execution-client.js +19 -2
  283. package/dist/platform/tool-execution-client.js.map +1 -1
  284. package/dist/providers/auth.d.ts.map +1 -1
  285. package/dist/providers/auth.js +1 -3
  286. package/dist/providers/auth.js.map +1 -1
  287. package/dist/runtime/env.d.ts +9 -1
  288. package/dist/runtime/env.d.ts.map +1 -1
  289. package/dist/runtime/env.js +63 -1
  290. package/dist/runtime/env.js.map +1 -1
  291. package/dist/safety/policy.d.ts.map +1 -1
  292. package/dist/safety/policy.js +1 -4
  293. package/dist/safety/policy.js.map +1 -1
  294. package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
  295. package/dist/sandbox/docker-sandbox.js +6 -1
  296. package/dist/sandbox/docker-sandbox.js.map +1 -1
  297. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  298. package/dist/server/handlers/hosted-runner-drain.js +1 -3
  299. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  300. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
  301. package/dist/server/handlers/platform-a2a-push.js +53 -2
  302. package/dist/server/handlers/platform-a2a-push.js.map +1 -1
  303. package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
  304. package/dist/server/handlers/runtime-app-server-ws.js +1 -3
  305. package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
  306. package/dist/server/headless-runtime-service.d.ts +16 -0
  307. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  308. package/dist/server/headless-runtime-service.js +232 -206
  309. package/dist/server/headless-runtime-service.js.map +1 -1
  310. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
  311. package/dist/server/hosted-agent-runtime-progress.js +12 -3
  312. package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
  313. package/dist/server/pending-request-payload.d.ts.map +1 -1
  314. package/dist/server/pending-request-payload.js +1 -3
  315. package/dist/server/pending-request-payload.js.map +1 -1
  316. package/dist/server/route-auth.d.ts.map +1 -1
  317. package/dist/server/route-auth.js +2 -0
  318. package/dist/server/route-auth.js.map +1 -1
  319. package/dist/server/session-serialization.d.ts.map +1 -1
  320. package/dist/server/session-serialization.js +1 -3
  321. package/dist/server/session-serialization.js.map +1 -1
  322. package/dist/services/compliance/normalize.d.ts.map +1 -1
  323. package/dist/services/compliance/normalize.js +1 -3
  324. package/dist/services/compliance/normalize.js.map +1 -1
  325. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  326. package/dist/services/intelligent-router/normalize.js +1 -3
  327. package/dist/services/intelligent-router/normalize.js.map +1 -1
  328. package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
  329. package/dist/services/revenue-attribution/normalize.js +1 -3
  330. package/dist/services/revenue-attribution/normalize.js.map +1 -1
  331. package/dist/services/traces/normalize.d.ts.map +1 -1
  332. package/dist/services/traces/normalize.js +1 -3
  333. package/dist/services/traces/normalize.js.map +1 -1
  334. package/dist/services/workspace-config/normalize.d.ts.map +1 -1
  335. package/dist/services/workspace-config/normalize.js +1 -3
  336. package/dist/services/workspace-config/normalize.js.map +1 -1
  337. package/dist/skills/composer.d.ts.map +1 -1
  338. package/dist/skills/composer.js +13 -1
  339. package/dist/skills/composer.js.map +1 -1
  340. package/dist/skills/index.d.ts +1 -0
  341. package/dist/skills/index.d.ts.map +1 -1
  342. package/dist/skills/index.js +1 -0
  343. package/dist/skills/index.js.map +1 -1
  344. package/dist/skills/learned-guidelines.d.ts +33 -0
  345. package/dist/skills/learned-guidelines.d.ts.map +1 -0
  346. package/dist/skills/learned-guidelines.js +291 -0
  347. package/dist/skills/learned-guidelines.js.map +1 -0
  348. package/dist/skills/linter.d.ts.map +1 -1
  349. package/dist/skills/linter.js +1 -3
  350. package/dist/skills/linter.js.map +1 -1
  351. package/dist/skills/runtime-activation.d.ts +1 -0
  352. package/dist/skills/runtime-activation.d.ts.map +1 -1
  353. package/dist/skills/runtime-activation.js +2 -3
  354. package/dist/skills/runtime-activation.js.map +1 -1
  355. package/dist/skills/tool.d.ts.map +1 -1
  356. package/dist/skills/tool.js +26 -21
  357. package/dist/skills/tool.js.map +1 -1
  358. package/dist/skills/trust-cache.d.ts +7 -0
  359. package/dist/skills/trust-cache.d.ts.map +1 -1
  360. package/dist/skills/trust-cache.js +16 -0
  361. package/dist/skills/trust-cache.js.map +1 -1
  362. package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
  363. package/dist/telemetry/agent-workforce-native-event.js +1 -3
  364. package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
  365. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  366. package/dist/telemetry/maestro-event-bus.js +42 -81
  367. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  368. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  369. package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
  370. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  371. package/dist/telemetry.d.ts.map +1 -1
  372. package/dist/telemetry.js +54 -43
  373. package/dist/telemetry.js.map +1 -1
  374. package/dist/theme/theme-loader.d.ts.map +1 -1
  375. package/dist/theme/theme-loader.js +1 -3
  376. package/dist/theme/theme-loader.js.map +1 -1
  377. package/dist/tools/apply-patch.d.ts.map +1 -1
  378. package/dist/tools/apply-patch.js +76 -8
  379. package/dist/tools/apply-patch.js.map +1 -1
  380. package/dist/tools/diff-preview.d.ts.map +1 -1
  381. package/dist/tools/diff-preview.js +10 -1
  382. package/dist/tools/diff-preview.js.map +1 -1
  383. package/dist/tools/edit.d.ts.map +1 -1
  384. package/dist/tools/edit.js +17 -0
  385. package/dist/tools/edit.js.map +1 -1
  386. package/dist/tools/write.d.ts.map +1 -1
  387. package/dist/tools/write.js +9 -0
  388. package/dist/tools/write.js.map +1 -1
  389. package/dist/undo/tracker.d.ts +5 -0
  390. package/dist/undo/tracker.d.ts.map +1 -1
  391. package/dist/undo/tracker.js +13 -0
  392. package/dist/undo/tracker.js.map +1 -1
  393. package/dist/utils/fs.d.ts +1 -1
  394. package/dist/utils/fs.d.ts.map +1 -1
  395. package/dist/utils/fs.js +29 -2
  396. package/dist/utils/fs.js.map +1 -1
  397. package/dist/utils/git-stash.d.ts.map +1 -1
  398. package/dist/utils/git-stash.js +15 -8
  399. package/dist/utils/git-stash.js.map +1 -1
  400. package/dist/utils/json.d.ts +11 -0
  401. package/dist/utils/json.d.ts.map +1 -1
  402. package/dist/utils/json.js +9 -0
  403. package/dist/utils/json.js.map +1 -1
  404. package/dist/utils/shell-env.d.ts.map +1 -1
  405. package/dist/utils/shell-env.js +2 -0
  406. package/dist/utils/shell-env.js.map +1 -1
  407. package/dist/utils/url-extractor-git.d.ts +26 -0
  408. package/dist/utils/url-extractor-git.d.ts.map +1 -0
  409. package/dist/utils/url-extractor-git.js +259 -0
  410. package/dist/utils/url-extractor-git.js.map +1 -0
  411. package/dist/utils/url-extractor.d.ts.map +1 -1
  412. package/dist/utils/url-extractor.js +23 -251
  413. package/dist/utils/url-extractor.js.map +1 -1
  414. package/dist/version.json +2 -2
  415. package/dist/web-server.d.ts.map +1 -1
  416. package/dist/web-server.js +2 -5
  417. package/dist/web-server.js.map +1 -1
  418. package/package.json +310 -306
  419. package/skills/incident-triage/SKILL.md +19 -1
  420. package/skills/install-code-review/SKILL.md +69 -0
  421. package/skills/security-review/SKILL.md +68 -0
  422. package/skills/security-review/reference/rubric.md +85 -0
@@ -1 +1 @@
1
- {"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../../../src/agent/providers/codex-app-server.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype CodexAccountReadResult,\n\ttype CodexAppServerClientLike,\n\ttype CodexAppServerNotification,\n\ttype CodexAppServerRequest,\n\ttype CodexAppServerRequestHandlerResult,\n\tcreateCodexAppServerClient,\n} from \"../../codex/app-server-client.js\";\nimport {\n\ttype CodexDynamicToolCompilation,\n\tcompileCodexDynamicToolSpecs,\n\tcreateCodexDynamicToolNameMap,\n} from \"../../codex/compatibility.js\";\nimport {\n\tCODEX_SUBAGENT_WORK_GRAPH_SCHEMA,\n\tCODEX_THREAD_CHILD_RUN_PREFIX,\n\ttype CodexSubagentCanonicalTool,\n\tcanonicalCodexSubagentTool,\n} from \"../../codex/subagent-workgraph.js\";\nimport type {\n\tAgentToolResult,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tReasoningEffort,\n\tStreamOptions,\n\tTextContent,\n\tToolCall,\n\tToolResultMessage,\n\tUsage,\n} from \"../types.js\";\nimport { sanitizeSurrogates } from \"./sanitize-unicode.js\";\n\nexport interface CodexAppServerProviderOptions extends StreamOptions {\n\tcwd?: string;\n\treasoningEffort?: ReasoningEffort;\n\treasoningSummary?: \"auto\" | \"detailed\" | \"concise\" | null;\n\tcodexAppServerClient?: CodexAppServerClientLike;\n\tcodexAppServerClientFactory?: () =>\n\t\t| CodexAppServerClientLike\n\t\t| Promise<CodexAppServerClientLike>;\n\tturnTimeoutMs?: number;\n}\n\ntype ThreadStartResult = {\n\tthread: { id: string };\n};\n\ntype TurnStartResult = {\n\tturn: { id: string };\n};\n\ntype DynamicToolCallParams = {\n\tthreadId: string;\n\tturnId: string;\n\tcallId: string;\n\tnamespace?: string | null;\n\ttool: string;\n\targuments: unknown;\n};\n\ntype DynamicToolCallResponse = {\n\tcontentItems: DynamicToolCallOutputContentItem[];\n\tsuccess: boolean;\n};\n\ntype DynamicToolCallOutputContentItem =\n\t| { type: \"inputText\"; text: string }\n\t| { type: \"inputImage\"; imageUrl: string };\n\ntype CodexUserInput =\n\t| { type: \"text\"; text: string; text_elements: [] }\n\t| { type: \"image\"; url: string };\n\nconst DEFAULT_TURN_TIMEOUT_MS = 30 * 60_000;\ntype CodexCollabTool = CodexSubagentCanonicalTool;\n\ntype CodexCollabAgentToolCallItem = {\n\ttype: \"collabAgentToolCall\";\n\tid: string;\n\ttool: string;\n\tstatus: string;\n\tsenderThreadId: string;\n\treceiverThreadIds: string[];\n\tchildRunIds?: string[];\n\tprompt: string | null;\n\tmodel: string | null;\n\treasoningEffort: string | null;\n\tagentsStates: Record<string, unknown>;\n};\n\ntype CodexSubagentWorkGraph = {\n\tschemaVersion: typeof CODEX_SUBAGENT_WORK_GRAPH_SCHEMA;\n\ttoolCallId: string;\n\ttool: string;\n\tstatus: string;\n\tparent: {\n\t\tthreadId: string;\n\t\tturnId: string;\n\t\tsenderThreadId: string;\n\t};\n\tchildRuns: Array<{\n\t\tedgeId: string;\n\t\ttargetIndex: number;\n\t\tthreadId: string;\n\t\tchildRunId: string;\n\t\toperation: string;\n\t\tstatus?: string;\n\t}>;\n};\n\nexport async function* streamCodexAppServer(\n\tmodel: Model<\"openai-codex-app-server\">,\n\tcontext: Context,\n\toptions: CodexAppServerProviderOptions,\n): AsyncGenerator<AssistantMessageEvent, void, unknown> {\n\tconst output = createAssistantMessage(model);\n\tlet client = options.codexAppServerClient;\n\tlet ownsClient = false;\n\tlet unsubscribe: (() => void) | undefined;\n\tlet unsubscribeRequest: (() => void) | undefined;\n\tconst dynamicToolCompilation = buildDynamicToolSpecs(\n\t\tcontext,\n\t\toptions.executeDynamicTool,\n\t);\n\tconst dynamicTools = dynamicToolCompilation.specs;\n\tconst dynamicToolNameMap = createCodexDynamicToolNameMap(\n\t\tdynamicToolCompilation.bindings,\n\t);\n\n\ttry {\n\t\tif (!client) {\n\t\t\tclient = options.codexAppServerClientFactory\n\t\t\t\t? await options.codexAppServerClientFactory()\n\t\t\t\t: createCodexAppServerClient();\n\t\t\townsClient = true;\n\t\t}\n\n\t\tawait client.initialize(\n\t\t\tdynamicTools.length > 0 ? { experimentalApi: true } : undefined,\n\t\t);\n\n\t\tconst account = await client.readAccount(false);\n\t\tassertCodexAccount(account);\n\n\t\tconst notifications: CodexAppServerNotification[] = [];\n\t\tconst providerToolEvents: AssistantMessageEvent[] = [];\n\t\tlet wake: (() => void) | undefined;\n\t\tconst wakeStream = () => {\n\t\t\twake?.();\n\t\t};\n\t\tunsubscribe = client.onNotification((notification) => {\n\t\t\tnotifications.push(notification);\n\t\t\twakeStream();\n\t\t});\n\n\t\tconst cwd = options.cwd ?? process.cwd();\n\t\tconst threadStartParams: Record<string, unknown> = {\n\t\t\tmodel: model.id,\n\t\t\tcwd,\n\t\t\tephemeral: true,\n\t\t\tserviceName: \"maestro\",\n\t\t\tbaseInstructions: context.systemPrompt || undefined,\n\t\t};\n\t\tif (dynamicTools.length > 0) {\n\t\t\tthreadStartParams.dynamicTools = dynamicTools;\n\t\t}\n\t\tconst threadStart = await client.request<ThreadStartResult>(\n\t\t\t\"thread/start\",\n\t\t\tthreadStartParams,\n\t\t);\n\t\tconst threadId = readNestedId(threadStart, \"thread\", \"thread/start\");\n\t\tlet turnId: string | undefined;\n\t\tif (dynamicTools.length > 0) {\n\t\t\tunsubscribeRequest = client.onRequest((request) =>\n\t\t\t\thandleDynamicToolRequest(request, {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\texecuteDynamicTool: options.executeDynamicTool,\n\t\t\t\t\tdynamicToolNameMap,\n\t\t\t\t\tpartial: output,\n\t\t\t\t\temitToolEvent: (event) => {\n\t\t\t\t\t\tproviderToolEvents.push(event);\n\t\t\t\t\t\twakeStream();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tconst turnStart = await client.request<TurnStartResult>(\"turn/start\", {\n\t\t\tthreadId,\n\t\t\tinput: buildCodexUserInput(context),\n\t\t\tcwd,\n\t\t\tmodel: model.id,\n\t\t\teffort: mapCodexReasoningEffort(options.reasoningEffort),\n\t\t\tsummary: mapCodexReasoningSummary(options.reasoningSummary),\n\t\t});\n\t\tturnId = readNestedId(turnStart, \"turn\", \"turn/start\");\n\n\t\tyield { type: \"start\", partial: output };\n\n\t\tlet textIndex: number | null = null;\n\t\tlet completed = false;\n\t\tconst startedProviderToolCalls = new Set<string>();\n\t\twhile (!completed) {\n\t\t\tconst streamItem = await nextCodexStreamItem(\n\t\t\t\tnotifications,\n\t\t\t\tproviderToolEvents,\n\t\t\t\t() => wake,\n\t\t\t\t(nextWake) => {\n\t\t\t\t\twake = nextWake;\n\t\t\t\t},\n\t\t\t\toptions.signal,\n\t\t\t\toptions.turnTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS,\n\t\t\t);\n\t\t\tif (streamItem.type === \"providerToolEvent\") {\n\t\t\t\tyield streamItem.event;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst notification = streamItem.notification;\n\n\t\t\tif (notification.method === \"item/agentMessage/delta\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\ttypeof params.delta === \"string\"\n\t\t\t\t) {\n\t\t\t\t\ttextIndex = ensureTextBlock(output, textIndex);\n\t\t\t\t\tif (output.content[textIndex]?.type === \"text\") {\n\t\t\t\t\t\tconst block = output.content[textIndex] as TextContent;\n\t\t\t\t\t\tconst wasEmpty = block.text.length === 0;\n\t\t\t\t\t\tblock.text += params.delta;\n\t\t\t\t\t\tif (wasEmpty) {\n\t\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\t\ttype: \"text_start\",\n\t\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\tdelta: params.delta,\n\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"item/started\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\tisCodexCollabAgentToolCallItem(params.item)\n\t\t\t\t) {\n\t\t\t\t\tstartedProviderToolCalls.add(params.item.id);\n\t\t\t\t\tyield codexCollabToolStartEvent(params.item, output, {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"item/completed\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\tisRecord(params.item) &&\n\t\t\t\t\tparams.item.type === \"agentMessage\" &&\n\t\t\t\t\ttypeof params.item.text === \"string\"\n\t\t\t\t) {\n\t\t\t\t\ttextIndex = ensureTextBlock(output, textIndex);\n\t\t\t\t\tconst block = output.content[textIndex] as TextContent;\n\t\t\t\t\tif (params.item.text.length > block.text.length) {\n\t\t\t\t\t\tconst delta = params.item.text.slice(block.text.length);\n\t\t\t\t\t\tconst wasEmpty = block.text.length === 0;\n\t\t\t\t\t\tblock.text = params.item.text;\n\t\t\t\t\t\tif (wasEmpty) {\n\t\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\t\ttype: \"text_start\",\n\t\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\tdelta,\n\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\tisCodexCollabAgentToolCallItem(params.item)\n\t\t\t\t) {\n\t\t\t\t\tif (!startedProviderToolCalls.has(params.item.id)) {\n\t\t\t\t\t\tstartedProviderToolCalls.add(params.item.id);\n\t\t\t\t\t\tyield codexCollabToolStartEvent(params.item, output, {\n\t\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\t\tturnId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tyield codexCollabToolEndEvent(params.item, output, {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"thread/tokenUsage/updated\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId\n\t\t\t\t) {\n\t\t\t\t\tapplyCodexTokenUsage(output.usage, params.tokenUsage, model);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"turn/completed\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (!isRecord(params) || params.threadId !== threadId) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst turn = params.turn;\n\t\t\t\tif (!isRecord(turn) || turn.id !== turnId) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (turn.status === \"failed\") {\n\t\t\t\t\tthrow new Error(readTurnErrorMessage(turn));\n\t\t\t\t}\n\t\t\t\tif (turn.status === \"interrupted\") {\n\t\t\t\t\tthrow createAbortError(\"Codex app-server turn was interrupted\");\n\t\t\t\t}\n\t\t\t\tcompleted = true;\n\t\t\t}\n\t\t}\n\n\t\twhile (providerToolEvents.length > 0) {\n\t\t\tconst providerToolEvent = providerToolEvents.shift();\n\t\t\tif (providerToolEvent) {\n\t\t\t\tyield providerToolEvent;\n\t\t\t}\n\t\t}\n\n\t\tif (textIndex !== null && output.content[textIndex]?.type === \"text\") {\n\t\t\tyield {\n\t\t\t\ttype: \"text_end\",\n\t\t\t\tcontentIndex: textIndex,\n\t\t\t\tcontent: (output.content[textIndex] as TextContent).text,\n\t\t\t\tpartial: output,\n\t\t\t};\n\t\t}\n\t\toutput.stopReason = \"stop\";\n\t\tyield { type: \"done\", reason: \"stop\", message: output };\n\t} catch (error: unknown) {\n\t\tif (isAbortError(error)) {\n\t\t\toutput.stopReason = \"aborted\";\n\t\t\toutput.errorMessage = error instanceof Error ? error.message : \"Aborted\";\n\t\t\tyield { type: \"error\", reason: \"aborted\", error: output };\n\t\t\treturn;\n\t\t}\n\t\toutput.stopReason = \"error\";\n\t\toutput.errorMessage =\n\t\t\terror instanceof Error ? error.message : String(error);\n\t\tyield { type: \"error\", reason: \"error\", error: output };\n\t} finally {\n\t\tunsubscribe?.();\n\t\tunsubscribeRequest?.();\n\t\tif (ownsClient) {\n\t\t\tclient?.close();\n\t\t}\n\t}\n}\n\nfunction createAssistantMessage(\n\tmodel: Model<\"openai-codex-app-server\">,\n): AssistantMessage {\n\treturn {\n\t\trole: \"assistant\",\n\t\tcontent: [],\n\t\tapi: \"openai-codex-app-server\",\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tusage: emptyUsage(),\n\t\tstopReason: \"stop\",\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nfunction emptyUsage(): Usage {\n\treturn {\n\t\tinput: 0,\n\t\toutput: 0,\n\t\tcacheRead: 0,\n\t\tcacheWrite: 0,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t};\n}\n\nfunction applyCodexTokenUsage(\n\tusage: Usage,\n\ttokenUsage: unknown,\n\tmodel: Model<\"openai-codex-app-server\">,\n): void {\n\tif (!isRecord(tokenUsage) || !isRecord(tokenUsage.last)) {\n\t\treturn;\n\t}\n\tconst cacheRead = readNumber(tokenUsage.last.cachedInputTokens);\n\tconst input = Math.max(\n\t\t0,\n\t\treadNumber(tokenUsage.last.inputTokens) - cacheRead,\n\t);\n\tconst output = readNumber(tokenUsage.last.outputTokens);\n\tconst cacheWrite = 0;\n\tusage.input = input;\n\tusage.output = output;\n\tusage.cacheRead = cacheRead;\n\tusage.cacheWrite = cacheWrite;\n\tconst inputCost = (input * model.cost.input) / 1_000_000;\n\tconst outputCost = (output * model.cost.output) / 1_000_000;\n\tconst cacheReadCost = (cacheRead * model.cost.cacheRead) / 1_000_000;\n\tconst cacheWriteCost = (cacheWrite * model.cost.cacheWrite) / 1_000_000;\n\tusage.cost = {\n\t\tinput: inputCost,\n\t\toutput: outputCost,\n\t\tcacheRead: cacheReadCost,\n\t\tcacheWrite: cacheWriteCost,\n\t\ttotal: inputCost + outputCost + cacheReadCost + cacheWriteCost,\n\t};\n}\n\nfunction isCodexCollabAgentToolCallItem(\n\tvalue: unknown,\n): value is CodexCollabAgentToolCallItem {\n\tif (!isRecord(value) || value.type !== \"collabAgentToolCall\") {\n\t\treturn false;\n\t}\n\tif (\n\t\ttypeof value.id !== \"string\" ||\n\t\ttypeof value.tool !== \"string\" ||\n\t\t!canonicalCodexCollabTool(value.tool) ||\n\t\ttypeof value.status !== \"string\" ||\n\t\ttypeof value.senderThreadId !== \"string\" ||\n\t\t!Array.isArray(value.receiverThreadIds) ||\n\t\t!value.receiverThreadIds.every((id) => typeof id === \"string\") ||\n\t\t(value.childRunIds !== undefined &&\n\t\t\t(!Array.isArray(value.childRunIds) ||\n\t\t\t\t!value.childRunIds.every((id) => typeof id === \"string\")))\n\t) {\n\t\treturn false;\n\t}\n\treturn (\n\t\t(value.prompt === null || typeof value.prompt === \"string\") &&\n\t\t(value.model === null || typeof value.model === \"string\") &&\n\t\t(value.reasoningEffort === null ||\n\t\t\ttypeof value.reasoningEffort === \"string\") &&\n\t\tisRecord(value.agentsStates)\n\t);\n}\n\nfunction codexCollabToolStartEvent(\n\titem: CodexCollabAgentToolCallItem,\n\toutput: AssistantMessage,\n\tscope: { threadId: string; turnId: string },\n): AssistantMessageEvent {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst toolName = codexCollabToolName(tool);\n\treturn {\n\t\ttype: \"provider_tool_execution_start\",\n\t\ttoolCallId: item.id,\n\t\ttoolName,\n\t\tdisplayName: codexCollabDisplayName(tool),\n\t\tsummaryLabel: codexCollabSummaryLabel(item),\n\t\targs: codexCollabArgs(item, scope),\n\t\tpartial: output,\n\t};\n}\n\nfunction codexCollabToolEndEvent(\n\titem: CodexCollabAgentToolCallItem,\n\toutput: AssistantMessage,\n\tscope: { threadId: string; turnId: string },\n): AssistantMessageEvent {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst toolName = codexCollabToolName(tool);\n\tconst isError = item.status === \"failed\";\n\tconst details = codexCollabArgs(item, scope);\n\treturn {\n\t\ttype: \"provider_tool_execution_end\",\n\t\ttoolCallId: item.id,\n\t\ttoolName,\n\t\tdisplayName: codexCollabDisplayName(tool),\n\t\tsummaryLabel: codexCollabSummaryLabel(item),\n\t\tresult: {\n\t\t\trole: \"toolResult\",\n\t\t\ttoolCallId: item.id,\n\t\t\ttoolName,\n\t\t\tcontent: [\n\t\t\t\t{\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: `${codexCollabDisplayName(tool)} ${isError ? \"failed\" : \"completed\"}.`,\n\t\t\t\t},\n\t\t\t],\n\t\t\tdetails,\n\t\t\tisError,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\tisError,\n\t\tpartial: output,\n\t};\n}\n\nfunction codexCollabArgs(\n\titem: CodexCollabAgentToolCallItem,\n\tscope: { threadId: string; turnId: string },\n): Record<string, unknown> {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst childRunIds = codexCollabChildRunIds(item);\n\treturn {\n\t\tcodexTool: tool,\n\t\tstatus: item.status,\n\t\tthreadId: scope.threadId,\n\t\tturnId: scope.turnId,\n\t\tsenderThreadId: item.senderThreadId,\n\t\treceiverThreadIds: item.receiverThreadIds,\n\t\tchildRunIds,\n\t\tcodexWorkGraph: codexCollabWorkGraph(item, scope, childRunIds, tool),\n\t\tprompt: item.prompt,\n\t\tmodel: item.model,\n\t\treasoningEffort: item.reasoningEffort,\n\t\tagentsStates: item.agentsStates,\n\t};\n}\n\nfunction codexCollabWorkGraph(\n\titem: CodexCollabAgentToolCallItem,\n\tscope: { threadId: string; turnId: string },\n\tchildRunIds: string[],\n\ttool: string,\n): CodexSubagentWorkGraph {\n\treturn {\n\t\tschemaVersion: CODEX_SUBAGENT_WORK_GRAPH_SCHEMA,\n\t\ttoolCallId: item.id,\n\t\ttool,\n\t\tstatus: item.status,\n\t\tparent: {\n\t\t\tthreadId: scope.threadId,\n\t\t\tturnId: scope.turnId,\n\t\t\tsenderThreadId: item.senderThreadId,\n\t\t},\n\t\tchildRuns: item.receiverThreadIds.map((threadId, index) => {\n\t\t\tconst childRunId =\n\t\t\t\tchildRunIds[index] ?? `${CODEX_THREAD_CHILD_RUN_PREFIX}${threadId}`;\n\t\t\treturn {\n\t\t\t\tedgeId: codexCollabEdgeId(item.id, childRunId, index, tool),\n\t\t\t\ttargetIndex: index,\n\t\t\t\tthreadId,\n\t\t\t\tchildRunId,\n\t\t\t\toperation: tool,\n\t\t\t\t...codexCollabChildStatus(item, threadId),\n\t\t\t};\n\t\t}),\n\t};\n}\n\nfunction codexCollabEdgeId(\n\ttoolCallId: string,\n\tchildRunId: string,\n\tindex: number,\n\ttool: string,\n): string {\n\treturn `${toolCallId}:${index}:${tool}:${childRunId}`;\n}\n\nfunction codexCollabChildStatus(\n\titem: CodexCollabAgentToolCallItem,\n\tthreadId: string,\n): { status: string } | Record<string, never> {\n\tconst agentState = item.agentsStates[threadId];\n\tif (!isRecord(agentState) || typeof agentState.status !== \"string\") {\n\t\treturn {};\n\t}\n\tconst status = agentState.status.trim();\n\treturn status ? { status } : {};\n}\n\nfunction codexCollabChildRunIds(item: CodexCollabAgentToolCallItem): string[] {\n\tconst childRunIds = item.childRunIds?.filter((id) => id.length > 0) ?? [];\n\tif (childRunIds.length > 0) {\n\t\treturn childRunIds;\n\t}\n\treturn item.receiverThreadIds.map(\n\t\t(threadId) => `${CODEX_THREAD_CHILD_RUN_PREFIX}${threadId}`,\n\t);\n}\n\nfunction codexCollabToolName(tool: string): string {\n\treturn `codex.subagent.${tool}`;\n}\n\nfunction codexCollabDisplayName(tool: string): string {\n\treturn `Codex subagent: ${codexCollabHumanTool(tool)}`;\n}\n\nfunction codexCollabSummaryLabel(item: CodexCollabAgentToolCallItem): string {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst targetCount = item.receiverThreadIds.length;\n\tif (targetCount === 0) {\n\t\treturn codexCollabHumanTool(tool);\n\t}\n\tconst targetLabel = targetCount === 1 ? \"1 agent\" : `${targetCount} agents`;\n\treturn `${codexCollabHumanTool(tool)} ${targetLabel}`;\n}\n\nfunction canonicalCodexCollabTool(tool: string): CodexCollabTool | undefined {\n\treturn canonicalCodexSubagentTool(tool);\n}\n\nfunction codexCollabHumanTool(tool: string): string {\n\tswitch (tool) {\n\t\tcase \"spawnAgent\":\n\t\t\treturn \"spawn agent\";\n\t\tcase \"sendInput\":\n\t\t\treturn \"send input\";\n\t\tcase \"resumeAgent\":\n\t\t\treturn \"resume agent\";\n\t\tcase \"wait\":\n\t\t\treturn \"wait\";\n\t\tcase \"closeAgent\":\n\t\t\treturn \"close agent\";\n\t\tdefault:\n\t\t\treturn tool;\n\t}\n}\n\nfunction readNumber(value: unknown): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : 0;\n}\n\nfunction buildDynamicToolSpecs(\n\tcontext: Context,\n\texecuteDynamicTool: StreamOptions[\"executeDynamicTool\"],\n): CodexDynamicToolCompilation {\n\tif (!executeDynamicTool) {\n\t\treturn { specs: [], bindings: [], diagnostics: [] };\n\t}\n\treturn compileCodexDynamicToolSpecs(context.tools ?? []);\n}\n\nasync function handleDynamicToolRequest(\n\trequest: CodexAppServerRequest,\n\toptions: {\n\t\tthreadId: string;\n\t\tturnId?: string;\n\t\texecuteDynamicTool?: StreamOptions[\"executeDynamicTool\"];\n\t\tdynamicToolNameMap?: ReadonlyMap<string, string>;\n\t\tpartial: AssistantMessage;\n\t\temitToolEvent?: (event: AssistantMessageEvent) => void;\n\t},\n): Promise<CodexAppServerRequestHandlerResult> {\n\tif (request.method !== \"item/tool/call\") {\n\t\treturn { handled: false };\n\t}\n\n\tconst params = parseDynamicToolCallParams(request.params);\n\tif (!params) {\n\t\treturn {\n\t\t\thandled: true,\n\t\t\terror: {\n\t\t\t\tcode: -32602,\n\t\t\t\tmessage: \"Invalid Codex app-server dynamic tool call params\",\n\t\t\t},\n\t\t};\n\t}\n\tif (\n\t\tparams.threadId !== options.threadId ||\n\t\t(options.turnId && params.turnId !== options.turnId)\n\t) {\n\t\treturn { handled: false };\n\t}\n\n\tconst originalToolName =\n\t\toptions.dynamicToolNameMap?.get(params.tool) ?? params.tool;\n\toptions.emitToolEvent?.(\n\t\tcodexDynamicToolStartEvent(params, originalToolName, options.partial),\n\t);\n\n\tif (!options.executeDynamicTool) {\n\t\tconst result = dynamicToolFailureResult(\n\t\t\t\"Maestro dynamic tool execution is unavailable\",\n\t\t);\n\t\toptions.emitToolEvent?.(\n\t\t\tcodexDynamicToolEndEvent(\n\t\t\t\tparams,\n\t\t\t\toriginalToolName,\n\t\t\t\tresult,\n\t\t\t\toptions.partial,\n\t\t\t),\n\t\t);\n\t\treturn {\n\t\t\thandled: true,\n\t\t\tresult: agentToolResultToDynamicToolResponse(result),\n\t\t};\n\t}\n\n\ttry {\n\t\tconst result = await options.executeDynamicTool({\n\t\t\ttype: \"toolCall\",\n\t\t\tid: params.callId,\n\t\t\tname: originalToolName,\n\t\t\targuments: isRecord(params.arguments) ? params.arguments : {},\n\t\t});\n\t\toptions.emitToolEvent?.(\n\t\t\tcodexDynamicToolEndEvent(\n\t\t\t\tparams,\n\t\t\t\toriginalToolName,\n\t\t\t\tresult,\n\t\t\t\toptions.partial,\n\t\t\t),\n\t\t);\n\t\treturn {\n\t\t\thandled: true,\n\t\t\tresult: agentToolResultToDynamicToolResponse(result),\n\t\t};\n\t} catch (error: unknown) {\n\t\tconst result = dynamicToolFailureResult(formatErrorMessage(error));\n\t\toptions.emitToolEvent?.(\n\t\t\tcodexDynamicToolEndEvent(\n\t\t\t\tparams,\n\t\t\t\toriginalToolName,\n\t\t\t\tresult,\n\t\t\t\toptions.partial,\n\t\t\t),\n\t\t);\n\t\treturn {\n\t\t\thandled: true,\n\t\t\tresult: agentToolResultToDynamicToolResponse(result),\n\t\t};\n\t}\n}\n\nfunction codexDynamicToolStartEvent(\n\tparams: DynamicToolCallParams,\n\ttoolName: string,\n\tpartial: AssistantMessage,\n): AssistantMessageEvent {\n\treturn {\n\t\ttype: \"provider_tool_execution_start\",\n\t\ttoolCallId: params.callId,\n\t\ttoolName,\n\t\tdisplayName: codexDynamicToolDisplayName(toolName),\n\t\tsummaryLabel: toolName,\n\t\targs: codexDynamicToolArgs(params, toolName),\n\t\tpartial,\n\t};\n}\n\nfunction codexDynamicToolEndEvent(\n\tparams: DynamicToolCallParams,\n\ttoolName: string,\n\tresult: AgentToolResult,\n\tpartial: AssistantMessage,\n): AssistantMessageEvent {\n\tconst isError = result.isError === true;\n\treturn {\n\t\ttype: \"provider_tool_execution_end\",\n\t\ttoolCallId: params.callId,\n\t\ttoolName,\n\t\tdisplayName: codexDynamicToolDisplayName(toolName),\n\t\tsummaryLabel: toolName,\n\t\ttoolExecutionId: result.toolExecutionId,\n\t\tapprovalRequestId: result.approvalRequestId,\n\t\tresult: {\n\t\t\trole: \"toolResult\",\n\t\t\ttoolCallId: params.callId,\n\t\t\ttoolName,\n\t\t\tcontent: result.content,\n\t\t\tdetails: result.details,\n\t\t\tisError,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\tisError,\n\t\tpartial,\n\t};\n}\n\nfunction codexDynamicToolDisplayName(toolName: string): string {\n\treturn `Codex dynamic tool: ${toolName}`;\n}\n\nfunction codexDynamicToolArgs(\n\tparams: DynamicToolCallParams,\n\ttoolName: string,\n): Record<string, unknown> {\n\treturn {\n\t\tcodexTool: params.tool,\n\t\ttoolName,\n\t\tnamespace: params.namespace ?? null,\n\t\tthreadId: params.threadId,\n\t\tturnId: params.turnId,\n\t\tcallId: params.callId,\n\t\targuments: isRecord(params.arguments) ? params.arguments : {},\n\t};\n}\n\nfunction dynamicToolFailureResult(message: string): AgentToolResult {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: message }],\n\t\tisError: true,\n\t};\n}\n\nfunction parseDynamicToolCallParams(\n\tvalue: unknown,\n): DynamicToolCallParams | null {\n\tif (!isRecord(value)) {\n\t\treturn null;\n\t}\n\tif (\n\t\ttypeof value.threadId !== \"string\" ||\n\t\ttypeof value.turnId !== \"string\" ||\n\t\ttypeof value.callId !== \"string\" ||\n\t\ttypeof value.tool !== \"string\"\n\t) {\n\t\treturn null;\n\t}\n\treturn {\n\t\tthreadId: value.threadId,\n\t\tturnId: value.turnId,\n\t\tcallId: value.callId,\n\t\tnamespace:\n\t\t\ttypeof value.namespace === \"string\" || value.namespace === null\n\t\t\t\t? value.namespace\n\t\t\t\t: undefined,\n\t\ttool: value.tool,\n\t\targuments: value.arguments,\n\t};\n}\n\nfunction agentToolResultToDynamicToolResponse(\n\tresult: AgentToolResult,\n): DynamicToolCallResponse {\n\tconst contentItems: DynamicToolCallOutputContentItem[] = [];\n\tfor (const item of result.content) {\n\t\tif (item.type === \"text\") {\n\t\t\tcontentItems.push({ type: \"inputText\", text: item.text });\n\t\t\tcontinue;\n\t\t}\n\t\tif (item.type === \"image\") {\n\t\t\tcontentItems.push({\n\t\t\t\ttype: \"inputImage\",\n\t\t\t\timageUrl: `data:${item.mimeType};base64,${item.data}`,\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\tcontentItems:\n\t\t\tcontentItems.length > 0\n\t\t\t\t? contentItems\n\t\t\t\t: [{ type: \"inputText\", text: \"\" }],\n\t\tsuccess: !result.isError,\n\t};\n}\n\nfunction formatErrorMessage(error: unknown): string {\n\treturn error instanceof Error ? error.message : String(error);\n}\n\nfunction assertCodexAccount(account: CodexAccountReadResult): void {\n\tif (account.account) {\n\t\treturn;\n\t}\n\tthrow new Error(\n\t\t'OpenAI Codex is not signed in. Run \"maestro codex login\" to sign in with ChatGPT.',\n\t);\n}\n\nfunction readNestedId(\n\tresult: unknown,\n\tproperty: \"thread\" | \"turn\",\n\tmethod: string,\n): string {\n\tif (!isRecord(result) || !isRecord(result[property])) {\n\t\tthrow new Error(`Codex app-server ${method} returned an invalid response`);\n\t}\n\tconst id = result[property].id;\n\tif (typeof id !== \"string\" || id.length === 0) {\n\t\tthrow new Error(`Codex app-server ${method} did not return an id`);\n\t}\n\treturn id;\n}\n\nfunction ensureTextBlock(\n\toutput: AssistantMessage,\n\tcurrentIndex: number | null,\n): number {\n\tif (\n\t\tcurrentIndex !== null &&\n\t\toutput.content[currentIndex] &&\n\t\toutput.content[currentIndex].type === \"text\"\n\t) {\n\t\treturn currentIndex;\n\t}\n\tconst nextIndex = output.content.length;\n\toutput.content.push({ type: \"text\", text: \"\" });\n\treturn nextIndex;\n}\n\nfunction formatContextForCodex(context: Context): string {\n\tconst lines: string[] = [];\n\tfor (const message of context.messages) {\n\t\tconst text = messageToText(message);\n\t\tif (!text.trim()) {\n\t\t\tcontinue;\n\t\t}\n\t\tlines.push(`${message.role}:\\n${text}`);\n\t}\n\treturn sanitizeSurrogates(lines.join(\"\\n\\n\"));\n}\n\nfunction buildCodexUserInput(context: Context): CodexUserInput[] {\n\tconst prompt = formatContextForCodex(context);\n\tconst input: CodexUserInput[] = [];\n\tif (prompt.trim()) {\n\t\tinput.push({ type: \"text\", text: prompt, text_elements: [] });\n\t}\n\tfor (const image of extractUserImages(context)) {\n\t\tinput.push({ type: \"image\", url: imageToDataUrl(image) });\n\t}\n\tif (input.length === 0) {\n\t\tinput.push({ type: \"text\", text: \"\", text_elements: [] });\n\t}\n\treturn input;\n}\n\nfunction extractUserImages(context: Context): ImageContent[] {\n\tconst images: ImageContent[] = [];\n\tfor (const message of context.messages) {\n\t\tif (message.role !== \"user\" || typeof message.content === \"string\") {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const block of message.content) {\n\t\t\tif (block.type === \"image\") {\n\t\t\t\timages.push(block);\n\t\t\t}\n\t\t}\n\t}\n\treturn images;\n}\n\nfunction imageToDataUrl(image: ImageContent): string {\n\treturn `data:${image.mimeType};base64,${image.data}`;\n}\n\nfunction messageToText(message: Message): string {\n\tif (message.role === \"user\") {\n\t\tif (typeof message.content === \"string\") {\n\t\t\treturn message.content;\n\t\t}\n\t\treturn message.content.map(contentBlockToText).join(\"\\n\");\n\t}\n\tif (message.role === \"toolResult\") {\n\t\treturn formatToolResult(message);\n\t}\n\treturn message.content.map(assistantBlockToText).filter(Boolean).join(\"\\n\");\n}\n\nfunction contentBlockToText(block: { type: string }): string {\n\tif (\n\t\tblock.type === \"text\" &&\n\t\t\"text\" in block &&\n\t\ttypeof block.text === \"string\"\n\t) {\n\t\treturn block.text;\n\t}\n\tif (block.type === \"image\" && \"mimeType\" in block) {\n\t\treturn `[image: ${String(block.mimeType)}]`;\n\t}\n\treturn `[${block.type}]`;\n}\n\nfunction assistantBlockToText(\n\tblock: TextContent | ToolCall | { type: string },\n): string {\n\tif (\n\t\tblock.type === \"text\" &&\n\t\t\"text\" in block &&\n\t\ttypeof block.text === \"string\"\n\t) {\n\t\treturn block.text;\n\t}\n\tif (\n\t\tblock.type === \"thinking\" &&\n\t\t\"thinking\" in block &&\n\t\ttypeof block.thinking === \"string\"\n\t) {\n\t\treturn `<thinking>\\n${block.thinking}\\n</thinking>`;\n\t}\n\tif (block.type === \"toolCall\" && \"name\" in block && \"arguments\" in block) {\n\t\treturn `[tool call: ${String(block.name)} ${JSON.stringify(block.arguments)}]`;\n\t}\n\treturn \"\";\n}\n\nfunction formatToolResult(message: ToolResultMessage): string {\n\tconst content = message.content.map(contentBlockToText).join(\"\\n\");\n\treturn `[tool result: ${message.toolName}${message.isError ? \" error\" : \"\"}]\\n${content}`;\n}\n\nfunction mapCodexReasoningEffort(\n\teffort: ReasoningEffort | undefined,\n): \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | undefined {\n\tif (!effort) {\n\t\treturn undefined;\n\t}\n\tif (effort === \"ultra\") {\n\t\treturn \"xhigh\";\n\t}\n\treturn effort;\n}\n\nfunction mapCodexReasoningSummary(\n\tsummary: \"auto\" | \"detailed\" | \"concise\" | null | undefined,\n): \"auto\" | \"detailed\" | \"concise\" | \"none\" | undefined {\n\tif (summary === null) {\n\t\treturn \"none\";\n\t}\n\treturn summary;\n}\n\ntype CodexStreamItem =\n\t| { type: \"notification\"; notification: CodexAppServerNotification }\n\t| { type: \"providerToolEvent\"; event: AssistantMessageEvent };\n\nasync function nextCodexStreamItem(\n\tnotificationQueue: CodexAppServerNotification[],\n\tproviderToolEventQueue: AssistantMessageEvent[],\n\tgetWake: () => (() => void) | undefined,\n\tsetWake: (wake: (() => void) | undefined) => void,\n\tsignal: AbortSignal | undefined,\n\ttimeoutMs: number,\n): Promise<CodexStreamItem> {\n\tconst queuedProviderToolEvent = providerToolEventQueue.shift();\n\tif (queuedProviderToolEvent) {\n\t\treturn { type: \"providerToolEvent\", event: queuedProviderToolEvent };\n\t}\n\tconst queuedNotification = notificationQueue.shift();\n\tif (queuedNotification) {\n\t\treturn { type: \"notification\", notification: queuedNotification };\n\t}\n\tif (signal?.aborted) {\n\t\tthrow createAbortError(\"Codex app-server turn aborted\");\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tcleanup();\n\t\t\treject(new Error(\"Timed out waiting for Codex app-server turn events\"));\n\t\t}, timeoutMs);\n\t\tconst abort = (): void => {\n\t\t\tcleanup();\n\t\t\treject(createAbortError(\"Codex app-server turn aborted\"));\n\t\t};\n\t\tconst wake = (): void => {\n\t\t\tconst providerToolEvent = providerToolEventQueue.shift();\n\t\t\tif (providerToolEvent) {\n\t\t\t\tcleanup();\n\t\t\t\tresolve({ type: \"providerToolEvent\", event: providerToolEvent });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst notification = notificationQueue.shift();\n\t\t\tif (notification) {\n\t\t\t\tcleanup();\n\t\t\t\tresolve({ type: \"notification\", notification });\n\t\t\t\treturn;\n\t\t\t}\n\t\t};\n\t\tconst cleanup = (): void => {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (getWake() === wake) {\n\t\t\t\tsetWake(undefined);\n\t\t\t}\n\t\t\tsignal?.removeEventListener(\"abort\", abort);\n\t\t};\n\t\tsetWake(wake);\n\t\tsignal?.addEventListener(\"abort\", abort, { once: true });\n\t});\n}\n\nfunction readTurnErrorMessage(turn: Record<string, unknown>): string {\n\tconst error = turn.error;\n\tif (isRecord(error) && typeof error.message === \"string\") {\n\t\treturn error.message;\n\t}\n\treturn \"Codex app-server turn failed\";\n}\n\nfunction createAbortError(message: string): Error {\n\tconst error = new Error(message);\n\terror.name = \"AbortError\";\n\treturn error;\n}\n\nfunction isAbortError(error: unknown): boolean {\n\treturn error instanceof Error && error.name === \"AbortError\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n"]}
1
+ {"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../../../src/agent/providers/codex-app-server.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype CodexAccountReadResult,\n\ttype CodexAppServerClientLike,\n\ttype CodexAppServerNotification,\n\ttype CodexAppServerRequest,\n\ttype CodexAppServerRequestHandlerResult,\n\tcreateCodexAppServerClient,\n} from \"../../codex/app-server-client.js\";\nimport {\n\ttype CodexDynamicToolCompilation,\n\tcompileCodexDynamicToolSpecs,\n\tcreateCodexDynamicToolNameMap,\n} from \"../../codex/compatibility.js\";\nimport {\n\tCODEX_SUBAGENT_WORK_GRAPH_SCHEMA,\n\tCODEX_THREAD_CHILD_RUN_PREFIX,\n\ttype CodexSubagentCanonicalTool,\n\tcanonicalCodexSubagentTool,\n} from \"../../codex/subagent-workgraph.js\";\nimport { isRecord } from \"../../utils/json.js\";\nimport type {\n\tAgentToolResult,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tReasoningEffort,\n\tStreamOptions,\n\tTextContent,\n\tToolCall,\n\tToolResultMessage,\n\tUsage,\n} from \"../types.js\";\nimport { sanitizeSurrogates } from \"./sanitize-unicode.js\";\n\nexport interface CodexAppServerProviderOptions extends StreamOptions {\n\tcwd?: string;\n\treasoningEffort?: ReasoningEffort;\n\treasoningSummary?: \"auto\" | \"detailed\" | \"concise\" | null;\n\tcodexAppServerClient?: CodexAppServerClientLike;\n\tcodexAppServerClientFactory?: () =>\n\t\t| CodexAppServerClientLike\n\t\t| Promise<CodexAppServerClientLike>;\n\tturnTimeoutMs?: number;\n}\n\ntype ThreadStartResult = {\n\tthread: { id: string };\n};\n\ntype TurnStartResult = {\n\tturn: { id: string };\n};\n\ntype DynamicToolCallParams = {\n\tthreadId: string;\n\tturnId: string;\n\tcallId: string;\n\tnamespace?: string | null;\n\ttool: string;\n\targuments: unknown;\n};\n\ntype DynamicToolCallResponse = {\n\tcontentItems: DynamicToolCallOutputContentItem[];\n\tsuccess: boolean;\n};\n\ntype DynamicToolCallOutputContentItem =\n\t| { type: \"inputText\"; text: string }\n\t| { type: \"inputImage\"; imageUrl: string };\n\ntype CodexUserInput =\n\t| { type: \"text\"; text: string; text_elements: [] }\n\t| { type: \"image\"; url: string };\n\nconst DEFAULT_TURN_TIMEOUT_MS = 30 * 60_000;\ntype CodexCollabTool = CodexSubagentCanonicalTool;\n\ntype CodexCollabAgentToolCallItem = {\n\ttype: \"collabAgentToolCall\";\n\tid: string;\n\ttool: string;\n\tstatus: string;\n\tsenderThreadId: string;\n\treceiverThreadIds: string[];\n\tchildRunIds?: string[];\n\tprompt: string | null;\n\tmodel: string | null;\n\treasoningEffort: string | null;\n\tagentsStates: Record<string, unknown>;\n};\n\ntype CodexSubagentWorkGraph = {\n\tschemaVersion: typeof CODEX_SUBAGENT_WORK_GRAPH_SCHEMA;\n\ttoolCallId: string;\n\ttool: string;\n\tstatus: string;\n\tparent: {\n\t\tthreadId: string;\n\t\tturnId: string;\n\t\tsenderThreadId: string;\n\t};\n\tchildRuns: Array<{\n\t\tedgeId: string;\n\t\ttargetIndex: number;\n\t\tthreadId: string;\n\t\tchildRunId: string;\n\t\toperation: string;\n\t\tstatus?: string;\n\t}>;\n};\n\nexport async function* streamCodexAppServer(\n\tmodel: Model<\"openai-codex-app-server\">,\n\tcontext: Context,\n\toptions: CodexAppServerProviderOptions,\n): AsyncGenerator<AssistantMessageEvent, void, unknown> {\n\tconst output = createAssistantMessage(model);\n\tlet client = options.codexAppServerClient;\n\tlet ownsClient = false;\n\tlet unsubscribe: (() => void) | undefined;\n\tlet unsubscribeRequest: (() => void) | undefined;\n\tconst dynamicToolCompilation = buildDynamicToolSpecs(\n\t\tcontext,\n\t\toptions.executeDynamicTool,\n\t);\n\tconst dynamicTools = dynamicToolCompilation.specs;\n\tconst dynamicToolNameMap = createCodexDynamicToolNameMap(\n\t\tdynamicToolCompilation.bindings,\n\t);\n\n\ttry {\n\t\tif (!client) {\n\t\t\tclient = options.codexAppServerClientFactory\n\t\t\t\t? await options.codexAppServerClientFactory()\n\t\t\t\t: createCodexAppServerClient();\n\t\t\townsClient = true;\n\t\t}\n\n\t\tawait client.initialize(\n\t\t\tdynamicTools.length > 0 ? { experimentalApi: true } : undefined,\n\t\t);\n\n\t\tconst account = await client.readAccount(false);\n\t\tassertCodexAccount(account);\n\n\t\tconst notifications: CodexAppServerNotification[] = [];\n\t\tconst providerToolEvents: AssistantMessageEvent[] = [];\n\t\tlet wake: (() => void) | undefined;\n\t\tconst wakeStream = () => {\n\t\t\twake?.();\n\t\t};\n\t\tunsubscribe = client.onNotification((notification) => {\n\t\t\tnotifications.push(notification);\n\t\t\twakeStream();\n\t\t});\n\n\t\tconst cwd = options.cwd ?? process.cwd();\n\t\tconst threadStartParams: Record<string, unknown> = {\n\t\t\tmodel: model.id,\n\t\t\tcwd,\n\t\t\tephemeral: true,\n\t\t\tserviceName: \"maestro\",\n\t\t\tbaseInstructions: context.systemPrompt || undefined,\n\t\t};\n\t\tif (dynamicTools.length > 0) {\n\t\t\tthreadStartParams.dynamicTools = dynamicTools;\n\t\t}\n\t\tconst threadStart = await client.request<ThreadStartResult>(\n\t\t\t\"thread/start\",\n\t\t\tthreadStartParams,\n\t\t);\n\t\tconst threadId = readNestedId(threadStart, \"thread\", \"thread/start\");\n\t\tlet turnId: string | undefined;\n\t\tif (dynamicTools.length > 0) {\n\t\t\tunsubscribeRequest = client.onRequest((request) =>\n\t\t\t\thandleDynamicToolRequest(request, {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\texecuteDynamicTool: options.executeDynamicTool,\n\t\t\t\t\tdynamicToolNameMap,\n\t\t\t\t\tpartial: output,\n\t\t\t\t\temitToolEvent: (event) => {\n\t\t\t\t\t\tproviderToolEvents.push(event);\n\t\t\t\t\t\twakeStream();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tconst turnStart = await client.request<TurnStartResult>(\"turn/start\", {\n\t\t\tthreadId,\n\t\t\tinput: buildCodexUserInput(context),\n\t\t\tcwd,\n\t\t\tmodel: model.id,\n\t\t\teffort: mapCodexReasoningEffort(options.reasoningEffort),\n\t\t\tsummary: mapCodexReasoningSummary(options.reasoningSummary),\n\t\t});\n\t\tturnId = readNestedId(turnStart, \"turn\", \"turn/start\");\n\n\t\tyield { type: \"start\", partial: output };\n\n\t\tlet textIndex: number | null = null;\n\t\tlet completed = false;\n\t\tconst startedProviderToolCalls = new Set<string>();\n\t\twhile (!completed) {\n\t\t\tconst streamItem = await nextCodexStreamItem(\n\t\t\t\tnotifications,\n\t\t\t\tproviderToolEvents,\n\t\t\t\t() => wake,\n\t\t\t\t(nextWake) => {\n\t\t\t\t\twake = nextWake;\n\t\t\t\t},\n\t\t\t\toptions.signal,\n\t\t\t\toptions.turnTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS,\n\t\t\t);\n\t\t\tif (streamItem.type === \"providerToolEvent\") {\n\t\t\t\tyield streamItem.event;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst notification = streamItem.notification;\n\n\t\t\tif (notification.method === \"item/agentMessage/delta\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\ttypeof params.delta === \"string\"\n\t\t\t\t) {\n\t\t\t\t\ttextIndex = ensureTextBlock(output, textIndex);\n\t\t\t\t\tif (output.content[textIndex]?.type === \"text\") {\n\t\t\t\t\t\tconst block = output.content[textIndex] as TextContent;\n\t\t\t\t\t\tconst wasEmpty = block.text.length === 0;\n\t\t\t\t\t\tblock.text += params.delta;\n\t\t\t\t\t\tif (wasEmpty) {\n\t\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\t\ttype: \"text_start\",\n\t\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\tdelta: params.delta,\n\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"item/started\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\tisCodexCollabAgentToolCallItem(params.item)\n\t\t\t\t) {\n\t\t\t\t\tstartedProviderToolCalls.add(params.item.id);\n\t\t\t\t\tyield codexCollabToolStartEvent(params.item, output, {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"item/completed\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\tisRecord(params.item) &&\n\t\t\t\t\tparams.item.type === \"agentMessage\" &&\n\t\t\t\t\ttypeof params.item.text === \"string\"\n\t\t\t\t) {\n\t\t\t\t\ttextIndex = ensureTextBlock(output, textIndex);\n\t\t\t\t\tconst block = output.content[textIndex] as TextContent;\n\t\t\t\t\tif (params.item.text.length > block.text.length) {\n\t\t\t\t\t\tconst delta = params.item.text.slice(block.text.length);\n\t\t\t\t\t\tconst wasEmpty = block.text.length === 0;\n\t\t\t\t\t\tblock.text = params.item.text;\n\t\t\t\t\t\tif (wasEmpty) {\n\t\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\t\ttype: \"text_start\",\n\t\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\t\t\tcontentIndex: textIndex,\n\t\t\t\t\t\t\tdelta,\n\t\t\t\t\t\t\tpartial: output,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId &&\n\t\t\t\t\tisCodexCollabAgentToolCallItem(params.item)\n\t\t\t\t) {\n\t\t\t\t\tif (!startedProviderToolCalls.has(params.item.id)) {\n\t\t\t\t\t\tstartedProviderToolCalls.add(params.item.id);\n\t\t\t\t\t\tyield codexCollabToolStartEvent(params.item, output, {\n\t\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\t\tturnId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tyield codexCollabToolEndEvent(params.item, output, {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"thread/tokenUsage/updated\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(params) &&\n\t\t\t\t\tparams.threadId === threadId &&\n\t\t\t\t\tparams.turnId === turnId\n\t\t\t\t) {\n\t\t\t\t\tapplyCodexTokenUsage(output.usage, params.tokenUsage, model);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (notification.method === \"turn/completed\") {\n\t\t\t\tconst params = notification.params;\n\t\t\t\tif (!isRecord(params) || params.threadId !== threadId) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst turn = params.turn;\n\t\t\t\tif (!isRecord(turn) || turn.id !== turnId) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (turn.status === \"failed\") {\n\t\t\t\t\tthrow new Error(readTurnErrorMessage(turn));\n\t\t\t\t}\n\t\t\t\tif (turn.status === \"interrupted\") {\n\t\t\t\t\tthrow createAbortError(\"Codex app-server turn was interrupted\");\n\t\t\t\t}\n\t\t\t\tcompleted = true;\n\t\t\t}\n\t\t}\n\n\t\twhile (providerToolEvents.length > 0) {\n\t\t\tconst providerToolEvent = providerToolEvents.shift();\n\t\t\tif (providerToolEvent) {\n\t\t\t\tyield providerToolEvent;\n\t\t\t}\n\t\t}\n\n\t\tif (textIndex !== null && output.content[textIndex]?.type === \"text\") {\n\t\t\tyield {\n\t\t\t\ttype: \"text_end\",\n\t\t\t\tcontentIndex: textIndex,\n\t\t\t\tcontent: (output.content[textIndex] as TextContent).text,\n\t\t\t\tpartial: output,\n\t\t\t};\n\t\t}\n\t\toutput.stopReason = \"stop\";\n\t\tyield { type: \"done\", reason: \"stop\", message: output };\n\t} catch (error: unknown) {\n\t\tif (isAbortError(error)) {\n\t\t\toutput.stopReason = \"aborted\";\n\t\t\toutput.errorMessage = error instanceof Error ? error.message : \"Aborted\";\n\t\t\tyield { type: \"error\", reason: \"aborted\", error: output };\n\t\t\treturn;\n\t\t}\n\t\toutput.stopReason = \"error\";\n\t\toutput.errorMessage =\n\t\t\terror instanceof Error ? error.message : String(error);\n\t\tyield { type: \"error\", reason: \"error\", error: output };\n\t} finally {\n\t\tunsubscribe?.();\n\t\tunsubscribeRequest?.();\n\t\tif (ownsClient) {\n\t\t\tclient?.close();\n\t\t}\n\t}\n}\n\nfunction createAssistantMessage(\n\tmodel: Model<\"openai-codex-app-server\">,\n): AssistantMessage {\n\treturn {\n\t\trole: \"assistant\",\n\t\tcontent: [],\n\t\tapi: \"openai-codex-app-server\",\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tusage: emptyUsage(),\n\t\tstopReason: \"stop\",\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nfunction emptyUsage(): Usage {\n\treturn {\n\t\tinput: 0,\n\t\toutput: 0,\n\t\tcacheRead: 0,\n\t\tcacheWrite: 0,\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t};\n}\n\nfunction applyCodexTokenUsage(\n\tusage: Usage,\n\ttokenUsage: unknown,\n\tmodel: Model<\"openai-codex-app-server\">,\n): void {\n\tif (!isRecord(tokenUsage) || !isRecord(tokenUsage.last)) {\n\t\treturn;\n\t}\n\tconst cacheRead = readNumber(tokenUsage.last.cachedInputTokens);\n\tconst input = Math.max(\n\t\t0,\n\t\treadNumber(tokenUsage.last.inputTokens) - cacheRead,\n\t);\n\tconst output = readNumber(tokenUsage.last.outputTokens);\n\tconst cacheWrite = 0;\n\tusage.input = input;\n\tusage.output = output;\n\tusage.cacheRead = cacheRead;\n\tusage.cacheWrite = cacheWrite;\n\tconst inputCost = (input * model.cost.input) / 1_000_000;\n\tconst outputCost = (output * model.cost.output) / 1_000_000;\n\tconst cacheReadCost = (cacheRead * model.cost.cacheRead) / 1_000_000;\n\tconst cacheWriteCost = (cacheWrite * model.cost.cacheWrite) / 1_000_000;\n\tusage.cost = {\n\t\tinput: inputCost,\n\t\toutput: outputCost,\n\t\tcacheRead: cacheReadCost,\n\t\tcacheWrite: cacheWriteCost,\n\t\ttotal: inputCost + outputCost + cacheReadCost + cacheWriteCost,\n\t};\n}\n\nfunction isCodexCollabAgentToolCallItem(\n\tvalue: unknown,\n): value is CodexCollabAgentToolCallItem {\n\tif (!isRecord(value) || value.type !== \"collabAgentToolCall\") {\n\t\treturn false;\n\t}\n\tif (\n\t\ttypeof value.id !== \"string\" ||\n\t\ttypeof value.tool !== \"string\" ||\n\t\t!canonicalCodexCollabTool(value.tool) ||\n\t\ttypeof value.status !== \"string\" ||\n\t\ttypeof value.senderThreadId !== \"string\" ||\n\t\t!Array.isArray(value.receiverThreadIds) ||\n\t\t!value.receiverThreadIds.every((id) => typeof id === \"string\") ||\n\t\t(value.childRunIds !== undefined &&\n\t\t\t(!Array.isArray(value.childRunIds) ||\n\t\t\t\t!value.childRunIds.every((id) => typeof id === \"string\")))\n\t) {\n\t\treturn false;\n\t}\n\treturn (\n\t\t(value.prompt === null || typeof value.prompt === \"string\") &&\n\t\t(value.model === null || typeof value.model === \"string\") &&\n\t\t(value.reasoningEffort === null ||\n\t\t\ttypeof value.reasoningEffort === \"string\") &&\n\t\tisRecord(value.agentsStates)\n\t);\n}\n\nfunction codexCollabToolStartEvent(\n\titem: CodexCollabAgentToolCallItem,\n\toutput: AssistantMessage,\n\tscope: { threadId: string; turnId: string },\n): AssistantMessageEvent {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst toolName = codexCollabToolName(tool);\n\treturn {\n\t\ttype: \"provider_tool_execution_start\",\n\t\ttoolCallId: item.id,\n\t\ttoolName,\n\t\tdisplayName: codexCollabDisplayName(tool),\n\t\tsummaryLabel: codexCollabSummaryLabel(item),\n\t\targs: codexCollabArgs(item, scope),\n\t\tpartial: output,\n\t};\n}\n\nfunction codexCollabToolEndEvent(\n\titem: CodexCollabAgentToolCallItem,\n\toutput: AssistantMessage,\n\tscope: { threadId: string; turnId: string },\n): AssistantMessageEvent {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst toolName = codexCollabToolName(tool);\n\tconst isError = item.status === \"failed\";\n\tconst details = codexCollabArgs(item, scope);\n\treturn {\n\t\ttype: \"provider_tool_execution_end\",\n\t\ttoolCallId: item.id,\n\t\ttoolName,\n\t\tdisplayName: codexCollabDisplayName(tool),\n\t\tsummaryLabel: codexCollabSummaryLabel(item),\n\t\tresult: {\n\t\t\trole: \"toolResult\",\n\t\t\ttoolCallId: item.id,\n\t\t\ttoolName,\n\t\t\tcontent: [\n\t\t\t\t{\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: `${codexCollabDisplayName(tool)} ${isError ? \"failed\" : \"completed\"}.`,\n\t\t\t\t},\n\t\t\t],\n\t\t\tdetails,\n\t\t\tisError,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\tisError,\n\t\tpartial: output,\n\t};\n}\n\nfunction codexCollabArgs(\n\titem: CodexCollabAgentToolCallItem,\n\tscope: { threadId: string; turnId: string },\n): Record<string, unknown> {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst childRunIds = codexCollabChildRunIds(item);\n\treturn {\n\t\tcodexTool: tool,\n\t\tstatus: item.status,\n\t\tthreadId: scope.threadId,\n\t\tturnId: scope.turnId,\n\t\tsenderThreadId: item.senderThreadId,\n\t\treceiverThreadIds: item.receiverThreadIds,\n\t\tchildRunIds,\n\t\tcodexWorkGraph: codexCollabWorkGraph(item, scope, childRunIds, tool),\n\t\tprompt: item.prompt,\n\t\tmodel: item.model,\n\t\treasoningEffort: item.reasoningEffort,\n\t\tagentsStates: item.agentsStates,\n\t};\n}\n\nfunction codexCollabWorkGraph(\n\titem: CodexCollabAgentToolCallItem,\n\tscope: { threadId: string; turnId: string },\n\tchildRunIds: string[],\n\ttool: string,\n): CodexSubagentWorkGraph {\n\treturn {\n\t\tschemaVersion: CODEX_SUBAGENT_WORK_GRAPH_SCHEMA,\n\t\ttoolCallId: item.id,\n\t\ttool,\n\t\tstatus: item.status,\n\t\tparent: {\n\t\t\tthreadId: scope.threadId,\n\t\t\tturnId: scope.turnId,\n\t\t\tsenderThreadId: item.senderThreadId,\n\t\t},\n\t\tchildRuns: item.receiverThreadIds.map((threadId, index) => {\n\t\t\tconst childRunId =\n\t\t\t\tchildRunIds[index] ?? `${CODEX_THREAD_CHILD_RUN_PREFIX}${threadId}`;\n\t\t\treturn {\n\t\t\t\tedgeId: codexCollabEdgeId(item.id, childRunId, index, tool),\n\t\t\t\ttargetIndex: index,\n\t\t\t\tthreadId,\n\t\t\t\tchildRunId,\n\t\t\t\toperation: tool,\n\t\t\t\t...codexCollabChildStatus(item, threadId),\n\t\t\t};\n\t\t}),\n\t};\n}\n\nfunction codexCollabEdgeId(\n\ttoolCallId: string,\n\tchildRunId: string,\n\tindex: number,\n\ttool: string,\n): string {\n\treturn `${toolCallId}:${index}:${tool}:${childRunId}`;\n}\n\nfunction codexCollabChildStatus(\n\titem: CodexCollabAgentToolCallItem,\n\tthreadId: string,\n): { status: string } | Record<string, never> {\n\tconst agentState = item.agentsStates[threadId];\n\tif (!isRecord(agentState) || typeof agentState.status !== \"string\") {\n\t\treturn {};\n\t}\n\tconst status = agentState.status.trim();\n\treturn status ? { status } : {};\n}\n\nfunction codexCollabChildRunIds(item: CodexCollabAgentToolCallItem): string[] {\n\tconst childRunIds = item.childRunIds?.filter((id) => id.length > 0) ?? [];\n\tif (childRunIds.length > 0) {\n\t\treturn childRunIds;\n\t}\n\treturn item.receiverThreadIds.map(\n\t\t(threadId) => `${CODEX_THREAD_CHILD_RUN_PREFIX}${threadId}`,\n\t);\n}\n\nfunction codexCollabToolName(tool: string): string {\n\treturn `codex.subagent.${tool}`;\n}\n\nfunction codexCollabDisplayName(tool: string): string {\n\treturn `Codex subagent: ${codexCollabHumanTool(tool)}`;\n}\n\nfunction codexCollabSummaryLabel(item: CodexCollabAgentToolCallItem): string {\n\tconst tool = canonicalCodexCollabTool(item.tool) ?? item.tool;\n\tconst targetCount = item.receiverThreadIds.length;\n\tif (targetCount === 0) {\n\t\treturn codexCollabHumanTool(tool);\n\t}\n\tconst targetLabel = targetCount === 1 ? \"1 agent\" : `${targetCount} agents`;\n\treturn `${codexCollabHumanTool(tool)} ${targetLabel}`;\n}\n\nfunction canonicalCodexCollabTool(tool: string): CodexCollabTool | undefined {\n\treturn canonicalCodexSubagentTool(tool);\n}\n\nfunction codexCollabHumanTool(tool: string): string {\n\tswitch (tool) {\n\t\tcase \"spawnAgent\":\n\t\t\treturn \"spawn agent\";\n\t\tcase \"sendInput\":\n\t\t\treturn \"send input\";\n\t\tcase \"resumeAgent\":\n\t\t\treturn \"resume agent\";\n\t\tcase \"wait\":\n\t\t\treturn \"wait\";\n\t\tcase \"closeAgent\":\n\t\t\treturn \"close agent\";\n\t\tdefault:\n\t\t\treturn tool;\n\t}\n}\n\nfunction readNumber(value: unknown): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : 0;\n}\n\nfunction buildDynamicToolSpecs(\n\tcontext: Context,\n\texecuteDynamicTool: StreamOptions[\"executeDynamicTool\"],\n): CodexDynamicToolCompilation {\n\tif (!executeDynamicTool) {\n\t\treturn { specs: [], bindings: [], diagnostics: [] };\n\t}\n\treturn compileCodexDynamicToolSpecs(context.tools ?? []);\n}\n\nasync function handleDynamicToolRequest(\n\trequest: CodexAppServerRequest,\n\toptions: {\n\t\tthreadId: string;\n\t\tturnId?: string;\n\t\texecuteDynamicTool?: StreamOptions[\"executeDynamicTool\"];\n\t\tdynamicToolNameMap?: ReadonlyMap<string, string>;\n\t\tpartial: AssistantMessage;\n\t\temitToolEvent?: (event: AssistantMessageEvent) => void;\n\t},\n): Promise<CodexAppServerRequestHandlerResult> {\n\tif (request.method !== \"item/tool/call\") {\n\t\treturn { handled: false };\n\t}\n\n\tconst params = parseDynamicToolCallParams(request.params);\n\tif (!params) {\n\t\treturn {\n\t\t\thandled: true,\n\t\t\terror: {\n\t\t\t\tcode: -32602,\n\t\t\t\tmessage: \"Invalid Codex app-server dynamic tool call params\",\n\t\t\t},\n\t\t};\n\t}\n\tif (\n\t\tparams.threadId !== options.threadId ||\n\t\t(options.turnId && params.turnId !== options.turnId)\n\t) {\n\t\treturn { handled: false };\n\t}\n\n\tconst originalToolName =\n\t\toptions.dynamicToolNameMap?.get(params.tool) ?? params.tool;\n\toptions.emitToolEvent?.(\n\t\tcodexDynamicToolStartEvent(params, originalToolName, options.partial),\n\t);\n\n\tif (!options.executeDynamicTool) {\n\t\tconst result = dynamicToolFailureResult(\n\t\t\t\"Maestro dynamic tool execution is unavailable\",\n\t\t);\n\t\toptions.emitToolEvent?.(\n\t\t\tcodexDynamicToolEndEvent(\n\t\t\t\tparams,\n\t\t\t\toriginalToolName,\n\t\t\t\tresult,\n\t\t\t\toptions.partial,\n\t\t\t),\n\t\t);\n\t\treturn {\n\t\t\thandled: true,\n\t\t\tresult: agentToolResultToDynamicToolResponse(result),\n\t\t};\n\t}\n\n\ttry {\n\t\tconst result = await options.executeDynamicTool({\n\t\t\ttype: \"toolCall\",\n\t\t\tid: params.callId,\n\t\t\tname: originalToolName,\n\t\t\targuments: isRecord(params.arguments) ? params.arguments : {},\n\t\t});\n\t\toptions.emitToolEvent?.(\n\t\t\tcodexDynamicToolEndEvent(\n\t\t\t\tparams,\n\t\t\t\toriginalToolName,\n\t\t\t\tresult,\n\t\t\t\toptions.partial,\n\t\t\t),\n\t\t);\n\t\treturn {\n\t\t\thandled: true,\n\t\t\tresult: agentToolResultToDynamicToolResponse(result),\n\t\t};\n\t} catch (error: unknown) {\n\t\tconst result = dynamicToolFailureResult(formatErrorMessage(error));\n\t\toptions.emitToolEvent?.(\n\t\t\tcodexDynamicToolEndEvent(\n\t\t\t\tparams,\n\t\t\t\toriginalToolName,\n\t\t\t\tresult,\n\t\t\t\toptions.partial,\n\t\t\t),\n\t\t);\n\t\treturn {\n\t\t\thandled: true,\n\t\t\tresult: agentToolResultToDynamicToolResponse(result),\n\t\t};\n\t}\n}\n\nfunction codexDynamicToolStartEvent(\n\tparams: DynamicToolCallParams,\n\ttoolName: string,\n\tpartial: AssistantMessage,\n): AssistantMessageEvent {\n\treturn {\n\t\ttype: \"provider_tool_execution_start\",\n\t\ttoolCallId: params.callId,\n\t\ttoolName,\n\t\tdisplayName: codexDynamicToolDisplayName(toolName),\n\t\tsummaryLabel: toolName,\n\t\targs: codexDynamicToolArgs(params, toolName),\n\t\tpartial,\n\t};\n}\n\nfunction codexDynamicToolEndEvent(\n\tparams: DynamicToolCallParams,\n\ttoolName: string,\n\tresult: AgentToolResult,\n\tpartial: AssistantMessage,\n): AssistantMessageEvent {\n\tconst isError = result.isError === true;\n\treturn {\n\t\ttype: \"provider_tool_execution_end\",\n\t\ttoolCallId: params.callId,\n\t\ttoolName,\n\t\tdisplayName: codexDynamicToolDisplayName(toolName),\n\t\tsummaryLabel: toolName,\n\t\ttoolExecutionId: result.toolExecutionId,\n\t\tapprovalRequestId: result.approvalRequestId,\n\t\tresult: {\n\t\t\trole: \"toolResult\",\n\t\t\ttoolCallId: params.callId,\n\t\t\ttoolName,\n\t\t\tcontent: result.content,\n\t\t\tdetails: result.details,\n\t\t\tisError,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\tisError,\n\t\tpartial,\n\t};\n}\n\nfunction codexDynamicToolDisplayName(toolName: string): string {\n\treturn `Codex dynamic tool: ${toolName}`;\n}\n\nfunction codexDynamicToolArgs(\n\tparams: DynamicToolCallParams,\n\ttoolName: string,\n): Record<string, unknown> {\n\treturn {\n\t\tcodexTool: params.tool,\n\t\ttoolName,\n\t\tnamespace: params.namespace ?? null,\n\t\tthreadId: params.threadId,\n\t\tturnId: params.turnId,\n\t\tcallId: params.callId,\n\t\targuments: isRecord(params.arguments) ? params.arguments : {},\n\t};\n}\n\nfunction dynamicToolFailureResult(message: string): AgentToolResult {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: message }],\n\t\tisError: true,\n\t};\n}\n\nfunction parseDynamicToolCallParams(\n\tvalue: unknown,\n): DynamicToolCallParams | null {\n\tif (!isRecord(value)) {\n\t\treturn null;\n\t}\n\tif (\n\t\ttypeof value.threadId !== \"string\" ||\n\t\ttypeof value.turnId !== \"string\" ||\n\t\ttypeof value.callId !== \"string\" ||\n\t\ttypeof value.tool !== \"string\"\n\t) {\n\t\treturn null;\n\t}\n\treturn {\n\t\tthreadId: value.threadId,\n\t\tturnId: value.turnId,\n\t\tcallId: value.callId,\n\t\tnamespace:\n\t\t\ttypeof value.namespace === \"string\" || value.namespace === null\n\t\t\t\t? value.namespace\n\t\t\t\t: undefined,\n\t\ttool: value.tool,\n\t\targuments: value.arguments,\n\t};\n}\n\nfunction agentToolResultToDynamicToolResponse(\n\tresult: AgentToolResult,\n): DynamicToolCallResponse {\n\tconst contentItems: DynamicToolCallOutputContentItem[] = [];\n\tfor (const item of result.content) {\n\t\tif (item.type === \"text\") {\n\t\t\tcontentItems.push({ type: \"inputText\", text: item.text });\n\t\t\tcontinue;\n\t\t}\n\t\tif (item.type === \"image\") {\n\t\t\tcontentItems.push({\n\t\t\t\ttype: \"inputImage\",\n\t\t\t\timageUrl: `data:${item.mimeType};base64,${item.data}`,\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\tcontentItems:\n\t\t\tcontentItems.length > 0\n\t\t\t\t? contentItems\n\t\t\t\t: [{ type: \"inputText\", text: \"\" }],\n\t\tsuccess: !result.isError,\n\t};\n}\n\nfunction formatErrorMessage(error: unknown): string {\n\treturn error instanceof Error ? error.message : String(error);\n}\n\nfunction assertCodexAccount(account: CodexAccountReadResult): void {\n\tif (account.account) {\n\t\treturn;\n\t}\n\tthrow new Error(\n\t\t'OpenAI Codex is not signed in. Run \"maestro codex login\" to sign in with ChatGPT.',\n\t);\n}\n\nfunction readNestedId(\n\tresult: unknown,\n\tproperty: \"thread\" | \"turn\",\n\tmethod: string,\n): string {\n\tif (!isRecord(result) || !isRecord(result[property])) {\n\t\tthrow new Error(`Codex app-server ${method} returned an invalid response`);\n\t}\n\tconst id = result[property].id;\n\tif (typeof id !== \"string\" || id.length === 0) {\n\t\tthrow new Error(`Codex app-server ${method} did not return an id`);\n\t}\n\treturn id;\n}\n\nfunction ensureTextBlock(\n\toutput: AssistantMessage,\n\tcurrentIndex: number | null,\n): number {\n\tif (\n\t\tcurrentIndex !== null &&\n\t\toutput.content[currentIndex] &&\n\t\toutput.content[currentIndex].type === \"text\"\n\t) {\n\t\treturn currentIndex;\n\t}\n\tconst nextIndex = output.content.length;\n\toutput.content.push({ type: \"text\", text: \"\" });\n\treturn nextIndex;\n}\n\nfunction formatContextForCodex(context: Context): string {\n\tconst lines: string[] = [];\n\tfor (const message of context.messages) {\n\t\tconst text = messageToText(message);\n\t\tif (!text.trim()) {\n\t\t\tcontinue;\n\t\t}\n\t\tlines.push(`${message.role}:\\n${text}`);\n\t}\n\treturn sanitizeSurrogates(lines.join(\"\\n\\n\"));\n}\n\nfunction buildCodexUserInput(context: Context): CodexUserInput[] {\n\tconst prompt = formatContextForCodex(context);\n\tconst input: CodexUserInput[] = [];\n\tif (prompt.trim()) {\n\t\tinput.push({ type: \"text\", text: prompt, text_elements: [] });\n\t}\n\tfor (const image of extractUserImages(context)) {\n\t\tinput.push({ type: \"image\", url: imageToDataUrl(image) });\n\t}\n\tif (input.length === 0) {\n\t\tinput.push({ type: \"text\", text: \"\", text_elements: [] });\n\t}\n\treturn input;\n}\n\nfunction extractUserImages(context: Context): ImageContent[] {\n\tconst images: ImageContent[] = [];\n\tfor (const message of context.messages) {\n\t\tif (message.role !== \"user\" || typeof message.content === \"string\") {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const block of message.content) {\n\t\t\tif (block.type === \"image\") {\n\t\t\t\timages.push(block);\n\t\t\t}\n\t\t}\n\t}\n\treturn images;\n}\n\nfunction imageToDataUrl(image: ImageContent): string {\n\treturn `data:${image.mimeType};base64,${image.data}`;\n}\n\nfunction messageToText(message: Message): string {\n\tif (message.role === \"user\") {\n\t\tif (typeof message.content === \"string\") {\n\t\t\treturn message.content;\n\t\t}\n\t\treturn message.content.map(contentBlockToText).join(\"\\n\");\n\t}\n\tif (message.role === \"toolResult\") {\n\t\treturn formatToolResult(message);\n\t}\n\treturn message.content.map(assistantBlockToText).filter(Boolean).join(\"\\n\");\n}\n\nfunction contentBlockToText(block: { type: string }): string {\n\tif (\n\t\tblock.type === \"text\" &&\n\t\t\"text\" in block &&\n\t\ttypeof block.text === \"string\"\n\t) {\n\t\treturn block.text;\n\t}\n\tif (block.type === \"image\" && \"mimeType\" in block) {\n\t\treturn `[image: ${String(block.mimeType)}]`;\n\t}\n\treturn `[${block.type}]`;\n}\n\nfunction assistantBlockToText(\n\tblock: TextContent | ToolCall | { type: string },\n): string {\n\tif (\n\t\tblock.type === \"text\" &&\n\t\t\"text\" in block &&\n\t\ttypeof block.text === \"string\"\n\t) {\n\t\treturn block.text;\n\t}\n\tif (\n\t\tblock.type === \"thinking\" &&\n\t\t\"thinking\" in block &&\n\t\ttypeof block.thinking === \"string\"\n\t) {\n\t\treturn `<thinking>\\n${block.thinking}\\n</thinking>`;\n\t}\n\tif (block.type === \"toolCall\" && \"name\" in block && \"arguments\" in block) {\n\t\treturn `[tool call: ${String(block.name)} ${JSON.stringify(block.arguments)}]`;\n\t}\n\treturn \"\";\n}\n\nfunction formatToolResult(message: ToolResultMessage): string {\n\tconst content = message.content.map(contentBlockToText).join(\"\\n\");\n\treturn `[tool result: ${message.toolName}${message.isError ? \" error\" : \"\"}]\\n${content}`;\n}\n\nfunction mapCodexReasoningEffort(\n\teffort: ReasoningEffort | undefined,\n): \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | undefined {\n\tif (!effort) {\n\t\treturn undefined;\n\t}\n\tif (effort === \"ultra\") {\n\t\treturn \"xhigh\";\n\t}\n\treturn effort;\n}\n\nfunction mapCodexReasoningSummary(\n\tsummary: \"auto\" | \"detailed\" | \"concise\" | null | undefined,\n): \"auto\" | \"detailed\" | \"concise\" | \"none\" | undefined {\n\tif (summary === null) {\n\t\treturn \"none\";\n\t}\n\treturn summary;\n}\n\ntype CodexStreamItem =\n\t| { type: \"notification\"; notification: CodexAppServerNotification }\n\t| { type: \"providerToolEvent\"; event: AssistantMessageEvent };\n\nasync function nextCodexStreamItem(\n\tnotificationQueue: CodexAppServerNotification[],\n\tproviderToolEventQueue: AssistantMessageEvent[],\n\tgetWake: () => (() => void) | undefined,\n\tsetWake: (wake: (() => void) | undefined) => void,\n\tsignal: AbortSignal | undefined,\n\ttimeoutMs: number,\n): Promise<CodexStreamItem> {\n\tconst queuedProviderToolEvent = providerToolEventQueue.shift();\n\tif (queuedProviderToolEvent) {\n\t\treturn { type: \"providerToolEvent\", event: queuedProviderToolEvent };\n\t}\n\tconst queuedNotification = notificationQueue.shift();\n\tif (queuedNotification) {\n\t\treturn { type: \"notification\", notification: queuedNotification };\n\t}\n\tif (signal?.aborted) {\n\t\tthrow createAbortError(\"Codex app-server turn aborted\");\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tcleanup();\n\t\t\treject(new Error(\"Timed out waiting for Codex app-server turn events\"));\n\t\t}, timeoutMs);\n\t\tconst abort = (): void => {\n\t\t\tcleanup();\n\t\t\treject(createAbortError(\"Codex app-server turn aborted\"));\n\t\t};\n\t\tconst wake = (): void => {\n\t\t\tconst providerToolEvent = providerToolEventQueue.shift();\n\t\t\tif (providerToolEvent) {\n\t\t\t\tcleanup();\n\t\t\t\tresolve({ type: \"providerToolEvent\", event: providerToolEvent });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst notification = notificationQueue.shift();\n\t\t\tif (notification) {\n\t\t\t\tcleanup();\n\t\t\t\tresolve({ type: \"notification\", notification });\n\t\t\t\treturn;\n\t\t\t}\n\t\t};\n\t\tconst cleanup = (): void => {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (getWake() === wake) {\n\t\t\t\tsetWake(undefined);\n\t\t\t}\n\t\t\tsignal?.removeEventListener(\"abort\", abort);\n\t\t};\n\t\tsetWake(wake);\n\t\tsignal?.addEventListener(\"abort\", abort, { once: true });\n\t});\n}\n\nfunction readTurnErrorMessage(turn: Record<string, unknown>): string {\n\tconst error = turn.error;\n\tif (isRecord(error) && typeof error.message === \"string\") {\n\t\treturn error.message;\n\t}\n\treturn \"Codex app-server turn failed\";\n}\n\nfunction createAbortError(message: string): Error {\n\tconst error = new Error(message);\n\terror.name = \"AbortError\";\n\treturn error;\n}\n\nfunction isAbortError(error: unknown): boolean {\n\treturn error instanceof Error && error.name === \"AbortError\";\n}\n"]}