@evalops/maestro 0.10.50 → 0.10.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1825) hide show
  1. package/README.md +1 -3
  2. package/dist/agent/agent-outcome.d.ts +54 -0
  3. package/dist/agent/agent-outcome.d.ts.map +1 -0
  4. package/dist/agent/agent-outcome.js +142 -0
  5. package/dist/agent/agent-outcome.js.map +1 -0
  6. package/dist/agent/agent-resume.d.ts.map +1 -1
  7. package/dist/agent/agent-resume.js +3 -3
  8. package/dist/agent/agent-resume.js.map +1 -1
  9. package/dist/agent/agent-run-summary.d.ts +37 -0
  10. package/dist/agent/agent-run-summary.d.ts.map +1 -0
  11. package/dist/agent/agent-run-summary.js +15 -0
  12. package/dist/agent/agent-run-summary.js.map +1 -0
  13. package/dist/agent/agent-work-board.d.ts +82 -0
  14. package/dist/agent/agent-work-board.d.ts.map +1 -0
  15. package/dist/agent/agent-work-board.js +312 -0
  16. package/dist/agent/agent-work-board.js.map +1 -0
  17. package/dist/agent/agent.d.ts.map +1 -1
  18. package/dist/agent/agent.js.map +1 -1
  19. package/dist/agent/auto-compaction.d.ts +7 -2
  20. package/dist/agent/auto-compaction.d.ts.map +1 -1
  21. package/dist/agent/auto-compaction.js +23 -10
  22. package/dist/agent/auto-compaction.js.map +1 -1
  23. package/dist/agent/compaction.d.ts.map +1 -1
  24. package/dist/agent/compaction.js +1 -1
  25. package/dist/agent/compaction.js.map +1 -1
  26. package/dist/agent/context-handoff.d.ts.map +1 -1
  27. package/dist/agent/context-handoff.js +2 -1
  28. package/dist/agent/context-handoff.js.map +1 -1
  29. package/dist/agent/index.d.ts +8 -1
  30. package/dist/agent/index.d.ts.map +1 -1
  31. package/dist/agent/index.js +8 -1
  32. package/dist/agent/index.js.map +1 -1
  33. package/dist/agent/mission-artifacts.d.ts +62 -0
  34. package/dist/agent/mission-artifacts.d.ts.map +1 -0
  35. package/dist/agent/mission-artifacts.js +438 -0
  36. package/dist/agent/mission-artifacts.js.map +1 -0
  37. package/dist/agent/mission-manifest.d.ts +139 -3
  38. package/dist/agent/mission-manifest.d.ts.map +1 -1
  39. package/dist/agent/mission-manifest.js +549 -3
  40. package/dist/agent/mission-manifest.js.map +1 -1
  41. package/dist/agent/mission-store.d.ts +80 -0
  42. package/dist/agent/mission-store.d.ts.map +1 -0
  43. package/dist/agent/mission-store.js +603 -0
  44. package/dist/agent/mission-store.js.map +1 -0
  45. package/dist/agent/modes.d.ts +3 -3
  46. package/dist/agent/modes.d.ts.map +1 -1
  47. package/dist/agent/modes.js +66 -3
  48. package/dist/agent/modes.js.map +1 -1
  49. package/dist/agent/oracle-consultation-policy.d.ts +22 -0
  50. package/dist/agent/oracle-consultation-policy.d.ts.map +1 -0
  51. package/dist/agent/oracle-consultation-policy.js +72 -0
  52. package/dist/agent/oracle-consultation-policy.js.map +1 -0
  53. package/dist/agent/oracle-policy-experiment.d.ts +27 -0
  54. package/dist/agent/oracle-policy-experiment.d.ts.map +1 -0
  55. package/dist/agent/oracle-policy-experiment.js +59 -0
  56. package/dist/agent/oracle-policy-experiment.js.map +1 -0
  57. package/dist/agent/oracle-policy-rollout.d.ts +42 -0
  58. package/dist/agent/oracle-policy-rollout.d.ts.map +1 -0
  59. package/dist/agent/oracle-policy-rollout.js +80 -0
  60. package/dist/agent/oracle-policy-rollout.js.map +1 -0
  61. package/dist/agent/plugin-agent-api.d.ts +13 -0
  62. package/dist/agent/plugin-agent-api.d.ts.map +1 -0
  63. package/dist/agent/plugin-agent-api.js +11 -0
  64. package/dist/agent/plugin-agent-api.js.map +1 -0
  65. package/dist/agent/plugin-agent-loader.d.ts +17 -0
  66. package/dist/agent/plugin-agent-loader.d.ts.map +1 -0
  67. package/dist/agent/plugin-agent-loader.js +81 -0
  68. package/dist/agent/plugin-agent-loader.js.map +1 -0
  69. package/dist/agent/plugin-agent-registry.d.ts +62 -0
  70. package/dist/agent/plugin-agent-registry.d.ts.map +1 -0
  71. package/dist/agent/plugin-agent-registry.js +109 -0
  72. package/dist/agent/plugin-agent-registry.js.map +1 -0
  73. package/dist/agent/profile-loader.d.ts +7 -0
  74. package/dist/agent/profile-loader.d.ts.map +1 -0
  75. package/dist/agent/profile-loader.js +115 -0
  76. package/dist/agent/profile-loader.js.map +1 -0
  77. package/dist/agent/profiles.d.ts +30 -0
  78. package/dist/agent/profiles.d.ts.map +1 -0
  79. package/dist/agent/profiles.js +146 -0
  80. package/dist/agent/profiles.js.map +1 -0
  81. package/dist/agent/prompt-cache.d.ts +0 -4
  82. package/dist/agent/prompt-cache.d.ts.map +1 -1
  83. package/dist/agent/prompt-cache.js +1 -7
  84. package/dist/agent/prompt-cache.js.map +1 -1
  85. package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
  86. package/dist/agent/providers/codex-app-server.js +1 -3
  87. package/dist/agent/providers/codex-app-server.js.map +1 -1
  88. package/dist/agent/providers/google-gemini-cli.js +204 -107
  89. package/dist/agent/providers/google.js +101 -41
  90. package/dist/agent/providers/scripted.d.ts.map +1 -1
  91. package/dist/agent/providers/scripted.js +1 -3
  92. package/dist/agent/providers/scripted.js.map +1 -1
  93. package/dist/agent/providers/validation.d.ts.map +1 -1
  94. package/dist/agent/providers/validation.js +1 -3
  95. package/dist/agent/providers/validation.js.map +1 -1
  96. package/dist/agent/providers/vertex.js +204 -107
  97. package/dist/agent/routing-receipt.d.ts +34 -0
  98. package/dist/agent/routing-receipt.d.ts.map +1 -0
  99. package/dist/agent/routing-receipt.js +55 -0
  100. package/dist/agent/routing-receipt.js.map +1 -0
  101. package/dist/agent/skill-artifact-metadata.d.ts +14 -0
  102. package/dist/agent/skill-artifact-metadata.d.ts.map +1 -0
  103. package/dist/agent/skill-artifact-metadata.js +49 -0
  104. package/dist/agent/skill-artifact-metadata.js.map +1 -0
  105. package/dist/agent/snapshot-store.d.ts +32 -0
  106. package/dist/agent/snapshot-store.d.ts.map +1 -0
  107. package/dist/agent/snapshot-store.js +195 -0
  108. package/dist/agent/snapshot-store.js.map +1 -0
  109. package/dist/agent/specialist-profiles.d.ts +36 -0
  110. package/dist/agent/specialist-profiles.d.ts.map +1 -0
  111. package/dist/agent/specialist-profiles.js +159 -0
  112. package/dist/agent/specialist-profiles.js.map +1 -0
  113. package/dist/agent/subagent-specs.d.ts +5 -2
  114. package/dist/agent/subagent-specs.d.ts.map +1 -1
  115. package/dist/agent/subagent-specs.js +83 -10
  116. package/dist/agent/subagent-specs.js.map +1 -1
  117. package/dist/agent/swarm/coverage-gate.d.ts +37 -0
  118. package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
  119. package/dist/agent/swarm/coverage-gate.js +48 -0
  120. package/dist/agent/swarm/coverage-gate.js.map +1 -0
  121. package/dist/agent/swarm/executor.d.ts +1 -0
  122. package/dist/agent/swarm/executor.d.ts.map +1 -1
  123. package/dist/agent/swarm/executor.js +151 -15
  124. package/dist/agent/swarm/executor.js.map +1 -1
  125. package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
  126. package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
  127. package/dist/agent/swarm/orchestrator-prompt.js +48 -0
  128. package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
  129. package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
  130. package/dist/agent/swarm/plan-parser.js +27 -2
  131. package/dist/agent/swarm/plan-parser.js.map +1 -1
  132. package/dist/agent/swarm/types.d.ts +17 -0
  133. package/dist/agent/swarm/types.d.ts.map +1 -1
  134. package/dist/agent/swarm/types.js.map +1 -1
  135. package/dist/agent/swarm/validation-directive.d.ts +21 -0
  136. package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
  137. package/dist/agent/swarm/validation-directive.js +25 -0
  138. package/dist/agent/swarm/validation-directive.js.map +1 -0
  139. package/dist/agent/token-counter.d.ts +40 -0
  140. package/dist/agent/token-counter.d.ts.map +1 -0
  141. package/dist/agent/token-counter.js +74 -0
  142. package/dist/agent/token-counter.js.map +1 -0
  143. package/dist/agent/transport/events.d.ts +1 -1
  144. package/dist/agent/transport/events.d.ts.map +1 -1
  145. package/dist/agent/transport/events.js +1 -1
  146. package/dist/agent/transport/events.js.map +1 -1
  147. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  148. package/dist/agent/transport/tool-execution-bridge.js +4 -1
  149. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  150. package/dist/agent/types.d.ts +4 -2
  151. package/dist/agent/types.d.ts.map +1 -1
  152. package/dist/agent/types.js.map +1 -1
  153. package/dist/api/enterprise-routes.d.ts.map +1 -1
  154. package/dist/api/enterprise-routes.js +87 -10
  155. package/dist/api/enterprise-routes.js.map +1 -1
  156. package/dist/api/org-settings-merge.d.ts +12 -0
  157. package/dist/api/org-settings-merge.d.ts.map +1 -0
  158. package/dist/api/org-settings-merge.js +38 -0
  159. package/dist/api/org-settings-merge.js.map +1 -0
  160. package/dist/api/user-settings-merge.d.ts +16 -0
  161. package/dist/api/user-settings-merge.d.ts.map +1 -0
  162. package/dist/api/user-settings-merge.js +37 -0
  163. package/dist/api/user-settings-merge.js.map +1 -0
  164. package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
  165. package/dist/app-server/daemon-lifecycle-api.js +1 -3
  166. package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
  167. package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
  168. package/dist/app-server/external-agent-import-api.js +1 -3
  169. package/dist/app-server/external-agent-import-api.js.map +1 -1
  170. package/dist/app-server/network-governance-api.d.ts.map +1 -1
  171. package/dist/app-server/network-governance-api.js +1 -3
  172. package/dist/app-server/network-governance-api.js.map +1 -1
  173. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
  174. package/dist/app-server/plugin-bundle-api.js +2 -3
  175. package/dist/app-server/plugin-bundle-api.js.map +1 -1
  176. package/dist/app-server/policy-control-api.d.ts.map +1 -1
  177. package/dist/app-server/policy-control-api.js +1 -3
  178. package/dist/app-server/policy-control-api.js.map +1 -1
  179. package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
  180. package/dist/app-server/protocol-modes-api.js +1 -3
  181. package/dist/app-server/protocol-modes-api.js.map +1 -1
  182. package/dist/app-server/session-api.d.ts.map +1 -1
  183. package/dist/app-server/session-api.js +15 -2
  184. package/dist/app-server/session-api.js.map +1 -1
  185. package/dist/audit/logger.d.ts +5 -5
  186. package/dist/cli/args.d.ts +4 -0
  187. package/dist/cli/args.d.ts.map +1 -1
  188. package/dist/cli/args.js +33 -1
  189. package/dist/cli/args.js.map +1 -1
  190. package/dist/cli/commands/a2a.d.ts.map +1 -1
  191. package/dist/cli/commands/a2a.js +1 -3
  192. package/dist/cli/commands/a2a.js.map +1 -1
  193. package/dist/cli/commands/mission.d.ts +4 -0
  194. package/dist/cli/commands/mission.d.ts.map +1 -0
  195. package/dist/cli/commands/mission.js +196 -0
  196. package/dist/cli/commands/mission.js.map +1 -0
  197. package/dist/cli/commands/value.d.ts +10 -0
  198. package/dist/cli/commands/value.d.ts.map +1 -0
  199. package/dist/cli/commands/value.js +33 -0
  200. package/dist/cli/commands/value.js.map +1 -0
  201. package/dist/cli/direct-runtime-command.d.ts +1 -0
  202. package/dist/cli/direct-runtime-command.d.ts.map +1 -1
  203. package/dist/cli/direct-runtime-command.js +25 -3
  204. package/dist/cli/direct-runtime-command.js.map +1 -1
  205. package/dist/cli/headless-protocol.d.ts.map +1 -1
  206. package/dist/cli/headless-protocol.js +1 -3
  207. package/dist/cli/headless-protocol.js.map +1 -1
  208. package/dist/cli/headless.d.ts +3 -19
  209. package/dist/cli/headless.d.ts.map +1 -1
  210. package/dist/cli/headless.js +8 -619
  211. package/dist/cli/headless.js.map +1 -1
  212. package/dist/cli/help.d.ts.map +1 -1
  213. package/dist/cli/help.js +13 -0
  214. package/dist/cli/help.js.map +1 -1
  215. package/dist/cli/native-tui-launcher.d.ts +126 -0
  216. package/dist/cli/native-tui-launcher.d.ts.map +1 -0
  217. package/dist/cli/native-tui-launcher.js +425 -0
  218. package/dist/cli/native-tui-launcher.js.map +1 -0
  219. package/dist/cli/rpc-mode.d.ts +3 -27
  220. package/dist/cli/rpc-mode.d.ts.map +1 -1
  221. package/dist/cli/rpc-mode.js +8 -177
  222. package/dist/cli/rpc-mode.js.map +1 -1
  223. package/dist/cli/session.d.ts +11 -19
  224. package/dist/cli/session.d.ts.map +1 -1
  225. package/dist/cli/session.js +6 -64
  226. package/dist/cli/session.js.map +1 -1
  227. package/dist/cli/system-prompt.d.ts.map +1 -1
  228. package/dist/cli/system-prompt.js +38 -7
  229. package/dist/cli/system-prompt.js.map +1 -1
  230. package/dist/cli-command-runtime.d.ts.map +1 -1
  231. package/dist/cli-command-runtime.js +26 -24
  232. package/dist/cli-command-runtime.js.map +1 -1
  233. package/dist/cli-runtime.js +41729 -121859
  234. package/dist/codex/app-server-client.d.ts.map +1 -1
  235. package/dist/codex/app-server-client.js +1 -3
  236. package/dist/codex/app-server-client.js.map +1 -1
  237. package/dist/codex/compatibility.d.ts.map +1 -1
  238. package/dist/codex/compatibility.js +1 -3
  239. package/dist/codex/compatibility.js.map +1 -1
  240. package/dist/codex/subagent-dispatch-table.d.ts +8 -0
  241. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
  242. package/dist/codex/subagent-dispatch-table.js +23 -0
  243. package/dist/codex/subagent-dispatch-table.js.map +1 -1
  244. package/dist/config/env-vars.d.ts +12 -0
  245. package/dist/config/env-vars.d.ts.map +1 -1
  246. package/dist/config/env-vars.js +12 -0
  247. package/dist/config/env-vars.js.map +1 -1
  248. package/dist/config/ui-state.d.ts +32 -0
  249. package/dist/config/ui-state.d.ts.map +1 -0
  250. package/dist/config/ui-state.js +88 -0
  251. package/dist/config/ui-state.js.map +1 -0
  252. package/dist/context/manifest.d.ts.map +1 -1
  253. package/dist/context/manifest.js +1 -3
  254. package/dist/context/manifest.js.map +1 -1
  255. package/dist/context/repo-map.d.ts.map +1 -1
  256. package/dist/context/repo-map.js +1 -7
  257. package/dist/context/repo-map.js.map +1 -1
  258. package/dist/context/token-optimizer.d.ts.map +1 -1
  259. package/dist/context/token-optimizer.js +1 -8
  260. package/dist/context/token-optimizer.js.map +1 -1
  261. package/dist/conversation/render-model.d.ts +0 -36
  262. package/dist/conversation/render-model.d.ts.map +1 -1
  263. package/dist/conversation/render-model.js +1 -3
  264. package/dist/conversation/render-model.js.map +1 -1
  265. package/dist/customer-value/ambient-learning.d.ts +75 -0
  266. package/dist/customer-value/ambient-learning.d.ts.map +1 -0
  267. package/dist/customer-value/ambient-learning.js +472 -0
  268. package/dist/customer-value/ambient-learning.js.map +1 -0
  269. package/dist/customer-value/internal-helpers.d.ts +13 -0
  270. package/dist/customer-value/internal-helpers.d.ts.map +1 -0
  271. package/dist/customer-value/internal-helpers.js +70 -0
  272. package/dist/customer-value/internal-helpers.js.map +1 -0
  273. package/dist/customer-value/report.d.ts +282 -0
  274. package/dist/customer-value/report.d.ts.map +1 -0
  275. package/dist/customer-value/report.js +2085 -0
  276. package/dist/customer-value/report.js.map +1 -0
  277. package/dist/db/schema.d.ts +7 -3
  278. package/dist/db/schema.d.ts.map +1 -1
  279. package/dist/db/schema.js.map +1 -1
  280. package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
  281. package/dist/evalops/agent-bootstrap.js +1 -3
  282. package/dist/evalops/agent-bootstrap.js.map +1 -1
  283. package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
  284. package/dist/evalops/agent-mcp-metadata.js +1 -3
  285. package/dist/evalops/agent-mcp-metadata.js.map +1 -1
  286. package/dist/hooks/notification-hooks.d.ts +1 -1
  287. package/dist/hooks/notification-hooks.d.ts.map +1 -1
  288. package/dist/hooks/notification-hooks.js.map +1 -1
  289. package/dist/hooks/tui-surface.d.ts +35 -0
  290. package/dist/hooks/tui-surface.d.ts.map +1 -0
  291. package/dist/hooks/tui-surface.js +11 -0
  292. package/dist/hooks/tui-surface.js.map +1 -0
  293. package/dist/hooks/types.d.ts +2 -1
  294. package/dist/hooks/types.d.ts.map +1 -1
  295. package/dist/hooks/types.js.map +1 -1
  296. package/dist/hooks/typescript-loader.d.ts.map +1 -1
  297. package/dist/hooks/typescript-loader.js.map +1 -1
  298. package/dist/hooks/ui-context.d.ts.map +1 -1
  299. package/dist/hooks/ui-context.js.map +1 -1
  300. package/dist/index.d.ts +1 -0
  301. package/dist/index.d.ts.map +1 -1
  302. package/dist/index.js +1 -0
  303. package/dist/index.js.map +1 -1
  304. package/dist/installers/maestro-review-workflow.d.ts +38 -0
  305. package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
  306. package/dist/installers/maestro-review-workflow.js +163 -0
  307. package/dist/installers/maestro-review-workflow.js.map +1 -0
  308. package/dist/load-env.d.ts.map +1 -1
  309. package/dist/load-env.js +2 -1
  310. package/dist/load-env.js.map +1 -1
  311. package/dist/main.d.ts.map +1 -1
  312. package/dist/main.js +201 -840
  313. package/dist/main.js.map +1 -1
  314. package/dist/mcp/config.d.ts.map +1 -1
  315. package/dist/mcp/config.js +1 -3
  316. package/dist/mcp/config.js.map +1 -1
  317. package/dist/mcp/elicitation.d.ts.map +1 -1
  318. package/dist/mcp/elicitation.js +1 -3
  319. package/dist/mcp/elicitation.js.map +1 -1
  320. package/dist/mcp/official-registry.d.ts.map +1 -1
  321. package/dist/mcp/official-registry.js +1 -3
  322. package/dist/mcp/official-registry.js.map +1 -1
  323. package/dist/mcp/workspace-trust.d.ts.map +1 -1
  324. package/dist/mcp/workspace-trust.js +1 -3
  325. package/dist/mcp/workspace-trust.js.map +1 -1
  326. package/dist/memory/service-client.d.ts.map +1 -1
  327. package/dist/memory/service-client.js +1 -3
  328. package/dist/memory/service-client.js.map +1 -1
  329. package/dist/models/config-loader.d.ts +5 -5
  330. package/dist/models/config-loader.d.ts.map +1 -1
  331. package/dist/models/config-loader.js +1 -3
  332. package/dist/models/config-loader.js.map +1 -1
  333. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +46 -0
  334. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  335. package/dist/node_modules/@evalops/contracts/dist/index.js +3 -0
  336. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  337. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +284 -0
  338. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
  339. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +41 -0
  340. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
  341. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
  342. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
  343. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
  344. package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
  345. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +986 -0
  346. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  347. package/dist/node_modules/@evalops/contracts/dist/schemas.js +49 -0
  348. package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  349. package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts +56 -0
  350. package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts.map +1 -0
  351. package/dist/node_modules/@evalops/contracts/dist/token-estimation.js +86 -0
  352. package/dist/node_modules/@evalops/contracts/dist/token-estimation.js.map +1 -0
  353. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  354. package/dist/oauth/connectors.d.ts.map +1 -1
  355. package/dist/oauth/connectors.js +1 -3
  356. package/dist/oauth/connectors.js.map +1 -1
  357. package/dist/oauth/evalops.d.ts.map +1 -1
  358. package/dist/oauth/evalops.js +1 -3
  359. package/dist/oauth/evalops.js.map +1 -1
  360. package/dist/packages/discovery.d.ts.map +1 -1
  361. package/dist/packages/discovery.js +1 -0
  362. package/dist/packages/discovery.js.map +1 -1
  363. package/dist/packages/inspection.d.ts.map +1 -1
  364. package/dist/packages/inspection.js +7 -1
  365. package/dist/packages/inspection.js.map +1 -1
  366. package/dist/packages/loader.d.ts.map +1 -1
  367. package/dist/packages/loader.js +8 -1
  368. package/dist/packages/loader.js.map +1 -1
  369. package/dist/packages/runtime.d.ts +1 -0
  370. package/dist/packages/runtime.d.ts.map +1 -1
  371. package/dist/packages/runtime.js +9 -1
  372. package/dist/packages/runtime.js.map +1 -1
  373. package/dist/packages/types.d.ts +6 -0
  374. package/dist/packages/types.d.ts.map +1 -1
  375. package/dist/packages/types.js.map +1 -1
  376. package/dist/platform/a2a-client.d.ts.map +1 -1
  377. package/dist/platform/a2a-client.js +1 -3
  378. package/dist/platform/a2a-client.js.map +1 -1
  379. package/dist/platform/a2a-cockpit.d.ts +1 -0
  380. package/dist/platform/a2a-cockpit.d.ts.map +1 -1
  381. package/dist/platform/a2a-cockpit.js +42 -11
  382. package/dist/platform/a2a-cockpit.js.map +1 -1
  383. package/dist/platform/a2a-completion-audit.d.ts +1 -1
  384. package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
  385. package/dist/platform/a2a-completion-audit.js +7 -11
  386. package/dist/platform/a2a-completion-audit.js.map +1 -1
  387. package/dist/platform/a2a-maestro-peer.js +16 -0
  388. package/dist/platform/a2a-maestro-peer.js.map +1 -1
  389. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
  390. package/dist/platform/a2a-peer-pairing.js +1 -3
  391. package/dist/platform/a2a-peer-pairing.js.map +1 -1
  392. package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
  393. package/dist/platform/a2a-peer-registry.js +1 -3
  394. package/dist/platform/a2a-peer-registry.js.map +1 -1
  395. package/dist/platform/a2a-task-ledger.d.ts +20 -0
  396. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  397. package/dist/platform/a2a-task-ledger.js +207 -11
  398. package/dist/platform/a2a-task-ledger.js.map +1 -1
  399. package/dist/platform/a2a-work-graph.d.ts.map +1 -1
  400. package/dist/platform/a2a-work-graph.js +1 -3
  401. package/dist/platform/a2a-work-graph.js.map +1 -1
  402. package/dist/platform/operating-layer.d.ts.map +1 -1
  403. package/dist/platform/operating-layer.js +14 -8
  404. package/dist/platform/operating-layer.js.map +1 -1
  405. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  406. package/dist/platform/tool-execution-client.js +19 -2
  407. package/dist/platform/tool-execution-client.js.map +1 -1
  408. package/dist/providers/auth.d.ts.map +1 -1
  409. package/dist/providers/auth.js +1 -3
  410. package/dist/providers/auth.js.map +1 -1
  411. package/dist/runtime/agent-runtime.d.ts +22 -6
  412. package/dist/runtime/agent-runtime.d.ts.map +1 -1
  413. package/dist/runtime/agent-runtime.js +1 -1
  414. package/dist/runtime/agent-runtime.js.map +1 -1
  415. package/dist/runtime/env.d.ts +10 -1
  416. package/dist/runtime/env.d.ts.map +1 -1
  417. package/dist/runtime/env.js +64 -1
  418. package/dist/runtime/env.js.map +1 -1
  419. package/dist/runtime/prompt-queue.d.ts.map +1 -0
  420. package/dist/runtime/prompt-queue.js.map +1 -0
  421. package/dist/safety/policy.d.ts.map +1 -1
  422. package/dist/safety/policy.js +1 -4
  423. package/dist/safety/policy.js.map +1 -1
  424. package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
  425. package/dist/sandbox/docker-sandbox.js +6 -1
  426. package/dist/sandbox/docker-sandbox.js.map +1 -1
  427. package/dist/server/handlers/chat-ws.d.ts +2 -1
  428. package/dist/server/handlers/chat-ws.d.ts.map +1 -1
  429. package/dist/server/handlers/chat-ws.js +150 -5
  430. package/dist/server/handlers/chat-ws.js.map +1 -1
  431. package/dist/server/handlers/chat.d.ts.map +1 -1
  432. package/dist/server/handlers/chat.js +78 -5
  433. package/dist/server/handlers/chat.js.map +1 -1
  434. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  435. package/dist/server/handlers/hosted-runner-drain.js +1 -3
  436. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  437. package/dist/server/handlers/package.d.ts.map +1 -1
  438. package/dist/server/handlers/package.js +1 -0
  439. package/dist/server/handlers/package.js.map +1 -1
  440. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
  441. package/dist/server/handlers/platform-a2a-push.js +53 -2
  442. package/dist/server/handlers/platform-a2a-push.js.map +1 -1
  443. package/dist/server/handlers/queue.js +1 -1
  444. package/dist/server/handlers/queue.js.map +1 -1
  445. package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
  446. package/dist/server/handlers/runtime-app-server-ws.js +1 -3
  447. package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
  448. package/dist/server/handlers/ui.js +1 -1
  449. package/dist/server/handlers/ui.js.map +1 -1
  450. package/dist/server/handlers/zen.js +1 -1
  451. package/dist/server/handlers/zen.js.map +1 -1
  452. package/dist/server/headless-runtime-service.d.ts +16 -0
  453. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  454. package/dist/server/headless-runtime-service.js +232 -206
  455. package/dist/server/headless-runtime-service.js.map +1 -1
  456. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
  457. package/dist/server/hosted-agent-runtime-progress.js +12 -3
  458. package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
  459. package/dist/server/hosted-session-manager.d.ts +3 -0
  460. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  461. package/dist/server/hosted-session-manager.js +26 -0
  462. package/dist/server/hosted-session-manager.js.map +1 -1
  463. package/dist/server/model-selection.d.ts +1 -0
  464. package/dist/server/model-selection.d.ts.map +1 -1
  465. package/dist/server/model-selection.js +4 -0
  466. package/dist/server/model-selection.js.map +1 -1
  467. package/dist/server/pending-request-payload.d.ts.map +1 -1
  468. package/dist/server/pending-request-payload.js +1 -3
  469. package/dist/server/pending-request-payload.js.map +1 -1
  470. package/dist/server/route-auth.d.ts.map +1 -1
  471. package/dist/server/route-auth.js +2 -0
  472. package/dist/server/route-auth.js.map +1 -1
  473. package/dist/server/session-serialization.d.ts.map +1 -1
  474. package/dist/server/session-serialization.js +4 -3
  475. package/dist/server/session-serialization.js.map +1 -1
  476. package/dist/server/session-timeline.d.ts.map +1 -1
  477. package/dist/server/session-timeline.js +1 -1
  478. package/dist/server/session-timeline.js.map +1 -1
  479. package/dist/server/sse-session.d.ts +2 -0
  480. package/dist/server/sse-session.d.ts.map +1 -1
  481. package/dist/server/sse-session.js +3 -0
  482. package/dist/server/sse-session.js.map +1 -1
  483. package/dist/server/stores/ui-store.d.ts +1 -1
  484. package/dist/server/stores/ui-store.d.ts.map +1 -1
  485. package/dist/server/stores/ui-store.js.map +1 -1
  486. package/dist/server/utils/token-estimator.d.ts +2 -2
  487. package/dist/server/utils/token-estimator.d.ts.map +1 -1
  488. package/dist/server/utils/token-estimator.js +2 -12
  489. package/dist/server/utils/token-estimator.js.map +1 -1
  490. package/dist/server/validation.d.ts +54 -0
  491. package/dist/server/validation.d.ts.map +1 -1
  492. package/dist/services/compliance/normalize.d.ts.map +1 -1
  493. package/dist/services/compliance/normalize.js +1 -3
  494. package/dist/services/compliance/normalize.js.map +1 -1
  495. package/dist/services/image-providers/cost.d.ts +70 -0
  496. package/dist/services/image-providers/cost.d.ts.map +1 -0
  497. package/dist/services/image-providers/cost.js +164 -0
  498. package/dist/services/image-providers/cost.js.map +1 -0
  499. package/dist/services/image-providers/flux.d.ts +40 -0
  500. package/dist/services/image-providers/flux.d.ts.map +1 -0
  501. package/dist/services/image-providers/flux.js +99 -0
  502. package/dist/services/image-providers/flux.js.map +1 -0
  503. package/dist/services/image-providers/index.d.ts +24 -0
  504. package/dist/services/image-providers/index.d.ts.map +1 -0
  505. package/dist/services/image-providers/index.js +27 -0
  506. package/dist/services/image-providers/index.js.map +1 -0
  507. package/dist/services/image-providers/masks.d.ts +51 -0
  508. package/dist/services/image-providers/masks.d.ts.map +1 -0
  509. package/dist/services/image-providers/masks.js +132 -0
  510. package/dist/services/image-providers/masks.js.map +1 -0
  511. package/dist/services/image-providers/openai.d.ts +35 -0
  512. package/dist/services/image-providers/openai.d.ts.map +1 -0
  513. package/dist/services/image-providers/openai.js +93 -0
  514. package/dist/services/image-providers/openai.js.map +1 -0
  515. package/dist/services/image-providers/types.d.ts +61 -0
  516. package/dist/services/image-providers/types.d.ts.map +1 -0
  517. package/dist/services/image-providers/types.js +17 -0
  518. package/dist/services/image-providers/types.js.map +1 -0
  519. package/dist/services/intelligent-router/index.d.ts +1 -0
  520. package/dist/services/intelligent-router/index.d.ts.map +1 -1
  521. package/dist/services/intelligent-router/index.js +1 -0
  522. package/dist/services/intelligent-router/index.js.map +1 -1
  523. package/dist/services/intelligent-router/normalize.d.ts +1 -0
  524. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  525. package/dist/services/intelligent-router/normalize.js +18 -3
  526. package/dist/services/intelligent-router/normalize.js.map +1 -1
  527. package/dist/services/intelligent-router/outcome.d.ts +19 -0
  528. package/dist/services/intelligent-router/outcome.d.ts.map +1 -0
  529. package/dist/services/intelligent-router/outcome.js +51 -0
  530. package/dist/services/intelligent-router/outcome.js.map +1 -0
  531. package/dist/services/intelligent-router/recorder.d.ts +2 -0
  532. package/dist/services/intelligent-router/recorder.d.ts.map +1 -1
  533. package/dist/services/intelligent-router/recorder.js +72 -1
  534. package/dist/services/intelligent-router/recorder.js.map +1 -1
  535. package/dist/services/intelligent-router/service.d.ts +1 -0
  536. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  537. package/dist/services/intelligent-router/service.js +60 -11
  538. package/dist/services/intelligent-router/service.js.map +1 -1
  539. package/dist/services/intelligent-router/types.d.ts +18 -0
  540. package/dist/services/intelligent-router/types.d.ts.map +1 -1
  541. package/dist/services/intelligent-router/types.js.map +1 -1
  542. package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
  543. package/dist/services/revenue-attribution/normalize.js +1 -3
  544. package/dist/services/revenue-attribution/normalize.js.map +1 -1
  545. package/dist/services/traces/normalize.d.ts.map +1 -1
  546. package/dist/services/traces/normalize.js +1 -3
  547. package/dist/services/traces/normalize.js.map +1 -1
  548. package/dist/services/workspace-config/middleware.d.ts +2 -0
  549. package/dist/services/workspace-config/middleware.d.ts.map +1 -1
  550. package/dist/services/workspace-config/middleware.js +25 -28
  551. package/dist/services/workspace-config/middleware.js.map +1 -1
  552. package/dist/services/workspace-config/normalize.d.ts.map +1 -1
  553. package/dist/services/workspace-config/normalize.js +1 -3
  554. package/dist/services/workspace-config/normalize.js.map +1 -1
  555. package/dist/session/agent-lineage-projection.d.ts +30 -0
  556. package/dist/session/agent-lineage-projection.d.ts.map +1 -0
  557. package/dist/session/agent-lineage-projection.js +109 -0
  558. package/dist/session/agent-lineage-projection.js.map +1 -0
  559. package/dist/session/manager.d.ts +3 -0
  560. package/dist/session/manager.d.ts.map +1 -1
  561. package/dist/session/manager.js +24 -0
  562. package/dist/session/manager.js.map +1 -1
  563. package/dist/session/session-graph-projection.d.ts +11 -0
  564. package/dist/session/session-graph-projection.d.ts.map +1 -1
  565. package/dist/session/session-graph-projection.js +28 -0
  566. package/dist/session/session-graph-projection.js.map +1 -1
  567. package/dist/session/types.d.ts +2 -0
  568. package/dist/session/types.d.ts.map +1 -1
  569. package/dist/session/types.js.map +1 -1
  570. package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
  571. package/dist/telemetry/agent-workforce-native-event.js +1 -3
  572. package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
  573. package/dist/telemetry/maestro-event-bus.d.ts +1 -1
  574. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  575. package/dist/telemetry/maestro-event-bus.js +42 -81
  576. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  577. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  578. package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
  579. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  580. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  581. package/dist/telemetry/oracle-policy.d.ts +6 -0
  582. package/dist/telemetry/oracle-policy.d.ts.map +1 -0
  583. package/dist/telemetry/oracle-policy.js +17 -0
  584. package/dist/telemetry/oracle-policy.js.map +1 -0
  585. package/dist/telemetry/wide-events.d.ts +1 -1
  586. package/dist/telemetry/wide-events.d.ts.map +1 -1
  587. package/dist/telemetry/wide-events.js.map +1 -1
  588. package/dist/telemetry.d.ts.map +1 -1
  589. package/dist/telemetry.js +54 -43
  590. package/dist/telemetry.js.map +1 -1
  591. package/dist/theme/theme-loader.d.ts.map +1 -1
  592. package/dist/theme/theme-loader.js +1 -3
  593. package/dist/theme/theme-loader.js.map +1 -1
  594. package/dist/theme/theme.d.ts +2 -8
  595. package/dist/theme/theme.d.ts.map +1 -1
  596. package/dist/theme/theme.js +7 -0
  597. package/dist/theme/theme.js.map +1 -1
  598. package/dist/theme/tui-theme-helpers.d.ts +2 -1
  599. package/dist/theme/tui-theme-helpers.d.ts.map +1 -1
  600. package/dist/theme/tui-theme-helpers.js.map +1 -1
  601. package/dist/theme/tui-theme-types.d.ts +39 -0
  602. package/dist/theme/tui-theme-types.d.ts.map +1 -0
  603. package/dist/theme/tui-theme-types.js +10 -0
  604. package/dist/theme/tui-theme-types.js.map +1 -0
  605. package/dist/tools/apply-patch.d.ts.map +1 -1
  606. package/dist/tools/apply-patch.js +76 -8
  607. package/dist/tools/apply-patch.js.map +1 -1
  608. package/dist/tools/diff-preview.d.ts.map +1 -1
  609. package/dist/tools/diff-preview.js +10 -1
  610. package/dist/tools/diff-preview.js.map +1 -1
  611. package/dist/tools/edit.d.ts.map +1 -1
  612. package/dist/tools/edit.js +17 -0
  613. package/dist/tools/edit.js.map +1 -1
  614. package/dist/tools/index.d.ts +199 -160
  615. package/dist/tools/index.d.ts.map +1 -1
  616. package/dist/tools/index.js +4 -0
  617. package/dist/tools/index.js.map +1 -1
  618. package/dist/tools/lazy-registry.d.ts.map +1 -1
  619. package/dist/tools/lazy-registry.js +1 -0
  620. package/dist/tools/lazy-registry.js.map +1 -1
  621. package/dist/tools/oracle.d.ts +9 -0
  622. package/dist/tools/oracle.d.ts.map +1 -1
  623. package/dist/tools/oracle.js +26 -24
  624. package/dist/tools/oracle.js.map +1 -1
  625. package/dist/tools/painter.d.ts +73 -0
  626. package/dist/tools/painter.d.ts.map +1 -0
  627. package/dist/tools/painter.js +283 -0
  628. package/dist/tools/painter.js.map +1 -0
  629. package/dist/tools/typebox-tool.d.ts.map +1 -1
  630. package/dist/tools/typebox-tool.js +1 -1
  631. package/dist/tools/typebox-tool.js.map +1 -1
  632. package/dist/tools/write.d.ts.map +1 -1
  633. package/dist/tools/write.js +9 -0
  634. package/dist/tools/write.js.map +1 -1
  635. package/dist/undo/tracker.d.ts +5 -0
  636. package/dist/undo/tracker.d.ts.map +1 -1
  637. package/dist/undo/tracker.js +13 -0
  638. package/dist/undo/tracker.js.map +1 -1
  639. package/dist/utils/fs.d.ts +1 -1
  640. package/dist/utils/fs.d.ts.map +1 -1
  641. package/dist/utils/fs.js +29 -2
  642. package/dist/utils/fs.js.map +1 -1
  643. package/dist/utils/git-stash.d.ts.map +1 -1
  644. package/dist/utils/git-stash.js +15 -8
  645. package/dist/utils/git-stash.js.map +1 -1
  646. package/dist/utils/json.d.ts +11 -0
  647. package/dist/utils/json.d.ts.map +1 -1
  648. package/dist/utils/json.js +9 -0
  649. package/dist/utils/json.js.map +1 -1
  650. package/dist/utils/shell-env.d.ts.map +1 -1
  651. package/dist/utils/shell-env.js +2 -0
  652. package/dist/utils/shell-env.js.map +1 -1
  653. package/dist/utils/terminal-image.d.ts +52 -0
  654. package/dist/utils/terminal-image.d.ts.map +1 -0
  655. package/dist/utils/terminal-image.js +95 -0
  656. package/dist/utils/terminal-image.js.map +1 -0
  657. package/dist/utils/terminal-text.d.ts +11 -0
  658. package/dist/utils/terminal-text.d.ts.map +1 -0
  659. package/dist/utils/terminal-text.js +21 -0
  660. package/dist/utils/terminal-text.js.map +1 -0
  661. package/dist/utils/url-extractor-git.d.ts +26 -0
  662. package/dist/utils/url-extractor-git.d.ts.map +1 -0
  663. package/dist/utils/url-extractor-git.js +259 -0
  664. package/dist/utils/url-extractor-git.js.map +1 -0
  665. package/dist/utils/url-extractor.d.ts.map +1 -1
  666. package/dist/utils/url-extractor.js +23 -251
  667. package/dist/utils/url-extractor.js.map +1 -1
  668. package/dist/version.json +2 -2
  669. package/dist/web-server.d.ts.map +1 -1
  670. package/dist/web-server.js +24 -2
  671. package/dist/web-server.js.map +1 -1
  672. package/package.json +312 -306
  673. package/skills/incident-triage/SKILL.md +20 -1
  674. package/skills/install-code-review/SKILL.md +69 -0
  675. package/skills/security-review/SKILL.md +68 -0
  676. package/skills/security-review/reference/rubric.md +85 -0
  677. package/dist/cli/commands/agents.d.ts +0 -20
  678. package/dist/cli/commands/agents.d.ts.map +0 -1
  679. package/dist/cli/commands/agents.js +0 -280
  680. package/dist/cli/commands/agents.js.map +0 -1
  681. package/dist/cli/commands/anthropic.d.ts +0 -2
  682. package/dist/cli/commands/anthropic.d.ts.map +0 -1
  683. package/dist/cli/commands/anthropic.js +0 -6
  684. package/dist/cli/commands/anthropic.js.map +0 -1
  685. package/dist/cli/commands/cost.d.ts +0 -13
  686. package/dist/cli/commands/cost.d.ts.map +0 -1
  687. package/dist/cli/commands/cost.js +0 -143
  688. package/dist/cli/commands/cost.js.map +0 -1
  689. package/dist/cli/commands/exec-constants.d.ts +0 -3
  690. package/dist/cli/commands/exec-constants.d.ts.map +0 -1
  691. package/dist/cli/commands/exec-constants.js +0 -3
  692. package/dist/cli/commands/exec-constants.js.map +0 -1
  693. package/dist/cli/commands/exec.d.ts +0 -19
  694. package/dist/cli/commands/exec.d.ts.map +0 -1
  695. package/dist/cli/commands/exec.js +0 -207
  696. package/dist/cli/commands/exec.js.map +0 -1
  697. package/dist/cli/commands/hooks.d.ts +0 -2
  698. package/dist/cli/commands/hooks.d.ts.map +0 -1
  699. package/dist/cli/commands/hooks.js +0 -25
  700. package/dist/cli/commands/hooks.js.map +0 -1
  701. package/dist/cli/commands/hosted-runner.d.ts +0 -25
  702. package/dist/cli/commands/hosted-runner.d.ts.map +0 -1
  703. package/dist/cli/commands/hosted-runner.js +0 -278
  704. package/dist/cli/commands/hosted-runner.js.map +0 -1
  705. package/dist/cli/commands/memory.d.ts +0 -2
  706. package/dist/cli/commands/memory.d.ts.map +0 -1
  707. package/dist/cli/commands/memory.js +0 -208
  708. package/dist/cli/commands/memory.js.map +0 -1
  709. package/dist/cli/commands/models.d.ts +0 -3
  710. package/dist/cli/commands/models.d.ts.map +0 -1
  711. package/dist/cli/commands/models.js +0 -154
  712. package/dist/cli/commands/models.js.map +0 -1
  713. package/dist/cli/commands/modes.d.ts +0 -8
  714. package/dist/cli/commands/modes.d.ts.map +0 -1
  715. package/dist/cli/commands/modes.js +0 -151
  716. package/dist/cli/commands/modes.js.map +0 -1
  717. package/dist/cli/commands/openai.d.ts +0 -2
  718. package/dist/cli/commands/openai.d.ts.map +0 -1
  719. package/dist/cli/commands/openai.js +0 -116
  720. package/dist/cli/commands/openai.js.map +0 -1
  721. package/dist/cli/commands/session-transfer.d.ts +0 -5
  722. package/dist/cli/commands/session-transfer.d.ts.map +0 -1
  723. package/dist/cli/commands/session-transfer.js +0 -43
  724. package/dist/cli/commands/session-transfer.js.map +0 -1
  725. package/dist/cli/commands/sessions.d.ts +0 -8
  726. package/dist/cli/commands/sessions.d.ts.map +0 -1
  727. package/dist/cli/commands/sessions.js +0 -152
  728. package/dist/cli/commands/sessions.js.map +0 -1
  729. package/dist/cli/commands/skill.d.ts +0 -10
  730. package/dist/cli/commands/skill.d.ts.map +0 -1
  731. package/dist/cli/commands/skill.js +0 -303
  732. package/dist/cli/commands/skill.js.map +0 -1
  733. package/dist/cli/commands/stats.d.ts +0 -7
  734. package/dist/cli/commands/stats.d.ts.map +0 -1
  735. package/dist/cli/commands/stats.js +0 -167
  736. package/dist/cli/commands/stats.js.map +0 -1
  737. package/dist/cli/commands/status.d.ts +0 -2
  738. package/dist/cli/commands/status.d.ts.map +0 -1
  739. package/dist/cli/commands/status.js +0 -11
  740. package/dist/cli/commands/status.js.map +0 -1
  741. package/dist/cli/commands/update.d.ts +0 -12
  742. package/dist/cli/commands/update.d.ts.map +0 -1
  743. package/dist/cli/commands/update.js +0 -148
  744. package/dist/cli/commands/update.js.map +0 -1
  745. package/dist/cli-tui/about-view.d.ts +0 -48
  746. package/dist/cli-tui/about-view.d.ts.map +0 -1
  747. package/dist/cli-tui/about-view.js +0 -206
  748. package/dist/cli-tui/about-view.js.map +0 -1
  749. package/dist/cli-tui/agent-event-router.d.ts +0 -28
  750. package/dist/cli-tui/agent-event-router.d.ts.map +0 -1
  751. package/dist/cli-tui/agent-event-router.js +0 -126
  752. package/dist/cli-tui/agent-event-router.js.map +0 -1
  753. package/dist/cli-tui/approval/approval-controller.d.ts +0 -28
  754. package/dist/cli-tui/approval/approval-controller.d.ts.map +0 -1
  755. package/dist/cli-tui/approval/approval-controller.js +0 -99
  756. package/dist/cli-tui/approval/approval-controller.js.map +0 -1
  757. package/dist/cli-tui/approval/approval-modal.d.ts +0 -26
  758. package/dist/cli-tui/approval/approval-modal.d.ts.map +0 -1
  759. package/dist/cli-tui/approval/approval-modal.js +0 -143
  760. package/dist/cli-tui/approval/approval-modal.js.map +0 -1
  761. package/dist/cli-tui/assistant-message.d.ts +0 -41
  762. package/dist/cli-tui/assistant-message.d.ts.map +0 -1
  763. package/dist/cli-tui/assistant-message.js +0 -236
  764. package/dist/cli-tui/assistant-message.js.map +0 -1
  765. package/dist/cli-tui/auth-state.d.ts +0 -7
  766. package/dist/cli-tui/auth-state.d.ts.map +0 -1
  767. package/dist/cli-tui/auth-state.js +0 -46
  768. package/dist/cli-tui/auth-state.js.map +0 -1
  769. package/dist/cli-tui/background/background-tasks-controller.d.ts +0 -31
  770. package/dist/cli-tui/background/background-tasks-controller.d.ts.map +0 -1
  771. package/dist/cli-tui/background/background-tasks-controller.js +0 -84
  772. package/dist/cli-tui/background/background-tasks-controller.js.map +0 -1
  773. package/dist/cli-tui/base-view.d.ts +0 -111
  774. package/dist/cli-tui/base-view.d.ts.map +0 -1
  775. package/dist/cli-tui/base-view.js +0 -145
  776. package/dist/cli-tui/base-view.js.map +0 -1
  777. package/dist/cli-tui/bash/background-launcher.d.ts +0 -14
  778. package/dist/cli-tui/bash/background-launcher.d.ts.map +0 -1
  779. package/dist/cli-tui/bash/background-launcher.js +0 -50
  780. package/dist/cli-tui/bash/background-launcher.js.map +0 -1
  781. package/dist/cli-tui/bash/bash-autocomplete.d.ts +0 -40
  782. package/dist/cli-tui/bash/bash-autocomplete.d.ts.map +0 -1
  783. package/dist/cli-tui/bash/bash-autocomplete.js +0 -347
  784. package/dist/cli-tui/bash/bash-autocomplete.js.map +0 -1
  785. package/dist/cli-tui/bash/bash-history.d.ts +0 -21
  786. package/dist/cli-tui/bash/bash-history.d.ts.map +0 -1
  787. package/dist/cli-tui/bash/bash-history.js +0 -72
  788. package/dist/cli-tui/bash/bash-history.js.map +0 -1
  789. package/dist/cli-tui/bash/bash-syntax.d.ts +0 -5
  790. package/dist/cli-tui/bash/bash-syntax.d.ts.map +0 -1
  791. package/dist/cli-tui/bash/bash-syntax.js +0 -176
  792. package/dist/cli-tui/bash/bash-syntax.js.map +0 -1
  793. package/dist/cli-tui/bash/index.d.ts +0 -4
  794. package/dist/cli-tui/bash/index.d.ts.map +0 -1
  795. package/dist/cli-tui/bash/index.js +0 -4
  796. package/dist/cli-tui/bash/index.js.map +0 -1
  797. package/dist/cli-tui/bash-mode-view.d.ts +0 -86
  798. package/dist/cli-tui/bash-mode-view.d.ts.map +0 -1
  799. package/dist/cli-tui/bash-mode-view.js +0 -560
  800. package/dist/cli-tui/bash-mode-view.js.map +0 -1
  801. package/dist/cli-tui/bash-shell-block.d.ts +0 -50
  802. package/dist/cli-tui/bash-shell-block.d.ts.map +0 -1
  803. package/dist/cli-tui/bash-shell-block.js +0 -119
  804. package/dist/cli-tui/bash-shell-block.js.map +0 -1
  805. package/dist/cli-tui/changelog-view.d.ts +0 -13
  806. package/dist/cli-tui/changelog-view.d.ts.map +0 -1
  807. package/dist/cli-tui/changelog-view.js +0 -34
  808. package/dist/cli-tui/changelog-view.js.map +0 -1
  809. package/dist/cli-tui/clean-mode.d.ts +0 -13
  810. package/dist/cli-tui/clean-mode.d.ts.map +0 -1
  811. package/dist/cli-tui/clean-mode.js +0 -32
  812. package/dist/cli-tui/clean-mode.js.map +0 -1
  813. package/dist/cli-tui/client-tools/client-tool-controller.d.ts +0 -41
  814. package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +0 -1
  815. package/dist/cli-tui/client-tools/client-tool-controller.js +0 -862
  816. package/dist/cli-tui/client-tools/client-tool-controller.js.map +0 -1
  817. package/dist/cli-tui/client-tools/local-client-tool-service.d.ts +0 -33
  818. package/dist/cli-tui/client-tools/local-client-tool-service.d.ts.map +0 -1
  819. package/dist/cli-tui/client-tools/local-client-tool-service.js +0 -94
  820. package/dist/cli-tui/client-tools/local-client-tool-service.js.map +0 -1
  821. package/dist/cli-tui/commands/a2a-handlers.d.ts +0 -7
  822. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +0 -1
  823. package/dist/cli-tui/commands/a2a-handlers.js +0 -215
  824. package/dist/cli-tui/commands/a2a-handlers.js.map +0 -1
  825. package/dist/cli-tui/commands/access-command.d.ts +0 -3
  826. package/dist/cli-tui/commands/access-command.d.ts.map +0 -1
  827. package/dist/cli-tui/commands/access-command.js +0 -89
  828. package/dist/cli-tui/commands/access-command.js.map +0 -1
  829. package/dist/cli-tui/commands/argument-parser.d.ts +0 -12
  830. package/dist/cli-tui/commands/argument-parser.d.ts.map +0 -1
  831. package/dist/cli-tui/commands/argument-parser.js +0 -135
  832. package/dist/cli-tui/commands/argument-parser.js.map +0 -1
  833. package/dist/cli-tui/commands/audit-command.d.ts +0 -5
  834. package/dist/cli-tui/commands/audit-command.d.ts.map +0 -1
  835. package/dist/cli-tui/commands/audit-command.js +0 -35
  836. package/dist/cli-tui/commands/audit-command.js.map +0 -1
  837. package/dist/cli-tui/commands/background-handlers.d.ts +0 -14
  838. package/dist/cli-tui/commands/background-handlers.d.ts.map +0 -1
  839. package/dist/cli-tui/commands/background-handlers.js +0 -115
  840. package/dist/cli-tui/commands/background-handlers.js.map +0 -1
  841. package/dist/cli-tui/commands/command-catalog.d.ts +0 -29
  842. package/dist/cli-tui/commands/command-catalog.d.ts.map +0 -1
  843. package/dist/cli-tui/commands/command-catalog.js +0 -666
  844. package/dist/cli-tui/commands/command-catalog.js.map +0 -1
  845. package/dist/cli-tui/commands/command-registry-adapter.d.ts +0 -12
  846. package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +0 -1
  847. package/dist/cli-tui/commands/command-registry-adapter.js +0 -129
  848. package/dist/cli-tui/commands/command-registry-adapter.js.map +0 -1
  849. package/dist/cli-tui/commands/command-suite-catalog.d.ts +0 -14
  850. package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +0 -1
  851. package/dist/cli-tui/commands/command-suite-catalog.js +0 -147
  852. package/dist/cli-tui/commands/command-suite-catalog.js.map +0 -1
  853. package/dist/cli-tui/commands/command-suite-handlers.d.ts +0 -111
  854. package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +0 -1
  855. package/dist/cli-tui/commands/command-suite-handlers.js +0 -110
  856. package/dist/cli-tui/commands/command-suite-handlers.js.map +0 -1
  857. package/dist/cli-tui/commands/composer-handlers.d.ts +0 -8
  858. package/dist/cli-tui/commands/composer-handlers.d.ts.map +0 -1
  859. package/dist/cli-tui/commands/composer-handlers.js +0 -90
  860. package/dist/cli-tui/commands/composer-handlers.js.map +0 -1
  861. package/dist/cli-tui/commands/framework-handlers.d.ts +0 -18
  862. package/dist/cli-tui/commands/framework-handlers.d.ts.map +0 -1
  863. package/dist/cli-tui/commands/framework-handlers.js +0 -57
  864. package/dist/cli-tui/commands/framework-handlers.js.map +0 -1
  865. package/dist/cli-tui/commands/guardian-handlers.d.ts +0 -20
  866. package/dist/cli-tui/commands/guardian-handlers.d.ts.map +0 -1
  867. package/dist/cli-tui/commands/guardian-handlers.js +0 -48
  868. package/dist/cli-tui/commands/guardian-handlers.js.map +0 -1
  869. package/dist/cli-tui/commands/handlers/mode-handler.d.ts +0 -32
  870. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +0 -1
  871. package/dist/cli-tui/commands/handlers/mode-handler.js +0 -153
  872. package/dist/cli-tui/commands/handlers/mode-handler.js.map +0 -1
  873. package/dist/cli-tui/commands/hotkeys-command.d.ts +0 -8
  874. package/dist/cli-tui/commands/hotkeys-command.d.ts.map +0 -1
  875. package/dist/cli-tui/commands/hotkeys-command.js +0 -61
  876. package/dist/cli-tui/commands/hotkeys-command.js.map +0 -1
  877. package/dist/cli-tui/commands/limits-command.d.ts +0 -3
  878. package/dist/cli-tui/commands/limits-command.d.ts.map +0 -1
  879. package/dist/cli-tui/commands/limits-command.js +0 -88
  880. package/dist/cli-tui/commands/limits-command.js.map +0 -1
  881. package/dist/cli-tui/commands/mcp-handlers.d.ts +0 -12
  882. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +0 -1
  883. package/dist/cli-tui/commands/mcp-handlers.js +0 -1306
  884. package/dist/cli-tui/commands/mcp-handlers.js.map +0 -1
  885. package/dist/cli-tui/commands/memory-handlers.d.ts +0 -28
  886. package/dist/cli-tui/commands/memory-handlers.d.ts.map +0 -1
  887. package/dist/cli-tui/commands/memory-handlers.js +0 -414
  888. package/dist/cli-tui/commands/memory-handlers.js.map +0 -1
  889. package/dist/cli-tui/commands/otel-handlers.d.ts +0 -11
  890. package/dist/cli-tui/commands/otel-handlers.d.ts.map +0 -1
  891. package/dist/cli-tui/commands/otel-handlers.js +0 -20
  892. package/dist/cli-tui/commands/otel-handlers.js.map +0 -1
  893. package/dist/cli-tui/commands/package-handlers.d.ts +0 -30
  894. package/dist/cli-tui/commands/package-handlers.d.ts.map +0 -1
  895. package/dist/cli-tui/commands/package-handlers.js +0 -499
  896. package/dist/cli-tui/commands/package-handlers.js.map +0 -1
  897. package/dist/cli-tui/commands/pii-command.d.ts +0 -3
  898. package/dist/cli-tui/commands/pii-command.d.ts.map +0 -1
  899. package/dist/cli-tui/commands/pii-command.js +0 -54
  900. package/dist/cli-tui/commands/pii-command.js.map +0 -1
  901. package/dist/cli-tui/commands/registry.d.ts +0 -3
  902. package/dist/cli-tui/commands/registry.d.ts.map +0 -1
  903. package/dist/cli-tui/commands/registry.js +0 -36
  904. package/dist/cli-tui/commands/registry.js.map +0 -1
  905. package/dist/cli-tui/commands/safety-handlers.d.ts +0 -36
  906. package/dist/cli-tui/commands/safety-handlers.d.ts.map +0 -1
  907. package/dist/cli-tui/commands/safety-handlers.js +0 -62
  908. package/dist/cli-tui/commands/safety-handlers.js.map +0 -1
  909. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +0 -26
  910. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +0 -1
  911. package/dist/cli-tui/commands/subcommands/auth-commands.js +0 -79
  912. package/dist/cli-tui/commands/subcommands/auth-commands.js.map +0 -1
  913. package/dist/cli-tui/commands/subcommands/config-commands.d.ts +0 -23
  914. package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +0 -1
  915. package/dist/cli-tui/commands/subcommands/config-commands.js +0 -61
  916. package/dist/cli-tui/commands/subcommands/config-commands.js.map +0 -1
  917. package/dist/cli-tui/commands/subcommands/diag-commands.d.ts +0 -46
  918. package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +0 -1
  919. package/dist/cli-tui/commands/subcommands/diag-commands.js +0 -163
  920. package/dist/cli-tui/commands/subcommands/diag-commands.js.map +0 -1
  921. package/dist/cli-tui/commands/subcommands/git-commands.d.ts +0 -18
  922. package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +0 -1
  923. package/dist/cli-tui/commands/subcommands/git-commands.js +0 -50
  924. package/dist/cli-tui/commands/subcommands/git-commands.js.map +0 -1
  925. package/dist/cli-tui/commands/subcommands/index.d.ts +0 -18
  926. package/dist/cli-tui/commands/subcommands/index.d.ts.map +0 -1
  927. package/dist/cli-tui/commands/subcommands/index.js +0 -18
  928. package/dist/cli-tui/commands/subcommands/index.js.map +0 -1
  929. package/dist/cli-tui/commands/subcommands/safety-commands.d.ts +0 -26
  930. package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +0 -1
  931. package/dist/cli-tui/commands/subcommands/safety-commands.js +0 -149
  932. package/dist/cli-tui/commands/subcommands/safety-commands.js.map +0 -1
  933. package/dist/cli-tui/commands/subcommands/session-commands.d.ts +0 -36
  934. package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +0 -1
  935. package/dist/cli-tui/commands/subcommands/session-commands.js +0 -112
  936. package/dist/cli-tui/commands/subcommands/session-commands.js.map +0 -1
  937. package/dist/cli-tui/commands/subcommands/tools-commands.d.ts +0 -27
  938. package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +0 -1
  939. package/dist/cli-tui/commands/subcommands/tools-commands.js +0 -80
  940. package/dist/cli-tui/commands/subcommands/tools-commands.js.map +0 -1
  941. package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +0 -30
  942. package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +0 -1
  943. package/dist/cli-tui/commands/subcommands/ui-commands.js +0 -74
  944. package/dist/cli-tui/commands/subcommands/ui-commands.js.map +0 -1
  945. package/dist/cli-tui/commands/subcommands/undo-commands.d.ts +0 -25
  946. package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +0 -1
  947. package/dist/cli-tui/commands/subcommands/undo-commands.js +0 -74
  948. package/dist/cli-tui/commands/subcommands/undo-commands.js.map +0 -1
  949. package/dist/cli-tui/commands/subcommands/usage-commands.d.ts +0 -19
  950. package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +0 -1
  951. package/dist/cli-tui/commands/subcommands/usage-commands.js +0 -63
  952. package/dist/cli-tui/commands/subcommands/usage-commands.js.map +0 -1
  953. package/dist/cli-tui/commands/subcommands/utils.d.ts +0 -127
  954. package/dist/cli-tui/commands/subcommands/utils.d.ts.map +0 -1
  955. package/dist/cli-tui/commands/subcommands/utils.js +0 -395
  956. package/dist/cli-tui/commands/subcommands/utils.js.map +0 -1
  957. package/dist/cli-tui/commands/types.d.ts +0 -105
  958. package/dist/cli-tui/commands/types.d.ts.map +0 -1
  959. package/dist/cli-tui/commands/types.js +0 -2
  960. package/dist/cli-tui/commands/types.js.map +0 -1
  961. package/dist/cli-tui/commands/undo-handlers.d.ts +0 -29
  962. package/dist/cli-tui/commands/undo-handlers.d.ts.map +0 -1
  963. package/dist/cli-tui/commands/undo-handlers.js +0 -300
  964. package/dist/cli-tui/commands/undo-handlers.js.map +0 -1
  965. package/dist/cli-tui/commands/utility-handlers.d.ts +0 -55
  966. package/dist/cli-tui/commands/utility-handlers.d.ts.map +0 -1
  967. package/dist/cli-tui/commands/utility-handlers.js +0 -137
  968. package/dist/cli-tui/commands/utility-handlers.js.map +0 -1
  969. package/dist/cli-tui/commands/workflow-handlers.d.ts +0 -22
  970. package/dist/cli-tui/commands/workflow-handlers.d.ts.map +0 -1
  971. package/dist/cli-tui/commands/workflow-handlers.js +0 -227
  972. package/dist/cli-tui/commands/workflow-handlers.js.map +0 -1
  973. package/dist/cli-tui/compact-boundary-message.d.ts +0 -9
  974. package/dist/cli-tui/compact-boundary-message.d.ts.map +0 -1
  975. package/dist/cli-tui/compact-boundary-message.js +0 -18
  976. package/dist/cli-tui/compact-boundary-message.js.map +0 -1
  977. package/dist/cli-tui/compaction-recovery.d.ts +0 -6
  978. package/dist/cli-tui/compaction-recovery.d.ts.map +0 -1
  979. package/dist/cli-tui/compaction-recovery.js +0 -13
  980. package/dist/cli-tui/compaction-recovery.js.map +0 -1
  981. package/dist/cli-tui/config-view.d.ts +0 -30
  982. package/dist/cli-tui/config-view.d.ts.map +0 -1
  983. package/dist/cli-tui/config-view.js +0 -255
  984. package/dist/cli-tui/config-view.js.map +0 -1
  985. package/dist/cli-tui/context-view.d.ts +0 -20
  986. package/dist/cli-tui/context-view.d.ts.map +0 -1
  987. package/dist/cli-tui/context-view.js +0 -191
  988. package/dist/cli-tui/context-view.js.map +0 -1
  989. package/dist/cli-tui/custom-editor.d.ts +0 -25
  990. package/dist/cli-tui/custom-editor.d.ts.map +0 -1
  991. package/dist/cli-tui/custom-editor.js +0 -241
  992. package/dist/cli-tui/custom-editor.js.map +0 -1
  993. package/dist/cli-tui/editor-view.d.ts +0 -34
  994. package/dist/cli-tui/editor-view.d.ts.map +0 -1
  995. package/dist/cli-tui/editor-view.js +0 -102
  996. package/dist/cli-tui/editor-view.js.map +0 -1
  997. package/dist/cli-tui/feedback-view.d.ts +0 -35
  998. package/dist/cli-tui/feedback-view.d.ts.map +0 -1
  999. package/dist/cli-tui/feedback-view.js +0 -271
  1000. package/dist/cli-tui/feedback-view.js.map +0 -1
  1001. package/dist/cli-tui/footer.d.ts +0 -56
  1002. package/dist/cli-tui/footer.d.ts.map +0 -1
  1003. package/dist/cli-tui/footer.js +0 -228
  1004. package/dist/cli-tui/footer.js.map +0 -1
  1005. package/dist/cli-tui/git/commit-modal.d.ts +0 -14
  1006. package/dist/cli-tui/git/commit-modal.d.ts.map +0 -1
  1007. package/dist/cli-tui/git/commit-modal.js +0 -56
  1008. package/dist/cli-tui/git/commit-modal.js.map +0 -1
  1009. package/dist/cli-tui/git/git-preview-modal.d.ts +0 -40
  1010. package/dist/cli-tui/git/git-preview-modal.d.ts.map +0 -1
  1011. package/dist/cli-tui/git/git-preview-modal.js +0 -123
  1012. package/dist/cli-tui/git/git-preview-modal.js.map +0 -1
  1013. package/dist/cli-tui/git/git-view.d.ts +0 -65
  1014. package/dist/cli-tui/git/git-view.d.ts.map +0 -1
  1015. package/dist/cli-tui/git/git-view.js +0 -529
  1016. package/dist/cli-tui/git/git-view.js.map +0 -1
  1017. package/dist/cli-tui/history/history-config.d.ts +0 -7
  1018. package/dist/cli-tui/history/history-config.d.ts.map +0 -1
  1019. package/dist/cli-tui/history/history-config.js +0 -49
  1020. package/dist/cli-tui/history/history-config.js.map +0 -1
  1021. package/dist/cli-tui/history/prompt-history.d.ts +0 -33
  1022. package/dist/cli-tui/history/prompt-history.d.ts.map +0 -1
  1023. package/dist/cli-tui/history/prompt-history.js +0 -185
  1024. package/dist/cli-tui/history/prompt-history.js.map +0 -1
  1025. package/dist/cli-tui/history/tool-history.d.ts +0 -50
  1026. package/dist/cli-tui/history/tool-history.d.ts.map +0 -1
  1027. package/dist/cli-tui/history/tool-history.js +0 -253
  1028. package/dist/cli-tui/history/tool-history.js.map +0 -1
  1029. package/dist/cli-tui/hook-message.d.ts +0 -13
  1030. package/dist/cli-tui/hook-message.d.ts.map +0 -1
  1031. package/dist/cli-tui/hook-message.js +0 -56
  1032. package/dist/cli-tui/hook-message.js.map +0 -1
  1033. package/dist/cli-tui/hooks/hook-input-modal.d.ts +0 -22
  1034. package/dist/cli-tui/hooks/hook-input-modal.d.ts.map +0 -1
  1035. package/dist/cli-tui/hooks/hook-input-modal.js +0 -63
  1036. package/dist/cli-tui/hooks/hook-input-modal.js.map +0 -1
  1037. package/dist/cli-tui/hotkeys-view.d.ts +0 -13
  1038. package/dist/cli-tui/hotkeys-view.d.ts.map +0 -1
  1039. package/dist/cli-tui/hotkeys-view.js +0 -96
  1040. package/dist/cli-tui/hotkeys-view.js.map +0 -1
  1041. package/dist/cli-tui/import-view.d.ts +0 -28
  1042. package/dist/cli-tui/import-view.d.ts.map +0 -1
  1043. package/dist/cli-tui/import-view.js +0 -184
  1044. package/dist/cli-tui/import-view.js.map +0 -1
  1045. package/dist/cli-tui/info-view.d.ts +0 -18
  1046. package/dist/cli-tui/info-view.d.ts.map +0 -1
  1047. package/dist/cli-tui/info-view.js +0 -107
  1048. package/dist/cli-tui/info-view.js.map +0 -1
  1049. package/dist/cli-tui/instruction-panel.d.ts +0 -11
  1050. package/dist/cli-tui/instruction-panel.d.ts.map +0 -1
  1051. package/dist/cli-tui/instruction-panel.js +0 -86
  1052. package/dist/cli-tui/instruction-panel.js.map +0 -1
  1053. package/dist/cli-tui/interrupt-controller.d.ts +0 -78
  1054. package/dist/cli-tui/interrupt-controller.d.ts.map +0 -1
  1055. package/dist/cli-tui/interrupt-controller.js +0 -104
  1056. package/dist/cli-tui/interrupt-controller.js.map +0 -1
  1057. package/dist/cli-tui/keybindings-config.d.ts +0 -27
  1058. package/dist/cli-tui/keybindings-config.d.ts.map +0 -1
  1059. package/dist/cli-tui/keybindings-config.js +0 -372
  1060. package/dist/cli-tui/keybindings-config.js.map +0 -1
  1061. package/dist/cli-tui/keybindings-watcher.d.ts +0 -8
  1062. package/dist/cli-tui/keybindings-watcher.d.ts.map +0 -1
  1063. package/dist/cli-tui/keybindings-watcher.js +0 -56
  1064. package/dist/cli-tui/keybindings-watcher.js.map +0 -1
  1065. package/dist/cli-tui/keybindings.d.ts +0 -13
  1066. package/dist/cli-tui/keybindings.d.ts.map +0 -1
  1067. package/dist/cli-tui/keybindings.js +0 -223
  1068. package/dist/cli-tui/keybindings.js.map +0 -1
  1069. package/dist/cli-tui/loader/loader-stage-manager.d.ts +0 -43
  1070. package/dist/cli-tui/loader/loader-stage-manager.d.ts.map +0 -1
  1071. package/dist/cli-tui/loader/loader-stage-manager.js +0 -241
  1072. package/dist/cli-tui/loader/loader-stage-manager.js.map +0 -1
  1073. package/dist/cli-tui/loader/loader-stage-telemetry.d.ts +0 -14
  1074. package/dist/cli-tui/loader/loader-stage-telemetry.d.ts.map +0 -1
  1075. package/dist/cli-tui/loader/loader-stage-telemetry.js +0 -34
  1076. package/dist/cli-tui/loader/loader-stage-telemetry.js.map +0 -1
  1077. package/dist/cli-tui/loader/loader-view.d.ts +0 -41
  1078. package/dist/cli-tui/loader/loader-view.d.ts.map +0 -1
  1079. package/dist/cli-tui/loader/loader-view.js +0 -162
  1080. package/dist/cli-tui/loader/loader-view.js.map +0 -1
  1081. package/dist/cli-tui/lsp-view.d.ts +0 -21
  1082. package/dist/cli-tui/lsp-view.d.ts.map +0 -1
  1083. package/dist/cli-tui/lsp-view.js +0 -183
  1084. package/dist/cli-tui/lsp-view.js.map +0 -1
  1085. package/dist/cli-tui/mermaid-renderer.d.ts +0 -2
  1086. package/dist/cli-tui/mermaid-renderer.d.ts.map +0 -1
  1087. package/dist/cli-tui/mermaid-renderer.js +0 -391
  1088. package/dist/cli-tui/mermaid-renderer.js.map +0 -1
  1089. package/dist/cli-tui/message-view.d.ts +0 -27
  1090. package/dist/cli-tui/message-view.d.ts.map +0 -1
  1091. package/dist/cli-tui/message-view.js +0 -169
  1092. package/dist/cli-tui/message-view.js.map +0 -1
  1093. package/dist/cli-tui/modal-manager.d.ts +0 -77
  1094. package/dist/cli-tui/modal-manager.d.ts.map +0 -1
  1095. package/dist/cli-tui/modal-manager.js +0 -131
  1096. package/dist/cli-tui/modal-manager.js.map +0 -1
  1097. package/dist/cli-tui/notification-view.d.ts +0 -16
  1098. package/dist/cli-tui/notification-view.d.ts.map +0 -1
  1099. package/dist/cli-tui/notification-view.js +0 -53
  1100. package/dist/cli-tui/notification-view.js.map +0 -1
  1101. package/dist/cli-tui/oauth/index.d.ts +0 -2
  1102. package/dist/cli-tui/oauth/index.d.ts.map +0 -1
  1103. package/dist/cli-tui/oauth/index.js +0 -2
  1104. package/dist/cli-tui/oauth/index.js.map +0 -1
  1105. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +0 -65
  1106. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +0 -1
  1107. package/dist/cli-tui/oauth/oauth-flow-controller.js +0 -400
  1108. package/dist/cli-tui/oauth/oauth-flow-controller.js.map +0 -1
  1109. package/dist/cli-tui/ollama-view.d.ts +0 -38
  1110. package/dist/cli-tui/ollama-view.d.ts.map +0 -1
  1111. package/dist/cli-tui/ollama-view.js +0 -395
  1112. package/dist/cli-tui/ollama-view.js.map +0 -1
  1113. package/dist/cli-tui/paste/index.d.ts +0 -2
  1114. package/dist/cli-tui/paste/index.d.ts.map +0 -1
  1115. package/dist/cli-tui/paste/index.js +0 -2
  1116. package/dist/cli-tui/paste/index.js.map +0 -1
  1117. package/dist/cli-tui/paste/paste-handler.d.ts +0 -54
  1118. package/dist/cli-tui/paste/paste-handler.d.ts.map +0 -1
  1119. package/dist/cli-tui/paste/paste-handler.js +0 -128
  1120. package/dist/cli-tui/paste/paste-handler.js.map +0 -1
  1121. package/dist/cli-tui/plan/plan-controller.d.ts +0 -28
  1122. package/dist/cli-tui/plan/plan-controller.d.ts.map +0 -1
  1123. package/dist/cli-tui/plan/plan-controller.js +0 -66
  1124. package/dist/cli-tui/plan/plan-controller.js.map +0 -1
  1125. package/dist/cli-tui/plan-panel-modal.d.ts +0 -28
  1126. package/dist/cli-tui/plan-panel-modal.d.ts.map +0 -1
  1127. package/dist/cli-tui/plan-panel-modal.js +0 -193
  1128. package/dist/cli-tui/plan-panel-modal.js.map +0 -1
  1129. package/dist/cli-tui/plan-view.d.ts +0 -57
  1130. package/dist/cli-tui/plan-view.d.ts.map +0 -1
  1131. package/dist/cli-tui/plan-view.js +0 -404
  1132. package/dist/cli-tui/plan-view.js.map +0 -1
  1133. package/dist/cli-tui/prompt-queue.d.ts.map +0 -1
  1134. package/dist/cli-tui/prompt-queue.js.map +0 -1
  1135. package/dist/cli-tui/queue/follow-up-shortcut.d.ts +0 -6
  1136. package/dist/cli-tui/queue/follow-up-shortcut.d.ts.map +0 -1
  1137. package/dist/cli-tui/queue/follow-up-shortcut.js +0 -12
  1138. package/dist/cli-tui/queue/follow-up-shortcut.js.map +0 -1
  1139. package/dist/cli-tui/queue/index.d.ts +0 -3
  1140. package/dist/cli-tui/queue/index.d.ts.map +0 -1
  1141. package/dist/cli-tui/queue/index.js +0 -3
  1142. package/dist/cli-tui/queue/index.js.map +0 -1
  1143. package/dist/cli-tui/queue/queue-controller.d.ts +0 -109
  1144. package/dist/cli-tui/queue/queue-controller.d.ts.map +0 -1
  1145. package/dist/cli-tui/queue/queue-controller.js +0 -327
  1146. package/dist/cli-tui/queue/queue-controller.js.map +0 -1
  1147. package/dist/cli-tui/queue/queue-panel-controller.d.ts +0 -34
  1148. package/dist/cli-tui/queue/queue-panel-controller.d.ts.map +0 -1
  1149. package/dist/cli-tui/queue/queue-panel-controller.js +0 -163
  1150. package/dist/cli-tui/queue/queue-panel-controller.js.map +0 -1
  1151. package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts +0 -7
  1152. package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts.map +0 -1
  1153. package/dist/cli-tui/queue/queued-follow-up-edit-binding.js +0 -14
  1154. package/dist/cli-tui/queue/queued-follow-up-edit-binding.js.map +0 -1
  1155. package/dist/cli-tui/queue-panel-modal.d.ts +0 -26
  1156. package/dist/cli-tui/queue-panel-modal.d.ts.map +0 -1
  1157. package/dist/cli-tui/queue-panel-modal.js +0 -159
  1158. package/dist/cli-tui/queue-panel-modal.js.map +0 -1
  1159. package/dist/cli-tui/run/run-command-view.d.ts +0 -17
  1160. package/dist/cli-tui/run/run-command-view.d.ts.map +0 -1
  1161. package/dist/cli-tui/run/run-command-view.js +0 -62
  1162. package/dist/cli-tui/run/run-command-view.js.map +0 -1
  1163. package/dist/cli-tui/run/run-controller.d.ts +0 -24
  1164. package/dist/cli-tui/run/run-controller.d.ts.map +0 -1
  1165. package/dist/cli-tui/run/run-controller.js +0 -38
  1166. package/dist/cli-tui/run/run-controller.js.map +0 -1
  1167. package/dist/cli-tui/run/run-shell-command.d.ts +0 -13
  1168. package/dist/cli-tui/run/run-shell-command.d.ts.map +0 -1
  1169. package/dist/cli-tui/run/run-shell-command.js +0 -51
  1170. package/dist/cli-tui/run/run-shell-command.js.map +0 -1
  1171. package/dist/cli-tui/run/streaming-shell-command.d.ts +0 -19
  1172. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +0 -1
  1173. package/dist/cli-tui/run/streaming-shell-command.js +0 -107
  1174. package/dist/cli-tui/run/streaming-shell-command.js.map +0 -1
  1175. package/dist/cli-tui/search/file-search-view.d.ts +0 -22
  1176. package/dist/cli-tui/search/file-search-view.d.ts.map +0 -1
  1177. package/dist/cli-tui/search/file-search-view.js +0 -68
  1178. package/dist/cli-tui/search/file-search-view.js.map +0 -1
  1179. package/dist/cli-tui/search/file-search.d.ts +0 -13
  1180. package/dist/cli-tui/search/file-search.d.ts.map +0 -1
  1181. package/dist/cli-tui/search/file-search.js +0 -52
  1182. package/dist/cli-tui/search/file-search.js.map +0 -1
  1183. package/dist/cli-tui/security-status.d.ts +0 -83
  1184. package/dist/cli-tui/security-status.d.ts.map +0 -1
  1185. package/dist/cli-tui/security-status.js +0 -214
  1186. package/dist/cli-tui/security-status.js.map +0 -1
  1187. package/dist/cli-tui/selectors/base-selector.d.ts +0 -27
  1188. package/dist/cli-tui/selectors/base-selector.d.ts.map +0 -1
  1189. package/dist/cli-tui/selectors/base-selector.js +0 -47
  1190. package/dist/cli-tui/selectors/base-selector.js.map +0 -1
  1191. package/dist/cli-tui/selectors/branch-summary-modal.d.ts +0 -18
  1192. package/dist/cli-tui/selectors/branch-summary-modal.d.ts.map +0 -1
  1193. package/dist/cli-tui/selectors/branch-summary-modal.js +0 -24
  1194. package/dist/cli-tui/selectors/branch-summary-modal.js.map +0 -1
  1195. package/dist/cli-tui/selectors/model-selector-view.d.ts +0 -22
  1196. package/dist/cli-tui/selectors/model-selector-view.d.ts.map +0 -1
  1197. package/dist/cli-tui/selectors/model-selector-view.js +0 -31
  1198. package/dist/cli-tui/selectors/model-selector-view.js.map +0 -1
  1199. package/dist/cli-tui/selectors/model-selector.d.ts +0 -30
  1200. package/dist/cli-tui/selectors/model-selector.d.ts.map +0 -1
  1201. package/dist/cli-tui/selectors/model-selector.js +0 -218
  1202. package/dist/cli-tui/selectors/model-selector.js.map +0 -1
  1203. package/dist/cli-tui/selectors/oauth-selector-view.d.ts +0 -20
  1204. package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +0 -1
  1205. package/dist/cli-tui/selectors/oauth-selector-view.js +0 -28
  1206. package/dist/cli-tui/selectors/oauth-selector-view.js.map +0 -1
  1207. package/dist/cli-tui/selectors/oauth-selector.d.ts +0 -19
  1208. package/dist/cli-tui/selectors/oauth-selector.d.ts.map +0 -1
  1209. package/dist/cli-tui/selectors/oauth-selector.js +0 -120
  1210. package/dist/cli-tui/selectors/oauth-selector.js.map +0 -1
  1211. package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts +0 -19
  1212. package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts.map +0 -1
  1213. package/dist/cli-tui/selectors/queue-mode-selector-view.js +0 -29
  1214. package/dist/cli-tui/selectors/queue-mode-selector-view.js.map +0 -1
  1215. package/dist/cli-tui/selectors/queue-mode-selector.d.ts +0 -5
  1216. package/dist/cli-tui/selectors/queue-mode-selector.d.ts.map +0 -1
  1217. package/dist/cli-tui/selectors/queue-mode-selector.js +0 -34
  1218. package/dist/cli-tui/selectors/queue-mode-selector.js.map +0 -1
  1219. package/dist/cli-tui/selectors/report-selector-view.d.ts +0 -17
  1220. package/dist/cli-tui/selectors/report-selector-view.d.ts.map +0 -1
  1221. package/dist/cli-tui/selectors/report-selector-view.js +0 -29
  1222. package/dist/cli-tui/selectors/report-selector-view.js.map +0 -1
  1223. package/dist/cli-tui/selectors/report-selector.d.ts +0 -7
  1224. package/dist/cli-tui/selectors/report-selector.d.ts.map +0 -1
  1225. package/dist/cli-tui/selectors/report-selector.js +0 -31
  1226. package/dist/cli-tui/selectors/report-selector.js.map +0 -1
  1227. package/dist/cli-tui/selectors/theme-selector-view.d.ts +0 -19
  1228. package/dist/cli-tui/selectors/theme-selector-view.d.ts.map +0 -1
  1229. package/dist/cli-tui/selectors/theme-selector-view.js +0 -41
  1230. package/dist/cli-tui/selectors/theme-selector-view.js.map +0 -1
  1231. package/dist/cli-tui/selectors/theme-selector.d.ts +0 -14
  1232. package/dist/cli-tui/selectors/theme-selector.d.ts.map +0 -1
  1233. package/dist/cli-tui/selectors/theme-selector.js +0 -46
  1234. package/dist/cli-tui/selectors/theme-selector.js.map +0 -1
  1235. package/dist/cli-tui/selectors/thinking-selector-view.d.ts +0 -20
  1236. package/dist/cli-tui/selectors/thinking-selector-view.d.ts.map +0 -1
  1237. package/dist/cli-tui/selectors/thinking-selector-view.js +0 -31
  1238. package/dist/cli-tui/selectors/thinking-selector-view.js.map +0 -1
  1239. package/dist/cli-tui/selectors/thinking-selector.d.ts +0 -9
  1240. package/dist/cli-tui/selectors/thinking-selector.d.ts.map +0 -1
  1241. package/dist/cli-tui/selectors/thinking-selector.js +0 -47
  1242. package/dist/cli-tui/selectors/thinking-selector.js.map +0 -1
  1243. package/dist/cli-tui/selectors/tree-selector-view.d.ts +0 -32
  1244. package/dist/cli-tui/selectors/tree-selector-view.d.ts.map +0 -1
  1245. package/dist/cli-tui/selectors/tree-selector-view.js +0 -407
  1246. package/dist/cli-tui/selectors/tree-selector-view.js.map +0 -1
  1247. package/dist/cli-tui/selectors/tree-selector.d.ts +0 -27
  1248. package/dist/cli-tui/selectors/tree-selector.d.ts.map +0 -1
  1249. package/dist/cli-tui/selectors/tree-selector.js +0 -194
  1250. package/dist/cli-tui/selectors/tree-selector.js.map +0 -1
  1251. package/dist/cli-tui/selectors/user-message-selector-view.d.ts +0 -25
  1252. package/dist/cli-tui/selectors/user-message-selector-view.d.ts.map +0 -1
  1253. package/dist/cli-tui/selectors/user-message-selector-view.js +0 -101
  1254. package/dist/cli-tui/selectors/user-message-selector-view.js.map +0 -1
  1255. package/dist/cli-tui/selectors/user-message-selector.d.ts +0 -30
  1256. package/dist/cli-tui/selectors/user-message-selector.d.ts.map +0 -1
  1257. package/dist/cli-tui/selectors/user-message-selector.js +0 -114
  1258. package/dist/cli-tui/selectors/user-message-selector.js.map +0 -1
  1259. package/dist/cli-tui/session/branch-controller.d.ts +0 -65
  1260. package/dist/cli-tui/session/branch-controller.d.ts.map +0 -1
  1261. package/dist/cli-tui/session/branch-controller.js +0 -125
  1262. package/dist/cli-tui/session/branch-controller.js.map +0 -1
  1263. package/dist/cli-tui/session/conversation-compactor.d.ts +0 -64
  1264. package/dist/cli-tui/session/conversation-compactor.d.ts.map +0 -1
  1265. package/dist/cli-tui/session/conversation-compactor.js +0 -77
  1266. package/dist/cli-tui/session/conversation-compactor.js.map +0 -1
  1267. package/dist/cli-tui/session/session-context.d.ts +0 -59
  1268. package/dist/cli-tui/session/session-context.d.ts.map +0 -1
  1269. package/dist/cli-tui/session/session-context.js +0 -79
  1270. package/dist/cli-tui/session/session-context.js.map +0 -1
  1271. package/dist/cli-tui/session/session-data-provider.d.ts +0 -23
  1272. package/dist/cli-tui/session/session-data-provider.d.ts.map +0 -1
  1273. package/dist/cli-tui/session/session-data-provider.js +0 -22
  1274. package/dist/cli-tui/session/session-data-provider.js.map +0 -1
  1275. package/dist/cli-tui/session/session-list.d.ts +0 -18
  1276. package/dist/cli-tui/session/session-list.d.ts.map +0 -1
  1277. package/dist/cli-tui/session/session-list.js +0 -103
  1278. package/dist/cli-tui/session/session-list.js.map +0 -1
  1279. package/dist/cli-tui/session/session-selector.d.ts +0 -12
  1280. package/dist/cli-tui/session/session-selector.d.ts.map +0 -1
  1281. package/dist/cli-tui/session/session-selector.js +0 -37
  1282. package/dist/cli-tui/session/session-selector.js.map +0 -1
  1283. package/dist/cli-tui/session/session-summary-controller.d.ts +0 -24
  1284. package/dist/cli-tui/session/session-summary-controller.d.ts.map +0 -1
  1285. package/dist/cli-tui/session/session-summary-controller.js +0 -96
  1286. package/dist/cli-tui/session/session-summary-controller.js.map +0 -1
  1287. package/dist/cli-tui/session/session-switcher-view.d.ts +0 -20
  1288. package/dist/cli-tui/session/session-switcher-view.d.ts.map +0 -1
  1289. package/dist/cli-tui/session/session-switcher-view.js +0 -43
  1290. package/dist/cli-tui/session/session-switcher-view.js.map +0 -1
  1291. package/dist/cli-tui/session/session-switcher.d.ts +0 -38
  1292. package/dist/cli-tui/session/session-switcher.d.ts.map +0 -1
  1293. package/dist/cli-tui/session/session-switcher.js +0 -204
  1294. package/dist/cli-tui/session/session-switcher.js.map +0 -1
  1295. package/dist/cli-tui/session/session-view.d.ts +0 -46
  1296. package/dist/cli-tui/session/session-view.d.ts.map +0 -1
  1297. package/dist/cli-tui/session/session-view.js +0 -311
  1298. package/dist/cli-tui/session/session-view.js.map +0 -1
  1299. package/dist/cli-tui/slash/index.d.ts +0 -2
  1300. package/dist/cli-tui/slash/index.d.ts.map +0 -1
  1301. package/dist/cli-tui/slash/index.js +0 -2
  1302. package/dist/cli-tui/slash/index.js.map +0 -1
  1303. package/dist/cli-tui/slash/slash-command-matcher.d.ts +0 -55
  1304. package/dist/cli-tui/slash/slash-command-matcher.d.ts.map +0 -1
  1305. package/dist/cli-tui/slash/slash-command-matcher.js +0 -113
  1306. package/dist/cli-tui/slash/slash-command-matcher.js.map +0 -1
  1307. package/dist/cli-tui/smart-autocomplete-provider.d.ts +0 -5
  1308. package/dist/cli-tui/smart-autocomplete-provider.d.ts.map +0 -1
  1309. package/dist/cli-tui/smart-autocomplete-provider.js +0 -44
  1310. package/dist/cli-tui/smart-autocomplete-provider.js.map +0 -1
  1311. package/dist/cli-tui/startup-announcements.d.ts +0 -15
  1312. package/dist/cli-tui/startup-announcements.d.ts.map +0 -1
  1313. package/dist/cli-tui/startup-announcements.js +0 -75
  1314. package/dist/cli-tui/startup-announcements.js.map +0 -1
  1315. package/dist/cli-tui/status/cost-view.d.ts +0 -27
  1316. package/dist/cli-tui/status/cost-view.d.ts.map +0 -1
  1317. package/dist/cli-tui/status/cost-view.js +0 -212
  1318. package/dist/cli-tui/status/cost-view.js.map +0 -1
  1319. package/dist/cli-tui/status/diagnostics-templates.d.ts +0 -34
  1320. package/dist/cli-tui/status/diagnostics-templates.d.ts.map +0 -1
  1321. package/dist/cli-tui/status/diagnostics-templates.js +0 -167
  1322. package/dist/cli-tui/status/diagnostics-templates.js.map +0 -1
  1323. package/dist/cli-tui/status/diagnostics-view.d.ts +0 -48
  1324. package/dist/cli-tui/status/diagnostics-view.d.ts.map +0 -1
  1325. package/dist/cli-tui/status/diagnostics-view.js +0 -249
  1326. package/dist/cli-tui/status/diagnostics-view.js.map +0 -1
  1327. package/dist/cli-tui/status/diagnostics.d.ts +0 -39
  1328. package/dist/cli-tui/status/diagnostics.d.ts.map +0 -1
  1329. package/dist/cli-tui/status/diagnostics.js +0 -286
  1330. package/dist/cli-tui/status/diagnostics.js.map +0 -1
  1331. package/dist/cli-tui/status/health-snapshot.d.ts +0 -17
  1332. package/dist/cli-tui/status/health-snapshot.d.ts.map +0 -1
  1333. package/dist/cli-tui/status/health-snapshot.js +0 -28
  1334. package/dist/cli-tui/status/health-snapshot.js.map +0 -1
  1335. package/dist/cli-tui/status/quota-view.d.ts +0 -37
  1336. package/dist/cli-tui/status/quota-view.d.ts.map +0 -1
  1337. package/dist/cli-tui/status/quota-view.js +0 -309
  1338. package/dist/cli-tui/status/quota-view.js.map +0 -1
  1339. package/dist/cli-tui/status/telemetry-view.d.ts +0 -23
  1340. package/dist/cli-tui/status/telemetry-view.d.ts.map +0 -1
  1341. package/dist/cli-tui/status/telemetry-view.js +0 -77
  1342. package/dist/cli-tui/status/telemetry-view.js.map +0 -1
  1343. package/dist/cli-tui/status/training-view.d.ts +0 -23
  1344. package/dist/cli-tui/status/training-view.d.ts.map +0 -1
  1345. package/dist/cli-tui/status/training-view.js +0 -71
  1346. package/dist/cli-tui/status/training-view.js.map +0 -1
  1347. package/dist/cli-tui/streaming-view.d.ts +0 -43
  1348. package/dist/cli-tui/streaming-view.d.ts.map +0 -1
  1349. package/dist/cli-tui/streaming-view.js +0 -176
  1350. package/dist/cli-tui/streaming-view.js.map +0 -1
  1351. package/dist/cli-tui/terminal/index.d.ts +0 -2
  1352. package/dist/cli-tui/terminal/index.d.ts.map +0 -1
  1353. package/dist/cli-tui/terminal/index.js +0 -2
  1354. package/dist/cli-tui/terminal/index.js.map +0 -1
  1355. package/dist/cli-tui/terminal/terminal-utils.d.ts +0 -44
  1356. package/dist/cli-tui/terminal/terminal-utils.d.ts.map +0 -1
  1357. package/dist/cli-tui/terminal/terminal-utils.js +0 -145
  1358. package/dist/cli-tui/terminal/terminal-utils.js.map +0 -1
  1359. package/dist/cli-tui/tips/tip-scheduler.d.ts +0 -19
  1360. package/dist/cli-tui/tips/tip-scheduler.d.ts.map +0 -1
  1361. package/dist/cli-tui/tips/tip-scheduler.js +0 -135
  1362. package/dist/cli-tui/tips/tip-scheduler.js.map +0 -1
  1363. package/dist/cli-tui/tool-execution.d.ts +0 -76
  1364. package/dist/cli-tui/tool-execution.d.ts.map +0 -1
  1365. package/dist/cli-tui/tool-execution.js +0 -217
  1366. package/dist/cli-tui/tool-execution.js.map +0 -1
  1367. package/dist/cli-tui/tool-output-view.d.ts +0 -22
  1368. package/dist/cli-tui/tool-output-view.d.ts.map +0 -1
  1369. package/dist/cli-tui/tool-output-view.js +0 -71
  1370. package/dist/cli-tui/tool-output-view.js.map +0 -1
  1371. package/dist/cli-tui/tool-renderers/index.d.ts +0 -4
  1372. package/dist/cli-tui/tool-renderers/index.d.ts.map +0 -1
  1373. package/dist/cli-tui/tool-renderers/index.js +0 -19
  1374. package/dist/cli-tui/tool-renderers/index.js.map +0 -1
  1375. package/dist/cli-tui/tool-renderers/render-bash.d.ts +0 -6
  1376. package/dist/cli-tui/tool-renderers/render-bash.d.ts.map +0 -1
  1377. package/dist/cli-tui/tool-renderers/render-bash.js +0 -90
  1378. package/dist/cli-tui/tool-renderers/render-bash.js.map +0 -1
  1379. package/dist/cli-tui/tool-renderers/render-batch.d.ts +0 -12
  1380. package/dist/cli-tui/tool-renderers/render-batch.d.ts.map +0 -1
  1381. package/dist/cli-tui/tool-renderers/render-batch.js +0 -133
  1382. package/dist/cli-tui/tool-renderers/render-batch.js.map +0 -1
  1383. package/dist/cli-tui/tool-renderers/render-edit.d.ts +0 -6
  1384. package/dist/cli-tui/tool-renderers/render-edit.d.ts.map +0 -1
  1385. package/dist/cli-tui/tool-renderers/render-edit.js +0 -125
  1386. package/dist/cli-tui/tool-renderers/render-edit.js.map +0 -1
  1387. package/dist/cli-tui/tool-renderers/render-generic.d.ts +0 -6
  1388. package/dist/cli-tui/tool-renderers/render-generic.d.ts.map +0 -1
  1389. package/dist/cli-tui/tool-renderers/render-generic.js +0 -66
  1390. package/dist/cli-tui/tool-renderers/render-generic.js.map +0 -1
  1391. package/dist/cli-tui/tool-renderers/render-read.d.ts +0 -9
  1392. package/dist/cli-tui/tool-renderers/render-read.d.ts.map +0 -1
  1393. package/dist/cli-tui/tool-renderers/render-read.js +0 -108
  1394. package/dist/cli-tui/tool-renderers/render-read.js.map +0 -1
  1395. package/dist/cli-tui/tool-renderers/render-style.d.ts +0 -21
  1396. package/dist/cli-tui/tool-renderers/render-style.d.ts.map +0 -1
  1397. package/dist/cli-tui/tool-renderers/render-style.js +0 -51
  1398. package/dist/cli-tui/tool-renderers/render-style.js.map +0 -1
  1399. package/dist/cli-tui/tool-renderers/render-write.d.ts +0 -5
  1400. package/dist/cli-tui/tool-renderers/render-write.d.ts.map +0 -1
  1401. package/dist/cli-tui/tool-renderers/render-write.js +0 -60
  1402. package/dist/cli-tui/tool-renderers/render-write.js.map +0 -1
  1403. package/dist/cli-tui/tool-renderers/types.d.ts +0 -20
  1404. package/dist/cli-tui/tool-renderers/types.d.ts.map +0 -1
  1405. package/dist/cli-tui/tool-renderers/types.js +0 -2
  1406. package/dist/cli-tui/tool-renderers/types.js.map +0 -1
  1407. package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts +0 -29
  1408. package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts.map +0 -1
  1409. package/dist/cli-tui/tool-retry/tool-retry-controller.js +0 -110
  1410. package/dist/cli-tui/tool-retry/tool-retry-controller.js.map +0 -1
  1411. package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts +0 -27
  1412. package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts.map +0 -1
  1413. package/dist/cli-tui/tool-retry/tool-retry-modal.js +0 -118
  1414. package/dist/cli-tui/tool-retry/tool-retry-modal.js.map +0 -1
  1415. package/dist/cli-tui/tool-status-view.d.ts +0 -32
  1416. package/dist/cli-tui/tool-status-view.d.ts.map +0 -1
  1417. package/dist/cli-tui/tool-status-view.js +0 -86
  1418. package/dist/cli-tui/tool-status-view.js.map +0 -1
  1419. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +0 -59
  1420. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +0 -1
  1421. package/dist/cli-tui/tui-renderer/agent-event-bridge.js +0 -129
  1422. package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +0 -1
  1423. package/dist/cli-tui/tui-renderer/approval-setup.d.ts +0 -13
  1424. package/dist/cli-tui/tui-renderer/approval-setup.d.ts.map +0 -1
  1425. package/dist/cli-tui/tui-renderer/approval-setup.js +0 -5
  1426. package/dist/cli-tui/tui-renderer/approval-setup.js.map +0 -1
  1427. package/dist/cli-tui/tui-renderer/attachment-controller.d.ts +0 -54
  1428. package/dist/cli-tui/tui-renderer/attachment-controller.d.ts.map +0 -1
  1429. package/dist/cli-tui/tui-renderer/attachment-controller.js +0 -160
  1430. package/dist/cli-tui/tui-renderer/attachment-controller.js.map +0 -1
  1431. package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts +0 -9
  1432. package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts.map +0 -1
  1433. package/dist/cli-tui/tui-renderer/background-tasks-setup.js +0 -7
  1434. package/dist/cli-tui/tui-renderer/background-tasks-setup.js.map +0 -1
  1435. package/dist/cli-tui/tui-renderer/branch-controller.d.ts +0 -41
  1436. package/dist/cli-tui/tui-renderer/branch-controller.d.ts.map +0 -1
  1437. package/dist/cli-tui/tui-renderer/branch-controller.js +0 -102
  1438. package/dist/cli-tui/tui-renderer/branch-controller.js.map +0 -1
  1439. package/dist/cli-tui/tui-renderer/clear-controller.d.ts +0 -75
  1440. package/dist/cli-tui/tui-renderer/clear-controller.d.ts.map +0 -1
  1441. package/dist/cli-tui/tui-renderer/clear-controller.js +0 -75
  1442. package/dist/cli-tui/tui-renderer/clear-controller.js.map +0 -1
  1443. package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts +0 -14
  1444. package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts.map +0 -1
  1445. package/dist/cli-tui/tui-renderer/client-tools-setup.js +0 -5
  1446. package/dist/cli-tui/tui-renderer/client-tools-setup.js.map +0 -1
  1447. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +0 -111
  1448. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +0 -1
  1449. package/dist/cli-tui/tui-renderer/command-registry-options.js +0 -163
  1450. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +0 -1
  1451. package/dist/cli-tui/tui-renderer/command-registry.d.ts +0 -16
  1452. package/dist/cli-tui/tui-renderer/command-registry.d.ts.map +0 -1
  1453. package/dist/cli-tui/tui-renderer/command-registry.js +0 -23
  1454. package/dist/cli-tui/tui-renderer/command-registry.js.map +0 -1
  1455. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +0 -29
  1456. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +0 -1
  1457. package/dist/cli-tui/tui-renderer/command-suite-wiring.js +0 -108
  1458. package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +0 -1
  1459. package/dist/cli-tui/tui-renderer/compaction-controller.d.ts +0 -100
  1460. package/dist/cli-tui/tui-renderer/compaction-controller.d.ts.map +0 -1
  1461. package/dist/cli-tui/tui-renderer/compaction-controller.js +0 -160
  1462. package/dist/cli-tui/tui-renderer/compaction-controller.js.map +0 -1
  1463. package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts +0 -42
  1464. package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts.map +0 -1
  1465. package/dist/cli-tui/tui-renderer/custom-commands-controller.js +0 -106
  1466. package/dist/cli-tui/tui-renderer/custom-commands-controller.js.map +0 -1
  1467. package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts +0 -37
  1468. package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts.map +0 -1
  1469. package/dist/cli-tui/tui-renderer/delegating-command-handlers.js +0 -139
  1470. package/dist/cli-tui/tui-renderer/delegating-command-handlers.js.map +0 -1
  1471. package/dist/cli-tui/tui-renderer/editor-bindings.d.ts +0 -21
  1472. package/dist/cli-tui/tui-renderer/editor-bindings.d.ts.map +0 -1
  1473. package/dist/cli-tui/tui-renderer/editor-bindings.js +0 -76
  1474. package/dist/cli-tui/tui-renderer/editor-bindings.js.map +0 -1
  1475. package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts +0 -90
  1476. package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts.map +0 -1
  1477. package/dist/cli-tui/tui-renderer/footer-hints-controller.js +0 -152
  1478. package/dist/cli-tui/tui-renderer/footer-hints-controller.js.map +0 -1
  1479. package/dist/cli-tui/tui-renderer/history-controller.d.ts +0 -35
  1480. package/dist/cli-tui/tui-renderer/history-controller.d.ts.map +0 -1
  1481. package/dist/cli-tui/tui-renderer/history-controller.js +0 -153
  1482. package/dist/cli-tui/tui-renderer/history-controller.js.map +0 -1
  1483. package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts +0 -83
  1484. package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts.map +0 -1
  1485. package/dist/cli-tui/tui-renderer/hook-ui-controller.js +0 -309
  1486. package/dist/cli-tui/tui-renderer/hook-ui-controller.js.map +0 -1
  1487. package/dist/cli-tui/tui-renderer/initial-preferences.d.ts +0 -19
  1488. package/dist/cli-tui/tui-renderer/initial-preferences.d.ts.map +0 -1
  1489. package/dist/cli-tui/tui-renderer/initial-preferences.js +0 -54
  1490. package/dist/cli-tui/tui-renderer/initial-preferences.js.map +0 -1
  1491. package/dist/cli-tui/tui-renderer/input-controller.d.ts +0 -56
  1492. package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +0 -1
  1493. package/dist/cli-tui/tui-renderer/input-controller.js +0 -104
  1494. package/dist/cli-tui/tui-renderer/input-controller.js.map +0 -1
  1495. package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts +0 -19
  1496. package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts.map +0 -1
  1497. package/dist/cli-tui/tui-renderer/interrupt-setup.js +0 -18
  1498. package/dist/cli-tui/tui-renderer/interrupt-setup.js.map +0 -1
  1499. package/dist/cli-tui/tui-renderer/loader-setup.d.ts +0 -14
  1500. package/dist/cli-tui/tui-renderer/loader-setup.d.ts.map +0 -1
  1501. package/dist/cli-tui/tui-renderer/loader-setup.js +0 -13
  1502. package/dist/cli-tui/tui-renderer/loader-setup.js.map +0 -1
  1503. package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts +0 -55
  1504. package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts.map +0 -1
  1505. package/dist/cli-tui/tui-renderer/mcp-events-setup.js +0 -143
  1506. package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +0 -1
  1507. package/dist/cli-tui/tui-renderer/misc-handlers.d.ts +0 -59
  1508. package/dist/cli-tui/tui-renderer/misc-handlers.d.ts.map +0 -1
  1509. package/dist/cli-tui/tui-renderer/misc-handlers.js +0 -143
  1510. package/dist/cli-tui/tui-renderer/misc-handlers.js.map +0 -1
  1511. package/dist/cli-tui/tui-renderer/oauth-setup.d.ts +0 -14
  1512. package/dist/cli-tui/tui-renderer/oauth-setup.d.ts.map +0 -1
  1513. package/dist/cli-tui/tui-renderer/oauth-setup.js +0 -26
  1514. package/dist/cli-tui/tui-renderer/oauth-setup.js.map +0 -1
  1515. package/dist/cli-tui/tui-renderer/plan-setup.d.ts +0 -19
  1516. package/dist/cli-tui/tui-renderer/plan-setup.d.ts.map +0 -1
  1517. package/dist/cli-tui/tui-renderer/plan-setup.js +0 -23
  1518. package/dist/cli-tui/tui-renderer/plan-setup.js.map +0 -1
  1519. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts +0 -21
  1520. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts.map +0 -1
  1521. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js +0 -64
  1522. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js.map +0 -1
  1523. package/dist/cli-tui/tui-renderer/queue-setup.d.ts +0 -18
  1524. package/dist/cli-tui/tui-renderer/queue-setup.d.ts.map +0 -1
  1525. package/dist/cli-tui/tui-renderer/queue-setup.js +0 -42
  1526. package/dist/cli-tui/tui-renderer/queue-setup.js.map +0 -1
  1527. package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts +0 -53
  1528. package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts.map +0 -1
  1529. package/dist/cli-tui/tui-renderer/quick-settings-controller.js +0 -100
  1530. package/dist/cli-tui/tui-renderer/quick-settings-controller.js.map +0 -1
  1531. package/dist/cli-tui/tui-renderer/session-setup.d.ts +0 -31
  1532. package/dist/cli-tui/tui-renderer/session-setup.d.ts.map +0 -1
  1533. package/dist/cli-tui/tui-renderer/session-setup.js +0 -45
  1534. package/dist/cli-tui/tui-renderer/session-setup.js.map +0 -1
  1535. package/dist/cli-tui/tui-renderer/session-state-controller.d.ts +0 -66
  1536. package/dist/cli-tui/tui-renderer/session-state-controller.d.ts.map +0 -1
  1537. package/dist/cli-tui/tui-renderer/session-state-controller.js +0 -139
  1538. package/dist/cli-tui/tui-renderer/session-state-controller.js.map +0 -1
  1539. package/dist/cli-tui/tui-renderer/skills-controller.d.ts +0 -70
  1540. package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +0 -1
  1541. package/dist/cli-tui/tui-renderer/skills-controller.js +0 -411
  1542. package/dist/cli-tui/tui-renderer/skills-controller.js.map +0 -1
  1543. package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts +0 -90
  1544. package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts.map +0 -1
  1545. package/dist/cli-tui/tui-renderer/slash-hint-controller.js +0 -131
  1546. package/dist/cli-tui/tui-renderer/slash-hint-controller.js.map +0 -1
  1547. package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts +0 -13
  1548. package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts.map +0 -1
  1549. package/dist/cli-tui/tui-renderer/tool-retry-setup.js +0 -5
  1550. package/dist/cli-tui/tui-renderer/tool-retry-setup.js.map +0 -1
  1551. package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts +0 -38
  1552. package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts.map +0 -1
  1553. package/dist/cli-tui/tui-renderer/tooling-views-setup.js +0 -48
  1554. package/dist/cli-tui/tui-renderer/tooling-views-setup.js.map +0 -1
  1555. package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +0 -70
  1556. package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +0 -1
  1557. package/dist/cli-tui/tui-renderer/ui-state-controller.js +0 -184
  1558. package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +0 -1
  1559. package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts +0 -13
  1560. package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts.map +0 -1
  1561. package/dist/cli-tui/tui-renderer/ui-state-setup.js +0 -11
  1562. package/dist/cli-tui/tui-renderer/ui-state-setup.js.map +0 -1
  1563. package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts +0 -26
  1564. package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts.map +0 -1
  1565. package/dist/cli-tui/tui-renderer/utility-views-setup.js +0 -23
  1566. package/dist/cli-tui/tui-renderer/utility-views-setup.js.map +0 -1
  1567. package/dist/cli-tui/tui-renderer/viewport-controller.d.ts +0 -33
  1568. package/dist/cli-tui/tui-renderer/viewport-controller.d.ts.map +0 -1
  1569. package/dist/cli-tui/tui-renderer/viewport-controller.js +0 -98
  1570. package/dist/cli-tui/tui-renderer/viewport-controller.js.map +0 -1
  1571. package/dist/cli-tui/tui-renderer.d.ts +0 -268
  1572. package/dist/cli-tui/tui-renderer.d.ts.map +0 -1
  1573. package/dist/cli-tui/tui-renderer.js +0 -2131
  1574. package/dist/cli-tui/tui-renderer.js.map +0 -1
  1575. package/dist/cli-tui/ui-state.d.ts +0 -27
  1576. package/dist/cli-tui/ui-state.d.ts.map +0 -1
  1577. package/dist/cli-tui/ui-state.js +0 -88
  1578. package/dist/cli-tui/ui-state.js.map +0 -1
  1579. package/dist/cli-tui/update-view.d.ts +0 -16
  1580. package/dist/cli-tui/update-view.d.ts.map +0 -1
  1581. package/dist/cli-tui/update-view.js +0 -45
  1582. package/dist/cli-tui/update-view.js.map +0 -1
  1583. package/dist/cli-tui/user-message.d.ts +0 -17
  1584. package/dist/cli-tui/user-message.d.ts.map +0 -1
  1585. package/dist/cli-tui/user-message.js +0 -83
  1586. package/dist/cli-tui/user-message.js.map +0 -1
  1587. package/dist/cli-tui/utils/borders.d.ts +0 -131
  1588. package/dist/cli-tui/utils/borders.d.ts.map +0 -1
  1589. package/dist/cli-tui/utils/borders.js +0 -254
  1590. package/dist/cli-tui/utils/borders.js.map +0 -1
  1591. package/dist/cli-tui/utils/commands/command-palette-view.d.ts +0 -22
  1592. package/dist/cli-tui/utils/commands/command-palette-view.d.ts.map +0 -1
  1593. package/dist/cli-tui/utils/commands/command-palette-view.js +0 -31
  1594. package/dist/cli-tui/utils/commands/command-palette-view.js.map +0 -1
  1595. package/dist/cli-tui/utils/commands/command-palette.d.ts +0 -29
  1596. package/dist/cli-tui/utils/commands/command-palette.d.ts.map +0 -1
  1597. package/dist/cli-tui/utils/commands/command-palette.js +0 -213
  1598. package/dist/cli-tui/utils/commands/command-palette.js.map +0 -1
  1599. package/dist/cli-tui/utils/commands/command-registry-builder.d.ts +0 -8
  1600. package/dist/cli-tui/utils/commands/command-registry-builder.d.ts.map +0 -1
  1601. package/dist/cli-tui/utils/commands/command-registry-builder.js +0 -9
  1602. package/dist/cli-tui/utils/commands/command-registry-builder.js.map +0 -1
  1603. package/dist/cli-tui/utils/commands/review-prompt.d.ts +0 -10
  1604. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +0 -1
  1605. package/dist/cli-tui/utils/commands/review-prompt.js +0 -90
  1606. package/dist/cli-tui/utils/commands/review-prompt.js.map +0 -1
  1607. package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts +0 -15
  1608. package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts.map +0 -1
  1609. package/dist/cli-tui/utils/commands/slash-hint-bar.js +0 -106
  1610. package/dist/cli-tui/utils/commands/slash-hint-bar.js.map +0 -1
  1611. package/dist/cli-tui/utils/env-detect.d.ts +0 -11
  1612. package/dist/cli-tui/utils/env-detect.d.ts.map +0 -1
  1613. package/dist/cli-tui/utils/env-detect.js +0 -107
  1614. package/dist/cli-tui/utils/env-detect.js.map +0 -1
  1615. package/dist/cli-tui/utils/external-editor.d.ts +0 -7
  1616. package/dist/cli-tui/utils/external-editor.d.ts.map +0 -1
  1617. package/dist/cli-tui/utils/external-editor.js +0 -53
  1618. package/dist/cli-tui/utils/external-editor.js.map +0 -1
  1619. package/dist/cli-tui/utils/footer-utils.d.ts +0 -169
  1620. package/dist/cli-tui/utils/footer-utils.d.ts.map +0 -1
  1621. package/dist/cli-tui/utils/footer-utils.js +0 -716
  1622. package/dist/cli-tui/utils/footer-utils.js.map +0 -1
  1623. package/dist/cli-tui/utils/footer-visual-widgets.d.ts +0 -38
  1624. package/dist/cli-tui/utils/footer-visual-widgets.d.ts.map +0 -1
  1625. package/dist/cli-tui/utils/footer-visual-widgets.js +0 -141
  1626. package/dist/cli-tui/utils/footer-visual-widgets.js.map +0 -1
  1627. package/dist/cli-tui/utils/git-branch-tracker.d.ts +0 -38
  1628. package/dist/cli-tui/utils/git-branch-tracker.d.ts.map +0 -1
  1629. package/dist/cli-tui/utils/git-branch-tracker.js +0 -90
  1630. package/dist/cli-tui/utils/git-branch-tracker.js.map +0 -1
  1631. package/dist/cli-tui/utils/glyphs.d.ts +0 -207
  1632. package/dist/cli-tui/utils/glyphs.d.ts.map +0 -1
  1633. package/dist/cli-tui/utils/glyphs.js +0 -249
  1634. package/dist/cli-tui/utils/glyphs.js.map +0 -1
  1635. package/dist/cli-tui/utils/layout.d.ts +0 -77
  1636. package/dist/cli-tui/utils/layout.d.ts.map +0 -1
  1637. package/dist/cli-tui/utils/layout.js +0 -83
  1638. package/dist/cli-tui/utils/layout.js.map +0 -1
  1639. package/dist/cli-tui/utils/links.d.ts +0 -2
  1640. package/dist/cli-tui/utils/links.d.ts.map +0 -1
  1641. package/dist/cli-tui/utils/links.js +0 -14
  1642. package/dist/cli-tui/utils/links.js.map +0 -1
  1643. package/dist/cli-tui/utils/motion.d.ts +0 -4
  1644. package/dist/cli-tui/utils/motion.d.ts.map +0 -1
  1645. package/dist/cli-tui/utils/motion.js +0 -28
  1646. package/dist/cli-tui/utils/motion.js.map +0 -1
  1647. package/dist/cli-tui/utils/runtime-badges.d.ts +0 -26
  1648. package/dist/cli-tui/utils/runtime-badges.d.ts.map +0 -1
  1649. package/dist/cli-tui/utils/runtime-badges.js +0 -178
  1650. package/dist/cli-tui/utils/runtime-badges.js.map +0 -1
  1651. package/dist/cli-tui/utils/shimmer.d.ts +0 -12
  1652. package/dist/cli-tui/utils/shimmer.d.ts.map +0 -1
  1653. package/dist/cli-tui/utils/shimmer.js +0 -57
  1654. package/dist/cli-tui/utils/shimmer.js.map +0 -1
  1655. package/dist/cli-tui/utils/stage-labels.d.ts +0 -9
  1656. package/dist/cli-tui/utils/stage-labels.d.ts.map +0 -1
  1657. package/dist/cli-tui/utils/stage-labels.js +0 -65
  1658. package/dist/cli-tui/utils/stage-labels.js.map +0 -1
  1659. package/dist/cli-tui/utils/text-formatting.d.ts +0 -13
  1660. package/dist/cli-tui/utils/text-formatting.d.ts.map +0 -1
  1661. package/dist/cli-tui/utils/text-formatting.js +0 -109
  1662. package/dist/cli-tui/utils/text-formatting.js.map +0 -1
  1663. package/dist/cli-tui/utils/text-preview.d.ts +0 -10
  1664. package/dist/cli-tui/utils/text-preview.d.ts.map +0 -1
  1665. package/dist/cli-tui/utils/text-preview.js +0 -26
  1666. package/dist/cli-tui/utils/text-preview.js.map +0 -1
  1667. package/dist/cli-tui/utils/tool-text-utils.d.ts +0 -42
  1668. package/dist/cli-tui/utils/tool-text-utils.d.ts.map +0 -1
  1669. package/dist/cli-tui/utils/tool-text-utils.js +0 -361
  1670. package/dist/cli-tui/utils/tool-text-utils.js.map +0 -1
  1671. package/dist/cli-tui/welcome-animation.d.ts +0 -24
  1672. package/dist/cli-tui/welcome-animation.d.ts.map +0 -1
  1673. package/dist/cli-tui/welcome-animation.js +0 -99
  1674. package/dist/cli-tui/welcome-animation.js.map +0 -1
  1675. package/dist/cli-tui/welcome-colors.d.ts +0 -3
  1676. package/dist/cli-tui/welcome-colors.d.ts.map +0 -1
  1677. package/dist/cli-tui/welcome-colors.js +0 -39
  1678. package/dist/cli-tui/welcome-colors.js.map +0 -1
  1679. package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts +0 -304
  1680. package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts.map +0 -1
  1681. package/dist/node_modules/@evalops/tui/dist/autocomplete.js +0 -712
  1682. package/dist/node_modules/@evalops/tui/dist/autocomplete.js.map +0 -1
  1683. package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts +0 -185
  1684. package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts.map +0 -1
  1685. package/dist/node_modules/@evalops/tui/dist/components/editor.js +0 -1460
  1686. package/dist/node_modules/@evalops/tui/dist/components/editor.js.map +0 -1
  1687. package/dist/node_modules/@evalops/tui/dist/components/input.d.ts +0 -117
  1688. package/dist/node_modules/@evalops/tui/dist/components/input.d.ts.map +0 -1
  1689. package/dist/node_modules/@evalops/tui/dist/components/input.js +0 -391
  1690. package/dist/node_modules/@evalops/tui/dist/components/input.js.map +0 -1
  1691. package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts +0 -256
  1692. package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts.map +0 -1
  1693. package/dist/node_modules/@evalops/tui/dist/components/layout.js +0 -478
  1694. package/dist/node_modules/@evalops/tui/dist/components/layout.js.map +0 -1
  1695. package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts +0 -199
  1696. package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts.map +0 -1
  1697. package/dist/node_modules/@evalops/tui/dist/components/loader.js +0 -374
  1698. package/dist/node_modules/@evalops/tui/dist/components/loader.js.map +0 -1
  1699. package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts +0 -65
  1700. package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts.map +0 -1
  1701. package/dist/node_modules/@evalops/tui/dist/components/markdown.js +0 -562
  1702. package/dist/node_modules/@evalops/tui/dist/components/markdown.js.map +0 -1
  1703. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts +0 -262
  1704. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -1
  1705. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js +0 -575
  1706. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js.map +0 -1
  1707. package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts +0 -131
  1708. package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts.map +0 -1
  1709. package/dist/node_modules/@evalops/tui/dist/components/select-list.js +0 -257
  1710. package/dist/node_modules/@evalops/tui/dist/components/select-list.js.map +0 -1
  1711. package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts +0 -11
  1712. package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts.map +0 -1
  1713. package/dist/node_modules/@evalops/tui/dist/components/spacer.js +0 -19
  1714. package/dist/node_modules/@evalops/tui/dist/components/spacer.js.map +0 -1
  1715. package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts +0 -22
  1716. package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts.map +0 -1
  1717. package/dist/node_modules/@evalops/tui/dist/components/status-bar.js +0 -44
  1718. package/dist/node_modules/@evalops/tui/dist/components/status-bar.js.map +0 -1
  1719. package/dist/node_modules/@evalops/tui/dist/components/text.d.ts +0 -26
  1720. package/dist/node_modules/@evalops/tui/dist/components/text.d.ts.map +0 -1
  1721. package/dist/node_modules/@evalops/tui/dist/components/text.js +0 -181
  1722. package/dist/node_modules/@evalops/tui/dist/components/text.js.map +0 -1
  1723. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts +0 -15
  1724. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -1
  1725. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js +0 -84
  1726. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js.map +0 -1
  1727. package/dist/node_modules/@evalops/tui/dist/index.d.ts +0 -87
  1728. package/dist/node_modules/@evalops/tui/dist/index.d.ts.map +0 -1
  1729. package/dist/node_modules/@evalops/tui/dist/index.js +0 -85
  1730. package/dist/node_modules/@evalops/tui/dist/index.js.map +0 -1
  1731. package/dist/node_modules/@evalops/tui/dist/keymap.d.ts +0 -189
  1732. package/dist/node_modules/@evalops/tui/dist/keymap.d.ts.map +0 -1
  1733. package/dist/node_modules/@evalops/tui/dist/keymap.js +0 -363
  1734. package/dist/node_modules/@evalops/tui/dist/keymap.js.map +0 -1
  1735. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts +0 -25
  1736. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -1
  1737. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js +0 -828
  1738. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js.map +0 -1
  1739. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts +0 -40
  1740. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -1
  1741. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js +0 -474
  1742. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js.map +0 -1
  1743. package/dist/node_modules/@evalops/tui/dist/terminal.d.ts +0 -201
  1744. package/dist/node_modules/@evalops/tui/dist/terminal.d.ts.map +0 -1
  1745. package/dist/node_modules/@evalops/tui/dist/terminal.js +0 -241
  1746. package/dist/node_modules/@evalops/tui/dist/terminal.js.map +0 -1
  1747. package/dist/node_modules/@evalops/tui/dist/tui.d.ts +0 -263
  1748. package/dist/node_modules/@evalops/tui/dist/tui.d.ts.map +0 -1
  1749. package/dist/node_modules/@evalops/tui/dist/tui.js +0 -694
  1750. package/dist/node_modules/@evalops/tui/dist/tui.js.map +0 -1
  1751. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts +0 -14
  1752. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -1
  1753. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js +0 -44
  1754. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js.map +0 -1
  1755. package/dist/node_modules/@evalops/tui/dist/utils.d.ts +0 -32
  1756. package/dist/node_modules/@evalops/tui/dist/utils.d.ts.map +0 -1
  1757. package/dist/node_modules/@evalops/tui/dist/utils.js +0 -556
  1758. package/dist/node_modules/@evalops/tui/dist/utils.js.map +0 -1
  1759. package/dist/node_modules/@evalops/tui/package.json +0 -58
  1760. package/dist/skills/artifact-metadata.d.ts +0 -16
  1761. package/dist/skills/artifact-metadata.d.ts.map +0 -1
  1762. package/dist/skills/artifact-metadata.js +0 -86
  1763. package/dist/skills/artifact-metadata.js.map +0 -1
  1764. package/dist/skills/composer-diagnostics.d.ts +0 -69
  1765. package/dist/skills/composer-diagnostics.d.ts.map +0 -1
  1766. package/dist/skills/composer-diagnostics.js +0 -78
  1767. package/dist/skills/composer-diagnostics.js.map +0 -1
  1768. package/dist/skills/composer.d.ts +0 -19
  1769. package/dist/skills/composer.d.ts.map +0 -1
  1770. package/dist/skills/composer.js +0 -52
  1771. package/dist/skills/composer.js.map +0 -1
  1772. package/dist/skills/eval-harness.d.ts +0 -38
  1773. package/dist/skills/eval-harness.d.ts.map +0 -1
  1774. package/dist/skills/eval-harness.js +0 -112
  1775. package/dist/skills/eval-harness.js.map +0 -1
  1776. package/dist/skills/index.d.ts +0 -40
  1777. package/dist/skills/index.d.ts.map +0 -1
  1778. package/dist/skills/index.js +0 -40
  1779. package/dist/skills/index.js.map +0 -1
  1780. package/dist/skills/linter.d.ts +0 -36
  1781. package/dist/skills/linter.d.ts.map +0 -1
  1782. package/dist/skills/linter.js +0 -399
  1783. package/dist/skills/linter.js.map +0 -1
  1784. package/dist/skills/loader.d.ts +0 -252
  1785. package/dist/skills/loader.d.ts.map +0 -1
  1786. package/dist/skills/loader.js +0 -957
  1787. package/dist/skills/loader.js.map +0 -1
  1788. package/dist/skills/package-contract.d.ts +0 -45
  1789. package/dist/skills/package-contract.d.ts.map +0 -1
  1790. package/dist/skills/package-contract.js +0 -153
  1791. package/dist/skills/package-contract.js.map +0 -1
  1792. package/dist/skills/runtime-activation.d.ts +0 -68
  1793. package/dist/skills/runtime-activation.d.ts.map +0 -1
  1794. package/dist/skills/runtime-activation.js +0 -228
  1795. package/dist/skills/runtime-activation.js.map +0 -1
  1796. package/dist/skills/scaffold-from-template.d.ts +0 -58
  1797. package/dist/skills/scaffold-from-template.d.ts.map +0 -1
  1798. package/dist/skills/scaffold-from-template.js +0 -72
  1799. package/dist/skills/scaffold-from-template.js.map +0 -1
  1800. package/dist/skills/scaffolder.d.ts +0 -65
  1801. package/dist/skills/scaffolder.d.ts.map +0 -1
  1802. package/dist/skills/scaffolder.js +0 -167
  1803. package/dist/skills/scaffolder.js.map +0 -1
  1804. package/dist/skills/service-client.d.ts +0 -56
  1805. package/dist/skills/service-client.d.ts.map +0 -1
  1806. package/dist/skills/service-client.js +0 -266
  1807. package/dist/skills/service-client.js.map +0 -1
  1808. package/dist/skills/skill-templates.d.ts +0 -70
  1809. package/dist/skills/skill-templates.d.ts.map +0 -1
  1810. package/dist/skills/skill-templates.js +0 -154
  1811. package/dist/skills/skill-templates.js.map +0 -1
  1812. package/dist/skills/tool.d.ts +0 -21
  1813. package/dist/skills/tool.d.ts.map +0 -1
  1814. package/dist/skills/tool.js +0 -334
  1815. package/dist/skills/tool.js.map +0 -1
  1816. package/dist/skills/trust-cache.d.ts +0 -58
  1817. package/dist/skills/trust-cache.d.ts.map +0 -1
  1818. package/dist/skills/trust-cache.js +0 -130
  1819. package/dist/skills/trust-cache.js.map +0 -1
  1820. package/dist/skills/types.d.ts +0 -91
  1821. package/dist/skills/types.d.ts.map +0 -1
  1822. package/dist/skills/types.js +0 -8
  1823. package/dist/skills/types.js.map +0 -1
  1824. /package/dist/{cli-tui → runtime}/prompt-queue.d.ts +0 -0
  1825. /package/dist/{cli-tui → runtime}/prompt-queue.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"agent-bootstrap.js","sourceRoot":"","sources":["../../src/evalops/agent-bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { hostname } from \"node:os\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type { CallToolResult } from \"@modelcontextprotocol/sdk/types.js\";\nimport { getOAuthToken, hasOAuthCredentials, login } from \"../oauth/index.js\";\nimport {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n\tsaveOAuthCredentials,\n} from \"../oauth/storage.js\";\nimport { getPackageVersion } from \"../package-metadata.js\";\nimport { getEnvValue, normalizeBaseUrl } from \"../platform/client.js\";\nimport { PLATFORM_HTTP_ROUTES } from \"../platform/core-services.js\";\nimport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nexport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredEvalOpsAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nconst DEFAULT_AGENT_MCP_BASE_URL = \"https://app.evalops.dev\";\nconst DEFAULT_IDENTITY_BASE_URL = \"https://identity.evalops.dev\";\nconst AGENT_MCP_MANIFEST_PATH = \"/.well-known/evalops/agent-mcp.json\";\nconst AGENT_MCP_PATH = \"/mcp\";\nconst DEFAULT_AGENT_TYPE = \"maestro\";\nconst DEFAULT_SURFACE = \"cli\";\nconst DEFAULT_AGENT_NEUTRAL_CAPABILITIES = [\n\t\"mcp\",\n\t\"tool.use\",\n\t\"responses:create\",\n];\nconst DEFAULT_MAESTRO_AGENT_CAPABILITIES = [\n\t\"maestro:init\",\n\t\"maestro:cli\",\n\t\"conversation:manage\",\n\t\"workflow:orchestrate\",\n\t\"code:write\",\n\t\"code:review\",\n\t\"code:test\",\n\t\"shell\",\n\t\"git\",\n\t\"fs\",\n\t\"mcp\",\n\t\"tool.use\",\n\t\"research\",\n\t\"responses:create\",\n];\nconst DEFAULT_API_KEY_SCOPES = [\n\t\"agent:register\",\n\t\"agent:heartbeat\",\n\t\"governance:evaluate\",\n\t\"llm_gateway:invoke\",\n\t\"memories:read\",\n\t\"memories:write\",\n\t\"meter:record\",\n];\n\nexport interface EvalOpsInitOptions {\n\tagentType?: string;\n\tapiKeyScopes?: string[];\n\tcapabilities?: string[];\n\texpiresInDays?: number;\n\tforceLogin?: boolean;\n\tintegrationProfile?: string;\n\tjson?: boolean;\n\tkeyName?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\tmcpUrl?: string;\n\tregisterScopes?: string[];\n\trotateKey?: boolean;\n\truntimeOwner?: string;\n\tshimType?: string;\n\tsurface?: string;\n\ttraceMode?: string;\n\tttlSeconds?: number;\n\tworkspaceId?: string;\n}\n\nexport interface EvalOpsInitResult {\n\tagentId?: string;\n\tapiKeyCreated: boolean;\n\tapprovalPolicyAttached?: boolean;\n\tauthenticatedAs?: string;\n\tconsoleUrl?: string;\n\tendpoint: string;\n\tevidenceEventPublished?: boolean;\n\tevidenceEvents?: number;\n\tgovernedActionsLoaded?: number;\n\tgovernedInferenceCheckRan?: boolean;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\torganizationId?: string;\n\tregistryVisible?: boolean;\n\triskFindings?: number;\n\trunId?: string;\n\truntimeOwner?: string;\n\tscopesGranted?: string[];\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\tstored: boolean;\n\ttraceIngestionStarted?: boolean;\n\ttraceMode?: string;\n}\n\nexport interface EvalOpsInitStatus {\n\tmessage: string;\n}\n\nexport interface EvalOpsInitDependencies {\n\tcreateMcpClient?: (endpoint: string, bearerToken: string) => EvalOpsMcpClient;\n\tfetch?: typeof fetch;\n\tgetOAuthToken?: typeof getOAuthToken;\n\thasOAuthCredentials?: typeof hasOAuthCredentials;\n\tloadCredentials?: typeof loadOAuthCredentials;\n\tlogin?: typeof login;\n\tnow?: () => Date;\n\tonAuthUrl?: (url: string) => void;\n\tonStatus?: (status: EvalOpsInitStatus) => void;\n\tsaveCredentials?: typeof saveOAuthCredentials;\n}\n\nexport interface EvalOpsMcpClient {\n\tcallTool(\n\t\tname: string,\n\t\targs: Record<string, unknown>,\n\t): Promise<CallToolResult>;\n\tclose(): Promise<void>;\n\tconnect(): Promise<void>;\n}\n\ninterface CreateAPIKeyOutput {\n\tapi_key: string;\n\texpires_at?: string;\n\tkey_id?: string;\n\tname?: string;\n\tprefix?: string;\n\tscopes?: string[];\n}\n\ninterface CreateAPIKeyHTTPOutput extends Partial<CreateAPIKeyOutput> {\n\terror?: string;\n\tkey?: Record<string, unknown>;\n\tscopes_granted?: unknown;\n}\n\ninterface RegisterOutput {\n\tagent_id?: string;\n\texpires_at?: string;\n\tintegration_profile?: string;\n\tmemory_mode?: string;\n\tregistered?: boolean;\n\tregistry_visible?: boolean;\n\trun_id?: string;\n\truntime_owner?: string;\n\tscopes_denied?: string[];\n\tscopes_granted?: string[];\n\tshim_type?: string;\n\ttrace_mode?: string;\n}\n\ninterface CheckActionOutput {\n\tdecision?: string;\n\trisk_level?: string;\n\treasons?: string[];\n}\n\ninterface ControlPlaneSummaryOutput {\n\tevidence?: unknown[];\n\tfindings?: unknown[];\n\tmetrics?: {\n\t\tapproval_required_tools?: number;\n\t\thigh_risk_tools?: number;\n\t\ttotal_tools?: number;\n\t};\n\tpolicy_controls?: unknown[];\n\ttools?: unknown[];\n}\n\ninterface AgentMcpEndpoint {\n\tendpoint: string;\n\tidentityBaseUrl?: string;\n\tmanifestUrl?: string;\n\tpreferDerivedIdentity?: boolean;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst values = value\n\t\t.map((entry) => nonEmptyString(entry))\n\t\t.filter((entry): entry is string => Boolean(entry));\n\treturn values.length > 0 ? values : undefined;\n}\n\nfunction positiveInteger(value: number | undefined): number | undefined {\n\treturn typeof value === \"number\" && Number.isInteger(value) && value > 0\n\t\t? value\n\t\t: undefined;\n}\n\nfunction normalizeMcpEndpoint(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (\n\t\tparsed.pathname === \"\" ||\n\t\tparsed.pathname === \"/\" ||\n\t\tparsed.pathname === AGENT_MCP_MANIFEST_PATH\n\t) {\n\t\tparsed.pathname = AGENT_MCP_PATH;\n\t\tparsed.search = \"\";\n\t\tparsed.hash = \"\";\n\t}\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nfunction normalizeManifestUrl(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (parsed.pathname === \"\" || parsed.pathname === \"/\") {\n\t\tparsed.pathname = AGENT_MCP_MANIFEST_PATH;\n\t}\n\treturn parsed.toString();\n}\n\nfunction resolveIdentityBaseUrl(\n\tcredentials: OAuthCredentials | null,\n\tendpoint?: AgentMcpEndpoint,\n): string {\n\tconst configured = getEnvValue([\n\t\t\"MAESTRO_IDENTITY_URL\",\n\t\t\"EVALOPS_IDENTITY_URL\",\n\t\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\t\"EVALOPS_BASE_URL\",\n\t]);\n\tconst stored =\n\t\ttypeof credentials?.metadata?.identityBaseUrl === \"string\"\n\t\t\t? credentials.metadata.identityBaseUrl\n\t\t\t: undefined;\n\tconst derived = identityBaseUrlFromMcpEndpoint(endpoint?.endpoint);\n\tconst storedBeforeDerived = endpoint\n\t\t? !endpoint.preferDerivedIdentity && isCustomMcpEndpoint(endpoint.endpoint)\n\t\t: false;\n\treturn normalizeBaseUrl(\n\t\tconfigured ??\n\t\t\tendpoint?.identityBaseUrl ??\n\t\t\t(endpoint?.preferDerivedIdentity ? derived : undefined) ??\n\t\t\t(storedBeforeDerived ? stored : undefined) ??\n\t\t\tderived ??\n\t\t\tstored ??\n\t\t\tDEFAULT_IDENTITY_BASE_URL,\n\t\tObject.values(PLATFORM_HTTP_ROUTES.identity),\n\t);\n}\n\nfunction isCustomMcpEndpoint(endpoint: string): boolean {\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\treturn (\n\t\tparsed.hostname !== \"app.evalops.dev\" &&\n\t\tparsed.hostname !== \"staging.evalops.dev\"\n\t);\n}\n\nfunction identityBaseUrlFromMcpEndpoint(\n\tendpoint: string | undefined,\n): string | undefined {\n\tif (!endpoint) {\n\t\treturn undefined;\n\t}\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\tif (parsed.hostname === \"app.evalops.dev\") {\n\t\treturn DEFAULT_IDENTITY_BASE_URL;\n\t}\n\tif (parsed.hostname === \"staging.evalops.dev\") {\n\t\treturn \"https://api.staging.evalops.dev\";\n\t}\n\tif (parsed.hostname.startsWith(\"app.\")) {\n\t\tparsed.hostname = `identity.${parsed.hostname.slice(\"app.\".length)}`;\n\t}\n\tparsed.pathname = \"\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nasync function resolveEndpointFromManifest(\n\tmanifestUrl: string,\n\tfetchImpl: typeof fetch,\n): Promise<AgentMcpEndpoint> {\n\tconst response = await fetchImpl(manifestUrl, {\n\t\theaders: { accept: \"application/json\" },\n\t});\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`Failed to fetch EvalOps MCP manifest (${response.status} ${response.statusText})`,\n\t\t);\n\t}\n\tconst payload = (await response.json()) as unknown;\n\tconst payloadRecord = isRecord(payload) ? payload : undefined;\n\tconst protocol =\n\t\tpayloadRecord && isRecord(payloadRecord.protocol)\n\t\t\t? payloadRecord.protocol\n\t\t\t: undefined;\n\tconst endpoint = nonEmptyString(protocol?.endpoint);\n\tif (!endpoint) {\n\t\tthrow new Error(\"EvalOps MCP manifest did not include protocol.endpoint\");\n\t}\n\tconst identity = payloadRecord?.identity;\n\tconst identityBaseUrl =\n\t\tnonEmptyString(isRecord(identity) ? identity.base_url : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.baseUrl : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.url : undefined) ??\n\t\tnonEmptyString(payloadRecord?.identity_base_url) ??\n\t\tnonEmptyString(payloadRecord?.identityBaseUrl);\n\treturn {\n\t\tendpoint: normalizeMcpEndpoint(endpoint),\n\t\tidentityBaseUrl,\n\t\tmanifestUrl,\n\t\tpreferDerivedIdentity: true,\n\t};\n}\n\nasync function resolveAgentMcpEndpoint(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<Pick<EvalOpsInitDependencies, \"fetch\" | \"loadCredentials\">>,\n): Promise<AgentMcpEndpoint> {\n\tif (options.mcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(options.mcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\tif (options.manifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(options.manifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst configuredMcpUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_URL\",\n\t\t\"MAESTRO_AGENT_MCP_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_URL\",\n\t]);\n\tif (configuredMcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(configuredMcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\n\tconst configuredManifestUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_AGENT_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_MANIFEST_URL\",\n\t]);\n\tif (configuredManifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(configuredManifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst stored = getStoredAgentMcpMetadata(deps.loadCredentials(\"evalops\"));\n\tif (stored?.endpoint) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(stored.endpoint),\n\t\t\tmanifestUrl: stored.manifestUrl,\n\t\t};\n\t}\n\n\treturn resolveEndpointFromManifest(\n\t\t`${DEFAULT_AGENT_MCP_BASE_URL}${AGENT_MCP_MANIFEST_PATH}`,\n\t\tdeps.fetch,\n\t);\n}\n\nfunction createDefaultMcpClient(\n\tendpoint: string,\n\tbearerToken: string,\n): EvalOpsMcpClient {\n\tconst client = new Client(\n\t\t{\n\t\t\tname: \"maestro\",\n\t\t\tversion: getPackageVersion(),\n\t\t},\n\t\t{\n\t\t\tcapabilities: {},\n\t\t},\n\t);\n\tconst headers = {\n\t\taccept: \"application/json, text/event-stream\",\n\t\t\"content-type\": \"application/json\",\n\t\t...(bearerToken ? { authorization: `Bearer ${bearerToken}` } : {}),\n\t};\n\tconst transport = new StreamableHTTPClientTransport(new URL(endpoint), {\n\t\trequestInit: {\n\t\t\theaders,\n\t\t},\n\t});\n\treturn {\n\t\tcallTool: (name, args) =>\n\t\t\tclient.callTool({\n\t\t\t\tname,\n\t\t\t\targuments: args,\n\t\t\t}) as Promise<CallToolResult>,\n\t\tclose: () => client.close(),\n\t\tconnect: () => client.connect(transport),\n\t};\n}\n\nasync function callConnectedMcpTool<T>(\n\tclient: EvalOpsMcpClient,\n\ttoolName: string,\n\targs: Record<string, unknown>,\n): Promise<T> {\n\tconst result = await client.callTool(toolName, args);\n\tif (result.isError) {\n\t\tthrow new Error(`${toolName} returned an MCP error`);\n\t}\n\treturn parseToolOutput<T>(toolName, result);\n}\n\nfunction parseToolOutput<T>(toolName: string, result: CallToolResult): T {\n\tconst structuredContent = isRecord(result.structuredContent)\n\t\t? result.structuredContent\n\t\t: undefined;\n\tif (structuredContent) {\n\t\treturn structuredContent as T;\n\t}\n\tconst text = Array.isArray(result.content)\n\t\t? result.content\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tentry.type === \"text\" && typeof entry.text === \"string\"\n\t\t\t\t\t\t? entry.text\n\t\t\t\t\t\t: undefined,\n\t\t\t\t)\n\t\t\t\t.find((entry): entry is string => Boolean(entry))\n\t\t: undefined;\n\tif (text) {\n\t\tconst parsed = JSON.parse(text) as unknown;\n\t\tif (isRecord(parsed)) {\n\t\t\treturn parsed as T;\n\t\t}\n\t}\n\tthrow new Error(`${toolName} did not return structured JSON output`);\n}\n\nasync function ensureEvalOpsLogin(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<\n\t\tPick<\n\t\t\tEvalOpsInitDependencies,\n\t\t\t| \"getOAuthToken\"\n\t\t\t| \"hasOAuthCredentials\"\n\t\t\t| \"login\"\n\t\t\t| \"onAuthUrl\"\n\t\t\t| \"onStatus\"\n\t\t>\n\t>,\n): Promise<string> {\n\tif (options.forceLogin || !deps.hasOAuthCredentials(\"evalops\")) {\n\t\tdeps.onStatus({ message: \"Opening EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t}\n\n\tlet token = await deps.getOAuthToken(\"evalops\");\n\tif (!token) {\n\t\tdeps.onStatus({ message: \"Refreshing EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t\ttoken = await deps.getOAuthToken(\"evalops\");\n\t}\n\tif (!token) {\n\t\tthrow new Error(\"EvalOps login did not produce an access token\");\n\t}\n\treturn token;\n}\n\nfunction buildKeyName(options: EvalOpsInitOptions, now: Date): string {\n\tif (options.keyName?.trim()) {\n\t\treturn options.keyName.trim();\n\t}\n\tconst host = hostname()\n\t\t.replace(/[^a-zA-Z0-9._-]+/gu, \"-\")\n\t\t.slice(0, 48);\n\treturn `maestro-init-${host || \"local\"}-${now.toISOString().slice(0, 10)}`;\n}\n\nfunction integrationProfileForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.integrationProfile) ??\n\t\t(options.agentType && options.agentType !== DEFAULT_AGENT_TYPE\n\t\t\t? \"mcp_otlp\"\n\t\t\t: \"managed_runtime\")\n\t);\n}\n\nfunction shimTypeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.shimType) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"sdk\"\n\t\t\t: \"native_mcp\")\n\t);\n}\n\nfunction traceModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.traceMode) ??\n\t\t(integrationProfileForOptions(options) === \"mcp_only\"\n\t\t\t? \"mcp_events\"\n\t\t\t: \"otlp\")\n\t);\n}\n\nfunction memoryModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.memoryMode) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"durable\"\n\t\t\t: \"none\")\n\t);\n}\n\nfunction runtimeOwnerForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.runtimeOwner) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"evalops\"\n\t\t\t: \"external\")\n\t);\n}\n\nfunction capabilitiesForOptions(options: EvalOpsInitOptions): string[] {\n\tconst requested = stringArray(options.capabilities);\n\tconst defaults =\n\t\t(options.agentType ?? DEFAULT_AGENT_TYPE) === DEFAULT_AGENT_TYPE\n\t\t\t? DEFAULT_MAESTRO_AGENT_CAPABILITIES\n\t\t\t: DEFAULT_AGENT_NEUTRAL_CAPABILITIES;\n\tconst out: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const capability of requested ?? defaults) {\n\t\tconst normalized = nonEmptyString(capability);\n\t\tif (!normalized) continue;\n\t\tconst key = normalized.toLowerCase();\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(normalized);\n\t}\n\treturn out;\n}\n\nasync function createAgentAPIKey(\n\toptions: EvalOpsInitOptions,\n\tidentityBaseUrl: string,\n\toauthToken: string,\n\tfetchImpl: typeof fetch,\n\tnow: Date,\n): Promise<CreateAPIKeyOutput> {\n\tconst expiresInDays = positiveInteger(options.expiresInDays);\n\tconst expiresAt = expiresInDays\n\t\t? new Date(\n\t\t\t\tnow.getTime() + expiresInDays * 24 * 60 * 60 * 1000,\n\t\t\t).toISOString()\n\t\t: undefined;\n\tconst response = await fetchImpl(\n\t\t`${identityBaseUrl}${PLATFORM_HTTP_ROUTES.identity.apiKeys}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${oauthToken}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tname: buildKeyName(options, now),\n\t\t\t\tscopes: options.apiKeyScopes ?? DEFAULT_API_KEY_SCOPES,\n\t\t\t\t...(expiresAt ? { expires_at: expiresAt } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\tconst output = (await response\n\t\t.json()\n\t\t.catch(() => ({}))) as CreateAPIKeyHTTPOutput;\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\ttypeof output.error === \"string\" && output.error.trim()\n\t\t\t\t? output.error\n\t\t\t\t: `EvalOps API key creation failed (${response.status})`,\n\t\t);\n\t}\n\tconst key = isRecord(output.key) ? output.key : undefined;\n\tconst normalized: CreateAPIKeyOutput = {\n\t\tapi_key: nonEmptyString(output.api_key) ?? \"\",\n\t\texpires_at:\n\t\t\tnonEmptyString(output.expires_at) ?? nonEmptyString(key?.expires_at),\n\t\tkey_id: nonEmptyString(output.key_id) ?? nonEmptyString(key?.id),\n\t\tname: nonEmptyString(output.name) ?? nonEmptyString(key?.name),\n\t\tprefix: nonEmptyString(output.prefix) ?? nonEmptyString(key?.prefix),\n\t\tscopes:\n\t\t\tstringArray(output.scopes) ??\n\t\t\tstringArray(key?.scopes) ??\n\t\t\tstringArray(output.scopes_granted),\n\t};\n\tif (!nonEmptyString(normalized.api_key)) {\n\t\tthrow new Error(\"EvalOps API key creation did not return api_key\");\n\t}\n\treturn normalized;\n}\n\nasync function registerAgent(\n\toptions: EvalOpsInitOptions,\n\tclient: EvalOpsMcpClient,\n): Promise<RegisterOutput> {\n\tconst output = await callConnectedMcpTool<RegisterOutput>(\n\t\tclient,\n\t\t\"evalops_register\",\n\t\t{\n\t\t\tagent_type: options.agentType ?? DEFAULT_AGENT_TYPE,\n\t\t\tcapabilities: capabilitiesForOptions(options),\n\t\t\tintegration_profile: integrationProfileForOptions(options),\n\t\t\tmemory_mode: memoryModeForOptions(options),\n\t\t\truntime_owner: runtimeOwnerForOptions(options),\n\t\t\t...(options.registerScopes?.length\n\t\t\t\t? { scopes: options.registerScopes }\n\t\t\t\t: {}),\n\t\t\tshim_type: shimTypeForOptions(options),\n\t\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\t\ttrace_mode: traceModeForOptions(options),\n\t\t\t...(positiveInteger(options.ttlSeconds)\n\t\t\t\t? { ttl_seconds: options.ttlSeconds }\n\t\t\t\t: {}),\n\t\t\t...(options.workspaceId ? { workspace_id: options.workspaceId } : {}),\n\t\t},\n\t);\n\tif (output.registered !== true || !nonEmptyString(output.agent_id)) {\n\t\tthrow new Error(\"EvalOps agent registration did not return an agent_id\");\n\t}\n\treturn output;\n}\n\nasync function runGovernedInferenceCheck(\n\tclient: EvalOpsMcpClient,\n): Promise<CheckActionOutput> {\n\treturn callConnectedMcpTool<CheckActionOutput>(\n\t\tclient,\n\t\t\"evalops_check_action\",\n\t\t{\n\t\t\taction_type: \"llm_gateway.invoke\",\n\t\t\taction_payload: \"maestro init first governed inference check\",\n\t\t\tdeclared_risk_level: \"low\",\n\t\t},\n\t);\n}\n\nasync function loadControlPlaneSummary(\n\tclient: EvalOpsMcpClient,\n): Promise<ControlPlaneSummaryOutput> {\n\treturn callConnectedMcpTool<ControlPlaneSummaryOutput>(\n\t\tclient,\n\t\t\"evalops_control_plane_summary\",\n\t\t{},\n\t);\n}\n\nfunction organizationIdFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\treturn (\n\t\tnonEmptyString(credentials?.metadata?.organizationId) ??\n\t\tnonEmptyString(credentials?.metadata?.organization_id)\n\t);\n}\n\nfunction authenticatedAsFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\tconst metadata = credentials?.metadata;\n\tconst user = isRecord(metadata?.user) ? metadata.user : undefined;\n\treturn (\n\t\tnonEmptyString(metadata?.email) ??\n\t\tnonEmptyString(metadata?.preferred_username) ??\n\t\tnonEmptyString(metadata?.preferredUsername) ??\n\t\tnonEmptyString(metadata?.user) ??\n\t\tnonEmptyString(user?.email) ??\n\t\tnonEmptyString(user?.name)\n\t);\n}\n\nfunction consoleUrlFromEndpoint(endpoint: string): string {\n\tconst parsed = new URL(endpoint);\n\tparsed.pathname = \"/overview\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\tconst env =\n\t\tparsed.hostname === \"app.evalops.dev\"\n\t\t\t? \"production\"\n\t\t\t: parsed.hostname === \"staging.evalops.dev\"\n\t\t\t\t? \"staging\"\n\t\t\t\t: \"local\";\n\tparsed.searchParams.set(\"env\", env);\n\treturn parsed.toString();\n}\n\nfunction countHighRiskFindings(summary: ControlPlaneSummaryOutput): number {\n\tconst findings = Array.isArray(summary.findings) ? summary.findings : [];\n\tconst findingCount = findings.filter((finding) => {\n\t\tconst record = isRecord(finding) ? finding : undefined;\n\t\tconst severity = nonEmptyString(record?.severity)?.toLowerCase();\n\t\treturn severity === \"critical\" || severity === \"high\";\n\t}).length;\n\tconst metricCount = summary.metrics?.high_risk_tools;\n\tif (typeof metricCount === \"number\" && Number.isFinite(metricCount)) {\n\t\treturn Math.max(findingCount, Math.max(0, Math.trunc(metricCount)));\n\t}\n\treturn findingCount;\n}\n\nfunction hasPolicyControl(summary: ControlPlaneSummaryOutput): boolean {\n\tconst approvalRequired = summary.metrics?.approval_required_tools ?? 0;\n\tif (approvalRequired > 0) {\n\t\treturn true;\n\t}\n\tconst controls = Array.isArray(summary.policy_controls)\n\t\t? summary.policy_controls\n\t\t: [];\n\treturn controls.some((control) => {\n\t\tconst record = isRecord(control) ? control : undefined;\n\t\treturn /approval|policy|starter/i.test(\n\t\t\t[\n\t\t\t\tnonEmptyString(record?.label),\n\t\t\t\tnonEmptyString(record?.value),\n\t\t\t\tnonEmptyString(record?.detail),\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \"),\n\t\t);\n\t});\n}\n\nfunction hasTraceEvidence(summary: ControlPlaneSummaryOutput): boolean {\n\tconst evidence = Array.isArray(summary.evidence) ? summary.evidence : [];\n\treturn evidence.some((entry) => {\n\t\tconst record = isRecord(entry) ? entry : undefined;\n\t\treturn Boolean(\n\t\t\tnonEmptyString(record?.trace) ??\n\t\t\t\tnonEmptyString(record?.trace_id) ??\n\t\t\t\tnonEmptyString(record?.traceId),\n\t\t);\n\t});\n}\n\nfunction governedActionCount(summary: ControlPlaneSummaryOutput): number {\n\tconst metricTotal = summary.metrics?.total_tools;\n\tif (typeof metricTotal === \"number\" && Number.isFinite(metricTotal)) {\n\t\treturn Math.max(0, Math.trunc(metricTotal));\n\t}\n\treturn Array.isArray(summary.tools) ? summary.tools.length : 0;\n}\n\nfunction saveBootstrapMetadata(\n\tcredentials: OAuthCredentials,\n\tagentMcp: EvalOpsAgentMcpMetadata,\n\tsaveCredentials: typeof saveOAuthCredentials,\n): void {\n\tsaveCredentials(\"evalops\", {\n\t\t...credentials,\n\t\tmetadata: {\n\t\t\t...credentials.metadata,\n\t\t\tagentId: agentMcp.agentId ?? credentials.metadata?.agentId,\n\t\t\trunId: agentMcp.runId ?? credentials.metadata?.runId,\n\t\t\tsurface: agentMcp.surface,\n\t\t\tagentMcp,\n\t\t},\n\t});\n}\n\nexport async function bootstrapEvalOpsAgent(\n\toptions: EvalOpsInitOptions = {},\n\tdependencies: EvalOpsInitDependencies = {},\n): Promise<EvalOpsInitResult> {\n\tconst deps = {\n\t\tcreateMcpClient: dependencies.createMcpClient ?? createDefaultMcpClient,\n\t\tfetch: dependencies.fetch ?? fetch,\n\t\tgetOAuthToken: dependencies.getOAuthToken ?? getOAuthToken,\n\t\thasOAuthCredentials:\n\t\t\tdependencies.hasOAuthCredentials ?? hasOAuthCredentials,\n\t\tloadCredentials: dependencies.loadCredentials ?? loadOAuthCredentials,\n\t\tlogin: dependencies.login ?? login,\n\t\tnow: dependencies.now ?? (() => new Date()),\n\t\tonAuthUrl:\n\t\t\tdependencies.onAuthUrl ??\n\t\t\t((url: string) => {\n\t\t\t\tprocess.stdout.write(`${url}\\n`);\n\t\t\t}),\n\t\tonStatus: dependencies.onStatus ?? (() => undefined),\n\t\tsaveCredentials: dependencies.saveCredentials ?? saveOAuthCredentials,\n\t};\n\n\tconst oauthToken = await ensureEvalOpsLogin(options, deps);\n\tconst endpoint = await resolveAgentMcpEndpoint(options, deps);\n\tconst credentialsBeforeKey = deps.loadCredentials(\"evalops\");\n\tconst stored = getStoredAgentMcpMetadata(credentialsBeforeKey);\n\tconst identityBaseUrl = resolveIdentityBaseUrl(\n\t\tcredentialsBeforeKey,\n\t\tendpoint,\n\t);\n\tconst now = deps.now();\n\n\tlet apiKey = stored && !options.rotateKey ? stored.apiKey : undefined;\n\tlet keyOutput: CreateAPIKeyOutput | undefined;\n\tlet apiKeyCreated = false;\n\n\tif (!apiKey) {\n\t\tdeps.onStatus({ message: \"Creating EvalOps agent API key\" });\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\toptions,\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t} else {\n\t\tdeps.onStatus({ message: \"Reusing stored EvalOps agent API key\" });\n\t}\n\n\tdeps.onStatus({ message: \"Registering Maestro with EvalOps agent MCP\" });\n\tlet registerOutput: RegisterOutput;\n\tlet client: EvalOpsMcpClient;\n\tconst openAndRegister = async (token: string) => {\n\t\tconst mcpClient = deps.createMcpClient(endpoint.endpoint, token);\n\t\tawait mcpClient.connect();\n\t\ttry {\n\t\t\tconst output = await registerAgent(options, mcpClient);\n\t\t\treturn { client: mcpClient, registerOutput: output };\n\t\t} catch (error) {\n\t\t\tawait mcpClient.close().catch(() => undefined);\n\t\t\tthrow error;\n\t\t}\n\t};\n\ttry {\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t} catch (error) {\n\t\tif (apiKeyCreated) {\n\t\t\tthrow error;\n\t\t}\n\t\tdeps.onStatus({\n\t\t\tmessage: \"Stored EvalOps agent API key failed; rotating and retrying\",\n\t\t});\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\t{ ...options, rotateKey: true },\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t}\n\n\tlet governedInferenceCheck: CheckActionOutput = {};\n\tlet controlPlaneSummary: ControlPlaneSummaryOutput = {};\n\ttry {\n\t\tdeps.onStatus({ message: \"Running first governed inference check\" });\n\t\tgovernedInferenceCheck = await runGovernedInferenceCheck(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps governed inference check unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t}\n\ttry {\n\t\tdeps.onStatus({ message: \"Loading EvalOps control-plane status\" });\n\t\tcontrolPlaneSummary = await loadControlPlaneSummary(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps control-plane status unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t} finally {\n\t\tawait client.close().catch(() => undefined);\n\t}\n\n\tconst credentials = deps.loadCredentials(\"evalops\");\n\tif (!credentials) {\n\t\tthrow new Error(\"EvalOps OAuth credentials disappeared during init\");\n\t}\n\tconst keyPrefix = nonEmptyString(keyOutput?.prefix) ?? stored?.keyPrefix;\n\tconst scopes = keyOutput?.scopes ?? stored?.scopes;\n\tconst integrationProfile =\n\t\tnonEmptyString(registerOutput.integration_profile) ??\n\t\tintegrationProfileForOptions(options);\n\tconst memoryMode =\n\t\tnonEmptyString(registerOutput.memory_mode) ?? memoryModeForOptions(options);\n\tconst runtimeOwner =\n\t\tnonEmptyString(registerOutput.runtime_owner) ??\n\t\truntimeOwnerForOptions(options);\n\tconst shimType =\n\t\tnonEmptyString(registerOutput.shim_type) ?? shimTypeForOptions(options);\n\tconst traceMode =\n\t\tnonEmptyString(registerOutput.trace_mode) ?? traceModeForOptions(options);\n\tconst agentMcp: EvalOpsAgentMcpMetadata = {\n\t\ttype: \"agent-mcp\",\n\t\tapiKey,\n\t\tcreatedAt: (apiKeyCreated\n\t\t\t? now\n\t\t\t: new Date(stored?.createdAt ?? now)\n\t\t).toISOString(),\n\t\tendpoint: endpoint.endpoint,\n\t\tregisteredAt: deps.now().toISOString(),\n\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\tagentId: registerOutput.agent_id,\n\t\texpiresAt: nonEmptyString(keyOutput?.expires_at) ?? stored?.expiresAt,\n\t\tintegrationProfile,\n\t\tkeyId: nonEmptyString(keyOutput?.key_id) ?? stored?.keyId,\n\t\tkeyName: nonEmptyString(keyOutput?.name) ?? stored?.keyName,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopes,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\ttraceMode,\n\t\tworkspaceId:\n\t\t\toptions.workspaceId ?? organizationIdFromCredentials(credentials),\n\t};\n\tsaveBootstrapMetadata(credentials, agentMcp, deps.saveCredentials);\n\n\treturn {\n\t\tagentId: registerOutput.agent_id,\n\t\tapiKeyCreated,\n\t\tapprovalPolicyAttached: hasPolicyControl(controlPlaneSummary),\n\t\tauthenticatedAs: authenticatedAsFromCredentials(credentials),\n\t\tconsoleUrl: consoleUrlFromEndpoint(endpoint.endpoint),\n\t\tendpoint: endpoint.endpoint,\n\t\tevidenceEventPublished: (controlPlaneSummary.evidence ?? []).length > 0,\n\t\tevidenceEvents: (controlPlaneSummary.evidence ?? []).length,\n\t\tgovernedActionsLoaded: governedActionCount(controlPlaneSummary),\n\t\tgovernedInferenceCheckRan: Boolean(governedInferenceCheck.decision),\n\t\tintegrationProfile,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\torganizationId: organizationIdFromCredentials(credentials),\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\triskFindings: countHighRiskFindings(controlPlaneSummary),\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopesGranted: registerOutput.scopes_granted,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\tstored: true,\n\t\ttraceIngestionStarted: hasTraceEvidence(controlPlaneSummary),\n\t\ttraceMode,\n\t};\n}\n"]}
