@evalops/maestro 0.10.22 → 0.10.24

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 (387) hide show
  1. package/README.md +4 -4
  2. package/dist/agent/agent.d.ts +2 -2
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +1 -1
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/keys.d.ts +2 -5
  7. package/dist/agent/keys.d.ts.map +1 -1
  8. package/dist/agent/keys.js +4 -5
  9. package/dist/agent/keys.js.map +1 -1
  10. package/dist/agent/modes.d.ts +2 -2
  11. package/dist/agent/modes.d.ts.map +1 -1
  12. package/dist/agent/modes.js +6 -7
  13. package/dist/agent/modes.js.map +1 -1
  14. package/dist/agent/providers/anthropic.d.ts.map +1 -1
  15. package/dist/agent/providers/anthropic.js +4 -4
  16. package/dist/agent/providers/anthropic.js.map +1 -1
  17. package/dist/agent/providers/google.js +1 -1
  18. package/dist/agent/swarm/executor.d.ts +2 -0
  19. package/dist/agent/swarm/executor.d.ts.map +1 -1
  20. package/dist/agent/swarm/executor.js +208 -35
  21. package/dist/agent/swarm/executor.js.map +1 -1
  22. package/dist/agent/swarm/types.d.ts +2 -0
  23. package/dist/agent/swarm/types.d.ts.map +1 -1
  24. package/dist/agent/swarm/types.js.map +1 -1
  25. package/dist/agent/tool-capability-types.d.ts +36 -0
  26. package/dist/agent/tool-capability-types.d.ts.map +1 -0
  27. package/dist/agent/tool-capability-types.js +2 -0
  28. package/dist/agent/tool-capability-types.js.map +1 -0
  29. package/dist/agent/transport/tool-execution-bridge.d.ts +13 -0
  30. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  31. package/dist/agent/transport/tool-execution-bridge.js +28 -15
  32. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  33. package/dist/agent/transport/transport-utils.d.ts.map +1 -1
  34. package/dist/agent/transport/transport-utils.js +2 -3
  35. package/dist/agent/transport/transport-utils.js.map +1 -1
  36. package/dist/agent/transport.js +1 -1
  37. package/dist/agent/transport.js.map +1 -1
  38. package/dist/agent/type-guards.d.ts +1 -1
  39. package/dist/agent/type-guards.js +1 -1
  40. package/dist/agent/type-guards.js.map +1 -1
  41. package/dist/agent/types.d.ts +5 -3
  42. package/dist/agent/types.d.ts.map +1 -1
  43. package/dist/agent/types.js +2 -2
  44. package/dist/agent/types.js.map +1 -1
  45. package/dist/app-server/daemon-lifecycle-api.d.ts +31 -0
  46. package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -0
  47. package/dist/app-server/daemon-lifecycle-api.js +259 -0
  48. package/dist/app-server/daemon-lifecycle-api.js.map +1 -0
  49. package/dist/app-server/external-agent-import-api.d.ts +30 -0
  50. package/dist/app-server/external-agent-import-api.d.ts.map +1 -0
  51. package/dist/app-server/external-agent-import-api.js +553 -0
  52. package/dist/app-server/external-agent-import-api.js.map +1 -0
  53. package/dist/app-server/host-control-api.d.ts +30 -0
  54. package/dist/app-server/host-control-api.d.ts.map +1 -0
  55. package/dist/app-server/host-control-api.js +343 -0
  56. package/dist/app-server/host-control-api.js.map +1 -0
  57. package/dist/app-server/in-process-client.d.ts +2 -2
  58. package/dist/app-server/in-process-client.d.ts.map +1 -1
  59. package/dist/app-server/in-process-client.js.map +1 -1
  60. package/dist/app-server/network-governance-api.d.ts +26 -0
  61. package/dist/app-server/network-governance-api.d.ts.map +1 -0
  62. package/dist/app-server/network-governance-api.js +476 -0
  63. package/dist/app-server/network-governance-api.js.map +1 -0
  64. package/dist/app-server/plugin-bundle-api.d.ts +17 -0
  65. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -0
  66. package/dist/app-server/plugin-bundle-api.js +219 -0
  67. package/dist/app-server/plugin-bundle-api.js.map +1 -0
  68. package/dist/app-server/policy-control-api.d.ts +14 -0
  69. package/dist/app-server/policy-control-api.d.ts.map +1 -0
  70. package/dist/app-server/policy-control-api.js +200 -0
  71. package/dist/app-server/policy-control-api.js.map +1 -0
  72. package/dist/app-server/protocol-modes-api.d.ts +22 -0
  73. package/dist/app-server/protocol-modes-api.d.ts.map +1 -0
  74. package/dist/app-server/protocol-modes-api.js +124 -0
  75. package/dist/app-server/protocol-modes-api.js.map +1 -0
  76. package/dist/app-server/sandbox-proof-api.d.ts +21 -0
  77. package/dist/app-server/sandbox-proof-api.d.ts.map +1 -0
  78. package/dist/app-server/sandbox-proof-api.js +127 -0
  79. package/dist/app-server/sandbox-proof-api.js.map +1 -0
  80. package/dist/app-server/session-api.d.ts +93 -3
  81. package/dist/app-server/session-api.d.ts.map +1 -1
  82. package/dist/app-server/session-api.js +706 -18
  83. package/dist/app-server/session-api.js.map +1 -1
  84. package/dist/audit/logger.d.ts +1 -1
  85. package/dist/bootstrap/auth-setup.d.ts.map +1 -1
  86. package/dist/bootstrap/auth-setup.js +17 -2
  87. package/dist/bootstrap/auth-setup.js.map +1 -1
  88. package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
  89. package/dist/bootstrap/model-resolution-setup.js +19 -4
  90. package/dist/bootstrap/model-resolution-setup.js.map +1 -1
  91. package/dist/cli/args.d.ts +2 -2
  92. package/dist/cli/args.d.ts.map +1 -1
  93. package/dist/cli/args.js +2 -2
  94. package/dist/cli/args.js.map +1 -1
  95. package/dist/cli/commands/a2a.d.ts.map +1 -1
  96. package/dist/cli/commands/a2a.js +226 -14
  97. package/dist/cli/commands/a2a.js.map +1 -1
  98. package/dist/cli/commands/anthropic.d.ts +1 -1
  99. package/dist/cli/commands/anthropic.d.ts.map +1 -1
  100. package/dist/cli/commands/anthropic.js +3 -68
  101. package/dist/cli/commands/anthropic.js.map +1 -1
  102. package/dist/cli/commands/modes.js +1 -1
  103. package/dist/cli/commands/modes.js.map +1 -1
  104. package/dist/cli/help.d.ts.map +1 -1
  105. package/dist/cli/help.js +5 -7
  106. package/dist/cli/help.js.map +1 -1
  107. package/dist/cli/rpc-mode.d.ts +1 -1
  108. package/dist/cli/rpc-mode.js +1 -1
  109. package/dist/cli/rpc-mode.js.map +1 -1
  110. package/dist/cli/session.js +1 -1
  111. package/dist/cli/session.js.map +1 -1
  112. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
  113. package/dist/cli-tui/commands/command-catalog.js +7 -12
  114. package/dist/cli-tui/commands/command-catalog.js.map +1 -1
  115. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +1 -1
  116. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +1 -1
  117. package/dist/cli-tui/commands/subcommands/auth-commands.js +4 -12
  118. package/dist/cli-tui/commands/subcommands/auth-commands.js.map +1 -1
  119. package/dist/cli-tui/custom-editor.d.ts +1 -1
  120. package/dist/cli-tui/custom-editor.js +2 -2
  121. package/dist/cli-tui/custom-editor.js.map +1 -1
  122. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +1 -1
  123. package/dist/cli-tui/oauth/oauth-flow-controller.js +19 -23
  124. package/dist/cli-tui/oauth/oauth-flow-controller.js.map +1 -1
  125. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  126. package/dist/cli-tui/selectors/model-selector.js +0 -1
  127. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  128. package/dist/cli-tui/selectors/oauth-selector-view.d.ts +2 -2
  129. package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +1 -1
  130. package/dist/cli-tui/selectors/oauth-selector-view.js.map +1 -1
  131. package/dist/cli-tui/selectors/oauth-selector.d.ts +2 -2
  132. package/dist/cli-tui/selectors/oauth-selector.d.ts.map +1 -1
  133. package/dist/cli-tui/selectors/oauth-selector.js +3 -4
  134. package/dist/cli-tui/selectors/oauth-selector.js.map +1 -1
  135. package/dist/cli-tui/tui-renderer/mcp-events-setup.js +1 -1
  136. package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +1 -1
  137. package/dist/cli-tui/tui-renderer.js +2 -2
  138. package/dist/cli-tui/tui-renderer.js.map +1 -1
  139. package/dist/cli-tui/utils/footer-utils.d.ts +1 -1
  140. package/dist/cli-tui/utils/footer-utils.js +1 -1
  141. package/dist/cli-tui/utils/footer-utils.js.map +1 -1
  142. package/dist/cli.js +15171 -14298
  143. package/dist/commands/prompts.d.ts +1 -1
  144. package/dist/commands/prompts.js +1 -1
  145. package/dist/commands/prompts.js.map +1 -1
  146. package/dist/config/constants.d.ts +2 -2
  147. package/dist/config/constants.d.ts.map +1 -1
  148. package/dist/config/constants.js +2 -2
  149. package/dist/config/constants.js.map +1 -1
  150. package/dist/config/index.d.ts +1 -1
  151. package/dist/config/index.js +1 -1
  152. package/dist/config/index.js.map +1 -1
  153. package/dist/config/toml-config.js +3 -3
  154. package/dist/config/toml-config.js.map +1 -1
  155. package/dist/db/client.d.ts +2 -2
  156. package/dist/db/client.js +2 -2
  157. package/dist/db/client.js.map +1 -1
  158. package/dist/db/migrate.d.ts +1 -1
  159. package/dist/db/migrate.js +1 -1
  160. package/dist/db/migrate.js.map +1 -1
  161. package/dist/db/schema.d.ts +2 -2
  162. package/dist/db/schema.js +1 -1
  163. package/dist/db/schema.js.map +1 -1
  164. package/dist/errors/index.d.ts +2 -2
  165. package/dist/errors/index.js +2 -2
  166. package/dist/errors/index.js.map +1 -1
  167. package/dist/main.d.ts +4 -5
  168. package/dist/main.d.ts.map +1 -1
  169. package/dist/main.js +17 -14
  170. package/dist/main.js.map +1 -1
  171. package/dist/mcp/config.d.ts +15 -2
  172. package/dist/mcp/config.d.ts.map +1 -1
  173. package/dist/mcp/config.js +50 -26
  174. package/dist/mcp/config.js.map +1 -1
  175. package/dist/mcp/fathom-cua.d.ts.map +1 -1
  176. package/dist/mcp/fathom-cua.js +10 -0
  177. package/dist/mcp/fathom-cua.js.map +1 -1
  178. package/dist/mcp/manager.d.ts.map +1 -1
  179. package/dist/mcp/manager.js +32 -1
  180. package/dist/mcp/manager.js.map +1 -1
  181. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  182. package/dist/mcp/tool-bridge.js +12 -3
  183. package/dist/mcp/tool-bridge.js.map +1 -1
  184. package/dist/mcp/tool-capabilities.d.ts +5 -0
  185. package/dist/mcp/tool-capabilities.d.ts.map +1 -0
  186. package/dist/mcp/tool-capabilities.js +271 -0
  187. package/dist/mcp/tool-capabilities.js.map +1 -0
  188. package/dist/mcp/types.d.ts +6 -1
  189. package/dist/mcp/types.d.ts.map +1 -1
  190. package/dist/mcp/types.js.map +1 -1
  191. package/dist/models/config-loader.d.ts +1 -1
  192. package/dist/models/factory-integration.d.ts +1 -1
  193. package/dist/models/factory-integration.js +1 -1
  194. package/dist/models/factory-integration.js.map +1 -1
  195. package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts +58 -0
  196. package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts.map +1 -0
  197. package/dist/node_modules/@evalops/contracts/dist/artifacts.js +191 -0
  198. package/dist/node_modules/@evalops/contracts/dist/artifacts.js.map +1 -0
  199. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +10 -10
  200. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +4 -3
  201. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  202. package/dist/node_modules/@evalops/contracts/dist/index.js +3 -2
  203. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  204. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +1182 -14
  205. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
  206. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +450 -1
  207. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
  208. package/dist/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +1 -1
  209. package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +3 -3
  210. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  211. package/dist/node_modules/@evalops/tui/package.json +1 -1
  212. package/dist/oauth/connectors.d.ts +2 -2
  213. package/dist/oauth/connectors.d.ts.map +1 -1
  214. package/dist/oauth/connectors.js +3 -5
  215. package/dist/oauth/connectors.js.map +1 -1
  216. package/dist/oauth/github-copilot.d.ts +1 -1
  217. package/dist/oauth/github-copilot.js +1 -1
  218. package/dist/oauth/github-copilot.js.map +1 -1
  219. package/dist/oauth/index.d.ts +10 -8
  220. package/dist/oauth/index.d.ts.map +1 -1
  221. package/dist/oauth/index.js +54 -31
  222. package/dist/oauth/index.js.map +1 -1
  223. package/dist/oauth/openai.d.ts +1 -1
  224. package/dist/oauth/openai.js +2 -2
  225. package/dist/oauth/openai.js.map +1 -1
  226. package/dist/platform/a2a-completion-audit.d.ts +41 -0
  227. package/dist/platform/a2a-completion-audit.d.ts.map +1 -0
  228. package/dist/platform/a2a-completion-audit.js +177 -0
  229. package/dist/platform/a2a-completion-audit.js.map +1 -0
  230. package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
  231. package/dist/platform/a2a-task-ledger.js +17 -0
  232. package/dist/platform/a2a-task-ledger.js.map +1 -1
  233. package/dist/platform/a2a-telemetry-inspect.d.ts +58 -0
  234. package/dist/platform/a2a-telemetry-inspect.d.ts.map +1 -0
  235. package/dist/platform/a2a-telemetry-inspect.js +224 -0
  236. package/dist/platform/a2a-telemetry-inspect.js.map +1 -0
  237. package/dist/platform/agent-registry-client.d.ts +8 -0
  238. package/dist/platform/agent-registry-client.d.ts.map +1 -1
  239. package/dist/platform/agent-registry-client.js +9 -1
  240. package/dist/platform/agent-registry-client.js.map +1 -1
  241. package/dist/providers/api-keys.d.ts +2 -2
  242. package/dist/providers/api-keys.js +2 -2
  243. package/dist/providers/api-keys.js.map +1 -1
  244. package/dist/providers/auth.d.ts +3 -6
  245. package/dist/providers/auth.d.ts.map +1 -1
  246. package/dist/providers/auth.js +1 -40
  247. package/dist/providers/auth.js.map +1 -1
  248. package/dist/rpc/index.d.ts +2 -2
  249. package/dist/rpc/index.js +2 -2
  250. package/dist/rpc/index.js.map +1 -1
  251. package/dist/rpc/rpc-types.d.ts +1 -1
  252. package/dist/rpc/rpc-types.js +1 -1
  253. package/dist/rpc/rpc-types.js.map +1 -1
  254. package/dist/safety/nested-agent-guard.js +1 -1
  255. package/dist/safety/nested-agent-guard.js.map +1 -1
  256. package/dist/safety/policy.d.ts +2 -2
  257. package/dist/safety/policy.js +2 -2
  258. package/dist/safety/policy.js.map +1 -1
  259. package/dist/safety/validators/network-policy-validator.d.ts +8 -0
  260. package/dist/safety/validators/network-policy-validator.d.ts.map +1 -1
  261. package/dist/safety/validators/network-policy-validator.js +29 -4
  262. package/dist/safety/validators/network-policy-validator.js.map +1 -1
  263. package/dist/sandbox/local-sandbox.d.ts +1 -1
  264. package/dist/sandbox/local-sandbox.js +1 -1
  265. package/dist/sandbox/local-sandbox.js.map +1 -1
  266. package/dist/server/app-context.d.ts +2 -0
  267. package/dist/server/app-context.d.ts.map +1 -1
  268. package/dist/server/app-context.js.map +1 -1
  269. package/dist/server/handlers/attachments.d.ts.map +1 -1
  270. package/dist/server/handlers/attachments.js +1 -0
  271. package/dist/server/handlers/attachments.js.map +1 -1
  272. package/dist/server/handlers/models.d.ts.map +1 -1
  273. package/dist/server/handlers/models.js +3 -1
  274. package/dist/server/handlers/models.js.map +1 -1
  275. package/dist/server/handlers/session-artifacts.d.ts.map +1 -1
  276. package/dist/server/handlers/session-artifacts.js +13 -74
  277. package/dist/server/handlers/session-artifacts.js.map +1 -1
  278. package/dist/server/handlers/session-attachments.d.ts.map +1 -1
  279. package/dist/server/handlers/session-attachments.js +2 -0
  280. package/dist/server/handlers/session-attachments.js.map +1 -1
  281. package/dist/server/handlers/sessions.js +1 -1
  282. package/dist/server/handlers/sessions.js.map +1 -1
  283. package/dist/server/handlers/status.d.ts +2 -0
  284. package/dist/server/handlers/status.d.ts.map +1 -1
  285. package/dist/server/handlers/status.js +3 -2
  286. package/dist/server/handlers/status.js.map +1 -1
  287. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  288. package/dist/server/headless-runtime-service.js +32 -3
  289. package/dist/server/headless-runtime-service.js.map +1 -1
  290. package/dist/server/hosted-session-manager.d.ts +2 -0
  291. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  292. package/dist/server/hosted-session-manager.js +9 -0
  293. package/dist/server/hosted-session-manager.js.map +1 -1
  294. package/dist/server/model-selection.d.ts.map +1 -1
  295. package/dist/server/model-selection.js +9 -1
  296. package/dist/server/model-selection.js.map +1 -1
  297. package/dist/server/rate-limiter.d.ts +1 -1
  298. package/dist/server/rate-limiter.js +1 -1
  299. package/dist/server/rate-limiter.js.map +1 -1
  300. package/dist/server/router.d.ts +2 -2
  301. package/dist/server/router.js.map +1 -1
  302. package/dist/server/session-serialization.d.ts +9 -9
  303. package/dist/server/session-serialization.js +15 -15
  304. package/dist/server/session-serialization.js.map +1 -1
  305. package/dist/session/manager.d.ts +5 -0
  306. package/dist/session/manager.d.ts.map +1 -1
  307. package/dist/session/manager.js +56 -8
  308. package/dist/session/manager.js.map +1 -1
  309. package/dist/session/session-catalog.d.ts +2 -0
  310. package/dist/session/session-catalog.d.ts.map +1 -1
  311. package/dist/session/session-catalog.js +6 -0
  312. package/dist/session/session-catalog.js.map +1 -1
  313. package/dist/session/session-context.d.ts +2 -0
  314. package/dist/session/session-context.d.ts.map +1 -1
  315. package/dist/session/session-context.js +15 -0
  316. package/dist/session/session-context.js.map +1 -1
  317. package/dist/session/types.d.ts +7 -0
  318. package/dist/session/types.d.ts.map +1 -1
  319. package/dist/session/types.js.map +1 -1
  320. package/dist/session/wire-format.generated.d.ts +1 -0
  321. package/dist/session/wire-format.generated.d.ts.map +1 -1
  322. package/dist/session/wire-format.generated.js +1 -0
  323. package/dist/session/wire-format.generated.js.map +1 -1
  324. package/dist/shared-memory/contract.d.ts +4 -4
  325. package/dist/shared-memory/contract.js +2 -2
  326. package/dist/shared-memory/contract.js.map +1 -1
  327. package/dist/telemetry/index.d.ts +2 -2
  328. package/dist/telemetry/index.d.ts.map +1 -1
  329. package/dist/telemetry/index.js +2 -2
  330. package/dist/telemetry/index.js.map +1 -1
  331. package/dist/telemetry/maestro-event-bus.d.ts +57 -0
  332. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  333. package/dist/telemetry/maestro-event-bus.js +59 -1
  334. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  335. package/dist/telemetry/maestro-event-catalog.d.ts +17 -1
  336. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  337. package/dist/telemetry/maestro-event-catalog.js +24 -0
  338. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  339. package/dist/telemetry/mcp-beacon.d.ts +2 -0
  340. package/dist/telemetry/mcp-beacon.d.ts.map +1 -1
  341. package/dist/telemetry/mcp-beacon.js +15 -0
  342. package/dist/telemetry/mcp-beacon.js.map +1 -1
  343. package/dist/telemetry/metrics.d.ts +62 -0
  344. package/dist/telemetry/metrics.d.ts.map +1 -1
  345. package/dist/telemetry/metrics.js +84 -0
  346. package/dist/telemetry/metrics.js.map +1 -1
  347. package/dist/telemetry.d.ts +44 -0
  348. package/dist/telemetry.d.ts.map +1 -1
  349. package/dist/telemetry.js +84 -2
  350. package/dist/telemetry.js.map +1 -1
  351. package/dist/theme/theme-loader.js +2 -2
  352. package/dist/theme/theme-loader.js.map +1 -1
  353. package/dist/theme/theme-schema.json +2 -2
  354. package/dist/theme/theme.d.ts +1 -1
  355. package/dist/theme/theme.js.map +1 -1
  356. package/dist/tools/background/task-types.d.ts +1 -1
  357. package/dist/tools/extract-document.d.ts +1 -0
  358. package/dist/tools/extract-document.d.ts.map +1 -1
  359. package/dist/tools/extract-document.js +2 -1
  360. package/dist/tools/extract-document.js.map +1 -1
  361. package/dist/tools/index.d.ts +55 -55
  362. package/dist/tools/index.js +1 -1
  363. package/dist/tools/index.js.map +1 -1
  364. package/dist/tools/tool-dsl.d.ts +1 -1
  365. package/dist/tools/tool-dsl.js +1 -1
  366. package/dist/tools/tool-dsl.js.map +1 -1
  367. package/dist/utils/document-extractor.d.ts +1 -0
  368. package/dist/utils/document-extractor.d.ts.map +1 -1
  369. package/dist/utils/document-extractor.js +320 -40
  370. package/dist/utils/document-extractor.js.map +1 -1
  371. package/dist/utils/logger.d.ts +1 -1
  372. package/dist/utils/logger.js +1 -1
  373. package/dist/utils/logger.js.map +1 -1
  374. package/dist/version.json +2 -2
  375. package/dist/web-server.d.ts +1 -1
  376. package/dist/web-server.d.ts.map +1 -1
  377. package/dist/web-server.js +12 -8
  378. package/dist/web-server.js.map +1 -1
  379. package/package.json +4 -2
  380. package/dist/oauth/anthropic.d.ts +0 -17
  381. package/dist/oauth/anthropic.d.ts.map +0 -1
  382. package/dist/oauth/anthropic.js +0 -81
  383. package/dist/oauth/anthropic.js.map +0 -1
  384. package/dist/providers/anthropic-auth.d.ts +0 -75
  385. package/dist/providers/anthropic-auth.d.ts.map +0 -1
  386. package/dist/providers/anthropic-auth.js +0 -221
  387. package/dist/providers/anthropic-auth.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import type { MaestroAppServerCommandExecResult, MaestroAppServerCommandProcessResult, MaestroAppServerEmptyResult, MaestroAppServerFsMetadataResult, MaestroAppServerFsReadDirectoryResult, MaestroAppServerFsReadFileResult, MaestroAppServerFsWatchResult, MaestroAppServerServerNotification } from "@evalops/contracts";
