@evalops/maestro 0.10.8 → 0.10.11

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 (1009) hide show
  1. package/README.md +3 -1
  2. package/dist/agent/action-approval.d.ts +6 -0
  3. package/dist/agent/action-approval.d.ts.map +1 -1
  4. package/dist/agent/action-approval.js.map +1 -1
  5. package/dist/agent/agent.d.ts +13 -1
  6. package/dist/agent/agent.d.ts.map +1 -1
  7. package/dist/agent/agent.js +368 -1
  8. package/dist/agent/agent.js.map +1 -1
  9. package/dist/agent/auto-compaction.d.ts +4 -4
  10. package/dist/agent/auto-compaction.d.ts.map +1 -1
  11. package/dist/agent/auto-compaction.js.map +1 -1
  12. package/dist/agent/compaction-cleanup.d.ts +2 -0
  13. package/dist/agent/compaction-cleanup.d.ts.map +1 -1
  14. package/dist/agent/compaction-cleanup.js +17 -2
  15. package/dist/agent/compaction-cleanup.js.map +1 -1
  16. package/dist/agent/compaction.d.ts +3 -1
  17. package/dist/agent/compaction.d.ts.map +1 -1
  18. package/dist/agent/compaction.js +10 -2
  19. package/dist/agent/compaction.js.map +1 -1
  20. package/dist/agent/context-manager.d.ts +4 -0
  21. package/dist/agent/context-manager.d.ts.map +1 -1
  22. package/dist/agent/context-manager.js +8 -0
  23. package/dist/agent/context-manager.js.map +1 -1
  24. package/dist/agent/context-providers.d.ts +2 -0
  25. package/dist/agent/context-providers.d.ts.map +1 -1
  26. package/dist/agent/context-providers.js +3 -2
  27. package/dist/agent/context-providers.js.map +1 -1
  28. package/dist/agent/providers/google-gemini-cli.js +17 -5
  29. package/dist/agent/providers/google.js +174 -144
  30. package/dist/agent/providers/openai-codex-responses.d.ts +4 -0
  31. package/dist/agent/providers/openai-codex-responses.d.ts.map +1 -0
  32. package/dist/agent/providers/openai-codex-responses.js +637 -0
  33. package/dist/agent/providers/openai-codex-responses.js.map +1 -0
  34. package/dist/agent/providers/openai-codex-session.d.ts +18 -0
  35. package/dist/agent/providers/openai-codex-session.d.ts.map +1 -0
  36. package/dist/agent/providers/openai-codex-session.js +53 -0
  37. package/dist/agent/providers/openai-codex-session.js.map +1 -0
  38. package/dist/agent/providers/openai-responses-sdk.d.ts.map +1 -1
  39. package/dist/agent/providers/openai-responses-sdk.js +16 -6
  40. package/dist/agent/providers/openai-responses-sdk.js.map +1 -1
  41. package/dist/agent/providers/openai-shared.d.ts +12 -5
  42. package/dist/agent/providers/openai-shared.d.ts.map +1 -1
  43. package/dist/agent/providers/openai-shared.js +291 -2
  44. package/dist/agent/providers/openai-shared.js.map +1 -1
  45. package/dist/agent/providers/openai.d.ts +1 -1
  46. package/dist/agent/providers/openai.d.ts.map +1 -1
  47. package/dist/agent/providers/openai.js +48 -20
  48. package/dist/agent/providers/openai.js.map +1 -1
  49. package/dist/agent/providers/vertex.js +7 -0
  50. package/dist/agent/tracing.d.ts +16 -5
  51. package/dist/agent/tracing.d.ts.map +1 -1
  52. package/dist/agent/tracing.js +44 -2
  53. package/dist/agent/tracing.js.map +1 -1
  54. package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
  55. package/dist/agent/transport/create-provider-stream.js +9 -0
  56. package/dist/agent/transport/create-provider-stream.js.map +1 -1
  57. package/dist/agent/transport/tool-execution-bridge.d.ts +86 -0
  58. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -0
  59. package/dist/agent/transport/tool-execution-bridge.js +665 -0
  60. package/dist/agent/transport/tool-execution-bridge.js.map +1 -0
  61. package/dist/agent/transport/tool-execution.d.ts +3 -0
  62. package/dist/agent/transport/tool-execution.d.ts.map +1 -1
  63. package/dist/agent/transport/tool-execution.js +16 -1
  64. package/dist/agent/transport/tool-execution.js.map +1 -1
  65. package/dist/agent/transport/tool-safety-pipeline.d.ts +7 -1
  66. package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
  67. package/dist/agent/transport/tool-safety-pipeline.js +207 -40
  68. package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
  69. package/dist/agent/transport/tool-update-queue.d.ts +2 -0
  70. package/dist/agent/transport/tool-update-queue.d.ts.map +1 -1
  71. package/dist/agent/transport/tool-update-queue.js.map +1 -1
  72. package/dist/agent/transport.d.ts +3 -0
  73. package/dist/agent/transport.d.ts.map +1 -1
  74. package/dist/agent/transport.js +96 -16
  75. package/dist/agent/transport.js.map +1 -1
  76. package/dist/agent/types.d.ts +50 -2
  77. package/dist/agent/types.d.ts.map +1 -1
  78. package/dist/agent/types.js.map +1 -1
  79. package/dist/approvals/platform-action-approval.d.ts +32 -0
  80. package/dist/approvals/platform-action-approval.d.ts.map +1 -0
  81. package/dist/approvals/platform-action-approval.js +210 -0
  82. package/dist/approvals/platform-action-approval.js.map +1 -0
  83. package/dist/approvals/service-client.d.ts +56 -0
  84. package/dist/approvals/service-client.d.ts.map +1 -0
  85. package/dist/approvals/service-client.js +316 -0
  86. package/dist/approvals/service-client.js.map +1 -0
  87. package/dist/audit/logger.d.ts +4 -4
  88. package/dist/bootstrap/auth-setup.d.ts +2 -2
  89. package/dist/bootstrap/auth-setup.d.ts.map +1 -1
  90. package/dist/bootstrap/auth-setup.js +4 -7
  91. package/dist/bootstrap/auth-setup.js.map +1 -1
  92. package/dist/cli/args.d.ts +2 -0
  93. package/dist/cli/args.d.ts.map +1 -1
  94. package/dist/cli/args.js +29 -0
  95. package/dist/cli/args.js.map +1 -1
  96. package/dist/cli/commands/codex.d.ts +2 -0
  97. package/dist/cli/commands/codex.d.ts.map +1 -0
  98. package/dist/cli/commands/codex.js +65 -0
  99. package/dist/cli/commands/codex.js.map +1 -0
  100. package/dist/cli/commands/config.js +1 -1
  101. package/dist/cli/commands/config.js.map +1 -1
  102. package/dist/cli/commands/evalops.d.ts +2 -0
  103. package/dist/cli/commands/evalops.d.ts.map +1 -0
  104. package/dist/cli/commands/evalops.js +74 -0
  105. package/dist/cli/commands/evalops.js.map +1 -0
  106. package/dist/cli/commands/hosted-runner.d.ts +23 -0
  107. package/dist/cli/commands/hosted-runner.d.ts.map +1 -0
  108. package/dist/cli/commands/hosted-runner.js +241 -0
  109. package/dist/cli/commands/hosted-runner.js.map +1 -0
  110. package/dist/cli/commands/init.d.ts +4 -0
  111. package/dist/cli/commands/init.d.ts.map +1 -0
  112. package/dist/cli/commands/init.js +140 -0
  113. package/dist/cli/commands/init.js.map +1 -0
  114. package/dist/cli/commands/memory.d.ts.map +1 -1
  115. package/dist/cli/commands/memory.js +23 -30
  116. package/dist/cli/commands/memory.js.map +1 -1
  117. package/dist/cli/commands/remote.d.ts +3 -0
  118. package/dist/cli/commands/remote.d.ts.map +1 -0
  119. package/dist/cli/commands/remote.js +631 -0
  120. package/dist/cli/commands/remote.js.map +1 -0
  121. package/dist/cli/commands/stats.d.ts +7 -0
  122. package/dist/cli/commands/stats.d.ts.map +1 -0
  123. package/dist/cli/commands/stats.js +167 -0
  124. package/dist/cli/commands/stats.js.map +1 -0
  125. package/dist/cli/headless-protocol.d.ts +16 -1
  126. package/dist/cli/headless-protocol.d.ts.map +1 -1
  127. package/dist/cli/headless-protocol.js +60 -4
  128. package/dist/cli/headless-protocol.js.map +1 -1
  129. package/dist/cli/headless.d.ts.map +1 -1
  130. package/dist/cli/headless.js +1 -0
  131. package/dist/cli/headless.js.map +1 -1
  132. package/dist/cli/help.d.ts.map +1 -1
  133. package/dist/cli/help.js +44 -1
  134. package/dist/cli/help.js.map +1 -1
  135. package/dist/cli/jsonl-writer.d.ts.map +1 -1
  136. package/dist/cli/jsonl-writer.js +19 -6
  137. package/dist/cli/jsonl-writer.js.map +1 -1
  138. package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
  139. package/dist/cli-tui/client-tools/client-tool-controller.js +17 -1
  140. package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
  141. package/dist/cli-tui/commands/access-command.js +1 -1
  142. package/dist/cli-tui/commands/access-command.js.map +1 -1
  143. package/dist/cli-tui/commands/audit-command.js +1 -1
  144. package/dist/cli-tui/commands/audit-command.js.map +1 -1
  145. package/dist/cli-tui/commands/command-catalog.d.ts +29 -0
  146. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -0
  147. package/dist/cli-tui/commands/command-catalog.js +645 -0
  148. package/dist/cli-tui/commands/command-catalog.js.map +1 -0
  149. package/dist/cli-tui/commands/command-registry-adapter.d.ts +12 -0
  150. package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +1 -0
  151. package/dist/cli-tui/commands/command-registry-adapter.js +120 -0
  152. package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -0
  153. package/dist/cli-tui/commands/command-suite-catalog.d.ts +14 -0
  154. package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +1 -0
  155. package/dist/cli-tui/commands/command-suite-catalog.js +147 -0
  156. package/dist/cli-tui/commands/command-suite-catalog.js.map +1 -0
  157. package/dist/cli-tui/commands/{grouped-command-handlers.d.ts → command-suite-handlers.d.ts} +27 -26
  158. package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +1 -0
  159. package/dist/cli-tui/commands/command-suite-handlers.js +110 -0
  160. package/dist/cli-tui/commands/command-suite-handlers.js.map +1 -0
  161. package/dist/cli-tui/commands/hotkeys-command.d.ts +1 -1
  162. package/dist/cli-tui/commands/hotkeys-command.d.ts.map +1 -1
  163. package/dist/cli-tui/commands/hotkeys-command.js +2 -2
  164. package/dist/cli-tui/commands/hotkeys-command.js.map +1 -1
  165. package/dist/cli-tui/commands/limits-command.js +1 -1
  166. package/dist/cli-tui/commands/limits-command.js.map +1 -1
  167. package/dist/cli-tui/commands/pii-command.js +1 -1
  168. package/dist/cli-tui/commands/pii-command.js.map +1 -1
  169. package/dist/cli-tui/commands/registry.d.ts +1 -1
  170. package/dist/cli-tui/commands/registry.d.ts.map +1 -1
  171. package/dist/cli-tui/commands/registry.js +29 -921
  172. package/dist/cli-tui/commands/registry.js.map +1 -1
  173. package/dist/cli-tui/commands/{grouped → subcommands}/auth-commands.d.ts +2 -1
  174. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +1 -0
  175. package/dist/cli-tui/commands/{grouped → subcommands}/auth-commands.js +22 -6
  176. package/dist/cli-tui/commands/subcommands/auth-commands.js.map +1 -0
  177. package/dist/cli-tui/commands/{grouped → subcommands}/config-commands.d.ts +0 -1
  178. package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +1 -0
  179. package/dist/cli-tui/commands/{grouped → subcommands}/config-commands.js +2 -2
  180. package/dist/cli-tui/commands/subcommands/config-commands.js.map +1 -0
  181. package/dist/cli-tui/commands/{grouped → subcommands}/diag-commands.d.ts +1 -2
  182. package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +1 -0
  183. package/dist/cli-tui/commands/{grouped → subcommands}/diag-commands.js +5 -7
  184. package/dist/cli-tui/commands/subcommands/diag-commands.js.map +1 -0
  185. package/dist/cli-tui/commands/{grouped → subcommands}/git-commands.d.ts +0 -2
  186. package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +1 -0
  187. package/dist/cli-tui/commands/{grouped → subcommands}/git-commands.js +2 -2
  188. package/dist/cli-tui/commands/subcommands/git-commands.js.map +1 -0
  189. package/dist/cli-tui/commands/{grouped → subcommands}/index.d.ts +2 -2
  190. package/dist/cli-tui/commands/subcommands/index.d.ts.map +1 -0
  191. package/dist/cli-tui/commands/{grouped → subcommands}/index.js +2 -2
  192. package/dist/cli-tui/commands/subcommands/index.js.map +1 -0
  193. package/dist/cli-tui/commands/{grouped → subcommands}/safety-commands.d.ts +0 -1
  194. package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +1 -0
  195. package/dist/cli-tui/commands/{grouped → subcommands}/safety-commands.js +12 -12
  196. package/dist/cli-tui/commands/subcommands/safety-commands.js.map +1 -0
  197. package/dist/cli-tui/commands/{grouped → subcommands}/session-commands.d.ts +1 -2
  198. package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +1 -0
  199. package/dist/cli-tui/commands/{grouped → subcommands}/session-commands.js +3 -3
  200. package/dist/cli-tui/commands/subcommands/session-commands.js.map +1 -0
  201. package/dist/cli-tui/commands/{grouped → subcommands}/tools-commands.d.ts +0 -1
  202. package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +1 -0
  203. package/dist/cli-tui/commands/{grouped → subcommands}/tools-commands.js +2 -2
  204. package/dist/cli-tui/commands/subcommands/tools-commands.js.map +1 -0
  205. package/dist/cli-tui/commands/{grouped → subcommands}/ui-commands.d.ts +0 -1
  206. package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +1 -0
  207. package/dist/cli-tui/commands/{grouped → subcommands}/ui-commands.js +5 -5
  208. package/dist/cli-tui/commands/subcommands/ui-commands.js.map +1 -0
  209. package/dist/cli-tui/commands/{grouped → subcommands}/undo-commands.d.ts +1 -2
  210. package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +1 -0
  211. package/dist/cli-tui/commands/{grouped → subcommands}/undo-commands.js +6 -6
  212. package/dist/cli-tui/commands/subcommands/undo-commands.js.map +1 -0
  213. package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +1 -0
  214. package/dist/cli-tui/commands/{grouped → subcommands}/usage-commands.js +2 -2
  215. package/dist/cli-tui/commands/subcommands/usage-commands.js.map +1 -0
  216. package/dist/cli-tui/commands/{grouped → subcommands}/utils.d.ts +15 -15
  217. package/dist/cli-tui/commands/subcommands/utils.d.ts.map +1 -0
  218. package/dist/cli-tui/commands/{grouped → subcommands}/utils.js +13 -8
  219. package/dist/cli-tui/commands/subcommands/utils.js.map +1 -0
  220. package/dist/cli-tui/commands/types.d.ts +3 -3
  221. package/dist/cli-tui/commands/types.d.ts.map +1 -1
  222. package/dist/cli-tui/commands/types.js.map +1 -1
  223. package/dist/cli-tui/editor-view.d.ts +1 -1
  224. package/dist/cli-tui/editor-view.d.ts.map +1 -1
  225. package/dist/cli-tui/editor-view.js +1 -1
  226. package/dist/cli-tui/editor-view.js.map +1 -1
  227. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +4 -0
  228. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +1 -1
  229. package/dist/cli-tui/oauth/oauth-flow-controller.js +76 -5
  230. package/dist/cli-tui/oauth/oauth-flow-controller.js.map +1 -1
  231. package/dist/cli-tui/run/run-controller.d.ts +2 -2
  232. package/dist/cli-tui/run/run-controller.d.ts.map +1 -1
  233. package/dist/cli-tui/run/run-controller.js +3 -2
  234. package/dist/cli-tui/run/run-controller.js.map +1 -1
  235. package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
  236. package/dist/cli-tui/run/run-shell-command.js +11 -3
  237. package/dist/cli-tui/run/run-shell-command.js.map +1 -1
  238. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
  239. package/dist/cli-tui/run/streaming-shell-command.js +11 -3
  240. package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
  241. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  242. package/dist/cli-tui/selectors/model-selector.js +1 -0
  243. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  244. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +8 -0
  245. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +1 -1
  246. package/dist/cli-tui/tui-renderer/agent-event-bridge.js +23 -2
  247. package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +1 -1
  248. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +3 -3
  249. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
  250. package/dist/cli-tui/tui-renderer/command-registry-options.js +12 -2
  251. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
  252. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +32 -0
  253. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +1 -0
  254. package/dist/cli-tui/tui-renderer/command-suite-wiring.js +108 -0
  255. package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +1 -0
  256. package/dist/cli-tui/tui-renderer/input-controller.d.ts +2 -2
  257. package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +1 -1
  258. package/dist/cli-tui/tui-renderer/input-controller.js +2 -2
  259. package/dist/cli-tui/tui-renderer/input-controller.js.map +1 -1
  260. package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +1 -1
  261. package/dist/cli-tui/tui-renderer/ui-state-controller.js +1 -1
  262. package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +1 -1
  263. package/dist/cli-tui/tui-renderer.d.ts +1 -3
  264. package/dist/cli-tui/tui-renderer.d.ts.map +1 -1
  265. package/dist/cli-tui/tui-renderer.js +37 -83
  266. package/dist/cli-tui/tui-renderer.js.map +1 -1
  267. package/dist/cli-tui/utils/runtime-badges.d.ts +8 -0
  268. package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
  269. package/dist/cli-tui/utils/runtime-badges.js +58 -0
  270. package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
  271. package/dist/cli.js +42555 -23133
  272. package/dist/cli.js.map +1 -1
  273. package/dist/config/env-vars.d.ts +4 -0
  274. package/dist/config/env-vars.d.ts.map +1 -1
  275. package/dist/config/env-vars.js +4 -0
  276. package/dist/config/env-vars.js.map +1 -1
  277. package/dist/config/feature-flags.d.ts +44 -0
  278. package/dist/config/feature-flags.d.ts.map +1 -1
  279. package/dist/config/feature-flags.js +214 -0
  280. package/dist/config/feature-flags.js.map +1 -1
  281. package/dist/connectors/service-client.d.ts +98 -0
  282. package/dist/connectors/service-client.d.ts.map +1 -0
  283. package/dist/connectors/service-client.js +459 -0
  284. package/dist/connectors/service-client.js.map +1 -0
  285. package/dist/conversation/render-model.d.ts.map +1 -1
  286. package/dist/conversation/render-model.js +53 -3
  287. package/dist/conversation/render-model.js.map +1 -1
  288. package/dist/db/health.d.ts +8 -0
  289. package/dist/db/health.d.ts.map +1 -0
  290. package/dist/db/health.js +64 -0
  291. package/dist/db/health.js.map +1 -0
  292. package/dist/db/migrate.d.ts +301 -0
  293. package/dist/db/migrate.d.ts.map +1 -1
  294. package/dist/db/migrate.js +186 -0
  295. package/dist/db/migrate.js.map +1 -1
  296. package/dist/db/migrations/0000_initial.sql +308 -0
  297. package/dist/db/migrations/0001_shared_sessions.sql +18 -0
  298. package/dist/db/migrations/0002_usage_metrics.sql +28 -0
  299. package/dist/db/migrations/0003_execution_traces.sql +18 -0
  300. package/dist/db/migrations/0004_workspace_config.sql +11 -0
  301. package/dist/db/migrations/0005_revenue_attribution.sql +31 -0
  302. package/dist/db/migrations/0006_hosted_session_storage.sql +51 -0
  303. package/dist/db/migrations/0007_reconcile_legacy_audit_hash_cache.sql +24 -0
  304. package/dist/db/migrations/0008_reconcile_legacy_webhook_deliveries.sql +290 -0
  305. package/dist/db/migrations/meta/0000_snapshot.json +2438 -0
  306. package/dist/db/migrations/meta/_journal.json +69 -0
  307. package/dist/db/schema.d.ts +2232 -844
  308. package/dist/db/schema.d.ts.map +1 -1
  309. package/dist/db/schema.js +187 -1
  310. package/dist/db/schema.js.map +1 -1
  311. package/dist/evalops/agent-bootstrap.d.ts +73 -0
  312. package/dist/evalops/agent-bootstrap.d.ts.map +1 -0
  313. package/dist/evalops/agent-bootstrap.js +380 -0
  314. package/dist/evalops/agent-bootstrap.js.map +1 -0
  315. package/dist/export-html.d.ts.map +1 -1
  316. package/dist/export-html.js +7 -4
  317. package/dist/export-html.js.map +1 -1
  318. package/dist/headless/utility-command-manager.d.ts +2 -1
  319. package/dist/headless/utility-command-manager.d.ts.map +1 -1
  320. package/dist/headless/utility-command-manager.js +12 -6
  321. package/dist/headless/utility-command-manager.js.map +1 -1
  322. package/dist/headless/utility-file-read.d.ts +1 -0
  323. package/dist/headless/utility-file-read.d.ts.map +1 -1
  324. package/dist/headless/utility-file-read.js +5 -1
  325. package/dist/headless/utility-file-read.js.map +1 -1
  326. package/dist/headless/utility-file-search.d.ts +1 -0
  327. package/dist/headless/utility-file-search.d.ts.map +1 -1
  328. package/dist/headless/utility-file-search.js +4 -1
  329. package/dist/headless/utility-file-search.js.map +1 -1
  330. package/dist/headless/utility-file-watch-manager.d.ts +2 -1
  331. package/dist/headless/utility-file-watch-manager.d.ts.map +1 -1
  332. package/dist/headless/utility-file-watch-manager.js +6 -2
  333. package/dist/headless/utility-file-watch-manager.js.map +1 -1
  334. package/dist/headless/workspace-root.d.ts +8 -0
  335. package/dist/headless/workspace-root.d.ts.map +1 -0
  336. package/dist/headless/workspace-root.js +74 -0
  337. package/dist/headless/workspace-root.js.map +1 -0
  338. package/dist/hooks/notification-hooks.d.ts +5 -0
  339. package/dist/hooks/notification-hooks.d.ts.map +1 -1
  340. package/dist/hooks/notification-hooks.js +4 -0
  341. package/dist/hooks/notification-hooks.js.map +1 -1
  342. package/dist/lsp/diagnostic-deltas.d.ts +20 -0
  343. package/dist/lsp/diagnostic-deltas.d.ts.map +1 -0
  344. package/dist/lsp/diagnostic-deltas.js +92 -0
  345. package/dist/lsp/diagnostic-deltas.js.map +1 -0
  346. package/dist/lsp/diagnostic-repair.d.ts +48 -0
  347. package/dist/lsp/diagnostic-repair.d.ts.map +1 -0
  348. package/dist/lsp/diagnostic-repair.js +143 -0
  349. package/dist/lsp/diagnostic-repair.js.map +1 -0
  350. package/dist/main.d.ts.map +1 -1
  351. package/dist/main.js +127 -37
  352. package/dist/main.js.map +1 -1
  353. package/dist/mcp/config.d.ts +4 -2
  354. package/dist/mcp/config.d.ts.map +1 -1
  355. package/dist/mcp/config.js +58 -14
  356. package/dist/mcp/config.js.map +1 -1
  357. package/dist/mcp/index.d.ts +1 -0
  358. package/dist/mcp/index.d.ts.map +1 -1
  359. package/dist/mcp/index.js +1 -0
  360. package/dist/mcp/index.js.map +1 -1
  361. package/dist/mcp/manager.d.ts +1 -0
  362. package/dist/mcp/manager.d.ts.map +1 -1
  363. package/dist/mcp/manager.js +1 -0
  364. package/dist/mcp/manager.js.map +1 -1
  365. package/dist/mcp/platform-plugin.d.ts +3 -0
  366. package/dist/mcp/platform-plugin.d.ts.map +1 -0
  367. package/dist/mcp/platform-plugin.js +117 -0
  368. package/dist/mcp/platform-plugin.js.map +1 -0
  369. package/dist/mcp/tool-bridge.d.ts +15 -0
  370. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  371. package/dist/mcp/tool-bridge.js +194 -6
  372. package/dist/mcp/tool-bridge.js.map +1 -1
  373. package/dist/memory/platform-memory-client.d.ts +130 -0
  374. package/dist/memory/platform-memory-client.d.ts.map +1 -0
  375. package/dist/memory/platform-memory-client.js +330 -0
  376. package/dist/memory/platform-memory-client.js.map +1 -0
  377. package/dist/memory/service-client.d.ts.map +1 -1
  378. package/dist/memory/service-client.js +1 -2
  379. package/dist/memory/service-client.js.map +1 -1
  380. package/dist/models/builtin.d.ts.map +1 -1
  381. package/dist/models/builtin.js +137 -0
  382. package/dist/models/builtin.js.map +1 -1
  383. package/dist/models/config-loader.d.ts +10 -10
  384. package/dist/models/config-loader.d.ts.map +1 -1
  385. package/dist/models/config-loader.js +1 -0
  386. package/dist/models/config-loader.js.map +1 -1
  387. package/dist/models/registry.d.ts +1 -0
  388. package/dist/models/registry.d.ts.map +1 -1
  389. package/dist/models/registry.js +1 -0
  390. package/dist/models/registry.js.map +1 -1
  391. package/dist/oauth/connectors.d.ts +25 -0
  392. package/dist/oauth/connectors.d.ts.map +1 -0
  393. package/dist/oauth/connectors.js +253 -0
  394. package/dist/oauth/connectors.js.map +1 -0
  395. package/dist/oauth/device-identity.d.ts +18 -0
  396. package/dist/oauth/device-identity.d.ts.map +1 -0
  397. package/dist/oauth/device-identity.js +193 -0
  398. package/dist/oauth/device-identity.js.map +1 -0
  399. package/dist/oauth/evalops.d.ts.map +1 -1
  400. package/dist/oauth/evalops.js +74 -15
  401. package/dist/oauth/evalops.js.map +1 -1
  402. package/dist/oauth/index.d.ts +1 -1
  403. package/dist/oauth/index.d.ts.map +1 -1
  404. package/dist/oauth/index.js +31 -1
  405. package/dist/oauth/index.js.map +1 -1
  406. package/dist/oauth/openai-codex.d.ts +16 -0
  407. package/dist/oauth/openai-codex.d.ts.map +1 -0
  408. package/dist/oauth/openai-codex.js +300 -0
  409. package/dist/oauth/openai-codex.js.map +1 -0
  410. package/dist/opentelemetry.d.ts.map +1 -1
  411. package/dist/opentelemetry.js +9 -2
  412. package/dist/opentelemetry.js.map +1 -1
  413. package/dist/platform/agent-runtime-client.d.ts +279 -0
  414. package/dist/platform/agent-runtime-client.d.ts.map +1 -0
  415. package/dist/platform/agent-runtime-client.js +515 -0
  416. package/dist/platform/agent-runtime-client.js.map +1 -0
  417. package/dist/platform/cerebro-facts-client.d.ts +56 -0
  418. package/dist/platform/cerebro-facts-client.d.ts.map +1 -0
  419. package/dist/platform/cerebro-facts-client.js +297 -0
  420. package/dist/platform/cerebro-facts-client.js.map +1 -0
  421. package/dist/platform/client.d.ts +2 -1
  422. package/dist/platform/client.d.ts.map +1 -1
  423. package/dist/platform/client.js +9 -26
  424. package/dist/platform/client.js.map +1 -1
  425. package/dist/platform/core-services.d.ts +128 -0
  426. package/dist/platform/core-services.d.ts.map +1 -1
  427. package/dist/platform/core-services.js +128 -0
  428. package/dist/platform/core-services.js.map +1 -1
  429. package/dist/platform/maestro-timeline-client.d.ts +22 -0
  430. package/dist/platform/maestro-timeline-client.d.ts.map +1 -0
  431. package/dist/platform/maestro-timeline-client.js +373 -0
  432. package/dist/platform/maestro-timeline-client.js.map +1 -0
  433. package/dist/platform/tool-execution-client.d.ts +104 -0
  434. package/dist/platform/tool-execution-client.d.ts.map +1 -0
  435. package/dist/platform/tool-execution-client.js +284 -0
  436. package/dist/platform/tool-execution-client.js.map +1 -0
  437. package/dist/prompts/service-client.d.ts.map +1 -1
  438. package/dist/prompts/service-client.js +5 -2
  439. package/dist/prompts/service-client.js.map +1 -1
  440. package/dist/providers/anthropic-auth.d.ts.map +1 -1
  441. package/dist/providers/anthropic-auth.js +8 -6
  442. package/dist/providers/anthropic-auth.js.map +1 -1
  443. package/dist/providers/api-keys.d.ts +1 -0
  444. package/dist/providers/api-keys.d.ts.map +1 -1
  445. package/dist/providers/api-keys.js +5 -0
  446. package/dist/providers/api-keys.js.map +1 -1
  447. package/dist/providers/auth.d.ts +2 -1
  448. package/dist/providers/auth.d.ts.map +1 -1
  449. package/dist/providers/auth.js +26 -3
  450. package/dist/providers/auth.js.map +1 -1
  451. package/dist/remote-runner/attach-client.d.ts +41 -0
  452. package/dist/remote-runner/attach-client.d.ts.map +1 -0
  453. package/dist/remote-runner/attach-client.js +692 -0
  454. package/dist/remote-runner/attach-client.js.map +1 -0
  455. package/dist/remote-runner/client.d.ts +205 -0
  456. package/dist/remote-runner/client.d.ts.map +1 -0
  457. package/dist/remote-runner/client.js +633 -0
  458. package/dist/remote-runner/client.js.map +1 -0
  459. package/dist/safety/action-firewall.d.ts +6 -1
  460. package/dist/safety/action-firewall.d.ts.map +1 -1
  461. package/dist/safety/action-firewall.js +62 -26
  462. package/dist/safety/action-firewall.js.map +1 -1
  463. package/dist/safety/governance-service-client.d.ts +36 -0
  464. package/dist/safety/governance-service-client.d.ts.map +1 -0
  465. package/dist/safety/governance-service-client.js +279 -0
  466. package/dist/safety/governance-service-client.js.map +1 -0
  467. package/dist/safety/policy.d.ts +13 -2
  468. package/dist/safety/policy.d.ts.map +1 -1
  469. package/dist/safety/policy.js +474 -52
  470. package/dist/safety/policy.js.map +1 -1
  471. package/dist/sdk-tools.d.ts +21 -0
  472. package/dist/sdk-tools.d.ts.map +1 -1
  473. package/dist/sdk-tools.js +16 -0
  474. package/dist/sdk-tools.js.map +1 -1
  475. package/dist/server/app-context.d.ts +25 -0
  476. package/dist/server/app-context.d.ts.map +1 -1
  477. package/dist/server/app-context.js.map +1 -1
  478. package/dist/server/approval-service.d.ts +7 -8
  479. package/dist/server/approval-service.d.ts.map +1 -1
  480. package/dist/server/approval-service.js +12 -24
  481. package/dist/server/approval-service.js.map +1 -1
  482. package/dist/server/authz.d.ts +23 -2
  483. package/dist/server/authz.d.ts.map +1 -1
  484. package/dist/server/authz.js +153 -17
  485. package/dist/server/authz.js.map +1 -1
  486. package/dist/server/handlers/approvals.d.ts.map +1 -1
  487. package/dist/server/handlers/approvals.js +3 -10
  488. package/dist/server/handlers/approvals.js.map +1 -1
  489. package/dist/server/handlers/branch.d.ts.map +1 -1
  490. package/dist/server/handlers/branch.js +29 -20
  491. package/dist/server/handlers/branch.js.map +1 -1
  492. package/dist/server/handlers/bridge.d.ts.map +1 -1
  493. package/dist/server/handlers/bridge.js +3 -2
  494. package/dist/server/handlers/bridge.js.map +1 -1
  495. package/dist/server/handlers/chat-ws.d.ts.map +1 -1
  496. package/dist/server/handlers/chat-ws.js +23 -31
  497. package/dist/server/handlers/chat-ws.js.map +1 -1
  498. package/dist/server/handlers/chat.d.ts.map +1 -1
  499. package/dist/server/handlers/chat.js +105 -46
  500. package/dist/server/handlers/chat.js.map +1 -1
  501. package/dist/server/handlers/compliance.d.ts +3 -0
  502. package/dist/server/handlers/compliance.d.ts.map +1 -0
  503. package/dist/server/handlers/compliance.js +53 -0
  504. package/dist/server/handlers/compliance.js.map +1 -0
  505. package/dist/server/handlers/context.d.ts.map +1 -1
  506. package/dist/server/handlers/context.js +3 -8
  507. package/dist/server/handlers/context.js.map +1 -1
  508. package/dist/server/handlers/fleet.d.ts +4 -0
  509. package/dist/server/handlers/fleet.d.ts.map +1 -0
  510. package/dist/server/handlers/fleet.js +9 -0
  511. package/dist/server/handlers/fleet.js.map +1 -0
  512. package/dist/server/handlers/headless-sessions.d.ts +4 -0
  513. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  514. package/dist/server/handlers/headless-sessions.js +168 -3
  515. package/dist/server/handlers/headless-sessions.js.map +1 -1
  516. package/dist/server/handlers/health.d.ts +31 -2
  517. package/dist/server/handlers/health.d.ts.map +1 -1
  518. package/dist/server/handlers/health.js +82 -8
  519. package/dist/server/handlers/health.js.map +1 -1
  520. package/dist/server/handlers/hosted-runner-drain.d.ts +128 -0
  521. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -0
  522. package/dist/server/handlers/hosted-runner-drain.js +373 -0
  523. package/dist/server/handlers/hosted-runner-drain.js.map +1 -0
  524. package/dist/server/handlers/hosted-runner-identity.d.ts +17 -0
  525. package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -0
  526. package/dist/server/handlers/hosted-runner-identity.js +39 -0
  527. package/dist/server/handlers/hosted-runner-identity.js.map +1 -0
  528. package/dist/server/handlers/intelligent-router.d.ts +3 -0
  529. package/dist/server/handlers/intelligent-router.d.ts.map +1 -0
  530. package/dist/server/handlers/intelligent-router.js +141 -0
  531. package/dist/server/handlers/intelligent-router.js.map +1 -0
  532. package/dist/server/handlers/models.d.ts.map +1 -1
  533. package/dist/server/handlers/models.js +14 -0
  534. package/dist/server/handlers/models.js.map +1 -1
  535. package/dist/server/handlers/pending-requests.d.ts +8 -0
  536. package/dist/server/handlers/pending-requests.d.ts.map +1 -0
  537. package/dist/server/handlers/pending-requests.js +149 -0
  538. package/dist/server/handlers/pending-requests.js.map +1 -0
  539. package/dist/server/handlers/revenue-attribution.d.ts +3 -0
  540. package/dist/server/handlers/revenue-attribution.d.ts.map +1 -0
  541. package/dist/server/handlers/revenue-attribution.js +45 -0
  542. package/dist/server/handlers/revenue-attribution.js.map +1 -0
  543. package/dist/server/handlers/runtime-app-server-ws.d.ts +10 -0
  544. package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -0
  545. package/dist/server/handlers/runtime-app-server-ws.js +206 -0
  546. package/dist/server/handlers/runtime-app-server-ws.js.map +1 -0
  547. package/dist/server/handlers/session-artifacts.js +2 -2
  548. package/dist/server/handlers/session-artifacts.js.map +1 -1
  549. package/dist/server/handlers/session-attachments.js +3 -3
  550. package/dist/server/handlers/session-attachments.js.map +1 -1
  551. package/dist/server/handlers/session-timeline.d.ts +11 -0
  552. package/dist/server/handlers/session-timeline.d.ts.map +1 -0
  553. package/dist/server/handlers/session-timeline.js +77 -0
  554. package/dist/server/handlers/session-timeline.js.map +1 -0
  555. package/dist/server/handlers/sessions.d.ts +11 -0
  556. package/dist/server/handlers/sessions.d.ts.map +1 -1
  557. package/dist/server/handlers/sessions.js +68 -100
  558. package/dist/server/handlers/sessions.js.map +1 -1
  559. package/dist/server/handlers/traces.d.ts +3 -0
  560. package/dist/server/handlers/traces.d.ts.map +1 -0
  561. package/dist/server/handlers/traces.js +60 -0
  562. package/dist/server/handlers/traces.js.map +1 -0
  563. package/dist/server/handlers/usage-analytics.d.ts +3 -0
  564. package/dist/server/handlers/usage-analytics.d.ts.map +1 -0
  565. package/dist/server/handlers/usage-analytics.js +40 -0
  566. package/dist/server/handlers/usage-analytics.js.map +1 -0
  567. package/dist/server/handlers/workspace-config.d.ts +3 -0
  568. package/dist/server/handlers/workspace-config.d.ts.map +1 -0
  569. package/dist/server/handlers/workspace-config.js +62 -0
  570. package/dist/server/handlers/workspace-config.js.map +1 -0
  571. package/dist/server/headless-in-process-host.d.ts +8 -1
  572. package/dist/server/headless-in-process-host.d.ts.map +1 -1
  573. package/dist/server/headless-in-process-host.js +6 -0
  574. package/dist/server/headless-in-process-host.js.map +1 -1
  575. package/dist/server/headless-runtime-service.d.ts +99 -1
  576. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  577. package/dist/server/headless-runtime-service.js +286 -23
  578. package/dist/server/headless-runtime-service.js.map +1 -1
  579. package/dist/server/hosted-session-manager.d.ts +103 -0
  580. package/dist/server/hosted-session-manager.d.ts.map +1 -0
  581. package/dist/server/hosted-session-manager.js +629 -0
  582. package/dist/server/hosted-session-manager.js.map +1 -0
  583. package/dist/server/pending-request-payload.d.ts +4 -0
  584. package/dist/server/pending-request-payload.d.ts.map +1 -0
  585. package/dist/server/pending-request-payload.js +107 -0
  586. package/dist/server/pending-request-payload.js.map +1 -0
  587. package/dist/server/request-context.d.ts +4 -0
  588. package/dist/server/request-context.d.ts.map +1 -1
  589. package/dist/server/request-context.js +9 -0
  590. package/dist/server/request-context.js.map +1 -1
  591. package/dist/server/routes.d.ts.map +1 -1
  592. package/dist/server/routes.js +149 -1
  593. package/dist/server/routes.js.map +1 -1
  594. package/dist/server/runtime-ws-access.d.ts +16 -0
  595. package/dist/server/runtime-ws-access.d.ts.map +1 -0
  596. package/dist/server/runtime-ws-access.js +21 -0
  597. package/dist/server/runtime-ws-access.js.map +1 -0
  598. package/dist/server/server-middlewares.d.ts +1 -1
  599. package/dist/server/server-middlewares.d.ts.map +1 -1
  600. package/dist/server/server-middlewares.js +35 -27
  601. package/dist/server/server-middlewares.js.map +1 -1
  602. package/dist/server/server-request-manager.d.ts +8 -27
  603. package/dist/server/server-request-manager.d.ts.map +1 -1
  604. package/dist/server/server-request-manager.js +7 -0
  605. package/dist/server/server-request-manager.js.map +1 -1
  606. package/dist/server/server-utils.d.ts +2 -1
  607. package/dist/server/server-utils.d.ts.map +1 -1
  608. package/dist/server/server-utils.js +11 -1
  609. package/dist/server/server-utils.js.map +1 -1
  610. package/dist/server/session-event-env.d.ts +2 -0
  611. package/dist/server/session-event-env.d.ts.map +1 -0
  612. package/dist/server/session-event-env.js +8 -0
  613. package/dist/server/session-event-env.js.map +1 -0
  614. package/dist/server/session-initialization.d.ts +25 -4
  615. package/dist/server/session-initialization.d.ts.map +1 -1
  616. package/dist/server/session-initialization.js +22 -5
  617. package/dist/server/session-initialization.js.map +1 -1
  618. package/dist/server/session-scope.d.ts +4 -0
  619. package/dist/server/session-scope.d.ts.map +1 -1
  620. package/dist/server/session-scope.js +44 -4
  621. package/dist/server/session-scope.js.map +1 -1
  622. package/dist/server/session-timeline.d.ts +13 -0
  623. package/dist/server/session-timeline.d.ts.map +1 -0
  624. package/dist/server/session-timeline.js +566 -0
  625. package/dist/server/session-timeline.js.map +1 -0
  626. package/dist/services/compliance/controls.d.ts +6 -0
  627. package/dist/services/compliance/controls.d.ts.map +1 -0
  628. package/dist/services/compliance/controls.js +113 -0
  629. package/dist/services/compliance/controls.js.map +1 -0
  630. package/dist/services/compliance/index.d.ts +6 -0
  631. package/dist/services/compliance/index.d.ts.map +1 -0
  632. package/dist/services/compliance/index.js +5 -0
  633. package/dist/services/compliance/index.js.map +1 -0
  634. package/dist/services/compliance/normalize.d.ts +23 -0
  635. package/dist/services/compliance/normalize.d.ts.map +1 -0
  636. package/dist/services/compliance/normalize.js +226 -0
  637. package/dist/services/compliance/normalize.js.map +1 -0
  638. package/dist/services/compliance/recorder.d.ts +22 -0
  639. package/dist/services/compliance/recorder.d.ts.map +1 -0
  640. package/dist/services/compliance/recorder.js +89 -0
  641. package/dist/services/compliance/recorder.js.map +1 -0
  642. package/dist/services/compliance/service.d.ts +24 -0
  643. package/dist/services/compliance/service.d.ts.map +1 -0
  644. package/dist/services/compliance/service.js +426 -0
  645. package/dist/services/compliance/service.js.map +1 -0
  646. package/dist/services/compliance/types.d.ts +185 -0
  647. package/dist/services/compliance/types.d.ts.map +1 -0
  648. package/dist/services/compliance/types.js +2 -0
  649. package/dist/services/compliance/types.js.map +1 -0
  650. package/dist/services/intelligent-router/index.d.ts +5 -0
  651. package/dist/services/intelligent-router/index.d.ts.map +1 -0
  652. package/dist/services/intelligent-router/index.js +5 -0
  653. package/dist/services/intelligent-router/index.js.map +1 -0
  654. package/dist/services/intelligent-router/normalize.d.ts +9 -0
  655. package/dist/services/intelligent-router/normalize.d.ts.map +1 -0
  656. package/dist/services/intelligent-router/normalize.js +169 -0
  657. package/dist/services/intelligent-router/normalize.js.map +1 -0
  658. package/dist/services/intelligent-router/recorder.d.ts +24 -0
  659. package/dist/services/intelligent-router/recorder.d.ts.map +1 -0
  660. package/dist/services/intelligent-router/recorder.js +98 -0
  661. package/dist/services/intelligent-router/recorder.js.map +1 -0
  662. package/dist/services/intelligent-router/service.d.ts +22 -0
  663. package/dist/services/intelligent-router/service.d.ts.map +1 -0
  664. package/dist/services/intelligent-router/service.js +328 -0
  665. package/dist/services/intelligent-router/service.js.map +1 -0
  666. package/dist/services/intelligent-router/types.d.ts +98 -0
  667. package/dist/services/intelligent-router/types.d.ts.map +1 -0
  668. package/dist/services/intelligent-router/types.js +7 -0
  669. package/dist/services/intelligent-router/types.js.map +1 -0
  670. package/dist/services/revenue-attribution/index.d.ts +4 -0
  671. package/dist/services/revenue-attribution/index.d.ts.map +1 -0
  672. package/dist/services/revenue-attribution/index.js +4 -0
  673. package/dist/services/revenue-attribution/index.js.map +1 -0
  674. package/dist/services/revenue-attribution/normalize.d.ts +13 -0
  675. package/dist/services/revenue-attribution/normalize.d.ts.map +1 -0
  676. package/dist/services/revenue-attribution/normalize.js +155 -0
  677. package/dist/services/revenue-attribution/normalize.js.map +1 -0
  678. package/dist/services/revenue-attribution/service.d.ts +21 -0
  679. package/dist/services/revenue-attribution/service.d.ts.map +1 -0
  680. package/dist/services/revenue-attribution/service.js +248 -0
  681. package/dist/services/revenue-attribution/service.js.map +1 -0
  682. package/dist/services/revenue-attribution/types.d.ts +96 -0
  683. package/dist/services/revenue-attribution/types.d.ts.map +1 -0
  684. package/dist/services/revenue-attribution/types.js +7 -0
  685. package/dist/services/revenue-attribution/types.js.map +1 -0
  686. package/dist/services/traces/index.d.ts +5 -0
  687. package/dist/services/traces/index.d.ts.map +1 -0
  688. package/dist/services/traces/index.js +4 -0
  689. package/dist/services/traces/index.js.map +1 -0
  690. package/dist/services/traces/normalize.d.ts +20 -0
  691. package/dist/services/traces/normalize.d.ts.map +1 -0
  692. package/dist/services/traces/normalize.js +261 -0
  693. package/dist/services/traces/normalize.js.map +1 -0
  694. package/dist/services/traces/otel.d.ts +3 -0
  695. package/dist/services/traces/otel.d.ts.map +1 -0
  696. package/dist/services/traces/otel.js +173 -0
  697. package/dist/services/traces/otel.js.map +1 -0
  698. package/dist/services/traces/service.d.ts +17 -0
  699. package/dist/services/traces/service.d.ts.map +1 -0
  700. package/dist/services/traces/service.js +197 -0
  701. package/dist/services/traces/service.js.map +1 -0
  702. package/dist/services/traces/types.d.ts +130 -0
  703. package/dist/services/traces/types.d.ts.map +1 -0
  704. package/dist/services/traces/types.js +8 -0
  705. package/dist/services/traces/types.js.map +1 -0
  706. package/dist/services/usage-analytics/aggregation.d.ts +18 -0
  707. package/dist/services/usage-analytics/aggregation.d.ts.map +1 -0
  708. package/dist/services/usage-analytics/aggregation.js +130 -0
  709. package/dist/services/usage-analytics/aggregation.js.map +1 -0
  710. package/dist/services/usage-analytics/index.d.ts +5 -0
  711. package/dist/services/usage-analytics/index.d.ts.map +1 -0
  712. package/dist/services/usage-analytics/index.js +4 -0
  713. package/dist/services/usage-analytics/index.js.map +1 -0
  714. package/dist/services/usage-analytics/recorder.d.ts +16 -0
  715. package/dist/services/usage-analytics/recorder.d.ts.map +1 -0
  716. package/dist/services/usage-analytics/recorder.js +128 -0
  717. package/dist/services/usage-analytics/recorder.js.map +1 -0
  718. package/dist/services/usage-analytics/service.d.ts +15 -0
  719. package/dist/services/usage-analytics/service.d.ts.map +1 -0
  720. package/dist/services/usage-analytics/service.js +210 -0
  721. package/dist/services/usage-analytics/service.js.map +1 -0
  722. package/dist/services/usage-analytics/types.d.ts +80 -0
  723. package/dist/services/usage-analytics/types.d.ts.map +1 -0
  724. package/dist/services/usage-analytics/types.js +2 -0
  725. package/dist/services/usage-analytics/types.js.map +1 -0
  726. package/dist/services/workspace-config/index.d.ts +6 -0
  727. package/dist/services/workspace-config/index.d.ts.map +1 -0
  728. package/dist/services/workspace-config/index.js +5 -0
  729. package/dist/services/workspace-config/index.js.map +1 -0
  730. package/dist/services/workspace-config/middleware.d.ts +5 -0
  731. package/dist/services/workspace-config/middleware.d.ts.map +1 -0
  732. package/dist/services/workspace-config/middleware.js +98 -0
  733. package/dist/services/workspace-config/middleware.js.map +1 -0
  734. package/dist/services/workspace-config/normalize.d.ts +17 -0
  735. package/dist/services/workspace-config/normalize.d.ts.map +1 -0
  736. package/dist/services/workspace-config/normalize.js +148 -0
  737. package/dist/services/workspace-config/normalize.js.map +1 -0
  738. package/dist/services/workspace-config/policy.d.ts +16 -0
  739. package/dist/services/workspace-config/policy.d.ts.map +1 -0
  740. package/dist/services/workspace-config/policy.js +77 -0
  741. package/dist/services/workspace-config/policy.js.map +1 -0
  742. package/dist/services/workspace-config/service.d.ts +20 -0
  743. package/dist/services/workspace-config/service.d.ts.map +1 -0
  744. package/dist/services/workspace-config/service.js +162 -0
  745. package/dist/services/workspace-config/service.js.map +1 -0
  746. package/dist/services/workspace-config/types.d.ts +71 -0
  747. package/dist/services/workspace-config/types.d.ts.map +1 -0
  748. package/dist/services/workspace-config/types.js +2 -0
  749. package/dist/services/workspace-config/types.js.map +1 -0
  750. package/dist/session/manager.d.ts.map +1 -1
  751. package/dist/session/manager.js +10 -0
  752. package/dist/session/manager.js.map +1 -1
  753. package/dist/session/migration.d.ts.map +1 -1
  754. package/dist/session/migration.js +2 -1
  755. package/dist/session/migration.js.map +1 -1
  756. package/dist/session/session-memory.d.ts.map +1 -1
  757. package/dist/session/session-memory.js +7 -1
  758. package/dist/session/session-memory.js.map +1 -1
  759. package/dist/session/types.d.ts +1 -2
  760. package/dist/session/types.d.ts.map +1 -1
  761. package/dist/session/types.js +1 -22
  762. package/dist/session/types.js.map +1 -1
  763. package/dist/session/wire-format.d.ts +7 -0
  764. package/dist/session/wire-format.d.ts.map +1 -0
  765. package/dist/session/wire-format.generated.d.ts +95 -0
  766. package/dist/session/wire-format.generated.d.ts.map +1 -0
  767. package/dist/session/wire-format.generated.js +111 -0
  768. package/dist/session/wire-format.generated.js.map +1 -0
  769. package/dist/session/wire-format.js +145 -0
  770. package/dist/session/wire-format.js.map +1 -0
  771. package/dist/shared-memory/client.d.ts.map +1 -1
  772. package/dist/shared-memory/client.js +22 -22
  773. package/dist/shared-memory/client.js.map +1 -1
  774. package/dist/skills/artifact-metadata.d.ts +16 -0
  775. package/dist/skills/artifact-metadata.d.ts.map +1 -0
  776. package/dist/skills/artifact-metadata.js +86 -0
  777. package/dist/skills/artifact-metadata.js.map +1 -0
  778. package/dist/skills/loader.d.ts +2 -2
  779. package/dist/skills/loader.d.ts.map +1 -1
  780. package/dist/skills/loader.js +1 -0
  781. package/dist/skills/loader.js.map +1 -1
  782. package/dist/skills/service-client.d.ts +42 -0
  783. package/dist/skills/service-client.d.ts.map +1 -0
  784. package/dist/skills/service-client.js +258 -0
  785. package/dist/skills/service-client.js.map +1 -0
  786. package/dist/skills/tool.d.ts +3 -0
  787. package/dist/skills/tool.d.ts.map +1 -1
  788. package/dist/skills/tool.js +67 -5
  789. package/dist/skills/tool.js.map +1 -1
  790. package/dist/telemetry/index.d.ts +4 -0
  791. package/dist/telemetry/index.d.ts.map +1 -1
  792. package/dist/telemetry/index.js +5 -0
  793. package/dist/telemetry/index.js.map +1 -1
  794. package/dist/telemetry/maestro-event-bus.d.ts +440 -0
  795. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -0
  796. package/dist/telemetry/maestro-event-bus.js +784 -0
  797. package/dist/telemetry/maestro-event-bus.js.map +1 -0
  798. package/dist/telemetry/maestro-event-catalog.d.ts +48 -0
  799. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -0
  800. package/dist/telemetry/maestro-event-catalog.js +69 -0
  801. package/dist/telemetry/maestro-event-catalog.js.map +1 -0
  802. package/dist/telemetry/maestro-platform-replay-fixture.d.ts +24 -0
  803. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -0
  804. package/dist/telemetry/maestro-platform-replay-fixture.js +400 -0
  805. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -0
  806. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +29 -0
  807. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -0
  808. package/dist/telemetry/maestro-publisher-conformance-fixture.js +240 -0
  809. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -0
  810. package/dist/telemetry/meter-service-client.d.ts +0 -33
  811. package/dist/telemetry/meter-service-client.d.ts.map +1 -1
  812. package/dist/telemetry/meter-service-client.js +22 -50
  813. package/dist/telemetry/meter-service-client.js.map +1 -1
  814. package/dist/telemetry/turn-tracker.d.ts.map +1 -1
  815. package/dist/telemetry/turn-tracker.js +5 -5
  816. package/dist/telemetry/turn-tracker.js.map +1 -1
  817. package/dist/telemetry/wide-events.d.ts +8 -0
  818. package/dist/telemetry/wide-events.d.ts.map +1 -1
  819. package/dist/telemetry/wide-events.js +28 -0
  820. package/dist/telemetry/wide-events.js.map +1 -1
  821. package/dist/telemetry.d.ts +1 -1
  822. package/dist/telemetry.d.ts.map +1 -1
  823. package/dist/telemetry.js +14 -4
  824. package/dist/telemetry.js.map +1 -1
  825. package/dist/timeline/redaction.d.ts +5 -0
  826. package/dist/timeline/redaction.d.ts.map +1 -0
  827. package/dist/timeline/redaction.js +119 -0
  828. package/dist/timeline/redaction.js.map +1 -0
  829. package/dist/tools/ask-user.d.ts +26 -0
  830. package/dist/tools/ask-user.d.ts.map +1 -1
  831. package/dist/tools/ask-user.js +33 -1
  832. package/dist/tools/ask-user.js.map +1 -1
  833. package/dist/tools/background/task-types.d.ts +1 -1
  834. package/dist/tools/edit.d.ts +2 -0
  835. package/dist/tools/edit.d.ts.map +1 -1
  836. package/dist/tools/edit.js +27 -7
  837. package/dist/tools/edit.js.map +1 -1
  838. package/dist/tools/index.d.ts +9 -0
  839. package/dist/tools/index.d.ts.map +1 -1
  840. package/dist/tools/pipeline.d.ts.map +1 -1
  841. package/dist/tools/pipeline.js +16 -7
  842. package/dist/tools/pipeline.js.map +1 -1
  843. package/dist/tools/write.d.ts +2 -0
  844. package/dist/tools/write.d.ts.map +1 -1
  845. package/dist/tools/write.js +24 -6
  846. package/dist/tools/write.js.map +1 -1
  847. package/dist/tracking/cost-tracker.d.ts +15 -12
  848. package/dist/tracking/cost-tracker.d.ts.map +1 -1
  849. package/dist/tracking/cost-tracker.js +29 -40
  850. package/dist/tracking/cost-tracker.js.map +1 -1
  851. package/dist/utils/checkpoint-profiler.d.ts +29 -0
  852. package/dist/utils/checkpoint-profiler.d.ts.map +1 -0
  853. package/dist/utils/checkpoint-profiler.js +118 -0
  854. package/dist/utils/checkpoint-profiler.js.map +1 -0
  855. package/dist/utils/downstream-http.d.ts +21 -0
  856. package/dist/utils/downstream-http.d.ts.map +1 -0
  857. package/dist/utils/downstream-http.js +151 -0
  858. package/dist/utils/downstream-http.js.map +1 -0
  859. package/dist/utils/downstream.d.ts +18 -0
  860. package/dist/utils/downstream.d.ts.map +1 -0
  861. package/dist/utils/downstream.js +47 -0
  862. package/dist/utils/downstream.js.map +1 -0
  863. package/dist/utils/logger.d.ts +3 -1
  864. package/dist/utils/logger.d.ts.map +1 -1
  865. package/dist/utils/logger.js +12 -1
  866. package/dist/utils/logger.js.map +1 -1
  867. package/dist/utils/oauth-http.d.ts +8 -0
  868. package/dist/utils/oauth-http.d.ts.map +1 -0
  869. package/dist/utils/oauth-http.js +41 -0
  870. package/dist/utils/oauth-http.js.map +1 -0
  871. package/dist/utils/path-utils.d.ts +2 -0
  872. package/dist/utils/path-utils.d.ts.map +1 -0
  873. package/dist/utils/path-utils.js +12 -0
  874. package/dist/utils/path-utils.js.map +1 -0
  875. package/dist/utils/path-validation.d.ts +1 -1
  876. package/dist/utils/path-validation.d.ts.map +1 -1
  877. package/dist/utils/path-validation.js +3 -3
  878. package/dist/utils/path-validation.js.map +1 -1
  879. package/dist/version.json +2 -2
  880. package/dist/web-server.d.ts +7 -1
  881. package/dist/web-server.d.ts.map +1 -1
  882. package/dist/web-server.js +117 -15
  883. package/dist/web-server.js.map +1 -1
  884. package/dist/webhooks/delivery.d.ts.map +1 -1
  885. package/dist/webhooks/delivery.js +9 -12
  886. package/dist/webhooks/delivery.js.map +1 -1
  887. package/node_modules/@bufbuild/protobuf/dist/cjs/descriptors.d.ts +12 -5
  888. package/node_modules/@bufbuild/protobuf/dist/cjs/from-binary.js +7 -7
  889. package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.d.ts +1 -1
  890. package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.js +1 -1
  891. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/path.d.ts +1 -1
  892. package/node_modules/@bufbuild/protobuf/dist/cjs/registry.js +24 -1
  893. package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.d.ts +1 -1
  894. package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.js +9 -10
  895. package/node_modules/@bufbuild/protobuf/dist/cjs/types.d.ts +1 -1
  896. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.d.ts +9 -7
  897. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.js +18 -8
  898. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.d.ts +4 -2
  899. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.js +8 -1
  900. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +1 -1
  901. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +2 -2
  902. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +37 -23
  903. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +1 -1
  904. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +32 -36
  905. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.d.ts +65 -0
  906. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.js +38 -2
  907. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +5 -5
  908. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +3 -3
  909. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.d.ts +10 -0
  910. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.js +24 -0
  911. package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.d.ts +12 -5
  912. package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js +7 -7
  913. package/node_modules/@bufbuild/protobuf/dist/esm/from-json.d.ts +1 -1
  914. package/node_modules/@bufbuild/protobuf/dist/esm/from-json.js +2 -2
  915. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.d.ts +1 -1
  916. package/node_modules/@bufbuild/protobuf/dist/esm/registry.js +24 -1
  917. package/node_modules/@bufbuild/protobuf/dist/esm/to-json.d.ts +1 -1
  918. package/node_modules/@bufbuild/protobuf/dist/esm/to-json.js +10 -11
  919. package/node_modules/@bufbuild/protobuf/dist/esm/types.d.ts +1 -1
  920. package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts +9 -7
  921. package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js +18 -8
  922. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts +4 -2
  923. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js +8 -1
  924. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +1 -1
  925. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +2 -2
  926. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +37 -23
  927. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +1 -1
  928. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +32 -36
  929. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.d.ts +65 -0
  930. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.js +37 -1
  931. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +5 -5
  932. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +3 -3
  933. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.d.ts +10 -0
  934. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js +23 -0
  935. package/node_modules/@bufbuild/protobuf/package.json +1 -1
  936. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +305 -2
  937. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
  938. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +34 -4
  939. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
  940. package/node_modules/@evalops/contracts/dist/index.d.ts +88 -0
  941. package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  942. package/node_modules/@evalops/contracts/dist/index.js +2 -0
  943. package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  944. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +77 -77
  945. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
  946. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +1 -1
  947. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
  948. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +182 -0
  949. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -0
  950. package/node_modules/@evalops/contracts/dist/runtime-app-server.js +83 -0
  951. package/node_modules/@evalops/contracts/dist/runtime-app-server.js.map +1 -0
  952. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +133 -0
  953. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -0
  954. package/node_modules/@evalops/contracts/dist/runtime-server-request.js +68 -0
  955. package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -0
  956. package/node_modules/@evalops/contracts/dist/schemas.d.ts +178 -0
  957. package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  958. package/node_modules/@evalops/contracts/dist/schemas.js +165 -0
  959. package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  960. package/node_modules/@evalops/contracts/dist/typebox-utils.d.ts +2 -0
  961. package/node_modules/@evalops/contracts/dist/typebox-utils.d.ts.map +1 -0
  962. package/node_modules/@evalops/contracts/dist/typebox-utils.js +5 -0
  963. package/node_modules/@evalops/contracts/dist/typebox-utils.js.map +1 -0
  964. package/node_modules/@evalops/contracts/dist/validators.d.ts +4 -1
  965. package/node_modules/@evalops/contracts/dist/validators.d.ts.map +1 -1
  966. package/node_modules/@evalops/contracts/dist/validators.js +4 -1
  967. package/node_modules/@evalops/contracts/dist/validators.js.map +1 -1
  968. package/node_modules/@evalops/contracts/package.json +1 -1
  969. package/node_modules/@evalops/tui/package.json +1 -1
  970. package/node_modules/string-width/index.js +93 -9
  971. package/node_modules/string-width/package.json +1 -1
  972. package/package.json +32 -25
  973. package/dist/cli-tui/commands/grouped/auth-commands.d.ts.map +0 -1
  974. package/dist/cli-tui/commands/grouped/auth-commands.js.map +0 -1
  975. package/dist/cli-tui/commands/grouped/config-commands.d.ts.map +0 -1
  976. package/dist/cli-tui/commands/grouped/config-commands.js.map +0 -1
  977. package/dist/cli-tui/commands/grouped/diag-commands.d.ts.map +0 -1
  978. package/dist/cli-tui/commands/grouped/diag-commands.js.map +0 -1
  979. package/dist/cli-tui/commands/grouped/git-commands.d.ts.map +0 -1
  980. package/dist/cli-tui/commands/grouped/git-commands.js.map +0 -1
  981. package/dist/cli-tui/commands/grouped/index.d.ts.map +0 -1
  982. package/dist/cli-tui/commands/grouped/index.js.map +0 -1
  983. package/dist/cli-tui/commands/grouped/safety-commands.d.ts.map +0 -1
  984. package/dist/cli-tui/commands/grouped/safety-commands.js.map +0 -1
  985. package/dist/cli-tui/commands/grouped/session-commands.d.ts.map +0 -1
  986. package/dist/cli-tui/commands/grouped/session-commands.js.map +0 -1
  987. package/dist/cli-tui/commands/grouped/tools-commands.d.ts.map +0 -1
  988. package/dist/cli-tui/commands/grouped/tools-commands.js.map +0 -1
  989. package/dist/cli-tui/commands/grouped/ui-commands.d.ts.map +0 -1
  990. package/dist/cli-tui/commands/grouped/ui-commands.js.map +0 -1
  991. package/dist/cli-tui/commands/grouped/undo-commands.d.ts.map +0 -1
  992. package/dist/cli-tui/commands/grouped/undo-commands.js.map +0 -1
  993. package/dist/cli-tui/commands/grouped/usage-commands.d.ts.map +0 -1
  994. package/dist/cli-tui/commands/grouped/usage-commands.js.map +0 -1
  995. package/dist/cli-tui/commands/grouped/utils.d.ts.map +0 -1
  996. package/dist/cli-tui/commands/grouped/utils.js.map +0 -1
  997. package/dist/cli-tui/commands/grouped-command-handlers.d.ts.map +0 -1
  998. package/dist/cli-tui/commands/grouped-command-handlers.js +0 -135
  999. package/dist/cli-tui/commands/grouped-command-handlers.js.map +0 -1
  1000. package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.d.ts +0 -78
  1001. package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.d.ts.map +0 -1
  1002. package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.js +0 -129
  1003. package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.js.map +0 -1
  1004. package/node_modules/@evalops/memory/dist/client.d.ts +0 -94
  1005. package/node_modules/@evalops/memory/dist/client.js +0 -503
  1006. package/node_modules/@evalops/memory/gen/proto/dist/memory/v1/memory_pb.d.ts +0 -608
  1007. package/node_modules/@evalops/memory/gen/proto/dist/memory/v1/memory_pb.js +0 -187
  1008. package/node_modules/@evalops/memory/package.json +0 -26
  1009. /package/dist/cli-tui/commands/{grouped → subcommands}/usage-commands.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-deltas.js","sourceRoot":"","sources":["../../src/lsp/diagnostic-deltas.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve as resolvePath } from \"node:path\";\nimport type { LspDiagnostic } from \"./index.js\";\nimport { collectDiagnostics } from \"./index.js\";\nimport { uriToPath } from \"./utils.js\";\n\nexport type DiagnosticBaseline = {\n\tfile: string;\n\tdiagnostics: LspDiagnostic[];\n\tcaptured: boolean;\n\terrorMessage?: string;\n};\n\nexport type DiagnosticDeltaResult = {\n\tallDiagnostics: Record<string, LspDiagnostic[]>;\n\tfileDiagnostics: LspDiagnostic[];\n\tnewDiagnostics: LspDiagnostic[];\n\trepairedDiagnostics: LspDiagnostic[];\n\tusedDelta: boolean;\n\tvalidatorDiagnostics: Record<string, LspDiagnostic[]>;\n};\n\nexport async function captureDiagnosticBaseline(\n\tfile: string,\n): Promise<DiagnosticBaseline> {\n\tconst normalizedFile = normalizeDiagnosticPath(file);\n\n\ttry {\n\t\tconst diagnostics = await collectDiagnostics();\n\t\treturn {\n\t\t\tfile: normalizedFile,\n\t\t\tdiagnostics: diagnosticsForFile(diagnostics, normalizedFile),\n\t\t\tcaptured: true,\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tfile: normalizedFile,\n\t\t\tdiagnostics: [],\n\t\t\tcaptured: false,\n\t\t\terrorMessage:\n\t\t\t\terror instanceof Error\n\t\t\t\t\t? error.message\n\t\t\t\t\t: \"Unable to collect diagnostics\",\n\t\t};\n\t}\n}\n\nexport async function collectDiagnosticDelta(\n\tbaseline: DiagnosticBaseline,\n): Promise<DiagnosticDeltaResult> {\n\tconst allDiagnostics = await collectDiagnostics();\n\tconst fileDiagnostics = diagnosticsForFile(allDiagnostics, baseline.file);\n\n\tif (!baseline.captured) {\n\t\treturn {\n\t\t\tallDiagnostics,\n\t\t\tfileDiagnostics,\n\t\t\tnewDiagnostics: fileDiagnostics,\n\t\t\trepairedDiagnostics: [],\n\t\t\tusedDelta: false,\n\t\t\tvalidatorDiagnostics: allDiagnostics,\n\t\t};\n\t}\n\n\tconst newDiagnostics = diffDiagnostics(baseline.diagnostics, fileDiagnostics);\n\tconst repairedDiagnostics = diffDiagnostics(\n\t\tfileDiagnostics,\n\t\tbaseline.diagnostics,\n\t);\n\n\treturn {\n\t\tallDiagnostics,\n\t\tfileDiagnostics,\n\t\tnewDiagnostics,\n\t\trepairedDiagnostics,\n\t\tusedDelta: true,\n\t\tvalidatorDiagnostics: {\n\t\t\t[baseline.file]: newDiagnostics,\n\t\t},\n\t};\n}\n\nexport function diffDiagnostics(\n\tbefore: LspDiagnostic[],\n\tafter: LspDiagnostic[],\n): LspDiagnostic[] {\n\tconst remainingBefore = new Map<string, number>();\n\n\tfor (const diagnostic of before) {\n\t\tconst key = diagnosticKey(diagnostic);\n\t\tremainingBefore.set(key, (remainingBefore.get(key) ?? 0) + 1);\n\t}\n\n\tconst introduced: LspDiagnostic[] = [];\n\tfor (const diagnostic of after) {\n\t\tconst key = diagnosticKey(diagnostic);\n\t\tconst count = remainingBefore.get(key) ?? 0;\n\t\tif (count > 0) {\n\t\t\tremainingBefore.set(key, count - 1);\n\t\t\tcontinue;\n\t\t}\n\t\tintroduced.push(diagnostic);\n\t}\n\n\treturn introduced;\n}\n\nexport function diagnosticsForFile(\n\tdiagnostics: Record<string, LspDiagnostic[]>,\n\tfile: string,\n): LspDiagnostic[] {\n\tconst targetFile = normalizeDiagnosticPath(file);\n\tconst direct = diagnostics[file] ?? diagnostics[targetFile];\n\tif (direct) return direct;\n\n\tfor (const [diagnosticFile, entries] of Object.entries(diagnostics)) {\n\t\tif (normalizeDiagnosticPath(diagnosticFile) === targetFile) {\n\t\t\treturn entries;\n\t\t}\n\t}\n\n\treturn [];\n}\n\nfunction normalizeDiagnosticPath(file: string): string {\n\treturn resolvePath(uriToPath(file));\n}\n\nfunction diagnosticKey(diagnostic: LspDiagnostic): string {\n\treturn JSON.stringify({\n\t\tseverity: diagnostic.severity ?? null,\n\t\tsource: diagnostic.source ?? null,\n\t\tmessage: diagnostic.message,\n\t\trange: diagnostic.range,\n\t});\n}\n"]}