1
+ {"version":3,"file":"agent-bootstrap.js","sourceRoot":"","sources":["../../src/evalops/agent-bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { hostname } from \"node:os\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type { CallToolResult } from \"@modelcontextprotocol/sdk/types.js\";\nimport { getOAuthToken, hasOAuthCredentials, login } from \"../oauth/index.js\";\nimport {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n\tsaveOAuthCredentials,\n} from \"../oauth/storage.js\";\nimport { getPackageVersion } from \"../package-metadata.js\";\nimport { getEnvValue, normalizeBaseUrl } from \"../platform/client.js\";\nimport { PLATFORM_HTTP_ROUTES } from \"../platform/core-services.js\";\nimport { isRecord } from \"../utils/json.js\";\nimport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nexport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredEvalOpsAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nconst DEFAULT_AGENT_MCP_BASE_URL = \"https://app.evalops.dev\";\nconst DEFAULT_IDENTITY_BASE_URL = \"https://identity.evalops.dev\";\nconst AGENT_MCP_MANIFEST_PATH = \"/.well-known/evalops/agent-mcp.json\";\nconst AGENT_MCP_PATH = \"/mcp\";\nconst DEFAULT_AGENT_TYPE = \"maestro\";\nconst DEFAULT_SURFACE = \"cli\";\nconst DEFAULT_AGENT_NEUTRAL_CAPABILITIES = [\n\t\"mcp\",\n\t\"tool.use\",\n\t\"responses:create\",\n];\nconst DEFAULT_MAESTRO_AGENT_CAPABILITIES = [\n\t\"maestro:init\",\n\t\"maestro:cli\",\n\t\"conversation:manage\",\n\t\"workflow:orchestrate\",\n\t\"code:write\",\n\t\"code:review\",\n\t\"code:test\",\n\t\"shell\",\n\t\"git\",\n\t\"fs\",\n\t\"mcp\",\n\t\"tool.use\",\n\t\"research\",\n\t\"responses:create\",\n];\nconst DEFAULT_API_KEY_SCOPES = [\n\t\"agent:register\",\n\t\"agent:heartbeat\",\n\t\"governance:evaluate\",\n\t\"llm_gateway:invoke\",\n\t\"memories:read\",\n\t\"memories:write\",\n\t\"meter:record\",\n];\n\nexport interface EvalOpsInitOptions {\n\tagentType?: string;\n\tapiKeyScopes?: string[];\n\tcapabilities?: string[];\n\texpiresInDays?: number;\n\tforceLogin?: boolean;\n\tintegrationProfile?: string;\n\tjson?: boolean;\n\tkeyName?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\tmcpUrl?: string;\n\tregisterScopes?: string[];\n\trotateKey?: boolean;\n\truntimeOwner?: string;\n\tshimType?: string;\n\tsurface?: string;\n\ttraceMode?: string;\n\tttlSeconds?: number;\n\tworkspaceId?: string;\n}\n\nexport interface EvalOpsInitResult {\n\tagentId?: string;\n\tapiKeyCreated: boolean;\n\tapprovalPolicyAttached?: boolean;\n\tauthenticatedAs?: string;\n\tconsoleUrl?: string;\n\tendpoint: string;\n\tevidenceEventPublished?: boolean;\n\tevidenceEvents?: number;\n\tgovernedActionsLoaded?: number;\n\tgovernedInferenceCheckRan?: boolean;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\torganizationId?: string;\n\tregistryVisible?: boolean;\n\triskFindings?: number;\n\trunId?: string;\n\truntimeOwner?: string;\n\tscopesGranted?: string[];\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\tstored: boolean;\n\ttraceIngestionStarted?: boolean;\n\ttraceMode?: string;\n}\n\nexport interface EvalOpsInitStatus {\n\tmessage: string;\n}\n\nexport interface EvalOpsInitDependencies {\n\tcreateMcpClient?: (endpoint: string, bearerToken: string) => EvalOpsMcpClient;\n\tfetch?: typeof fetch;\n\tgetOAuthToken?: typeof getOAuthToken;\n\thasOAuthCredentials?: typeof hasOAuthCredentials;\n\tloadCredentials?: typeof loadOAuthCredentials;\n\tlogin?: typeof login;\n\tnow?: () => Date;\n\tonAuthUrl?: (url: string) => void;\n\tonStatus?: (status: EvalOpsInitStatus) => void;\n\tsaveCredentials?: typeof saveOAuthCredentials;\n}\n\nexport interface EvalOpsMcpClient {\n\tcallTool(\n\t\tname: string,\n\t\targs: Record<string, unknown>,\n\t): Promise<CallToolResult>;\n\tclose(): Promise<void>;\n\tconnect(): Promise<void>;\n}\n\ninterface CreateAPIKeyOutput {\n\tapi_key: string;\n\texpires_at?: string;\n\tkey_id?: string;\n\tname?: string;\n\tprefix?: string;\n\tscopes?: string[];\n}\n\ninterface CreateAPIKeyHTTPOutput extends Partial<CreateAPIKeyOutput> {\n\terror?: string;\n\tkey?: Record<string, unknown>;\n\tscopes_granted?: unknown;\n}\n\ninterface RegisterOutput {\n\tagent_id?: string;\n\texpires_at?: string;\n\tintegration_profile?: string;\n\tmemory_mode?: string;\n\tregistered?: boolean;\n\tregistry_visible?: boolean;\n\trun_id?: string;\n\truntime_owner?: string;\n\tscopes_denied?: string[];\n\tscopes_granted?: string[];\n\tshim_type?: string;\n\ttrace_mode?: string;\n}\n\ninterface CheckActionOutput {\n\tdecision?: string;\n\trisk_level?: string;\n\treasons?: string[];\n}\n\ninterface ControlPlaneSummaryOutput {\n\tevidence?: unknown[];\n\tfindings?: unknown[];\n\tmetrics?: {\n\t\tapproval_required_tools?: number;\n\t\thigh_risk_tools?: number;\n\t\ttotal_tools?: number;\n\t};\n\tpolicy_controls?: unknown[];\n\ttools?: unknown[];\n}\n\ninterface AgentMcpEndpoint {\n\tendpoint: string;\n\tidentityBaseUrl?: string;\n\tmanifestUrl?: string;\n\tpreferDerivedIdentity?: boolean;\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst values = value\n\t\t.map((entry) => nonEmptyString(entry))\n\t\t.filter((entry): entry is string => Boolean(entry));\n\treturn values.length > 0 ? values : undefined;\n}\n\nfunction positiveInteger(value: number | undefined): number | undefined {\n\treturn typeof value === \"number\" && Number.isInteger(value) && value > 0\n\t\t? value\n\t\t: undefined;\n}\n\nfunction normalizeMcpEndpoint(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (\n\t\tparsed.pathname === \"\" ||\n\t\tparsed.pathname === \"/\" ||\n\t\tparsed.pathname === AGENT_MCP_MANIFEST_PATH\n\t) {\n\t\tparsed.pathname = AGENT_MCP_PATH;\n\t\tparsed.search = \"\";\n\t\tparsed.hash = \"\";\n\t}\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nfunction normalizeManifestUrl(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (parsed.pathname === \"\" || parsed.pathname === \"/\") {\n\t\tparsed.pathname = AGENT_MCP_MANIFEST_PATH;\n\t}\n\treturn parsed.toString();\n}\n\nfunction resolveIdentityBaseUrl(\n\tcredentials: OAuthCredentials | null,\n\tendpoint?: AgentMcpEndpoint,\n): string {\n\tconst configured = getEnvValue([\n\t\t\"MAESTRO_IDENTITY_URL\",\n\t\t\"EVALOPS_IDENTITY_URL\",\n\t\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\t\"EVALOPS_BASE_URL\",\n\t]);\n\tconst stored =\n\t\ttypeof credentials?.metadata?.identityBaseUrl === \"string\"\n\t\t\t? credentials.metadata.identityBaseUrl\n\t\t\t: undefined;\n\tconst derived = identityBaseUrlFromMcpEndpoint(endpoint?.endpoint);\n\tconst storedBeforeDerived = endpoint\n\t\t? !endpoint.preferDerivedIdentity && isCustomMcpEndpoint(endpoint.endpoint)\n\t\t: false;\n\treturn normalizeBaseUrl(\n\t\tconfigured ??\n\t\t\tendpoint?.identityBaseUrl ??\n\t\t\t(endpoint?.preferDerivedIdentity ? derived : undefined) ??\n\t\t\t(storedBeforeDerived ? stored : undefined) ??\n\t\t\tderived ??\n\t\t\tstored ??\n\t\t\tDEFAULT_IDENTITY_BASE_URL,\n\t\tObject.values(PLATFORM_HTTP_ROUTES.identity),\n\t);\n}\n\nfunction isCustomMcpEndpoint(endpoint: string): boolean {\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\treturn (\n\t\tparsed.hostname !== \"app.evalops.dev\" &&\n\t\tparsed.hostname !== \"staging.evalops.dev\"\n\t);\n}\n\nfunction identityBaseUrlFromMcpEndpoint(\n\tendpoint: string | undefined,\n): string | undefined {\n\tif (!endpoint) {\n\t\treturn undefined;\n\t}\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\tif (parsed.hostname === \"app.evalops.dev\") {\n\t\treturn DEFAULT_IDENTITY_BASE_URL;\n\t}\n\tif (parsed.hostname === \"staging.evalops.dev\") {\n\t\treturn \"https://api.staging.evalops.dev\";\n\t}\n\tif (parsed.hostname.startsWith(\"app.\")) {\n\t\tparsed.hostname = `identity.${parsed.hostname.slice(\"app.\".length)}`;\n\t}\n\tparsed.pathname = \"\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nasync function resolveEndpointFromManifest(\n\tmanifestUrl: string,\n\tfetchImpl: typeof fetch,\n): Promise<AgentMcpEndpoint> {\n\tconst response = await fetchImpl(manifestUrl, {\n\t\theaders: { accept: \"application/json\" },\n\t});\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`Failed to fetch EvalOps MCP manifest (${response.status} ${response.statusText})`,\n\t\t);\n\t}\n\tconst payload = (await response.json()) as unknown;\n\tconst payloadRecord = isRecord(payload) ? payload : undefined;\n\tconst protocol =\n\t\tpayloadRecord && isRecord(payloadRecord.protocol)\n\t\t\t? payloadRecord.protocol\n\t\t\t: undefined;\n\tconst endpoint = nonEmptyString(protocol?.endpoint);\n\tif (!endpoint) {\n\t\tthrow new Error(\"EvalOps MCP manifest did not include protocol.endpoint\");\n\t}\n\tconst identity = payloadRecord?.identity;\n\tconst identityBaseUrl =\n\t\tnonEmptyString(isRecord(identity) ? identity.base_url : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.baseUrl : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.url : undefined) ??\n\t\tnonEmptyString(payloadRecord?.identity_base_url) ??\n\t\tnonEmptyString(payloadRecord?.identityBaseUrl);\n\treturn {\n\t\tendpoint: normalizeMcpEndpoint(endpoint),\n\t\tidentityBaseUrl,\n\t\tmanifestUrl,\n\t\tpreferDerivedIdentity: true,\n\t};\n}\n\nasync function resolveAgentMcpEndpoint(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<Pick<EvalOpsInitDependencies, \"fetch\" | \"loadCredentials\">>,\n): Promise<AgentMcpEndpoint> {\n\tif (options.mcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(options.mcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\tif (options.manifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(options.manifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst configuredMcpUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_URL\",\n\t\t\"MAESTRO_AGENT_MCP_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_URL\",\n\t]);\n\tif (configuredMcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(configuredMcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\n\tconst configuredManifestUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_AGENT_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_MANIFEST_URL\",\n\t]);\n\tif (configuredManifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(configuredManifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst stored = getStoredAgentMcpMetadata(deps.loadCredentials(\"evalops\"));\n\tif (stored?.endpoint) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(stored.endpoint),\n\t\t\tmanifestUrl: stored.manifestUrl,\n\t\t};\n\t}\n\n\treturn resolveEndpointFromManifest(\n\t\t`${DEFAULT_AGENT_MCP_BASE_URL}${AGENT_MCP_MANIFEST_PATH}`,\n\t\tdeps.fetch,\n\t);\n}\n\nfunction createDefaultMcpClient(\n\tendpoint: string,\n\tbearerToken: string,\n): EvalOpsMcpClient {\n\tconst client = new Client(\n\t\t{\n\t\t\tname: \"maestro\",\n\t\t\tversion: getPackageVersion(),\n\t\t},\n\t\t{\n\t\t\tcapabilities: {},\n\t\t},\n\t);\n\tconst headers = {\n\t\taccept: \"application/json, text/event-stream\",\n\t\t\"content-type\": \"application/json\",\n\t\t...(bearerToken ? { authorization: `Bearer ${bearerToken}` } : {}),\n\t};\n\tconst transport = new StreamableHTTPClientTransport(new URL(endpoint), {\n\t\trequestInit: {\n\t\t\theaders,\n\t\t},\n\t});\n\treturn {\n\t\tcallTool: (name, args) =>\n\t\t\tclient.callTool({\n\t\t\t\tname,\n\t\t\t\targuments: args,\n\t\t\t}) as Promise<CallToolResult>,\n\t\tclose: () => client.close(),\n\t\tconnect: () => client.connect(transport),\n\t};\n}\n\nasync function callConnectedMcpTool<T>(\n\tclient: EvalOpsMcpClient,\n\ttoolName: string,\n\targs: Record<string, unknown>,\n): Promise<T> {\n\tconst result = await client.callTool(toolName, args);\n\tif (result.isError) {\n\t\tthrow new Error(`${toolName} returned an MCP error`);\n\t}\n\treturn parseToolOutput<T>(toolName, result);\n}\n\nfunction parseToolOutput<T>(toolName: string, result: CallToolResult): T {\n\tconst structuredContent = isRecord(result.structuredContent)\n\t\t? result.structuredContent\n\t\t: undefined;\n\tif (structuredContent) {\n\t\treturn structuredContent as T;\n\t}\n\tconst text = Array.isArray(result.content)\n\t\t? result.content\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tentry.type === \"text\" && typeof entry.text === \"string\"\n\t\t\t\t\t\t? entry.text\n\t\t\t\t\t\t: undefined,\n\t\t\t\t)\n\t\t\t\t.find((entry): entry is string => Boolean(entry))\n\t\t: undefined;\n\tif (text) {\n\t\tconst parsed = JSON.parse(text) as unknown;\n\t\tif (isRecord(parsed)) {\n\t\t\treturn parsed as T;\n\t\t}\n\t}\n\tthrow new Error(`${toolName} did not return structured JSON output`);\n}\n\nasync function ensureEvalOpsLogin(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<\n\t\tPick<\n\t\t\tEvalOpsInitDependencies,\n\t\t\t| \"getOAuthToken\"\n\t\t\t| \"hasOAuthCredentials\"\n\t\t\t| \"login\"\n\t\t\t| \"onAuthUrl\"\n\t\t\t| \"onStatus\"\n\t\t>\n\t>,\n): Promise<string> {\n\tif (options.forceLogin || !deps.hasOAuthCredentials(\"evalops\")) {\n\t\tdeps.onStatus({ message: \"Opening EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t}\n\n\tlet token = await deps.getOAuthToken(\"evalops\");\n\tif (!token) {\n\t\tdeps.onStatus({ message: \"Refreshing EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t\ttoken = await deps.getOAuthToken(\"evalops\");\n\t}\n\tif (!token) {\n\t\tthrow new Error(\"EvalOps login did not produce an access token\");\n\t}\n\treturn token;\n}\n\nfunction buildKeyName(options: EvalOpsInitOptions, now: Date): string {\n\tif (options.keyName?.trim()) {\n\t\treturn options.keyName.trim();\n\t}\n\tconst host = hostname()\n\t\t.replace(/[^a-zA-Z0-9._-]+/gu, \"-\")\n\t\t.slice(0, 48);\n\treturn `maestro-init-${host || \"local\"}-${now.toISOString().slice(0, 10)}`;\n}\n\nfunction integrationProfileForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.integrationProfile) ??\n\t\t(options.agentType && options.agentType !== DEFAULT_AGENT_TYPE\n\t\t\t? \"mcp_otlp\"\n\t\t\t: \"managed_runtime\")\n\t);\n}\n\nfunction shimTypeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.shimType) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"sdk\"\n\t\t\t: \"native_mcp\")\n\t);\n}\n\nfunction traceModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.traceMode) ??\n\t\t(integrationProfileForOptions(options) === \"mcp_only\"\n\t\t\t? \"mcp_events\"\n\t\t\t: \"otlp\")\n\t);\n}\n\nfunction memoryModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.memoryMode) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"durable\"\n\t\t\t: \"none\")\n\t);\n}\n\nfunction runtimeOwnerForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.runtimeOwner) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"evalops\"\n\t\t\t: \"external\")\n\t);\n}\n\nfunction capabilitiesForOptions(options: EvalOpsInitOptions): string[] {\n\tconst requested = stringArray(options.capabilities);\n\tconst defaults =\n\t\t(options.agentType ?? DEFAULT_AGENT_TYPE) === DEFAULT_AGENT_TYPE\n\t\t\t? DEFAULT_MAESTRO_AGENT_CAPABILITIES\n\t\t\t: DEFAULT_AGENT_NEUTRAL_CAPABILITIES;\n\tconst out: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const capability of requested ?? defaults) {\n\t\tconst normalized = nonEmptyString(capability);\n\t\tif (!normalized) continue;\n\t\tconst key = normalized.toLowerCase();\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(normalized);\n\t}\n\treturn out;\n}\n\nasync function createAgentAPIKey(\n\toptions: EvalOpsInitOptions,\n\tidentityBaseUrl: string,\n\toauthToken: string,\n\tfetchImpl: typeof fetch,\n\tnow: Date,\n): Promise<CreateAPIKeyOutput> {\n\tconst expiresInDays = positiveInteger(options.expiresInDays);\n\tconst expiresAt = expiresInDays\n\t\t? new Date(\n\t\t\t\tnow.getTime() + expiresInDays * 24 * 60 * 60 * 1000,\n\t\t\t).toISOString()\n\t\t: undefined;\n\tconst response = await fetchImpl(\n\t\t`${identityBaseUrl}${PLATFORM_HTTP_ROUTES.identity.apiKeys}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${oauthToken}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tname: buildKeyName(options, now),\n\t\t\t\tscopes: options.apiKeyScopes ?? DEFAULT_API_KEY_SCOPES,\n\t\t\t\t...(expiresAt ? { expires_at: expiresAt } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\tconst output = (await response\n\t\t.json()\n\t\t.catch(() => ({}))) as CreateAPIKeyHTTPOutput;\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\ttypeof output.error === \"string\" && output.error.trim()\n\t\t\t\t? output.error\n\t\t\t\t: `EvalOps API key creation failed (${response.status})`,\n\t\t);\n\t}\n\tconst key = isRecord(output.key) ? output.key : undefined;\n\tconst normalized: CreateAPIKeyOutput = {\n\t\tapi_key: nonEmptyString(output.api_key) ?? \"\",\n\t\texpires_at:\n\t\t\tnonEmptyString(output.expires_at) ?? nonEmptyString(key?.expires_at),\n\t\tkey_id: nonEmptyString(output.key_id) ?? nonEmptyString(key?.id),\n\t\tname: nonEmptyString(output.name) ?? nonEmptyString(key?.name),\n\t\tprefix: nonEmptyString(output.prefix) ?? nonEmptyString(key?.prefix),\n\t\tscopes:\n\t\t\tstringArray(output.scopes) ??\n\t\t\tstringArray(key?.scopes) ??\n\t\t\tstringArray(output.scopes_granted),\n\t};\n\tif (!nonEmptyString(normalized.api_key)) {\n\t\tthrow new Error(\"EvalOps API key creation did not return api_key\");\n\t}\n\treturn normalized;\n}\n\nasync function registerAgent(\n\toptions: EvalOpsInitOptions,\n\tclient: EvalOpsMcpClient,\n): Promise<RegisterOutput> {\n\tconst output = await callConnectedMcpTool<RegisterOutput>(\n\t\tclient,\n\t\t\"evalops_register\",\n\t\t{\n\t\t\tagent_type: options.agentType ?? DEFAULT_AGENT_TYPE,\n\t\t\tcapabilities: capabilitiesForOptions(options),\n\t\t\tintegration_profile: integrationProfileForOptions(options),\n\t\t\tmemory_mode: memoryModeForOptions(options),\n\t\t\truntime_owner: runtimeOwnerForOptions(options),\n\t\t\t...(options.registerScopes?.length\n\t\t\t\t? { scopes: options.registerScopes }\n\t\t\t\t: {}),\n\t\t\tshim_type: shimTypeForOptions(options),\n\t\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\t\ttrace_mode: traceModeForOptions(options),\n\t\t\t...(positiveInteger(options.ttlSeconds)\n\t\t\t\t? { ttl_seconds: options.ttlSeconds }\n\t\t\t\t: {}),\n\t\t\t...(options.workspaceId ? { workspace_id: options.workspaceId } : {}),\n\t\t},\n\t);\n\tif (output.registered !== true || !nonEmptyString(output.agent_id)) {\n\t\tthrow new Error(\"EvalOps agent registration did not return an agent_id\");\n\t}\n\treturn output;\n}\n\nasync function runGovernedInferenceCheck(\n\tclient: EvalOpsMcpClient,\n): Promise<CheckActionOutput> {\n\treturn callConnectedMcpTool<CheckActionOutput>(\n\t\tclient,\n\t\t\"evalops_check_action\",\n\t\t{\n\t\t\taction_type: \"llm_gateway.invoke\",\n\t\t\taction_payload: \"maestro init first governed inference check\",\n\t\t\tdeclared_risk_level: \"low\",\n\t\t},\n\t);\n}\n\nasync function loadControlPlaneSummary(\n\tclient: EvalOpsMcpClient,\n): Promise<ControlPlaneSummaryOutput> {\n\treturn callConnectedMcpTool<ControlPlaneSummaryOutput>(\n\t\tclient,\n\t\t\"evalops_control_plane_summary\",\n\t\t{},\n\t);\n}\n\nfunction organizationIdFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\treturn (\n\t\tnonEmptyString(credentials?.metadata?.organizationId) ??\n\t\tnonEmptyString(credentials?.metadata?.organization_id)\n\t);\n}\n\nfunction authenticatedAsFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\tconst metadata = credentials?.metadata;\n\tconst user = isRecord(metadata?.user) ? metadata.user : undefined;\n\treturn (\n\t\tnonEmptyString(metadata?.email) ??\n\t\tnonEmptyString(metadata?.preferred_username) ??\n\t\tnonEmptyString(metadata?.preferredUsername) ??\n\t\tnonEmptyString(metadata?.user) ??\n\t\tnonEmptyString(user?.email) ??\n\t\tnonEmptyString(user?.name)\n\t);\n}\n\nfunction consoleUrlFromEndpoint(endpoint: string): string {\n\tconst parsed = new URL(endpoint);\n\tparsed.pathname = \"/overview\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\tconst env =\n\t\tparsed.hostname === \"app.evalops.dev\"\n\t\t\t? \"production\"\n\t\t\t: parsed.hostname === \"staging.evalops.dev\"\n\t\t\t\t? \"staging\"\n\t\t\t\t: \"local\";\n\tparsed.searchParams.set(\"env\", env);\n\treturn parsed.toString();\n}\n\nfunction countHighRiskFindings(summary: ControlPlaneSummaryOutput): number {\n\tconst findings = Array.isArray(summary.findings) ? summary.findings : [];\n\tconst findingCount = findings.filter((finding) => {\n\t\tconst record = isRecord(finding) ? finding : undefined;\n\t\tconst severity = nonEmptyString(record?.severity)?.toLowerCase();\n\t\treturn severity === \"critical\" || severity === \"high\";\n\t}).length;\n\tconst metricCount = summary.metrics?.high_risk_tools;\n\tif (typeof metricCount === \"number\" && Number.isFinite(metricCount)) {\n\t\treturn Math.max(findingCount, Math.max(0, Math.trunc(metricCount)));\n\t}\n\treturn findingCount;\n}\n\nfunction hasPolicyControl(summary: ControlPlaneSummaryOutput): boolean {\n\tconst approvalRequired = summary.metrics?.approval_required_tools ?? 0;\n\tif (approvalRequired > 0) {\n\t\treturn true;\n\t}\n\tconst controls = Array.isArray(summary.policy_controls)\n\t\t? summary.policy_controls\n\t\t: [];\n\treturn controls.some((control) => {\n\t\tconst record = isRecord(control) ? control : undefined;\n\t\treturn /approval|policy|starter/i.test(\n\t\t\t[\n\t\t\t\tnonEmptyString(record?.label),\n\t\t\t\tnonEmptyString(record?.value),\n\t\t\t\tnonEmptyString(record?.detail),\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \"),\n\t\t);\n\t});\n}\n\nfunction hasTraceEvidence(summary: ControlPlaneSummaryOutput): boolean {\n\tconst evidence = Array.isArray(summary.evidence) ? summary.evidence : [];\n\treturn evidence.some((entry) => {\n\t\tconst record = isRecord(entry) ? entry : undefined;\n\t\treturn Boolean(\n\t\t\tnonEmptyString(record?.trace) ??\n\t\t\t\tnonEmptyString(record?.trace_id) ??\n\t\t\t\tnonEmptyString(record?.traceId),\n\t\t);\n\t});\n}\n\nfunction governedActionCount(summary: ControlPlaneSummaryOutput): number {\n\tconst metricTotal = summary.metrics?.total_tools;\n\tif (typeof metricTotal === \"number\" && Number.isFinite(metricTotal)) {\n\t\treturn Math.max(0, Math.trunc(metricTotal));\n\t}\n\treturn Array.isArray(summary.tools) ? summary.tools.length : 0;\n}\n\nfunction saveBootstrapMetadata(\n\tcredentials: OAuthCredentials,\n\tagentMcp: EvalOpsAgentMcpMetadata,\n\tsaveCredentials: typeof saveOAuthCredentials,\n): void {\n\tsaveCredentials(\"evalops\", {\n\t\t...credentials,\n\t\tmetadata: {\n\t\t\t...credentials.metadata,\n\t\t\tagentId: agentMcp.agentId ?? credentials.metadata?.agentId,\n\t\t\trunId: agentMcp.runId ?? credentials.metadata?.runId,\n\t\t\tsurface: agentMcp.surface,\n\t\t\tagentMcp,\n\t\t},\n\t});\n}\n\nexport async function bootstrapEvalOpsAgent(\n\toptions: EvalOpsInitOptions = {},\n\tdependencies: EvalOpsInitDependencies = {},\n): Promise<EvalOpsInitResult> {\n\tconst deps = {\n\t\tcreateMcpClient: dependencies.createMcpClient ?? createDefaultMcpClient,\n\t\tfetch: dependencies.fetch ?? fetch,\n\t\tgetOAuthToken: dependencies.getOAuthToken ?? getOAuthToken,\n\t\thasOAuthCredentials:\n\t\t\tdependencies.hasOAuthCredentials ?? hasOAuthCredentials,\n\t\tloadCredentials: dependencies.loadCredentials ?? loadOAuthCredentials,\n\t\tlogin: dependencies.login ?? login,\n\t\tnow: dependencies.now ?? (() => new Date()),\n\t\tonAuthUrl:\n\t\t\tdependencies.onAuthUrl ??\n\t\t\t((url: string) => {\n\t\t\t\tprocess.stdout.write(`${url}\\n`);\n\t\t\t}),\n\t\tonStatus: dependencies.onStatus ?? (() => undefined),\n\t\tsaveCredentials: dependencies.saveCredentials ?? saveOAuthCredentials,\n\t};\n\n\tconst oauthToken = await ensureEvalOpsLogin(options, deps);\n\tconst endpoint = await resolveAgentMcpEndpoint(options, deps);\n\tconst credentialsBeforeKey = deps.loadCredentials(\"evalops\");\n\tconst stored = getStoredAgentMcpMetadata(credentialsBeforeKey);\n\tconst identityBaseUrl = resolveIdentityBaseUrl(\n\t\tcredentialsBeforeKey,\n\t\tendpoint,\n\t);\n\tconst now = deps.now();\n\n\tlet apiKey = stored && !options.rotateKey ? stored.apiKey : undefined;\n\tlet keyOutput: CreateAPIKeyOutput | undefined;\n\tlet apiKeyCreated = false;\n\n\tif (!apiKey) {\n\t\tdeps.onStatus({ message: \"Creating EvalOps agent API key\" });\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\toptions,\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t} else {\n\t\tdeps.onStatus({ message: \"Reusing stored EvalOps agent API key\" });\n\t}\n\n\tdeps.onStatus({ message: \"Registering Maestro with EvalOps agent MCP\" });\n\tlet registerOutput: RegisterOutput;\n\tlet client: EvalOpsMcpClient;\n\tconst openAndRegister = async (token: string) => {\n\t\tconst mcpClient = deps.createMcpClient(endpoint.endpoint, token);\n\t\tawait mcpClient.connect();\n\t\ttry {\n\t\t\tconst output = await registerAgent(options, mcpClient);\n\t\t\treturn { client: mcpClient, registerOutput: output };\n\t\t} catch (error) {\n\t\t\tawait mcpClient.close().catch(() => undefined);\n\t\t\tthrow error;\n\t\t}\n\t};\n\ttry {\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t} catch (error) {\n\t\tif (apiKeyCreated) {\n\t\t\tthrow error;\n\t\t}\n\t\tdeps.onStatus({\n\t\t\tmessage: \"Stored EvalOps agent API key failed; rotating and retrying\",\n\t\t});\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\t{ ...options, rotateKey: true },\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t}\n\n\tlet governedInferenceCheck: CheckActionOutput = {};\n\tlet controlPlaneSummary: ControlPlaneSummaryOutput = {};\n\ttry {\n\t\tdeps.onStatus({ message: \"Running first governed inference check\" });\n\t\tgovernedInferenceCheck = await runGovernedInferenceCheck(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps governed inference check unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t}\n\ttry {\n\t\tdeps.onStatus({ message: \"Loading EvalOps control-plane status\" });\n\t\tcontrolPlaneSummary = await loadControlPlaneSummary(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps control-plane status unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t} finally {\n\t\tawait client.close().catch(() => undefined);\n\t}\n\n\tconst credentials = deps.loadCredentials(\"evalops\");\n\tif (!credentials) {\n\t\tthrow new Error(\"EvalOps OAuth credentials disappeared during init\");\n\t}\n\tconst keyPrefix = nonEmptyString(keyOutput?.prefix) ?? stored?.keyPrefix;\n\tconst scopes = keyOutput?.scopes ?? stored?.scopes;\n\tconst integrationProfile =\n\t\tnonEmptyString(registerOutput.integration_profile) ??\n\t\tintegrationProfileForOptions(options);\n\tconst memoryMode =\n\t\tnonEmptyString(registerOutput.memory_mode) ?? memoryModeForOptions(options);\n\tconst runtimeOwner =\n\t\tnonEmptyString(registerOutput.runtime_owner) ??\n\t\truntimeOwnerForOptions(options);\n\tconst shimType =\n\t\tnonEmptyString(registerOutput.shim_type) ?? shimTypeForOptions(options);\n\tconst traceMode =\n\t\tnonEmptyString(registerOutput.trace_mode) ?? traceModeForOptions(options);\n\tconst agentMcp: EvalOpsAgentMcpMetadata = {\n\t\ttype: \"agent-mcp\",\n\t\tapiKey,\n\t\tcreatedAt: (apiKeyCreated\n\t\t\t? now\n\t\t\t: new Date(stored?.createdAt ?? now)\n\t\t).toISOString(),\n\t\tendpoint: endpoint.endpoint,\n\t\tregisteredAt: deps.now().toISOString(),\n\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\tagentId: registerOutput.agent_id,\n\t\texpiresAt: nonEmptyString(keyOutput?.expires_at) ?? stored?.expiresAt,\n\t\tintegrationProfile,\n\t\tkeyId: nonEmptyString(keyOutput?.key_id) ?? stored?.keyId,\n\t\tkeyName: nonEmptyString(keyOutput?.name) ?? stored?.keyName,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopes,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\ttraceMode,\n\t\tworkspaceId:\n\t\t\toptions.workspaceId ?? organizationIdFromCredentials(credentials),\n\t};\n\tsaveBootstrapMetadata(credentials, agentMcp, deps.saveCredentials);\n\n\treturn {\n\t\tagentId: registerOutput.agent_id,\n\t\tapiKeyCreated,\n\t\tapprovalPolicyAttached: hasPolicyControl(controlPlaneSummary),\n\t\tauthenticatedAs: authenticatedAsFromCredentials(credentials),\n\t\tconsoleUrl: consoleUrlFromEndpoint(endpoint.endpoint),\n\t\tendpoint: endpoint.endpoint,\n\t\tevidenceEventPublished: (controlPlaneSummary.evidence ?? []).length > 0,\n\t\tevidenceEvents: (controlPlaneSummary.evidence ?? []).length,\n\t\tgovernedActionsLoaded: governedActionCount(controlPlaneSummary),\n\t\tgovernedInferenceCheckRan: Boolean(governedInferenceCheck.decision),\n\t\tintegrationProfile,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\torganizationId: organizationIdFromCredentials(credentials),\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\triskFindings: countHighRiskFindings(controlPlaneSummary),\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopesGranted: registerOutput.scopes_granted,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\tstored: true,\n\t\ttraceIngestionStarted: hasTraceEvidence(controlPlaneSummary),\n\t\ttraceMode,\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-mcp-metadata.d.ts","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EAErB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,uBAAuB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAsBD,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAClC,uBAAuB,GAAG,SAAS,CAsCrC;AAED,wBAAgB,gCAAgC,IAC7C,uBAAuB,GACvB,SAAS,CAEX"}
1
+ {"version":3,"file":"agent-mcp-metadata.d.ts","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EAErB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,uBAAuB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAkBD,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAClC,uBAAuB,GAAG,SAAS,CAsCrC;AAED,wBAAgB,gCAAgC,IAC7C,uBAAuB,GACvB,SAAS,CAEX"}
@@ -1,7 +1,5 @@
1
1
  import { loadOAuthCredentials, } from "../oauth/storage.js";
2
- function isRecord(value) {
3
- return typeof value === "object" && value !== null && !Array.isArray(value);
4
- }
2
+ import { isRecord } from "../utils/json.js";
5
3
  function nonEmptyString(value) {
6
4
  return typeof value === "string" && value.trim().length > 0
7
5
  ? value.trim()
@@ -1 +1 @@
1
- {"version":3,"file":"agent-mcp-metadata.js","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n} from \"../oauth/storage.js\";\n\nexport interface EvalOpsAgentMcpMetadata {\n\tagentId?: string;\n\tapiKey?: string;\n\tcreatedAt: string;\n\tendpoint: string;\n\texpiresAt?: string;\n\tintegrationProfile?: string;\n\tkeyId?: string;\n\tkeyName?: string;\n\tkeyPrefix?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\tregisteredAt: string;\n\tregistryVisible?: boolean;\n\trunId?: string;\n\truntimeOwner?: string;\n\tscopes?: string[];\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\tsurface: string;\n\ttraceMode?: string;\n\ttype: \"agent-mcp\";\n\tworkspaceId?: string;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst values = value\n\t\t.map((entry) => nonEmptyString(entry))\n\t\t.filter((entry): entry is string => Boolean(entry));\n\treturn values.length > 0 ? values : undefined;\n}\n\nexport function getStoredAgentMcpMetadata(\n\tcredentials: OAuthCredentials | null,\n): EvalOpsAgentMcpMetadata | undefined {\n\tconst metadata = credentials?.metadata;\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst apiKey = nonEmptyString(agentMcp?.apiKey);\n\tconst endpoint = nonEmptyString(agentMcp?.endpoint);\n\tconst registeredAt = nonEmptyString(agentMcp?.registeredAt);\n\tconst createdAt = nonEmptyString(agentMcp?.createdAt);\n\tconst surface = nonEmptyString(agentMcp?.surface);\n\tif (!apiKey || !endpoint || !registeredAt || !createdAt || !surface) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\ttype: \"agent-mcp\",\n\t\tapiKey,\n\t\tcreatedAt,\n\t\tendpoint,\n\t\tregisteredAt,\n\t\tsurface,\n\t\tagentId: nonEmptyString(agentMcp?.agentId),\n\t\texpiresAt: nonEmptyString(agentMcp?.expiresAt),\n\t\tintegrationProfile: nonEmptyString(agentMcp?.integrationProfile),\n\t\tkeyId: nonEmptyString(agentMcp?.keyId),\n\t\tkeyName: nonEmptyString(agentMcp?.keyName),\n\t\tkeyPrefix: nonEmptyString(agentMcp?.keyPrefix),\n\t\tmanifestUrl: nonEmptyString(agentMcp?.manifestUrl),\n\t\tmemoryMode: nonEmptyString(agentMcp?.memoryMode),\n\t\tregistryVisible:\n\t\t\ttypeof agentMcp?.registryVisible === \"boolean\"\n\t\t\t\t? agentMcp.registryVisible\n\t\t\t\t: undefined,\n\t\trunId: nonEmptyString(agentMcp?.runId),\n\t\truntimeOwner: nonEmptyString(agentMcp?.runtimeOwner),\n\t\tscopes: stringArray(agentMcp?.scopes),\n\t\tsessionExpiresAt: nonEmptyString(agentMcp?.sessionExpiresAt),\n\t\tshimType: nonEmptyString(agentMcp?.shimType),\n\t\ttraceMode: nonEmptyString(agentMcp?.traceMode),\n\t\tworkspaceId: nonEmptyString(agentMcp?.workspaceId),\n\t};\n}\n\nexport function getStoredEvalOpsAgentMcpMetadata():\n\t| EvalOpsAgentMcpMetadata\n\t| undefined {\n\treturn getStoredAgentMcpMetadata(loadOAuthCredentials(\"evalops\"));\n}\n"]}
1
+ {"version":3,"file":"agent-mcp-metadata.js","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n} from \"../oauth/storage.js\";\nimport { isRecord } from \"../utils/json.js\";\n\nexport interface EvalOpsAgentMcpMetadata {\n\tagentId?: string;\n\tapiKey?: string;\n\tcreatedAt: string;\n\tendpoint: string;\n\texpiresAt?: string;\n\tintegrationProfile?: string;\n\tkeyId?: string;\n\tkeyName?: string;\n\tkeyPrefix?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\tregisteredAt: string;\n\tregistryVisible?: boolean;\n\trunId?: string;\n\truntimeOwner?: string;\n\tscopes?: string[];\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\tsurface: string;\n\ttraceMode?: string;\n\ttype: \"agent-mcp\";\n\tworkspaceId?: string;\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst values = value\n\t\t.map((entry) => nonEmptyString(entry))\n\t\t.filter((entry): entry is string => Boolean(entry));\n\treturn values.length > 0 ? values : undefined;\n}\n\nexport function getStoredAgentMcpMetadata(\n\tcredentials: OAuthCredentials | null,\n): EvalOpsAgentMcpMetadata | undefined {\n\tconst metadata = credentials?.metadata;\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst apiKey = nonEmptyString(agentMcp?.apiKey);\n\tconst endpoint = nonEmptyString(agentMcp?.endpoint);\n\tconst registeredAt = nonEmptyString(agentMcp?.registeredAt);\n\tconst createdAt = nonEmptyString(agentMcp?.createdAt);\n\tconst surface = nonEmptyString(agentMcp?.surface);\n\tif (!apiKey || !endpoint || !registeredAt || !createdAt || !surface) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\ttype: \"agent-mcp\",\n\t\tapiKey,\n\t\tcreatedAt,\n\t\tendpoint,\n\t\tregisteredAt,\n\t\tsurface,\n\t\tagentId: nonEmptyString(agentMcp?.agentId),\n\t\texpiresAt: nonEmptyString(agentMcp?.expiresAt),\n\t\tintegrationProfile: nonEmptyString(agentMcp?.integrationProfile),\n\t\tkeyId: nonEmptyString(agentMcp?.keyId),\n\t\tkeyName: nonEmptyString(agentMcp?.keyName),\n\t\tkeyPrefix: nonEmptyString(agentMcp?.keyPrefix),\n\t\tmanifestUrl: nonEmptyString(agentMcp?.manifestUrl),\n\t\tmemoryMode: nonEmptyString(agentMcp?.memoryMode),\n\t\tregistryVisible:\n\t\t\ttypeof agentMcp?.registryVisible === \"boolean\"\n\t\t\t\t? agentMcp.registryVisible\n\t\t\t\t: undefined,\n\t\trunId: nonEmptyString(agentMcp?.runId),\n\t\truntimeOwner: nonEmptyString(agentMcp?.runtimeOwner),\n\t\tscopes: stringArray(agentMcp?.scopes),\n\t\tsessionExpiresAt: nonEmptyString(agentMcp?.sessionExpiresAt),\n\t\tshimType: nonEmptyString(agentMcp?.shimType),\n\t\ttraceMode: nonEmptyString(agentMcp?.traceMode),\n\t\tworkspaceId: nonEmptyString(agentMcp?.workspaceId),\n\t};\n}\n\nexport function getStoredEvalOpsAgentMcpMetadata():\n\t| EvalOpsAgentMcpMetadata\n\t| undefined {\n\treturn getStoredAgentMcpMetadata(loadOAuthCredentials(\"evalops\"));\n}\n"]}
@@ -18,8 +18,8 @@
18
18
  * - WezTerm