2
+ export declare class MaestroAppServerHostControlError extends Error {
3
+ readonly code: number;
4
+ constructor(code: number, message: string);
5
+ }
6
+ export interface MaestroAppServerHostControlOptions {
7
+ onNotification?: (notification: MaestroAppServerServerNotification) => void;
8
+ }
9
+ export declare class MaestroAppServerHostControl {
10
+ private readonly options;
11
+ private readonly processes;
12
+ private readonly watchers;
13
+ constructor(options?: MaestroAppServerHostControlOptions);
14
+ supportsWatch(): boolean;
15
+ execCommand(params?: Record<string, unknown>): Promise<MaestroAppServerCommandExecResult>;
16
+ writeCommandStdin(params?: Record<string, unknown>): Promise<MaestroAppServerCommandProcessResult>;
17
+ terminateCommand(params?: Record<string, unknown>): Promise<MaestroAppServerCommandProcessResult>;
18
+ readFile(params?: Record<string, unknown>): Promise<MaestroAppServerFsReadFileResult>;
19
+ writeFile(params?: Record<string, unknown>): Promise<MaestroAppServerEmptyResult>;
20
+ readDirectory(params?: Record<string, unknown>): Promise<MaestroAppServerFsReadDirectoryResult>;
21
+ getMetadata(params?: Record<string, unknown>): Promise<MaestroAppServerFsMetadataResult>;
22
+ createDirectory(params?: Record<string, unknown>): Promise<MaestroAppServerEmptyResult>;
23
+ remove(params?: Record<string, unknown>): Promise<MaestroAppServerEmptyResult>;
24
+ copy(params?: Record<string, unknown>): Promise<MaestroAppServerEmptyResult>;
25
+ watch(params?: Record<string, unknown>): Promise<MaestroAppServerFsWatchResult>;
26
+ unwatch(params?: Record<string, unknown>): Promise<MaestroAppServerEmptyResult>;
27
+ dispose(): void;
28
+ }
29
+ export declare function createMaestroAppServerHostControl(options?: MaestroAppServerHostControlOptions): MaestroAppServerHostControl;
30
+ //# sourceMappingURL=host-control-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-control-api.d.ts","sourceRoot":"","sources":["../../src/app-server/host-control-api.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACX,iCAAiC,EACjC,oCAAoC,EACpC,2BAA2B,EAC3B,gCAAgC,EAChC,qCAAqC,EACrC,gCAAgC,EAChC,6BAA6B,EAC7B,kCAAkC,EAClC,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,gCAAiC,SAAQ,KAAK;IAEzD,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKhB;AAED,MAAM,WAAW,kCAAkC;IAClD,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,kCAAkC,KAAK,IAAI,CAAC;CAC5E;AA+JD,qBAAa,2BAA2B;IAKtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;gBAG5C,OAAO,GAAE,kCAAuC;IAGlE,aAAa,IAAI,OAAO;IAIlB,WAAW,CAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,iCAAiC,CAAC;IAyEvC,iBAAiB,CACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,oCAAoC,CAAC;IAuC1C,gBAAgB,CACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,oCAAoC,CAAC;IAa1C,QAAQ,CACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,gCAAgC,CAAC;IAKtC,SAAS,CACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IAQjC,aAAa,CAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,qCAAqC,CAAC;IAc3C,WAAW,CAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,gCAAgC,CAAC;IAYtC,eAAe,CACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IASjC,MAAM,CACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IAUjC,IAAI,CACT,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IAgBjC,KAAK,CACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,6BAA6B,CAAC;IA2CnC,OAAO,CACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IAUvC,OAAO,IAAI,IAAI;CAUf;AAED,wBAAgB,iCAAiC,CAChD,OAAO,CAAC,EAAE,kCAAkC,GAC1C,2BAA2B,CAE7B"}
@@ -0,0 +1,343 @@
1
+ import { spawn } from "node:child_process";
2
+ import { watch } from "node:fs";
3
+ import { copyFile, cp, lstat, mkdir, readFile, readdir, rm, writeFile, } from "node:fs/promises";
4
+ import { dirname, isAbsolute, resolve } from "node:path";
5
+ export class MaestroAppServerHostControlError extends Error {
6
+ constructor(code, message) {
7
+ super(message);
8
+ this.code = code;
9
+ this.name = "MaestroAppServerHostControlError";
10
+ }
11
+ }
12
+ function hasOwn(object, key) {
13
+ return Object.prototype.hasOwnProperty.call(object, key);
14
+ }
15
+ function paramsObject(params) {
16
+ return params ?? {};
17
+ }
18
+ function requireString(value, name) {
19
+ if (typeof value !== "string" || value.trim() === "") {
20
+ throw new MaestroAppServerHostControlError(-32602, `Missing ${name}`);
21
+ }
22
+ return value;
23
+ }
24
+ function optionalString(value, name) {
25
+ if (value === undefined || value === null || value === "") {
26
+ return undefined;
27
+ }
28
+ if (typeof value !== "string") {
29
+ throw new MaestroAppServerHostControlError(-32602, `${name} must be a string`);
30
+ }
31
+ if (value.trim() === "") {
32
+ throw new MaestroAppServerHostControlError(-32602, `Missing ${name}`);
33
+ }
34
+ return value;
35
+ }
36
+ function requireAbsolutePath(value, name) {
37
+ const path = requireString(value, name);
38
+ if (!isAbsolute(path)) {
39
+ throw new MaestroAppServerHostControlError(-32602, `${name} must be an absolute path`);
40
+ }
41
+ return resolve(path);
42
+ }
43
+ function optionalAbsolutePath(value, name) {
44
+ const path = optionalString(value, name);
45
+ if (path === undefined) {
46
+ return undefined;
47
+ }
48
+ if (!isAbsolute(path)) {
49
+ throw new MaestroAppServerHostControlError(-32602, `${name} must be an absolute path`);
50
+ }
51
+ return resolve(path);
52
+ }
53
+ function optionalBoolean(value, name) {
54
+ if (value === undefined || value === null) {
55
+ return undefined;
56
+ }
57
+ if (typeof value !== "boolean") {
58
+ throw new MaestroAppServerHostControlError(-32602, `${name} must be a boolean`);
59
+ }
60
+ return value;
61
+ }
62
+ function requireCommand(value) {
63
+ if (!Array.isArray(value) ||
64
+ value.length === 0 ||
65
+ value.some((part) => typeof part !== "string" || part.length === 0)) {
66
+ throw new MaestroAppServerHostControlError(-32602, "command must be a non-empty string array");
67
+ }
68
+ return [...value];
69
+ }
70
+ function optionalEnv(value) {
71
+ if (value === undefined || value === null) {
72
+ return { ...process.env };
73
+ }
74
+ if (typeof value !== "object" || Array.isArray(value)) {
75
+ throw new MaestroAppServerHostControlError(-32602, "env must be an object");
76
+ }
77
+ const env = { ...process.env };
78
+ for (const [key, rawValue] of Object.entries(value)) {
79
+ if (rawValue === null) {
80
+ delete env[key];
81
+ continue;
82
+ }
83
+ if (typeof rawValue !== "string") {
84
+ throw new MaestroAppServerHostControlError(-32602, "env values must be strings or null");
85
+ }
86
+ env[key] = rawValue;
87
+ }
88
+ return env;
89
+ }
90
+ function decodeBase64(value, name) {
91
+ if (value === undefined || value === null) {
92
+ throw new MaestroAppServerHostControlError(-32602, `Missing ${name}`);
93
+ }
94
+ if (typeof value !== "string") {
95
+ throw new MaestroAppServerHostControlError(-32602, `${name} must be a string`);
96
+ }
97
+ if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value)) {
98
+ throw new MaestroAppServerHostControlError(-32602, `${name} must be valid base64`);
99
+ }
100
+ const decoded = Buffer.from(value, "base64");
101
+ if (decoded.toString("base64") !== value) {
102
+ throw new MaestroAppServerHostControlError(-32602, `${name} must be canonical base64`);
103
+ }
104
+ return decoded;
105
+ }
106
+ function exitCodeFromSignal(signal) {
107
+ if (signal === "SIGTERM")
108
+ return 143;
109
+ if (signal === "SIGKILL")
110
+ return 137;
111
+ return 1;
112
+ }
113
+ export class MaestroAppServerHostControl {
114
+ constructor(options = {}) {
115
+ this.options = options;
116
+ this.processes = new Map();
117
+ this.watchers = new Map();
118
+ }
119
+ supportsWatch() {
120
+ return Boolean(this.options.onNotification);
121
+ }
122
+ async execCommand(params) {
123
+ const input = paramsObject(params);
124
+ const command = requireCommand(input.command);
125
+ const cwd = optionalAbsolutePath(input.cwd, "cwd") ?? process.cwd();
126
+ const env = optionalEnv(input.env);
127
+ const processId = optionalString(input.processId, "processId");
128
+ if (processId && this.processes.has(processId)) {
129
+ throw new MaestroAppServerHostControlError(-32602, `processId already exists: ${processId}`);
130
+ }
131
+ const child = spawn(command[0], command.slice(1), {
132
+ cwd,
133
+ env,
134
+ stdio: "pipe",
135
+ windowsHide: true,
136
+ });
137
+ if (processId) {
138
+ const tracked = {
139
+ processId,
140
+ child,
141
+ stdinClosed: child.stdin.destroyed || child.stdin.writableEnded,
142
+ };
143
+ child.stdin.on("finish", () => {
144
+ tracked.stdinClosed = true;
145
+ });
146
+ child.stdin.on("close", () => {
147
+ tracked.stdinClosed = true;
148
+ });
149
+ child.stdin.on("error", (error) => {
150
+ tracked.stdinClosed = true;
151
+ tracked.stdinError =
152
+ error instanceof Error ? error.message : String(error);
153
+ });
154
+ this.processes.set(processId, tracked);
155
+ }
156
+ const stdout = [];
157
+ const stderr = [];
158
+ child.stdout.on("data", (chunk) => stdout.push(chunk));
159
+ child.stderr.on("data", (chunk) => stderr.push(chunk));
160
+ return new Promise((resolvePromise, reject) => {
161
+ let settled = false;
162
+ const finish = (result) => {
163
+ if (settled)
164
+ return;
165
+ settled = true;
166
+ if (processId) {
167
+ this.processes.delete(processId);
168
+ }
169
+ if ("error" in result) {
170
+ reject(new MaestroAppServerHostControlError(-32000, result.error.message));
171
+ return;
172
+ }
173
+ resolvePromise({
174
+ stdout: Buffer.concat(stdout).toString("utf8"),
175
+ stderr: Buffer.concat(stderr).toString("utf8"),
176
+ exitCode: result.code ?? exitCodeFromSignal(result.signal),
177
+ });
178
+ };
179
+ child.on("error", (error) => finish({ error }));
180
+ child.on("close", (code, signal) => finish({ code, signal }));
181
+ });
182
+ }
183
+ async writeCommandStdin(params) {
184
+ const input = paramsObject(params);
185
+ const processId = requireString(input.processId, "processId");
186
+ const tracked = this.processes.get(processId);
187
+ if (!tracked) {
188
+ throw new MaestroAppServerHostControlError(-32004, "Process not found");
189
+ }
190
+ if (hasOwn(input, "deltaBase64") && input.deltaBase64 !== null) {
191
+ if (tracked.stdinClosed ||
192
+ tracked.child.stdin.destroyed ||
193
+ tracked.child.stdin.writableEnded) {
194
+ throw new MaestroAppServerHostControlError(-32000, tracked.stdinError ?? "Process stdin is closed");
195
+ }
196
+ try {
197
+ tracked.child.stdin.write(decodeBase64(input.deltaBase64, "deltaBase64"));
198
+ }
199
+ catch (error) {
200
+ if (error instanceof MaestroAppServerHostControlError) {
201
+ throw error;
202
+ }
203
+ tracked.stdinClosed = true;
204
+ tracked.stdinError =
205
+ error instanceof Error ? error.message : "Process stdin write failed";
206
+ throw new MaestroAppServerHostControlError(-32000, tracked.stdinError);
207
+ }
208
+ }
209
+ if (optionalBoolean(input.closeStdin, "closeStdin") === true) {
210
+ tracked.stdinClosed = true;
211
+ tracked.child.stdin.end();
212
+ }
213
+ return { processId };
214
+ }
215
+ async terminateCommand(params) {
216
+ const processId = requireString(paramsObject(params).processId, "processId");
217
+ const tracked = this.processes.get(processId);
218
+ if (!tracked) {
219
+ throw new MaestroAppServerHostControlError(-32004, "Process not found");
220
+ }
221
+ tracked.child.kill("SIGTERM");
222
+ return { processId };
223
+ }
224
+ async readFile(params) {
225
+ const path = requireAbsolutePath(paramsObject(params).path, "path");
226
+ return { dataBase64: (await readFile(path)).toString("base64") };
227
+ }
228
+ async writeFile(params) {
229
+ const input = paramsObject(params);
230
+ const path = requireAbsolutePath(input.path, "path");
231
+ await mkdir(dirname(path), { recursive: true });
232
+ await writeFile(path, decodeBase64(input.dataBase64, "dataBase64"));
233
+ return {};
234
+ }
235
+ async readDirectory(params) {
236
+ const path = requireAbsolutePath(paramsObject(params).path, "path");
237
+ const entries = await readdir(path, { withFileTypes: true });
238
+ return {
239
+ entries: entries
240
+ .map((entry) => ({
241
+ fileName: entry.name,
242
+ isDirectory: entry.isDirectory(),
243
+ isFile: entry.isFile(),
244
+ }))
245
+ .sort((left, right) => left.fileName.localeCompare(right.fileName)),
246
+ };
247
+ }
248
+ async getMetadata(params) {
249
+ const path = requireAbsolutePath(paramsObject(params).path, "path");
250
+ const stats = await lstat(path);
251
+ return {
252
+ createdAtMs: Math.trunc(stats.birthtimeMs),
253
+ modifiedAtMs: Math.trunc(stats.mtimeMs),
254
+ isDirectory: stats.isDirectory(),
255
+ isFile: stats.isFile(),
256
+ isSymlink: stats.isSymbolicLink(),
257
+ };
258
+ }
259
+ async createDirectory(params) {
260
+ const input = paramsObject(params);
261
+ const path = requireAbsolutePath(input.path, "path");
262
+ await mkdir(path, {
263
+ recursive: optionalBoolean(input.recursive, "recursive") ?? true,
264
+ });
265
+ return {};
266
+ }
267
+ async remove(params) {
268
+ const input = paramsObject(params);
269
+ const path = requireAbsolutePath(input.path, "path");
270
+ await rm(path, {
271
+ recursive: optionalBoolean(input.recursive, "recursive") ?? true,
272
+ force: optionalBoolean(input.force, "force") ?? true,
273
+ });
274
+ return {};
275
+ }
276
+ async copy(params) {
277
+ const input = paramsObject(params);
278
+ const sourcePath = requireAbsolutePath(input.sourcePath, "sourcePath");
279
+ const destinationPath = requireAbsolutePath(input.destinationPath, "destinationPath");
280
+ const recursive = optionalBoolean(input.recursive, "recursive") ?? false;
281
+ if (recursive) {
282
+ await cp(sourcePath, destinationPath, { recursive: true });
283
+ }
284
+ else {
285
+ await copyFile(sourcePath, destinationPath);
286
+ }
287
+ return {};
288
+ }
289
+ async watch(params) {
290
+ if (!this.supportsWatch()) {
291
+ throw new MaestroAppServerHostControlError(-32601, "Filesystem watch notifications are not available");
292
+ }
293
+ const input = paramsObject(params);
294
+ const watchId = requireString(input.watchId, "watchId");
295
+ const path = requireAbsolutePath(input.path, "path");
296
+ if (this.watchers.has(watchId)) {
297
+ throw new MaestroAppServerHostControlError(-32602, `watchId already exists: ${watchId}`);
298
+ }
299
+ const stats = await lstat(path);
300
+ const isDirectory = stats.isDirectory();
301
+ const watcher = watch(path, { persistent: false }, (_eventType, filename) => {
302
+ const changedPath = isDirectory && filename ? resolve(path, filename.toString()) : path;
303
+ this.options.onNotification?.({
304
+ jsonrpc: "2.0",
305
+ method: "fs/changed",
306
+ params: {
307
+ watchId,
308
+ changedPaths: [changedPath],
309
+ },
310
+ });
311
+ });
312
+ watcher.on("error", () => {
313
+ this.watchers.delete(watchId);
314
+ watcher.close();
315
+ });
316
+ watcher.unref?.();
317
+ this.watchers.set(watchId, { watcher });
318
+ return { watchId, path };
319
+ }
320
+ async unwatch(params) {
321
+ const watchId = requireString(paramsObject(params).watchId, "watchId");
322
+ const tracked = this.watchers.get(watchId);
323
+ if (tracked) {
324
+ tracked.watcher.close();
325
+ this.watchers.delete(watchId);
326
+ }
327
+ return {};
328
+ }
329
+ dispose() {
330
+ for (const { child } of this.processes.values()) {
331
+ child.kill("SIGTERM");
332
+ }
333
+ this.processes.clear();
334
+ for (const { watcher } of this.watchers.values()) {
335
+ watcher.close();
336
+ }
337
+ this.watchers.clear();
338
+ }
339
+ }
340
+ export function createMaestroAppServerHostControl(options) {
341
+ return new MaestroAppServerHostControl(options);
342
+ }
343
+ //# sourceMappingURL=host-control-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-control-api.js","sourceRoot":"","sources":["../../src/app-server/host-control-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAkB,KAAK,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EACN,QAAQ,EACR,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,EAAE,EACF,SAAS,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzD,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAC1D,YACU,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IAChD,CAAC;CACD;AAiBD,SAAS,MAAM,CAAC,MAA+B,EAAE,GAAW;IAC3D,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,MAA2C;IAChE,OAAO,MAAM,IAAI,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,IAAY;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY;IACnD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,GAAG,IAAI,mBAAmB,CAC1B,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,IAAY;IACxD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,GAAG,IAAI,2BAA2B,CAClC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,oBAAoB,CAC5B,KAAc,EACd,IAAY;IAEZ,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,GAAG,IAAI,2BAA2B,CAClC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY;IACpD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,GAAG,IAAI,oBAAoB,CAC3B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACrC,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAClE,CAAC;QACF,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,0CAA0C,CAC1C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,SAAS;QACV,CAAC;QACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,oCAAoC,CACpC,CAAC;QACH,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,GAAG,IAAI,mBAAmB,CAC1B,CAAC;IACH,CAAC;IACD,IACC,CAAC,kEAAkE,CAAC,IAAI,CACvE,KAAK,CACL,EACA,CAAC;QACF,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,GAAG,IAAI,uBAAuB,CAC9B,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;QAC1C,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,GAAG,IAAI,2BAA2B,CAClC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA6B;IACxD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,OAAO,2BAA2B;IAIvC,YACkB,UAA8C,EAAE;QAAhD,YAAO,GAAP,OAAO,CAAyC;QAJjD,cAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC9C,aAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAI3D,CAAC;IAEJ,aAAa;QACZ,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,MAAgC;QAEhC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,6BAA6B,SAAS,EAAE,CACxC,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAClD,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,OAAO,GAAmB;gBAC/B,SAAS;gBACT,KAAK;gBACL,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa;aAC/D,CAAC;YACF,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAC7B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC5B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC3B,OAAO,CAAC,UAAU;oBACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/D,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,CACd,MAEmB,EAClB,EAAE;gBACH,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;gBACD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;oBACvB,MAAM,CACL,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAClE,CAAC;oBACF,OAAO;gBACR,CAAC;gBACD,cAAc,CAAC;oBACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC9C,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC;iBAC1D,CAAC,CAAC;YACJ,CAAC,CAAC;YACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,MAAgC;QAEhC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAChE,IACC,OAAO,CAAC,WAAW;gBACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;gBAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAChC,CAAC;gBACF,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,OAAO,CAAC,UAAU,IAAI,yBAAyB,CAC/C,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CACxB,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAC9C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;oBACvD,MAAM,KAAK,CAAC;gBACb,CAAC;gBACD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC3B,OAAO,CAAC,UAAU;oBACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC;gBACvE,MAAM,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;QACD,IAAI,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,MAAgC;QAEhC,MAAM,SAAS,GAAG,aAAa,CAC9B,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,EAC9B,WAAW,CACX,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,gCAAgC,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,EAAE,SAAS,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CACb,MAAgC;QAEhC,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,EAAE,UAAU,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,SAAS,CACd,MAAgC;QAEhC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,aAAa,CAClB,MAAgC;QAEhC,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO;YACN,OAAO,EAAE,OAAO;iBACd,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAChB,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;aACtB,CAAC,CAAC;iBACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACpE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,MAAgC;QAEhC,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO;YACN,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1C,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;YACvC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;YACtB,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE;SACjC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACpB,MAAgC;QAEhC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC,IAAI,EAAE;YACjB,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,IAAI;SAChE,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,MAAM,CACX,MAAgC;QAEhC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,EAAE,CAAC,IAAI,EAAE;YACd,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,IAAI;YAChE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI;SACpD,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,IAAI,CACT,MAAgC;QAEhC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,mBAAmB,CAC1C,KAAK,CAAC,eAAe,EACrB,iBAAiB,CACjB,CAAC;QACF,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC;QACzE,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,KAAK,CACV,MAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,kDAAkD,CAClD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,gCAAgC,CACzC,CAAC,KAAK,EACN,2BAA2B,OAAO,EAAE,CACpC,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,CACpB,IAAI,EACJ,EAAE,UAAU,EAAE,KAAK,EAAE,EACrB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;YACxB,MAAM,WAAW,GAChB,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC7B,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE;oBACP,OAAO;oBACP,YAAY,EAAE,CAAC,WAAW,CAAC;iBAC3B;aACD,CAAC,CAAC;QACJ,CAAC,CACD,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO,CACZ,MAAgC;QAEhC,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO;QACN,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACD;AAED,MAAM,UAAU,iCAAiC,CAChD,OAA4C;IAE5C,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC","sourcesContent":["import { type ChildProcessWithoutNullStreams, spawn } from \"node:child_process\";\nimport { type FSWatcher, watch } from \"node:fs\";\nimport {\n\tcopyFile,\n\tcp,\n\tlstat,\n\tmkdir,\n\treadFile,\n\treaddir,\n\trm,\n\twriteFile,\n} from \"node:fs/promises\";\nimport { dirname, isAbsolute, resolve } from \"node:path\";\nimport type {\n\tMaestroAppServerCommandExecResult,\n\tMaestroAppServerCommandProcessResult,\n\tMaestroAppServerEmptyResult,\n\tMaestroAppServerFsMetadataResult,\n\tMaestroAppServerFsReadDirectoryResult,\n\tMaestroAppServerFsReadFileResult,\n\tMaestroAppServerFsWatchResult,\n\tMaestroAppServerServerNotification,\n} from \"@evalops/contracts\";\n\nexport class MaestroAppServerHostControlError extends Error {\n\tconstructor(\n\t\treadonly code: number,\n\t\tmessage: string,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"MaestroAppServerHostControlError\";\n\t}\n}\n\nexport interface MaestroAppServerHostControlOptions {\n\tonNotification?: (notification: MaestroAppServerServerNotification) => void;\n}\n\ntype TrackedProcess = {\n\tprocessId: string;\n\tchild: ChildProcessWithoutNullStreams;\n\tstdinClosed: boolean;\n\tstdinError?: string;\n};\n\ntype TrackedWatcher = {\n\twatcher: FSWatcher;\n};\n\nfunction hasOwn(object: Record<string, unknown>, key: string): boolean {\n\treturn Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction paramsObject(params: Record<string, unknown> | undefined) {\n\treturn params ?? {};\n}\n\nfunction requireString(value: unknown, name: string): string {\n\tif (typeof value !== \"string\" || value.trim() === \"\") {\n\t\tthrow new MaestroAppServerHostControlError(-32602, `Missing ${name}`);\n\t}\n\treturn value;\n}\n\nfunction optionalString(value: unknown, name: string): string | undefined {\n\tif (value === undefined || value === null || value === \"\") {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"string\") {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t`${name} must be a string`,\n\t\t);\n\t}\n\tif (value.trim() === \"\") {\n\t\tthrow new MaestroAppServerHostControlError(-32602, `Missing ${name}`);\n\t}\n\treturn value;\n}\n\nfunction requireAbsolutePath(value: unknown, name: string): string {\n\tconst path = requireString(value, name);\n\tif (!isAbsolute(path)) {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t`${name} must be an absolute path`,\n\t\t);\n\t}\n\treturn resolve(path);\n}\n\nfunction optionalAbsolutePath(\n\tvalue: unknown,\n\tname: string,\n): string | undefined {\n\tconst path = optionalString(value, name);\n\tif (path === undefined) {\n\t\treturn undefined;\n\t}\n\tif (!isAbsolute(path)) {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t`${name} must be an absolute path`,\n\t\t);\n\t}\n\treturn resolve(path);\n}\n\nfunction optionalBoolean(value: unknown, name: string): boolean | undefined {\n\tif (value === undefined || value === null) {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"boolean\") {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t`${name} must be a boolean`,\n\t\t);\n\t}\n\treturn value;\n}\n\nfunction requireCommand(value: unknown): string[] {\n\tif (\n\t\t!Array.isArray(value) ||\n\t\tvalue.length === 0 ||\n\t\tvalue.some((part) => typeof part !== \"string\" || part.length === 0)\n\t) {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t\"command must be a non-empty string array\",\n\t\t);\n\t}\n\treturn [...value];\n}\n\nfunction optionalEnv(value: unknown): NodeJS.ProcessEnv {\n\tif (value === undefined || value === null) {\n\t\treturn { ...process.env };\n\t}\n\tif (typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow new MaestroAppServerHostControlError(-32602, \"env must be an object\");\n\t}\n\tconst env = { ...process.env };\n\tfor (const [key, rawValue] of Object.entries(value)) {\n\t\tif (rawValue === null) {\n\t\t\tdelete env[key];\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof rawValue !== \"string\") {\n\t\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t\t-32602,\n\t\t\t\t\"env values must be strings or null\",\n\t\t\t);\n\t\t}\n\t\tenv[key] = rawValue;\n\t}\n\treturn env;\n}\n\nfunction decodeBase64(value: unknown, name: string): Buffer {\n\tif (value === undefined || value === null) {\n\t\tthrow new MaestroAppServerHostControlError(-32602, `Missing ${name}`);\n\t}\n\tif (typeof value !== \"string\") {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t`${name} must be a string`,\n\t\t);\n\t}\n\tif (\n\t\t!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(\n\t\t\tvalue,\n\t\t)\n\t) {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t`${name} must be valid base64`,\n\t\t);\n\t}\n\tconst decoded = Buffer.from(value, \"base64\");\n\tif (decoded.toString(\"base64\") !== value) {\n\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t-32602,\n\t\t\t`${name} must be canonical base64`,\n\t\t);\n\t}\n\treturn decoded;\n}\n\nfunction exitCodeFromSignal(signal: NodeJS.Signals | null): number {\n\tif (signal === \"SIGTERM\") return 143;\n\tif (signal === \"SIGKILL\") return 137;\n\treturn 1;\n}\n\nexport class MaestroAppServerHostControl {\n\tprivate readonly processes = new Map<string, TrackedProcess>();\n\tprivate readonly watchers = new Map<string, TrackedWatcher>();\n\n\tconstructor(\n\t\tprivate readonly options: MaestroAppServerHostControlOptions = {},\n\t) {}\n\n\tsupportsWatch(): boolean {\n\t\treturn Boolean(this.options.onNotification);\n\t}\n\n\tasync execCommand(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerCommandExecResult> {\n\t\tconst input = paramsObject(params);\n\t\tconst command = requireCommand(input.command);\n\t\tconst cwd = optionalAbsolutePath(input.cwd, \"cwd\") ?? process.cwd();\n\t\tconst env = optionalEnv(input.env);\n\t\tconst processId = optionalString(input.processId, \"processId\");\n\t\tif (processId && this.processes.has(processId)) {\n\t\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t\t-32602,\n\t\t\t\t`processId already exists: ${processId}`,\n\t\t\t);\n\t\t}\n\n\t\tconst child = spawn(command[0]!, command.slice(1), {\n\t\t\tcwd,\n\t\t\tenv,\n\t\t\tstdio: \"pipe\",\n\t\t\twindowsHide: true,\n\t\t});\n\t\tif (processId) {\n\t\t\tconst tracked: TrackedProcess = {\n\t\t\t\tprocessId,\n\t\t\t\tchild,\n\t\t\t\tstdinClosed: child.stdin.destroyed || child.stdin.writableEnded,\n\t\t\t};\n\t\t\tchild.stdin.on(\"finish\", () => {\n\t\t\t\ttracked.stdinClosed = true;\n\t\t\t});\n\t\t\tchild.stdin.on(\"close\", () => {\n\t\t\t\ttracked.stdinClosed = true;\n\t\t\t});\n\t\t\tchild.stdin.on(\"error\", (error) => {\n\t\t\t\ttracked.stdinClosed = true;\n\t\t\t\ttracked.stdinError =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t});\n\t\t\tthis.processes.set(processId, tracked);\n\t\t}\n\n\t\tconst stdout: Buffer[] = [];\n\t\tconst stderr: Buffer[] = [];\n\t\tchild.stdout.on(\"data\", (chunk: Buffer) => stdout.push(chunk));\n\t\tchild.stderr.on(\"data\", (chunk: Buffer) => stderr.push(chunk));\n\n\t\treturn new Promise((resolvePromise, reject) => {\n\t\t\tlet settled = false;\n\t\t\tconst finish = (\n\t\t\t\tresult:\n\t\t\t\t\t| { code: number | null; signal: NodeJS.Signals | null }\n\t\t\t\t\t| { error: Error },\n\t\t\t) => {\n\t\t\t\tif (settled) return;\n\t\t\t\tsettled = true;\n\t\t\t\tif (processId) {\n\t\t\t\t\tthis.processes.delete(processId);\n\t\t\t\t}\n\t\t\t\tif (\"error\" in result) {\n\t\t\t\t\treject(\n\t\t\t\t\t\tnew MaestroAppServerHostControlError(-32000, result.error.message),\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresolvePromise({\n\t\t\t\t\tstdout: Buffer.concat(stdout).toString(\"utf8\"),\n\t\t\t\t\tstderr: Buffer.concat(stderr).toString(\"utf8\"),\n\t\t\t\t\texitCode: result.code ?? exitCodeFromSignal(result.signal),\n\t\t\t\t});\n\t\t\t};\n\t\t\tchild.on(\"error\", (error) => finish({ error }));\n\t\t\tchild.on(\"close\", (code, signal) => finish({ code, signal }));\n\t\t});\n\t}\n\n\tasync writeCommandStdin(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerCommandProcessResult> {\n\t\tconst input = paramsObject(params);\n\t\tconst processId = requireString(input.processId, \"processId\");\n\t\tconst tracked = this.processes.get(processId);\n\t\tif (!tracked) {\n\t\t\tthrow new MaestroAppServerHostControlError(-32004, \"Process not found\");\n\t\t}\n\t\tif (hasOwn(input, \"deltaBase64\") && input.deltaBase64 !== null) {\n\t\t\tif (\n\t\t\t\ttracked.stdinClosed ||\n\t\t\t\ttracked.child.stdin.destroyed ||\n\t\t\t\ttracked.child.stdin.writableEnded\n\t\t\t) {\n\t\t\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t\t\t-32000,\n\t\t\t\t\ttracked.stdinError ?? \"Process stdin is closed\",\n\t\t\t\t);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\ttracked.child.stdin.write(\n\t\t\t\t\tdecodeBase64(input.deltaBase64, \"deltaBase64\"),\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof MaestroAppServerHostControlError) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\ttracked.stdinClosed = true;\n\t\t\t\ttracked.stdinError =\n\t\t\t\t\terror instanceof Error ? error.message : \"Process stdin write failed\";\n\t\t\t\tthrow new MaestroAppServerHostControlError(-32000, tracked.stdinError);\n\t\t\t}\n\t\t}\n\t\tif (optionalBoolean(input.closeStdin, \"closeStdin\") === true) {\n\t\t\ttracked.stdinClosed = true;\n\t\t\ttracked.child.stdin.end();\n\t\t}\n\t\treturn { processId };\n\t}\n\n\tasync terminateCommand(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerCommandProcessResult> {\n\t\tconst processId = requireString(\n\t\t\tparamsObject(params).processId,\n\t\t\t\"processId\",\n\t\t);\n\t\tconst tracked = this.processes.get(processId);\n\t\tif (!tracked) {\n\t\t\tthrow new MaestroAppServerHostControlError(-32004, \"Process not found\");\n\t\t}\n\t\ttracked.child.kill(\"SIGTERM\");\n\t\treturn { processId };\n\t}\n\n\tasync readFile(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerFsReadFileResult> {\n\t\tconst path = requireAbsolutePath(paramsObject(params).path, \"path\");\n\t\treturn { dataBase64: (await readFile(path)).toString(\"base64\") };\n\t}\n\n\tasync writeFile(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerEmptyResult> {\n\t\tconst input = paramsObject(params);\n\t\tconst path = requireAbsolutePath(input.path, \"path\");\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, decodeBase64(input.dataBase64, \"dataBase64\"));\n\t\treturn {};\n\t}\n\n\tasync readDirectory(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerFsReadDirectoryResult> {\n\t\tconst path = requireAbsolutePath(paramsObject(params).path, \"path\");\n\t\tconst entries = await readdir(path, { withFileTypes: true });\n\t\treturn {\n\t\t\tentries: entries\n\t\t\t\t.map((entry) => ({\n\t\t\t\t\tfileName: entry.name,\n\t\t\t\t\tisDirectory: entry.isDirectory(),\n\t\t\t\t\tisFile: entry.isFile(),\n\t\t\t\t}))\n\t\t\t\t.sort((left, right) => left.fileName.localeCompare(right.fileName)),\n\t\t};\n\t}\n\n\tasync getMetadata(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerFsMetadataResult> {\n\t\tconst path = requireAbsolutePath(paramsObject(params).path, \"path\");\n\t\tconst stats = await lstat(path);\n\t\treturn {\n\t\t\tcreatedAtMs: Math.trunc(stats.birthtimeMs),\n\t\t\tmodifiedAtMs: Math.trunc(stats.mtimeMs),\n\t\t\tisDirectory: stats.isDirectory(),\n\t\t\tisFile: stats.isFile(),\n\t\t\tisSymlink: stats.isSymbolicLink(),\n\t\t};\n\t}\n\n\tasync createDirectory(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerEmptyResult> {\n\t\tconst input = paramsObject(params);\n\t\tconst path = requireAbsolutePath(input.path, \"path\");\n\t\tawait mkdir(path, {\n\t\t\trecursive: optionalBoolean(input.recursive, \"recursive\") ?? true,\n\t\t});\n\t\treturn {};\n\t}\n\n\tasync remove(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerEmptyResult> {\n\t\tconst input = paramsObject(params);\n\t\tconst path = requireAbsolutePath(input.path, \"path\");\n\t\tawait rm(path, {\n\t\t\trecursive: optionalBoolean(input.recursive, \"recursive\") ?? true,\n\t\t\tforce: optionalBoolean(input.force, \"force\") ?? true,\n\t\t});\n\t\treturn {};\n\t}\n\n\tasync copy(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerEmptyResult> {\n\t\tconst input = paramsObject(params);\n\t\tconst sourcePath = requireAbsolutePath(input.sourcePath, \"sourcePath\");\n\t\tconst destinationPath = requireAbsolutePath(\n\t\t\tinput.destinationPath,\n\t\t\t\"destinationPath\",\n\t\t);\n\t\tconst recursive = optionalBoolean(input.recursive, \"recursive\") ?? false;\n\t\tif (recursive) {\n\t\t\tawait cp(sourcePath, destinationPath, { recursive: true });\n\t\t} else {\n\t\t\tawait copyFile(sourcePath, destinationPath);\n\t\t}\n\t\treturn {};\n\t}\n\n\tasync watch(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerFsWatchResult> {\n\t\tif (!this.supportsWatch()) {\n\t\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t\t-32601,\n\t\t\t\t\"Filesystem watch notifications are not available\",\n\t\t\t);\n\t\t}\n\t\tconst input = paramsObject(params);\n\t\tconst watchId = requireString(input.watchId, \"watchId\");\n\t\tconst path = requireAbsolutePath(input.path, \"path\");\n\t\tif (this.watchers.has(watchId)) {\n\t\t\tthrow new MaestroAppServerHostControlError(\n\t\t\t\t-32602,\n\t\t\t\t`watchId already exists: ${watchId}`,\n\t\t\t);\n\t\t}\n\t\tconst stats = await lstat(path);\n\t\tconst isDirectory = stats.isDirectory();\n\t\tconst watcher = watch(\n\t\t\tpath,\n\t\t\t{ persistent: false },\n\t\t\t(_eventType, filename) => {\n\t\t\t\tconst changedPath =\n\t\t\t\t\tisDirectory && filename ? resolve(path, filename.toString()) : path;\n\t\t\t\tthis.options.onNotification?.({\n\t\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\t\tmethod: \"fs/changed\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\twatchId,\n\t\t\t\t\t\tchangedPaths: [changedPath],\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t);\n\t\twatcher.on(\"error\", () => {\n\t\t\tthis.watchers.delete(watchId);\n\t\t\twatcher.close();\n\t\t});\n\t\twatcher.unref?.();\n\t\tthis.watchers.set(watchId, { watcher });\n\t\treturn { watchId, path };\n\t}\n\n\tasync unwatch(\n\t\tparams?: Record<string, unknown>,\n\t): Promise<MaestroAppServerEmptyResult> {\n\t\tconst watchId = requireString(paramsObject(params).watchId, \"watchId\");\n\t\tconst tracked = this.watchers.get(watchId);\n\t\tif (tracked) {\n\t\t\ttracked.watcher.close();\n\t\t\tthis.watchers.delete(watchId);\n\t\t}\n\t\treturn {};\n\t}\n\n\tdispose(): void {\n\t\tfor (const { child } of this.processes.values()) {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t}\n\t\tthis.processes.clear();\n\t\tfor (const { watcher } of this.watchers.values()) {\n\t\t\twatcher.close();\n\t\t}\n\t\tthis.watchers.clear();\n\t}\n}\n\nexport function createMaestroAppServerHostControl(\n\toptions?: MaestroAppServerHostControlOptions,\n): MaestroAppServerHostControl {\n\treturn new MaestroAppServerHostControl(options);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { MaestroAppServerClientMethod, MaestroAppServerInitializeResult, MaestroAppServerModelListResult, MaestroAppServerModelProviderCapabilitiesReadResult, MaestroAppServerThreadGoalResult, MaestroAppServerThreadListResult, MaestroAppServerThreadMetadataUpdateResult, MaestroAppServerThreadReadResult, MaestroAppServerTurnsListResult } from "@evalops/contracts";
1
+ import type { MaestroAppServerClientMethod, MaestroAppServerCommandExecResult, MaestroAppServerCommandProcessResult, MaestroAppServerDaemonStatusResult, MaestroAppServerEmptyResult, MaestroAppServerExternalAgentImportResult, MaestroAppServerFsMetadataResult, MaestroAppServerFsReadDirectoryResult, MaestroAppServerFsReadFileResult, MaestroAppServerFsWatchResult, MaestroAppServerInitializeResult, MaestroAppServerModelListResult, MaestroAppServerModelProviderCapabilitiesReadResult, MaestroAppServerNetworkAuditListResult, MaestroAppServerNetworkFetchResult, MaestroAppServerPluginBundleListResult, MaestroAppServerPluginBundleMutationResult, MaestroAppServerPolicyCheckResult, MaestroAppServerPolicyReadResult, MaestroAppServerProtocolModeListResult, MaestroAppServerProtocolModeSetResult, MaestroAppServerRemoteControlDrainResult, MaestroAppServerRemoteControlLeaseResult, MaestroAppServerRemoteControlStatusResult, MaestroAppServerRequirementsListResult, MaestroAppServerSandboxProbeResult, MaestroAppServerSandboxProofResult, MaestroAppServerThreadArchiveResult, MaestroAppServerThreadDeleteResult, MaestroAppServerThreadForkResult, MaestroAppServerThreadGoalResult, MaestroAppServerThreadListResult, MaestroAppServerThreadMetadataUpdateResult, MaestroAppServerThreadReadResult, MaestroAppServerThreadStartResult, MaestroAppServerTurnsListResult } from "@evalops/contracts";
2
2
  import { type MaestroAppServerSessionApi } from "./session-api.js";