@@ -0,0 +1,48 @@
1
+ import type { AppMessage, ToolResultMessage } from "../agent/types.js";
2
+ import type { DiagnosticDeltaResult } from "./diagnostic-deltas.js";
3
+ import type { LspDiagnostic } from "./types.js";
4
+ export declare const DIAGNOSTIC_REPAIR_MAX_ATTEMPTS = 2;
5
+ export type StructuredDiagnosticDeltaDiagnostic = {
6
+ message: string;
7
+ severity: LspDiagnostic["severity"];
8
+ severityLabel: "error" | "warning" | "information" | "hint" | "unknown";
9
+ source?: string;
10
+ line: number;
11
+ column: number;
12
+ range: LspDiagnostic["range"];
13
+ };
14
+ export type DiagnosticDeltaToolSummary = {
15
+ kind: "diagnostic_delta";
16
+ file: string;
17
+ displayPath: string;
18
+ usedDelta: boolean;
19
+ introducedCount: number;
20
+ repairedCount: number;
21
+ remainingCount: number;
22
+ fingerprint: string;
23
+ introducedDiagnostics: StructuredDiagnosticDeltaDiagnostic[];
24
+ repairedDiagnostics: StructuredDiagnosticDeltaDiagnostic[];
25
+ repair: {
26
+ shouldFollowUp: boolean;
27
+ maxAttempts: number;
28
+ reason: string;
29
+ };
30
+ };
31
+ export type DiagnosticDeltaDetails = {
32
+ diagnosticDelta?: DiagnosticDeltaToolSummary;
33
+ };
34
+ export declare function buildDiagnosticDeltaToolSummary({ file, displayPath, result, }: {
35
+ file: string;
36
+ displayPath: string;
37
+ result: DiagnosticDeltaResult;
38
+ }): DiagnosticDeltaToolSummary;
39
+ export declare function formatDiagnosticDeltaForToolOutput(summary: DiagnosticDeltaToolSummary): string;
40
+ export declare function getDiagnosticDeltaFromToolResult(message: ToolResultMessage): DiagnosticDeltaToolSummary | undefined;
41
+ export declare function buildDiagnosticRepairFollowUpMessage({ summary, toolName, toolCallId, attempt, }: {
42
+ summary: DiagnosticDeltaToolSummary;
43
+ toolName: string;
44
+ toolCallId: string;
45
+ attempt: number;
46
+ }): AppMessage;
47
+ export declare function hasDiagnosticRepairOptOut(messages: AppMessage[]): boolean;
48
+ //# sourceMappingURL=diagnostic-repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-repair.d.ts","sourceRoot":"","sources":["../../src/lsp/diagnostic-repair.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,MAAM,MAAM,mCAAmC,GAAG;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,aAAa,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,mCAAmC,EAAE,CAAC;IAC7D,mBAAmB,EAAE,mCAAmC,EAAE,CAAC;IAC3D,MAAM,EAAE;QACP,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC7C,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,EAC/C,IAAI,EACJ,WAAW,EACX,MAAM,GACN,EAAE;IACF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;CAC9B,GAAG,0BAA0B,CA2B7B;AAED,wBAAgB,kCAAkC,CACjD,OAAO,EAAE,0BAA0B,GACjC,MAAM,CAgBR;AAED,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,iBAAiB,GACxB,0BAA0B,GAAG,SAAS,CAUxC;AAED,wBAAgB,oCAAoC,CAAC,EACpD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,GACP,EAAE;IACF,OAAO,EAAE,0BAA0B,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG,UAAU,CAiCb;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAWzE"}
@@ -0,0 +1,143 @@
1
+ import { createHash } from "node:crypto";
2
+ export const DIAGNOSTIC_REPAIR_MAX_ATTEMPTS = 2;
3
+ export function buildDiagnosticDeltaToolSummary({ file, displayPath, result, }) {
4
+ const introducedDiagnostics = result.newDiagnostics.map(structureDiagnostic);
5
+ const repairedDiagnostics = result.repairedDiagnostics.map(structureDiagnostic);
6
+ const introducedCount = introducedDiagnostics.length;
7
+ const repairedCount = repairedDiagnostics.length;
8
+ const remainingCount = result.fileDiagnostics.length;
9
+ return {
10
+ kind: "diagnostic_delta",
11
+ file,
12
+ displayPath,
13
+ usedDelta: result.usedDelta,
14
+ introducedCount,
15
+ repairedCount,
16
+ remainingCount,
17
+ fingerprint: fingerprintDiagnostics(result.newDiagnostics),
18
+ introducedDiagnostics,
19
+ repairedDiagnostics,
20
+ repair: {
21
+ shouldFollowUp: result.usedDelta && introducedCount > 0,
22
+ maxAttempts: DIAGNOSTIC_REPAIR_MAX_ATTEMPTS,
23
+ reason: result.usedDelta
24
+ ? "New diagnostics were introduced by this tool call."
25
+ : "Diagnostic baseline was unavailable, so diagnostics are not treated as agent-caused.",
26
+ },
27
+ };
28
+ }
29
+ export function formatDiagnosticDeltaForToolOutput(summary) {
30
+ if (summary.introducedCount === 0 && summary.repairedCount === 0) {
31
+ return "";
32
+ }
33
+ const lines = [
34
+ `Diagnostic delta: ${summary.introducedCount} introduced, ${summary.repairedCount} repaired, ${summary.remainingCount} remaining.`,
35
+ ];
36
+ if (summary.repair.shouldFollowUp) {
37
+ lines.push(`Self-repair guidance: treat only the ${summary.introducedCount} introduced diagnostic(s) above as caused by this ${summary.displayPath} edit/write. Repair them, run a focused read/diagnostic command, or explain why a safe repair is not possible. Stop after ${summary.repair.maxAttempts} unchanged attempt(s).`);
38
+ }
39
+ return lines.join("\n");
40
+ }
41
+ export function getDiagnosticDeltaFromToolResult(message) {
42
+ const details = message.details;
43
+ if (!details || typeof details !== "object") {
44
+ return undefined;
45
+ }
46
+ const diagnosticDelta = details.diagnosticDelta;
47
+ if (diagnosticDelta?.kind !== "diagnostic_delta") {
48
+ return undefined;
49
+ }
50
+ return diagnosticDelta;
51
+ }
52
+ export function buildDiagnosticRepairFollowUpMessage({ summary, toolName, toolCallId, attempt, }) {
53
+ const diagnosticLines = summary.introducedDiagnostics
54
+ .slice(0, 5)
55
+ .map((diagnostic) => `- ${diagnostic.severityLabel} ${summary.displayPath}:${diagnostic.line}:${diagnostic.column} ${diagnostic.message}`);
56
+ const moreCount = summary.introducedDiagnostics.length - diagnosticLines.length;
57
+ if (moreCount > 0) {
58
+ diagnosticLines.push(`- ...and ${moreCount} more introduced diagnostic(s).`);
59
+ }
60
+ return {
61
+ role: "user",
62
+ content: [
63
+ {
64
+ type: "text",
65
+ text: [
66
+ `The ${toolName} tool call ${toolCallId} introduced ${summary.introducedCount} new diagnostic(s) in ${summary.displayPath}.`,
67
+ `Automatic diagnostic repair attempt ${attempt}/${summary.repair.maxAttempts}.`,
68
+ "Decide the smallest safe next step: repair the introduced diagnostics, run a focused read/diagnostic command, explain why a repair is unsafe, or stop if the user's request is already complete.",
69
+ "Do not chase diagnostics that existed before this tool call, and do not repeat an unchanged repair attempt.",
70
+ diagnosticLines.join("\n"),
71
+ ]
72
+ .filter(Boolean)
73
+ .join("\n\n"),
74
+ },
75
+ ],
76
+ timestamp: Date.now(),
77
+ };
78
+ }
79
+ export function hasDiagnosticRepairOptOut(messages) {
80
+ const lastUser = [...messages]
81
+ .reverse()
82
+ .find((message) => message.role === "user");
83
+ if (!lastUser) {
84
+ return false;
85
+ }
86
+ const text = messageText(lastUser).toLowerCase();
87
+ return /\b(do not|don't|dont|no)\s+(continue|repair|fix|self[- ]?repair|auto[- ]?repair)\b/.test(text);
88
+ }
89
+ function structureDiagnostic(diagnostic) {
90
+ return {
91
+ message: diagnostic.message,
92
+ severity: diagnostic.severity,
93
+ severityLabel: severityLabel(diagnostic.severity),
94
+ source: diagnostic.source,
95
+ line: diagnostic.range.start.line + 1,
96
+ column: diagnostic.range.start.character + 1,
97
+ range: diagnostic.range,
98
+ };
99
+ }
100
+ function severityLabel(severity) {
101
+ switch (severity) {
102
+ case 1:
103
+ return "error";
104
+ case 2:
105
+ return "warning";
106
+ case 3:
107
+ return "information";
108
+ case 4:
109
+ return "hint";
110
+ default:
111
+ return "unknown";
112
+ }
113
+ }
114
+ function fingerprintDiagnostics(diagnostics) {
115
+ if (diagnostics.length === 0) {
116
+ return "none";
117
+ }
118
+ const payload = diagnostics
119
+ .map((diagnostic) => JSON.stringify({
120
+ severity: diagnostic.severity ?? null,
121
+ source: diagnostic.source ?? null,
122
+ message: diagnostic.message,
123
+ range: diagnostic.range,
124
+ }))
125
+ .sort()
126
+ .join("\n");
127
+ return createHash("sha256").update(payload).digest("hex").slice(0, 16);
128
+ }
129
+ function messageText(message) {
130
+ if (!("content" in message)) {
131
+ return "";
132
+ }
133
+ if (typeof message.content === "string") {
134
+ return message.content;
135
+ }
136
+ if (!Array.isArray(message.content)) {
137
+ return "";
138
+ }
139
+ return message.content
140
+ .map((part) => (part.type === "text" ? part.text : ""))
141
+ .join("\n");
142
+ }
143
+ //# sourceMappingURL=diagnostic-repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-repair.js","sourceRoot":"","sources":["../../src/lsp/diagnostic-repair.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport type { AppMessage, ToolResultMessage } from \"../agent/types.js\";\nimport type { DiagnosticDeltaResult } from \"./diagnostic-deltas.js\";\nimport type { LspDiagnostic } from \"./types.js\";\n\nexport const DIAGNOSTIC_REPAIR_MAX_ATTEMPTS = 2;\n\nexport type StructuredDiagnosticDeltaDiagnostic = {\n\tmessage: string;\n\tseverity: LspDiagnostic[\"severity\"];\n\tseverityLabel: \"error\" | \"warning\" | \"information\" | \"hint\" | \"unknown\";\n\tsource?: string;\n\tline: number;\n\tcolumn: number;\n\trange: LspDiagnostic[\"range\"];\n};\n\nexport type DiagnosticDeltaToolSummary = {\n\tkind: \"diagnostic_delta\";\n\tfile: string;\n\tdisplayPath: string;\n\tusedDelta: boolean;\n\tintroducedCount: number;\n\trepairedCount: number;\n\tremainingCount: number;\n\tfingerprint: string;\n\tintroducedDiagnostics: StructuredDiagnosticDeltaDiagnostic[];\n\trepairedDiagnostics: StructuredDiagnosticDeltaDiagnostic[];\n\trepair: {\n\t\tshouldFollowUp: boolean;\n\t\tmaxAttempts: number;\n\t\treason: string;\n\t};\n};\n\nexport type DiagnosticDeltaDetails = {\n\tdiagnosticDelta?: DiagnosticDeltaToolSummary;\n};\n\nexport function buildDiagnosticDeltaToolSummary({\n\tfile,\n\tdisplayPath,\n\tresult,\n}: {\n\tfile: string;\n\tdisplayPath: string;\n\tresult: DiagnosticDeltaResult;\n}): DiagnosticDeltaToolSummary {\n\tconst introducedDiagnostics = result.newDiagnostics.map(structureDiagnostic);\n\tconst repairedDiagnostics =\n\t\tresult.repairedDiagnostics.map(structureDiagnostic);\n\tconst introducedCount = introducedDiagnostics.length;\n\tconst repairedCount = repairedDiagnostics.length;\n\tconst remainingCount = result.fileDiagnostics.length;\n\n\treturn {\n\t\tkind: \"diagnostic_delta\",\n\t\tfile,\n\t\tdisplayPath,\n\t\tusedDelta: result.usedDelta,\n\t\tintroducedCount,\n\t\trepairedCount,\n\t\tremainingCount,\n\t\tfingerprint: fingerprintDiagnostics(result.newDiagnostics),\n\t\tintroducedDiagnostics,\n\t\trepairedDiagnostics,\n\t\trepair: {\n\t\t\tshouldFollowUp: result.usedDelta && introducedCount > 0,\n\t\t\tmaxAttempts: DIAGNOSTIC_REPAIR_MAX_ATTEMPTS,\n\t\t\treason: result.usedDelta\n\t\t\t\t? \"New diagnostics were introduced by this tool call.\"\n\t\t\t\t: \"Diagnostic baseline was unavailable, so diagnostics are not treated as agent-caused.\",\n\t\t},\n\t};\n}\n\nexport function formatDiagnosticDeltaForToolOutput(\n\tsummary: DiagnosticDeltaToolSummary,\n): string {\n\tif (summary.introducedCount === 0 && summary.repairedCount === 0) {\n\t\treturn \"\";\n\t}\n\n\tconst lines = [\n\t\t`Diagnostic delta: ${summary.introducedCount} introduced, ${summary.repairedCount} repaired, ${summary.remainingCount} remaining.`,\n\t];\n\n\tif (summary.repair.shouldFollowUp) {\n\t\tlines.push(\n\t\t\t`Self-repair guidance: treat only the ${summary.introducedCount} introduced diagnostic(s) above as caused by this ${summary.displayPath} edit/write. Repair them, run a focused read/diagnostic command, or explain why a safe repair is not possible. Stop after ${summary.repair.maxAttempts} unchanged attempt(s).`,\n\t\t);\n\t}\n\n\treturn lines.join(\"\\n\");\n}\n\nexport function getDiagnosticDeltaFromToolResult(\n\tmessage: ToolResultMessage,\n): DiagnosticDeltaToolSummary | undefined {\n\tconst details = message.details;\n\tif (!details || typeof details !== \"object\") {\n\t\treturn undefined;\n\t}\n\tconst diagnosticDelta = (details as DiagnosticDeltaDetails).diagnosticDelta;\n\tif (diagnosticDelta?.kind !== \"diagnostic_delta\") {\n\t\treturn undefined;\n\t}\n\treturn diagnosticDelta;\n}\n\nexport function buildDiagnosticRepairFollowUpMessage({\n\tsummary,\n\ttoolName,\n\ttoolCallId,\n\tattempt,\n}: {\n\tsummary: DiagnosticDeltaToolSummary;\n\ttoolName: string;\n\ttoolCallId: string;\n\tattempt: number;\n}): AppMessage {\n\tconst diagnosticLines = summary.introducedDiagnostics\n\t\t.slice(0, 5)\n\t\t.map(\n\t\t\t(diagnostic) =>\n\t\t\t\t`- ${diagnostic.severityLabel} ${summary.displayPath}:${diagnostic.line}:${diagnostic.column} ${diagnostic.message}`,\n\t\t);\n\tconst moreCount =\n\t\tsummary.introducedDiagnostics.length - diagnosticLines.length;\n\tif (moreCount > 0) {\n\t\tdiagnosticLines.push(\n\t\t\t`- ...and ${moreCount} more introduced diagnostic(s).`,\n\t\t);\n\t}\n\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: [\n\t\t\t\t\t`The ${toolName} tool call ${toolCallId} introduced ${summary.introducedCount} new diagnostic(s) in ${summary.displayPath}.`,\n\t\t\t\t\t`Automatic diagnostic repair attempt ${attempt}/${summary.repair.maxAttempts}.`,\n\t\t\t\t\t\"Decide the smallest safe next step: repair the introduced diagnostics, run a focused read/diagnostic command, explain why a repair is unsafe, or stop if the user's request is already complete.\",\n\t\t\t\t\t\"Do not chase diagnostics that existed before this tool call, and do not repeat an unchanged repair attempt.\",\n\t\t\t\t\tdiagnosticLines.join(\"\\n\"),\n\t\t\t\t]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(\"\\n\\n\"),\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nexport function hasDiagnosticRepairOptOut(messages: AppMessage[]): boolean {\n\tconst lastUser = [...messages]\n\t\t.reverse()\n\t\t.find((message) => message.role === \"user\");\n\tif (!lastUser) {\n\t\treturn false;\n\t}\n\tconst text = messageText(lastUser).toLowerCase();\n\treturn /\\b(do not|don't|dont|no)\\s+(continue|repair|fix|self[- ]?repair|auto[- ]?repair)\\b/.test(\n\t\ttext,\n\t);\n}\n\nfunction structureDiagnostic(\n\tdiagnostic: LspDiagnostic,\n): StructuredDiagnosticDeltaDiagnostic {\n\treturn {\n\t\tmessage: diagnostic.message,\n\t\tseverity: diagnostic.severity,\n\t\tseverityLabel: severityLabel(diagnostic.severity),\n\t\tsource: diagnostic.source,\n\t\tline: diagnostic.range.start.line + 1,\n\t\tcolumn: diagnostic.range.start.character + 1,\n\t\trange: diagnostic.range,\n\t};\n}\n\nfunction severityLabel(\n\tseverity: LspDiagnostic[\"severity\"],\n): StructuredDiagnosticDeltaDiagnostic[\"severityLabel\"] {\n\tswitch (severity) {\n\t\tcase 1:\n\t\t\treturn \"error\";\n\t\tcase 2:\n\t\t\treturn \"warning\";\n\t\tcase 3:\n\t\t\treturn \"information\";\n\t\tcase 4:\n\t\t\treturn \"hint\";\n\t\tdefault:\n\t\t\treturn \"unknown\";\n\t}\n}\n\nfunction fingerprintDiagnostics(diagnostics: LspDiagnostic[]): string {\n\tif (diagnostics.length === 0) {\n\t\treturn \"none\";\n\t}\n\tconst payload = diagnostics\n\t\t.map((diagnostic) =>\n\t\t\tJSON.stringify({\n\t\t\t\tseverity: diagnostic.severity ?? null,\n\t\t\t\tsource: diagnostic.source ?? null,\n\t\t\t\tmessage: diagnostic.message,\n\t\t\t\trange: diagnostic.range,\n\t\t\t}),\n\t\t)\n\t\t.sort()\n\t\t.join(\"\\n\");\n\treturn createHash(\"sha256\").update(payload).digest(\"hex\").slice(0, 16);\n}\n\nfunction messageText(message: AppMessage): string {\n\tif (!(\"content\" in message)) {\n\t\treturn \"\";\n\t}\n\tif (typeof message.content === \"string\") {\n\t\treturn message.content;\n\t}\n\tif (!Array.isArray(message.content)) {\n\t\treturn \"\";\n\t}\n\treturn message.content\n\t\t.map((part) => (part.type === \"text\" ? part.text : \"\"))\n\t\t.join(\"\\n\");\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AAmTH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBAy4BxC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AA4TH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBAm+BxC"}
package/dist/main.js CHANGED
@@ -86,13 +86,14 @@
86
86
  *
87
87
  * @module main
88
88
  */
89
+ import { createRequire } from "node:module";
89
90
  import chalk from "chalk";
90
- import { ActionApprovalService, } from "./agent/action-approval.js";
91
91
  import { createBackgroundTextAgent } from "./agent/background-agent.js";
92
92
  import { isAssistantMessage, } from "./agent/index.js";
93
93
  import { applySessionEndHooks } from "./agent/session-lifecycle-hooks.js";
94
94
  import { ToolRetryService } from "./agent/tool-retry.js";
95
95
  import { applySessionStartHooks, runUserPromptWithRecovery, } from "./agent/user-prompt-runtime.js";
96
+ import { PlatformBackedActionApprovalService } from "./approvals/platform-action-approval.js";
96
97
  import { createAuthSetup, validateCodexFlags } from "./bootstrap/auth-setup.js";
97
98
  import { disposeCheckpointService, initCheckpointService, } from "./checkpoints/index.js";
98
99
  import { TuiClientToolService } from "./cli-tui/client-tools/local-client-tool-service.js";
@@ -114,7 +115,6 @@ import { createAutomaticMemoryExtractionCoordinator, getMemoryExtractionSystemPr
114
115
  import { ensureModelsLoaded } from "./models/builtin.js";
115
116
  import { reloadModelConfig } from "./models/registry.js";
116
117
  import { initOpenTelemetry } from "./opentelemetry.js";
117
- import { getPackageVersion } from "./package-metadata.js";
118
118
  import { resolveMaestroSystemPrompt } from "./prompts/system-prompt.js";
119
119
  import { AgentRuntimeController } from "./runtime/agent-runtime.js";
120
120
  import { registerBackgroundTaskShutdownHooks } from "./runtime/background-task-hooks.js";
@@ -124,8 +124,15 @@ import { clientToolService } from "./server/client-tools-service.js";
124
124
  import { ServerRequestToolRetryService } from "./server/tool-retry-service.js";
125
125
  import { SessionManager } from "./session/manager.js";
126
126
  import { askUserClientTool } from "./tools/ask-user-client.js";
127
+ import { createStartupProfilerFromEnv } from "./utils/checkpoint-profiler.js";
127
128
  import { isInsideGitRepository } from "./utils/git.js";
128
- const VERSION = getPackageVersion();
129
+ /**
130
+ * Load version from package.json at runtime.
131
+ * Uses Node's createRequire for compatibility with ESM imports
132
+ * (avoids experimental import assertions syntax).
133
+ */
134
+ const packageJson = createRequire(import.meta.url)("../package.json");
135
+ const VERSION = packageJson.version ?? "unknown";
129
136
  let enterpriseCleanupRegistered = false;
130
137
  let checkpointCleanupRegistered = false;
131
138
  let sandboxCleanupRegistered = false;
@@ -327,8 +334,11 @@ export async function main(args) {
327
334
  // ─────────────────────────────────────────────────────────────────────────────
328
335
  // Load environment variables from .env files (project and user level)
329
336
  loadEnv();
337
+ const startupProfiler = createStartupProfilerFromEnv();
338
+ startupProfiler.checkpoint("process:start");
330
339
  // Parse arguments early to check for version/help flags before heavy initialization
331
340
  const parsed = parseArgs(args);
341
+ startupProfiler.checkpoint("cli:parsed");
332
342
  // Handle --version early exit (before any async operations)
333
343
  if (parsed.version) {
334
344
  console.log(`Maestro v${VERSION}`);
@@ -343,6 +353,15 @@ export async function main(args) {
343
353
  console.error(chalk.red(parsed.error));
344
354
  process.exit(1);
345
355
  }
356
+ // Handle `maestro hosted-runner` before importing web-server so hosted
357
+ // defaults are visible to its module-level runtime profile.
358
+ if (parsed.command === "hosted-runner") {
359
+ const { handleHostedRunnerCommand } = await import("./cli/commands/hosted-runner.js");
360
+ await handleHostedRunnerCommand(parsed.commandArgs ?? [], {
361
+ defaultPort: parsed.port,
362
+ });
363
+ return;
364
+ }
346
365
  // Handle `maestro web` early exit (start the bundled web server + UI).
347
366
  if (parsed.command === "web") {
348
367
  if (parsed.messages.length > 0) {
@@ -350,19 +369,15 @@ export async function main(args) {
350
369
  process.exit(1);
351
370
  }
352
371
  const { startWebServer } = await import("./web-server.js");
372
+ const { migrate } = await import("./db/migrate.js");
353
373
  const port = parsed.port ?? (Number.parseInt(process.env.PORT || "8080", 10) || 8080);
354
- await startWebServer(port);
374
+ await migrate();
375
+ await startWebServer(port, { skipStartupMigration: true });
355
376
  return;
356
377
  }
357
- const runtimeConfig = loadRuntimeConfig(parsed, process.cwd());
358
- const reasoningSummary = runtimeConfig.config.model_supports_reasoning_summaries === false
359
- ? undefined
360
- : runtimeConfig.config.model_reasoning_summary === "none"
361
- ? null
362
- : runtimeConfig.config.model_reasoning_summary;
363
378
  // If we're about to enter interactive TUI mode (no prompt messages and not RPC/exec),
364
379
  // or headless mode (stdout is JSON-only), redirect all logging/console output to a file.
365
- // This must run before model loading to catch any early warnings.
380
+ // This must run before config/model loading to catch any early warnings.
366
381
  const isLikelyInteractiveTui = !parsed.messages.length &&
367
382
  (parsed.mode === "text" || parsed.mode === undefined) &&
368
383
  parsed.command === undefined;
@@ -370,15 +385,35 @@ export async function main(args) {
370
385
  if (isLikelyInteractiveTui || isHeadlessMode) {
371
386
  const { redirectLoggerToFile, redirectConsoleToLogger, redirectStderrToLogger, pipeProcessEventsToLogger, } = await import("./utils/logger.js");
372
387
  redirectLoggerToFile();
373
- redirectConsoleToLogger();
374
- redirectStderrToLogger();
388
+ redirectConsoleToLogger({ preserveErrorStderr: isHeadlessMode });
389
+ if (!isHeadlessMode) {
390
+ redirectStderrToLogger();
391
+ }
375
392
  pipeProcessEventsToLogger();
376
393
  }
377
- const startupProfilingEnabled = process.env.MAESTRO_STARTUP_PROFILE === "1";
378
- const logStartupPhase = (label, startedAt) => {
379
- if (!startupProfilingEnabled)
380
- return;
381
- console.error(`[startup] ${label}: ${Math.round(performance.now() - startedAt)}ms`);
394
+ const runtimeConfig = loadRuntimeConfig(parsed, process.cwd());
395
+ startupProfiler.checkpoint("config:loaded");
396
+ const reasoningSummary = runtimeConfig.config.model_supports_reasoning_summaries === false
397
+ ? undefined
398
+ : runtimeConfig.config.model_reasoning_summary === "none"
399
+ ? null
400
+ : runtimeConfig.config.model_reasoning_summary;
401
+ const exitWithStartupError = (error) => {
402
+ const message = error instanceof Error ? error.message : String(error);
403
+ const stack = error instanceof Error ? error.stack : undefined;
404
+ if (isHeadlessMode) {
405
+ process.stdout.write(`${JSON.stringify({
406
+ type: "error",
407
+ message: `Headless startup failed: ${message}`,
408
+ fatal: true,
409
+ error_type: "fatal",
410
+ })}\n`);
411
+ process.stderr.write(`${stack ?? message}\n`);
412
+ }
413
+ else {
414
+ console.error(chalk.red(message));
415
+ }
416
+ process.exit(1);
382
417
  };
383
418
  // ─────────────────────────────────────────────────────────────────────────────
384
419
  // PHASE 1: Environment and Telemetry Initialization
@@ -386,17 +421,14 @@ export async function main(args) {
386
421
  // Initialize OpenTelemetry tracing for observability
387
422
  // This is non-blocking (void) to avoid startup latency
388
423
  void initOpenTelemetry("composer-cli");
389
- const bootstrapParallelStart = performance.now();
390
424
  const modelLoadPromise = (async () => {
391
- const startedAt = performance.now();
392
425
  await ensureModelsLoaded();
393
- logStartupPhase("models.loaded", startedAt);
426
+ startupProfiler.checkpoint("models:loaded");
394
427
  })();
395
428
  const enterpriseContextPromise = (async () => {
396
- const startedAt = performance.now();
397
429
  const { enterpriseContext } = await import("./enterprise/context.js");
398
430
  await enterpriseContext.initialize();
399
- logStartupPhase("enterprise.initialized", startedAt);
431
+ startupProfiler.checkpoint("enterprise:initialized");
400
432
  return enterpriseContext;
401
433
  })();
402
434
  // Pre-load model registry and enterprise context in parallel. These are
@@ -405,7 +437,7 @@ export async function main(args) {
405
437
  enterpriseContextPromise,
406
438
  modelLoadPromise,
407
439
  ]);
408
- logStartupPhase("bootstrap.parallel", bootstrapParallelStart);
440
+ startupProfiler.checkpoint("bootstrap:parallel");
409
441
  // ─────────────────────────────────────────────────────────────────────────────
410
442
  // PHASE 2: Enterprise Context Initialization
411
443
  // ─────────────────────────────────────────────────────────────────────────────
@@ -453,24 +485,22 @@ export async function main(args) {
453
485
  validateCodexFlags(args, parsed.command);
454
486
  }
455
487
  catch (error) {
456
- console.error(chalk.red(error instanceof Error ? error.message : String(error)));
457
- process.exit(1);
488
+ exitWithStartupError(error);
458
489
  }
459
490
  const { requireCredential } = createAuthSetup({
460
491
  authMode,
461
492
  explicitApiKey: parsed.apiKey,
462
493
  });
494
+ startupProfiler.checkpoint("auth:configured");
463
495
  if (parsed.command === "exec") {
464
496
  if (parsed.execFullAuto && parsed.execReadOnly) {
465
- console.error(chalk.red("Cannot combine --full-auto with --read-only in maestro exec."));
466
- process.exit(1);
497
+ exitWithStartupError("Cannot combine --full-auto with --read-only in maestro exec.");
467
498
  }
468
499
  }
469
500
  // Validate sandbox mode (applies to both exec and interactive modes)
470
501
  const validSandboxModes = ["docker", "local", "none"];
471
502
  if (parsed.sandbox && !validSandboxModes.includes(parsed.sandbox)) {
472
- console.error(chalk.red(`Unknown sandbox mode "${parsed.sandbox}". Supported: ${validSandboxModes.join(", ")}`));
473
- process.exit(1);
503
+ exitWithStartupError(`Unknown sandbox mode "${parsed.sandbox}". Supported: ${validSandboxModes.join(", ")}`);
474
504
  }
475
505
  // ─────────────────────────────────────────────────────────────────────────────
476
506
  // PHASE 5: Safety, LSP, and Checkpointing
@@ -502,6 +532,7 @@ export async function main(args) {
502
532
  process.once("SIGTERM", disposeCheckpoint);
503
533
  checkpointCleanupRegistered = true;
504
534
  }
535
+ startupProfiler.checkpoint("runtime:prepared");
505
536
  // ─────────────────────────────────────────────────────────────────────────────
506
537
  // Early Exit: Help Command
507
538
  // ─────────────────────────────────────────────────────────────────────────────
@@ -540,6 +571,21 @@ export async function main(args) {
540
571
  await handleOpenAICommand(parsed.subcommand, parsed.messages);
541
572
  return;
542
573
  }
574
+ if (parsed.command === "evalops") {
575
+ const { handleEvalOpsCommand } = await import("./cli/commands/evalops.js");
576
+ await handleEvalOpsCommand(parsed.subcommand);
577
+ return;
578
+ }
579
+ if (parsed.command === "init") {
580
+ const { handleInitCommand } = await import("./cli/commands/init.js");
581
+ await handleInitCommand(parsed.commandArgs ?? []);
582
+ return;
583
+ }
584
+ if (parsed.command === "codex") {
585
+ const { handleCodexCommand } = await import("./cli/commands/codex.js");
586
+ await handleCodexCommand(parsed.subcommand, parsed.messages);
587
+ return;
588
+ }
543
589
  if (parsed.command === "hooks") {
544
590
  const { handleHooksCommand } = await import("./cli/commands/hooks.js");
545
591
  await handleHooksCommand(parsed.subcommand);
@@ -560,6 +606,11 @@ export async function main(args) {
560
606
  await handleMemoryCommand(parsed.subcommand, parsed.messages);
561
607
  return;
562
608
  }
609
+ if (parsed.command === "remote") {
610
+ const { handleRemoteCommand } = await import("./cli/commands/remote.js");
611
+ await handleRemoteCommand(parsed.subcommand, parsed.commandArgs ?? []);
612
+ return;
613
+ }
563
614
  if (parsed.command === "anthropic") {
564
615
  const { handleAnthropicCommand } = await import("./cli/commands/anthropic.js");
565
616
  await handleAnthropicCommand(parsed.subcommand, parsed.messages);
@@ -599,6 +650,34 @@ export async function main(args) {
599
650
  process.exit(1);
600
651
  }
601
652
  }
653
+ if (parsed.command === "stats") {
654
+ const { handleStatsCommand } = await import("./cli/commands/stats.js");
655
+ switch (parsed.subcommand) {
656
+ case undefined:
657
+ case "today":
658
+ case "yesterday":
659
+ case "week":
660
+ case "7d":
661
+ case "month":
662
+ case "30d":
663
+ case "all":
664
+ await handleStatsCommand(parsed.subcommand, {
665
+ sessionId: parsed.session,
666
+ format: parsed.exportFormat,
667
+ });
668
+ return;
669
+ default:
670
+ console.error(chalk.red(`Unknown stats subcommand: ${parsed.subcommand}`));
671
+ console.log(chalk.dim("\nAvailable commands:"));
672
+ console.log(chalk.dim(" maestro stats - Show last 7 days"));
673
+ console.log(chalk.dim(" maestro stats --session <id> - Show one session"));
674
+ console.log(chalk.dim(" maestro stats today - Show today"));
675
+ console.log(chalk.dim(" maestro stats month - Show last 30 days"));
676
+ console.log(chalk.dim(" maestro stats all - Show all time"));
677
+ console.log(chalk.dim(" maestro stats --format json|csv - Export usage data"));
678
+ process.exit(1);
679
+ }
680
+ }
602
681
  // Handle models commands
603
682
  if (parsed.command === "models") {
604
683
  const { handleModelsList, handleModelsProviders } = await import("./cli/commands/models.js");
@@ -660,6 +739,7 @@ export async function main(args) {
660
739
  // - Model/thinking level tracking across restarts
661
740
  const sessionManager = new SessionManager(parsed.continue && !parsed.resume, // continueSession: auto-load most recent
662
741
  parsed.session);
742
+ startupProfiler.checkpoint("session:created");
663
743
  let execResumeApplied = false;
664
744
  if (parsed.command === "exec") {
665
745
  let targetPath = null;
@@ -712,8 +792,7 @@ export async function main(args) {
712
792
  model = resolved.model;
713
793
  }
714
794
  catch (error) {
715
- console.error(chalk.red(error instanceof Error ? error.message : String(error)));
716
- process.exit(1);
795
+ exitWithStartupError(error);
717
796
  }
718
797
  // ─────────────────────────────────────────────────────────────────────────────
719
798
  // PHASE 9: System Prompt and Tool Configuration
@@ -729,6 +808,9 @@ export async function main(args) {
729
808
  toolNames: systemPromptToolNames,
730
809
  appendPrompt: parsed.appendSystemPrompt,
731
810
  });
811
+ startupProfiler.checkpoint("prompt:assembled", {
812
+ system_bytes: systemPrompt.length,
813
+ });
732
814
  const systemPromptSourcePaths = resolveExplicitSystemPromptSourcePaths(parsed.systemPrompt, parsed.appendSystemPrompt);
733
815
  // Determine approval mode for tool execution:
734
816
  // - "prompt": Ask user before each tool execution (default for interactive)
@@ -751,7 +833,9 @@ export async function main(args) {
751
833
  // Create approval service that controls tool execution authorization
752
834
  const approvalService = isHeadlessMode
753
835
  ? new ServerRequestActionApprovalService(approvalModeOverride, () => sessionManager.getSessionId() ?? undefined)
754
- : new ActionApprovalService(approvalModeOverride);
836
+ : new PlatformBackedActionApprovalService(approvalModeOverride, {
837
+ sessionIdProvider: () => sessionManager.getSessionId() ?? undefined,
838
+ });
755
839
  const headlessClientToolService = isHeadlessMode
756
840
  ? clientToolService.forSession(() => sessionManager.getSessionId() ?? undefined)
757
841
  : undefined;
@@ -775,10 +859,10 @@ export async function main(args) {
775
859
  });
776
860
  }
777
861
  catch (error) {
778
- console.error(chalk.red(error instanceof Error ? error.message : String(error)));
779
- process.exit(1);
862
+ exitWithStartupError(error);
780
863
  }
781
864
  const { allTools, sandbox, sandboxMode } = toolsResult;
865
+ startupProfiler.checkpoint("tools:prepared", { tools: allTools.length });
782
866
  const useInteractiveClientTools = Boolean(interactiveClientToolService);
783
867
  const replaceAskUserTool = (tools) => tools.map((tool) => tool.name === "ask_user" ? askUserClientTool : tool);
784
868
  const configuredAllTools = useInteractiveClientTools
@@ -828,6 +912,7 @@ export async function main(args) {
828
912
  cwd: process.cwd(),
829
913
  });
830
914
  setTaskBudgetTotal(agent, parsed.taskBudget);
915
+ startupProfiler.checkpoint("agent:ready");
831
916
  // ─────────────────────────────────────────────────────────────────────────────
832
917
  // PHASE 11.5: TypeScript Hooks Initialization
833
918
  // ─────────────────────────────────────────────────────────────────────────────
@@ -841,14 +926,13 @@ export async function main(args) {
841
926
  // ─────────────────────────────────────────────────────────────────────────────
842
927
  // PHASE 12: MCP (Model Context Protocol) Integration
843
928
  // ─────────────────────────────────────────────────────────────────────────────
844
- const mcpInitStartedAt = performance.now();
845
929
  const { initializeMcpServers } = await import("./bootstrap/mcp-setup.js");
846
930
  initializeMcpServers({
847
931
  agent,
848
932
  baseTools: configuredAllTools,
849
933
  cwd: process.cwd(),
850
934
  });
851
- logStartupPhase("mcp.bootstrap_queued", mcpInitStartedAt);
935
+ startupProfiler.checkpoint("mcp:bootstrap_queued");
852
936
  // Determine mode early to know if we should print messages
853
937
  const isInteractive = parsed.messages.length === 0;
854
938
  const mode = parsed.mode || "text";
@@ -939,6 +1023,7 @@ export async function main(args) {
939
1023
  // 5. Single-shot: Process CLI messages and exit
940
1024
  try {
941
1025
  if (agentsInitPrompt) {
1026
+ startupProfiler.terminal("exec:ready", { mode: "agents" });
942
1027
  const cwd = process.cwd();
943
1028
  const targetPath = agentsInitPath ?? "AGENTS.md";
944
1029
  const displayPath = targetPath.startsWith(cwd) && targetPath !== cwd
@@ -951,15 +1036,18 @@ export async function main(args) {
951
1036
  }
952
1037
  else if (mode === "headless" || parsed.headless) {
953
1038
  // Headless mode - for native TUI communication
1039
+ startupProfiler.terminal("headless:ready");
954
1040
  await runHeadlessMode(agent, sessionManager, approvalService, toolRetryService);
955
1041
  }
956
1042
  else if (mode === "rpc") {
957
1043
  // RPC mode - headless operation
1044
+ startupProfiler.terminal("rpc:ready");
958
1045
  const { runRpcMode } = await import("./cli/rpc-mode.js");
959
1046
  await runRpcMode(agent, sessionManager);
960
1047
  }
961
1048
  else if (isInteractive) {
962
1049
  // No messages and not RPC - use TUI
1050
+ startupProfiler.terminal("ui:ready");
963
1051
  await runInteractiveMode(agent, sessionManager, VERSION, approvalService, toolRetryService, parsed.apiKey, {
964
1052
  clientToolService: interactiveClientToolService,
965
1053
  modelScope: scopedModels,
@@ -968,6 +1056,7 @@ export async function main(args) {
968
1056
  });
969
1057
  }
970
1058
  else if (parsed.command === "exec") {
1059
+ startupProfiler.terminal("exec:ready");
971
1060
  await runExecCommand({
972
1061
  agent,
973
1062
  sessionManager,
@@ -980,6 +1069,7 @@ export async function main(args) {
980
1069
  }
981
1070
  else {
982
1071
  // CLI mode with messages
1072
+ startupProfiler.terminal("cli:ready");
983
1073
  await runSingleShotMode(agent, sessionManager, parsed.messages, mode);
984
1074
  }
985
1075
  }