19
19
  * - Windows Terminal
20
20
  */
21
+ import type { SkillArtifactMetadata } from "../agent/skill-artifact-metadata.js";
21
22
  import type { AgentEvent, AppMessage } from "../agent/types.js";
22
- import type { SkillArtifactMetadata } from "../skills/artifact-metadata.js";
23
23
  import type { SessionHookService } from "./session-integration.js";
24
24
  export type NotificationEventType = "turn-complete" | "session-start" | "session-end" | "tool-execution" | "error";
25
25
  export interface NotificationPayload {
@@ -1 +1 @@
1
- {"version":3,"file":"notification-hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification-hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notification-hooks.js","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Notification hooks for agent events.\n *\n * Allows external programs to be notified when agent events occur,\n * enabling CI/automation integration and custom workflows.\n *\n * Configuration via environment variable or config file:\n * MAESTRO_NOTIFY_PROGRAM=/path/to/script\n * MAESTRO_NOTIFY_EVENTS=turn-complete,session-end (comma-separated, or \"all\")\n * MAESTRO_NOTIFY_TERMINAL=true (enables OSC 9 terminal notifications)\n * MAESTRO_NOTIFY_IDLE_MS=6000 (delay completion notifications until user idle)\n *\n * The program receives a JSON payload as its first argument with event details.\n *\n * Terminal notifications use OSC 9 escape sequences supported by:\n * - iTerm2\n * - Ghostty\n * - WezTerm\n * - Windows Terminal\n */\n\nimport { spawn } from \"node:child_process\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { AgentEvent, AppMessage } from \"../agent/types.js\";\nimport { PATHS } from \"../config/constants.js\";\nimport { getTimeSinceLastUserInteraction } from \"../interaction/user-interaction.js\";\nimport type { SkillArtifactMetadata } from \"../skills/artifact-metadata.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport type { SessionHookService } from \"./session-integration.js\";\n\nconst logger = createLogger(\"hooks:notify\");\nconst DEFAULT_IDLE_THRESHOLD_MS = 6_000;\n\nexport type NotificationEventType =\n\t| \"turn-complete\"\n\t| \"session-start\"\n\t| \"session-end\"\n\t| \"tool-execution\"\n\t| \"error\";\n\nexport interface NotificationPayload {\n\ttype: NotificationEventType;\n\ttimestamp: string;\n\tthreadId?: string;\n\tturnId?: string;\n\tcwd: string;\n\tinputMessages?: string[];\n\tlastAssistantMessage?: string;\n\ttoolName?: string;\n\ttoolResult?: string;\n\ttoolErrorCode?: string;\n\tapprovalRequestId?: string;\n\tgovernedOutcome?: string;\n\tskillMetadata?: SkillArtifactMetadata;\n\terror?: string;\n}\n\ntype NotificationDispatchLogger = {\n\twarn: (message: string, data?: Record<string, unknown>) => void;\n};\n\nexport interface NotificationHooksConfig {\n\tprogram?: string;\n\tevents?: NotificationEventType[];\n\ttimeout?: number;\n\tidleThresholdMs?: number;\n\t/** Enable OSC 9 terminal notifications (iTerm2, Ghostty, WezTerm, Windows Terminal) */\n\tterminalNotify?: boolean;\n}\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\n\nlet cachedConfig: NotificationHooksConfig | null = null;\n\n/**\n * Load notification hooks configuration from environment or config file.\n */\nexport function loadNotificationConfig(): NotificationHooksConfig {\n\tif (cachedConfig) return cachedConfig;\n\n\tconst config: NotificationHooksConfig = {\n\t\tevents: [],\n\t\ttimeout: DEFAULT_TIMEOUT_MS,\n\t\tidleThresholdMs: DEFAULT_IDLE_THRESHOLD_MS,\n\t};\n\n\t// Check environment variables first\n\tconst envProgram = process.env.MAESTRO_NOTIFY_PROGRAM;\n\tif (envProgram) {\n\t\tconfig.program = envProgram;\n\t}\n\n\tconst envEvents = process.env.MAESTRO_NOTIFY_EVENTS;\n\tif (envEvents) {\n\t\tif (envEvents === \"all\") {\n\t\t\tconfig.events = [\n\t\t\t\t\"turn-complete\",\n\t\t\t\t\"session-start\",\n\t\t\t\t\"session-end\",\n\t\t\t\t\"tool-execution\",\n\t\t\t\t\"error\",\n\t\t\t];\n\t\t} else {\n\t\t\tconfig.events = envEvents\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((e) => e.trim() as NotificationEventType)\n\t\t\t\t.filter((e) =>\n\t\t\t\t\t[\n\t\t\t\t\t\t\"turn-complete\",\n\t\t\t\t\t\t\"session-start\",\n\t\t\t\t\t\t\"session-end\",\n\t\t\t\t\t\t\"tool-execution\",\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t].includes(e),\n\t\t\t\t);\n\t\t}\n\t}\n\n\tconst envTimeout = process.env.MAESTRO_NOTIFY_TIMEOUT;\n\tif (envTimeout) {\n\t\tconst parsed = Number.parseInt(envTimeout, 10);\n\t\tif (!Number.isNaN(parsed) && parsed > 0) {\n\t\t\tconfig.timeout = parsed;\n\t\t}\n\t}\n\n\tconst envIdleThreshold = process.env.MAESTRO_NOTIFY_IDLE_MS;\n\tif (envIdleThreshold) {\n\t\tconst parsed = Number.parseInt(envIdleThreshold, 10);\n\t\tif (!Number.isNaN(parsed) && parsed >= 0) {\n\t\t\tconfig.idleThresholdMs = parsed;\n\t\t}\n\t}\n\n\t// Terminal notifications via OSC 9\n\tconst envTerminal = process.env.MAESTRO_NOTIFY_TERMINAL;\n\tif (envTerminal === \"true\" || envTerminal === \"1\") {\n\t\tconfig.terminalNotify = true;\n\t}\n\n\t// Check config file if no environment override\n\tif (!config.program) {\n\t\tconst configPath = join(PATHS.MAESTRO_HOME, \"hooks.json\");\n\t\tif (existsSync(configPath)) {\n\t\t\ttry {\n\t\t\t\tconst fileConfig = JSON.parse(readFileSync(configPath, \"utf-8\"));\n\t\t\t\tif (fileConfig.notify?.program) {\n\t\t\t\t\tconfig.program = fileConfig.notify.program;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.events) {\n\t\t\t\t\tconfig.events = fileConfig.notify.events;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.timeout) {\n\t\t\t\t\tconfig.timeout = fileConfig.notify.timeout;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.idleThresholdMs !== undefined) {\n\t\t\t\t\tconfig.idleThresholdMs = fileConfig.notify.idleThresholdMs;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tfileConfig.notify?.terminalNotify !== undefined &&\n\t\t\t\t\tconfig.terminalNotify === undefined\n\t\t\t\t) {\n\t\t\t\t\tconfig.terminalNotify = Boolean(fileConfig.notify.terminalNotify);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to parse hooks.json\", { error });\n\t\t\t}\n\t\t}\n\t}\n\n\tcachedConfig = config;\n\treturn config;\n}\n\n/**\n * Clear cached configuration (useful for testing).\n */\nexport function clearNotificationConfigCache(): void {\n\tcachedConfig = null;\n}\n\n/**\n * Check if notifications are enabled for a given event type.\n */\nexport function isNotificationEnabled(\n\teventType: NotificationEventType,\n): boolean {\n\tconst config = loadNotificationConfig();\n\treturn Boolean(\n\t\t(config.program || config.terminalNotify) &&\n\t\t\tconfig.events &&\n\t\t\tconfig.events.includes(eventType),\n\t);\n}\n\n/**\n * Send a notification to the configured external program.\n * This runs asynchronously and does not block the main flow.\n */\nexport async function sendNotification(\n\tpayload: NotificationPayload,\n): Promise<void> {\n\tconst config = loadNotificationConfig();\n\n\tif (!config.events?.includes(payload.type)) {\n\t\treturn;\n\t}\n\n\tif (!config.program && !config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst shouldSend = await waitForIdleWindow(payload, config.idleThresholdMs);\n\tif (!shouldSend) {\n\t\tlogger.debug(\"Skipped notification due to recent user interaction\", {\n\t\t\ttype: payload.type,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summarizeNotificationPayload(payload));\n\t}\n\n\tif (!config.program) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait executeNotifyProgram(\n\t\t\tconfig.program,\n\t\t\tJSON.stringify(payload),\n\t\t\tconfig.timeout,\n\t\t);\n\t\tlogger.debug(\"Notification sent\", { type: payload.type });\n\t} catch (error) {\n\t\tlogger.warn(\"Notification hook failed\", {\n\t\t\tprogram: config.program,\n\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t),\n\t\t});\n\t}\n}\n\n/**\n * Send a terminal notification using OSC 9 escape sequence.\n * Supported by iTerm2, Ghostty, WezTerm, Windows Terminal, and others.\n *\n * @param title - Notification title\n * @param body - Notification body (optional)\n */\nexport function sendTerminalNotification(title: string, body?: string): void {\n\tconst config = loadNotificationConfig();\n\tif (!config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst message = body ? `${title}: ${body}` : title;\n\t// OSC 9 is the escape sequence for desktop notifications\n\t// Format: ESC ] 9 ; message BEL\n\tconst osc9 = `\\x1b]9;${message}\\x07`;\n\tprocess.stdout.write(osc9);\n\tlogger.debug(\"Terminal notification sent\", { title });\n}\n\n/**\n * Send notification on turn complete.\n * Combines external program and terminal notifications.\n */\nexport function notifyTurnComplete(summary: string): void {\n\tconst config = loadNotificationConfig();\n\n\t// Send terminal notification\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summary);\n\t}\n\n\t// External program is handled by sendNotification with full payload\n}\n\nexport function summarizeNotificationPayload(\n\tpayload: NotificationPayload,\n): string | undefined {\n\tswitch (payload.type) {\n\t\tcase \"turn-complete\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Turn complete\";\n\t\tcase \"session-start\":\n\t\t\treturn `Session started in ${payload.cwd}`;\n\t\tcase \"session-end\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Session complete\";\n\t\tcase \"tool-execution\":\n\t\t\treturn payload.toolName\n\t\t\t\t? `${payload.toolName} finished`\n\t\t\t\t: \"Tool execution complete\";\n\t\tcase \"error\":\n\t\t\treturn payload.error ?? \"Agent error\";\n\t}\n}\n\nfunction requiresIdleWindow(type: NotificationEventType): boolean {\n\treturn type === \"turn-complete\" || type === \"session-end\";\n}\n\nasync function waitForIdleWindow(\n\tpayload: NotificationPayload,\n\tidleThresholdMs = DEFAULT_IDLE_THRESHOLD_MS,\n): Promise<boolean> {\n\tif (!requiresIdleWindow(payload.type) || idleThresholdMs <= 0) {\n\t\treturn true;\n\t}\n\n\tconst remainingDelay = idleThresholdMs - getTimeSinceLastUserInteraction();\n\tif (remainingDelay <= 0) {\n\t\treturn true;\n\t}\n\n\tawait new Promise((resolve) => setTimeout(resolve, remainingDelay));\n\treturn getTimeSinceLastUserInteraction() >= idleThresholdMs;\n}\n\n/**\n * Execute the notification program with the given payload.\n */\nfunction executeNotifyProgram(\n\tprogram: string,\n\tpayload: string,\n\ttimeout = DEFAULT_TIMEOUT_MS,\n): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst child = spawn(program, [payload], {\n\t\t\tstdio: [\"ignore\", \"ignore\", \"pipe\"],\n\t\t\ttimeout,\n\t\t\tshell: false,\n\t\t});\n\n\t\tlet stderr = \"\";\n\t\tchild.stderr?.on(\"data\", (data) => {\n\t\t\tstderr += data.toString();\n\t\t});\n\n\t\tchild.on(\"error\", (error) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\treject(error);\n\t\t});\n\n\t\tchild.on(\"close\", (code) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\tif (code === 0) {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\treject(new Error(`Notify program exited with code ${code}: ${stderr}`));\n\t\t\t}\n\t\t});\n\n\t\t// Safety timeout\n\t\tconst safetyTimer = setTimeout(() => {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\treject(new Error(\"Notify program timed out\"));\n\t\t}, timeout + 1000);\n\t});\n}\n\n/**\n * Create notification payload from agent event.\n */\nexport function createNotificationFromAgentEvent(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n): NotificationPayload | null {\n\tconst base = {\n\t\ttimestamp: new Date().toISOString(),\n\t\tcwd: context.cwd,\n\t\tthreadId: context.sessionId,\n\t};\n\n\tswitch (event.type) {\n\t\tcase \"agent_start\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-start\",\n\t\t\t};\n\n\t\tcase \"agent_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-end\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? event.messages),\n\t\t\t\tlastAssistantMessage: extractLastAssistantMessage(event.messages),\n\t\t\t};\n\n\t\tcase \"turn_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"turn-complete\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? []),\n\t\t\t\tlastAssistantMessage: extractAssistantText(event.message),\n\t\t\t};\n\n\t\tcase \"tool_execution_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"tool-execution\",\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolResult: extractToolResultText(event.result),\n\t\t\t\ttoolErrorCode: event.errorCode,\n\t\t\t\tapprovalRequestId: event.approvalRequestId,\n\t\t\t\tgovernedOutcome: event.governedOutcome,\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t};\n\n\t\tcase \"error\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: event.message,\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function dispatchAgentNotification(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n\toptions?: {\n\t\tsessionHookService?: Pick<\n\t\t\tSessionHookService,\n\t\t\t\"hasHooks\" | \"runNotificationHooks\"\n\t\t>;\n\t\tlogger?: NotificationDispatchLogger;\n\t},\n): NotificationPayload | null {\n\tconst payload = createNotificationFromAgentEvent(event, context);\n\tif (!payload) {\n\t\treturn null;\n\t}\n\n\tif (options?.sessionHookService?.hasHooks(\"Notification\")) {\n\t\tvoid options.sessionHookService\n\t\t\t.runNotificationHooks(\n\t\t\t\tpayload.type,\n\t\t\t\tsummarizeNotificationPayload(payload) ?? payload.type,\n\t\t\t)\n\t\t\t.catch((error) => {\n\t\t\t\toptions.logger?.warn(\"Notification hooks failed\", {\n\t\t\t\t\ttype: payload.type,\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif (isNotificationEnabled(payload.type)) {\n\t\tvoid sendNotification(payload);\n\t}\n\n\treturn payload;\n}\n\nfunction extractUserMessages(messages: AppMessage[]): string[] {\n\treturn messages\n\t\t.filter((m) => m.role === \"user\")\n\t\t.map((m) => {\n\t\t\tif (typeof m.content === \"string\") return m.content;\n\t\t\tif (Array.isArray(m.content)) {\n\t\t\t\treturn m.content\n\t\t\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t\t\t.map((c) => c.text)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t}\n\t\t\treturn \"\";\n\t\t})\n\t\t.filter(Boolean);\n}\n\nfunction extractLastAssistantMessage(\n\tmessages: AppMessage[],\n): string | undefined {\n\tconst assistantMessages = messages.filter((m) => m.role === \"assistant\");\n\tconst lastMessage = assistantMessages[assistantMessages.length - 1];\n\tif (!lastMessage) return undefined;\n\treturn extractAssistantText(lastMessage);\n}\n\nfunction extractAssistantText(message: AppMessage): string | undefined {\n\tif (message.role !== \"assistant\") return undefined;\n\tconst textParts = message.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text);\n\treturn textParts.join(\"\\n\") || undefined;\n}\n\nfunction extractToolResultText(\n\tresult: { content: Array<{ type: string; text?: string }> } | undefined,\n): string | undefined {\n\tif (!result?.content) return undefined;\n\treturn result.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\")\n\t\t.slice(0, 1000); // Truncate for payload size\n}\n"]}
1
+ {"version":3,"file":"notification-hooks.js","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Notification hooks for agent events.\n *\n * Allows external programs to be notified when agent events occur,\n * enabling CI/automation integration and custom workflows.\n *\n * Configuration via environment variable or config file:\n * MAESTRO_NOTIFY_PROGRAM=/path/to/script\n * MAESTRO_NOTIFY_EVENTS=turn-complete,session-end (comma-separated, or \"all\")\n * MAESTRO_NOTIFY_TERMINAL=true (enables OSC 9 terminal notifications)\n * MAESTRO_NOTIFY_IDLE_MS=6000 (delay completion notifications until user idle)\n *\n * The program receives a JSON payload as its first argument with event details.\n *\n * Terminal notifications use OSC 9 escape sequences supported by:\n * - iTerm2\n * - Ghostty\n * - WezTerm\n * - Windows Terminal\n */\n\nimport { spawn } from \"node:child_process\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { SkillArtifactMetadata } from \"../agent/skill-artifact-metadata.js\";\nimport type { AgentEvent, AppMessage } from \"../agent/types.js\";\nimport { PATHS } from \"../config/constants.js\";\nimport { getTimeSinceLastUserInteraction } from \"../interaction/user-interaction.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport type { SessionHookService } from \"./session-integration.js\";\n\nconst logger = createLogger(\"hooks:notify\");\nconst DEFAULT_IDLE_THRESHOLD_MS = 6_000;\n\nexport type NotificationEventType =\n\t| \"turn-complete\"\n\t| \"session-start\"\n\t| \"session-end\"\n\t| \"tool-execution\"\n\t| \"error\";\n\nexport interface NotificationPayload {\n\ttype: NotificationEventType;\n\ttimestamp: string;\n\tthreadId?: string;\n\tturnId?: string;\n\tcwd: string;\n\tinputMessages?: string[];\n\tlastAssistantMessage?: string;\n\ttoolName?: string;\n\ttoolResult?: string;\n\ttoolErrorCode?: string;\n\tapprovalRequestId?: string;\n\tgovernedOutcome?: string;\n\tskillMetadata?: SkillArtifactMetadata;\n\terror?: string;\n}\n\ntype NotificationDispatchLogger = {\n\twarn: (message: string, data?: Record<string, unknown>) => void;\n};\n\nexport interface NotificationHooksConfig {\n\tprogram?: string;\n\tevents?: NotificationEventType[];\n\ttimeout?: number;\n\tidleThresholdMs?: number;\n\t/** Enable OSC 9 terminal notifications (iTerm2, Ghostty, WezTerm, Windows Terminal) */\n\tterminalNotify?: boolean;\n}\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\n\nlet cachedConfig: NotificationHooksConfig | null = null;\n\n/**\n * Load notification hooks configuration from environment or config file.\n */\nexport function loadNotificationConfig(): NotificationHooksConfig {\n\tif (cachedConfig) return cachedConfig;\n\n\tconst config: NotificationHooksConfig = {\n\t\tevents: [],\n\t\ttimeout: DEFAULT_TIMEOUT_MS,\n\t\tidleThresholdMs: DEFAULT_IDLE_THRESHOLD_MS,\n\t};\n\n\t// Check environment variables first\n\tconst envProgram = process.env.MAESTRO_NOTIFY_PROGRAM;\n\tif (envProgram) {\n\t\tconfig.program = envProgram;\n\t}\n\n\tconst envEvents = process.env.MAESTRO_NOTIFY_EVENTS;\n\tif (envEvents) {\n\t\tif (envEvents === \"all\") {\n\t\t\tconfig.events = [\n\t\t\t\t\"turn-complete\",\n\t\t\t\t\"session-start\",\n\t\t\t\t\"session-end\",\n\t\t\t\t\"tool-execution\",\n\t\t\t\t\"error\",\n\t\t\t];\n\t\t} else {\n\t\t\tconfig.events = envEvents\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((e) => e.trim() as NotificationEventType)\n\t\t\t\t.filter((e) =>\n\t\t\t\t\t[\n\t\t\t\t\t\t\"turn-complete\",\n\t\t\t\t\t\t\"session-start\",\n\t\t\t\t\t\t\"session-end\",\n\t\t\t\t\t\t\"tool-execution\",\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t].includes(e),\n\t\t\t\t);\n\t\t}\n\t}\n\n\tconst envTimeout = process.env.MAESTRO_NOTIFY_TIMEOUT;\n\tif (envTimeout) {\n\t\tconst parsed = Number.parseInt(envTimeout, 10);\n\t\tif (!Number.isNaN(parsed) && parsed > 0) {\n\t\t\tconfig.timeout = parsed;\n\t\t}\n\t}\n\n\tconst envIdleThreshold = process.env.MAESTRO_NOTIFY_IDLE_MS;\n\tif (envIdleThreshold) {\n\t\tconst parsed = Number.parseInt(envIdleThreshold, 10);\n\t\tif (!Number.isNaN(parsed) && parsed >= 0) {\n\t\t\tconfig.idleThresholdMs = parsed;\n\t\t}\n\t}\n\n\t// Terminal notifications via OSC 9\n\tconst envTerminal = process.env.MAESTRO_NOTIFY_TERMINAL;\n\tif (envTerminal === \"true\" || envTerminal === \"1\") {\n\t\tconfig.terminalNotify = true;\n\t}\n\n\t// Check config file if no environment override\n\tif (!config.program) {\n\t\tconst configPath = join(PATHS.MAESTRO_HOME, \"hooks.json\");\n\t\tif (existsSync(configPath)) {\n\t\t\ttry {\n\t\t\t\tconst fileConfig = JSON.parse(readFileSync(configPath, \"utf-8\"));\n\t\t\t\tif (fileConfig.notify?.program) {\n\t\t\t\t\tconfig.program = fileConfig.notify.program;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.events) {\n\t\t\t\t\tconfig.events = fileConfig.notify.events;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.timeout) {\n\t\t\t\t\tconfig.timeout = fileConfig.notify.timeout;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.idleThresholdMs !== undefined) {\n\t\t\t\t\tconfig.idleThresholdMs = fileConfig.notify.idleThresholdMs;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tfileConfig.notify?.terminalNotify !== undefined &&\n\t\t\t\t\tconfig.terminalNotify === undefined\n\t\t\t\t) {\n\t\t\t\t\tconfig.terminalNotify = Boolean(fileConfig.notify.terminalNotify);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to parse hooks.json\", { error });\n\t\t\t}\n\t\t}\n\t}\n\n\tcachedConfig = config;\n\treturn config;\n}\n\n/**\n * Clear cached configuration (useful for testing).\n */\nexport function clearNotificationConfigCache(): void {\n\tcachedConfig = null;\n}\n\n/**\n * Check if notifications are enabled for a given event type.\n */\nexport function isNotificationEnabled(\n\teventType: NotificationEventType,\n): boolean {\n\tconst config = loadNotificationConfig();\n\treturn Boolean(\n\t\t(config.program || config.terminalNotify) &&\n\t\t\tconfig.events &&\n\t\t\tconfig.events.includes(eventType),\n\t);\n}\n\n/**\n * Send a notification to the configured external program.\n * This runs asynchronously and does not block the main flow.\n */\nexport async function sendNotification(\n\tpayload: NotificationPayload,\n): Promise<void> {\n\tconst config = loadNotificationConfig();\n\n\tif (!config.events?.includes(payload.type)) {\n\t\treturn;\n\t}\n\n\tif (!config.program && !config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst shouldSend = await waitForIdleWindow(payload, config.idleThresholdMs);\n\tif (!shouldSend) {\n\t\tlogger.debug(\"Skipped notification due to recent user interaction\", {\n\t\t\ttype: payload.type,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summarizeNotificationPayload(payload));\n\t}\n\n\tif (!config.program) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait executeNotifyProgram(\n\t\t\tconfig.program,\n\t\t\tJSON.stringify(payload),\n\t\t\tconfig.timeout,\n\t\t);\n\t\tlogger.debug(\"Notification sent\", { type: payload.type });\n\t} catch (error) {\n\t\tlogger.warn(\"Notification hook failed\", {\n\t\t\tprogram: config.program,\n\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t),\n\t\t});\n\t}\n}\n\n/**\n * Send a terminal notification using OSC 9 escape sequence.\n * Supported by iTerm2, Ghostty, WezTerm, Windows Terminal, and others.\n *\n * @param title - Notification title\n * @param body - Notification body (optional)\n */\nexport function sendTerminalNotification(title: string, body?: string): void {\n\tconst config = loadNotificationConfig();\n\tif (!config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst message = body ? `${title}: ${body}` : title;\n\t// OSC 9 is the escape sequence for desktop notifications\n\t// Format: ESC ] 9 ; message BEL\n\tconst osc9 = `\\x1b]9;${message}\\x07`;\n\tprocess.stdout.write(osc9);\n\tlogger.debug(\"Terminal notification sent\", { title });\n}\n\n/**\n * Send notification on turn complete.\n * Combines external program and terminal notifications.\n */\nexport function notifyTurnComplete(summary: string): void {\n\tconst config = loadNotificationConfig();\n\n\t// Send terminal notification\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summary);\n\t}\n\n\t// External program is handled by sendNotification with full payload\n}\n\nexport function summarizeNotificationPayload(\n\tpayload: NotificationPayload,\n): string | undefined {\n\tswitch (payload.type) {\n\t\tcase \"turn-complete\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Turn complete\";\n\t\tcase \"session-start\":\n\t\t\treturn `Session started in ${payload.cwd}`;\n\t\tcase \"session-end\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Session complete\";\n\t\tcase \"tool-execution\":\n\t\t\treturn payload.toolName\n\t\t\t\t? `${payload.toolName} finished`\n\t\t\t\t: \"Tool execution complete\";\n\t\tcase \"error\":\n\t\t\treturn payload.error ?? \"Agent error\";\n\t}\n}\n\nfunction requiresIdleWindow(type: NotificationEventType): boolean {\n\treturn type === \"turn-complete\" || type === \"session-end\";\n}\n\nasync function waitForIdleWindow(\n\tpayload: NotificationPayload,\n\tidleThresholdMs = DEFAULT_IDLE_THRESHOLD_MS,\n): Promise<boolean> {\n\tif (!requiresIdleWindow(payload.type) || idleThresholdMs <= 0) {\n\t\treturn true;\n\t}\n\n\tconst remainingDelay = idleThresholdMs - getTimeSinceLastUserInteraction();\n\tif (remainingDelay <= 0) {\n\t\treturn true;\n\t}\n\n\tawait new Promise((resolve) => setTimeout(resolve, remainingDelay));\n\treturn getTimeSinceLastUserInteraction() >= idleThresholdMs;\n}\n\n/**\n * Execute the notification program with the given payload.\n */\nfunction executeNotifyProgram(\n\tprogram: string,\n\tpayload: string,\n\ttimeout = DEFAULT_TIMEOUT_MS,\n): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst child = spawn(program, [payload], {\n\t\t\tstdio: [\"ignore\", \"ignore\", \"pipe\"],\n\t\t\ttimeout,\n\t\t\tshell: false,\n\t\t});\n\n\t\tlet stderr = \"\";\n\t\tchild.stderr?.on(\"data\", (data) => {\n\t\t\tstderr += data.toString();\n\t\t});\n\n\t\tchild.on(\"error\", (error) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\treject(error);\n\t\t});\n\n\t\tchild.on(\"close\", (code) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\tif (code === 0) {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\treject(new Error(`Notify program exited with code ${code}: ${stderr}`));\n\t\t\t}\n\t\t});\n\n\t\t// Safety timeout\n\t\tconst safetyTimer = setTimeout(() => {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\treject(new Error(\"Notify program timed out\"));\n\t\t}, timeout + 1000);\n\t});\n}\n\n/**\n * Create notification payload from agent event.\n */\nexport function createNotificationFromAgentEvent(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n): NotificationPayload | null {\n\tconst base = {\n\t\ttimestamp: new Date().toISOString(),\n\t\tcwd: context.cwd,\n\t\tthreadId: context.sessionId,\n\t};\n\n\tswitch (event.type) {\n\t\tcase \"agent_start\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-start\",\n\t\t\t};\n\n\t\tcase \"agent_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-end\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? event.messages),\n\t\t\t\tlastAssistantMessage: extractLastAssistantMessage(event.messages),\n\t\t\t};\n\n\t\tcase \"turn_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"turn-complete\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? []),\n\t\t\t\tlastAssistantMessage: extractAssistantText(event.message),\n\t\t\t};\n\n\t\tcase \"tool_execution_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"tool-execution\",\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolResult: extractToolResultText(event.result),\n\t\t\t\ttoolErrorCode: event.errorCode,\n\t\t\t\tapprovalRequestId: event.approvalRequestId,\n\t\t\t\tgovernedOutcome: event.governedOutcome,\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t};\n\n\t\tcase \"error\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: event.message,\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function dispatchAgentNotification(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n\toptions?: {\n\t\tsessionHookService?: Pick<\n\t\t\tSessionHookService,\n\t\t\t\"hasHooks\" | \"runNotificationHooks\"\n\t\t>;\n\t\tlogger?: NotificationDispatchLogger;\n\t},\n): NotificationPayload | null {\n\tconst payload = createNotificationFromAgentEvent(event, context);\n\tif (!payload) {\n\t\treturn null;\n\t}\n\n\tif (options?.sessionHookService?.hasHooks(\"Notification\")) {\n\t\tvoid options.sessionHookService\n\t\t\t.runNotificationHooks(\n\t\t\t\tpayload.type,\n\t\t\t\tsummarizeNotificationPayload(payload) ?? payload.type,\n\t\t\t)\n\t\t\t.catch((error) => {\n\t\t\t\toptions.logger?.warn(\"Notification hooks failed\", {\n\t\t\t\t\ttype: payload.type,\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif (isNotificationEnabled(payload.type)) {\n\t\tvoid sendNotification(payload);\n\t}\n\n\treturn payload;\n}\n\nfunction extractUserMessages(messages: AppMessage[]): string[] {\n\treturn messages\n\t\t.filter((m) => m.role === \"user\")\n\t\t.map((m) => {\n\t\t\tif (typeof m.content === \"string\") return m.content;\n\t\t\tif (Array.isArray(m.content)) {\n\t\t\t\treturn m.content\n\t\t\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t\t\t.map((c) => c.text)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t}\n\t\t\treturn \"\";\n\t\t})\n\t\t.filter(Boolean);\n}\n\nfunction extractLastAssistantMessage(\n\tmessages: AppMessage[],\n): string | undefined {\n\tconst assistantMessages = messages.filter((m) => m.role === \"assistant\");\n\tconst lastMessage = assistantMessages[assistantMessages.length - 1];\n\tif (!lastMessage) return undefined;\n\treturn extractAssistantText(lastMessage);\n}\n\nfunction extractAssistantText(message: AppMessage): string | undefined {\n\tif (message.role !== \"assistant\") return undefined;\n\tconst textParts = message.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text);\n\treturn textParts.join(\"\\n\") || undefined;\n}\n\nfunction extractToolResultText(\n\tresult: { content: Array<{ type: string; text?: string }> } | undefined,\n): string | undefined {\n\tif (!result?.content) return undefined;\n\treturn result.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\")\n\t\t.slice(0, 1000); // Truncate for payload size\n}\n"]}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Structural terminal-UI surface types for the public hooks API.
3
+ *
4
+ * User hook scripts may reference `Component` / `TUI` via the hooks types
5
+ * module. These are intentionally structural (not imported from the terminal
6
+ * UI package) so hooks types and non-interactive hook runners never take a
7
+ * hard dependency on that package. The interactive TUI implementation remains
8
+ * structurally assignable to these contracts.
9
+ */
10
+ /**
11
+ * Minimal renderable component surface (matches the terminal UI Component
12
+ * interface enough for hook custom UI factories and message renderers).
13
+ */
14
+ export interface Component {
15
+ render(width: number): string[];
16
+ handleInput?(data: string): void;
17
+ invalidate?(): void;
18
+ onMount?(): void;
19
+ onUnmount?(): void;
20
+ dispose?(): void;
21
+ }
22
+ /**
23
+ * Minimal TUI host surface passed to hook `ui.custom()` factories.
24
+ * Only the methods hooks commonly need are declared; extra methods on the
25
+ * real host are fine (structural typing).
26
+ */
27
+ export interface TUI {
28
+ addChild(component: Component): void;
29
+ removeChild?(component: Component): void;
30
+ setFocus(component: Component | null): void;
31
+ requestRender?(priority?: "normal" | "interactive"): void;
32
+ start?(): void;
33
+ stop?(): void;
34
+ }
35
+ //# sourceMappingURL=tui-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-surface.d.ts","sourceRoot":"","sources":["../../src/hooks/tui-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,SAAS,CAAC,IAAI,IAAI,CAAC;IACnB,OAAO,CAAC,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG;IACnB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC;IAC1D,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,IAAI,CAAC,IAAI,IAAI,CAAC;CACd"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Structural terminal-UI surface types for the public hooks API.
3
+ *
4
+ * User hook scripts may reference `Component` / `TUI` via the hooks types
5
+ * module. These are intentionally structural (not imported from the terminal
6
+ * UI package) so hooks types and non-interactive hook runners never take a
7
+ * hard dependency on that package. The interactive TUI implementation remains
8
+ * structurally assignable to these contracts.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=tui-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-surface.js","sourceRoot":"","sources":["../../src/hooks/tui-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * Structural terminal-UI surface types for the public hooks API.\n *\n * User hook scripts may reference `Component` / `TUI` via the hooks types\n * module. These are intentionally structural (not imported from the terminal\n * UI package) so hooks types and non-interactive hook runners never take a\n * hard dependency on that package. The interactive TUI implementation remains\n * structurally assignable to these contracts.\n */\n\n/**\n * Minimal renderable component surface (matches the terminal UI Component\n * interface enough for hook custom UI factories and message renderers).\n */\nexport interface Component {\n\trender(width: number): string[];\n\thandleInput?(data: string): void;\n\tinvalidate?(): void;\n\tonMount?(): void;\n\tonUnmount?(): void;\n\tdispose?(): void;\n}\n\n/**\n * Minimal TUI host surface passed to hook `ui.custom()` factories.\n * Only the methods hooks commonly need are declared; extra methods on the\n * real host are fine (structural typing).\n */\nexport interface TUI {\n\taddChild(component: Component): void;\n\tremoveChild?(component: Component): void;\n\tsetFocus(component: Component | null): void;\n\trequestRender?(priority?: \"normal\" | \"interactive\"): void;\n\tstart?(): void;\n\tstop?(): void;\n}\n"]}
@@ -4,10 +4,11 @@
4
4
  * Hooks allow external programs to intercept, modify, or block agent operations
5
5
  * at various points in the execution lifecycle.
6
6
  */
7
- import type { Component, TUI } from "@evalops/tui";
8
7
  import type { AgentTool, HookMessage } from "../agent/types.js";
9
8
  import type { BranchSummaryEntry, SessionTreeEntry } from "../session/types.js";
10
9
  import type { Theme } from "../theme/theme.js";
10
+ import type { Component, TUI } from "./tui-surface.js";
11
+ export type { Component, TUI } from "./tui-surface.js";
11
12
  /**
12
13
  * All supported hook event types.
13
14
  */