3
3
  export interface MaestroAppServerClientInfo {
4
4
  name: string;
@@ -10,7 +10,7 @@ export interface InProcessMaestroAppServerClientOptions {
10
10
  maxPendingRequests?: number;
11
11
  }
12
12
  type AppServerRequestMethod = Exclude<MaestroAppServerClientMethod, "initialize">;
13
- type AppServerMethodResult<M extends AppServerRequestMethod> = M extends "model/list" ? MaestroAppServerModelListResult : M extends "modelProvider/capabilities/read" ? MaestroAppServerModelProviderCapabilitiesReadResult : M extends "thread/list" ? MaestroAppServerThreadListResult : M extends "thread/read" ? MaestroAppServerThreadReadResult : M extends "thread/metadata/update" ? MaestroAppServerThreadMetadataUpdateResult : M extends "thread/name/set" ? MaestroAppServerThreadMetadataUpdateResult : M extends "thread/goal/get" | "thread/goal/set" | "thread/goal/clear" ? MaestroAppServerThreadGoalResult : M extends "thread/turns/list" ? MaestroAppServerTurnsListResult : never;
13
+ type AppServerMethodResult<M extends AppServerRequestMethod> = M extends "protocol/mode/list" ? MaestroAppServerProtocolModeListResult : M extends "protocol/mode/set" ? MaestroAppServerProtocolModeSetResult : M extends "model/list" ? MaestroAppServerModelListResult : M extends "modelProvider/capabilities/read" ? MaestroAppServerModelProviderCapabilitiesReadResult : M extends "policy/read" ? MaestroAppServerPolicyReadResult : M extends "policy/check" ? MaestroAppServerPolicyCheckResult : M extends "requirements/list" ? MaestroAppServerRequirementsListResult : M extends "network/fetch" ? MaestroAppServerNetworkFetchResult : M extends "network/audit/list" ? MaestroAppServerNetworkAuditListResult : M extends "sandbox/probe" ? MaestroAppServerSandboxProbeResult : M extends "sandbox/proof/run" ? MaestroAppServerSandboxProofResult : M extends "externalAgent/import" ? MaestroAppServerExternalAgentImportResult : M extends "pluginBundle/list" ? MaestroAppServerPluginBundleListResult : M extends "pluginBundle/install" | "pluginBundle/remove" ? MaestroAppServerPluginBundleMutationResult : M extends "daemon/status" ? MaestroAppServerDaemonStatusResult : M extends "remoteControl/status" ? MaestroAppServerRemoteControlStatusResult : M extends "remoteControl/lease/read" | "remoteControl/lease/heartbeat" ? MaestroAppServerRemoteControlLeaseResult : M extends "remoteControl/drain" ? MaestroAppServerRemoteControlDrainResult : M extends "command/exec" ? MaestroAppServerCommandExecResult : M extends "command/exec/write" | "command/exec/terminate" ? MaestroAppServerCommandProcessResult : M extends "fs/readFile" ? MaestroAppServerFsReadFileResult : M extends "fs/readDirectory" ? MaestroAppServerFsReadDirectoryResult : M extends "fs/getMetadata" ? MaestroAppServerFsMetadataResult : M extends "fs/watch" ? MaestroAppServerFsWatchResult : M extends "fs/writeFile" | "fs/createDirectory" | "fs/remove" | "fs/copy" | "fs/unwatch" ? MaestroAppServerEmptyResult : M extends "thread/list" ? MaestroAppServerThreadListResult : M extends "thread/read" ? MaestroAppServerThreadReadResult : M extends "thread/metadata/update" ? MaestroAppServerThreadMetadataUpdateResult : M extends "thread/name/set" ? MaestroAppServerThreadMetadataUpdateResult : M extends "thread/goal/get" | "thread/goal/set" | "thread/goal/clear" ? MaestroAppServerThreadGoalResult : M extends "thread/start" ? MaestroAppServerThreadStartResult : M extends "thread/fork" ? MaestroAppServerThreadForkResult : M extends "thread/archive" | "thread/unarchive" ? MaestroAppServerThreadArchiveResult : M extends "thread/delete" ? MaestroAppServerThreadDeleteResult : M extends "thread/turns/list" ? MaestroAppServerTurnsListResult : never;
14
14
  export declare class InProcessMaestroAppServerClientError extends Error {
15
15
  readonly code: number;
16
16
  constructor(code: number, message: string);
@@ -1 +1 @@
1
- {"version":3,"file":"in-process-client.d.ts","sourceRoot":"","sources":["../../src/app-server/in-process-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,mDAAmD,EACnD,gCAAgC,EAChC,gCAAgC,EAChC,0CAA0C,EAC1C,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,KAAK,0BAA0B,EAE/B,MAAM,kBAAkB,CAAC;AAK1B,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,0BAA0B,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,KAAK,sBAAsB,GAAG,OAAO,CACpC,4BAA4B,EAC5B,YAAY,CACZ,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,sBAAsB,IAC1D,CAAC,SAAS,YAAY,GACnB,+BAA+B,GAC/B,CAAC,SAAS,iCAAiC,GAC1C,mDAAmD,GACnD,CAAC,SAAS,aAAa,GACtB,gCAAgC,GAChC,CAAC,SAAS,aAAa,GACtB,gCAAgC,GAChC,CAAC,SAAS,wBAAwB,GACjC,0CAA0C,GAC1C,CAAC,SAAS,iBAAiB,GAC1B,0CAA0C,GAC1C,CAAC,SACE,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACrB,gCAAgC,GAChC,CAAC,SAAS,mBAAmB,GAC5B,+BAA+B,GAC/B,KAAK,CAAC;AAEjB,qBAAa,oCAAqC,SAAQ,KAAK;IAE7D,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKhB;AAED,qBAAa,+BAA+B;IAQ1C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAG1B,GAAG,EAAE,0BAA0B,EAC/B,OAAO,EAAE,sCAAsC;IAQ3D,UAAU,IAAI,OAAO,CAAC,gCAAgC,CAAC;IA8BvD,OAAO,CAAC,CAAC,SAAS,sBAAsB,EAC7C,MAAM,EAAE,CAAC,EACT,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;CA8BpC;AAED,wBAAgB,qCAAqC,CACpD,GAAG,EAAE,0BAA0B,EAC/B,OAAO,EAAE,sCAAsC,GAC7C,+BAA+B,CAEjC"}
1
+ {"version":3,"file":"in-process-client.d.ts","sourceRoot":"","sources":["../../src/app-server/in-process-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"in-process-client.js","sourceRoot":"","sources":["../../src/app-server/in-process-client.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tMaestroAppServerClientMethod,\n\tMaestroAppServerInitializeResult,\n\tMaestroAppServerModelListResult,\n\tMaestroAppServerModelProviderCapabilitiesReadResult,\n\tMaestroAppServerThreadGoalResult,\n\tMaestroAppServerThreadListResult,\n\tMaestroAppServerThreadMetadataUpdateResult,\n\tMaestroAppServerThreadReadResult,\n\tMaestroAppServerTurnsListResult,\n} from \"@evalops/contracts\";\nimport {\n\ttype MaestroAppServerSessionApi,\n\thandleMaestroAppServerRequest,\n} from \"./session-api.js\";\n\nconst DEFAULT_MAX_PENDING_REQUESTS = 64;\nconst OVERLOADED_ERROR_CODE = -32001;\n\nexport interface MaestroAppServerClientInfo {\n\tname: string;\n\ttitle?: string;\n\tversion: string;\n}\n\nexport interface InProcessMaestroAppServerClientOptions {\n\tclientInfo: MaestroAppServerClientInfo;\n\tmaxPendingRequests?: number;\n}\n\ntype AppServerRequestMethod = Exclude<\n\tMaestroAppServerClientMethod,\n\t\"initialize\"\n>;\n\ntype AppServerMethodResult<M extends AppServerRequestMethod> =\n\tM extends \"model/list\"\n\t\t? MaestroAppServerModelListResult\n\t\t: M extends \"modelProvider/capabilities/read\"\n\t\t\t? MaestroAppServerModelProviderCapabilitiesReadResult\n\t\t\t: M extends \"thread/list\"\n\t\t\t\t? MaestroAppServerThreadListResult\n\t\t\t\t: M extends \"thread/read\"\n\t\t\t\t\t? MaestroAppServerThreadReadResult\n\t\t\t\t\t: M extends \"thread/metadata/update\"\n\t\t\t\t\t\t? MaestroAppServerThreadMetadataUpdateResult\n\t\t\t\t\t\t: M extends \"thread/name/set\"\n\t\t\t\t\t\t\t? MaestroAppServerThreadMetadataUpdateResult\n\t\t\t\t\t\t\t: M extends\n\t\t\t\t\t\t\t\t\t\t| \"thread/goal/get\"\n\t\t\t\t\t\t\t\t\t\t| \"thread/goal/set\"\n\t\t\t\t\t\t\t\t\t\t| \"thread/goal/clear\"\n\t\t\t\t\t\t\t\t? MaestroAppServerThreadGoalResult\n\t\t\t\t\t\t\t\t: M extends \"thread/turns/list\"\n\t\t\t\t\t\t\t\t\t? MaestroAppServerTurnsListResult\n\t\t\t\t\t\t\t\t\t: never;\n\nexport class InProcessMaestroAppServerClientError extends Error {\n\tconstructor(\n\t\treadonly code: number,\n\t\tmessage: string,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"InProcessMaestroAppServerClientError\";\n\t}\n}\n\nexport class InProcessMaestroAppServerClient {\n\tprivate initialized = false;\n\tprivate initializing = false;\n\tprivate nextRequestId = 1;\n\tprivate pendingRequests = 0;\n\tprivate readonly maxPendingRequests: number;\n\n\tconstructor(\n\t\tprivate readonly api: MaestroAppServerSessionApi,\n\t\tprivate readonly options: InProcessMaestroAppServerClientOptions,\n\t) {\n\t\tthis.maxPendingRequests = Math.max(\n\t\t\t1,\n\t\t\tMath.trunc(options.maxPendingRequests ?? DEFAULT_MAX_PENDING_REQUESTS),\n\t\t);\n\t}\n\n\tasync initialize(): Promise<MaestroAppServerInitializeResult> {\n\t\tif (this.initialized || this.initializing) {\n\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\t-32000,\n\t\t\t\t\"Already initialized\",\n\t\t\t);\n\t\t}\n\t\tthis.initializing = true;\n\t\ttry {\n\t\t\tconst response = await handleMaestroAppServerRequest(this.api, {\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tid: 0,\n\t\t\t\tmethod: \"initialize\",\n\t\t\t\tparams: {\n\t\t\t\t\tclientInfo: this.options.clientInfo,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (response.error) {\n\t\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\t\tresponse.error.code,\n\t\t\t\t\tresponse.error.message,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.initialized = true;\n\t\t\treturn response.result as MaestroAppServerInitializeResult;\n\t\t} finally {\n\t\t\tthis.initializing = false;\n\t\t}\n\t}\n\n\tasync request<M extends AppServerRequestMethod>(\n\t\tmethod: M,\n\t\tparams?: Record<string, unknown>,\n\t): Promise<AppServerMethodResult<M>> {\n\t\tif (!this.initialized) {\n\t\t\tthrow new InProcessMaestroAppServerClientError(-32000, \"Not initialized\");\n\t\t}\n\t\tif (this.pendingRequests >= this.maxPendingRequests) {\n\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\tOVERLOADED_ERROR_CODE,\n\t\t\t\t\"Server overloaded; retry later.\",\n\t\t\t);\n\t\t}\n\n\t\tthis.pendingRequests++;\n\t\ttry {\n\t\t\tconst response = await handleMaestroAppServerRequest(this.api, {\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tid: this.nextRequestId++,\n\t\t\t\tmethod,\n\t\t\t\tparams,\n\t\t\t});\n\t\t\tif (response.error) {\n\t\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\t\tresponse.error.code,\n\t\t\t\t\tresponse.error.message,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn response.result as AppServerMethodResult<M>;\n\t\t} finally {\n\t\t\tthis.pendingRequests--;\n\t\t}\n\t}\n}\n\nexport function createInProcessMaestroAppServerClient(\n\tapi: MaestroAppServerSessionApi,\n\toptions: InProcessMaestroAppServerClientOptions,\n): InProcessMaestroAppServerClient {\n\treturn new InProcessMaestroAppServerClient(api, options);\n}\n"]}
1
+ {"version":3,"file":"in-process-client.js","sourceRoot":"","sources":["../../src/app-server/in-process-client.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tMaestroAppServerClientMethod,\n\tMaestroAppServerCommandExecResult,\n\tMaestroAppServerCommandProcessResult,\n\tMaestroAppServerDaemonStatusResult,\n\tMaestroAppServerEmptyResult,\n\tMaestroAppServerExternalAgentImportResult,\n\tMaestroAppServerFsMetadataResult,\n\tMaestroAppServerFsReadDirectoryResult,\n\tMaestroAppServerFsReadFileResult,\n\tMaestroAppServerFsWatchResult,\n\tMaestroAppServerInitializeResult,\n\tMaestroAppServerModelListResult,\n\tMaestroAppServerModelProviderCapabilitiesReadResult,\n\tMaestroAppServerNetworkAuditListResult,\n\tMaestroAppServerNetworkFetchResult,\n\tMaestroAppServerPluginBundleListResult,\n\tMaestroAppServerPluginBundleMutationResult,\n\tMaestroAppServerPolicyCheckResult,\n\tMaestroAppServerPolicyReadResult,\n\tMaestroAppServerProtocolModeListResult,\n\tMaestroAppServerProtocolModeSetResult,\n\tMaestroAppServerRemoteControlDrainResult,\n\tMaestroAppServerRemoteControlLeaseResult,\n\tMaestroAppServerRemoteControlStatusResult,\n\tMaestroAppServerRequirementsListResult,\n\tMaestroAppServerSandboxProbeResult,\n\tMaestroAppServerSandboxProofResult,\n\tMaestroAppServerThreadArchiveResult,\n\tMaestroAppServerThreadDeleteResult,\n\tMaestroAppServerThreadForkResult,\n\tMaestroAppServerThreadGoalResult,\n\tMaestroAppServerThreadListResult,\n\tMaestroAppServerThreadMetadataUpdateResult,\n\tMaestroAppServerThreadReadResult,\n\tMaestroAppServerThreadStartResult,\n\tMaestroAppServerTurnsListResult,\n} from \"@evalops/contracts\";\nimport {\n\ttype MaestroAppServerSessionApi,\n\thandleMaestroAppServerRequest,\n} from \"./session-api.js\";\n\nconst DEFAULT_MAX_PENDING_REQUESTS = 64;\nconst OVERLOADED_ERROR_CODE = -32001;\n\nexport interface MaestroAppServerClientInfo {\n\tname: string;\n\ttitle?: string;\n\tversion: string;\n}\n\nexport interface InProcessMaestroAppServerClientOptions {\n\tclientInfo: MaestroAppServerClientInfo;\n\tmaxPendingRequests?: number;\n}\n\ntype AppServerRequestMethod = Exclude<\n\tMaestroAppServerClientMethod,\n\t\"initialize\"\n>;\n\ntype AppServerMethodResult<M extends AppServerRequestMethod> =\n\tM extends \"protocol/mode/list\"\n\t\t? MaestroAppServerProtocolModeListResult\n\t\t: M extends \"protocol/mode/set\"\n\t\t\t? MaestroAppServerProtocolModeSetResult\n\t\t\t: M extends \"model/list\"\n\t\t\t\t? MaestroAppServerModelListResult\n\t\t\t\t: M extends \"modelProvider/capabilities/read\"\n\t\t\t\t\t? MaestroAppServerModelProviderCapabilitiesReadResult\n\t\t\t\t\t: M extends \"policy/read\"\n\t\t\t\t\t\t? MaestroAppServerPolicyReadResult\n\t\t\t\t\t\t: M extends \"policy/check\"\n\t\t\t\t\t\t\t? MaestroAppServerPolicyCheckResult\n\t\t\t\t\t\t\t: M extends \"requirements/list\"\n\t\t\t\t\t\t\t\t? MaestroAppServerRequirementsListResult\n\t\t\t\t\t\t\t\t: M extends \"network/fetch\"\n\t\t\t\t\t\t\t\t\t? MaestroAppServerNetworkFetchResult\n\t\t\t\t\t\t\t\t\t: M extends \"network/audit/list\"\n\t\t\t\t\t\t\t\t\t\t? MaestroAppServerNetworkAuditListResult\n\t\t\t\t\t\t\t\t\t\t: M extends \"sandbox/probe\"\n\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerSandboxProbeResult\n\t\t\t\t\t\t\t\t\t\t\t: M extends \"sandbox/proof/run\"\n\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerSandboxProofResult\n\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"externalAgent/import\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerExternalAgentImportResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"pluginBundle/list\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerPluginBundleListResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"pluginBundle/install\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"pluginBundle/remove\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerPluginBundleMutationResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"daemon/status\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerDaemonStatusResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"remoteControl/status\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerRemoteControlStatusResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"remoteControl/lease/read\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"remoteControl/lease/heartbeat\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerRemoteControlLeaseResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"remoteControl/drain\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerRemoteControlDrainResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"command/exec\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerCommandExecResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"command/exec/write\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"command/exec/terminate\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerCommandProcessResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"fs/readFile\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerFsReadFileResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"fs/readDirectory\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerFsReadDirectoryResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"fs/getMetadata\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerFsMetadataResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"fs/watch\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerFsWatchResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"fs/writeFile\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"fs/createDirectory\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"fs/remove\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"fs/copy\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"fs/unwatch\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerEmptyResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/list\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadListResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/read\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadReadResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/metadata/update\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadMetadataUpdateResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/name/set\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadMetadataUpdateResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"thread/goal/get\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"thread/goal/set\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"thread/goal/clear\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadGoalResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/start\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadStartResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/fork\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadForkResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"thread/archive\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| \"thread/unarchive\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadArchiveResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/delete\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerThreadDeleteResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: M extends \"thread/turns/list\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MaestroAppServerTurnsListResult\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: never;\n\nexport class InProcessMaestroAppServerClientError extends Error {\n\tconstructor(\n\t\treadonly code: number,\n\t\tmessage: string,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"InProcessMaestroAppServerClientError\";\n\t}\n}\n\nexport class InProcessMaestroAppServerClient {\n\tprivate initialized = false;\n\tprivate initializing = false;\n\tprivate nextRequestId = 1;\n\tprivate pendingRequests = 0;\n\tprivate readonly maxPendingRequests: number;\n\n\tconstructor(\n\t\tprivate readonly api: MaestroAppServerSessionApi,\n\t\tprivate readonly options: InProcessMaestroAppServerClientOptions,\n\t) {\n\t\tthis.maxPendingRequests = Math.max(\n\t\t\t1,\n\t\t\tMath.trunc(options.maxPendingRequests ?? DEFAULT_MAX_PENDING_REQUESTS),\n\t\t);\n\t}\n\n\tasync initialize(): Promise<MaestroAppServerInitializeResult> {\n\t\tif (this.initialized || this.initializing) {\n\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\t-32000,\n\t\t\t\t\"Already initialized\",\n\t\t\t);\n\t\t}\n\t\tthis.initializing = true;\n\t\ttry {\n\t\t\tconst response = await handleMaestroAppServerRequest(this.api, {\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tid: 0,\n\t\t\t\tmethod: \"initialize\",\n\t\t\t\tparams: {\n\t\t\t\t\tclientInfo: this.options.clientInfo,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (response.error) {\n\t\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\t\tresponse.error.code,\n\t\t\t\t\tresponse.error.message,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.initialized = true;\n\t\t\treturn response.result as MaestroAppServerInitializeResult;\n\t\t} finally {\n\t\t\tthis.initializing = false;\n\t\t}\n\t}\n\n\tasync request<M extends AppServerRequestMethod>(\n\t\tmethod: M,\n\t\tparams?: Record<string, unknown>,\n\t): Promise<AppServerMethodResult<M>> {\n\t\tif (!this.initialized) {\n\t\t\tthrow new InProcessMaestroAppServerClientError(-32000, \"Not initialized\");\n\t\t}\n\t\tif (this.pendingRequests >= this.maxPendingRequests) {\n\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\tOVERLOADED_ERROR_CODE,\n\t\t\t\t\"Server overloaded; retry later.\",\n\t\t\t);\n\t\t}\n\n\t\tthis.pendingRequests++;\n\t\ttry {\n\t\t\tconst response = await handleMaestroAppServerRequest(this.api, {\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tid: this.nextRequestId++,\n\t\t\t\tmethod,\n\t\t\t\tparams,\n\t\t\t});\n\t\t\tif (response.error) {\n\t\t\t\tthrow new InProcessMaestroAppServerClientError(\n\t\t\t\t\tresponse.error.code,\n\t\t\t\t\tresponse.error.message,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn response.result as AppServerMethodResult<M>;\n\t\t} finally {\n\t\t\tthis.pendingRequests--;\n\t\t}\n\t}\n}\n\nexport function createInProcessMaestroAppServerClient(\n\tapi: MaestroAppServerSessionApi,\n\toptions: InProcessMaestroAppServerClientOptions,\n): InProcessMaestroAppServerClient {\n\treturn new InProcessMaestroAppServerClient(api, options);\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import type { MaestroAppServerNetworkAuditListResult, MaestroAppServerNetworkFetchResult } from "@evalops/contracts";
2
+ type UnknownRecord = Record<string, unknown>;
3
+ interface NetworkFetchBinding {
4
+ originalHost?: string;
5
+ resolvedAddress?: string;
6
+ resolvedAddresses?: string[];
7
+ }
8
+ type FetchLike = (input: string, init?: RequestInit, binding?: NetworkFetchBinding) => Promise<Response>;
9
+ export declare class MaestroAppServerNetworkGovernanceError extends Error {
10
+ readonly code: number;
11
+ constructor(code: number, message: string);
12
+ }
13
+ export interface MaestroAppServerNetworkGovernanceOptions {
14
+ fetchImpl?: FetchLike;
15
+ maxResponseBytes?: number;
16
+ maxAuditRecords?: number;
17
+ pinnedAddressTimeoutMs?: number;
18
+ }
19
+ export interface MaestroAppServerNetworkGovernance {
20
+ fetch(params?: UnknownRecord): Promise<MaestroAppServerNetworkFetchResult>;
21
+ listAudit(params?: UnknownRecord): Promise<MaestroAppServerNetworkAuditListResult>;
22
+ }
23
+ export declare function fetchWithPinnedAddress(input: string, init: RequestInit | undefined, binding?: NetworkFetchBinding, pinnedAddressTimeoutMs?: number): Promise<Response>;
24
+ export declare function createMaestroAppServerNetworkGovernance(options?: MaestroAppServerNetworkGovernanceOptions): MaestroAppServerNetworkGovernance;
25
+ export {};
26
+ //# sourceMappingURL=network-governance-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-governance-api.d.ts","sourceRoot":"","sources":["../../src/app-server/network-governance-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,sCAAsC,EAEtC,kCAAkC,EAElC,MAAM,oBAAoB,CAAC;AAI5B,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,UAAU,mBAAmB;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AACD,KAAK,SAAS,GAAG,CAChB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,mBAAmB,KACzB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAgBvB,qBAAa,sCAAuC,SAAQ,KAAK;IAE/D,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKhB;AAED,MAAM,WAAW,wCAAwC;IACxD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iCAAiC;IACjD,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC3E,SAAS,CACR,MAAM,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,sCAAsC,CAAC,CAAC;CACnD;AA2ND,wBAAsB,sBAAsB,CAC3C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,OAAO,GAAE,mBAAwB,EACjC,sBAAsB,SAAoC,GACxD,OAAO,CAAC,QAAQ,CAAC,CAyCnB;AAmLD,wBAAgB,uCAAuC,CACtD,OAAO,GAAE,wCAA6C,GACpD,iCAAiC,CA+HnC"}