@pixelzx/genesis 2026.5.5-1 → 2026.5.5-3

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 (2448) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/abort-Yw60gQ-C.js +201 -0
  4. package/dist/abort-cutoff.runtime-DCJWSVCk.js +20 -0
  5. package/dist/abort-cutoff.runtime.js +1 -1
  6. package/dist/abort.runtime-DYQuut_O.js +2 -0
  7. package/dist/abort.runtime.js +1 -1
  8. package/dist/accounts-BSCHGPHp.js +107 -0
  9. package/dist/accounts-Bb0FqxV2.js +104 -0
  10. package/dist/accounts-BjGgx8lz.js +2 -0
  11. package/dist/accounts-CJJT0vS7.js +43 -0
  12. package/dist/accounts-CM2Ko2xl.js +365 -0
  13. package/dist/accounts-Co4cbVCU.js +66 -0
  14. package/dist/accounts.runtime-V3yFS1uD.js +2 -0
  15. package/dist/accounts.runtime.js +1 -1
  16. package/dist/acp-cli-emMnOaiO.js +2193 -0
  17. package/dist/acp-spawn-BmyUZuJX.js +1093 -0
  18. package/dist/acp-spawn-DPF5zmnN.js +2 -0
  19. package/dist/acp-stateful-target-driver-CJ4JyIHf.js +89 -0
  20. package/dist/action-agents-D1tXt8Kj.js +67 -0
  21. package/dist/action-focus-Bk6AJsNH.js +132 -0
  22. package/dist/action-help-4nFSAuVo.js +7 -0
  23. package/dist/action-info-D-byoefn.js +101 -0
  24. package/dist/action-kill-Bo-NwBVR.js +33 -0
  25. package/dist/action-list-lAa4rlzN.js +21 -0
  26. package/dist/action-log-BasoUC3L.js +30 -0
  27. package/dist/action-send-DwLkiz4x.js +39 -0
  28. package/dist/action-spawn-C70_iR8d.js +47 -0
  29. package/dist/action-unfocus-dUVMx5Fh.js +29 -0
  30. package/dist/actions.runtime-BdSo6rN8.js +18 -0
  31. package/dist/actions.runtime-BvY67XKu.js +5 -0
  32. package/dist/actions.runtime.js +1 -1
  33. package/dist/agent-DDBv3Vgl.js +2 -0
  34. package/dist/agent-command-DC7I_88W.js +874 -0
  35. package/dist/agent-harness-runtime-TA6YH7Ud.js +144 -0
  36. package/dist/agent-runner-utils-CMe-JIDq.js +239 -0
  37. package/dist/agent-runner.runtime-le6AmJRw.js +3455 -0
  38. package/dist/agent-runner.runtime.js +1 -1
  39. package/dist/agent-runtime-CONy4fDD.js +18 -0
  40. package/dist/agents/auth-profiles.runtime.js +1 -1
  41. package/dist/agents/model-catalog.runtime.js +1 -1
  42. package/dist/agents/models-config.runtime.js +1 -1
  43. package/dist/agents/pi-model-discovery-runtime.js +1 -1
  44. package/dist/agents-BlbOM4XW.js +953 -0
  45. package/dist/agents-Byj8CDAP.js +5 -0
  46. package/dist/agents.command-shared-ZsmaTJk8.js +40 -0
  47. package/dist/aliases-C3Ks5x38.js +2 -0
  48. package/dist/aliases-CxBcx9gF.js +96 -0
  49. package/dist/api-2tC9XD4P.js +4 -0
  50. package/dist/api-BHhDAMrX.js +2 -0
  51. package/dist/api-CGlGNVyu2.js +2 -0
  52. package/dist/api-CK3xj--e.js +48 -0
  53. package/dist/api-CLoj7nYH.js +3 -0
  54. package/dist/api-CQ1kMo4j.js +3 -0
  55. package/dist/api-DEwetAD22.js +2 -0
  56. package/dist/api-DZiRkVPk.js +5 -0
  57. package/dist/api-_Y4nIHNo.js +139 -0
  58. package/dist/apply-CKkto_0W.js +508 -0
  59. package/dist/apply.runtime-Bby76mns.js +166 -0
  60. package/dist/apply.runtime-xFS-XMxA.js +2 -0
  61. package/dist/apply.runtime.js +1 -1
  62. package/dist/approval-client-helpers-Dn1zaJjB.js +82 -0
  63. package/dist/approval-gateway-resolver-Ba_2kb3B.js +29 -0
  64. package/dist/approval-gateway-runtime-7VMivk0A.js +2 -0
  65. package/dist/approval-handler-runtime-Bh0onoHD.js +439 -0
  66. package/dist/approval-native-helpers-SV1NXo3R.js +33 -0
  67. package/dist/approval-native-runtime-IYFyT8Hf.js +729 -0
  68. package/dist/approval-renderers-BFN4GCN1.js +64 -0
  69. package/dist/attempt-execution.runtime-CpL2tsYd.js +509 -0
  70. package/dist/attempt-execution.runtime.js +1 -1
  71. package/dist/attempt-execution.shared-BVGg4jtm.js +22 -0
  72. package/dist/attempt.prompt-helpers-Gx9nGKbW.js +221 -0
  73. package/dist/attempt.tool-run-context-BmuljBMs.js +933 -0
  74. package/dist/audit-CsjqOEVE.js +939 -0
  75. package/dist/audit-extra.async-CxQj_A5s.js +971 -0
  76. package/dist/audit-membership-runtime-Fh49slzK.js +550 -0
  77. package/dist/audit.deep.runtime-COBioB9E.js +2 -0
  78. package/dist/audit.deep.runtime.js +1 -1
  79. package/dist/audit.nondeep.runtime-Bk_5xOjT.js +880 -0
  80. package/dist/audit.nondeep.runtime.js +1 -1
  81. package/dist/audit.runtime-BybEaYH4.js +7 -0
  82. package/dist/audit.runtime.js +1 -1
  83. package/dist/auth-BFbLz2gx.js +383 -0
  84. package/dist/auth-C7wPgZbo.js +56 -0
  85. package/dist/auth-DLWZd54x.js +177 -0
  86. package/dist/auth-DdoNShRm.js +2 -0
  87. package/dist/auth-choice-DZdnIn4M.js +3 -0
  88. package/dist/auth-choice-DtSIi1lM.js +354 -0
  89. package/dist/auth-choice-dBaHPiBQ.js +88 -0
  90. package/dist/auth-choice-options-C0mgcUc9.js +97 -0
  91. package/dist/auth-choice-prompt-Crln8JIf.js +2 -0
  92. package/dist/auth-choice-prompt-DhSxj7wM.js +37 -0
  93. package/dist/auth-choice.apply.api-providers-DBPXmiaM.js +2 -0
  94. package/dist/auth-choice.apply.api-providers-TO_ZIWX7.js +34 -0
  95. package/dist/auth-choice.plugin-providers.runtime-CRMLXING.js +11 -0
  96. package/dist/auth-choice.plugin-providers.runtime.js +1 -1
  97. package/dist/auth-health-DvPWpSkl.js +183 -0
  98. package/dist/auth-install-policy-BpHrj1L-.js +195 -0
  99. package/dist/auth-order-CtO2WQTH.js +2 -0
  100. package/dist/auth-order-zXIiW-Cn.js +96 -0
  101. package/dist/auth-profiles-qkJp8etH.js +679 -0
  102. package/dist/backup-create-DgVJHnfc.js +395 -0
  103. package/dist/banner-0afXR3gC.js +2 -0
  104. package/dist/banner-D-k2EM3C.js +336 -0
  105. package/dist/base-url-N7e93gGu.js +15 -0
  106. package/dist/bash-tools-CnDYSbnX.js +2824 -0
  107. package/dist/bash-tools-DiOcKaak.js +3 -0
  108. package/dist/binding-routing-E9Gh_NqO.js +85 -0
  109. package/dist/binding-targets-C5PbBaZ6.js +121 -0
  110. package/dist/bluebubbles-C4fAEm2A.js +77 -0
  111. package/dist/brave-web-search-provider-DkkbSBBP.js +111 -0
  112. package/dist/brave-web-search-provider.runtime-AjyyvF6E.js +229 -0
  113. package/dist/brave-web-search-provider.runtime.js +1 -1
  114. package/dist/brave-web-search-provider.shared-Bk59J40Z.js +174 -0
  115. package/dist/bridge-auth-registry-j9Nf_eKW.js +23 -0
  116. package/dist/bridge-server-DragdaQD.js +113 -0
  117. package/dist/browser-config-runtime-DYHwPrae.js +7 -0
  118. package/dist/browser-control-auth-D_M31xJ1.js +2 -0
  119. package/dist/browser-node-runtime-Bgu82luB.js +12 -0
  120. package/dist/browser-profiles-C3ffkgOt.js +2 -0
  121. package/dist/browser-runtime-D84IBo4A.js +387 -0
  122. package/dist/browser-setup-tools-VC7rGCyn.js +13 -0
  123. package/dist/build-DeGDX_pJ.js +550 -0
  124. package/dist/build-info.json +3 -3
  125. package/dist/bundled/boot-md/handler.js +5 -5
  126. package/dist/bundled/session-memory/handler.js +1 -1
  127. package/dist/call-CbvF41H8.js +3 -0
  128. package/dist/call-DuDGOVT1.js +331 -0
  129. package/dist/call-status-DMAmF1AO.js +33 -0
  130. package/dist/call.runtime-DztWXjMr.js +2 -0
  131. package/dist/call.runtime.js +1 -1
  132. package/dist/capability-cli-DoJLi3eS.js +1401 -0
  133. package/dist/card-command-VrZ5VEMb.js +241 -0
  134. package/dist/catalog-provider-iymLG3Kz.js +40 -0
  135. package/dist/catchup-Dk-5hIwm.js +300 -0
  136. package/dist/channel-BJ9iEC4Y.js +595 -0
  137. package/dist/channel-BdvsbgZE.js +453 -0
  138. package/dist/channel-Bu-7KaIx.js +1802 -0
  139. package/dist/channel-C9vQNMK1.js +350 -0
  140. package/dist/channel-CZoVAZyW.js +491 -0
  141. package/dist/channel-Cr2KTwyo.js +840 -0
  142. package/dist/channel-DCeC6AEQ.js +297 -0
  143. package/dist/channel-DOGp2TfT.js +1320 -0
  144. package/dist/channel-Dfq1lxxI.js +226 -0
  145. package/dist/channel-add-wizard-CTUaSVvE.js +125 -0
  146. package/dist/channel-add-wizard-DeODDpiD.js +2 -0
  147. package/dist/channel-core-DiltAzdr.js +5 -0
  148. package/dist/channel-hZDaTBpm.js +1100 -0
  149. package/dist/channel-inbound-DvOS-Z1s.js +31 -0
  150. package/dist/channel-plugin-runtime-PFRHQ61T.js +771 -0
  151. package/dist/channel-runtime-BAjxIEfQ.js +425 -0
  152. package/dist/channel-summary-BMmi0p_s.js +2 -0
  153. package/dist/channel-summary-BvSCERUz.js +129 -0
  154. package/dist/channel-szBwbQZB.js +1174 -0
  155. package/dist/channel.runtime-B1Ry35gt.js +89 -0
  156. package/dist/channel.runtime-BNp6GxaQ.js +34702 -0
  157. package/dist/channel.runtime-BfjvNvbj.js +2364 -0
  158. package/dist/channel.runtime-BlGn4QYV.js +4 -0
  159. package/dist/channel.runtime-BozvCkMo.js +26 -0
  160. package/dist/channel.runtime-D7bv5rJl.js +576 -0
  161. package/dist/channel.runtime-DQ5gSgeW.js +109 -0
  162. package/dist/channel.runtime-IxClQMdT.js +430 -0
  163. package/dist/channel.runtime-xIH29E7O.js +67 -0
  164. package/dist/channel.runtime.js +1 -1
  165. package/dist/channel.setup-BsfyGPgV.js +10 -0
  166. package/dist/channels-Dn2VHRmZ.js +733 -0
  167. package/dist/channels-cli-l4xjPvDv.js +268 -0
  168. package/dist/chat-zUeX8mQw.js +2758 -0
  169. package/dist/chrome-CgLTMlX5.js +1181 -0
  170. package/dist/chrome-mcp-0zQTzU3A.js +2 -0
  171. package/dist/chrome-mcp-BjiLGZmi.js +600 -0
  172. package/dist/chrome.executables-CoZsfQLC.js +541 -0
  173. package/dist/clawbot-cli-C3BFdHJB.js +9 -0
  174. package/dist/clawhub-Dz5KDje-.js +400 -0
  175. package/dist/clawhub-LPw6cLUe.js +300 -0
  176. package/dist/cli/daemon-cli.js +4 -4
  177. package/dist/cli-BTnpFsj1.js +2 -0
  178. package/dist/cli-CAFQ6Cwy.js +72 -0
  179. package/dist/cli-CUAjdQ7v.js +683 -0
  180. package/dist/cli-CiqIbwtg.js +219 -0
  181. package/dist/cli-Cp2qY3Xp.js +154 -0
  182. package/dist/cli-D8SnjKKR.js +3726 -0
  183. package/dist/cli-DL1ppK38.js +2 -0
  184. package/dist/cli-Dyu4jU8j.js +2 -0
  185. package/dist/cli-runner-DO6lEPJr.js +286 -0
  186. package/dist/cli-runner.runtime-B-Ic4DyC.js +3 -0
  187. package/dist/cli-runner.runtime-C4cAORcg.js +4 -0
  188. package/dist/cli-runner.runtime.js +1 -1
  189. package/dist/cli-startup-metadata.json +2 -2
  190. package/dist/cli.runtime-CYHctHVS.js +1261 -0
  191. package/dist/cli.runtime.js +1 -1
  192. package/dist/client-Bb_miREU.js +138 -0
  193. package/dist/client-CrPccv7a.js +713 -0
  194. package/dist/codex-native-web-search-Bu1J52-W.js +113 -0
  195. package/dist/codex-native-web-search-Deyt8mj0.js +3 -0
  196. package/dist/combined-store-gateway-DT2C-8GW.js +163 -0
  197. package/dist/command-auth-B7P-1IeA.js +76 -0
  198. package/dist/command-config-resolution-BB-SsCob.js +23 -0
  199. package/dist/command-config-resolution-DMKYb0Kh.js +2 -0
  200. package/dist/command-config-resolution.runtime-Coeaa9lz.js +2 -0
  201. package/dist/command-config-resolution.runtime.js +1 -1
  202. package/dist/command-execution-startup-BlHlyCgU.js +305 -0
  203. package/dist/command-registry-B2JzWHqy.js +9 -0
  204. package/dist/command-registry-CNUpJUp8.js +4 -0
  205. package/dist/command-registry-core-BLap9aka.js +101 -0
  206. package/dist/command-secret-gateway-ChRXthnT.js +528 -0
  207. package/dist/command-status.runtime-D8VWyC3v.js +87 -0
  208. package/dist/command-status.runtime.js +1 -1
  209. package/dist/commands-acp-QLk1cU5f.js +77 -0
  210. package/dist/commands-compact.runtime-BIHG2RSY.js +10 -0
  211. package/dist/commands-compact.runtime.js +1 -1
  212. package/dist/commands-core.runtime-2OrgNeAA.js +2 -0
  213. package/dist/commands-core.runtime.js +1 -1
  214. package/dist/commands-handlers.runtime-DjimbxSJ.js +4597 -0
  215. package/dist/commands-handlers.runtime.js +1 -1
  216. package/dist/commands-models-BAneNjrI.js +327 -0
  217. package/dist/commands-reset-hooks-BkEMNl84.js +133 -0
  218. package/dist/commands-status-DiIQSYSt.js +16 -0
  219. package/dist/commands-status.runtime-DBRxICN6.js +3 -0
  220. package/dist/commands-status.runtime.js +1 -1
  221. package/dist/commands-subagents-control.runtime-BmqXiKHu.js +3 -0
  222. package/dist/commands-subagents-control.runtime-CVQSOd8H.js +2 -0
  223. package/dist/commands-subagents-control.runtime.js +1 -1
  224. package/dist/commands-system-prompt-2qwZc3xL.js +158 -0
  225. package/dist/commands-system-prompt-Clnn_Gct.js +2 -0
  226. package/dist/commands.runtime-DAqpiDPr.js +166 -0
  227. package/dist/commands.runtime.js +1 -1
  228. package/dist/compact-DqOkQZYr.js +1118 -0
  229. package/dist/compact.runtime-CC_l29j4.js +12 -0
  230. package/dist/compact.runtime.js +1 -1
  231. package/dist/completion-cli-DZFJPSiF.js +328 -0
  232. package/dist/config-3He3LWHw.js +5 -0
  233. package/dist/config-D9XEe0Cd.js +251 -0
  234. package/dist/config-DDoTcXdn.js +9 -0
  235. package/dist/config-api-q218x1pm.js +2 -0
  236. package/dist/config-cli-DVDwIjKr.js +1078 -0
  237. package/dist/config-compat-2ov7ryzQ.js +126 -0
  238. package/dist/config-compat-k8n8hPxr.js +130 -0
  239. package/dist/config-guard-8hQGGUl4.js +96 -0
  240. package/dist/config-runtime-CiIsBMuo.js +32 -0
  241. package/dist/config-validation-BeKCV2p-.js +30 -0
  242. package/dist/configure-39oQUHuK.js +1245 -0
  243. package/dist/configure-BGD8tViZ.js +2 -0
  244. package/dist/connect-options-Fpky6zuL.js +699 -0
  245. package/dist/context-D3NokKLx.js +2 -0
  246. package/dist/context-rtkuRtGt.js +278 -0
  247. package/dist/control-auth-BlqH4IVx.js +125 -0
  248. package/dist/control-service-CaqDohiY.js +156 -0
  249. package/dist/control-ui-CIhsZ2Nb.js +688 -0
  250. package/dist/conversation-id-BH9GFVB2.js +235 -0
  251. package/dist/conversation-id-UdIegcf4.js +38 -0
  252. package/dist/conversation-label-generator-CNvvC18B.js +56 -0
  253. package/dist/conversation-runtime-Bao0kIPf.js +31 -0
  254. package/dist/core-DXUh5Xbm.js +275 -0
  255. package/dist/create-5kvABMhw.js +80 -0
  256. package/dist/cron-cli-B1mxHnGP.js +713 -0
  257. package/dist/daemon-cli-CaHBNwMy.js +12 -0
  258. package/dist/daemon-install-BBwOxf1q.js +64 -0
  259. package/dist/daemon-install-auth-profiles-store.runtime-DWg8FeUH.js +2 -0
  260. package/dist/daemon-install-auth-profiles-store.runtime.js +1 -1
  261. package/dist/daemon-install-plan.shared-WG_DYWei.js +287 -0
  262. package/dist/ddg-client-BnD8tAM2.js +147 -0
  263. package/dist/ddg-search-provider-CNeCrvl0.js +54 -0
  264. package/dist/delegate-7G7R4C-C.js +64 -0
  265. package/dist/deliver-CEuqmKKH.js +747 -0
  266. package/dist/deliver-Cndvxi9P.js +3 -0
  267. package/dist/deliver-runtime-BvDWmZrW.js +2 -0
  268. package/dist/delivery-outbound.runtime-BQeyIAOJ.js +6 -0
  269. package/dist/delivery-outbound.runtime.js +1 -1
  270. package/dist/delivery.runtime-Ci0ToUzj.js +253 -0
  271. package/dist/delivery.runtime.js +1 -1
  272. package/dist/deps-CFCIpuzV.js +2 -0
  273. package/dist/deps-D3gqpOra.js +73 -0
  274. package/dist/detached-task-runtime-BMdSrcuz.js +73 -0
  275. package/dist/devices-cli-DnEQH3R2.js +496 -0
  276. package/dist/diagnostic-CC9CPVio.js +400 -0
  277. package/dist/diagnostic-support-export-CufM12zj.js +533 -0
  278. package/dist/diagnostics-C8VwSDtU.js +154 -0
  279. package/dist/direct-dm-BSEkIiOe.js +64 -0
  280. package/dist/directive-handling.fast-lane-C6uvW96M.js +66 -0
  281. package/dist/directive-handling.impl-BTuNitCK.js +2 -0
  282. package/dist/directive-handling.impl-DIeSI-ux.js +703 -0
  283. package/dist/directive-handling.model-selection-Cq8JhQdI.js +114 -0
  284. package/dist/directive-handling.persist.runtime-DrUu8zaW.js +215 -0
  285. package/dist/directive-handling.persist.runtime.js +1 -1
  286. package/dist/directory-cli-DNMdDpqd.js +240 -0
  287. package/dist/dispatch-1gv6It-6.js +1131 -0
  288. package/dist/dispatch-acp-hbhR9aHr.js +981 -0
  289. package/dist/dispatch-acp-manager.runtime-BXQbK1cO.js +3 -0
  290. package/dist/dispatch-acp-manager.runtime.js +1 -1
  291. package/dist/dispatch-acp-media.runtime-DqSdScnW.js +4 -0
  292. package/dist/dispatch-acp-media.runtime.js +1 -1
  293. package/dist/dispatch-acp-session.runtime-B-AG2-VC.js +2 -0
  294. package/dist/dispatch-acp-session.runtime.js +1 -1
  295. package/dist/dispatch-acp.runtime-Dhx090J2.js +19 -0
  296. package/dist/dispatch-acp.runtime.js +1 -1
  297. package/dist/dns-cli-z20808Yz.js +192 -0
  298. package/dist/doctor-auth-CqdmPgiK.js +172 -0
  299. package/dist/doctor-auth-legacy-oauth-C2ojfRvc.js +2 -0
  300. package/dist/doctor-auth-legacy-oauth-CcveIbUh.js +48 -0
  301. package/dist/doctor-claude-cli-B6pnkFEn.js +147 -0
  302. package/dist/doctor-config-analysis-B_xkK9eg.js +94 -0
  303. package/dist/doctor-config-flow-D9W_glLc.js +417 -0
  304. package/dist/doctor-config-preflight-BAZTh5MZ.js +2 -0
  305. package/dist/doctor-config-preflight-Bui2U29x.js +63 -0
  306. package/dist/doctor-contract-DgJ867-C.js +26 -0
  307. package/dist/doctor-device-pairing-1gf3tk3g.js +307 -0
  308. package/dist/doctor-gateway-daemon-flow-LEnN6pL-.js +250 -0
  309. package/dist/doctor-gateway-health-DwxLkTV4.js +60 -0
  310. package/dist/doctor-gateway-services-BhqUOY_e.js +316 -0
  311. package/dist/doctor-health-CdJkaUYf.js +59 -0
  312. package/dist/doctor-health-contributions-BaTnIzCT.js +486 -0
  313. package/dist/doctor-memory-search-C25cUVoI.js +371 -0
  314. package/dist/doctor-prompter-BZTb5rOn.js +56 -0
  315. package/dist/doctor-sandbox-CNi6l2wR.js +194 -0
  316. package/dist/doctor-session-locks-CYaHscyv.js +52 -0
  317. package/dist/doctor-state-integrity-jbbt8OVU.js +609 -0
  318. package/dist/doctor-state-migrations-DgYUKVNF.js +2 -0
  319. package/dist/doctor-update-r4fBiE_r.js +58 -0
  320. package/dist/doctor-workspace-status-DnBARoPa.js +75 -0
  321. package/dist/dreaming-BAGFdUxh.js +1574 -0
  322. package/dist/dreaming-narrative-XoOfVb0x.js +595 -0
  323. package/dist/dreaming-shared-B7vlQ1yu.js +21 -0
  324. package/dist/embedded-gateway-stub.runtime-xwZ-M7Ei.js +9 -0
  325. package/dist/embedded-gateway-stub.runtime.js +1 -1
  326. package/dist/embedding-batch-BU4JjG1y.js +161 -0
  327. package/dist/embedding-batch-DOZ1gHYu.js +191 -0
  328. package/dist/embedding-provider-BI2BRW8e.js +64 -0
  329. package/dist/embedding-provider-Bb3l6tny.js +33 -0
  330. package/dist/embedding-provider-Cjyi9qRs.js +118 -0
  331. package/dist/embedding-provider-D-IE5LZN.js +38 -0
  332. package/dist/embeddings-eOJvLToU.js +215 -0
  333. package/dist/embeddings-http-BDz5OXZk.js +205 -0
  334. package/dist/engine-embeddings-CxNSH_in.js +458 -0
  335. package/dist/engine-qmd-BSGZVwOC.js +551 -0
  336. package/dist/entry.js +2 -2
  337. package/dist/exa-web-search-provider-DMHM6_vZ.js +80 -0
  338. package/dist/exa-web-search-provider.runtime-5amTdDMt.js +2 -0
  339. package/dist/exa-web-search-provider.runtime-DOeJpDGm.js +302 -0
  340. package/dist/exa-web-search-provider.runtime.js +1 -1
  341. package/dist/exec-approval-forwarder.runtime-ToZ9QUrR.js +3 -0
  342. package/dist/exec-approval-forwarder.runtime.js +1 -1
  343. package/dist/exec-approval-reply-CErKkY_w.js +2 -0
  344. package/dist/exec-approval-reply-CwnSisXg.js +296 -0
  345. package/dist/exec-approval-session-target-BcyDQz_G.js +176 -0
  346. package/dist/exec-approvals-cli-CWVWSMk-.js +498 -0
  347. package/dist/exec-policy-cli-F3L_mLPh.js +298 -0
  348. package/dist/extensionAPI.js +4 -4
  349. package/dist/extensions/active-memory/index.js +3 -3
  350. package/dist/extensions/alibaba/index.js +1 -1
  351. package/dist/extensions/alibaba/video-generation-provider.js +1 -1
  352. package/dist/extensions/arcee/index.js +2 -2
  353. package/dist/extensions/bluebubbles/api.js +3 -3
  354. package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
  355. package/dist/extensions/brave/index.js +1 -1
  356. package/dist/extensions/brave/test-api.js +1 -1
  357. package/dist/extensions/brave/web-search-provider.js +1 -1
  358. package/dist/extensions/browser/browser-bridge.js +1 -1
  359. package/dist/extensions/browser/browser-config.js +4 -4
  360. package/dist/extensions/browser/browser-control-auth.js +2 -2
  361. package/dist/extensions/browser/browser-doctor.js +5 -5
  362. package/dist/extensions/browser/browser-host-inspection.js +1 -1
  363. package/dist/extensions/browser/browser-maintenance.js +2 -2
  364. package/dist/extensions/browser/browser-profiles.js +2 -2
  365. package/dist/extensions/browser/browser-runtime-api.js +14 -14
  366. package/dist/extensions/browser/index.js +1 -1
  367. package/dist/extensions/browser/plugin-registration.js +1 -1
  368. package/dist/extensions/browser/register.runtime.js +3 -3
  369. package/dist/extensions/browser/runtime-api.js +15 -15
  370. package/dist/extensions/browser/setup-api.js +2 -2
  371. package/dist/extensions/browser/test-support.js +1 -1
  372. package/dist/extensions/byteplus/index.js +3 -3
  373. package/dist/extensions/byteplus/video-generation-provider.js +1 -1
  374. package/dist/extensions/chutes/api.js +3 -3
  375. package/dist/extensions/chutes/index.js +7 -7
  376. package/dist/extensions/chutes/models.js +1 -1
  377. package/dist/extensions/chutes/onboard.js +2 -2
  378. package/dist/extensions/chutes/provider-catalog.js +1 -1
  379. package/dist/extensions/cloudflare-ai-gateway/api.js +1 -1
  380. package/dist/extensions/cloudflare-ai-gateway/catalog-provider.js +1 -1
  381. package/dist/extensions/cloudflare-ai-gateway/index.js +7 -7
  382. package/dist/extensions/comfy/image-generation-provider.js +2 -2
  383. package/dist/extensions/comfy/index.js +5 -5
  384. package/dist/extensions/comfy/music-generation-provider.js +1 -1
  385. package/dist/extensions/comfy/test-helpers.js +1 -1
  386. package/dist/extensions/comfy/video-generation-provider.js +2 -2
  387. package/dist/extensions/comfy/workflow-runtime.js +1 -1
  388. package/dist/extensions/deepgram/index.js +1 -1
  389. package/dist/extensions/deepgram/realtime-transcription-provider.js +1 -1
  390. package/dist/extensions/deepgram/test-api.js +1 -1
  391. package/dist/extensions/deepseek/index.js +1 -1
  392. package/dist/extensions/device-pair/api.js +2 -2
  393. package/dist/extensions/device-pair/index.js +5 -5
  394. package/dist/extensions/device-pair/notify.js +1 -1
  395. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  396. package/dist/extensions/device-pair/qr-image.js +2 -2
  397. package/dist/extensions/duckduckgo/index.js +1 -1
  398. package/dist/extensions/duckduckgo/web-search-provider.js +1 -1
  399. package/dist/extensions/elevenlabs/config-compat.js +1 -1
  400. package/dist/extensions/elevenlabs/contract-api.js +2 -2
  401. package/dist/extensions/elevenlabs/doctor-contract.js +2 -2
  402. package/dist/extensions/elevenlabs/index.js +2 -2
  403. package/dist/extensions/elevenlabs/realtime-transcription-provider.js +1 -1
  404. package/dist/extensions/elevenlabs/setup-api.js +1 -1
  405. package/dist/extensions/elevenlabs/speech-provider.js +1 -1
  406. package/dist/extensions/elevenlabs/test-api.js +2 -2
  407. package/dist/extensions/exa/index.js +1 -1
  408. package/dist/extensions/exa/test-api.js +1 -1
  409. package/dist/extensions/exa/web-search-provider.js +1 -1
  410. package/dist/extensions/fal/image-generation-provider.js +1 -1
  411. package/dist/extensions/fal/index.js +3 -3
  412. package/dist/extensions/fal/provider-registration.js +1 -1
  413. package/dist/extensions/fal/test-api.js +2 -2
  414. package/dist/extensions/fal/video-generation-provider.js +1 -1
  415. package/dist/extensions/firecrawl/api.js +1 -1
  416. package/dist/extensions/fireworks/index.js +1 -1
  417. package/dist/extensions/github-copilot/api.js +1 -1
  418. package/dist/extensions/github-copilot/auth.js +1 -1
  419. package/dist/extensions/github-copilot/embeddings.js +1 -1
  420. package/dist/extensions/github-copilot/index.js +8 -8
  421. package/dist/extensions/github-copilot/login.js +1 -1
  422. package/dist/extensions/github-copilot/models-defaults.js +1 -1
  423. package/dist/extensions/github-copilot/models.js +1 -1
  424. package/dist/extensions/github-copilot/register.runtime.js +3 -3
  425. package/dist/extensions/github-copilot/replay-policy.js +1 -1
  426. package/dist/extensions/google-meet/index.js +7 -7
  427. package/dist/extensions/groq/index.js +1 -1
  428. package/dist/extensions/groq/media-understanding-provider.js +1 -1
  429. package/dist/extensions/groq/test-api.js +1 -1
  430. package/dist/extensions/huggingface/api.js +3 -3
  431. package/dist/extensions/huggingface/index.js +3 -3
  432. package/dist/extensions/huggingface/models.js +1 -1
  433. package/dist/extensions/huggingface/onboard.js +1 -1
  434. package/dist/extensions/huggingface/provider-catalog.js +2 -2
  435. package/dist/extensions/image-generation-core/api.js +3 -3
  436. package/dist/extensions/image-generation-core/runtime-api.js +2 -2
  437. package/dist/extensions/imessage/api.js +5 -5
  438. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  439. package/dist/extensions/imessage/contract-api.js +2 -2
  440. package/dist/extensions/imessage/media-contract-api.js +2 -2
  441. package/dist/extensions/imessage/runtime-api.js +5 -5
  442. package/dist/extensions/imessage/test-api.js +2 -2
  443. package/dist/extensions/irc/api.js +2 -2
  444. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  445. package/dist/extensions/kilocode/api.js +2 -2
  446. package/dist/extensions/kilocode/index.js +6 -6
  447. package/dist/extensions/kilocode/onboard.js +2 -2
  448. package/dist/extensions/kilocode/provider-catalog.js +1 -1
  449. package/dist/extensions/kilocode/provider-models.js +1 -1
  450. package/dist/extensions/kilocode/shared.js +1 -1
  451. package/dist/extensions/kimi-coding/index.js +4 -4
  452. package/dist/extensions/kimi-coding/stream.js +1 -1
  453. package/dist/extensions/line/api.js +2 -2
  454. package/dist/extensions/line/channel-plugin-api.js +1 -1
  455. package/dist/extensions/line/contract-api.js +1 -1
  456. package/dist/extensions/line/index.js +1 -1
  457. package/dist/extensions/line/runtime-api.js +7 -7
  458. package/dist/extensions/line/setup-api.js +1 -1
  459. package/dist/extensions/litellm/index.js +1 -1
  460. package/dist/extensions/llm-task/index.js +3 -3
  461. package/dist/extensions/lmstudio/api.js +7 -7
  462. package/dist/extensions/lmstudio/index.js +3 -3
  463. package/dist/extensions/lmstudio/memory-embedding-adapter.js +1 -1
  464. package/dist/extensions/lmstudio/runtime-api.js +1 -1
  465. package/dist/extensions/lobster/index.js +3 -3
  466. package/dist/extensions/lobster/runtime-api.js +1 -1
  467. package/dist/extensions/mattermost/api.js +1 -1
  468. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  469. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  470. package/dist/extensions/mattermost/policy-api.js +1 -1
  471. package/dist/extensions/mattermost/runtime-api.js +8 -8
  472. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  473. package/dist/extensions/media-understanding-core/runtime-api.js +2 -2
  474. package/dist/extensions/memory-core/api.js +1 -1
  475. package/dist/extensions/memory-core/cli-metadata.js +2 -2
  476. package/dist/extensions/memory-core/index.js +12 -12
  477. package/dist/extensions/memory-core/manager-runtime.js +1 -1
  478. package/dist/extensions/memory-core/runtime-api.js +7 -7
  479. package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
  480. package/dist/extensions/memory-lancedb/index.js +2 -2
  481. package/dist/extensions/memory-wiki/cli-metadata.js +1 -1
  482. package/dist/extensions/memory-wiki/index.js +1 -1
  483. package/dist/extensions/microsoft/index.js +1 -1
  484. package/dist/extensions/microsoft/speech-provider.js +1 -1
  485. package/dist/extensions/microsoft/test-api.js +1 -1
  486. package/dist/extensions/microsoft/tts.js +1 -1
  487. package/dist/extensions/microsoft-foundry/auth.js +1 -1
  488. package/dist/extensions/microsoft-foundry/cli.js +1 -1
  489. package/dist/extensions/microsoft-foundry/index.js +1 -1
  490. package/dist/extensions/microsoft-foundry/onboard.js +2 -2
  491. package/dist/extensions/microsoft-foundry/provider.js +1 -1
  492. package/dist/extensions/microsoft-foundry/runtime.js +1 -1
  493. package/dist/extensions/microsoft-foundry/shared-runtime.js +2 -2
  494. package/dist/extensions/microsoft-foundry/shared.js +1 -1
  495. package/dist/extensions/minimax/image-generation-provider.js +1 -1
  496. package/dist/extensions/minimax/index.js +7 -7
  497. package/dist/extensions/minimax/media-understanding-provider.js +1 -1
  498. package/dist/extensions/minimax/music-generation-provider.js +1 -1
  499. package/dist/extensions/minimax/oauth.js +1 -1
  500. package/dist/extensions/minimax/oauth.runtime.js +1 -1
  501. package/dist/extensions/minimax/provider-registration.js +1 -1
  502. package/dist/extensions/minimax/speech-provider.js +1 -1
  503. package/dist/extensions/minimax/test-api.js +5 -5
  504. package/dist/extensions/minimax/video-generation-provider.js +1 -1
  505. package/dist/extensions/minimax/web-search-provider.js +1 -1
  506. package/dist/extensions/mistral/embedding-provider.js +1 -1
  507. package/dist/extensions/mistral/index.js +5 -5
  508. package/dist/extensions/mistral/media-understanding-provider.js +1 -1
  509. package/dist/extensions/mistral/memory-embedding-adapter.js +1 -1
  510. package/dist/extensions/mistral/provider-compat.js +1 -1
  511. package/dist/extensions/mistral/realtime-transcription-provider.js +1 -1
  512. package/dist/extensions/mistral/test-api.js +2 -2
  513. package/dist/extensions/moonshot/index.js +5 -5
  514. package/dist/extensions/moonshot/media-understanding-provider.js +1 -1
  515. package/dist/extensions/moonshot/test-api.js +2 -2
  516. package/dist/extensions/moonshot/web-search-provider.js +1 -1
  517. package/dist/extensions/msteams/api.js +1 -1
  518. package/dist/extensions/msteams/channel-plugin-api.js +1 -1
  519. package/dist/extensions/msteams/runtime-api.js +4 -4
  520. package/dist/extensions/msteams/test-api.js +1 -1
  521. package/dist/extensions/nextcloud-talk/api.js +1 -1
  522. package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
  523. package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
  524. package/dist/extensions/nvidia/index.js +1 -1
  525. package/dist/extensions/ollama/api.js +3 -3
  526. package/dist/extensions/ollama/index.js +10 -10
  527. package/dist/extensions/ollama/runtime-api.js +2 -2
  528. package/dist/extensions/ollama/web-search-provider.js +1 -1
  529. package/dist/extensions/openai/api.js +4 -4
  530. package/dist/extensions/openai/base-url.js +1 -1
  531. package/dist/extensions/openai/embedding-batch.js +1 -1
  532. package/dist/extensions/openai/embedding-provider.js +1 -1
  533. package/dist/extensions/openai/image-generation-provider.js +1 -1
  534. package/dist/extensions/openai/index.js +10 -10
  535. package/dist/extensions/openai/media-understanding-provider.js +1 -1
  536. package/dist/extensions/openai/memory-embedding-adapter.js +1 -1
  537. package/dist/extensions/openai/native-web-search.js +1 -1
  538. package/dist/extensions/openai/openai-codex-auth-identity.js +1 -1
  539. package/dist/extensions/openai/openai-codex-device-code.js +1 -1
  540. package/dist/extensions/openai/openai-codex-provider.js +1 -1
  541. package/dist/extensions/openai/openai-codex-shared.js +1 -1
  542. package/dist/extensions/openai/openai-provider.js +1 -1
  543. package/dist/extensions/openai/realtime-provider-shared.js +1 -1
  544. package/dist/extensions/openai/realtime-transcription-provider.js +1 -1
  545. package/dist/extensions/openai/realtime-voice-provider.js +1 -1
  546. package/dist/extensions/openai/register.runtime.js +7 -7
  547. package/dist/extensions/openai/shared.js +1 -1
  548. package/dist/extensions/openai/speech-provider.js +1 -1
  549. package/dist/extensions/openai/test-api.js +6 -6
  550. package/dist/extensions/openai/transport-policy.js +1 -1
  551. package/dist/extensions/openai/video-generation-provider.js +1 -1
  552. package/dist/extensions/opencode/index.js +3 -3
  553. package/dist/extensions/opencode/media-understanding-provider.js +1 -1
  554. package/dist/extensions/opencode-go/index.js +2 -2
  555. package/dist/extensions/opencode-go/media-understanding-provider.js +1 -1
  556. package/dist/extensions/openrouter/api.js +2 -2
  557. package/dist/extensions/openrouter/image-generation-provider.js +1 -1
  558. package/dist/extensions/openrouter/index.js +8 -8
  559. package/dist/extensions/openrouter/media-understanding-provider.js +1 -1
  560. package/dist/extensions/openrouter/register.runtime.js +7 -7
  561. package/dist/extensions/openrouter/speech-provider.js +1 -1
  562. package/dist/extensions/openrouter/stream.js +1 -1
  563. package/dist/extensions/openrouter/test-api.js +3 -3
  564. package/dist/extensions/openshell/index.js +4 -4
  565. package/dist/extensions/perplexity/index.js +1 -1
  566. package/dist/extensions/perplexity/test-api.js +1 -1
  567. package/dist/extensions/perplexity/web-search-provider.js +1 -1
  568. package/dist/extensions/phone-control/index.js +1 -1
  569. package/dist/extensions/qianfan/index.js +1 -1
  570. package/dist/extensions/qwen/index.js +3 -3
  571. package/dist/extensions/qwen/media-understanding-provider.js +1 -1
  572. package/dist/extensions/qwen/test-api.js +2 -2
  573. package/dist/extensions/qwen/video-generation-provider.js +1 -1
  574. package/dist/extensions/runway/index.js +1 -1
  575. package/dist/extensions/runway/video-generation-provider.js +1 -1
  576. package/dist/extensions/sglang/api.js +2 -2
  577. package/dist/extensions/sglang/index.js +2 -2
  578. package/dist/extensions/sglang/models.js +1 -1
  579. package/dist/extensions/signal/api.js +11 -11
  580. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  581. package/dist/extensions/signal/contract-api.js +2 -2
  582. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  583. package/dist/extensions/signal/runtime-api.js +13 -13
  584. package/dist/extensions/skill-workshop/api.js +1 -1
  585. package/dist/extensions/skill-workshop/index.js +2 -2
  586. package/dist/extensions/speech-core/api.js +2 -2
  587. package/dist/extensions/speech-core/runtime-api.js +4 -4
  588. package/dist/extensions/stepfun/index.js +3 -3
  589. package/dist/extensions/synology-chat/api.js +1 -1
  590. package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
  591. package/dist/extensions/synthetic/index.js +1 -1
  592. package/dist/extensions/talk-voice/index.js +3 -3
  593. package/dist/extensions/tavily/index.js +2 -2
  594. package/dist/extensions/tavily/web-search-provider.js +1 -1
  595. package/dist/extensions/tencent/index.js +2 -2
  596. package/dist/extensions/thread-ownership/index.js +2 -2
  597. package/dist/extensions/tlon/api.js +2 -2
  598. package/dist/extensions/tlon/channel-plugin-api.js +1 -1
  599. package/dist/extensions/tlon/runtime-api.js +1 -1
  600. package/dist/extensions/tlon/setup-api.js +2 -2
  601. package/dist/extensions/tlon/test-api.js +1 -1
  602. package/dist/extensions/together/index.js +2 -2
  603. package/dist/extensions/together/video-generation-provider.js +1 -1
  604. package/dist/extensions/twitch/api.js +1 -1
  605. package/dist/extensions/twitch/channel-plugin-api.js +1 -1
  606. package/dist/extensions/twitch/setup-plugin-api.js +1 -1
  607. package/dist/extensions/venice/api.js +3 -3
  608. package/dist/extensions/venice/index.js +5 -5
  609. package/dist/extensions/venice/models.js +1 -1
  610. package/dist/extensions/venice/onboard.js +2 -2
  611. package/dist/extensions/venice/provider-catalog.js +1 -1
  612. package/dist/extensions/vercel-ai-gateway/index.js +1 -1
  613. package/dist/extensions/video-generation-core/api.js +2 -2
  614. package/dist/extensions/video-generation-core/runtime-api.js +2 -2
  615. package/dist/extensions/vllm/api.js +2 -2
  616. package/dist/extensions/vllm/index.js +2 -2
  617. package/dist/extensions/vllm/models.js +1 -1
  618. package/dist/extensions/vllm/register.runtime.js +2 -2
  619. package/dist/extensions/voice-call/index.js +3 -3
  620. package/dist/extensions/voice-call/runtime-entry.js +1 -1
  621. package/dist/extensions/voice-call/setup-api.js +2 -2
  622. package/dist/extensions/volcengine/index.js +2 -2
  623. package/dist/extensions/voyage/embedding-batch.js +1 -1
  624. package/dist/extensions/voyage/embedding-provider.js +1 -1
  625. package/dist/extensions/voyage/index.js +1 -1
  626. package/dist/extensions/voyage/memory-embedding-adapter.js +1 -1
  627. package/dist/extensions/vydra/image-generation-provider.js +1 -1
  628. package/dist/extensions/vydra/index.js +5 -5
  629. package/dist/extensions/vydra/shared.js +1 -1
  630. package/dist/extensions/vydra/speech-provider.js +1 -1
  631. package/dist/extensions/vydra/video-generation-provider.js +1 -1
  632. package/dist/extensions/xai/api.js +6 -6
  633. package/dist/extensions/xai/code-execution.js +3 -3
  634. package/dist/extensions/xai/image-generation-provider.js +1 -1
  635. package/dist/extensions/xai/index.js +13 -13
  636. package/dist/extensions/xai/model-definitions.js +1 -1
  637. package/dist/extensions/xai/onboard.js +1 -1
  638. package/dist/extensions/xai/provider-catalog.js +1 -1
  639. package/dist/extensions/xai/provider-models.js +1 -1
  640. package/dist/extensions/xai/realtime-transcription-provider.js +1 -1
  641. package/dist/extensions/xai/setup-api.js +1 -1
  642. package/dist/extensions/xai/speech-provider.js +1 -1
  643. package/dist/extensions/xai/stt.js +1 -1
  644. package/dist/extensions/xai/test-api.js +1 -1
  645. package/dist/extensions/xai/tts.js +2 -2
  646. package/dist/extensions/xai/video-generation-provider.js +1 -1
  647. package/dist/extensions/xai/web-search.js +1 -1
  648. package/dist/extensions/xai/x-search.js +4 -4
  649. package/dist/extensions/xiaomi/index.js +1 -1
  650. package/dist/extensions/zai/api.js +1 -1
  651. package/dist/extensions/zai/index.js +9 -9
  652. package/dist/extensions/zai/media-understanding-provider.js +1 -1
  653. package/dist/extensions/zai/onboard.js +1 -1
  654. package/dist/extensions/zai/test-api.js +1 -1
  655. package/dist/extensions/zalo/api.js +3 -3
  656. package/dist/extensions/zalo/channel-plugin-api.js +1 -1
  657. package/dist/extensions/zalo/runtime-api.js +2 -2
  658. package/dist/extensions/zalo/setup-api.js +2 -2
  659. package/dist/extensions/zalouser/api.js +4 -4
  660. package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
  661. package/dist/extensions/zalouser/runtime-api.js +9 -9
  662. package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
  663. package/dist/extensions/zalouser/test-api.js +4 -4
  664. package/dist/extra-params-DXOULv19.js +388 -0
  665. package/dist/fallbacks-BKA5XrxA.js +31 -0
  666. package/dist/fallbacks-QvezaDAr.js +2 -0
  667. package/dist/fallbacks-shared-DS-qTOLR.js +111 -0
  668. package/dist/format-DQi1munp.js +245 -0
  669. package/dist/format-Dv6HmuyW.js +176 -0
  670. package/dist/gateway-C0YHaLXO.js +115 -0
  671. package/dist/gateway-cli-DJBCD8J5.js +1325 -0
  672. package/dist/gateway-install-token-CBRkr0l1.js +141 -0
  673. package/dist/gateway-rpc-CmJXd4SU.js +14 -0
  674. package/dist/gateway-rpc.runtime-C9Fs2mSx.js +23 -0
  675. package/dist/gateway-rpc.runtime.js +1 -1
  676. package/dist/gateway-runtime-Bm2_MhFn.js +15 -0
  677. package/dist/gateway-status-DXKMKFtB.js +584 -0
  678. package/dist/genesis-tools-AolFZ-0I.js +8999 -0
  679. package/dist/genesis-tools.runtime-CBWXJqzw.js +2 -0
  680. package/dist/genesis-tools.runtime.js +1 -1
  681. package/dist/get-reply-BpxjHQBp.js +3879 -0
  682. package/dist/get-reply-from-config.runtime-DJKEqLSi.js +2 -0
  683. package/dist/get-reply-from-config.runtime.js +1 -1
  684. package/dist/gmail-setup-utils-CViEwpXs.js +430 -0
  685. package/dist/gmail-watcher-lifecycle-5JNDL-Qn.js +2 -0
  686. package/dist/gmail-watcher-lifecycle-CbLbP5wf.js +191 -0
  687. package/dist/graph-users-D2Q5UTGQ.js +1337 -0
  688. package/dist/guarded-json-api-BGsPLvM1.js +594 -0
  689. package/dist/health-BNKpuAPB.js +469 -0
  690. package/dist/health-BkxZfKx8.js +3 -0
  691. package/dist/heartbeat-runner-Bdu2q6k3.js +5 -0
  692. package/dist/heartbeat-runner-C0B-c-fv.js +1292 -0
  693. package/dist/heartbeat-runner.runtime-Cic23eNy.js +4 -0
  694. package/dist/heartbeat-runner.runtime.js +1 -1
  695. package/dist/help-B-jwXS97.js +81 -0
  696. package/dist/hooks-cli-BfCr2In5.js +433 -0
  697. package/dist/http-endpoint-helpers-CY0P-_y2.js +41 -0
  698. package/dist/http-headers-BQgW7fC2.js +11 -0
  699. package/dist/http-utils-Da8hOLty.js +924 -0
  700. package/dist/identity-PVMitPyT.js +140 -0
  701. package/dist/image-fallbacks-Dgy-LmDo.js +2 -0
  702. package/dist/image-fallbacks-RlfTqOne.js +31 -0
  703. package/dist/image-flYicC8O.js +272 -0
  704. package/dist/image-generation-core-ByCwGM7N.js +18 -0
  705. package/dist/image-generation-core.auth.runtime-BoHVcjuF.js +2 -0
  706. package/dist/image-generation-core.auth.runtime.js +1 -1
  707. package/dist/image-generation-provider-AZDQCts4.js +228 -0
  708. package/dist/image-generation-provider-BWIWrjvD.js +137 -0
  709. package/dist/image-generation-provider-Bq7iOzlf.js +529 -0
  710. package/dist/image-generation-provider-Bv5-fwPX.js +95 -0
  711. package/dist/image-generation-provider-CGSTJ4hP.js +63 -0
  712. package/dist/image-generation-provider-Cllhe0AP.js +274 -0
  713. package/dist/image-generation-provider-Cs4wRp50.js +157 -0
  714. package/dist/image-generation-runtime-xstqpFrd.js +2 -0
  715. package/dist/image-runtime-CaiLu4CB.js +9 -0
  716. package/dist/inbound-reply-dispatch-D4KJHWLG.js +73 -0
  717. package/dist/inbound.runtime-B-GWbA14.js +4 -0
  718. package/dist/inbound.runtime-ZW0e3dff.js +3 -0
  719. package/dist/inbound.runtime.js +1 -1
  720. package/dist/index.js +2 -2
  721. package/dist/infra-runtime-BTJv3KK8.js +39 -0
  722. package/dist/init-q4INH9uv.js +59 -0
  723. package/dist/install-BT4BNeMX.js +190 -0
  724. package/dist/install-signal-cli-BGP-9Zvn.js +202 -0
  725. package/dist/install.runtime-BnqPyIyn.js +2 -0
  726. package/dist/install.runtime.js +1 -1
  727. package/dist/io-C8-NJ1hW.js +5 -0
  728. package/dist/io-DNd8mbjy.js +19290 -0
  729. package/dist/jobs-tgmPyzoA.js +734 -0
  730. package/dist/kimi-web-search-provider-BP8Sm_zW.js +80 -0
  731. package/dist/kimi-web-search-provider.runtime-BiS2hZd_.js +2 -0
  732. package/dist/kimi-web-search-provider.runtime-hPogdlIf.js +261 -0
  733. package/dist/kimi-web-search-provider.runtime.js +1 -1
  734. package/dist/launchd-BM_37PLv.js +698 -0
  735. package/dist/legacy-tools-by-sender-C2fBnMkv.js +2 -0
  736. package/dist/legacy-tools-by-sender-PrWN1Kpn.js +95 -0
  737. package/dist/library-DGd4UZKC.js +45 -0
  738. package/dist/lifecycle-B_RLw4uY.js +229 -0
  739. package/dist/lifecycle-Bw01evSl.js +571 -0
  740. package/dist/lifecycle-core-CTjCo-k0.js +422 -0
  741. package/dist/lifecycle.runtime-BxpD2Ol7.js +2 -0
  742. package/dist/lifecycle.runtime.js +1 -1
  743. package/dist/list-BXa4zUF-.js +2 -0
  744. package/dist/list-BugTSXmQ.js +131 -0
  745. package/dist/list-CgC_rsta.js +1201 -0
  746. package/dist/list-D2sk1YPs.js +2 -0
  747. package/dist/list.probe-C6zfgLdG.js +419 -0
  748. package/dist/list.runtime-Cx-ix6ts.js +11 -0
  749. package/dist/list.runtime-zIkM6USX.js +159 -0
  750. package/dist/list.runtime.js +1 -1
  751. package/dist/live-model-switch-CgHU4tVW.js +336 -0
  752. package/dist/llm-slug-generator-DsWJvqNx.js +79 -0
  753. package/dist/llm-slug-generator.js +1 -1
  754. package/dist/load-config-D6ZKPY7I.js +35 -0
  755. package/dist/load-context-Bzz0kkeb.js +56 -0
  756. package/dist/local-dispatch.runtime-MWMxyZKj.js +8 -0
  757. package/dist/local-dispatch.runtime.js +1 -1
  758. package/dist/logging-CZpl4hS4.js +2 -0
  759. package/dist/logging-ct4GyQVj.js +13 -0
  760. package/dist/login-DyL8eVfP.js +108 -0
  761. package/dist/logs-cli-Dn-8jl3z.js +265 -0
  762. package/dist/logs-cli.runtime-DwsccWUJ.js +2 -0
  763. package/dist/logs-cli.runtime.js +1 -1
  764. package/dist/main-session-restart-recovery-6Uh4W8ZJ.js +206 -0
  765. package/dist/managed-image-attachments-DHawPS1-.js +2 -0
  766. package/dist/managed-image-attachments-DjtxwZ9o.js +635 -0
  767. package/dist/manager-ChyGVMLU.js +3114 -0
  768. package/dist/manager-D0tkR46e.js +2057 -0
  769. package/dist/manager-g_P1RDky.js +2 -0
  770. package/dist/markdown-to-line-7AxR7QFo.js +790 -0
  771. package/dist/mcp/plugin-tools-serve.js +4 -4
  772. package/dist/mcp-cli-Cw2XQMOA.js +725 -0
  773. package/dist/mcp-config-CDKA6_LY.js +115 -0
  774. package/dist/mcp-http-DFKqya8U.js +529 -0
  775. package/dist/media-contract-BLCEEI6I.js +49 -0
  776. package/dist/media-contract-api-CosBQX2V.js +2 -0
  777. package/dist/media-runtime-D2xH8y9Y.js +329 -0
  778. package/dist/media-understanding-B2qGioD4.js +85 -0
  779. package/dist/media-understanding-provider-BKieNTVy.js +13 -0
  780. package/dist/media-understanding-provider-Bp_FPuBe.js +12 -0
  781. package/dist/media-understanding-provider-BpxYGf2K.js +21 -0
  782. package/dist/media-understanding-provider-CGjB0jWY.js +69 -0
  783. package/dist/media-understanding-provider-CSCR1DOo.js +12 -0
  784. package/dist/media-understanding-provider-Cdopdt7A.js +85 -0
  785. package/dist/media-understanding-provider-Cv77beub.js +37 -0
  786. package/dist/media-understanding-provider-Cvr1QElU.js +18 -0
  787. package/dist/media-understanding-provider-DRMnI7Om.js +28 -0
  788. package/dist/media-understanding-provider-DorcYzVO.js +18 -0
  789. package/dist/media-understanding-runtime-CtocCbLl.js +2 -0
  790. package/dist/memory-24Kp99di.js +342 -0
  791. package/dist/memory-core-host-engine-embeddings-j3l9VHMa.js +2 -0
  792. package/dist/memory-core-host-engine-foundation-C5L_o_kv.js +11 -0
  793. package/dist/memory-core-host-engine-qmd-BjRQxINV.js +2 -0
  794. package/dist/memory-core-host-runtime-cli-DaAsOXiU.js +9 -0
  795. package/dist/memory-core-host-runtime-core-CCiyGJ4d.js +8 -0
  796. package/dist/memory-embedding-adapter-DHCNhMQQ.js +32 -0
  797. package/dist/memory-embedding-adapter-DPMNJ50b.js +123 -0
  798. package/dist/memory-embedding-adapter-PANdmah2.js +50 -0
  799. package/dist/memory-embedding-adapter-gyNKuuJg.js +55 -0
  800. package/dist/memory-host-core-BLJfQ7tv.js +2 -0
  801. package/dist/memory-host-search-CXYoKllg.js +12 -0
  802. package/dist/memory-host-search.runtime-BlSP4tRs.js +2 -0
  803. package/dist/memory-host-search.runtime.js +1 -1
  804. package/dist/memory-runtime-BR50X7bD.js +2 -0
  805. package/dist/memory-runtime-CsD3VOEo.js +26 -0
  806. package/dist/message-BDCG7eWj.js +232 -0
  807. package/dist/message-action-runner-6C7kXcC9.js +2 -0
  808. package/dist/message-action-runner-C2P3efhU.js +1407 -0
  809. package/dist/message-actions-BWQWt5gT.js +143 -0
  810. package/dist/message.config.runtime-sOiwk5jH.js +2 -0
  811. package/dist/message.config.runtime.js +1 -1
  812. package/dist/message.gateway.runtime-BXChuYAf.js +2 -0
  813. package/dist/message.gateway.runtime.js +1 -1
  814. package/dist/metadata-registry-loader-BO5ga4BG.js +2 -0
  815. package/dist/metadata-registry-loader-DXWKbRU1.js +16 -0
  816. package/dist/minimax-vlm-M6jWEPQW.js +233 -0
  817. package/dist/minimax-web-search-provider-D2OTaFur.js +53 -0
  818. package/dist/minimax-web-search-provider.runtime-DC6wIpv_.js +2 -0
  819. package/dist/minimax-web-search-provider.runtime-Drj1xU_u.js +140 -0
  820. package/dist/minimax-web-search-provider.runtime.js +1 -1
  821. package/dist/mock-yKTkxAIg.js +136 -0
  822. package/dist/model-Dox-u3UD.js +666 -0
  823. package/dist/model-DqVVHjXR.js +3 -0
  824. package/dist/model-auth-CDl8OFEJ.js +456 -0
  825. package/dist/model-auth-env-BawHgU1x.js +68 -0
  826. package/dist/model-auth-label-BM5SET4I.js +46 -0
  827. package/dist/model-catalog-1XlBrFEV.js +159 -0
  828. package/dist/model-catalog-S5TqfK9t.js +2 -0
  829. package/dist/model-definitions-epX5XXUF.js +260 -0
  830. package/dist/model-fallback-CmX4SjzE.js +827 -0
  831. package/dist/model-fallback-auth.runtime-Dz9zpmf4.js +4 -0
  832. package/dist/model-fallback-auth.runtime.js +1 -1
  833. package/dist/model-picker-B9B-lkWH.js +3 -0
  834. package/dist/model-picker-DbWIvwfd.js +554 -0
  835. package/dist/model-picker-visibility-DTdSdobf.js +13 -0
  836. package/dist/model-picker.runtime-fnHv9FZI.js +15 -0
  837. package/dist/model-picker.runtime.js +1 -1
  838. package/dist/model-selection-DBvbuIS-.js +213 -0
  839. package/dist/model-suppression-DuBnrvXK.js +28 -0
  840. package/dist/model-suppression.runtime-_96p7psP.js +7 -0
  841. package/dist/model-suppression.runtime.js +1 -1
  842. package/dist/models-BStOaoOP.js +18 -0
  843. package/dist/models-BtIpPCk2.js +760 -0
  844. package/dist/models-CAqi2TQ-.js +47 -0
  845. package/dist/models-CVuV0GE0.js +157 -0
  846. package/dist/models-DFRkfhsN.js +569 -0
  847. package/dist/models-auth-status-B8lnM1PS.js +201 -0
  848. package/dist/models-cli-DbUA18AN.js +219 -0
  849. package/dist/models-config-DDM74chF.js +2 -0
  850. package/dist/models-config-DnicdxyQ.js +933 -0
  851. package/dist/models-config.providers.secrets-DIfmfODH.js +304 -0
  852. package/dist/models-http-n4zWGd1p.js +92 -0
  853. package/dist/models-nU-69lrH.js +18 -0
  854. package/dist/models.fetch-BANynh-l.js +518 -0
  855. package/dist/monitor-BEJe2ceJ.js +1237 -0
  856. package/dist/monitor-BO9i6U5R.js +1459 -0
  857. package/dist/monitor-BZLrxL_x.js +1661 -0
  858. package/dist/monitor-CDDxHGlD.js +788 -0
  859. package/dist/monitor-D779kLc0.js +671 -0
  860. package/dist/monitor-V5ZNCrQL.js +2 -0
  861. package/dist/monitor-auth-D2rCHNgr.js +207 -0
  862. package/dist/monitor-oHi8GwXc.js +295 -0
  863. package/dist/monitor-processing-BLbsNFVv.js +1974 -0
  864. package/dist/monitor.runtime-RrusGXVO.js +2 -0
  865. package/dist/monitor.runtime.js +1 -1
  866. package/dist/monitor.webhook-B0DuBNWa.js +180 -0
  867. package/dist/msteams-hh9nwLlZ.js +35 -0
  868. package/dist/music-generation-provider-6ru_5Xe9.js +170 -0
  869. package/dist/music-generation-provider-CfDrN0vg.js +63 -0
  870. package/dist/mutate-atVXfhNp.js +116 -0
  871. package/dist/native-hook-relay-BygYZoeR.js +519 -0
  872. package/dist/native-web-search-C6deWq6V.js +64 -0
  873. package/dist/nextcloud-talk-AadRCqXn.js +17 -0
  874. package/dist/node-cli-FF1zz0JU.js +2506 -0
  875. package/dist/node-service-f8mmgM5L.js +68 -0
  876. package/dist/nodes-cli-tQ5dpecZ.js +1046 -0
  877. package/dist/nodes-utils-BfpGcUca.js +84 -0
  878. package/dist/nodes.helpers-CMXxavTs.js +34 -0
  879. package/dist/notify-DaNP5Zyh.js +315 -0
  880. package/dist/oauth-BKY3WmDu.js +75 -0
  881. package/dist/oauth-BKZJiY9a.js +152 -0
  882. package/dist/oauth-D4AUTZ6P.js +2 -0
  883. package/dist/oauth-N3WLEMX0.js +139 -0
  884. package/dist/oauth.flow-C0eia8-I.js +45 -0
  885. package/dist/oauth.flow-DfN3z9Nf.js +3 -0
  886. package/dist/onboard-B2eZziXs.js +49 -0
  887. package/dist/onboard-B9hx80Dm.js +632 -0
  888. package/dist/onboard-CGOeDj-J.js +58 -0
  889. package/dist/onboard-DTP_mB9k.js +25 -0
  890. package/dist/onboard-DY6XCMjI.js +29 -0
  891. package/dist/onboard-YitR883F.js +25 -0
  892. package/dist/onboard-custom-BQtg1wQW.js +271 -0
  893. package/dist/onboard-custom-Bz-MYvTm.js +3 -0
  894. package/dist/onboard-ffMqs4Bf.js +316 -0
  895. package/dist/onboard-gP5XFNCO.js +25 -0
  896. package/dist/onboard-helpers-BlPrFJHK.js +204 -0
  897. package/dist/onboard-helpers-kL8mgUkl.js +6 -0
  898. package/dist/onboard-remote-ByHuQd1m.js +193 -0
  899. package/dist/onboard-remote-CRPXcrWy.js +2 -0
  900. package/dist/onboard-search-Hz02JQSQ.js +323 -0
  901. package/dist/onboard-skills-ChtyNRCd.js +2 -0
  902. package/dist/onboard-skills-DROlYXya.js +134 -0
  903. package/dist/openai-codex-auth-identity-H1dPXVzb.js +45 -0
  904. package/dist/openai-codex-device-code-DNVug9Q3.js +164 -0
  905. package/dist/openai-codex-provider-HYYOGyC5.js +464 -0
  906. package/dist/openai-codex-shared-C4b7n1WS.js +6 -0
  907. package/dist/openai-http-2An5HAJU.js +500 -0
  908. package/dist/openai-provider-C6QMbZeL.js +313 -0
  909. package/dist/opencode-DGmHIBEa.js +35 -0
  910. package/dist/openresponses-http-DpbJXZP4.js +1128 -0
  911. package/dist/operator-approvals-client-BoN_VmkB.js +68 -0
  912. package/dist/order-DZPHX4Ka.js +109 -0
  913. package/dist/outbound-media-B2QJEeDc.js +57 -0
  914. package/dist/outbound-runtime-DZyO1T_R.js +5 -0
  915. package/dist/outbound.runtime-D_aebUn6.js +2 -0
  916. package/dist/outbound.runtime.js +1 -1
  917. package/dist/pair-command-approve-i-1VECJx.js +44 -0
  918. package/dist/pairing-cli-kZkl_DC7.js +117 -0
  919. package/dist/perplexity-web-search-provider-CzCigaqV.js +92 -0
  920. package/dist/perplexity-web-search-provider.runtime-B86YHY5f.js +324 -0
  921. package/dist/perplexity-web-search-provider.runtime-U6g1JO38.js +2 -0
  922. package/dist/perplexity-web-search-provider.runtime.js +1 -1
  923. package/dist/persistent-bindings.lifecycle-eZyKQ1D8.js +85 -0
  924. package/dist/persistent-bindings.lifecycle-mxY73TJR.js +2 -0
  925. package/dist/pi-bundle-mcp-runtime-BYDTyW-h.js +2 -0
  926. package/dist/pi-bundle-mcp-runtime-DaIHhxDu.js +829 -0
  927. package/dist/pi-bundle-mcp-tools-Biz_skfK.js +108 -0
  928. package/dist/pi-embedded-0fErjTQ7.js +2905 -0
  929. package/dist/pi-embedded-Bc1jC2x0.js +4 -0
  930. package/dist/pi-embedded-subscribe.handlers.compaction.runtime-BRiX-RqX.js +23 -0
  931. package/dist/pi-embedded-subscribe.handlers.compaction.runtime.js +1 -1
  932. package/dist/pi-embedded.runtime-Bn_RZ5z8.js +4 -0
  933. package/dist/pi-embedded.runtime.js +1 -1
  934. package/dist/pi-model-discovery-k8VUE5Tp.js +237 -0
  935. package/dist/pi-tool-definition-adapter-thh7LO1t.js +217 -0
  936. package/dist/pi-tools-BtlLDovQ.js +1057 -0
  937. package/dist/pi-tools.before-tool-call-BJ_X8Dq3.js +2 -0
  938. package/dist/pi-tools.before-tool-call-DdPCGWCs.js +433 -0
  939. package/dist/pi-tools.before-tool-call.runtime-1acRmC9A.js +13 -0
  940. package/dist/pi-tools.before-tool-call.runtime.js +1 -1
  941. package/dist/plivo-D4do6QU0.js +394 -0
  942. package/dist/plugin-CdHHk4Xn.js +12195 -0
  943. package/dist/plugin-enabled-DybhbjKQ.js +140 -0
  944. package/dist/plugin-install-config-policy-ZN1F58XF.js +137 -0
  945. package/dist/plugin-registration-Bgwpsokw.js +23 -0
  946. package/dist/plugin-registry-7OvG7Tu6.js +3 -0
  947. package/dist/plugin-registry-BcYuO-i5.js +2 -0
  948. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  949. package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
  950. package/dist/plugin-sdk/acp-runtime.js +3 -3
  951. package/dist/plugin-sdk/agent-harness-runtime.js +9 -9
  952. package/dist/plugin-sdk/agent-harness.js +10 -10
  953. package/dist/plugin-sdk/agent-runtime.js +11 -11
  954. package/dist/plugin-sdk/approval-client-runtime.js +2 -2
  955. package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
  956. package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
  957. package/dist/plugin-sdk/approval-native-runtime.js +2 -2
  958. package/dist/plugin-sdk/approval-reply-runtime.js +2 -2
  959. package/dist/plugin-sdk/approval-runtime.js +6 -6
  960. package/dist/plugin-sdk/bluebubbles.js +2 -2
  961. package/dist/plugin-sdk/browser-config-runtime.js +2 -2
  962. package/dist/plugin-sdk/browser-node-runtime.js +5 -5
  963. package/dist/plugin-sdk/browser-setup-tools.js +3 -3
  964. package/dist/plugin-sdk/browser-support.js +10 -10
  965. package/dist/plugin-sdk/channel-core.js +2 -2
  966. package/dist/plugin-sdk/channel-inbound.js +3 -3
  967. package/dist/plugin-sdk/command-auth.js +2 -2
  968. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  969. package/dist/plugin-sdk/compat.js +3 -3
  970. package/dist/plugin-sdk/config-runtime.js +7 -7
  971. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  972. package/dist/plugin-sdk/conversation-runtime.js +4 -4
  973. package/dist/plugin-sdk/core.js +2 -2
  974. package/dist/plugin-sdk/direct-dm.js +1 -1
  975. package/dist/plugin-sdk/gateway-runtime.js +3 -3
  976. package/dist/plugin-sdk/image-generation-core.js +3 -3
  977. package/dist/plugin-sdk/image-generation-runtime.js +2 -2
  978. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  979. package/dist/plugin-sdk/index.js +1 -1
  980. package/dist/plugin-sdk/infra-runtime.js +4 -4
  981. package/dist/plugin-sdk/irc.js +2 -2
  982. package/dist/plugin-sdk/matrix.js +1 -1
  983. package/dist/plugin-sdk/mattermost.js +3 -3
  984. package/dist/plugin-sdk/media-generation-runtime-shared.js +1 -1
  985. package/dist/plugin-sdk/media-generation-runtime.js +1 -1
  986. package/dist/plugin-sdk/media-runtime.js +5 -5
  987. package/dist/plugin-sdk/media-understanding-runtime.js +2 -2
  988. package/dist/plugin-sdk/media-understanding.js +2 -2
  989. package/dist/plugin-sdk/memory-core-host-engine-embeddings.js +2 -2
  990. package/dist/plugin-sdk/memory-core-host-engine-foundation.js +2 -2
  991. package/dist/plugin-sdk/memory-core-host-engine-qmd.js +2 -2
  992. package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
  993. package/dist/plugin-sdk/memory-core-host-runtime-core.js +2 -2
  994. package/dist/plugin-sdk/memory-core.js +4 -4
  995. package/dist/plugin-sdk/memory-host-core.js +2 -2
  996. package/dist/plugin-sdk/memory-host-search.js +1 -1
  997. package/dist/plugin-sdk/models-provider-runtime.js +1 -1
  998. package/dist/plugin-sdk/msteams.js +3 -3
  999. package/dist/plugin-sdk/nextcloud-talk.js +2 -2
  1000. package/dist/plugin-sdk/nostr.js +1 -1
  1001. package/dist/plugin-sdk/opencode.js +1 -1
  1002. package/dist/plugin-sdk/outbound-runtime.js +2 -2
  1003. package/dist/plugin-sdk/provider-auth-api-key.js +5 -5
  1004. package/dist/plugin-sdk/provider-auth-runtime.js +2 -2
  1005. package/dist/plugin-sdk/provider-auth.js +8 -8
  1006. package/dist/plugin-sdk/provider-entry.js +1 -1
  1007. package/dist/plugin-sdk/provider-setup.js +2 -2
  1008. package/dist/plugin-sdk/provider-stream-family.js +3 -3
  1009. package/dist/plugin-sdk/provider-stream.js +2 -2
  1010. package/dist/plugin-sdk/reply-dispatch-runtime.js +2 -2
  1011. package/dist/plugin-sdk/reply-runtime.js +5 -5
  1012. package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
  1013. package/dist/plugin-sdk/runtime.js +3 -3
  1014. package/dist/plugin-sdk/sandbox.js +1 -1
  1015. package/dist/plugin-sdk/self-hosted-provider-setup.js +1 -1
  1016. package/dist/plugin-sdk/session-store-runtime.js +2 -2
  1017. package/dist/plugin-sdk/session-transcript-hit.js +2 -2
  1018. package/dist/plugin-sdk/session-visibility.js +1 -1
  1019. package/dist/plugin-sdk/simple-completion-runtime.js +1 -1
  1020. package/dist/plugin-sdk/speech-core.js +1 -1
  1021. package/dist/plugin-sdk/src/infra/semver-compare.d.ts +1 -0
  1022. package/dist/plugin-sdk/testing.js +5 -5
  1023. package/dist/plugin-sdk/text-runtime.js +2 -2
  1024. package/dist/plugin-sdk/tlon.js +1 -1
  1025. package/dist/plugin-sdk/video-generation-core.js +2 -2
  1026. package/dist/plugin-sdk/video-generation-runtime.js +2 -2
  1027. package/dist/plugin-sdk/zalo.js +1 -1
  1028. package/dist/plugin-sdk/zalouser.js +1 -1
  1029. package/dist/plugin-service-ClhrJfT3.js +2890 -0
  1030. package/dist/plugins/provider-discovery.runtime.js +1 -1
  1031. package/dist/plugins/provider-runtime.runtime.js +1 -1
  1032. package/dist/plugins/runtime/index.js +1 -1
  1033. package/dist/plugins-cli-xVUY8V-3.js +584 -0
  1034. package/dist/plugins-command-helpers-oZG-T69i.js +107 -0
  1035. package/dist/plugins-install-persist-Ccyj_thC.js +133 -0
  1036. package/dist/plugins-update-command-D_q-p0ED.js +1057 -0
  1037. package/dist/policy-CoqHgREn.js +328 -0
  1038. package/dist/postinstall-inventory.json +959 -959
  1039. package/dist/prepare.runtime-CawO_32K.js +815 -0
  1040. package/dist/prepare.runtime.js +1 -1
  1041. package/dist/preview-warnings-Cb65Drvj.js +120 -0
  1042. package/dist/probe-B78ZATWo.js +243 -0
  1043. package/dist/probe-BP3QS65i.js +74 -0
  1044. package/dist/probe-BdCXAH_u.js +2 -0
  1045. package/dist/probe-Cv5tXOMP.js +2205 -0
  1046. package/dist/probe-D-D_1oc4.js +241 -0
  1047. package/dist/probe-DO-gll0g.js +2 -0
  1048. package/dist/probe-Dy-moN-J.js +32 -0
  1049. package/dist/probe-T6c0F73q.js +45 -0
  1050. package/dist/probe-dxji7IxZ.js +1443 -0
  1051. package/dist/probe.runtime-CNJWHyTn.js +2 -0
  1052. package/dist/probe.runtime.js +1 -1
  1053. package/dist/profiles-C0gEr4Vt.js +111 -0
  1054. package/dist/program-GMPfHt5E.js +111 -0
  1055. package/dist/prompt-select-styled-BvuJNEJG.js +20 -0
  1056. package/dist/protocol-Batc2DmY.js +2234 -0
  1057. package/dist/provider-C7oJz1U0.js +70 -0
  1058. package/dist/provider-api-key-auth-Dp8hp-Ml.js +114 -0
  1059. package/dist/provider-api-key-auth.runtime-nb7eC5vo.js +14 -0
  1060. package/dist/provider-api-key-auth.runtime.js +1 -1
  1061. package/dist/provider-auth-Df3lSzr_.js +46 -0
  1062. package/dist/provider-auth-api-key-CZA78Uou.js +5 -0
  1063. package/dist/provider-auth-choice-DzrRJAic.js +228 -0
  1064. package/dist/provider-auth-choice-preference-BDTIHERa.js +26 -0
  1065. package/dist/provider-auth-choice.runtime-CVrNfUP0.js +14 -0
  1066. package/dist/provider-auth-choice.runtime-DOC3zhP2.js +2 -0
  1067. package/dist/provider-auth-choice.runtime.js +1 -1
  1068. package/dist/provider-auth-guidance-CVpgabZ6.js +2 -0
  1069. package/dist/provider-auth-guidance-CZ-VI4e5.js +34 -0
  1070. package/dist/provider-auth-helpers-rNcrL2rf.js +173 -0
  1071. package/dist/provider-auth-input-zpegYxxe.js +119 -0
  1072. package/dist/provider-auth-runtime-spGhqq1R.js +149 -0
  1073. package/dist/provider-catalog-B_612t69.js +26 -0
  1074. package/dist/provider-catalog-Bo9KagTv.js +11 -0
  1075. package/dist/provider-catalog-C4IkuJHX.js +12 -0
  1076. package/dist/provider-catalog-CEHPmBtG.js +24 -0
  1077. package/dist/provider-catalog-UJ8mWU0J.js +11 -0
  1078. package/dist/provider-compat-CqDox4I4.js +37 -0
  1079. package/dist/provider-discovery.runtime--0zGwmtf.js +118 -0
  1080. package/dist/provider-discovery.runtime.js +1 -1
  1081. package/dist/provider-dispatcher-CGYoOdKf.js +2 -0
  1082. package/dist/provider-dispatcher-iTEDM88F.js +22 -0
  1083. package/dist/provider-entry-BzH2PNpN.js +106 -0
  1084. package/dist/provider-flow-B_VNl-lk.js +147 -0
  1085. package/dist/provider-model-defaults-PMGtjcr2.js +6 -0
  1086. package/dist/provider-models-DBv9Enx4.js +119 -0
  1087. package/dist/provider-models-Du3smcTu.js +35 -0
  1088. package/dist/provider-registration-B3sbIgIZ.js +218 -0
  1089. package/dist/provider-registration-B9ECEmSg.js +37 -0
  1090. package/dist/provider-runtime-CE8zqYv8.js +472 -0
  1091. package/dist/provider-runtime-CV5mC70X.js +2 -0
  1092. package/dist/provider-runtime.runtime-B4Idxtd0.js +26 -0
  1093. package/dist/provider-runtime.runtime.js +1 -1
  1094. package/dist/provider-self-hosted-setup-Comuw-z3.js +251 -0
  1095. package/dist/provider-setup-DnUcdtJq.js +2 -0
  1096. package/dist/provider-stream-B8nU1r79.js +290 -0
  1097. package/dist/provider-stream-DQRHM0a1.js +2174 -0
  1098. package/dist/provider-stream-family-C4XL1sCH.js +2 -0
  1099. package/dist/provider-usage-CNNFTSFt.js +4 -0
  1100. package/dist/provider-usage-DkdPMGc6.js +71 -0
  1101. package/dist/provider-usage.load-Ckz1tFpH.js +334 -0
  1102. package/dist/provider-utils-BR35tIjk.js +49 -0
  1103. package/dist/provider-wizard-_jfjTfSM.js +166 -0
  1104. package/dist/providers.runtime-DHetxgM5.js +2 -0
  1105. package/dist/providers.runtime-PiYTktu_.js +164 -0
  1106. package/dist/providers.runtime.js +1 -1
  1107. package/dist/proxy-stream-wrappers-CSbzc-1F.js +394 -0
  1108. package/dist/prune-DlDJX10W.js +83 -0
  1109. package/dist/pw-ai-CCPJq-CT.js +2511 -0
  1110. package/dist/pw-role-snapshot-D65unjCD.js +380 -0
  1111. package/dist/qmd-manager-BVXvoOqt.js +1921 -0
  1112. package/dist/qr-cli-6IxenO1C.js +349 -0
  1113. package/dist/qr-cli-D63piSog.js +2 -0
  1114. package/dist/qr-image-BAPDnfbt.js +2 -0
  1115. package/dist/queue-Rq1mceUG.js +409 -0
  1116. package/dist/reaction-runtime-api-DgwRXTz2.js +116 -0
  1117. package/dist/reactions-Dnh7t4Zl.js +998 -0
  1118. package/dist/read-best-effort-config.runtime-CsH29elm.js +2 -0
  1119. package/dist/read-best-effort-config.runtime.js +1 -1
  1120. package/dist/read-capability-7xOdYqOo.js +412 -0
  1121. package/dist/realtime-provider-shared-C2fZT5O_.js +37 -0
  1122. package/dist/realtime-transcription-provider-CCX9jOLy.js +120 -0
  1123. package/dist/realtime-transcription-provider-CqIc1zwy.js +184 -0
  1124. package/dist/realtime-transcription-provider-CyI79CyM.js +183 -0
  1125. package/dist/realtime-transcription-provider-CydzsmVb.js +172 -0
  1126. package/dist/realtime-transcription-provider-D4PaV840.js +184 -0
  1127. package/dist/realtime-voice-provider-DgL6WxN7.js +489 -0
  1128. package/dist/record-shared-DxabpimX.js +10 -0
  1129. package/dist/register-service-commands-D7w01SKL.js +71 -0
  1130. package/dist/register.agent-j1Eno4xr.js +248 -0
  1131. package/dist/register.backup-Bxvo3j_q.js +64 -0
  1132. package/dist/register.configure-ubwxTkGt.js +15 -0
  1133. package/dist/register.maintenance-B7FuM_ZW.js +438 -0
  1134. package/dist/register.message-QR3u9rBl.js +329 -0
  1135. package/dist/register.onboard-Bdcf_lH0.js +81 -0
  1136. package/dist/register.runtime-QDduc4yj.js +81 -0
  1137. package/dist/register.runtime.js +1 -1
  1138. package/dist/register.setup-DzVV6tdQ.js +150 -0
  1139. package/dist/register.status-health-sessions-Brw3VcxG.js +1215 -0
  1140. package/dist/register.subclis-B8qDbqPl.js +29 -0
  1141. package/dist/register.subclis-DdoN3nZi.js +3 -0
  1142. package/dist/register.subclis-core-CWHmnIoe.js +249 -0
  1143. package/dist/register.wallet-aTazgPYX.js +159 -0
  1144. package/dist/repair-sequencing-CjiQXU4z.js +145 -0
  1145. package/dist/replay-policy-XaA2Foet.js +8 -0
  1146. package/dist/reply-dispatch-runtime-BVLvCeJ0.js +13 -0
  1147. package/dist/reply-media-paths.runtime-CmS_Bnnf.js +2 -0
  1148. package/dist/reply-media-paths.runtime-DCj1JhDR.js +146 -0
  1149. package/dist/reply-media-paths.runtime.js +1 -1
  1150. package/dist/reply-payload-transform-DmArXXXO.js +720 -0
  1151. package/dist/reply-runtime-BXkvfLv_.js +11 -0
  1152. package/dist/reply.runtime-BTkpxI5R.js +2 -0
  1153. package/dist/reply.runtime.js +1 -1
  1154. package/dist/resolve-IXqG_vKU.js +259 -0
  1155. package/dist/response-generator-DCxui-Yb.js +175 -0
  1156. package/dist/restart-C-4J0cf2.js +490 -0
  1157. package/dist/restart-health-6cjrRBpF.js +202 -0
  1158. package/dist/restart-health-b6Qw43Tj.js +2 -0
  1159. package/dist/root-help-DDa1oEtT.js +44 -0
  1160. package/dist/route-reply-q5jc2Nv9.js +162 -0
  1161. package/dist/route-reply.runtime-Co8TnDf9.js +2 -0
  1162. package/dist/route-reply.runtime.js +1 -1
  1163. package/dist/routes-CoCMty69.js +2 -0
  1164. package/dist/routes-D9uC_Zdy.js +3341 -0
  1165. package/dist/rpc-DpLGM3FH.js +61 -0
  1166. package/dist/rpc-context-e__2PCau.js +17 -0
  1167. package/dist/rpc.runtime-B27EA5A0.js +21 -0
  1168. package/dist/rpc.runtime.js +1 -1
  1169. package/dist/run-auth-profile.runtime-CMkCqc7k.js +2 -0
  1170. package/dist/run-auth-profile.runtime.js +1 -1
  1171. package/dist/run-context.runtime-DCgb3ETM.js +2 -0
  1172. package/dist/run-context.runtime.js +1 -1
  1173. package/dist/run-delivery.runtime-OmILefLX.js +530 -0
  1174. package/dist/run-delivery.runtime.js +1 -1
  1175. package/dist/run-embedded.runtime-Dc43u_Z7.js +4 -0
  1176. package/dist/run-embedded.runtime.js +1 -1
  1177. package/dist/run-execution-cli.runtime-DL5w7Ac8.js +4 -0
  1178. package/dist/run-execution-cli.runtime.js +1 -1
  1179. package/dist/run-executor.runtime-Bzwt0zP-.js +277 -0
  1180. package/dist/run-executor.runtime.js +1 -1
  1181. package/dist/run-main-BLD1wTLU.js +516 -0
  1182. package/dist/run-model-catalog.runtime-B7wlXnDF.js +2 -0
  1183. package/dist/run-model-catalog.runtime.js +1 -1
  1184. package/dist/run-subagent-registry.runtime-CddCeg6W.js +2 -0
  1185. package/dist/run-subagent-registry.runtime.js +1 -1
  1186. package/dist/run-wait-D4Gxuyru.js +135 -0
  1187. package/dist/runner-BKhQg4av.js +966 -0
  1188. package/dist/runner.entries-Dbp1RZd9.js +604 -0
  1189. package/dist/runs-DUTtPgDm.js +496 -0
  1190. package/dist/runs-DWOm31T_.js +2 -0
  1191. package/dist/runtime-8BuIPrSY.js +973 -0
  1192. package/dist/runtime-B3upjFki.js +475 -0
  1193. package/dist/runtime-B6k9iJRB.js +187 -0
  1194. package/dist/runtime-BuEvshdw.js +94 -0
  1195. package/dist/runtime-Bu_cc482.js +107 -0
  1196. package/dist/runtime-Co8r21pw.js +9 -0
  1197. package/dist/runtime-CsaTxb99.js +187 -0
  1198. package/dist/runtime-DB1WNkhW.js +262 -0
  1199. package/dist/runtime-Db_oJ87Z.js +2 -0
  1200. package/dist/runtime-Dlvh7_uU.js +116 -0
  1201. package/dist/runtime-DvzcF4-r.js +2 -0
  1202. package/dist/runtime-NlpdlX79.js +72 -0
  1203. package/dist/runtime-_-L5ftbu.js +269 -0
  1204. package/dist/runtime-api-BG0XWkir.js +4 -0
  1205. package/dist/runtime-api-BjBzlgns.js +9 -0
  1206. package/dist/runtime-api-DlYbbA-n.js +14 -0
  1207. package/dist/runtime-api-faT33SE2.js +9 -0
  1208. package/dist/runtime-embedded-pi.runtime-QdJ7K4t0.js +2 -0
  1209. package/dist/runtime-embedded-pi.runtime.js +1 -1
  1210. package/dist/runtime-entry-CWugm0Uj.js +2769 -0
  1211. package/dist/runtime-internal-C0xc_Zhf.js +2 -0
  1212. package/dist/runtime-model-auth.runtime-B0HsFXG7.js +2 -0
  1213. package/dist/runtime-model-auth.runtime-CwdDdKqY.js +45 -0
  1214. package/dist/runtime-model-auth.runtime.js +1 -1
  1215. package/dist/runtime-options-DLv7ygkO.js +275 -0
  1216. package/dist/runtime-prepare.runtime-B3oyafQ4.js +80 -0
  1217. package/dist/runtime-prepare.runtime.js +1 -1
  1218. package/dist/runtime-provider-Dcc5OeVJ.js +21 -0
  1219. package/dist/runtime-registry-loader-B5mIkwhZ.js +85 -0
  1220. package/dist/runtime-registry-loader-CGNT5-qz.js +2 -0
  1221. package/dist/runtime-schema-CQK5R5Pl.js +27780 -0
  1222. package/dist/runtime-shared-BC82_Fzc.js +267 -0
  1223. package/dist/runtime-web-channel-plugin-DQoEo6bK.js +203 -0
  1224. package/dist/runtime-web-tools-BizCqA0v.js +1477 -0
  1225. package/dist/runtime-web-tools-fallback.runtime-CYAGzwsD.js +9 -0
  1226. package/dist/runtime-web-tools-fallback.runtime.js +1 -1
  1227. package/dist/sandbox-C95gEa17.js +3 -0
  1228. package/dist/sandbox-DAnx9TYc.js +1156 -0
  1229. package/dist/sandbox-cli-CPs_gL72.js +450 -0
  1230. package/dist/scan-Yz6DoQn5.js +523 -0
  1231. package/dist/scan-k38hL_6o.js +2 -0
  1232. package/dist/secrets-cli-Bjvr0bOw.js +2101 -0
  1233. package/dist/security-cli-C2gkMFcB.js +486 -0
  1234. package/dist/selection-DC8EXnRg.js +7736 -0
  1235. package/dist/selection-DmSFI5k4.js +2 -0
  1236. package/dist/semver-compare-tPC_r5LW.js +64 -0
  1237. package/dist/send-CMqcsAS2.js +534 -0
  1238. package/dist/send-CT6EfHrc.js +102 -0
  1239. package/dist/send-_ANvjE_C.js +156 -0
  1240. package/dist/send.runtime-COIjG4BV.js +2 -0
  1241. package/dist/send.runtime.js +1 -1
  1242. package/dist/server-COkv9Si4.js +13 -0
  1243. package/dist/server-DHLQZJL8.js +77 -0
  1244. package/dist/server-context-6jnr-aAw.js +2 -0
  1245. package/dist/server-context-DK1QsdLh.js +847 -0
  1246. package/dist/server-middleware-BTovsGYd.js +120 -0
  1247. package/dist/server-node-events-q8H0odkq.js +481 -0
  1248. package/dist/server-plugin-bootstrap-Bw4a88yA.js +2 -0
  1249. package/dist/server-plugin-bootstrap-By_w9ngt.js +11333 -0
  1250. package/dist/server-restart-sentinel-CGLYF3mk.js +697 -0
  1251. package/dist/server-startup-memory-ClzqrFwF.js +32 -0
  1252. package/dist/server.impl-8j4SImks.js +12735 -0
  1253. package/dist/service-CNjb_qXC.js +2 -0
  1254. package/dist/service-CyR3mZIU.js +120 -0
  1255. package/dist/service-Dw-BzupJ.js +940 -0
  1256. package/dist/service-audit-DIL0OiMa.js +260 -0
  1257. package/dist/service-audit-pwloDggS.js +2 -0
  1258. package/dist/session-DF38Qk5T.js +48 -0
  1259. package/dist/session-cost-usage-CbaKFiYP.js +651 -0
  1260. package/dist/session-envelope-SoEaHn7u.js +18 -0
  1261. package/dist/session-key-BpQtNboQ.js +65 -0
  1262. package/dist/session-kill-http-Dek5w0Ee.js +110 -0
  1263. package/dist/session-meta-DHOj7FVp.js +109 -0
  1264. package/dist/session-override-Cra7WfkP.js +106 -0
  1265. package/dist/session-reset-model.runtime-CITOeORk.js +133 -0
  1266. package/dist/session-reset-model.runtime.js +1 -1
  1267. package/dist/session-reset-service-B_9Ps0kr.js +471 -0
  1268. package/dist/session-route-Cr6vOd9_.js +93 -0
  1269. package/dist/session-status.runtime-C_x1MHH5.js +2 -0
  1270. package/dist/session-status.runtime.js +1 -1
  1271. package/dist/session-store-DfVF72xW.js +126 -0
  1272. package/dist/session-store.runtime-jJK2KnR6.js +2 -0
  1273. package/dist/session-store.runtime.js +1 -1
  1274. package/dist/session-subagent-reactivation.runtime-BKWuNild.js +2 -0
  1275. package/dist/session-subagent-reactivation.runtime.js +1 -1
  1276. package/dist/session-system-events-BS6g-vqa.js +63 -0
  1277. package/dist/session-tab-registry-C08V5jx6.js +491 -0
  1278. package/dist/session-transcript-hit-Mxv1sZGp.js +41 -0
  1279. package/dist/session-updates-BdB1lGXz.js +236 -0
  1280. package/dist/session-updates.runtime-6GlaYt-B.js +2 -0
  1281. package/dist/session-updates.runtime.js +1 -1
  1282. package/dist/session-utils-BPYVECh0.js +926 -0
  1283. package/dist/session-visibility-D4j8hN_B.js +147 -0
  1284. package/dist/sessions--xDkaJeX.js +48 -0
  1285. package/dist/sessions-D3RqoN9N.js +2 -0
  1286. package/dist/sessions-DrFkAEV2.js +281 -0
  1287. package/dist/sessions-c-R_ynJR.js +16 -0
  1288. package/dist/sessions-helpers-DmUVRk16.js +304 -0
  1289. package/dist/sessions-history-http-DN3KzEnX.js +383 -0
  1290. package/dist/sessions-patch-BPtlF0Lu.js +309 -0
  1291. package/dist/sessions-resolve-D6KPfG_4.js +174 -0
  1292. package/dist/sessions.runtime-DGL1-G20.js +2 -0
  1293. package/dist/sessions.runtime.js +1 -1
  1294. package/dist/set-BraQD5KU.js +17 -0
  1295. package/dist/set-DZUigywb.js +2 -0
  1296. package/dist/set-image-C08k8cVg.js +2 -0
  1297. package/dist/set-image-CsCPBHZC.js +17 -0
  1298. package/dist/setup-CkYiQoP0.js +495 -0
  1299. package/dist/setup-FPfOBbYL.js +421 -0
  1300. package/dist/setup-api-CUGYqGNT.js +29 -0
  1301. package/dist/setup-core-BmplfubJ.js +171 -0
  1302. package/dist/setup-core-C5ddWpfy.js +176 -0
  1303. package/dist/setup-core-CAFnyY_a.js +393 -0
  1304. package/dist/setup-core-dF4To6Jd.js +184 -0
  1305. package/dist/setup-surface-2JmEfowI.js +219 -0
  1306. package/dist/setup-surface-BpSH7F_m.js +351 -0
  1307. package/dist/setup-surface-BzHQx_GD.js +403 -0
  1308. package/dist/setup-surface-DGJUq-2P.js +72 -0
  1309. package/dist/setup-surface-DOH6kc6w.js +286 -0
  1310. package/dist/setup-surface-DiYEprKG.js +3 -0
  1311. package/dist/setup.finalize-Ci2HBkDq.js +539 -0
  1312. package/dist/setup.gateway-config-CyG_Fzaa.js +250 -0
  1313. package/dist/shared-BItUH43s.js +121 -0
  1314. package/dist/shared-CZOgyBro.js +60 -0
  1315. package/dist/shared-D7BxFCKU.js +217 -0
  1316. package/dist/shared-D7diJkX6.js +198 -0
  1317. package/dist/shared-DJU_HCJ1.js +76 -0
  1318. package/dist/shared-DrgQbH3q.js +186 -0
  1319. package/dist/shared-runtime-xz83dsyA.js +7 -0
  1320. package/dist/shared-u-3RmeL1.js +135 -0
  1321. package/dist/short-term-promotion-DCHcaW2F.js +1543 -0
  1322. package/dist/simple-completion-runtime-CfFpRl7j.js +158 -0
  1323. package/dist/simple-completion-transport-C1ooKj9X.js +33 -0
  1324. package/dist/skills-clawhub-DxVmnVrv.js +275 -0
  1325. package/dist/skills-cli-DCr7N_Sq.js +370 -0
  1326. package/dist/slash-state-C4YD-tLz.js +1911 -0
  1327. package/dist/speech-core-CmPRP1zB.js +94 -0
  1328. package/dist/speech-provider-CNOimJB2.js +209 -0
  1329. package/dist/speech-provider-D9i0DEZ1.js +216 -0
  1330. package/dist/speech-provider-DGbn1IrA.js +209 -0
  1331. package/dist/speech-provider-DKyYgpwf.js +103 -0
  1332. package/dist/speech-provider-eDG83bBp.js +184 -0
  1333. package/dist/speech-provider-mKY_GAkS.js +170 -0
  1334. package/dist/speech-provider-zoWs7x7l.js +395 -0
  1335. package/dist/src-8HdytGc7.js +3974 -0
  1336. package/dist/stage-sandbox-media.runtime-CErRBxI5.js +232 -0
  1337. package/dist/stage-sandbox-media.runtime.js +1 -1
  1338. package/dist/startup-auth-8XVCRzQi.js +180 -0
  1339. package/dist/startup-context-CfcCyUU0.js +312 -0
  1340. package/dist/state-migrations-CHc2Y8Pl.js +820 -0
  1341. package/dist/status-B94yciC9.js +397 -0
  1342. package/dist/status-BUkUYtFm.js +190 -0
  1343. package/dist/status-BsHC-0MV.js +2 -0
  1344. package/dist/status-ChOxNWSb.js +62 -0
  1345. package/dist/status-D4jNATg0.js +209 -0
  1346. package/dist/status-DagNCfVv.js +323 -0
  1347. package/dist/status-U8ut-X2Q.js +2 -0
  1348. package/dist/status-all-CIzsXQnV.js +498 -0
  1349. package/dist/status-json-alPkfWTd.js +14 -0
  1350. package/dist/status-json-command-CAkzWzw7.js +84 -0
  1351. package/dist/status-jxNdVQVZ.js +3 -0
  1352. package/dist/status-message-tZJ_0MsI.js +466 -0
  1353. package/dist/status-message.runtime-KeyKW26h.js +6 -0
  1354. package/dist/status-message.runtime.js +1 -1
  1355. package/dist/status-queue.runtime-R5ZlyNdK.js +2 -0
  1356. package/dist/status-queue.runtime.js +1 -1
  1357. package/dist/status-runtime-shared-BSsA48i9.js +257 -0
  1358. package/dist/status-subagents.runtime-hIKg6PXV.js +18 -0
  1359. package/dist/status-subagents.runtime.js +1 -1
  1360. package/dist/status-text-BmLJrLth.js +237 -0
  1361. package/dist/status.command.text-runtime-C4-j2lqa.js +15 -0
  1362. package/dist/status.gateway-connection.runtime-Dr7HJ1wZ.js +2 -0
  1363. package/dist/status.gateway-connection.runtime.js +1 -1
  1364. package/dist/status.gather-DFY0T97g.js +2 -0
  1365. package/dist/status.gather-e6sfNh8I.js +292 -0
  1366. package/dist/status.runtime-CKd1Qzxg.js +2 -0
  1367. package/dist/status.runtime-DBvapXQS.js +2 -0
  1368. package/dist/status.runtime.js +1 -1
  1369. package/dist/status.scan-DSpkE-Q-.js +65 -0
  1370. package/dist/status.scan-overview-Dr72bkbi.js +379 -0
  1371. package/dist/status.scan.deps.runtime-B7f3inzh.js +18 -0
  1372. package/dist/status.scan.deps.runtime.js +1 -1
  1373. package/dist/status.scan.fast-json-C7k_m46S.js +2 -0
  1374. package/dist/status.scan.fast-json-KHh7R3wX.js +132 -0
  1375. package/dist/status.scan.runtime-CtXWwjb8.js +409 -0
  1376. package/dist/status.scan.runtime.js +1 -1
  1377. package/dist/status.summary-C4r9lkCH.js +214 -0
  1378. package/dist/status.summary-D0EJwkmX.js +2 -0
  1379. package/dist/status.update-CxsGc95A.js +79 -0
  1380. package/dist/status.update-Czi5MNWC.js +2 -0
  1381. package/dist/store-BdedeUHG.js +4 -0
  1382. package/dist/store-CUSu4-Qr.js +910 -0
  1383. package/dist/store-load-CUqchamJ.js +370 -0
  1384. package/dist/store-zVJHt5-N.js +1235 -0
  1385. package/dist/store.runtime-DEIs4Pal.js +2 -0
  1386. package/dist/store.runtime.js +1 -1
  1387. package/dist/stream-BLThzHaS.js +134 -0
  1388. package/dist/stream-BbTa3Gk4.js +27 -0
  1389. package/dist/stream-CKjYSBQh.js +664 -0
  1390. package/dist/stt-DM1vajYf.js +66 -0
  1391. package/dist/subagent-announce-Bu5-8O3P.js +351 -0
  1392. package/dist/subagent-announce-delivery-4hk9P48s.js +726 -0
  1393. package/dist/subagent-announce-output-Csyi1-Kz.js +364 -0
  1394. package/dist/subagent-capabilities-1ZqaiPST.js +251 -0
  1395. package/dist/subagent-control-DAeNsV_G.js +506 -0
  1396. package/dist/subagent-control.runtime-BNoZSftx.js +3 -0
  1397. package/dist/subagent-control.runtime.js +1 -1
  1398. package/dist/subagent-followup.runtime-Bch92LIq.js +68 -0
  1399. package/dist/subagent-followup.runtime.js +1 -1
  1400. package/dist/subagent-list-w3yWfW9R.js +172 -0
  1401. package/dist/subagent-orphan-recovery-mNzyr1b-.js +305 -0
  1402. package/dist/subagent-registry-BMjQxBxi.js +3 -0
  1403. package/dist/subagent-registry-D4DFKQCL.js +1753 -0
  1404. package/dist/subagent-registry.runtime.js +1 -1
  1405. package/dist/subagent-spawn-C13uUm47.js +1005 -0
  1406. package/dist/system-cli-BU6GhJxG.js +59 -0
  1407. package/dist/target-id-0_iIeBLg.js +107 -0
  1408. package/dist/targets-eYkepVzz.js +67 -0
  1409. package/dist/task-executor-DzJLcm4D.js +360 -0
  1410. package/dist/task-owner-access-DW9EbhjP.js +74 -0
  1411. package/dist/task-registry-DBJkAtFF.js +2366 -0
  1412. package/dist/task-registry-delivery-runtime-BdkPeGC1.js +2 -0
  1413. package/dist/task-registry-delivery-runtime-Ov88LGnv.js +3 -0
  1414. package/dist/task-registry.maintenance-BU6Z4V_9.js +416 -0
  1415. package/dist/task-registry.maintenance-sEo6eYdx.js +2 -0
  1416. package/dist/tavily-client--ZxuZ8JY.js +193 -0
  1417. package/dist/tavily-client-D3L2LtMF.js +2 -0
  1418. package/dist/tavily-search-provider-gMJgCeVS.js +62 -0
  1419. package/dist/telegram/audit.js +2 -2
  1420. package/dist/telegram/token.js +2 -2
  1421. package/dist/telnyx-UQXrfg_e.js +260 -0
  1422. package/dist/testing-B2jHeQft.js +575 -0
  1423. package/dist/text-report-HYrgZP8-.js +587 -0
  1424. package/dist/text-runtime-B4pK_Jpd.js +290 -0
  1425. package/dist/tool-auth-shared-B9CrADMc.js +90 -0
  1426. package/dist/tool-config-shared-DrS6NohH.js +19 -0
  1427. package/dist/tool-policy-pipeline-CC9_1Ta1.js +109 -0
  1428. package/dist/tool-resolution-BZxaDOKg.js +90 -0
  1429. package/dist/tool-schema-runtime-BCx7p6Ey.js +167 -0
  1430. package/dist/tools-F4mE-OU0.js +113 -0
  1431. package/dist/tools-effective-inventory-BCvCprpD.js +152 -0
  1432. package/dist/tools-invoke-http-Dt1rsx4a.js +206 -0
  1433. package/dist/tools.runtime-DV_PUXuD.js +4 -0
  1434. package/dist/tools.runtime.js +1 -1
  1435. package/dist/transcript-Bu-SsK2V.js +312 -0
  1436. package/dist/transcript-resolve.runtime-CnnOwtyU.js +2 -0
  1437. package/dist/transcript-resolve.runtime.js +1 -1
  1438. package/dist/transcript.runtime-DBVz9-zl.js +2 -0
  1439. package/dist/transcript.runtime.js +1 -1
  1440. package/dist/transport-policy-Byy3HifG.js +75 -0
  1441. package/dist/trash-F4tvjrKS.js +24 -0
  1442. package/dist/tts-BmCzLLJ_.js +183 -0
  1443. package/dist/tts-D4vxwDtE.js +64 -0
  1444. package/dist/tui-cli-DlQ1oejy.js +4575 -0
  1445. package/dist/twilio-CZsjakcE.js +609 -0
  1446. package/dist/update-DSox1dVQ.js +1282 -0
  1447. package/dist/update-check-CaPWrLU-.js +438 -0
  1448. package/dist/update-cli-DHMdwQWA.js +1759 -0
  1449. package/dist/update-runner-eQrUTjUC.js +1892 -0
  1450. package/dist/update-startup-DgWKoqop.js +331 -0
  1451. package/dist/update-startup-XA38a9KV.js +2 -0
  1452. package/dist/upgrade-UR-EI5pO.js +1226 -0
  1453. package/dist/usage-CLnhtd59.js +606 -0
  1454. package/dist/usage-format-CaxDNPPm.js +2 -0
  1455. package/dist/usage-format-CeDc5if9.js +703 -0
  1456. package/dist/video-generation-core-CuFcXCvE.js +6 -0
  1457. package/dist/video-generation-provider-B5_G-r4P.js +64 -0
  1458. package/dist/video-generation-provider-BD7G-8X5.js +118 -0
  1459. package/dist/video-generation-provider-CIIRQd3c.js +254 -0
  1460. package/dist/video-generation-provider-CLCLvtWm.js +264 -0
  1461. package/dist/video-generation-provider-CpPkkFNc.js +187 -0
  1462. package/dist/video-generation-provider-CvmPMAXP.js +271 -0
  1463. package/dist/video-generation-provider-D4l7Q8t7.js +78 -0
  1464. package/dist/video-generation-provider-DNe73dVv.js +221 -0
  1465. package/dist/video-generation-provider-M281XkUx.js +281 -0
  1466. package/dist/video-generation-provider-Y9urhhT4.js +287 -0
  1467. package/dist/video-generation-provider-iA6Vaqc_2.js +77 -0
  1468. package/dist/video-generation-runtime-BfNI4qH8.js +2 -0
  1469. package/dist/video-generation-task-status-qtHrIZLt.js +163 -0
  1470. package/dist/voice-mapping-FtCIKOHQ.js +41 -0
  1471. package/dist/wait-for-idle-before-flush-CYB_61O0.js +5986 -0
  1472. package/dist/web-fetch-providers.runtime-DN6FBm7n.js +34 -0
  1473. package/dist/web-fetch-providers.runtime.js +1 -1
  1474. package/dist/web-provider-runtime-shared-C1Sy3sQI.js +180 -0
  1475. package/dist/web-search-CgZ8TUj8.js +61 -0
  1476. package/dist/web-search-provider-DL2LLOsz.js +163 -0
  1477. package/dist/web-search-provider.runtime-B01EY78s.js +2 -0
  1478. package/dist/web-search-provider.runtime-Bgwk3KBe.js +185 -0
  1479. package/dist/web-search-provider.runtime.js +1 -1
  1480. package/dist/web-search-providers.runtime-BFtJCprz.js +42 -0
  1481. package/dist/web-search-providers.runtime.js +1 -1
  1482. package/dist/webhook-shared-DMbP4pF5.js +12 -0
  1483. package/dist/webhooks-cli-lrEfJsYQ.js +321 -0
  1484. package/dist/wizard-models-BKqMCaCm.js +161 -0
  1485. package/dist/workflow-runtime-hF0PG5ky.js +485 -0
  1486. package/dist/x-search-config-CqjeeiPu.js +36 -0
  1487. package/dist/x-search-shared-DomcrGQ_.js +75 -0
  1488. package/dist/zalo-js-B0dhviG7.js +1157 -0
  1489. package/package.json +1 -1
  1490. package/dist/abort-ca8hDmJr.js +0 -201
  1491. package/dist/abort-cutoff.runtime-vuCUcBP6.js +0 -20
  1492. package/dist/abort.runtime-BrChEuUS.js +0 -2
  1493. package/dist/accounts-B8y7HaWy.js +0 -66
  1494. package/dist/accounts-BM62Jgez.js +0 -43
  1495. package/dist/accounts-C1ECKXaw.js +0 -107
  1496. package/dist/accounts-CNMAC2Vo.js +0 -365
  1497. package/dist/accounts-DH8HU_Fu.js +0 -104
  1498. package/dist/accounts-DWQpG06j.js +0 -2
  1499. package/dist/accounts.runtime-DkGk9q3U.js +0 -2
  1500. package/dist/acp-cli-BLpWVnc7.js +0 -2193
  1501. package/dist/acp-spawn-D1p6b1gk.js +0 -2
  1502. package/dist/acp-spawn-qoyl9NiU.js +0 -1093
  1503. package/dist/acp-stateful-target-driver-NL9txhIM.js +0 -89
  1504. package/dist/action-agents-C729fJ_P.js +0 -67
  1505. package/dist/action-focus-53k9XP4K.js +0 -132
  1506. package/dist/action-help-bIJZBYLz.js +0 -7
  1507. package/dist/action-info-BBzvYFX_.js +0 -101
  1508. package/dist/action-kill-C4fa3E9I.js +0 -33
  1509. package/dist/action-list-BEiIbwP1.js +0 -21
  1510. package/dist/action-log-Cq7RLW2T.js +0 -30
  1511. package/dist/action-send-DyiHgRwh.js +0 -39
  1512. package/dist/action-spawn-CEZfDvXU.js +0 -47
  1513. package/dist/action-unfocus-CpAw3JOi.js +0 -29
  1514. package/dist/actions.runtime-BKEwPyo7.js +0 -18
  1515. package/dist/actions.runtime-Bp0UusIf.js +0 -5
  1516. package/dist/agent-C2hwJefQ.js +0 -2
  1517. package/dist/agent-command-BAAeGRql.js +0 -874
  1518. package/dist/agent-harness-runtime-Czrx53YL.js +0 -144
  1519. package/dist/agent-runner-utils-DzShckNa.js +0 -239
  1520. package/dist/agent-runner.runtime-d_EtNxBK.js +0 -3455
  1521. package/dist/agent-runtime-DNgz7AOP.js +0 -18
  1522. package/dist/agents-DSV7R_Ys.js +0 -953
  1523. package/dist/agents-DZP5tYDr.js +0 -5
  1524. package/dist/agents.command-shared-CX0AI2SJ.js +0 -40
  1525. package/dist/aliases-CZemdpTj.js +0 -2
  1526. package/dist/aliases-KefnmoaT.js +0 -96
  1527. package/dist/api-B87UL3DC.js +0 -2
  1528. package/dist/api-BWN4PIiM.js +0 -4
  1529. package/dist/api-CO05iXNH.js +0 -139
  1530. package/dist/api-CVXzxdCp.js +0 -48
  1531. package/dist/api-CyjlApHT.js +0 -3
  1532. package/dist/api-D3Y0Edm_.js +0 -3
  1533. package/dist/api-DArm1ECd.js +0 -5
  1534. package/dist/api-DgHFv6c12.js +0 -2
  1535. package/dist/api-qoDs2ceF2.js +0 -2
  1536. package/dist/apply-DmW0sOwq.js +0 -508
  1537. package/dist/apply.runtime-DR3dLbbu.js +0 -166
  1538. package/dist/apply.runtime-DiBS7O9R.js +0 -2
  1539. package/dist/approval-client-helpers-CLYckHzb.js +0 -82
  1540. package/dist/approval-gateway-resolver-URpDQMld.js +0 -29
  1541. package/dist/approval-gateway-runtime-B087BMms.js +0 -2
  1542. package/dist/approval-handler-runtime-BgRQnG4g.js +0 -439
  1543. package/dist/approval-native-helpers-XhNhwe4W.js +0 -33
  1544. package/dist/approval-native-runtime-DAsraihr.js +0 -729
  1545. package/dist/approval-renderers-bwrFaldo.js +0 -64
  1546. package/dist/attempt-execution.runtime-D_FGkDQz.js +0 -509
  1547. package/dist/attempt-execution.shared-WN2pMInT.js +0 -22
  1548. package/dist/attempt.prompt-helpers-CDzDUi1C.js +0 -221
  1549. package/dist/attempt.tool-run-context-DitxaTPJ.js +0 -933
  1550. package/dist/audit-extra.async-BCum5o_S.js +0 -971
  1551. package/dist/audit-k5sVbkP5.js +0 -939
  1552. package/dist/audit-membership-runtime-CF94r_hx.js +0 -550
  1553. package/dist/audit.deep.runtime-De20ia-s.js +0 -2
  1554. package/dist/audit.nondeep.runtime-D2m0GAmG.js +0 -880
  1555. package/dist/audit.runtime-BVZs63pn.js +0 -7
  1556. package/dist/auth-B6TDtKdZ.js +0 -177
  1557. package/dist/auth-CfUOZJWq.js +0 -2
  1558. package/dist/auth-DtQv6fQz.js +0 -56
  1559. package/dist/auth-_9zCNYrQ.js +0 -383
  1560. package/dist/auth-choice-B4-IWttU.js +0 -354
  1561. package/dist/auth-choice-CqMHwtjq.js +0 -3
  1562. package/dist/auth-choice-D1VRwrad.js +0 -88
  1563. package/dist/auth-choice-options-CvEDY7-R.js +0 -97
  1564. package/dist/auth-choice-prompt-1EriFNA8.js +0 -2
  1565. package/dist/auth-choice-prompt-XcsSlY4m.js +0 -37
  1566. package/dist/auth-choice.apply.api-providers-DA5zxSX2.js +0 -34
  1567. package/dist/auth-choice.apply.api-providers-DoVm22Ln.js +0 -2
  1568. package/dist/auth-choice.plugin-providers.runtime-R7dET-rk.js +0 -11
  1569. package/dist/auth-health-DGNHS1hv.js +0 -183
  1570. package/dist/auth-install-policy-kR4_sljC.js +0 -195
  1571. package/dist/auth-order-C3zGI0s9.js +0 -96
  1572. package/dist/auth-order-XQ9ZGPd9.js +0 -2
  1573. package/dist/auth-profiles-Bn8y2hqR.js +0 -679
  1574. package/dist/backup-create-ChqA8nu7.js +0 -395
  1575. package/dist/banner-BwacLUaf.js +0 -2
  1576. package/dist/banner-CFADygMU.js +0 -336
  1577. package/dist/base-url-l_nyPQC0.js +0 -15
  1578. package/dist/bash-tools-BBRtIa6j.js +0 -2824
  1579. package/dist/bash-tools-BI0d1TdC.js +0 -3
  1580. package/dist/binding-routing-Cvm5c1IV.js +0 -85
  1581. package/dist/binding-targets-DSs4NXbd.js +0 -121
  1582. package/dist/bluebubbles-5jDMT0b0.js +0 -77
  1583. package/dist/brave-web-search-provider-BuSp_bii.js +0 -111
  1584. package/dist/brave-web-search-provider.runtime-Dts_65-F.js +0 -229
  1585. package/dist/brave-web-search-provider.shared-BSh8nzHC.js +0 -174
  1586. package/dist/bridge-auth-registry-C5sNQKcj.js +0 -23
  1587. package/dist/bridge-server-B6Hfjg1u.js +0 -113
  1588. package/dist/browser-config-runtime-BKzd6AyE.js +0 -7
  1589. package/dist/browser-control-auth-BbzwesFd.js +0 -2
  1590. package/dist/browser-node-runtime-BDVW4WBK.js +0 -12
  1591. package/dist/browser-profiles-BFgCMoPL.js +0 -2
  1592. package/dist/browser-runtime-PsMSIYQ7.js +0 -387
  1593. package/dist/browser-setup-tools-CFB52yQc.js +0 -13
  1594. package/dist/build-TlobwpQW.js +0 -550
  1595. package/dist/call-Bx8lENb2.js +0 -3
  1596. package/dist/call-jYRpeAWm.js +0 -331
  1597. package/dist/call-status-DB7m5q5K.js +0 -33
  1598. package/dist/call.runtime-BRluUZbD.js +0 -2
  1599. package/dist/capability-cli-B3u_GAig.js +0 -1401
  1600. package/dist/card-command-Db-58QX1.js +0 -241
  1601. package/dist/catalog-provider-DLdEsRxZ.js +0 -40
  1602. package/dist/catchup-CtxTwzY8.js +0 -300
  1603. package/dist/channel-BJKHBfnq.js +0 -491
  1604. package/dist/channel-BNNnYzwK.js +0 -1100
  1605. package/dist/channel-BXS-Hd8p.js +0 -226
  1606. package/dist/channel-C4XWpowe.js +0 -1174
  1607. package/dist/channel-CJQdQgPr.js +0 -840
  1608. package/dist/channel-C_zWAu4D.js +0 -595
  1609. package/dist/channel-CtGzrF-K.js +0 -1802
  1610. package/dist/channel-O9DE4IIq.js +0 -350
  1611. package/dist/channel-WHUOtJme.js +0 -297
  1612. package/dist/channel-WoDWDxqx.js +0 -1320
  1613. package/dist/channel-add-wizard-CW2kMHCQ.js +0 -2
  1614. package/dist/channel-add-wizard-MPlDWR78.js +0 -125
  1615. package/dist/channel-core-BJjq9SOq.js +0 -5
  1616. package/dist/channel-inbound-DLs-YfUs.js +0 -31
  1617. package/dist/channel-plugin-runtime-D5jtM0YK.js +0 -771
  1618. package/dist/channel-runtime-4UjeDmDI.js +0 -425
  1619. package/dist/channel-summary-D34JTfKA.js +0 -129
  1620. package/dist/channel-summary-DN_PekkS.js +0 -2
  1621. package/dist/channel-ys2FFqi1.js +0 -453
  1622. package/dist/channel.runtime-B38Ky3R9.js +0 -109
  1623. package/dist/channel.runtime-BMhrGM1i.js +0 -26
  1624. package/dist/channel.runtime-Bl8WYZvF.js +0 -576
  1625. package/dist/channel.runtime-CX2p8xgN.js +0 -67
  1626. package/dist/channel.runtime-CrN1mC1m.js +0 -2364
  1627. package/dist/channel.runtime-D3kAsCsR.js +0 -89
  1628. package/dist/channel.runtime-DG-EUnSC.js +0 -4
  1629. package/dist/channel.runtime-IfV1Md6p.js +0 -430
  1630. package/dist/channel.runtime-w1tHjTOa.js +0 -34702
  1631. package/dist/channel.setup-dXwiMlyi.js +0 -10
  1632. package/dist/channels-DJZu0HEX.js +0 -733
  1633. package/dist/channels-cli-DJMgmakk.js +0 -268
  1634. package/dist/chat-DdKbu8CA.js +0 -2758
  1635. package/dist/chrome-Cs0ME7FH.js +0 -1181
  1636. package/dist/chrome-mcp-DkIFJETj.js +0 -2
  1637. package/dist/chrome-mcp-DxhdLTiR.js +0 -600
  1638. package/dist/chrome.executables-CfWpFyzT.js +0 -541
  1639. package/dist/clawbot-cli-CnHERFYk.js +0 -9
  1640. package/dist/clawhub-BtR3rMxw.js +0 -300
  1641. package/dist/clawhub-oHDXDom4.js +0 -400
  1642. package/dist/cli-Bt8TEQTY.js +0 -3726
  1643. package/dist/cli-C0Ib5uEO.js +0 -683
  1644. package/dist/cli-CN0o_7BK.js +0 -2
  1645. package/dist/cli-CSNAd6Sz.js +0 -72
  1646. package/dist/cli-DMPwqYqc.js +0 -219
  1647. package/dist/cli-DaXzOAcN.js +0 -154
  1648. package/dist/cli-O9WMyUsH.js +0 -2
  1649. package/dist/cli-ctyAqh0j.js +0 -2
  1650. package/dist/cli-runner-CNlk7xmx.js +0 -286
  1651. package/dist/cli-runner.runtime-BK4sQk1m.js +0 -3
  1652. package/dist/cli-runner.runtime-BT8ZZn-R.js +0 -4
  1653. package/dist/cli.runtime-DU7swpBI.js +0 -1261
  1654. package/dist/client-CQdcTPUf.js +0 -138
  1655. package/dist/client-Vx7pseEY.js +0 -713
  1656. package/dist/codex-native-web-search-BB3PWg7n.js +0 -3
  1657. package/dist/codex-native-web-search-BLevwOtN.js +0 -113
  1658. package/dist/combined-store-gateway-Cp7gSMlV.js +0 -163
  1659. package/dist/command-auth-DkJWb2HE.js +0 -76
  1660. package/dist/command-config-resolution-CIRWRfR8.js +0 -23
  1661. package/dist/command-config-resolution-DYZWj6Zm.js +0 -2
  1662. package/dist/command-config-resolution.runtime-CUtVJOf0.js +0 -2
  1663. package/dist/command-execution-startup-DEsPsZEU.js +0 -305
  1664. package/dist/command-registry-5QcI0D66.js +0 -4
  1665. package/dist/command-registry-6nNAhDaE.js +0 -9
  1666. package/dist/command-registry-core-B-Tfqu1R.js +0 -101
  1667. package/dist/command-secret-gateway-BNnWdAlq.js +0 -528
  1668. package/dist/command-status.runtime-CKgimR6Y.js +0 -87
  1669. package/dist/commands-acp-DSm97O5v.js +0 -77
  1670. package/dist/commands-compact.runtime-BXhP6WJ6.js +0 -10
  1671. package/dist/commands-core.runtime-6efmBjL5.js +0 -2
  1672. package/dist/commands-handlers.runtime-FzK-n0L8.js +0 -4597
  1673. package/dist/commands-models-CYEA4oks.js +0 -327
  1674. package/dist/commands-reset-hooks-BuIPeOLT.js +0 -133
  1675. package/dist/commands-status-BQnB5OSX.js +0 -16
  1676. package/dist/commands-status.runtime-B6GcfEDm.js +0 -3
  1677. package/dist/commands-subagents-control.runtime-CByd528A.js +0 -2
  1678. package/dist/commands-subagents-control.runtime-CqI4LMYa.js +0 -3
  1679. package/dist/commands-system-prompt-BD_LeeZk.js +0 -2
  1680. package/dist/commands-system-prompt-C2Md_Ia1.js +0 -158
  1681. package/dist/commands.runtime-CwiPf7Cc.js +0 -166
  1682. package/dist/compact-B_4bMVpw.js +0 -1118
  1683. package/dist/compact.runtime-BhRqiBXG.js +0 -12
  1684. package/dist/completion-cli-DPAWxu_A.js +0 -328
  1685. package/dist/config-B3ZoZd5V.js +0 -5
  1686. package/dist/config-D1ooXKCx.js +0 -9
  1687. package/dist/config-DidVsRqm.js +0 -251
  1688. package/dist/config-api-BRmW2LUx.js +0 -2
  1689. package/dist/config-cli-Ibsfa8Bm.js +0 -1078
  1690. package/dist/config-compat-B57zq89q.js +0 -130
  1691. package/dist/config-compat-ixP32ZwJ.js +0 -126
  1692. package/dist/config-guard-DnIVuR5d.js +0 -96
  1693. package/dist/config-runtime-Dr1JoMKQ.js +0 -32
  1694. package/dist/config-validation-COw3JcuF.js +0 -30
  1695. package/dist/configure-BfQlIIk0.js +0 -1245
  1696. package/dist/configure-DQ-DTcOJ.js +0 -2
  1697. package/dist/connect-options-zqTIEl6K.js +0 -699
  1698. package/dist/context-D5Ro5yCf.js +0 -278
  1699. package/dist/context-g9ANkVhl.js +0 -2
  1700. package/dist/control-auth-Bi8COEXI.js +0 -125
  1701. package/dist/control-service-DkYQV-Tl.js +0 -156
  1702. package/dist/control-ui-BA0iGAG9.js +0 -688
  1703. package/dist/conversation-id-BLY9ffjm.js +0 -38
  1704. package/dist/conversation-id-DVeOM5Jh.js +0 -235
  1705. package/dist/conversation-label-generator-Cc-S8z9Q.js +0 -56
  1706. package/dist/conversation-runtime-gJt7AAg2.js +0 -31
  1707. package/dist/core-BtmNtOpS.js +0 -275
  1708. package/dist/create-an7bnQv1.js +0 -80
  1709. package/dist/cron-cli-CPG4lnt5.js +0 -713
  1710. package/dist/daemon-cli-BXuqNS-3.js +0 -12
  1711. package/dist/daemon-install-BHDgo9qp.js +0 -64
  1712. package/dist/daemon-install-auth-profiles-store.runtime-DuRtWxoP.js +0 -2
  1713. package/dist/daemon-install-plan.shared-BQxPrU7X.js +0 -266
  1714. package/dist/ddg-client-CntWAh8N.js +0 -147
  1715. package/dist/ddg-search-provider-BeZ9HYXK.js +0 -54
  1716. package/dist/delegate-DyITI93V.js +0 -64
  1717. package/dist/deliver-BUbBF0P-.js +0 -3
  1718. package/dist/deliver-VYqGta5q.js +0 -747
  1719. package/dist/deliver-runtime-LEUVCSBV.js +0 -2
  1720. package/dist/delivery-outbound.runtime-DmSpBsJ2.js +0 -6
  1721. package/dist/delivery.runtime-Dwii5usm.js +0 -253
  1722. package/dist/deps-BMuC_6j0.js +0 -73
  1723. package/dist/deps-CIN4SVhK.js +0 -2
  1724. package/dist/detached-task-runtime-CTUQj84i.js +0 -73
  1725. package/dist/devices-cli-B_M2eMJ1.js +0 -496
  1726. package/dist/diagnostic-Ca7xQ_sl.js +0 -400
  1727. package/dist/diagnostic-support-export-uKXdbhuH.js +0 -533
  1728. package/dist/diagnostics-waSemGnZ.js +0 -154
  1729. package/dist/direct-dm-CiSjkmkL.js +0 -64
  1730. package/dist/directive-handling.fast-lane-BXAeEY49.js +0 -66
  1731. package/dist/directive-handling.impl-Bz01SejL.js +0 -703
  1732. package/dist/directive-handling.impl-CiFN7Cu1.js +0 -2
  1733. package/dist/directive-handling.model-selection-DZzMOtyl.js +0 -114
  1734. package/dist/directive-handling.persist.runtime-BzIB50Uy.js +0 -215
  1735. package/dist/directory-cli-17h5XIsS.js +0 -240
  1736. package/dist/dispatch-BnQSIx2G.js +0 -1131
  1737. package/dist/dispatch-acp-CaNQyl2L.js +0 -981
  1738. package/dist/dispatch-acp-manager.runtime-DJK1eHYX.js +0 -3
  1739. package/dist/dispatch-acp-media.runtime-FDZi3hhw.js +0 -4
  1740. package/dist/dispatch-acp-session.runtime-tA9m4L7t.js +0 -2
  1741. package/dist/dispatch-acp.runtime-Bl5cvtX4.js +0 -19
  1742. package/dist/dns-cli-QNL0F2Ri.js +0 -192
  1743. package/dist/doctor-auth-BzeKJols.js +0 -172
  1744. package/dist/doctor-auth-legacy-oauth-aZ9YjnlK.js +0 -2
  1745. package/dist/doctor-auth-legacy-oauth-zNlHTB4O.js +0 -48
  1746. package/dist/doctor-claude-cli-CxK8Pfom.js +0 -147
  1747. package/dist/doctor-config-analysis-CT6ojUa2.js +0 -94
  1748. package/dist/doctor-config-flow-DUCx5yjH.js +0 -417
  1749. package/dist/doctor-config-preflight-C-cFOcPn.js +0 -63
  1750. package/dist/doctor-config-preflight-Fm2wkSwd.js +0 -2
  1751. package/dist/doctor-contract-DxFV42-h.js +0 -26
  1752. package/dist/doctor-device-pairing-DBhEA-8G.js +0 -307
  1753. package/dist/doctor-gateway-daemon-flow-Ds47Er3Y.js +0 -250
  1754. package/dist/doctor-gateway-health-EWwTw5JR.js +0 -60
  1755. package/dist/doctor-gateway-services-Cibvf3nR.js +0 -316
  1756. package/dist/doctor-health-COiArVwj.js +0 -59
  1757. package/dist/doctor-health-contributions-D58LIVdN.js +0 -486
  1758. package/dist/doctor-memory-search-C-GTYsnB.js +0 -371
  1759. package/dist/doctor-prompter-BYIoKiZ8.js +0 -56
  1760. package/dist/doctor-sandbox-D0hdfdpJ.js +0 -194
  1761. package/dist/doctor-session-locks-CvM6ubaI.js +0 -56
  1762. package/dist/doctor-state-integrity-CxrVC_nh.js +0 -589
  1763. package/dist/doctor-state-migrations-DWChkFtX.js +0 -2
  1764. package/dist/doctor-update-leN3aPnU.js +0 -58
  1765. package/dist/doctor-workspace-status-CiEWZXrx.js +0 -75
  1766. package/dist/dreaming-DFPenC85.js +0 -1574
  1767. package/dist/dreaming-narrative-6A27_Gft.js +0 -595
  1768. package/dist/dreaming-shared-BDD2oWhL.js +0 -21
  1769. package/dist/embedded-gateway-stub.runtime-UVgfXZzk.js +0 -9
  1770. package/dist/embedding-batch-7hvzwHHl.js +0 -191
  1771. package/dist/embedding-batch-WKVjg_Bk.js +0 -161
  1772. package/dist/embedding-provider-BJee-X_b.js +0 -64
  1773. package/dist/embedding-provider-CTEUDSG2.js +0 -38
  1774. package/dist/embedding-provider-CiLu78QS.js +0 -118
  1775. package/dist/embedding-provider-ixUayU0N.js +0 -33
  1776. package/dist/embeddings-http-C0fpcL_-.js +0 -205
  1777. package/dist/embeddings-qvqBLfrg.js +0 -215
  1778. package/dist/engine-embeddings-9_Ztlm7g.js +0 -458
  1779. package/dist/engine-qmd-CceSLwoI.js +0 -551
  1780. package/dist/exa-web-search-provider-BEY5IeZV.js +0 -80
  1781. package/dist/exa-web-search-provider.runtime-BP0Bqh27.js +0 -302
  1782. package/dist/exa-web-search-provider.runtime-CE2dSkq8.js +0 -2
  1783. package/dist/exec-approval-forwarder.runtime-oBiamxIz.js +0 -3
  1784. package/dist/exec-approval-reply-DEujRvhz.js +0 -2
  1785. package/dist/exec-approval-reply-DJBZZafd.js +0 -296
  1786. package/dist/exec-approval-session-target-C08JaU9I.js +0 -176
  1787. package/dist/exec-approvals-cli-BIz6EjFc.js +0 -498
  1788. package/dist/exec-policy-cli-CPwfn4OX.js +0 -298
  1789. package/dist/extra-params--o3Bs_ba.js +0 -388
  1790. package/dist/fallbacks-DX4YcmAx.js +0 -2
  1791. package/dist/fallbacks-inTaaG-m.js +0 -31
  1792. package/dist/fallbacks-shared-ow1la-U2.js +0 -111
  1793. package/dist/format-CDtdyx29.js +0 -245
  1794. package/dist/format-CNZYdk0T.js +0 -176
  1795. package/dist/gateway-D4iWwu3_.js +0 -115
  1796. package/dist/gateway-cli-8Nrhyv3_.js +0 -1325
  1797. package/dist/gateway-install-token-Cvm6VMoq.js +0 -119
  1798. package/dist/gateway-rpc-DnaZL20f.js +0 -14
  1799. package/dist/gateway-rpc.runtime-CkhcOPe0.js +0 -23
  1800. package/dist/gateway-runtime-DctMRv_p.js +0 -15
  1801. package/dist/gateway-status-B6eKLX3H.js +0 -584
  1802. package/dist/genesis-tools-CvMcpUvH.js +0 -8999
  1803. package/dist/genesis-tools.runtime-Ch3NDEDq.js +0 -2
  1804. package/dist/get-reply-Cm39MCyU.js +0 -3879
  1805. package/dist/get-reply-from-config.runtime-CSqCYatb.js +0 -2
  1806. package/dist/gmail-setup-utils-D2pDgLCA.js +0 -430
  1807. package/dist/gmail-watcher-lifecycle-BZgPito0.js +0 -2
  1808. package/dist/gmail-watcher-lifecycle-dFjMERa7.js +0 -191
  1809. package/dist/graph-users-BJxYqA3A.js +0 -1337
  1810. package/dist/guarded-json-api-BhJR7l-7.js +0 -594
  1811. package/dist/health-C14jIilQ.js +0 -469
  1812. package/dist/health-C6yJSCMc.js +0 -3
  1813. package/dist/heartbeat-runner-C6-gFnyC.js +0 -5
  1814. package/dist/heartbeat-runner-yUYjgzIM.js +0 -1292
  1815. package/dist/heartbeat-runner.runtime-DZzyrUNB.js +0 -4
  1816. package/dist/help-DyqSh8kc.js +0 -81
  1817. package/dist/hooks-cli-JdkXCE5M.js +0 -433
  1818. package/dist/http-endpoint-helpers-TtZT-T3I.js +0 -41
  1819. package/dist/http-headers-BRWJRzAN.js +0 -11
  1820. package/dist/http-utils-C2hu7rtC.js +0 -924
  1821. package/dist/identity-BQK1BAp-.js +0 -140
  1822. package/dist/image-CQJOF-Zg.js +0 -272
  1823. package/dist/image-fallbacks-BH9qLbBG.js +0 -31
  1824. package/dist/image-fallbacks-DUOPO1ic.js +0 -2
  1825. package/dist/image-generation-core-Dk3jOqwq.js +0 -18
  1826. package/dist/image-generation-core.auth.runtime-BkPCNk6g.js +0 -2
  1827. package/dist/image-generation-provider-B2Sotuek.js +0 -157
  1828. package/dist/image-generation-provider-BjItC1ZB.js +0 -137
  1829. package/dist/image-generation-provider-CAuX-Q7r.js +0 -63
  1830. package/dist/image-generation-provider-CNnNFca5.js +0 -274
  1831. package/dist/image-generation-provider-CW39t66x.js +0 -95
  1832. package/dist/image-generation-provider-Cr8PAjS0.js +0 -529
  1833. package/dist/image-generation-provider-fPdPfoPR.js +0 -228
  1834. package/dist/image-generation-runtime-BjkgbLs7.js +0 -2
  1835. package/dist/image-runtime-ZHzWcqxM.js +0 -9
  1836. package/dist/inbound-reply-dispatch-DPf_IrbV.js +0 -73
  1837. package/dist/inbound.runtime-DVqg8xZi.js +0 -4
  1838. package/dist/inbound.runtime-DWu8LMdN.js +0 -3
  1839. package/dist/infra-runtime-CLND6LJ0.js +0 -39
  1840. package/dist/init-CzWob-9v.js +0 -59
  1841. package/dist/install-BZaQGsDZ.js +0 -159
  1842. package/dist/install-signal-cli-CE1vqFDm.js +0 -202
  1843. package/dist/install.runtime-DOhM77gf.js +0 -2
  1844. package/dist/io-h8M_Z0Lj.js +0 -19290
  1845. package/dist/io-z2jIOtLk.js +0 -5
  1846. package/dist/jobs-CNJYQgEn.js +0 -734
  1847. package/dist/kimi-web-search-provider-B2uRzMJ7.js +0 -80
  1848. package/dist/kimi-web-search-provider.runtime-2xk5W9Cs.js +0 -2
  1849. package/dist/kimi-web-search-provider.runtime-RTe_38UX.js +0 -261
  1850. package/dist/launchd-lFgfiDrN.js +0 -688
  1851. package/dist/legacy-tools-by-sender-B04NdZPf.js +0 -95
  1852. package/dist/legacy-tools-by-sender-CHP1JLBt.js +0 -2
  1853. package/dist/library-C0a9Bz2M.js +0 -45
  1854. package/dist/lifecycle-B_B_jt3r.js +0 -571
  1855. package/dist/lifecycle-DuqKKZop.js +0 -229
  1856. package/dist/lifecycle-core-BpdZi2zv.js +0 -422
  1857. package/dist/lifecycle.runtime-CgDdABk8.js +0 -2
  1858. package/dist/list-Bly8XeOF.js +0 -2
  1859. package/dist/list-CHIiamt1.js +0 -131
  1860. package/dist/list-u1v9z9iN.js +0 -1201
  1861. package/dist/list-w7tUjpdY.js +0 -2
  1862. package/dist/list.probe-kmHRFlrP.js +0 -419
  1863. package/dist/list.runtime-CjSnff-c.js +0 -159
  1864. package/dist/list.runtime-D1dElDsx.js +0 -11
  1865. package/dist/live-model-switch-Dd-0E2l_.js +0 -336
  1866. package/dist/llm-slug-generator-C3u6Ptgq.js +0 -79
  1867. package/dist/load-config-CXvIGI7N.js +0 -35
  1868. package/dist/load-context-avthPPkW.js +0 -56
  1869. package/dist/local-dispatch.runtime-BUoo02tX.js +0 -8
  1870. package/dist/logging-D5LEBy37.js +0 -13
  1871. package/dist/logging-bfkJL7yT.js +0 -2
  1872. package/dist/login-BKS5WGkP.js +0 -108
  1873. package/dist/logs-cli-DBYJ2Aq-.js +0 -265
  1874. package/dist/logs-cli.runtime-DQJPG_eL.js +0 -2
  1875. package/dist/main-session-restart-recovery-CzfY6Cd8.js +0 -206
  1876. package/dist/managed-image-attachments-BGPKA7Mn.js +0 -2
  1877. package/dist/managed-image-attachments-CTrq9ym-.js +0 -635
  1878. package/dist/manager-BYhRnRfB.js +0 -3114
  1879. package/dist/manager-C_ZGa9x8.js +0 -2057
  1880. package/dist/manager-DIHLRzYF.js +0 -2
  1881. package/dist/markdown-to-line-CRbbXtJK.js +0 -790
  1882. package/dist/mcp-cli-m4DjBDez.js +0 -725
  1883. package/dist/mcp-config-CczNZytL.js +0 -115
  1884. package/dist/mcp-http-b6UMoE_J.js +0 -529
  1885. package/dist/media-contract-BgaJThuI.js +0 -49
  1886. package/dist/media-contract-api-DzHEkFJ4.js +0 -2
  1887. package/dist/media-runtime-B1GzwmDa.js +0 -329
  1888. package/dist/media-understanding-XlANOKVy.js +0 -85
  1889. package/dist/media-understanding-provider-BMR6G9bs.js +0 -13
  1890. package/dist/media-understanding-provider-BeOpYnTw.js +0 -28
  1891. package/dist/media-understanding-provider-BxHOSDHK.js +0 -18
  1892. package/dist/media-understanding-provider-D1uimEOF.js +0 -37
  1893. package/dist/media-understanding-provider-D2bhV5kG.js +0 -69
  1894. package/dist/media-understanding-provider-Df4f_jEZ.js +0 -18
  1895. package/dist/media-understanding-provider-DjTpl-f8.js +0 -85
  1896. package/dist/media-understanding-provider-DmAZ22X7.js +0 -21
  1897. package/dist/media-understanding-provider-DyfMlzNa.js +0 -12
  1898. package/dist/media-understanding-provider-qrkRrB9V.js +0 -12
  1899. package/dist/media-understanding-runtime-BHRvMVOL.js +0 -2
  1900. package/dist/memory-CIDuBmaR.js +0 -342
  1901. package/dist/memory-core-host-engine-embeddings-M-Gp1i52.js +0 -2
  1902. package/dist/memory-core-host-engine-foundation-DasxnV_N.js +0 -11
  1903. package/dist/memory-core-host-engine-qmd-Bf8cHYXG.js +0 -2
  1904. package/dist/memory-core-host-runtime-cli-CquxELNj.js +0 -9
  1905. package/dist/memory-core-host-runtime-core-CmuFU_k8.js +0 -8
  1906. package/dist/memory-embedding-adapter-BMd68BpZ.js +0 -55
  1907. package/dist/memory-embedding-adapter-CFbi6QHC.js +0 -50
  1908. package/dist/memory-embedding-adapter-DEciIC1g.js +0 -123
  1909. package/dist/memory-embedding-adapter-DnzOdoj-.js +0 -32
  1910. package/dist/memory-host-core-CepAYJOC.js +0 -2
  1911. package/dist/memory-host-search-ef4xiGhZ.js +0 -12
  1912. package/dist/memory-host-search.runtime-DFl3cUHn.js +0 -2
  1913. package/dist/memory-runtime-Bwq0Ofx-.js +0 -2
  1914. package/dist/memory-runtime-Cj0UGN2J.js +0 -26
  1915. package/dist/message-CmjuvIFf.js +0 -232
  1916. package/dist/message-action-runner-CiY3rhqt.js +0 -1407
  1917. package/dist/message-action-runner-Do4P0h5i.js +0 -2
  1918. package/dist/message-actions-BYREqFJA.js +0 -143
  1919. package/dist/message.config.runtime-8kkpPgDw.js +0 -2
  1920. package/dist/message.gateway.runtime-gkoWzaYV.js +0 -2
  1921. package/dist/metadata-registry-loader-DAu2cSL5.js +0 -16
  1922. package/dist/metadata-registry-loader-GRi5Rm2Z.js +0 -2
  1923. package/dist/minimax-vlm-DkZ09FrD.js +0 -233
  1924. package/dist/minimax-web-search-provider--mirSuQz.js +0 -53
  1925. package/dist/minimax-web-search-provider.runtime-BCJPoUln.js +0 -140
  1926. package/dist/minimax-web-search-provider.runtime-Bg9lBTAr.js +0 -2
  1927. package/dist/mock-BBELHoyy.js +0 -136
  1928. package/dist/model-BEm0xMnp.js +0 -666
  1929. package/dist/model-DDJPPR3F.js +0 -3
  1930. package/dist/model-auth-C1Z9RsQ5.js +0 -456
  1931. package/dist/model-auth-env-Dz5Pixvx.js +0 -68
  1932. package/dist/model-auth-label-BAtXJxa0.js +0 -46
  1933. package/dist/model-catalog-C3Ib1fYR.js +0 -2
  1934. package/dist/model-catalog-DXtA4U6p.js +0 -159
  1935. package/dist/model-definitions-B8q-8mef.js +0 -260
  1936. package/dist/model-fallback-BSj7JGyo.js +0 -827
  1937. package/dist/model-fallback-auth.runtime-Bb5Zkx_r.js +0 -4
  1938. package/dist/model-picker-BTHkN0l4.js +0 -554
  1939. package/dist/model-picker-C3HMFJxK.js +0 -3
  1940. package/dist/model-picker-visibility-BL8rbGSy.js +0 -13
  1941. package/dist/model-picker.runtime-DX0Lf0PG.js +0 -15
  1942. package/dist/model-selection-Cc1fswUI.js +0 -213
  1943. package/dist/model-suppression-DvaJBPSc.js +0 -28
  1944. package/dist/model-suppression.runtime-JuLFgwjM.js +0 -7
  1945. package/dist/models-BJgjZ5vN.js +0 -18
  1946. package/dist/models-BS1WkKuU.js +0 -569
  1947. package/dist/models-Bdl84ZEi.js +0 -760
  1948. package/dist/models-DAWoIDFQ.js +0 -18
  1949. package/dist/models-auth-status-B_Pcr0tl.js +0 -201
  1950. package/dist/models-cli-C7_XNkjs.js +0 -219
  1951. package/dist/models-config-CeSA-IsM.js +0 -2
  1952. package/dist/models-config-DzJzRLUs.js +0 -933
  1953. package/dist/models-config.providers.secrets-DACp_2kp.js +0 -304
  1954. package/dist/models-ezJkixUd.js +0 -47
  1955. package/dist/models-http-CtMnZc8I.js +0 -92
  1956. package/dist/models-iki4v2pw.js +0 -157
  1957. package/dist/models.fetch-DeidpNMb.js +0 -518
  1958. package/dist/monitor-22LY8y6z.js +0 -788
  1959. package/dist/monitor-BZdf_CEm.js +0 -1237
  1960. package/dist/monitor-CTVDlTs2.js +0 -671
  1961. package/dist/monitor-Cfv-KGAl.js +0 -1661
  1962. package/dist/monitor-D_5ywEdZ.js +0 -295
  1963. package/dist/monitor-DuA69-8E.js +0 -2
  1964. package/dist/monitor-auth-BNDlfcw7.js +0 -207
  1965. package/dist/monitor-cmWeDVxf.js +0 -1459
  1966. package/dist/monitor-processing-D9Xcsagt.js +0 -1974
  1967. package/dist/monitor.runtime-zWvcbNim.js +0 -2
  1968. package/dist/monitor.webhook-BYWQa5lY.js +0 -180
  1969. package/dist/msteams-n9HDT4O-.js +0 -35
  1970. package/dist/music-generation-provider-BOf8FxsI.js +0 -170
  1971. package/dist/music-generation-provider-DXjWrzeQ.js +0 -63
  1972. package/dist/mutate-DCm-o6et.js +0 -116
  1973. package/dist/native-hook-relay-CKyIfLOm.js +0 -519
  1974. package/dist/native-web-search-CVg_cqdB.js +0 -64
  1975. package/dist/nextcloud-talk-BuJVVP0J.js +0 -17
  1976. package/dist/node-cli-BaWSEysu.js +0 -2506
  1977. package/dist/node-service-DCI-s3Mm.js +0 -68
  1978. package/dist/nodes-cli-DZht7scn.js +0 -1046
  1979. package/dist/nodes-utils-C6IKaTjm.js +0 -84
  1980. package/dist/nodes.helpers-CkJO5i0d.js +0 -34
  1981. package/dist/notify-v0zoiI-O.js +0 -315
  1982. package/dist/oauth-B8tWMfTJ.js +0 -139
  1983. package/dist/oauth-BmcwdgQf.js +0 -75
  1984. package/dist/oauth-DDT-kHNB.js +0 -152
  1985. package/dist/oauth-Gan0lup1.js +0 -2
  1986. package/dist/oauth.flow-CNEwf0O5.js +0 -45
  1987. package/dist/oauth.flow-CUZgJHCQ.js +0 -3
  1988. package/dist/onboard-BN0A1x-N.js +0 -632
  1989. package/dist/onboard-BxGE5zlS.js +0 -29
  1990. package/dist/onboard-C4pAjamt.js +0 -49
  1991. package/dist/onboard-Cu0Zb0tI.js +0 -25
  1992. package/dist/onboard-DSrD9d76.js +0 -58
  1993. package/dist/onboard-custom-D7-Whw_0.js +0 -271
  1994. package/dist/onboard-custom-Skp24tPF.js +0 -3
  1995. package/dist/onboard-g0Gns-rv.js +0 -25
  1996. package/dist/onboard-helpers-Cc2AnoIU.js +0 -6
  1997. package/dist/onboard-helpers-DIxfEXNM.js +0 -204
  1998. package/dist/onboard-remote-CYhQbOXH.js +0 -2
  1999. package/dist/onboard-remote-DrH3yVxE.js +0 -193
  2000. package/dist/onboard-search-XCG-N-tW.js +0 -323
  2001. package/dist/onboard-skills-DCI3hVXa.js +0 -134
  2002. package/dist/onboard-skills-i4KuFzS4.js +0 -2
  2003. package/dist/onboard-uHe_WHnV.js +0 -25
  2004. package/dist/onboard-vfG-wMNV.js +0 -316
  2005. package/dist/openai-codex-auth-identity-BP8ajX50.js +0 -45
  2006. package/dist/openai-codex-device-code-Cr2cbEdd.js +0 -164
  2007. package/dist/openai-codex-provider-BehtHuQr.js +0 -464
  2008. package/dist/openai-codex-shared-HFAofBwf.js +0 -6
  2009. package/dist/openai-http-DwCqhEcX.js +0 -500
  2010. package/dist/openai-provider-DsET7IpX.js +0 -313
  2011. package/dist/opencode-Cb-WQKky.js +0 -35
  2012. package/dist/openresponses-http-tJr67vC1.js +0 -1128
  2013. package/dist/operator-approvals-client-C0t_-2xC.js +0 -68
  2014. package/dist/order-dgHk1PE1.js +0 -109
  2015. package/dist/outbound-media-FIxE0Dv0.js +0 -57
  2016. package/dist/outbound-runtime-UoL4JsL6.js +0 -5
  2017. package/dist/outbound.runtime-nXA4k1xA.js +0 -2
  2018. package/dist/pair-command-approve-G5y-rKn9.js +0 -44
  2019. package/dist/pairing-cli-Cj31Dv4N.js +0 -117
  2020. package/dist/perplexity-web-search-provider-B6x_ImjZ.js +0 -92
  2021. package/dist/perplexity-web-search-provider.runtime-CXeIZv1r.js +0 -2
  2022. package/dist/perplexity-web-search-provider.runtime-DnjYQskA.js +0 -324
  2023. package/dist/persistent-bindings.lifecycle-C56aKBVc.js +0 -2
  2024. package/dist/persistent-bindings.lifecycle-CfBqvz9L.js +0 -85
  2025. package/dist/pi-bundle-mcp-runtime--MTfBo4Z.js +0 -829
  2026. package/dist/pi-bundle-mcp-runtime-ean1aFxj.js +0 -2
  2027. package/dist/pi-bundle-mcp-tools-BqjE32FZ.js +0 -108
  2028. package/dist/pi-embedded-B1wvxHXL.js +0 -2905
  2029. package/dist/pi-embedded-DmDb-oUB.js +0 -4
  2030. package/dist/pi-embedded-subscribe.handlers.compaction.runtime-BoDN2GHw.js +0 -23
  2031. package/dist/pi-embedded.runtime-D5xqw9Ko.js +0 -4
  2032. package/dist/pi-model-discovery-CYZ5LuGU.js +0 -237
  2033. package/dist/pi-tool-definition-adapter-CAxlo-Va.js +0 -217
  2034. package/dist/pi-tools-C69yvznf.js +0 -1057
  2035. package/dist/pi-tools.before-tool-call-BDeCmoAy.js +0 -2
  2036. package/dist/pi-tools.before-tool-call-DG7VVNBn.js +0 -433
  2037. package/dist/pi-tools.before-tool-call.runtime-GbZhbLH3.js +0 -13
  2038. package/dist/plivo-DFM_olZN.js +0 -394
  2039. package/dist/plugin-B9Ld0CUs.js +0 -12195
  2040. package/dist/plugin-enabled-Cxce83s1.js +0 -140
  2041. package/dist/plugin-install-config-policy-BimGg0f2.js +0 -137
  2042. package/dist/plugin-registration-BxJi2XYk.js +0 -23
  2043. package/dist/plugin-registry-D66gpl7-.js +0 -2
  2044. package/dist/plugin-registry-dEPS2Zb9.js +0 -3
  2045. package/dist/plugin-service-Cu0uMqDN.js +0 -2890
  2046. package/dist/plugins-cli-UICpKNEZ.js +0 -584
  2047. package/dist/plugins-command-helpers-ny7AVRZJ.js +0 -107
  2048. package/dist/plugins-install-persist-CSPRiteo.js +0 -133
  2049. package/dist/plugins-update-command-4Jece913.js +0 -1057
  2050. package/dist/policy-DgfegT_Y.js +0 -328
  2051. package/dist/prepare.runtime-C_sRmuFC.js +0 -815
  2052. package/dist/preview-warnings-BSovEOvs.js +0 -120
  2053. package/dist/probe-8vb_Ssot.js +0 -45
  2054. package/dist/probe-B6zM3cMF.js +0 -74
  2055. package/dist/probe-BjmKFiz1.js +0 -2205
  2056. package/dist/probe-CakOsrSu.js +0 -241
  2057. package/dist/probe-CbOoVumf.js +0 -2
  2058. package/dist/probe-D6yFcZpK.js +0 -1443
  2059. package/dist/probe-DtHuNHbp.js +0 -243
  2060. package/dist/probe-OcOYm1bj.js +0 -2
  2061. package/dist/probe-XYiCUrVW.js +0 -32
  2062. package/dist/probe.runtime-oasa8nRY.js +0 -2
  2063. package/dist/profiles-t-GpZimP.js +0 -111
  2064. package/dist/program-B7jIObA6.js +0 -111
  2065. package/dist/prompt-select-styled-DvkSxDCm.js +0 -20
  2066. package/dist/protocol-C40iRm9c.js +0 -2234
  2067. package/dist/provider-DuH_nkk-.js +0 -70
  2068. package/dist/provider-api-key-auth-BCbqFek0.js +0 -114
  2069. package/dist/provider-api-key-auth.runtime-C0dB6QR5.js +0 -14
  2070. package/dist/provider-auth-DlJTw0-4.js +0 -46
  2071. package/dist/provider-auth-api-key-kFD2TSQI.js +0 -5
  2072. package/dist/provider-auth-choice-7C46Z7_L.js +0 -228
  2073. package/dist/provider-auth-choice-preference-g0W-1lIY.js +0 -26
  2074. package/dist/provider-auth-choice.runtime-BMstkDeF.js +0 -14
  2075. package/dist/provider-auth-choice.runtime-DBaJlbBQ.js +0 -2
  2076. package/dist/provider-auth-guidance-CLhKt9_y.js +0 -2
  2077. package/dist/provider-auth-guidance-DMjnCkYr.js +0 -34
  2078. package/dist/provider-auth-helpers-g5J1YN29.js +0 -173
  2079. package/dist/provider-auth-input-Cmt5ISWx.js +0 -119
  2080. package/dist/provider-auth-runtime-C_of8BP-.js +0 -149
  2081. package/dist/provider-catalog-Bva0AQ20.js +0 -24
  2082. package/dist/provider-catalog-CDF5UffZ.js +0 -12
  2083. package/dist/provider-catalog-CIZ7lwcD.js +0 -11
  2084. package/dist/provider-catalog-WRqmEzqK.js +0 -26
  2085. package/dist/provider-catalog-lrSBHdfM.js +0 -11
  2086. package/dist/provider-compat-ia849gPL.js +0 -37
  2087. package/dist/provider-discovery.runtime-CKPRNOu9.js +0 -118
  2088. package/dist/provider-dispatcher-BIOPYzb9.js +0 -2
  2089. package/dist/provider-dispatcher-CpwviX0O.js +0 -22
  2090. package/dist/provider-entry-BZGcYiV-.js +0 -106
  2091. package/dist/provider-flow-DNqq-LGA.js +0 -147
  2092. package/dist/provider-model-defaults-M93SupwY.js +0 -6
  2093. package/dist/provider-models-BvjP15o5.js +0 -35
  2094. package/dist/provider-models-DzsmORvl.js +0 -119
  2095. package/dist/provider-registration-BL1hjJNQ.js +0 -218
  2096. package/dist/provider-registration-CKaw8a6k.js +0 -37
  2097. package/dist/provider-runtime-C4mK2ZHM.js +0 -472
  2098. package/dist/provider-runtime-C9Y0fX9M.js +0 -2
  2099. package/dist/provider-runtime.runtime-C1zVPJ_2.js +0 -26
  2100. package/dist/provider-self-hosted-setup-B_01kPQV.js +0 -251
  2101. package/dist/provider-setup-BTm4FuW0.js +0 -2
  2102. package/dist/provider-stream-BZwCdDk2.js +0 -290
  2103. package/dist/provider-stream-D80mDtUQ.js +0 -2174
  2104. package/dist/provider-stream-family-tKIQwQoP.js +0 -2
  2105. package/dist/provider-usage-DZHssxuZ.js +0 -4
  2106. package/dist/provider-usage-DtCUHOBT.js +0 -71
  2107. package/dist/provider-usage.load-DfxOyIjr.js +0 -334
  2108. package/dist/provider-utils-CDXJKXaV.js +0 -49
  2109. package/dist/provider-wizard-FaPEKwkS.js +0 -166
  2110. package/dist/providers.runtime-CNRwqmqP.js +0 -164
  2111. package/dist/providers.runtime-D5WUUxG6.js +0 -2
  2112. package/dist/proxy-stream-wrappers-Bne4sxnC.js +0 -394
  2113. package/dist/prune-CObb_7Tm.js +0 -83
  2114. package/dist/pw-ai-BXxjh18R.js +0 -2511
  2115. package/dist/pw-role-snapshot-Bl3hTc-h.js +0 -380
  2116. package/dist/qmd-manager-BUsmbNH2.js +0 -1921
  2117. package/dist/qr-cli-CJXKCj0L.js +0 -2
  2118. package/dist/qr-cli-kSU9X-N0.js +0 -349
  2119. package/dist/qr-image-BGiWCT9D.js +0 -2
  2120. package/dist/queue-C2h8xD0q.js +0 -409
  2121. package/dist/reaction-runtime-api-3XFmruJA.js +0 -116
  2122. package/dist/reactions-By-nqZC6.js +0 -998
  2123. package/dist/read-best-effort-config.runtime-D8wqGyi-.js +0 -2
  2124. package/dist/read-capability-iNDCfA71.js +0 -412
  2125. package/dist/realtime-provider-shared-BUH18A9i.js +0 -37
  2126. package/dist/realtime-transcription-provider-C8U5iIPd.js +0 -184
  2127. package/dist/realtime-transcription-provider-Ct_urZH7.js +0 -172
  2128. package/dist/realtime-transcription-provider-DWWihiYW.js +0 -184
  2129. package/dist/realtime-transcription-provider-DixI6prO.js +0 -120
  2130. package/dist/realtime-transcription-provider-LPnmN5fC.js +0 -183
  2131. package/dist/realtime-voice-provider-CNHR_8Ip.js +0 -489
  2132. package/dist/record-shared-B-W3jnOg.js +0 -10
  2133. package/dist/register-service-commands-C4gdXE5G.js +0 -71
  2134. package/dist/register.agent-CT6bSshW.js +0 -248
  2135. package/dist/register.backup-DZZZkF5L.js +0 -64
  2136. package/dist/register.configure-CImVXV1T.js +0 -15
  2137. package/dist/register.maintenance-D5jC2Wav.js +0 -438
  2138. package/dist/register.message-CT0eXmu4.js +0 -329
  2139. package/dist/register.onboard-BiigO1vS.js +0 -81
  2140. package/dist/register.runtime-CGAA56n8.js +0 -81
  2141. package/dist/register.setup-BG-rXone.js +0 -150
  2142. package/dist/register.status-health-sessions-CYuXd-5V.js +0 -1215
  2143. package/dist/register.subclis-BaJ6m946.js +0 -29
  2144. package/dist/register.subclis-D2lhCIAR.js +0 -3
  2145. package/dist/register.subclis-core-BZs-HQ4k.js +0 -249
  2146. package/dist/register.wallet-IC7GFGSz.js +0 -159
  2147. package/dist/repair-sequencing-DAQWWg1Q.js +0 -145
  2148. package/dist/replay-policy-SzJMVnli.js +0 -8
  2149. package/dist/reply-dispatch-runtime-DjIuN_dr.js +0 -13
  2150. package/dist/reply-media-paths.runtime-BwHwrFo5.js +0 -146
  2151. package/dist/reply-media-paths.runtime-BzHN3Oug.js +0 -2
  2152. package/dist/reply-payload-transform-DZTvoDh6.js +0 -720
  2153. package/dist/reply-runtime-5TFidLR3.js +0 -11
  2154. package/dist/reply.runtime-6d1e0INl.js +0 -2
  2155. package/dist/resolve-CmlJ4Qe6.js +0 -259
  2156. package/dist/response-generator-Bkk91EcQ.js +0 -175
  2157. package/dist/restart-DXckXfpS.js +0 -490
  2158. package/dist/restart-health-BWUPc4R-.js +0 -202
  2159. package/dist/restart-health-CWvsjHVN.js +0 -2
  2160. package/dist/root-help-DsdvAmaO.js +0 -44
  2161. package/dist/route-reply-GewElVG6.js +0 -162
  2162. package/dist/route-reply.runtime-CkHKAVic.js +0 -2
  2163. package/dist/routes-BxtbmAAO.js +0 -2
  2164. package/dist/routes-Dm0_DobO.js +0 -3341
  2165. package/dist/rpc-2YP43H5U.js +0 -61
  2166. package/dist/rpc-context-Cz5ff-4T.js +0 -17
  2167. package/dist/rpc.runtime-CmH330Bk.js +0 -21
  2168. package/dist/run-auth-profile.runtime-BN1_tgCB.js +0 -2
  2169. package/dist/run-context.runtime-DiIMdE17.js +0 -2
  2170. package/dist/run-delivery.runtime-qZIB76oE.js +0 -530
  2171. package/dist/run-embedded.runtime-nHunVmCv.js +0 -4
  2172. package/dist/run-execution-cli.runtime-CMT7La6D.js +0 -4
  2173. package/dist/run-executor.runtime-BG6SDi3f.js +0 -277
  2174. package/dist/run-main-C4yxwXlS.js +0 -516
  2175. package/dist/run-model-catalog.runtime-BeDPla6j.js +0 -2
  2176. package/dist/run-subagent-registry.runtime-D0RcqcJr.js +0 -2
  2177. package/dist/run-wait--kou3jZ7.js +0 -135
  2178. package/dist/runner-CJNyVFAv.js +0 -966
  2179. package/dist/runner.entries-CDDEOL4i.js +0 -604
  2180. package/dist/runs-BeROanhp.js +0 -496
  2181. package/dist/runs-oFHUw3em.js +0 -2
  2182. package/dist/runtime-B99WdxAw.js +0 -262
  2183. package/dist/runtime-BBdZI0T9.js +0 -116
  2184. package/dist/runtime-BMTh1o_4.js +0 -187
  2185. package/dist/runtime-BuDSQWY3.js +0 -187
  2186. package/dist/runtime-BvxkGJm2.js +0 -9
  2187. package/dist/runtime-C7re7-b0.js +0 -2
  2188. package/dist/runtime-CVeRX_h2.js +0 -72
  2189. package/dist/runtime-DgQ5oUKq.js +0 -973
  2190. package/dist/runtime-DhFt71Dh.js +0 -94
  2191. package/dist/runtime-SBCw4GZx.js +0 -2
  2192. package/dist/runtime-UhEn3-g2.js +0 -107
  2193. package/dist/runtime-WH7zKxDh.js +0 -269
  2194. package/dist/runtime-api-6SzMK-FZ.js +0 -4
  2195. package/dist/runtime-api-BAMrcB-5.js +0 -9
  2196. package/dist/runtime-api-DLSrxS5O.js +0 -9
  2197. package/dist/runtime-api-DsPleWQg.js +0 -14
  2198. package/dist/runtime-embedded-pi.runtime-eyjaJfAz.js +0 -2
  2199. package/dist/runtime-entry-NIlaVaCh.js +0 -2769
  2200. package/dist/runtime-internal-BTfGDlHi.js +0 -2
  2201. package/dist/runtime-model-auth.runtime-BmCKx59j.js +0 -45
  2202. package/dist/runtime-model-auth.runtime-CtfEmiHD.js +0 -2
  2203. package/dist/runtime-options-B5_eZxMV.js +0 -275
  2204. package/dist/runtime-prepare.runtime-CYL2KuLu.js +0 -80
  2205. package/dist/runtime-provider-2DNb6s0A.js +0 -21
  2206. package/dist/runtime-registry-loader-DR-J9mYJ.js +0 -2
  2207. package/dist/runtime-registry-loader-oRtkux7P.js +0 -85
  2208. package/dist/runtime-schema--IHLExJA.js +0 -27780
  2209. package/dist/runtime-shared-ClxGZaGO.js +0 -267
  2210. package/dist/runtime-tx7lDmPU.js +0 -475
  2211. package/dist/runtime-web-channel-plugin-DSUY71Zm.js +0 -203
  2212. package/dist/runtime-web-tools-B5m4pFEj.js +0 -1477
  2213. package/dist/runtime-web-tools-fallback.runtime-CuzXsYDs.js +0 -9
  2214. package/dist/sandbox-Bjg0J6uZ.js +0 -1156
  2215. package/dist/sandbox-DyLgT2hb.js +0 -3
  2216. package/dist/sandbox-cli-BLLA3tnd.js +0 -450
  2217. package/dist/scan-D0fsxqed.js +0 -2
  2218. package/dist/scan-DrjjN66Z.js +0 -523
  2219. package/dist/secrets-cli-xKEQ4JhR.js +0 -2101
  2220. package/dist/security-cli-B2rQ7-9U.js +0 -486
  2221. package/dist/selection-DEAdLh1Q.js +0 -2
  2222. package/dist/selection-zPPyzfBX.js +0 -7736
  2223. package/dist/semver-compare-4WdZjB8E.js +0 -53
  2224. package/dist/send-Buu-OT-I.js +0 -534
  2225. package/dist/send-CYKfZTCJ.js +0 -156
  2226. package/dist/send-Di1tRwJD.js +0 -102
  2227. package/dist/send.runtime-Bw22DBkL.js +0 -2
  2228. package/dist/server-CkhWy2iz.js +0 -77
  2229. package/dist/server-DPbF4NLN.js +0 -13
  2230. package/dist/server-context-C3fozX-C.js +0 -2
  2231. package/dist/server-context-R_Yx4X7V.js +0 -847
  2232. package/dist/server-middleware-K0bO4D5s.js +0 -120
  2233. package/dist/server-node-events-CdZP3Kok.js +0 -481
  2234. package/dist/server-plugin-bootstrap-C1Su6th-.js +0 -2
  2235. package/dist/server-plugin-bootstrap-DV23MPGu.js +0 -11333
  2236. package/dist/server-restart-sentinel-BWiOzljY.js +0 -697
  2237. package/dist/server-startup-memory-DcY7vInd.js +0 -32
  2238. package/dist/server.impl-DVM9pR9C.js +0 -12735
  2239. package/dist/service-2moXf4Z3.js +0 -940
  2240. package/dist/service-ChLFBF7Q.js +0 -120
  2241. package/dist/service-XI052xiT.js +0 -2
  2242. package/dist/service-audit-BFxGImYM.js +0 -254
  2243. package/dist/service-audit-cqHyD5gB.js +0 -2
  2244. package/dist/session-DgdrHsUH.js +0 -48
  2245. package/dist/session-cost-usage-v7CmY-jl.js +0 -651
  2246. package/dist/session-envelope-DdJGLsph.js +0 -18
  2247. package/dist/session-key-CGM2lMjF.js +0 -65
  2248. package/dist/session-kill-http-B_J1fJ4-.js +0 -110
  2249. package/dist/session-meta-DNYXwb8Y.js +0 -109
  2250. package/dist/session-override-CvWOXFPt.js +0 -106
  2251. package/dist/session-reset-model.runtime-CSgYVD3U.js +0 -133
  2252. package/dist/session-reset-service-DPgw70iw.js +0 -471
  2253. package/dist/session-route-B0h6MEyB.js +0 -93
  2254. package/dist/session-status.runtime-DCvgI1pG.js +0 -2
  2255. package/dist/session-store-2T8PZlcn.js +0 -126
  2256. package/dist/session-store.runtime-BvnkL0Mw.js +0 -2
  2257. package/dist/session-subagent-reactivation.runtime-BgsCnI-h.js +0 -2
  2258. package/dist/session-system-events-Yvfgcmpd.js +0 -63
  2259. package/dist/session-tab-registry-BoZsI5I6.js +0 -491
  2260. package/dist/session-transcript-hit-CJ5Jj7sA.js +0 -41
  2261. package/dist/session-updates-CUUxKrNv.js +0 -236
  2262. package/dist/session-updates.runtime-Dl3SAkoT.js +0 -2
  2263. package/dist/session-utils-BrGPE9ed.js +0 -926
  2264. package/dist/session-visibility-CZjMA1SL.js +0 -147
  2265. package/dist/sessions-BsnttWP_.js +0 -48
  2266. package/dist/sessions-CZok7kda.js +0 -281
  2267. package/dist/sessions-DnGJeOcI.js +0 -2
  2268. package/dist/sessions-GSCHVTz5.js +0 -16
  2269. package/dist/sessions-helpers-B3W7MdIb.js +0 -304
  2270. package/dist/sessions-history-http-Bw5J6HQ-.js +0 -383
  2271. package/dist/sessions-patch-2sBcHc9a.js +0 -309
  2272. package/dist/sessions-resolve-C-VZh_56.js +0 -174
  2273. package/dist/sessions.runtime-cLuc67tJ.js +0 -2
  2274. package/dist/set-5DGVoB6Q.js +0 -2
  2275. package/dist/set-COJp56WQ.js +0 -17
  2276. package/dist/set-image-CLKXLt5l.js +0 -2
  2277. package/dist/set-image-Wy-bkC3Q.js +0 -17
  2278. package/dist/setup-BG2J2HR-.js +0 -495
  2279. package/dist/setup-CEO-WwxS.js +0 -421
  2280. package/dist/setup-api-Culp0Usf.js +0 -29
  2281. package/dist/setup-core-CaTBS6Tz.js +0 -171
  2282. package/dist/setup-core-Dhwqz5ni.js +0 -184
  2283. package/dist/setup-core-Zijy2DMv.js +0 -393
  2284. package/dist/setup-core-youmXvW_.js +0 -176
  2285. package/dist/setup-surface-BBqs2Jo2.js +0 -351
  2286. package/dist/setup-surface-BKIPq1vY.js +0 -72
  2287. package/dist/setup-surface-BeMn-9hU.js +0 -403
  2288. package/dist/setup-surface-CUd-s0wh.js +0 -286
  2289. package/dist/setup-surface-Czri_ht7.js +0 -3
  2290. package/dist/setup-surface-DtscjAY3.js +0 -219
  2291. package/dist/setup.finalize-BSCjEqxV.js +0 -539
  2292. package/dist/setup.gateway-config-Df6Jm4vX.js +0 -250
  2293. package/dist/shared-B3Pz1Xcr.js +0 -121
  2294. package/dist/shared-Bc3x3THS.js +0 -76
  2295. package/dist/shared-C2qh8ugk.js +0 -217
  2296. package/dist/shared-CciCGYbs.js +0 -135
  2297. package/dist/shared-CsIxMVr_.js +0 -186
  2298. package/dist/shared-CxbLx0Ww.js +0 -198
  2299. package/dist/shared-DicCIRvK.js +0 -60
  2300. package/dist/shared-runtime-6_MnYe7Q.js +0 -7
  2301. package/dist/short-term-promotion-BIzj922a.js +0 -1543
  2302. package/dist/simple-completion-runtime-CGhlf0hZ.js +0 -158
  2303. package/dist/simple-completion-transport-DewSxAwJ.js +0 -33
  2304. package/dist/skills-clawhub-Dlv_j_Jg.js +0 -275
  2305. package/dist/skills-cli-D0EdapwV.js +0 -370
  2306. package/dist/slash-state-XfeMEeuI.js +0 -1911
  2307. package/dist/speech-core-DvaF8h0I.js +0 -94
  2308. package/dist/speech-provider-BQ98DhrM.js +0 -184
  2309. package/dist/speech-provider-BrwlxrtZ.js +0 -395
  2310. package/dist/speech-provider-CQLk4cH9.js +0 -170
  2311. package/dist/speech-provider-CUinmhV6.js +0 -103
  2312. package/dist/speech-provider-Cu9Q9-q6.js +0 -216
  2313. package/dist/speech-provider-Dr8g2Zbc.js +0 -209
  2314. package/dist/speech-provider-xHvRvcVe.js +0 -209
  2315. package/dist/src-BiDxQvtV.js +0 -3974
  2316. package/dist/stage-sandbox-media.runtime-UP-7985c.js +0 -232
  2317. package/dist/startup-auth-DVAg6R78.js +0 -180
  2318. package/dist/startup-context-CXQi-7YB.js +0 -312
  2319. package/dist/state-migrations-Aoorw4v_.js +0 -820
  2320. package/dist/status--hkh9cCZ.js +0 -209
  2321. package/dist/status-B880ja1s.js +0 -3
  2322. package/dist/status-BwSnS_wh.js +0 -397
  2323. package/dist/status-Cra01dC_.js +0 -62
  2324. package/dist/status-CuYSeMym.js +0 -2
  2325. package/dist/status-DY0DlWlw.js +0 -190
  2326. package/dist/status-DuZdkulz.js +0 -323
  2327. package/dist/status-MT62_Jgw.js +0 -2
  2328. package/dist/status-all-Dr3a4BAf.js +0 -498
  2329. package/dist/status-json-CXeZPfDL.js +0 -14
  2330. package/dist/status-json-command-JBCAP3wk.js +0 -84
  2331. package/dist/status-message-D8KTfWqp.js +0 -466
  2332. package/dist/status-message.runtime-i6HSwq0C.js +0 -6
  2333. package/dist/status-queue.runtime-Dpqj1jlp.js +0 -2
  2334. package/dist/status-runtime-shared-BeB5Gpc6.js +0 -257
  2335. package/dist/status-subagents.runtime-B4UXD0lL.js +0 -18
  2336. package/dist/status-text-myqmk4OL.js +0 -237
  2337. package/dist/status.command.text-runtime-DxXvRSSp.js +0 -15
  2338. package/dist/status.gateway-connection.runtime-B0Iwl2iZ.js +0 -2
  2339. package/dist/status.gather-CRbfrtwi.js +0 -292
  2340. package/dist/status.gather-DgGJqGIO.js +0 -2
  2341. package/dist/status.runtime-B1fTpY0S.js +0 -2
  2342. package/dist/status.runtime-Cbw0CFuM.js +0 -2
  2343. package/dist/status.scan-C1aqDsy2.js +0 -65
  2344. package/dist/status.scan-overview-BerlJz2l.js +0 -379
  2345. package/dist/status.scan.deps.runtime-vyKPba81.js +0 -18
  2346. package/dist/status.scan.fast-json-BXY82vu2.js +0 -2
  2347. package/dist/status.scan.fast-json-DJqgEbzZ.js +0 -132
  2348. package/dist/status.scan.runtime-nuf4UXm_.js +0 -409
  2349. package/dist/status.summary-CCdLUph8.js +0 -214
  2350. package/dist/status.summary-CHAn0_FS.js +0 -2
  2351. package/dist/status.update-Brj2S4WO.js +0 -2
  2352. package/dist/status.update-wHbH0vtL.js +0 -79
  2353. package/dist/store-DPPUFKL4.js +0 -1235
  2354. package/dist/store-DVf_1KBR.js +0 -4
  2355. package/dist/store-DsNJP7a2.js +0 -910
  2356. package/dist/store-load-DevCJoMp.js +0 -370
  2357. package/dist/store.runtime-DXcFo-7e.js +0 -2
  2358. package/dist/stream-CpdM0BB4.js +0 -27
  2359. package/dist/stream-QnfgL1uu.js +0 -664
  2360. package/dist/stream-Yw9oI1N9.js +0 -134
  2361. package/dist/stt-BKJ7-W_H.js +0 -66
  2362. package/dist/subagent-announce-D4jG75Ub.js +0 -351
  2363. package/dist/subagent-announce-delivery-BkQYzDcy.js +0 -726
  2364. package/dist/subagent-announce-output-C3pkuu-t.js +0 -364
  2365. package/dist/subagent-capabilities-Dr9kqRXv.js +0 -251
  2366. package/dist/subagent-control-DVVK8du2.js +0 -506
  2367. package/dist/subagent-control.runtime-D20i92a8.js +0 -3
  2368. package/dist/subagent-followup.runtime-CdeweG-S.js +0 -68
  2369. package/dist/subagent-list-CPGmzGIr.js +0 -172
  2370. package/dist/subagent-orphan-recovery-ZQanOHb4.js +0 -305
  2371. package/dist/subagent-registry-BcPa3ho0.js +0 -3
  2372. package/dist/subagent-registry-hJUso5eL.js +0 -1753
  2373. package/dist/subagent-spawn-DTaeQc9q.js +0 -1005
  2374. package/dist/system-cli-MQUV1Kt2.js +0 -59
  2375. package/dist/target-id-DwGFlj0w.js +0 -107
  2376. package/dist/targets-BPdSjnQH.js +0 -67
  2377. package/dist/task-executor-B62Qzfi-.js +0 -360
  2378. package/dist/task-owner-access-BBMrMOlN.js +0 -74
  2379. package/dist/task-registry-BD-ew2bT.js +0 -2366
  2380. package/dist/task-registry-delivery-runtime-B2WyGY0d.js +0 -3
  2381. package/dist/task-registry-delivery-runtime-MFJszOHI.js +0 -2
  2382. package/dist/task-registry.maintenance-0D2Yxl49.js +0 -416
  2383. package/dist/task-registry.maintenance-OPlfB5W9.js +0 -2
  2384. package/dist/tavily-client-C3xytQRs.js +0 -193
  2385. package/dist/tavily-client-CZGbAgS5.js +0 -2
  2386. package/dist/tavily-search-provider-D6KPby-f.js +0 -62
  2387. package/dist/telnyx-dl-FWSZ7.js +0 -260
  2388. package/dist/testing-DmxZ16UC.js +0 -575
  2389. package/dist/text-report-DbwOAt-s.js +0 -587
  2390. package/dist/text-runtime-7KpTTpVi.js +0 -290
  2391. package/dist/tool-auth-shared-Bv6BKCi8.js +0 -90
  2392. package/dist/tool-config-shared-DzQUOIuD.js +0 -19
  2393. package/dist/tool-policy-pipeline-v9XxD-ex.js +0 -109
  2394. package/dist/tool-resolution-vn72hwMo.js +0 -90
  2395. package/dist/tool-schema-runtime-jV8YdQ9e.js +0 -167
  2396. package/dist/tools-CqCuGTXf.js +0 -113
  2397. package/dist/tools-effective-inventory-DII_pOSr.js +0 -152
  2398. package/dist/tools-invoke-http-DdthGR52.js +0 -206
  2399. package/dist/tools.runtime-B8up1LNG.js +0 -4
  2400. package/dist/transcript-BEG6GDFF.js +0 -312
  2401. package/dist/transcript-resolve.runtime-BiYkACEe.js +0 -2
  2402. package/dist/transcript.runtime-MFREl0oG.js +0 -2
  2403. package/dist/transport-policy-B0VagXph.js +0 -75
  2404. package/dist/trash-Cngl97iU.js +0 -24
  2405. package/dist/tts-Bp81AGLz.js +0 -183
  2406. package/dist/tts-O3Lo0LND.js +0 -64
  2407. package/dist/tui-cli-Bz51WCAi.js +0 -4575
  2408. package/dist/twilio-CFtxsLCP.js +0 -609
  2409. package/dist/update-CgkXd2kv.js +0 -1282
  2410. package/dist/update-check-HnA0I2Da.js +0 -438
  2411. package/dist/update-cli-BYxOEE8h.js +0 -1759
  2412. package/dist/update-runner-Dghmpf13.js +0 -1892
  2413. package/dist/update-startup-BbGRP2fd.js +0 -331
  2414. package/dist/update-startup-CvNOEuOg.js +0 -2
  2415. package/dist/upgrade-Dvj8K4WB.js +0 -1226
  2416. package/dist/usage-format-B8I_58zr.js +0 -2
  2417. package/dist/usage-format-Hc-FyvzW.js +0 -703
  2418. package/dist/usage-q0pe5lMT.js +0 -606
  2419. package/dist/video-generation-core-BlmpVj-F.js +0 -6
  2420. package/dist/video-generation-provider-BTKjUEr6.js +0 -264
  2421. package/dist/video-generation-provider-BsJaGSdY.js +0 -271
  2422. package/dist/video-generation-provider-CRd5mS15.js +0 -187
  2423. package/dist/video-generation-provider-D5Dt3o8N.js +0 -221
  2424. package/dist/video-generation-provider-DAadtfjT2.js +0 -77
  2425. package/dist/video-generation-provider-DEuIYj4Q.js +0 -118
  2426. package/dist/video-generation-provider-I00zAw5a.js +0 -281
  2427. package/dist/video-generation-provider-LsvxSeCH.js +0 -78
  2428. package/dist/video-generation-provider-PjRFUZuF.js +0 -254
  2429. package/dist/video-generation-provider-_lpEJ0sZ.js +0 -287
  2430. package/dist/video-generation-provider-rYLsBGcx.js +0 -64
  2431. package/dist/video-generation-runtime-C0HgCTTM.js +0 -2
  2432. package/dist/video-generation-task-status-CHYB_IeZ.js +0 -163
  2433. package/dist/voice-mapping-CqBur95r.js +0 -41
  2434. package/dist/wait-for-idle-before-flush-DJMxeE2X.js +0 -5986
  2435. package/dist/web-fetch-providers.runtime-DV5-20bl.js +0 -34
  2436. package/dist/web-provider-runtime-shared-GwramnJ6.js +0 -180
  2437. package/dist/web-search-DInuHnh4.js +0 -61
  2438. package/dist/web-search-provider-BshM5HnM.js +0 -163
  2439. package/dist/web-search-provider.runtime-BKjABarO.js +0 -2
  2440. package/dist/web-search-provider.runtime-DcC48-4y.js +0 -185
  2441. package/dist/web-search-providers.runtime-Ct-fiRLn.js +0 -42
  2442. package/dist/webhook-shared-C5lP_giw.js +0 -12
  2443. package/dist/webhooks-cli-VV9ptfcF.js +0 -321
  2444. package/dist/wizard-models-BxP-rnuO.js +0 -161
  2445. package/dist/workflow-runtime-BZbnyBLJ.js +0 -485
  2446. package/dist/x-search-config-B5seJHNk.js +0 -36
  2447. package/dist/x-search-shared-B3VKBF82.js +0 -75
  2448. package/dist/zalo-js-XocMxKUr.js +0 -1157
@@ -0,0 +1,3341 @@
1
+ import { i as formatErrorMessage } from "./errors-Jbvi20TW.js";
2
+ import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString$4 } from "./string-coerce-C1IzJjqi.js";
3
+ import { m as resolveUserPath } from "./utils-DaGfogP-.js";
4
+ import { a as loadConfig, y as writeConfigFile } from "./io-DNd8mbjy.js";
5
+ import { a as getImageMetadata, l as resizeToJpeg, r as buildImageResizeSideGrid, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-DXau4yMa.js";
6
+ import { a as ensureMediaDir, l as saveMediaBuffer } from "./store-Fge4lGwN.js";
7
+ import { n as deriveDefaultBrowserCdpPortRange } from "./port-defaults-grVhyUfZ.js";
8
+ import "./text-runtime-B4pK_Jpd.js";
9
+ import "./browser-setup-tools-VC7rGCyn.js";
10
+ import "./control-auth-BlqH4IVx.js";
11
+ import { c as DEFAULT_AI_SNAPSHOT_MAX_CHARS, f as DEFAULT_BROWSER_SCREENSHOT_TIMEOUT_MS, i as resolveExistingPathsWithinRoot, n as DEFAULT_TRACE_DIR, o as resolveWritablePathWithinRoot, r as DEFAULT_UPLOAD_DIR, s as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, t as DEFAULT_DOWNLOAD_DIR } from "./paths-6HUizwZc.js";
12
+ import { n as resolveProfile } from "./config-D9XEe0Cd.js";
13
+ import { d as parseBrowserHttpUrl, n as assertCdpEndpointAllowed } from "./cdp.helpers-D-cKiAJ-.js";
14
+ import { a as BrowserProfileUnavailableError, c as BrowserTabNotFoundError, d as toBrowserErrorResponse, i as BrowserProfileNotFoundError, l as BrowserTargetAmbiguousError, n as BrowserConflictError, r as BrowserError, s as BrowserResourceExhaustedError, u as BrowserValidationError } from "./errors-DyjYUGQK.js";
15
+ import { a as shouldUsePlaywrightForAriaSnapshot, i as resolveDefaultSnapshotFormat, n as getPwAiModule$1, o as shouldUsePlaywrightForScreenshot, r as getBrowserProfileCapabilities, t as resolveTargetIdFromTabs } from "./target-id-0_iIeBLg.js";
16
+ import { _ as assertBrowserNavigationAllowed, a as resolveGenesisUserDataDir, h as resolveBrowserNavigationProxyMode, m as snapshotAria, u as captureScreenshot, x as withBrowserNavigationPolicy, y as assertBrowserNavigationResultAllowed } from "./chrome-CgLTMlX5.js";
17
+ import { n as normalizeString } from "./record-shared-DxabpimX.js";
18
+ import { E as uploadChromeMcpFile, T as takeChromeMcpSnapshot, _ as navigateChromeMcpPage, a as closeChromeMcpTab, c as evaluateChromeMcpScript, f as getChromeMcpPid, l as fillChromeMcpElement, m as hoverChromeMcpElement, n as clickChromeMcpCoords, o as dragChromeMcpElement, r as clickChromeMcpElement, u as fillChromeMcpForm, w as takeChromeMcpScreenshot, x as resizeChromeMcpPage, y as pressChromeMcpKey } from "./chrome-mcp-BjiLGZmi.js";
19
+ import { a as CONTENT_ROLES, d as ACT_MAX_CLICK_DELAY_MS, f as ACT_MAX_WAIT_TIME_MS, g as matchBrowserUrlPattern, l as normalizeBrowserFormField, o as INTERACTIVE_ROLES, p as normalizeActBoundedNonNegativeMs, r as getRoleSnapshotStats, s as STRUCTURAL_ROLES } from "./pw-role-snapshot-D65unjCD.js";
20
+ import { r as resolveBrowserExecutableForPlatform } from "./chrome.executables-CoZsfQLC.js";
21
+ import { t as movePathToTrash } from "./trash-F4tvjrKS.js";
22
+ import fs from "node:fs";
23
+ import path from "node:path";
24
+ import fs$1 from "node:fs/promises";
25
+ import crypto from "node:crypto";
26
+ //#region extensions/browser/src/browser/routes/utils.ts
27
+ function normalizeOptionalString$3(value) {
28
+ return value.trim() || void 0;
29
+ }
30
+ function asyncBrowserRoute(handler) {
31
+ return (req, res) => handler(req, res);
32
+ }
33
+ /**
34
+ * Extract profile name from query string or body and get profile context.
35
+ * Query string takes precedence over body for consistency with GET routes.
36
+ */
37
+ function getProfileContext(req, ctx) {
38
+ let profileName;
39
+ if (typeof req.query.profile === "string") profileName = normalizeOptionalString$3(req.query.profile);
40
+ if (!profileName && req.body && typeof req.body === "object") {
41
+ const body = req.body;
42
+ if (typeof body.profile === "string") profileName = normalizeOptionalString$3(body.profile);
43
+ }
44
+ try {
45
+ return ctx.forProfile(profileName);
46
+ } catch (err) {
47
+ return {
48
+ error: String(err),
49
+ status: 404
50
+ };
51
+ }
52
+ }
53
+ function jsonError(res, status, message) {
54
+ res.status(status).json({ error: message });
55
+ }
56
+ function toStringOrEmpty(value) {
57
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return normalizeOptionalString$3(String(value)) ?? "";
58
+ return "";
59
+ }
60
+ function toNumber(value) {
61
+ if (typeof value === "number" && Number.isFinite(value)) return value;
62
+ const normalized = typeof value === "string" ? normalizeOptionalString$3(value) : void 0;
63
+ if (normalized) {
64
+ const parsed = Number(normalized);
65
+ return Number.isFinite(parsed) ? parsed : void 0;
66
+ }
67
+ }
68
+ function toBoolean(value) {
69
+ if (typeof value === "boolean") return value;
70
+ if (typeof value !== "string" && typeof value !== "number") return;
71
+ const normalized = String(value).trim().toLowerCase();
72
+ if (normalized === "true" || normalized === "1" || normalized === "yes") return true;
73
+ if (normalized === "false" || normalized === "0" || normalized === "no") return false;
74
+ }
75
+ function toStringArray(value) {
76
+ if (!Array.isArray(value)) return;
77
+ const strings = value.map((v) => toStringOrEmpty(v)).filter(Boolean);
78
+ return strings.length ? strings : void 0;
79
+ }
80
+ //#endregion
81
+ //#region extensions/browser/src/browser/routes/agent.shared.ts
82
+ function normalizeOptionalString$2(value) {
83
+ return typeof value === "string" ? value.trim() || void 0 : void 0;
84
+ }
85
+ const SELECTOR_UNSUPPORTED_MESSAGE = [
86
+ "Error: 'selector' is not supported. Use 'ref' from snapshot instead.",
87
+ "",
88
+ "Example workflow:",
89
+ "1. snapshot action to get page state with refs",
90
+ "2. act with ref: \"e123\" to interact with element",
91
+ "",
92
+ "This is more reliable for modern SPAs."
93
+ ].join("\n");
94
+ function readBody(req) {
95
+ const body = req.body;
96
+ if (!body || typeof body !== "object" || Array.isArray(body)) return {};
97
+ return body;
98
+ }
99
+ function resolveTargetIdFromBody(body) {
100
+ return (normalizeOptionalString$2(body.targetId) ?? "") || void 0;
101
+ }
102
+ function resolveTargetIdFromQuery(query) {
103
+ return (normalizeOptionalString$2(query.targetId) ?? "") || void 0;
104
+ }
105
+ function handleRouteError(ctx, res, err) {
106
+ const mapped = ctx.mapTabError(err);
107
+ if (mapped) return jsonError(res, mapped.status, mapped.message);
108
+ const browserMapped = toBrowserErrorResponse(err);
109
+ if (browserMapped) return jsonError(res, browserMapped.status, browserMapped.message);
110
+ jsonError(res, 500, String(err));
111
+ }
112
+ function resolveProfileContext(req, res, ctx) {
113
+ const profileCtx = getProfileContext(req, ctx);
114
+ if ("error" in profileCtx) {
115
+ jsonError(res, profileCtx.status, profileCtx.error);
116
+ return null;
117
+ }
118
+ return profileCtx;
119
+ }
120
+ async function getPwAiModule() {
121
+ return await getPwAiModule$1({ mode: "soft" });
122
+ }
123
+ async function requirePwAi(res, feature) {
124
+ const mod = await getPwAiModule();
125
+ if (mod) return mod;
126
+ jsonError(res, 501, [
127
+ `Playwright is not available in this gateway build; '${feature}' is unsupported.`,
128
+ "Repair the bundled browser plugin runtime dependencies so playwright-core is installed, then restart the gateway. In Docker, also install Chromium with the bundled playwright-core CLI.",
129
+ "Docs: /tools/browser#playwright-requirement"
130
+ ].join("\n"));
131
+ return null;
132
+ }
133
+ async function withRouteTabContext(params) {
134
+ const profileCtx = resolveProfileContext(params.req, params.res, params.ctx);
135
+ if (!profileCtx) return;
136
+ try {
137
+ const tab = await profileCtx.ensureTabAvailable(params.targetId);
138
+ return await params.run({
139
+ profileCtx,
140
+ tab,
141
+ cdpUrl: profileCtx.profile.cdpUrl
142
+ });
143
+ } catch (err) {
144
+ handleRouteError(params.ctx, params.res, err);
145
+ return;
146
+ }
147
+ }
148
+ async function withPlaywrightRouteContext(params) {
149
+ return await withRouteTabContext({
150
+ req: params.req,
151
+ res: params.res,
152
+ ctx: params.ctx,
153
+ targetId: params.targetId,
154
+ run: async ({ profileCtx, tab, cdpUrl }) => {
155
+ const pw = await requirePwAi(params.res, params.feature);
156
+ if (!pw) return;
157
+ return await params.run({
158
+ profileCtx,
159
+ tab,
160
+ cdpUrl,
161
+ pw
162
+ });
163
+ }
164
+ });
165
+ }
166
+ //#endregion
167
+ //#region extensions/browser/src/browser/routes/existing-session-limits.ts
168
+ const EXISTING_SESSION_LIMITS = {
169
+ act: {
170
+ clickSelector: "existing-session click does not support selector targeting yet; use ref.",
171
+ clickButtonOrModifiers: "existing-session click currently supports left-click only (no button overrides/modifiers).",
172
+ typeSelector: "existing-session type does not support selector targeting yet; use ref.",
173
+ typeSlowly: "existing-session type does not support slowly=true; use fill/press instead.",
174
+ typeTimeout: "existing-session type does not support timeoutMs overrides.",
175
+ pressDelay: "existing-session press does not support delayMs.",
176
+ hoverSelector: "existing-session hover does not support selector targeting yet; use ref.",
177
+ hoverTimeout: "existing-session hover does not support timeoutMs overrides.",
178
+ scrollSelector: "existing-session scrollIntoView does not support selector targeting yet; use ref.",
179
+ scrollTimeout: "existing-session scrollIntoView does not support timeoutMs overrides.",
180
+ dragSelector: "existing-session drag does not support selector targeting yet; use startRef/endRef.",
181
+ dragTimeout: "existing-session drag does not support timeoutMs overrides.",
182
+ selectSelector: "existing-session select does not support selector targeting yet; use ref.",
183
+ selectSingleValue: "existing-session select currently supports a single value only.",
184
+ selectTimeout: "existing-session select does not support timeoutMs overrides.",
185
+ fillTimeout: "existing-session fill does not support timeoutMs overrides.",
186
+ waitNetworkIdle: "existing-session wait does not support loadState=networkidle yet.",
187
+ evaluateTimeout: "existing-session evaluate does not support timeoutMs overrides.",
188
+ batch: "existing-session batch is not supported yet; send actions individually."
189
+ },
190
+ hooks: {
191
+ uploadElement: "existing-session file uploads do not support element selectors; use ref/inputRef.",
192
+ uploadSingleFile: "existing-session file uploads currently support one file at a time.",
193
+ uploadRefRequired: "existing-session file uploads require ref or inputRef.",
194
+ dialogTimeout: "existing-session dialog handling does not support timeoutMs."
195
+ },
196
+ download: {
197
+ waitUnsupported: "download waiting is not supported for existing-session profiles yet.",
198
+ downloadUnsupported: "downloads are not supported for existing-session profiles yet."
199
+ },
200
+ snapshot: {
201
+ pdfUnsupported: "pdf is not supported for existing-session profiles yet; use screenshot/snapshot instead.",
202
+ screenshotElement: "element screenshots are not supported for existing-session profiles; use ref from snapshot.",
203
+ snapshotSelector: "selector/frame snapshots are not supported for existing-session profiles; snapshot the whole page and use refs."
204
+ },
205
+ responseBody: "response body is not supported for existing-session profiles yet."
206
+ };
207
+ //#endregion
208
+ //#region extensions/browser/src/browser/routes/output-paths.ts
209
+ async function ensureOutputRootDir(rootDir) {
210
+ await fs$1.mkdir(rootDir, { recursive: true });
211
+ }
212
+ async function resolveWritableOutputPathOrRespond(params) {
213
+ if (params.ensureRootDir) await ensureOutputRootDir(params.rootDir);
214
+ const pathResult = await resolveWritablePathWithinRoot({
215
+ rootDir: params.rootDir,
216
+ requestedPath: params.requestedPath,
217
+ scopeLabel: params.scopeLabel,
218
+ defaultFileName: params.defaultFileName
219
+ });
220
+ if (!pathResult.ok) {
221
+ params.res.status(400).json({ error: pathResult.error });
222
+ return null;
223
+ }
224
+ return pathResult.path;
225
+ }
226
+ //#endregion
227
+ //#region extensions/browser/src/browser/routes/agent.act.download.ts
228
+ function buildDownloadRequestBase(cdpUrl, targetId, timeoutMs) {
229
+ return {
230
+ cdpUrl,
231
+ targetId,
232
+ timeoutMs: timeoutMs ?? void 0
233
+ };
234
+ }
235
+ function registerBrowserAgentActDownloadRoutes(app, ctx) {
236
+ app.post("/wait/download", asyncBrowserRoute(async (req, res) => {
237
+ const body = readBody(req);
238
+ const targetId = resolveTargetIdFromBody(body);
239
+ const out = toStringOrEmpty(body.path) || "";
240
+ const timeoutMs = toNumber(body.timeoutMs);
241
+ await withRouteTabContext({
242
+ req,
243
+ res,
244
+ ctx,
245
+ targetId,
246
+ run: async ({ profileCtx, cdpUrl, tab }) => {
247
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) return jsonError(res, 501, EXISTING_SESSION_LIMITS.download.waitUnsupported);
248
+ const pw = await requirePwAi(res, "wait for download");
249
+ if (!pw) return;
250
+ await ensureOutputRootDir(DEFAULT_DOWNLOAD_DIR);
251
+ let downloadPath;
252
+ if (out.trim()) {
253
+ const resolvedDownloadPath = await resolveWritableOutputPathOrRespond({
254
+ res,
255
+ rootDir: DEFAULT_DOWNLOAD_DIR,
256
+ requestedPath: out,
257
+ scopeLabel: "downloads directory"
258
+ });
259
+ if (!resolvedDownloadPath) return;
260
+ downloadPath = resolvedDownloadPath;
261
+ }
262
+ const requestBase = buildDownloadRequestBase(cdpUrl, tab.targetId, timeoutMs);
263
+ const result = await pw.waitForDownloadViaPlaywright({
264
+ ...requestBase,
265
+ path: downloadPath
266
+ });
267
+ res.json({
268
+ ok: true,
269
+ targetId: tab.targetId,
270
+ download: result
271
+ });
272
+ }
273
+ });
274
+ }));
275
+ app.post("/download", asyncBrowserRoute(async (req, res) => {
276
+ const body = readBody(req);
277
+ const targetId = resolveTargetIdFromBody(body);
278
+ const ref = toStringOrEmpty(body.ref);
279
+ const out = toStringOrEmpty(body.path);
280
+ const timeoutMs = toNumber(body.timeoutMs);
281
+ if (!ref) return jsonError(res, 400, "ref is required");
282
+ if (!out) return jsonError(res, 400, "path is required");
283
+ await withRouteTabContext({
284
+ req,
285
+ res,
286
+ ctx,
287
+ targetId,
288
+ run: async ({ profileCtx, cdpUrl, tab }) => {
289
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) return jsonError(res, 501, EXISTING_SESSION_LIMITS.download.downloadUnsupported);
290
+ const pw = await requirePwAi(res, "download");
291
+ if (!pw) return;
292
+ await ensureOutputRootDir(DEFAULT_DOWNLOAD_DIR);
293
+ const downloadPath = await resolveWritableOutputPathOrRespond({
294
+ res,
295
+ rootDir: DEFAULT_DOWNLOAD_DIR,
296
+ requestedPath: out,
297
+ scopeLabel: "downloads directory"
298
+ });
299
+ if (!downloadPath) return;
300
+ const requestBase = buildDownloadRequestBase(cdpUrl, tab.targetId, timeoutMs);
301
+ const result = await pw.downloadViaPlaywright({
302
+ ...requestBase,
303
+ ref,
304
+ path: downloadPath
305
+ });
306
+ res.json({
307
+ ok: true,
308
+ targetId: tab.targetId,
309
+ download: result
310
+ });
311
+ }
312
+ });
313
+ }));
314
+ }
315
+ //#endregion
316
+ //#region extensions/browser/src/browser/routes/agent.act.errors.ts
317
+ const ACT_ERROR_CODES = {
318
+ kindRequired: "ACT_KIND_REQUIRED",
319
+ invalidRequest: "ACT_INVALID_REQUEST",
320
+ selectorUnsupported: "ACT_SELECTOR_UNSUPPORTED",
321
+ evaluateDisabled: "ACT_EVALUATE_DISABLED",
322
+ unsupportedForExistingSession: "ACT_EXISTING_SESSION_UNSUPPORTED",
323
+ targetIdMismatch: "ACT_TARGET_ID_MISMATCH"
324
+ };
325
+ function jsonActError(res, status, code, message) {
326
+ res.status(status).json({
327
+ error: message,
328
+ code
329
+ });
330
+ }
331
+ function browserEvaluateDisabledMessage(action) {
332
+ return [action === "wait" ? "wait --fn is disabled by config (browser.evaluateEnabled=false)." : "act:evaluate is disabled by config (browser.evaluateEnabled=false).", "Docs: /gateway/configuration#browser-genesis-managed-browser"].join("\n");
333
+ }
334
+ //#endregion
335
+ //#region extensions/browser/src/browser/routes/agent.act.hooks.ts
336
+ function registerBrowserAgentActHookRoutes(app, ctx) {
337
+ app.post("/hooks/file-chooser", asyncBrowserRoute(async (req, res) => {
338
+ const body = readBody(req);
339
+ const targetId = resolveTargetIdFromBody(body);
340
+ const ref = toStringOrEmpty(body.ref) || void 0;
341
+ const inputRef = toStringOrEmpty(body.inputRef) || void 0;
342
+ const element = toStringOrEmpty(body.element) || void 0;
343
+ const paths = toStringArray(body.paths) ?? [];
344
+ const timeoutMs = toNumber(body.timeoutMs);
345
+ if (!paths.length) return jsonError(res, 400, "paths are required");
346
+ await withRouteTabContext({
347
+ req,
348
+ res,
349
+ ctx,
350
+ targetId,
351
+ run: async ({ profileCtx, cdpUrl, tab }) => {
352
+ const uploadPathsResult = await resolveExistingPathsWithinRoot({
353
+ rootDir: DEFAULT_UPLOAD_DIR,
354
+ requestedPaths: paths,
355
+ scopeLabel: `uploads directory (${DEFAULT_UPLOAD_DIR})`
356
+ });
357
+ if (!uploadPathsResult.ok) {
358
+ res.status(400).json({ error: uploadPathsResult.error });
359
+ return;
360
+ }
361
+ const resolvedPaths = uploadPathsResult.paths;
362
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) {
363
+ if (element) return jsonError(res, 501, EXISTING_SESSION_LIMITS.hooks.uploadElement);
364
+ if (resolvedPaths.length !== 1) return jsonError(res, 501, EXISTING_SESSION_LIMITS.hooks.uploadSingleFile);
365
+ const uid = inputRef || ref;
366
+ if (!uid) return jsonError(res, 501, EXISTING_SESSION_LIMITS.hooks.uploadRefRequired);
367
+ await uploadChromeMcpFile({
368
+ profileName: profileCtx.profile.name,
369
+ userDataDir: profileCtx.profile.userDataDir,
370
+ targetId: tab.targetId,
371
+ uid,
372
+ filePath: resolvedPaths[0] ?? ""
373
+ });
374
+ return res.json({ ok: true });
375
+ }
376
+ const pw = await requirePwAi(res, "file chooser hook");
377
+ if (!pw) return;
378
+ if (inputRef || element) {
379
+ if (ref) return jsonError(res, 400, "ref cannot be combined with inputRef/element");
380
+ await pw.setInputFilesViaPlaywright({
381
+ cdpUrl,
382
+ targetId: tab.targetId,
383
+ inputRef,
384
+ element,
385
+ paths: resolvedPaths
386
+ });
387
+ } else {
388
+ await pw.armFileUploadViaPlaywright({
389
+ cdpUrl,
390
+ targetId: tab.targetId,
391
+ paths: resolvedPaths,
392
+ timeoutMs: timeoutMs ?? void 0
393
+ });
394
+ if (ref) await pw.clickViaPlaywright({
395
+ cdpUrl,
396
+ targetId: tab.targetId,
397
+ ssrfPolicy: ctx.state().resolved.ssrfPolicy,
398
+ ref
399
+ });
400
+ }
401
+ res.json({ ok: true });
402
+ }
403
+ });
404
+ }));
405
+ app.post("/hooks/dialog", asyncBrowserRoute(async (req, res) => {
406
+ const body = readBody(req);
407
+ const targetId = resolveTargetIdFromBody(body);
408
+ const accept = toBoolean(body.accept);
409
+ const promptText = toStringOrEmpty(body.promptText) || void 0;
410
+ const timeoutMs = toNumber(body.timeoutMs);
411
+ if (accept === void 0) return jsonError(res, 400, "accept is required");
412
+ await withRouteTabContext({
413
+ req,
414
+ res,
415
+ ctx,
416
+ targetId,
417
+ run: async ({ profileCtx, cdpUrl, tab }) => {
418
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) {
419
+ if (timeoutMs) return jsonError(res, 501, EXISTING_SESSION_LIMITS.hooks.dialogTimeout);
420
+ await evaluateChromeMcpScript({
421
+ profileName: profileCtx.profile.name,
422
+ userDataDir: profileCtx.profile.userDataDir,
423
+ targetId: tab.targetId,
424
+ fn: `() => {
425
+ const state = (window.__genesisDialogHook ??= {});
426
+ if (!state.originals) {
427
+ state.originals = {
428
+ alert: window.alert.bind(window),
429
+ confirm: window.confirm.bind(window),
430
+ prompt: window.prompt.bind(window),
431
+ };
432
+ }
433
+ const originals = state.originals;
434
+ const restore = () => {
435
+ window.alert = originals.alert;
436
+ window.confirm = originals.confirm;
437
+ window.prompt = originals.prompt;
438
+ delete window.__genesisDialogHook;
439
+ };
440
+ window.alert = (...args) => {
441
+ try {
442
+ return undefined;
443
+ } finally {
444
+ restore();
445
+ }
446
+ };
447
+ window.confirm = (...args) => {
448
+ try {
449
+ return ${accept ? "true" : "false"};
450
+ } finally {
451
+ restore();
452
+ }
453
+ };
454
+ window.prompt = (...args) => {
455
+ try {
456
+ return ${accept ? JSON.stringify(promptText ?? "") : "null"};
457
+ } finally {
458
+ restore();
459
+ }
460
+ };
461
+ return true;
462
+ }`
463
+ });
464
+ return res.json({ ok: true });
465
+ }
466
+ const pw = await requirePwAi(res, "dialog hook");
467
+ if (!pw) return;
468
+ await pw.armDialogViaPlaywright({
469
+ cdpUrl,
470
+ targetId: tab.targetId,
471
+ accept,
472
+ promptText,
473
+ timeoutMs: timeoutMs ?? void 0
474
+ });
475
+ res.json({ ok: true });
476
+ }
477
+ });
478
+ }));
479
+ }
480
+ //#endregion
481
+ //#region extensions/browser/src/browser/routes/agent.act.shared.ts
482
+ const ACT_KINDS = [
483
+ "batch",
484
+ "click",
485
+ "clickCoords",
486
+ "close",
487
+ "drag",
488
+ "evaluate",
489
+ "fill",
490
+ "hover",
491
+ "scrollIntoView",
492
+ "press",
493
+ "resize",
494
+ "select",
495
+ "type",
496
+ "wait"
497
+ ];
498
+ function isActKind(value) {
499
+ if (typeof value !== "string") return false;
500
+ return ACT_KINDS.includes(value);
501
+ }
502
+ const ALLOWED_CLICK_MODIFIERS = new Set([
503
+ "Alt",
504
+ "Control",
505
+ "ControlOrMeta",
506
+ "Meta",
507
+ "Shift"
508
+ ]);
509
+ function parseClickButton(raw) {
510
+ if (raw === "left" || raw === "right" || raw === "middle") return raw;
511
+ }
512
+ function parseClickModifiers(raw) {
513
+ if (raw.filter((m) => !ALLOWED_CLICK_MODIFIERS.has(m)).length) return { error: "modifiers must be Alt|Control|ControlOrMeta|Meta|Shift" };
514
+ return { modifiers: raw.length ? raw : void 0 };
515
+ }
516
+ //#endregion
517
+ //#region extensions/browser/src/browser/routes/agent.act.normalize.ts
518
+ function normalizeActKind(raw) {
519
+ const kind = toStringOrEmpty(raw);
520
+ if (!isActKind(kind)) throw new Error("kind is required");
521
+ return kind;
522
+ }
523
+ function countBatchActions(actions) {
524
+ let count = 0;
525
+ for (const action of actions) {
526
+ count += 1;
527
+ if (action.kind === "batch") count += countBatchActions(action.actions);
528
+ }
529
+ return count;
530
+ }
531
+ function validateBatchTargetIds(actions, targetId) {
532
+ for (const action of actions) {
533
+ if (action.targetId && action.targetId !== targetId) return "batched action targetId must match request targetId";
534
+ if (action.kind === "batch") {
535
+ const nestedError = validateBatchTargetIds(action.actions, targetId);
536
+ if (nestedError) return nestedError;
537
+ }
538
+ }
539
+ return null;
540
+ }
541
+ function normalizeFields(rawFields) {
542
+ return (Array.isArray(rawFields) ? rawFields : []).map((field) => {
543
+ if (!field || typeof field !== "object") return null;
544
+ return normalizeBrowserFormField(field);
545
+ }).filter((field) => field !== null);
546
+ }
547
+ function normalizeBatchAction(value) {
548
+ if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error("batch actions must be objects");
549
+ return normalizeActRequest(value, { source: "batch" });
550
+ }
551
+ function normalizeActRequest(body, options) {
552
+ const source = options?.source ?? "request";
553
+ const kind = normalizeActKind(body.kind);
554
+ switch (kind) {
555
+ case "click": {
556
+ const ref = toStringOrEmpty(body.ref) || void 0;
557
+ const selector = toStringOrEmpty(body.selector) || void 0;
558
+ if (!ref && !selector) throw new Error("click requires ref or selector");
559
+ const buttonRaw = toStringOrEmpty(body.button);
560
+ const button = buttonRaw ? parseClickButton(buttonRaw) : void 0;
561
+ if (buttonRaw && !button) throw new Error("click button must be left|right|middle");
562
+ const parsedModifiers = parseClickModifiers(toStringArray(body.modifiers) ?? []);
563
+ if (parsedModifiers.error) throw new Error(parsedModifiers.error);
564
+ const doubleClick = toBoolean(body.doubleClick);
565
+ const delayMs = normalizeActBoundedNonNegativeMs(toNumber(body.delayMs), "click delayMs", ACT_MAX_CLICK_DELAY_MS);
566
+ const timeoutMs = toNumber(body.timeoutMs);
567
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
568
+ return {
569
+ kind,
570
+ ...ref ? { ref } : {},
571
+ ...selector ? { selector } : {},
572
+ ...targetId ? { targetId } : {},
573
+ ...doubleClick !== void 0 ? { doubleClick } : {},
574
+ ...button ? { button } : {},
575
+ ...parsedModifiers.modifiers ? { modifiers: parsedModifiers.modifiers } : {},
576
+ ...delayMs !== void 0 ? { delayMs } : {},
577
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
578
+ };
579
+ }
580
+ case "clickCoords": {
581
+ const x = toNumber(body.x);
582
+ const y = toNumber(body.y);
583
+ if (x === void 0 || y === void 0 || x < 0 || y < 0) throw new Error("clickCoords requires non-negative x and y");
584
+ const buttonRaw = toStringOrEmpty(body.button);
585
+ const button = buttonRaw ? parseClickButton(buttonRaw) : void 0;
586
+ if (buttonRaw && !button) throw new Error("clickCoords button must be left|right|middle");
587
+ const doubleClick = toBoolean(body.doubleClick);
588
+ const delayMs = normalizeActBoundedNonNegativeMs(toNumber(body.delayMs), "clickCoords delayMs", ACT_MAX_CLICK_DELAY_MS);
589
+ const timeoutMs = toNumber(body.timeoutMs);
590
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
591
+ return {
592
+ kind,
593
+ x,
594
+ y,
595
+ ...targetId ? { targetId } : {},
596
+ ...doubleClick !== void 0 ? { doubleClick } : {},
597
+ ...button ? { button } : {},
598
+ ...delayMs !== void 0 ? { delayMs } : {},
599
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
600
+ };
601
+ }
602
+ case "type": {
603
+ const ref = toStringOrEmpty(body.ref) || void 0;
604
+ const selector = toStringOrEmpty(body.selector) || void 0;
605
+ const text = body.text;
606
+ if (!ref && !selector) throw new Error("type requires ref or selector");
607
+ if (typeof text !== "string") throw new Error("type requires text");
608
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
609
+ const submit = toBoolean(body.submit);
610
+ const slowly = toBoolean(body.slowly);
611
+ const timeoutMs = toNumber(body.timeoutMs);
612
+ return {
613
+ kind,
614
+ ...ref ? { ref } : {},
615
+ ...selector ? { selector } : {},
616
+ text,
617
+ ...targetId ? { targetId } : {},
618
+ ...submit !== void 0 ? { submit } : {},
619
+ ...slowly !== void 0 ? { slowly } : {},
620
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
621
+ };
622
+ }
623
+ case "press": {
624
+ const key = toStringOrEmpty(body.key);
625
+ if (!key) throw new Error("press requires key");
626
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
627
+ const delayMs = toNumber(body.delayMs);
628
+ return {
629
+ kind,
630
+ key,
631
+ ...targetId ? { targetId } : {},
632
+ ...delayMs !== void 0 ? { delayMs } : {}
633
+ };
634
+ }
635
+ case "hover":
636
+ case "scrollIntoView": {
637
+ const ref = toStringOrEmpty(body.ref) || void 0;
638
+ const selector = toStringOrEmpty(body.selector) || void 0;
639
+ if (!ref && !selector) throw new Error(`${kind} requires ref or selector`);
640
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
641
+ const timeoutMs = toNumber(body.timeoutMs);
642
+ return {
643
+ kind,
644
+ ...ref ? { ref } : {},
645
+ ...selector ? { selector } : {},
646
+ ...targetId ? { targetId } : {},
647
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
648
+ };
649
+ }
650
+ case "drag": {
651
+ const startRef = toStringOrEmpty(body.startRef) || void 0;
652
+ const startSelector = toStringOrEmpty(body.startSelector) || void 0;
653
+ const endRef = toStringOrEmpty(body.endRef) || void 0;
654
+ const endSelector = toStringOrEmpty(body.endSelector) || void 0;
655
+ if (!startRef && !startSelector) throw new Error("drag requires startRef or startSelector");
656
+ if (!endRef && !endSelector) throw new Error("drag requires endRef or endSelector");
657
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
658
+ const timeoutMs = toNumber(body.timeoutMs);
659
+ return {
660
+ kind,
661
+ ...startRef ? { startRef } : {},
662
+ ...startSelector ? { startSelector } : {},
663
+ ...endRef ? { endRef } : {},
664
+ ...endSelector ? { endSelector } : {},
665
+ ...targetId ? { targetId } : {},
666
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
667
+ };
668
+ }
669
+ case "select": {
670
+ const ref = toStringOrEmpty(body.ref) || void 0;
671
+ const selector = toStringOrEmpty(body.selector) || void 0;
672
+ const values = toStringArray(body.values);
673
+ if (!ref && !selector || !values?.length) throw new Error("select requires ref/selector and values");
674
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
675
+ const timeoutMs = toNumber(body.timeoutMs);
676
+ return {
677
+ kind,
678
+ ...ref ? { ref } : {},
679
+ ...selector ? { selector } : {},
680
+ values,
681
+ ...targetId ? { targetId } : {},
682
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
683
+ };
684
+ }
685
+ case "fill": {
686
+ const fields = normalizeFields(body.fields);
687
+ if (!fields.length) throw new Error("fill requires fields");
688
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
689
+ const timeoutMs = toNumber(body.timeoutMs);
690
+ return {
691
+ kind,
692
+ fields,
693
+ ...targetId ? { targetId } : {},
694
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
695
+ };
696
+ }
697
+ case "resize": {
698
+ const width = toNumber(body.width);
699
+ const height = toNumber(body.height);
700
+ if (width === void 0 || height === void 0 || width <= 0 || height <= 0) throw new Error("resize requires positive width and height");
701
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
702
+ return {
703
+ kind,
704
+ width,
705
+ height,
706
+ ...targetId ? { targetId } : {}
707
+ };
708
+ }
709
+ case "wait": {
710
+ const loadStateRaw = toStringOrEmpty(body.loadState);
711
+ const loadState = loadStateRaw === "load" || loadStateRaw === "domcontentloaded" || loadStateRaw === "networkidle" ? loadStateRaw : void 0;
712
+ const timeMs = normalizeActBoundedNonNegativeMs(toNumber(body.timeMs), "wait timeMs", ACT_MAX_WAIT_TIME_MS);
713
+ const text = toStringOrEmpty(body.text) || void 0;
714
+ const textGone = toStringOrEmpty(body.textGone) || void 0;
715
+ const selector = toStringOrEmpty(body.selector) || void 0;
716
+ const url = toStringOrEmpty(body.url) || void 0;
717
+ const fn = toStringOrEmpty(body.fn) || void 0;
718
+ if (timeMs === void 0 && !text && !textGone && !selector && !url && !loadState && !fn) throw new Error("wait requires at least one of: timeMs, text, textGone, selector, url, loadState, fn");
719
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
720
+ const timeoutMs = toNumber(body.timeoutMs);
721
+ return {
722
+ kind,
723
+ ...timeMs !== void 0 ? { timeMs } : {},
724
+ ...text ? { text } : {},
725
+ ...textGone ? { textGone } : {},
726
+ ...selector ? { selector } : {},
727
+ ...url ? { url } : {},
728
+ ...loadState ? { loadState } : {},
729
+ ...fn ? { fn } : {},
730
+ ...targetId ? { targetId } : {},
731
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
732
+ };
733
+ }
734
+ case "evaluate": {
735
+ const fn = toStringOrEmpty(body.fn);
736
+ if (!fn) throw new Error("evaluate requires fn");
737
+ const ref = toStringOrEmpty(body.ref) || void 0;
738
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
739
+ const timeoutMs = toNumber(body.timeoutMs);
740
+ return {
741
+ kind,
742
+ fn,
743
+ ...ref ? { ref } : {},
744
+ ...targetId ? { targetId } : {},
745
+ ...timeoutMs !== void 0 ? { timeoutMs } : {}
746
+ };
747
+ }
748
+ case "close": {
749
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
750
+ return {
751
+ kind,
752
+ ...targetId ? { targetId } : {}
753
+ };
754
+ }
755
+ case "batch": {
756
+ const actions = Array.isArray(body.actions) ? body.actions.map(normalizeBatchAction) : [];
757
+ if (!actions.length) throw new Error(source === "batch" ? "batch requires actions" : "actions are required");
758
+ if (countBatchActions(actions) > 100) throw new Error(`batch exceeds maximum of 100 actions`);
759
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
760
+ const stopOnError = toBoolean(body.stopOnError);
761
+ return {
762
+ kind,
763
+ actions,
764
+ ...targetId ? { targetId } : {},
765
+ ...stopOnError !== void 0 ? { stopOnError } : {}
766
+ };
767
+ }
768
+ }
769
+ throw new Error("Unsupported browser act kind");
770
+ }
771
+ //#endregion
772
+ //#region extensions/browser/src/browser/routes/agent.act.ts
773
+ function sleep(ms) {
774
+ return new Promise((resolve) => setTimeout(resolve, ms));
775
+ }
776
+ const EXISTING_SESSION_INTERACTION_NAVIGATION_RECHECK_DELAYS_MS = [
777
+ 0,
778
+ 250,
779
+ 500
780
+ ];
781
+ async function readExistingSessionLocationHref(params) {
782
+ const currentUrl = await evaluateChromeMcpScript({
783
+ profileName: params.profileName,
784
+ userDataDir: params.userDataDir,
785
+ targetId: params.targetId,
786
+ fn: "() => window.location.href"
787
+ });
788
+ if (typeof currentUrl !== "string") throw new Error("Location probe returned a non-string result");
789
+ const normalizedUrl = currentUrl.trim();
790
+ if (!normalizedUrl) throw new Error("Location probe returned an empty URL");
791
+ return normalizedUrl;
792
+ }
793
+ async function assertExistingSessionPostInteractionNavigationAllowed(params) {
794
+ const ssrfPolicyOpts = withBrowserNavigationPolicy(params.ssrfPolicy);
795
+ if (!ssrfPolicyOpts.ssrfPolicy) return;
796
+ const listTabs = params.listTabs;
797
+ const initialTabTargetIds = params.initialTabTargetIds;
798
+ const assertNewTabsAllowed = async () => {
799
+ const tabs = await listTabs();
800
+ for (const tab of tabs) {
801
+ if (initialTabTargetIds.has(tab.targetId)) continue;
802
+ await assertBrowserNavigationResultAllowed({
803
+ url: tab.url,
804
+ ...ssrfPolicyOpts
805
+ });
806
+ }
807
+ };
808
+ let lastObservedUrl;
809
+ let sawStableAllowedUrl = false;
810
+ for (const delayMs of EXISTING_SESSION_INTERACTION_NAVIGATION_RECHECK_DELAYS_MS) {
811
+ if (delayMs > 0) await sleep(delayMs);
812
+ let currentUrl;
813
+ try {
814
+ currentUrl = await readExistingSessionLocationHref(params);
815
+ } catch {
816
+ sawStableAllowedUrl = false;
817
+ continue;
818
+ }
819
+ await assertBrowserNavigationResultAllowed({
820
+ url: currentUrl,
821
+ ...ssrfPolicyOpts
822
+ });
823
+ if (currentUrl === lastObservedUrl) sawStableAllowedUrl = true;
824
+ else sawStableAllowedUrl = false;
825
+ lastObservedUrl = currentUrl;
826
+ }
827
+ if (sawStableAllowedUrl) {
828
+ await assertNewTabsAllowed();
829
+ return;
830
+ }
831
+ if (lastObservedUrl) {
832
+ const lastDelay = EXISTING_SESSION_INTERACTION_NAVIGATION_RECHECK_DELAYS_MS[EXISTING_SESSION_INTERACTION_NAVIGATION_RECHECK_DELAYS_MS.length - 1];
833
+ await sleep(lastDelay);
834
+ try {
835
+ const followUpUrl = await readExistingSessionLocationHref(params);
836
+ await assertBrowserNavigationResultAllowed({
837
+ url: followUpUrl,
838
+ ...ssrfPolicyOpts
839
+ });
840
+ if (followUpUrl === lastObservedUrl) {
841
+ await assertNewTabsAllowed();
842
+ return;
843
+ }
844
+ } catch {}
845
+ }
846
+ throw new Error("Unable to verify stable post-interaction navigation");
847
+ }
848
+ async function runExistingSessionActionWithNavigationGuard(params) {
849
+ let actionError;
850
+ let result;
851
+ try {
852
+ result = await params.execute();
853
+ } catch (error) {
854
+ actionError = error;
855
+ }
856
+ if (params.guard) await assertExistingSessionPostInteractionNavigationAllowed(params.guard);
857
+ if (actionError) throw actionError;
858
+ return result;
859
+ }
860
+ function buildExistingSessionWaitPredicate(params) {
861
+ const checks = [];
862
+ if (params.text) checks.push(`Boolean(document.body?.innerText?.includes(${JSON.stringify(params.text)}))`);
863
+ if (params.textGone) checks.push(`!document.body?.innerText?.includes(${JSON.stringify(params.textGone)})`);
864
+ if (params.selector) checks.push(`Boolean(document.querySelector(${JSON.stringify(params.selector)}))`);
865
+ if (params.loadState === "domcontentloaded") checks.push(`document.readyState === "interactive" || document.readyState === "complete"`);
866
+ else if (params.loadState === "load") checks.push(`document.readyState === "complete"`);
867
+ if (params.fn) checks.push(`Boolean(await (${params.fn})())`);
868
+ if (checks.length === 0) return null;
869
+ return checks.length === 1 ? checks[0] : checks.map((check) => `(${check})`).join(" && ");
870
+ }
871
+ async function waitForExistingSessionCondition(params) {
872
+ if (params.timeMs && params.timeMs > 0) await sleep(params.timeMs);
873
+ const predicate = buildExistingSessionWaitPredicate(params);
874
+ if (!predicate && !params.url) return;
875
+ const timeoutMs = Math.max(250, params.timeoutMs ?? 1e4);
876
+ const deadline = Date.now() + timeoutMs;
877
+ while (Date.now() < deadline) {
878
+ let ready = true;
879
+ if (predicate) ready = Boolean(await evaluateChromeMcpScript({
880
+ profileName: params.profileName,
881
+ userDataDir: params.userDataDir,
882
+ targetId: params.targetId,
883
+ fn: `async () => ${predicate}`
884
+ }));
885
+ if (ready && params.url) {
886
+ const currentUrl = await evaluateChromeMcpScript({
887
+ profileName: params.profileName,
888
+ userDataDir: params.userDataDir,
889
+ targetId: params.targetId,
890
+ fn: "() => window.location.href"
891
+ });
892
+ ready = typeof currentUrl === "string" && matchBrowserUrlPattern(params.url, currentUrl);
893
+ }
894
+ if (ready) return;
895
+ await sleep(250);
896
+ }
897
+ throw new Error("Timed out waiting for condition");
898
+ }
899
+ const SELECTOR_ALLOWED_KINDS = new Set([
900
+ "batch",
901
+ "click",
902
+ "drag",
903
+ "hover",
904
+ "scrollIntoView",
905
+ "select",
906
+ "type",
907
+ "wait"
908
+ ]);
909
+ function getExistingSessionUnsupportedMessage(action) {
910
+ switch (action.kind) {
911
+ case "click":
912
+ if (action.selector) return EXISTING_SESSION_LIMITS.act.clickSelector;
913
+ if (action.button && action.button !== "left" || Array.isArray(action.modifiers) && action.modifiers.length > 0) return EXISTING_SESSION_LIMITS.act.clickButtonOrModifiers;
914
+ return null;
915
+ case "clickCoords": return null;
916
+ case "type":
917
+ if (action.selector) return EXISTING_SESSION_LIMITS.act.typeSelector;
918
+ if (action.slowly) return EXISTING_SESSION_LIMITS.act.typeSlowly;
919
+ return action.timeoutMs ? EXISTING_SESSION_LIMITS.act.typeTimeout : null;
920
+ case "press": return action.delayMs ? EXISTING_SESSION_LIMITS.act.pressDelay : null;
921
+ case "hover":
922
+ if (action.selector) return EXISTING_SESSION_LIMITS.act.hoverSelector;
923
+ return action.timeoutMs ? EXISTING_SESSION_LIMITS.act.hoverTimeout : null;
924
+ case "scrollIntoView":
925
+ if (action.selector) return EXISTING_SESSION_LIMITS.act.scrollSelector;
926
+ return action.timeoutMs ? EXISTING_SESSION_LIMITS.act.scrollTimeout : null;
927
+ case "drag":
928
+ if (action.startSelector || action.endSelector) return EXISTING_SESSION_LIMITS.act.dragSelector;
929
+ return action.timeoutMs ? EXISTING_SESSION_LIMITS.act.dragTimeout : null;
930
+ case "select":
931
+ if (action.selector) return EXISTING_SESSION_LIMITS.act.selectSelector;
932
+ if (action.values.length !== 1) return EXISTING_SESSION_LIMITS.act.selectSingleValue;
933
+ return action.timeoutMs ? EXISTING_SESSION_LIMITS.act.selectTimeout : null;
934
+ case "fill": return action.timeoutMs ? EXISTING_SESSION_LIMITS.act.fillTimeout : null;
935
+ case "wait": return action.loadState === "networkidle" ? EXISTING_SESSION_LIMITS.act.waitNetworkIdle : null;
936
+ case "evaluate": return action.timeoutMs !== void 0 ? EXISTING_SESSION_LIMITS.act.evaluateTimeout : null;
937
+ case "batch": return EXISTING_SESSION_LIMITS.act.batch;
938
+ case "resize":
939
+ case "close": return null;
940
+ }
941
+ throw new Error("Unsupported browser act kind");
942
+ }
943
+ function registerBrowserAgentActRoutes(app, ctx) {
944
+ app.post("/act", asyncBrowserRoute(async (req, res) => {
945
+ const body = readBody(req);
946
+ const kindRaw = toStringOrEmpty(body.kind);
947
+ if (!isActKind(kindRaw)) return jsonActError(res, 400, ACT_ERROR_CODES.kindRequired, "kind is required");
948
+ const kind = kindRaw;
949
+ let action;
950
+ try {
951
+ action = normalizeActRequest(body);
952
+ } catch (err) {
953
+ return jsonActError(res, 400, ACT_ERROR_CODES.invalidRequest, formatErrorMessage(err));
954
+ }
955
+ const targetId = resolveTargetIdFromBody(body);
956
+ if (Object.hasOwn(body, "selector") && !SELECTOR_ALLOWED_KINDS.has(kind)) return jsonActError(res, 400, ACT_ERROR_CODES.selectorUnsupported, SELECTOR_UNSUPPORTED_MESSAGE);
957
+ const earlyFn = action.kind === "wait" || action.kind === "evaluate" ? action.fn : "";
958
+ if ((action.kind === "evaluate" || action.kind === "wait" && earlyFn) && !ctx.state().resolved.evaluateEnabled) return jsonActError(res, 403, ACT_ERROR_CODES.evaluateDisabled, browserEvaluateDisabledMessage(action.kind === "evaluate" ? "evaluate" : "wait"));
959
+ await withRouteTabContext({
960
+ req,
961
+ res,
962
+ ctx,
963
+ targetId,
964
+ run: async ({ profileCtx, cdpUrl, tab }) => {
965
+ const evaluateEnabled = ctx.state().resolved.evaluateEnabled;
966
+ const ssrfPolicy = ctx.state().resolved.ssrfPolicy;
967
+ if (action.targetId && action.targetId !== tab.targetId) return jsonActError(res, 403, ACT_ERROR_CODES.targetIdMismatch, "action targetId must match request targetId");
968
+ const isExistingSession = getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp;
969
+ const profileName = profileCtx.profile.name;
970
+ if (isExistingSession) {
971
+ const initialTabTargetIds = withBrowserNavigationPolicy(ssrfPolicy).ssrfPolicy ? new Set((await profileCtx.listTabs()).map((currentTab) => currentTab.targetId)) : /* @__PURE__ */ new Set();
972
+ const existingSessionNavigationGuard = {
973
+ profileName,
974
+ userDataDir: profileCtx.profile.userDataDir,
975
+ targetId: tab.targetId,
976
+ ssrfPolicy,
977
+ listTabs: () => profileCtx.listTabs(),
978
+ initialTabTargetIds
979
+ };
980
+ const unsupportedMessage = getExistingSessionUnsupportedMessage(action);
981
+ if (unsupportedMessage) return jsonActError(res, 501, ACT_ERROR_CODES.unsupportedForExistingSession, unsupportedMessage);
982
+ switch (action.kind) {
983
+ case "click":
984
+ await runExistingSessionActionWithNavigationGuard({
985
+ execute: () => clickChromeMcpElement({
986
+ profileName,
987
+ userDataDir: profileCtx.profile.userDataDir,
988
+ targetId: tab.targetId,
989
+ uid: action.ref,
990
+ doubleClick: action.doubleClick ?? false,
991
+ timeoutMs: action.timeoutMs,
992
+ signal: req.signal
993
+ }),
994
+ guard: existingSessionNavigationGuard
995
+ });
996
+ return res.json({
997
+ ok: true,
998
+ targetId: tab.targetId,
999
+ url: tab.url
1000
+ });
1001
+ case "clickCoords":
1002
+ await runExistingSessionActionWithNavigationGuard({
1003
+ execute: () => clickChromeMcpCoords({
1004
+ profileName,
1005
+ userDataDir: profileCtx.profile.userDataDir,
1006
+ targetId: tab.targetId,
1007
+ x: action.x,
1008
+ y: action.y,
1009
+ doubleClick: action.doubleClick ?? false,
1010
+ button: action.button,
1011
+ delayMs: action.delayMs
1012
+ }),
1013
+ guard: existingSessionNavigationGuard
1014
+ });
1015
+ return res.json({
1016
+ ok: true,
1017
+ targetId: tab.targetId,
1018
+ url: tab.url
1019
+ });
1020
+ case "type":
1021
+ await runExistingSessionActionWithNavigationGuard({
1022
+ execute: async () => {
1023
+ await fillChromeMcpElement({
1024
+ profileName,
1025
+ userDataDir: profileCtx.profile.userDataDir,
1026
+ targetId: tab.targetId,
1027
+ uid: action.ref,
1028
+ value: action.text
1029
+ });
1030
+ if (action.submit) await pressChromeMcpKey({
1031
+ profileName,
1032
+ userDataDir: profileCtx.profile.userDataDir,
1033
+ targetId: tab.targetId,
1034
+ key: "Enter"
1035
+ });
1036
+ },
1037
+ guard: existingSessionNavigationGuard
1038
+ });
1039
+ return res.json({
1040
+ ok: true,
1041
+ targetId: tab.targetId
1042
+ });
1043
+ case "press":
1044
+ await runExistingSessionActionWithNavigationGuard({
1045
+ execute: () => pressChromeMcpKey({
1046
+ profileName,
1047
+ userDataDir: profileCtx.profile.userDataDir,
1048
+ targetId: tab.targetId,
1049
+ key: action.key
1050
+ }),
1051
+ guard: existingSessionNavigationGuard
1052
+ });
1053
+ return res.json({
1054
+ ok: true,
1055
+ targetId: tab.targetId
1056
+ });
1057
+ case "hover":
1058
+ await runExistingSessionActionWithNavigationGuard({
1059
+ execute: () => hoverChromeMcpElement({
1060
+ profileName,
1061
+ userDataDir: profileCtx.profile.userDataDir,
1062
+ targetId: tab.targetId,
1063
+ uid: action.ref
1064
+ }),
1065
+ guard: existingSessionNavigationGuard
1066
+ });
1067
+ return res.json({
1068
+ ok: true,
1069
+ targetId: tab.targetId
1070
+ });
1071
+ case "scrollIntoView":
1072
+ await runExistingSessionActionWithNavigationGuard({
1073
+ execute: () => evaluateChromeMcpScript({
1074
+ profileName,
1075
+ userDataDir: profileCtx.profile.userDataDir,
1076
+ targetId: tab.targetId,
1077
+ fn: `(el) => { el.scrollIntoView({ block: "center", inline: "center" }); return true; }`,
1078
+ args: [action.ref]
1079
+ }),
1080
+ guard: existingSessionNavigationGuard
1081
+ });
1082
+ return res.json({
1083
+ ok: true,
1084
+ targetId: tab.targetId
1085
+ });
1086
+ case "drag":
1087
+ await runExistingSessionActionWithNavigationGuard({
1088
+ execute: () => dragChromeMcpElement({
1089
+ profileName,
1090
+ userDataDir: profileCtx.profile.userDataDir,
1091
+ targetId: tab.targetId,
1092
+ fromUid: action.startRef,
1093
+ toUid: action.endRef
1094
+ }),
1095
+ guard: existingSessionNavigationGuard
1096
+ });
1097
+ return res.json({
1098
+ ok: true,
1099
+ targetId: tab.targetId
1100
+ });
1101
+ case "select":
1102
+ await runExistingSessionActionWithNavigationGuard({
1103
+ execute: () => fillChromeMcpElement({
1104
+ profileName,
1105
+ userDataDir: profileCtx.profile.userDataDir,
1106
+ targetId: tab.targetId,
1107
+ uid: action.ref,
1108
+ value: action.values[0] ?? ""
1109
+ }),
1110
+ guard: existingSessionNavigationGuard
1111
+ });
1112
+ return res.json({
1113
+ ok: true,
1114
+ targetId: tab.targetId
1115
+ });
1116
+ case "fill":
1117
+ await runExistingSessionActionWithNavigationGuard({
1118
+ execute: () => fillChromeMcpForm({
1119
+ profileName,
1120
+ userDataDir: profileCtx.profile.userDataDir,
1121
+ targetId: tab.targetId,
1122
+ elements: action.fields.map((field) => ({
1123
+ uid: field.ref,
1124
+ value: String(field.value ?? "")
1125
+ }))
1126
+ }),
1127
+ guard: existingSessionNavigationGuard
1128
+ });
1129
+ return res.json({
1130
+ ok: true,
1131
+ targetId: tab.targetId
1132
+ });
1133
+ case "resize":
1134
+ await resizeChromeMcpPage({
1135
+ profileName,
1136
+ userDataDir: profileCtx.profile.userDataDir,
1137
+ targetId: tab.targetId,
1138
+ width: action.width,
1139
+ height: action.height
1140
+ });
1141
+ return res.json({
1142
+ ok: true,
1143
+ targetId: tab.targetId,
1144
+ url: tab.url
1145
+ });
1146
+ case "wait":
1147
+ await waitForExistingSessionCondition({
1148
+ profileName,
1149
+ userDataDir: profileCtx.profile.userDataDir,
1150
+ targetId: tab.targetId,
1151
+ timeMs: action.timeMs,
1152
+ text: action.text,
1153
+ textGone: action.textGone,
1154
+ selector: action.selector,
1155
+ url: action.url,
1156
+ loadState: action.loadState,
1157
+ fn: action.fn,
1158
+ timeoutMs: action.timeoutMs
1159
+ });
1160
+ return res.json({
1161
+ ok: true,
1162
+ targetId: tab.targetId
1163
+ });
1164
+ case "evaluate": {
1165
+ const result = await runExistingSessionActionWithNavigationGuard({
1166
+ execute: () => evaluateChromeMcpScript({
1167
+ profileName,
1168
+ userDataDir: profileCtx.profile.userDataDir,
1169
+ targetId: tab.targetId,
1170
+ fn: action.fn,
1171
+ args: action.ref ? [action.ref] : void 0
1172
+ }),
1173
+ guard: existingSessionNavigationGuard
1174
+ });
1175
+ return res.json({
1176
+ ok: true,
1177
+ targetId: tab.targetId,
1178
+ url: tab.url,
1179
+ result
1180
+ });
1181
+ }
1182
+ case "close":
1183
+ await closeChromeMcpTab(profileName, tab.targetId, profileCtx.profile.userDataDir);
1184
+ return res.json({
1185
+ ok: true,
1186
+ targetId: tab.targetId
1187
+ });
1188
+ case "batch": return jsonActError(res, 501, ACT_ERROR_CODES.unsupportedForExistingSession, EXISTING_SESSION_LIMITS.act.batch);
1189
+ }
1190
+ }
1191
+ const pw = await requirePwAi(res, `act:${kind}`);
1192
+ if (!pw) return;
1193
+ if (action.kind === "batch") {
1194
+ const targetIdError = validateBatchTargetIds(action.actions, tab.targetId);
1195
+ if (targetIdError) return jsonActError(res, 403, ACT_ERROR_CODES.targetIdMismatch, targetIdError);
1196
+ }
1197
+ const result = await pw.executeActViaPlaywright({
1198
+ cdpUrl,
1199
+ action,
1200
+ targetId: tab.targetId,
1201
+ evaluateEnabled,
1202
+ ssrfPolicy,
1203
+ signal: req.signal
1204
+ });
1205
+ switch (action.kind) {
1206
+ case "batch": return res.json({
1207
+ ok: true,
1208
+ targetId: tab.targetId,
1209
+ results: result.results ?? []
1210
+ });
1211
+ case "evaluate": return res.json({
1212
+ ok: true,
1213
+ targetId: tab.targetId,
1214
+ url: tab.url,
1215
+ result: result.result
1216
+ });
1217
+ case "click":
1218
+ case "clickCoords":
1219
+ case "resize": return res.json({
1220
+ ok: true,
1221
+ targetId: tab.targetId,
1222
+ url: tab.url
1223
+ });
1224
+ default: return res.json({
1225
+ ok: true,
1226
+ targetId: tab.targetId
1227
+ });
1228
+ }
1229
+ }
1230
+ });
1231
+ }));
1232
+ registerBrowserAgentActHookRoutes(app, ctx);
1233
+ registerBrowserAgentActDownloadRoutes(app, ctx);
1234
+ app.post("/response/body", asyncBrowserRoute(async (req, res) => {
1235
+ const body = readBody(req);
1236
+ const targetId = resolveTargetIdFromBody(body);
1237
+ const url = toStringOrEmpty(body.url);
1238
+ const timeoutMs = toNumber(body.timeoutMs);
1239
+ const maxChars = toNumber(body.maxChars);
1240
+ if (!url) return jsonError(res, 400, "url is required");
1241
+ await withRouteTabContext({
1242
+ req,
1243
+ res,
1244
+ ctx,
1245
+ targetId,
1246
+ run: async ({ profileCtx, cdpUrl, tab }) => {
1247
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) return jsonError(res, 501, EXISTING_SESSION_LIMITS.responseBody);
1248
+ const pw = await requirePwAi(res, "response body");
1249
+ if (!pw) return;
1250
+ const result = await pw.responseBodyViaPlaywright({
1251
+ cdpUrl,
1252
+ targetId: tab.targetId,
1253
+ url,
1254
+ timeoutMs: timeoutMs ?? void 0,
1255
+ maxChars: maxChars ?? void 0
1256
+ });
1257
+ res.json({
1258
+ ok: true,
1259
+ targetId: tab.targetId,
1260
+ response: result
1261
+ });
1262
+ }
1263
+ });
1264
+ }));
1265
+ app.post("/highlight", asyncBrowserRoute(async (req, res) => {
1266
+ const body = readBody(req);
1267
+ const targetId = resolveTargetIdFromBody(body);
1268
+ const ref = toStringOrEmpty(body.ref);
1269
+ if (!ref) return jsonError(res, 400, "ref is required");
1270
+ await withRouteTabContext({
1271
+ req,
1272
+ res,
1273
+ ctx,
1274
+ targetId,
1275
+ run: async ({ profileCtx, cdpUrl, tab }) => {
1276
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) {
1277
+ await evaluateChromeMcpScript({
1278
+ profileName: profileCtx.profile.name,
1279
+ userDataDir: profileCtx.profile.userDataDir,
1280
+ targetId: tab.targetId,
1281
+ args: [ref],
1282
+ fn: `(el) => {
1283
+ if (!(el instanceof Element)) {
1284
+ return false;
1285
+ }
1286
+ el.scrollIntoView({ block: "center", inline: "center" });
1287
+ const previousOutline = el.style.outline;
1288
+ const previousOffset = el.style.outlineOffset;
1289
+ el.style.outline = "3px solid #FF4500";
1290
+ el.style.outlineOffset = "2px";
1291
+ setTimeout(() => {
1292
+ el.style.outline = previousOutline;
1293
+ el.style.outlineOffset = previousOffset;
1294
+ }, 2000);
1295
+ return true;
1296
+ }`
1297
+ });
1298
+ return res.json({
1299
+ ok: true,
1300
+ targetId: tab.targetId
1301
+ });
1302
+ }
1303
+ const pw = await requirePwAi(res, "highlight");
1304
+ if (!pw) return;
1305
+ await pw.highlightViaPlaywright({
1306
+ cdpUrl,
1307
+ targetId: tab.targetId,
1308
+ ref
1309
+ });
1310
+ res.json({
1311
+ ok: true,
1312
+ targetId: tab.targetId
1313
+ });
1314
+ }
1315
+ });
1316
+ }));
1317
+ }
1318
+ //#endregion
1319
+ //#region extensions/browser/src/browser/routes/agent.debug.ts
1320
+ function registerBrowserAgentDebugRoutes(app, ctx) {
1321
+ app.get("/console", asyncBrowserRoute(async (req, res) => {
1322
+ const targetId = resolveTargetIdFromQuery(req.query);
1323
+ const level = typeof req.query.level === "string" ? req.query.level : "";
1324
+ await withPlaywrightRouteContext({
1325
+ req,
1326
+ res,
1327
+ ctx,
1328
+ targetId,
1329
+ feature: "console messages",
1330
+ run: async ({ cdpUrl, tab, pw }) => {
1331
+ const messages = await pw.getConsoleMessagesViaPlaywright({
1332
+ cdpUrl,
1333
+ targetId: tab.targetId,
1334
+ level: normalizeOptionalString$4(level)
1335
+ });
1336
+ res.json({
1337
+ ok: true,
1338
+ messages,
1339
+ targetId: tab.targetId
1340
+ });
1341
+ }
1342
+ });
1343
+ }));
1344
+ app.get("/errors", asyncBrowserRoute(async (req, res) => {
1345
+ const targetId = resolveTargetIdFromQuery(req.query);
1346
+ const clear = toBoolean(req.query.clear) ?? false;
1347
+ await withPlaywrightRouteContext({
1348
+ req,
1349
+ res,
1350
+ ctx,
1351
+ targetId,
1352
+ feature: "page errors",
1353
+ run: async ({ cdpUrl, tab, pw }) => {
1354
+ const result = await pw.getPageErrorsViaPlaywright({
1355
+ cdpUrl,
1356
+ targetId: tab.targetId,
1357
+ clear
1358
+ });
1359
+ res.json({
1360
+ ok: true,
1361
+ targetId: tab.targetId,
1362
+ ...result
1363
+ });
1364
+ }
1365
+ });
1366
+ }));
1367
+ app.get("/requests", asyncBrowserRoute(async (req, res) => {
1368
+ const targetId = resolveTargetIdFromQuery(req.query);
1369
+ const filter = typeof req.query.filter === "string" ? req.query.filter : "";
1370
+ const clear = toBoolean(req.query.clear) ?? false;
1371
+ await withPlaywrightRouteContext({
1372
+ req,
1373
+ res,
1374
+ ctx,
1375
+ targetId,
1376
+ feature: "network requests",
1377
+ run: async ({ cdpUrl, tab, pw }) => {
1378
+ const result = await pw.getNetworkRequestsViaPlaywright({
1379
+ cdpUrl,
1380
+ targetId: tab.targetId,
1381
+ filter: normalizeOptionalString$4(filter),
1382
+ clear
1383
+ });
1384
+ res.json({
1385
+ ok: true,
1386
+ targetId: tab.targetId,
1387
+ ...result
1388
+ });
1389
+ }
1390
+ });
1391
+ }));
1392
+ app.post("/trace/start", asyncBrowserRoute(async (req, res) => {
1393
+ const body = readBody(req);
1394
+ const targetId = resolveTargetIdFromBody(body);
1395
+ const screenshots = toBoolean(body.screenshots) ?? void 0;
1396
+ const snapshots = toBoolean(body.snapshots) ?? void 0;
1397
+ const sources = toBoolean(body.sources) ?? void 0;
1398
+ await withPlaywrightRouteContext({
1399
+ req,
1400
+ res,
1401
+ ctx,
1402
+ targetId,
1403
+ feature: "trace start",
1404
+ run: async ({ cdpUrl, tab, pw }) => {
1405
+ await pw.traceStartViaPlaywright({
1406
+ cdpUrl,
1407
+ targetId: tab.targetId,
1408
+ screenshots,
1409
+ snapshots,
1410
+ sources
1411
+ });
1412
+ res.json({
1413
+ ok: true,
1414
+ targetId: tab.targetId
1415
+ });
1416
+ }
1417
+ });
1418
+ }));
1419
+ app.post("/trace/stop", asyncBrowserRoute(async (req, res) => {
1420
+ const body = readBody(req);
1421
+ const targetId = resolveTargetIdFromBody(body);
1422
+ const out = toStringOrEmpty(body.path) || "";
1423
+ await withPlaywrightRouteContext({
1424
+ req,
1425
+ res,
1426
+ ctx,
1427
+ targetId,
1428
+ feature: "trace stop",
1429
+ run: async ({ cdpUrl, tab, pw }) => {
1430
+ const tracePath = await resolveWritableOutputPathOrRespond({
1431
+ res,
1432
+ rootDir: DEFAULT_TRACE_DIR,
1433
+ requestedPath: out,
1434
+ scopeLabel: "trace directory",
1435
+ defaultFileName: `browser-trace-${crypto.randomUUID()}.zip`,
1436
+ ensureRootDir: true
1437
+ });
1438
+ if (!tracePath) return;
1439
+ await pw.traceStopViaPlaywright({
1440
+ cdpUrl,
1441
+ targetId: tab.targetId,
1442
+ path: tracePath
1443
+ });
1444
+ res.json({
1445
+ ok: true,
1446
+ targetId: tab.targetId,
1447
+ path: path.resolve(tracePath)
1448
+ });
1449
+ }
1450
+ });
1451
+ }));
1452
+ }
1453
+ //#endregion
1454
+ //#region extensions/browser/src/browser/chrome-mcp.snapshot.ts
1455
+ function normalizeRole(node) {
1456
+ return normalizeLowercaseStringOrEmpty(node.role) || "generic";
1457
+ }
1458
+ function escapeQuoted(value) {
1459
+ return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
1460
+ }
1461
+ function shouldIncludeNode(params) {
1462
+ if (params.options?.interactive && !INTERACTIVE_ROLES.has(params.role)) return false;
1463
+ if (params.options?.compact && STRUCTURAL_ROLES.has(params.role) && !params.name) return false;
1464
+ return true;
1465
+ }
1466
+ function shouldCreateRef(role, name) {
1467
+ return INTERACTIVE_ROLES.has(role) || CONTENT_ROLES.has(role) && Boolean(name);
1468
+ }
1469
+ function createDuplicateTracker() {
1470
+ return {
1471
+ counts: /* @__PURE__ */ new Map(),
1472
+ keysByRef: /* @__PURE__ */ new Map(),
1473
+ duplicates: /* @__PURE__ */ new Set()
1474
+ };
1475
+ }
1476
+ function registerRef(tracker, ref, role, name) {
1477
+ const key = `${role}:${name ?? ""}`;
1478
+ const count = tracker.counts.get(key) ?? 0;
1479
+ tracker.counts.set(key, count + 1);
1480
+ tracker.keysByRef.set(ref, key);
1481
+ if (count > 0) {
1482
+ tracker.duplicates.add(key);
1483
+ return count;
1484
+ }
1485
+ }
1486
+ function flattenChromeMcpSnapshotToAriaNodes(root, limit = 500) {
1487
+ const boundedLimit = Math.max(1, Math.min(2e3, Math.floor(limit)));
1488
+ const out = [];
1489
+ const visit = (node, depth) => {
1490
+ if (out.length >= boundedLimit) return;
1491
+ const ref = normalizeString(node.id);
1492
+ if (ref) out.push({
1493
+ ref,
1494
+ role: normalizeRole(node),
1495
+ name: normalizeString(node.name) ?? "",
1496
+ value: normalizeString(node.value),
1497
+ description: normalizeString(node.description),
1498
+ depth
1499
+ });
1500
+ for (const child of node.children ?? []) {
1501
+ visit(child, depth + 1);
1502
+ if (out.length >= boundedLimit) return;
1503
+ }
1504
+ };
1505
+ visit(root, 0);
1506
+ return out;
1507
+ }
1508
+ function buildAiSnapshotFromChromeMcpSnapshot(params) {
1509
+ const refs = {};
1510
+ const tracker = createDuplicateTracker();
1511
+ const lines = [];
1512
+ const visit = (node, depth) => {
1513
+ const role = normalizeRole(node);
1514
+ const name = normalizeString(node.name);
1515
+ const value = normalizeString(node.value);
1516
+ const description = normalizeString(node.description);
1517
+ const maxDepth = params.options?.maxDepth;
1518
+ if (maxDepth !== void 0 && depth > maxDepth) return;
1519
+ if (shouldIncludeNode({
1520
+ role,
1521
+ name,
1522
+ options: params.options
1523
+ })) {
1524
+ let line = `${" ".repeat(depth)}- ${role}`;
1525
+ if (name) line += ` "${escapeQuoted(name)}"`;
1526
+ const ref = normalizeString(node.id);
1527
+ if (ref && shouldCreateRef(role, name)) {
1528
+ const nth = registerRef(tracker, ref, role, name);
1529
+ refs[ref] = nth === void 0 ? {
1530
+ role,
1531
+ name
1532
+ } : {
1533
+ role,
1534
+ name,
1535
+ nth
1536
+ };
1537
+ line += ` [ref=${ref}]`;
1538
+ }
1539
+ if (value) line += ` value="${escapeQuoted(value)}"`;
1540
+ if (description) line += ` description="${escapeQuoted(description)}"`;
1541
+ lines.push(line);
1542
+ }
1543
+ for (const child of node.children ?? []) visit(child, depth + 1);
1544
+ };
1545
+ visit(params.root, 0);
1546
+ for (const [ref, data] of Object.entries(refs)) {
1547
+ const key = tracker.keysByRef.get(ref);
1548
+ if (key && !tracker.duplicates.has(key)) delete data.nth;
1549
+ }
1550
+ let snapshot = lines.join("\n");
1551
+ let truncated = false;
1552
+ const maxChars = typeof params.maxChars === "number" && Number.isFinite(params.maxChars) && params.maxChars > 0 ? Math.floor(params.maxChars) : void 0;
1553
+ if (maxChars && snapshot.length > maxChars) {
1554
+ snapshot = `${snapshot.slice(0, maxChars)}\n\n[...TRUNCATED - page too large]`;
1555
+ truncated = true;
1556
+ }
1557
+ const stats = getRoleSnapshotStats(snapshot, refs);
1558
+ return truncated ? {
1559
+ snapshot,
1560
+ truncated,
1561
+ refs,
1562
+ stats
1563
+ } : {
1564
+ snapshot,
1565
+ refs,
1566
+ stats
1567
+ };
1568
+ }
1569
+ //#endregion
1570
+ //#region extensions/browser/src/browser/screenshot.ts
1571
+ const DEFAULT_BROWSER_SCREENSHOT_MAX_SIDE = 2e3;
1572
+ const DEFAULT_BROWSER_SCREENSHOT_MAX_BYTES = 5 * 1024 * 1024;
1573
+ async function normalizeBrowserScreenshot(buffer, opts) {
1574
+ const maxSide = Math.max(1, Math.round(opts?.maxSide ?? 2e3));
1575
+ const maxBytes = Math.max(1, Math.round(opts?.maxBytes ?? 5242880));
1576
+ const meta = await getImageMetadata(buffer);
1577
+ const width = meta?.width ?? 0;
1578
+ const height = meta?.height ?? 0;
1579
+ const maxDim = Math.max(width, height);
1580
+ if (buffer.byteLength <= maxBytes && (maxDim === 0 || width <= maxSide && height <= maxSide)) return { buffer };
1581
+ const sideGrid = buildImageResizeSideGrid(maxSide, maxDim > 0 ? Math.min(maxSide, maxDim) : maxSide);
1582
+ let smallest = null;
1583
+ for (const side of sideGrid) for (const quality of IMAGE_REDUCE_QUALITY_STEPS) {
1584
+ const out = await resizeToJpeg({
1585
+ buffer,
1586
+ maxSide: side,
1587
+ quality,
1588
+ withoutEnlargement: true
1589
+ });
1590
+ if (!smallest || out.byteLength < smallest.size) smallest = {
1591
+ buffer: out,
1592
+ size: out.byteLength
1593
+ };
1594
+ if (out.byteLength <= maxBytes) return {
1595
+ buffer: out,
1596
+ contentType: "image/jpeg"
1597
+ };
1598
+ }
1599
+ const best = smallest?.buffer ?? buffer;
1600
+ throw new Error(`Browser screenshot could not be reduced below ${(maxBytes / (1024 * 1024)).toFixed(0)}MB (got ${(best.byteLength / (1024 * 1024)).toFixed(2)}MB)`);
1601
+ }
1602
+ //#endregion
1603
+ //#region extensions/browser/src/browser/routes/agent.snapshot-target.ts
1604
+ /** Resolve the correct targetId after a navigation that may trigger a renderer swap. */
1605
+ async function resolveTargetIdAfterNavigate(opts) {
1606
+ let currentTargetId = opts.oldTargetId;
1607
+ try {
1608
+ const pickReplacement = (tabs, options) => {
1609
+ if (tabs.some((tab) => tab.targetId === opts.oldTargetId)) return {
1610
+ targetId: opts.oldTargetId,
1611
+ shouldRetry: false
1612
+ };
1613
+ const byUrl = tabs.filter((tab) => tab.url === opts.navigatedUrl);
1614
+ if (byUrl.length === 1) return {
1615
+ targetId: byUrl[0]?.targetId ?? opts.oldTargetId,
1616
+ shouldRetry: false
1617
+ };
1618
+ const uniqueReplacement = byUrl.filter((tab) => tab.targetId !== opts.oldTargetId);
1619
+ if (uniqueReplacement.length === 1) return {
1620
+ targetId: uniqueReplacement[0]?.targetId ?? opts.oldTargetId,
1621
+ shouldRetry: false
1622
+ };
1623
+ if (options?.allowSingleTabFallback && tabs.length === 1) return {
1624
+ targetId: tabs[0]?.targetId ?? opts.oldTargetId,
1625
+ shouldRetry: false
1626
+ };
1627
+ return {
1628
+ targetId: opts.oldTargetId,
1629
+ shouldRetry: true
1630
+ };
1631
+ };
1632
+ const first = pickReplacement(await opts.listTabs());
1633
+ currentTargetId = first.targetId;
1634
+ if (first.shouldRetry) {
1635
+ await new Promise((r) => setTimeout(r, opts.retryDelayMs ?? 800));
1636
+ currentTargetId = pickReplacement(await opts.listTabs(), { allowSingleTabFallback: true }).targetId;
1637
+ }
1638
+ } catch {}
1639
+ return currentTargetId;
1640
+ }
1641
+ //#endregion
1642
+ //#region extensions/browser/src/browser/routes/agent.snapshot.plan.ts
1643
+ function readStringValue$1(value) {
1644
+ return typeof value === "string" ? value : void 0;
1645
+ }
1646
+ function normalizeOptionalString$1(value) {
1647
+ return readStringValue$1(value)?.trim() || void 0;
1648
+ }
1649
+ function resolveSnapshotPlan(params) {
1650
+ const mode = params.query.mode === "efficient" ? "efficient" : void 0;
1651
+ const labels = toBoolean(params.query.labels) ?? void 0;
1652
+ const urls = toBoolean(params.query.urls) ?? void 0;
1653
+ const explicitFormat = params.query.format === "aria" ? "aria" : params.query.format === "ai" ? "ai" : void 0;
1654
+ const format = resolveDefaultSnapshotFormat({
1655
+ profile: params.profile,
1656
+ hasPlaywright: params.hasPlaywright,
1657
+ explicitFormat,
1658
+ mode
1659
+ });
1660
+ const limitRaw = readStringValue$1(params.query.limit);
1661
+ const hasMaxChars = Object.hasOwn(params.query, "maxChars");
1662
+ const maxCharsRaw = readStringValue$1(params.query.maxChars);
1663
+ const limit = Number.isFinite(Number(limitRaw)) ? Number(limitRaw) : void 0;
1664
+ const maxChars = Number.isFinite(Number(maxCharsRaw)) && Number(maxCharsRaw) > 0 ? Math.floor(Number(maxCharsRaw)) : void 0;
1665
+ const resolvedMaxChars = format === "ai" ? hasMaxChars ? maxChars : mode === "efficient" ? DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS : DEFAULT_AI_SNAPSHOT_MAX_CHARS : void 0;
1666
+ const interactiveRaw = toBoolean(params.query.interactive);
1667
+ const compactRaw = toBoolean(params.query.compact);
1668
+ const depthRaw = toNumber(params.query.depth);
1669
+ const refsModeRaw = toStringOrEmpty(params.query.refs).trim();
1670
+ const refsMode = refsModeRaw === "aria" ? "aria" : refsModeRaw === "role" ? "role" : void 0;
1671
+ const interactive = interactiveRaw ?? (mode === "efficient" ? true : void 0);
1672
+ const compact = compactRaw ?? (mode === "efficient" ? true : void 0);
1673
+ const depth = depthRaw ?? (mode === "efficient" ? 6 : void 0);
1674
+ const selectorValue = normalizeOptionalString$1(toStringOrEmpty(params.query.selector));
1675
+ const frameSelectorValue = normalizeOptionalString$1(toStringOrEmpty(params.query.frame));
1676
+ return {
1677
+ format,
1678
+ mode,
1679
+ labels,
1680
+ urls,
1681
+ limit,
1682
+ resolvedMaxChars,
1683
+ interactive,
1684
+ compact,
1685
+ depth,
1686
+ refsMode,
1687
+ selectorValue,
1688
+ frameSelectorValue,
1689
+ wantsRoleSnapshot: labels === true || urls === true || mode === "efficient" || interactive === true || compact === true || depth !== void 0 || Boolean(selectorValue) || Boolean(frameSelectorValue)
1690
+ };
1691
+ }
1692
+ //#endregion
1693
+ //#region extensions/browser/src/browser/routes/agent.snapshot.ts
1694
+ const CHROME_MCP_OVERLAY_ATTR = "data-genesis-mcp-overlay";
1695
+ function browserNavigationPolicyForProfile$1(ctx, profileCtx) {
1696
+ return withBrowserNavigationPolicy(ctx.state().resolved.ssrfPolicy, { browserProxyMode: resolveBrowserNavigationProxyMode({
1697
+ resolved: ctx.state().resolved,
1698
+ profile: profileCtx.profile
1699
+ }) });
1700
+ }
1701
+ async function collectChromeMcpSnapshotUrls(params) {
1702
+ const result = await evaluateChromeMcpScript({
1703
+ profileName: params.profileName,
1704
+ userDataDir: params.userDataDir,
1705
+ targetId: params.targetId,
1706
+ fn: `() => {
1707
+ const seen = new Set();
1708
+ const out = [];
1709
+ for (const anchor of Array.from(document.querySelectorAll("a[href]"))) {
1710
+ const href = anchor.href || "";
1711
+ if (!href || seen.has(href)) continue;
1712
+ const text = (anchor.innerText || anchor.textContent || anchor.getAttribute("aria-label") || "")
1713
+ .replace(/\\s+/g, " ")
1714
+ .trim()
1715
+ .slice(0, 120) || href;
1716
+ seen.add(href);
1717
+ out.push({ text, url: href });
1718
+ if (out.length >= 100) break;
1719
+ }
1720
+ return out;
1721
+ }`
1722
+ }).catch(() => []);
1723
+ return Array.isArray(result) ? result.filter((entry) => entry && typeof entry === "object" && typeof entry.text === "string" && typeof entry.url === "string") : [];
1724
+ }
1725
+ function appendSnapshotUrls(snapshot, urls) {
1726
+ if (urls.length === 0) return snapshot;
1727
+ return `${snapshot}\n\nLinks:\n${urls.map((entry, index) => `${index + 1}. ${entry.text} -> ${entry.url}`).join("\n")}`;
1728
+ }
1729
+ async function clearChromeMcpOverlay(params) {
1730
+ await evaluateChromeMcpScript({
1731
+ profileName: params.profileName,
1732
+ userDataDir: params.userDataDir,
1733
+ targetId: params.targetId,
1734
+ fn: `() => {
1735
+ document.querySelectorAll("[${CHROME_MCP_OVERLAY_ATTR}]").forEach((node) => node.remove());
1736
+ return true;
1737
+ }`
1738
+ }).catch(() => {});
1739
+ }
1740
+ async function renderChromeMcpLabels(params) {
1741
+ const refList = JSON.stringify(params.refs);
1742
+ const result = await evaluateChromeMcpScript({
1743
+ profileName: params.profileName,
1744
+ userDataDir: params.userDataDir,
1745
+ targetId: params.targetId,
1746
+ args: params.refs,
1747
+ fn: `(...elements) => {
1748
+ const refs = ${refList};
1749
+ document.querySelectorAll("[${CHROME_MCP_OVERLAY_ATTR}]").forEach((node) => node.remove());
1750
+ const root = document.createElement("div");
1751
+ root.setAttribute("${CHROME_MCP_OVERLAY_ATTR}", "labels");
1752
+ root.style.position = "fixed";
1753
+ root.style.inset = "0";
1754
+ root.style.pointerEvents = "none";
1755
+ root.style.zIndex = "2147483647";
1756
+ let labels = 0;
1757
+ let skipped = 0;
1758
+ elements.forEach((el, index) => {
1759
+ if (!(el instanceof Element)) {
1760
+ skipped += 1;
1761
+ return;
1762
+ }
1763
+ const rect = el.getBoundingClientRect();
1764
+ if (rect.width <= 0 && rect.height <= 0) {
1765
+ skipped += 1;
1766
+ return;
1767
+ }
1768
+ labels += 1;
1769
+ const badge = document.createElement("div");
1770
+ badge.setAttribute("${CHROME_MCP_OVERLAY_ATTR}", "label");
1771
+ badge.textContent = refs[index] || String(labels);
1772
+ badge.style.position = "fixed";
1773
+ badge.style.left = \`\${Math.max(0, rect.left)}px\`;
1774
+ badge.style.top = \`\${Math.max(0, rect.top)}px\`;
1775
+ badge.style.transform = "translateY(-100%)";
1776
+ badge.style.padding = "2px 6px";
1777
+ badge.style.borderRadius = "999px";
1778
+ badge.style.background = "#FF4500";
1779
+ badge.style.color = "#fff";
1780
+ badge.style.font = "600 12px ui-monospace, SFMono-Regular, Menlo, monospace";
1781
+ badge.style.boxShadow = "0 2px 6px rgba(0,0,0,0.35)";
1782
+ badge.style.whiteSpace = "nowrap";
1783
+ root.appendChild(badge);
1784
+ });
1785
+ document.documentElement.appendChild(root);
1786
+ return { labels, skipped };
1787
+ }`
1788
+ });
1789
+ return {
1790
+ labels: result && typeof result === "object" && typeof result.labels === "number" ? result.labels : 0,
1791
+ skipped: result && typeof result === "object" && typeof result.skipped === "number" ? result.skipped : 0
1792
+ };
1793
+ }
1794
+ async function saveNormalizedScreenshotResponse(params) {
1795
+ const normalized = await normalizeBrowserScreenshot(params.buffer, {
1796
+ maxSide: DEFAULT_BROWSER_SCREENSHOT_MAX_SIDE,
1797
+ maxBytes: DEFAULT_BROWSER_SCREENSHOT_MAX_BYTES
1798
+ });
1799
+ await saveBrowserMediaResponse({
1800
+ res: params.res,
1801
+ buffer: normalized.buffer,
1802
+ contentType: normalized.contentType ?? `image/${params.type}`,
1803
+ maxBytes: DEFAULT_BROWSER_SCREENSHOT_MAX_BYTES,
1804
+ targetId: params.targetId,
1805
+ url: params.url,
1806
+ labels: params.labels,
1807
+ labelsCount: params.labelsCount,
1808
+ labelsSkipped: params.labelsSkipped
1809
+ });
1810
+ }
1811
+ async function saveBrowserMediaResponse(params) {
1812
+ await ensureMediaDir();
1813
+ const saved = await saveMediaBuffer(params.buffer, params.contentType, "browser", params.maxBytes);
1814
+ params.res.json({
1815
+ ok: true,
1816
+ path: path.resolve(saved.path),
1817
+ targetId: params.targetId,
1818
+ url: params.url,
1819
+ ...params.labels ? { labels: true } : {},
1820
+ ...typeof params.labelsCount === "number" ? { labelsCount: params.labelsCount } : {},
1821
+ ...typeof params.labelsSkipped === "number" ? { labelsSkipped: params.labelsSkipped } : {}
1822
+ });
1823
+ }
1824
+ function registerBrowserAgentSnapshotRoutes(app, ctx) {
1825
+ app.post("/navigate", asyncBrowserRoute(async (req, res) => {
1826
+ const body = readBody(req);
1827
+ const url = toStringOrEmpty(body.url);
1828
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
1829
+ if (!url) return jsonError(res, 400, "url is required");
1830
+ await withRouteTabContext({
1831
+ req,
1832
+ res,
1833
+ ctx,
1834
+ targetId,
1835
+ run: async ({ profileCtx, tab, cdpUrl }) => {
1836
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) {
1837
+ const ssrfPolicyOpts = browserNavigationPolicyForProfile$1(ctx, profileCtx);
1838
+ await assertBrowserNavigationAllowed({
1839
+ url,
1840
+ ...ssrfPolicyOpts
1841
+ });
1842
+ const result = await navigateChromeMcpPage({
1843
+ profileName: profileCtx.profile.name,
1844
+ userDataDir: profileCtx.profile.userDataDir,
1845
+ targetId: tab.targetId,
1846
+ url
1847
+ });
1848
+ await assertBrowserNavigationResultAllowed({
1849
+ url: result.url,
1850
+ ...ssrfPolicyOpts
1851
+ });
1852
+ return res.json({
1853
+ ok: true,
1854
+ targetId: tab.targetId,
1855
+ ...result
1856
+ });
1857
+ }
1858
+ const pw = await requirePwAi(res, "navigate");
1859
+ if (!pw) return;
1860
+ const result = await pw.navigateViaPlaywright({
1861
+ cdpUrl,
1862
+ targetId: tab.targetId,
1863
+ url,
1864
+ ...browserNavigationPolicyForProfile$1(ctx, profileCtx)
1865
+ });
1866
+ const currentTargetId = await resolveTargetIdAfterNavigate({
1867
+ oldTargetId: tab.targetId,
1868
+ navigatedUrl: result.url,
1869
+ listTabs: () => profileCtx.listTabs()
1870
+ });
1871
+ res.json({
1872
+ ok: true,
1873
+ targetId: currentTargetId,
1874
+ ...result
1875
+ });
1876
+ }
1877
+ });
1878
+ }));
1879
+ app.post("/pdf", asyncBrowserRoute(async (req, res) => {
1880
+ const targetId = toStringOrEmpty(readBody(req).targetId) || void 0;
1881
+ const profileCtx = resolveProfileContext(req, res, ctx);
1882
+ if (!profileCtx) return;
1883
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) return jsonError(res, 501, EXISTING_SESSION_LIMITS.snapshot.pdfUnsupported);
1884
+ await withPlaywrightRouteContext({
1885
+ req,
1886
+ res,
1887
+ ctx,
1888
+ targetId,
1889
+ feature: "pdf",
1890
+ run: async ({ cdpUrl, tab, pw }) => {
1891
+ const pdf = await pw.pdfViaPlaywright({
1892
+ cdpUrl,
1893
+ targetId: tab.targetId
1894
+ });
1895
+ await saveBrowserMediaResponse({
1896
+ res,
1897
+ buffer: pdf.buffer,
1898
+ contentType: "application/pdf",
1899
+ maxBytes: pdf.buffer.byteLength,
1900
+ targetId: tab.targetId,
1901
+ url: tab.url
1902
+ });
1903
+ }
1904
+ });
1905
+ }));
1906
+ app.post("/screenshot", asyncBrowserRoute(async (req, res) => {
1907
+ const body = readBody(req);
1908
+ const targetId = toStringOrEmpty(body.targetId) || void 0;
1909
+ const fullPage = toBoolean(body.fullPage) ?? false;
1910
+ const ref = toStringOrEmpty(body.ref) || void 0;
1911
+ const element = toStringOrEmpty(body.element) || void 0;
1912
+ const labels = toBoolean(body.labels) ?? false;
1913
+ const type = body.type === "jpeg" ? "jpeg" : "png";
1914
+ const timeoutMsRaw = toNumber(body.timeoutMs);
1915
+ const timeoutMs = timeoutMsRaw !== void 0 ? Math.max(1, Math.floor(timeoutMsRaw)) : DEFAULT_BROWSER_SCREENSHOT_TIMEOUT_MS;
1916
+ if (fullPage && (ref || element)) return jsonError(res, 400, "fullPage is not supported for element screenshots");
1917
+ await withRouteTabContext({
1918
+ req,
1919
+ res,
1920
+ ctx,
1921
+ targetId,
1922
+ run: async ({ profileCtx, tab, cdpUrl }) => {
1923
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) {
1924
+ const ssrfPolicyOpts = browserNavigationPolicyForProfile$1(ctx, profileCtx);
1925
+ if (element) return jsonError(res, 400, EXISTING_SESSION_LIMITS.snapshot.screenshotElement);
1926
+ if (ssrfPolicyOpts.ssrfPolicy) await assertBrowserNavigationResultAllowed({
1927
+ url: tab.url,
1928
+ ...ssrfPolicyOpts
1929
+ });
1930
+ if (labels) {
1931
+ const built = buildAiSnapshotFromChromeMcpSnapshot({ root: await takeChromeMcpSnapshot({
1932
+ profileName: profileCtx.profile.name,
1933
+ userDataDir: profileCtx.profile.userDataDir,
1934
+ targetId: tab.targetId
1935
+ }) });
1936
+ const labelResult = await renderChromeMcpLabels({
1937
+ profileName: profileCtx.profile.name,
1938
+ userDataDir: profileCtx.profile.userDataDir,
1939
+ targetId: tab.targetId,
1940
+ refs: Object.keys(built.refs)
1941
+ });
1942
+ try {
1943
+ await saveNormalizedScreenshotResponse({
1944
+ res,
1945
+ buffer: await takeChromeMcpScreenshot({
1946
+ profileName: profileCtx.profile.name,
1947
+ userDataDir: profileCtx.profile.userDataDir,
1948
+ targetId: tab.targetId,
1949
+ fullPage,
1950
+ format: type,
1951
+ timeoutMs
1952
+ }),
1953
+ type,
1954
+ targetId: tab.targetId,
1955
+ url: tab.url,
1956
+ labels: true,
1957
+ labelsCount: labelResult.labels,
1958
+ labelsSkipped: labelResult.skipped
1959
+ });
1960
+ } finally {
1961
+ await clearChromeMcpOverlay({
1962
+ profileName: profileCtx.profile.name,
1963
+ userDataDir: profileCtx.profile.userDataDir,
1964
+ targetId: tab.targetId
1965
+ });
1966
+ }
1967
+ return;
1968
+ }
1969
+ await saveNormalizedScreenshotResponse({
1970
+ res,
1971
+ buffer: await takeChromeMcpScreenshot({
1972
+ profileName: profileCtx.profile.name,
1973
+ userDataDir: profileCtx.profile.userDataDir,
1974
+ targetId: tab.targetId,
1975
+ uid: ref,
1976
+ fullPage,
1977
+ format: type,
1978
+ timeoutMs
1979
+ }),
1980
+ type,
1981
+ targetId: tab.targetId,
1982
+ url: tab.url
1983
+ });
1984
+ return;
1985
+ }
1986
+ let buffer;
1987
+ if (labels || shouldUsePlaywrightForScreenshot({
1988
+ profile: profileCtx.profile,
1989
+ wsUrl: tab.wsUrl,
1990
+ ref,
1991
+ element
1992
+ })) {
1993
+ const pw = await requirePwAi(res, "screenshot");
1994
+ if (!pw) return;
1995
+ if (labels) {
1996
+ const snap = await pw.snapshotRoleViaPlaywright({
1997
+ cdpUrl,
1998
+ targetId: tab.targetId,
1999
+ ssrfPolicy: ctx.state().resolved.ssrfPolicy
2000
+ });
2001
+ const labeled = await pw.screenshotWithLabelsViaPlaywright({
2002
+ cdpUrl,
2003
+ targetId: tab.targetId,
2004
+ refs: snap.refs,
2005
+ type,
2006
+ timeoutMs
2007
+ });
2008
+ await saveNormalizedScreenshotResponse({
2009
+ res,
2010
+ buffer: labeled.buffer,
2011
+ type,
2012
+ targetId: tab.targetId,
2013
+ url: tab.url,
2014
+ labels: true,
2015
+ labelsCount: labeled.labels,
2016
+ labelsSkipped: labeled.skipped
2017
+ });
2018
+ return;
2019
+ }
2020
+ buffer = (await pw.takeScreenshotViaPlaywright({
2021
+ cdpUrl,
2022
+ targetId: tab.targetId,
2023
+ ref,
2024
+ element,
2025
+ fullPage,
2026
+ type,
2027
+ timeoutMs
2028
+ })).buffer;
2029
+ } else buffer = await captureScreenshot({
2030
+ wsUrl: tab.wsUrl ?? "",
2031
+ fullPage,
2032
+ format: type,
2033
+ quality: type === "jpeg" ? 85 : void 0,
2034
+ timeoutMs
2035
+ });
2036
+ await saveNormalizedScreenshotResponse({
2037
+ res,
2038
+ buffer,
2039
+ type,
2040
+ targetId: tab.targetId,
2041
+ url: tab.url
2042
+ });
2043
+ }
2044
+ });
2045
+ }));
2046
+ app.get("/snapshot", asyncBrowserRoute(async (req, res) => {
2047
+ const profileCtx = resolveProfileContext(req, res, ctx);
2048
+ if (!profileCtx) return;
2049
+ const targetId = typeof req.query.targetId === "string" ? req.query.targetId.trim() : "";
2050
+ const hasPlaywright = Boolean(await getPwAiModule());
2051
+ const plan = resolveSnapshotPlan({
2052
+ profile: profileCtx.profile,
2053
+ query: req.query,
2054
+ hasPlaywright
2055
+ });
2056
+ try {
2057
+ const tab = await profileCtx.ensureTabAvailable(targetId || void 0);
2058
+ if ((plan.labels || plan.mode === "efficient") && plan.format === "aria") return jsonError(res, 400, "labels/mode=efficient require format=ai");
2059
+ if (getBrowserProfileCapabilities(profileCtx.profile).usesChromeMcp) {
2060
+ const ssrfPolicyOpts = browserNavigationPolicyForProfile$1(ctx, profileCtx);
2061
+ if (plan.selectorValue || plan.frameSelectorValue) return jsonError(res, 400, EXISTING_SESSION_LIMITS.snapshot.snapshotSelector);
2062
+ if (ssrfPolicyOpts.ssrfPolicy) await assertBrowserNavigationResultAllowed({
2063
+ url: tab.url,
2064
+ ...ssrfPolicyOpts
2065
+ });
2066
+ const snapshot = await takeChromeMcpSnapshot({
2067
+ profileName: profileCtx.profile.name,
2068
+ userDataDir: profileCtx.profile.userDataDir,
2069
+ targetId: tab.targetId
2070
+ });
2071
+ if (plan.format === "aria") return res.json({
2072
+ ok: true,
2073
+ format: "aria",
2074
+ targetId: tab.targetId,
2075
+ url: tab.url,
2076
+ nodes: flattenChromeMcpSnapshotToAriaNodes(snapshot, plan.limit)
2077
+ });
2078
+ const built = buildAiSnapshotFromChromeMcpSnapshot({
2079
+ root: snapshot,
2080
+ options: {
2081
+ interactive: plan.interactive ?? void 0,
2082
+ compact: plan.compact ?? void 0,
2083
+ maxDepth: plan.depth ?? void 0
2084
+ },
2085
+ maxChars: plan.resolvedMaxChars
2086
+ });
2087
+ const builtWithUrls = plan.urls ? {
2088
+ ...built,
2089
+ snapshot: appendSnapshotUrls(built.snapshot, await collectChromeMcpSnapshotUrls({
2090
+ profileName: profileCtx.profile.name,
2091
+ userDataDir: profileCtx.profile.userDataDir,
2092
+ targetId: tab.targetId
2093
+ }))
2094
+ } : built;
2095
+ if (plan.labels) {
2096
+ const refs = Object.keys(builtWithUrls.refs);
2097
+ const labelResult = await renderChromeMcpLabels({
2098
+ profileName: profileCtx.profile.name,
2099
+ userDataDir: profileCtx.profile.userDataDir,
2100
+ targetId: tab.targetId,
2101
+ refs
2102
+ });
2103
+ try {
2104
+ const normalized = await normalizeBrowserScreenshot(await takeChromeMcpScreenshot({
2105
+ profileName: profileCtx.profile.name,
2106
+ userDataDir: profileCtx.profile.userDataDir,
2107
+ targetId: tab.targetId,
2108
+ format: "png"
2109
+ }), {
2110
+ maxSide: DEFAULT_BROWSER_SCREENSHOT_MAX_SIDE,
2111
+ maxBytes: DEFAULT_BROWSER_SCREENSHOT_MAX_BYTES
2112
+ });
2113
+ await ensureMediaDir();
2114
+ const saved = await saveMediaBuffer(normalized.buffer, normalized.contentType ?? "image/png", "browser", DEFAULT_BROWSER_SCREENSHOT_MAX_BYTES);
2115
+ return res.json({
2116
+ ok: true,
2117
+ format: "ai",
2118
+ targetId: tab.targetId,
2119
+ url: tab.url,
2120
+ labels: true,
2121
+ labelsCount: labelResult.labels,
2122
+ labelsSkipped: labelResult.skipped,
2123
+ imagePath: path.resolve(saved.path),
2124
+ imageType: normalized.contentType?.includes("jpeg") ? "jpeg" : "png",
2125
+ ...builtWithUrls
2126
+ });
2127
+ } finally {
2128
+ await clearChromeMcpOverlay({
2129
+ profileName: profileCtx.profile.name,
2130
+ userDataDir: profileCtx.profile.userDataDir,
2131
+ targetId: tab.targetId
2132
+ });
2133
+ }
2134
+ }
2135
+ return res.json({
2136
+ ok: true,
2137
+ format: "ai",
2138
+ targetId: tab.targetId,
2139
+ url: tab.url,
2140
+ ...builtWithUrls
2141
+ });
2142
+ }
2143
+ if (plan.format === "ai") {
2144
+ const pw = await requirePwAi(res, "ai snapshot");
2145
+ if (!pw) return;
2146
+ const roleSnapshotArgs = {
2147
+ cdpUrl: profileCtx.profile.cdpUrl,
2148
+ targetId: tab.targetId,
2149
+ selector: plan.selectorValue,
2150
+ frameSelector: plan.frameSelectorValue,
2151
+ refsMode: plan.refsMode,
2152
+ ssrfPolicy: ctx.state().resolved.ssrfPolicy,
2153
+ urls: plan.urls,
2154
+ options: {
2155
+ interactive: plan.interactive ?? void 0,
2156
+ compact: plan.compact ?? void 0,
2157
+ maxDepth: plan.depth ?? void 0
2158
+ }
2159
+ };
2160
+ const snap = plan.wantsRoleSnapshot ? await pw.snapshotRoleViaPlaywright(roleSnapshotArgs) : await pw.snapshotAiViaPlaywright({
2161
+ cdpUrl: profileCtx.profile.cdpUrl,
2162
+ targetId: tab.targetId,
2163
+ ssrfPolicy: ctx.state().resolved.ssrfPolicy,
2164
+ urls: plan.urls,
2165
+ ...typeof plan.resolvedMaxChars === "number" ? { maxChars: plan.resolvedMaxChars } : {}
2166
+ });
2167
+ if (plan.labels) {
2168
+ const labeled = await pw.screenshotWithLabelsViaPlaywright({
2169
+ cdpUrl: profileCtx.profile.cdpUrl,
2170
+ targetId: tab.targetId,
2171
+ refs: "refs" in snap ? snap.refs : {},
2172
+ type: "png"
2173
+ });
2174
+ const normalized = await normalizeBrowserScreenshot(labeled.buffer, {
2175
+ maxSide: DEFAULT_BROWSER_SCREENSHOT_MAX_SIDE,
2176
+ maxBytes: DEFAULT_BROWSER_SCREENSHOT_MAX_BYTES
2177
+ });
2178
+ await ensureMediaDir();
2179
+ const saved = await saveMediaBuffer(normalized.buffer, normalized.contentType ?? "image/png", "browser", DEFAULT_BROWSER_SCREENSHOT_MAX_BYTES);
2180
+ const imageType = normalized.contentType?.includes("jpeg") ? "jpeg" : "png";
2181
+ return res.json({
2182
+ ok: true,
2183
+ format: plan.format,
2184
+ targetId: tab.targetId,
2185
+ url: tab.url,
2186
+ labels: true,
2187
+ labelsCount: labeled.labels,
2188
+ labelsSkipped: labeled.skipped,
2189
+ imagePath: path.resolve(saved.path),
2190
+ imageType,
2191
+ ...snap
2192
+ });
2193
+ }
2194
+ return res.json({
2195
+ ok: true,
2196
+ format: plan.format,
2197
+ targetId: tab.targetId,
2198
+ url: tab.url,
2199
+ ...snap
2200
+ });
2201
+ }
2202
+ const snap = shouldUsePlaywrightForAriaSnapshot({
2203
+ profile: profileCtx.profile,
2204
+ wsUrl: tab.wsUrl
2205
+ }) ? requirePwAi(res, "aria snapshot").then(async (pw) => {
2206
+ if (!pw) return null;
2207
+ return await pw.snapshotAriaViaPlaywright({
2208
+ cdpUrl: profileCtx.profile.cdpUrl,
2209
+ targetId: tab.targetId,
2210
+ limit: plan.limit,
2211
+ ssrfPolicy: ctx.state().resolved.ssrfPolicy
2212
+ });
2213
+ }) : snapshotAria({
2214
+ wsUrl: tab.wsUrl ?? "",
2215
+ limit: plan.limit
2216
+ });
2217
+ const resolved = await Promise.resolve(snap);
2218
+ if (!resolved) return;
2219
+ return res.json({
2220
+ ok: true,
2221
+ format: plan.format,
2222
+ targetId: tab.targetId,
2223
+ url: tab.url,
2224
+ ...resolved
2225
+ });
2226
+ } catch (err) {
2227
+ handleRouteError(ctx, res, err);
2228
+ }
2229
+ }));
2230
+ }
2231
+ //#endregion
2232
+ //#region extensions/browser/src/browser/routes/agent.storage.ts
2233
+ function readStringValue(value) {
2234
+ return typeof value === "string" ? value : void 0;
2235
+ }
2236
+ function normalizeOptionalString(value) {
2237
+ return readStringValue(value)?.trim() || void 0;
2238
+ }
2239
+ function parseStorageKind(raw) {
2240
+ if (raw === "local" || raw === "session") return raw;
2241
+ return null;
2242
+ }
2243
+ function parseStorageMutationRequest(kindParam, body) {
2244
+ return {
2245
+ kind: parseStorageKind(toStringOrEmpty(kindParam)),
2246
+ targetId: resolveTargetIdFromBody(body)
2247
+ };
2248
+ }
2249
+ function parseRequiredStorageMutationRequest(kindParam, body) {
2250
+ const parsed = parseStorageMutationRequest(kindParam, body);
2251
+ if (!parsed.kind) return null;
2252
+ return {
2253
+ kind: parsed.kind,
2254
+ targetId: parsed.targetId
2255
+ };
2256
+ }
2257
+ function parseStorageMutationOrRespond(res, kindParam, body) {
2258
+ const parsed = parseRequiredStorageMutationRequest(kindParam, body);
2259
+ if (!parsed) {
2260
+ jsonError(res, 400, "kind must be local|session");
2261
+ return null;
2262
+ }
2263
+ return parsed;
2264
+ }
2265
+ function parseStorageMutationFromRequest(req, res) {
2266
+ const body = readBody(req);
2267
+ const parsed = parseStorageMutationOrRespond(res, req.params.kind, body);
2268
+ if (!parsed) return null;
2269
+ return {
2270
+ body,
2271
+ parsed
2272
+ };
2273
+ }
2274
+ function registerBrowserAgentStorageRoutes(app, ctx) {
2275
+ app.get("/cookies", asyncBrowserRoute(async (req, res) => {
2276
+ await withPlaywrightRouteContext({
2277
+ req,
2278
+ res,
2279
+ ctx,
2280
+ targetId: resolveTargetIdFromQuery(req.query),
2281
+ feature: "cookies",
2282
+ run: async ({ cdpUrl, tab, pw }) => {
2283
+ const result = await pw.cookiesGetViaPlaywright({
2284
+ cdpUrl,
2285
+ targetId: tab.targetId
2286
+ });
2287
+ res.json({
2288
+ ok: true,
2289
+ targetId: tab.targetId,
2290
+ ...result
2291
+ });
2292
+ }
2293
+ });
2294
+ }));
2295
+ app.post("/cookies/set", asyncBrowserRoute(async (req, res) => {
2296
+ const body = readBody(req);
2297
+ const targetId = resolveTargetIdFromBody(body);
2298
+ const cookie = body.cookie && typeof body.cookie === "object" && !Array.isArray(body.cookie) ? body.cookie : null;
2299
+ if (!cookie) return jsonError(res, 400, "cookie is required");
2300
+ await withPlaywrightRouteContext({
2301
+ req,
2302
+ res,
2303
+ ctx,
2304
+ targetId,
2305
+ feature: "cookies set",
2306
+ run: async ({ cdpUrl, tab, pw }) => {
2307
+ await pw.cookiesSetViaPlaywright({
2308
+ cdpUrl,
2309
+ targetId: tab.targetId,
2310
+ cookie: {
2311
+ name: toStringOrEmpty(cookie.name),
2312
+ value: toStringOrEmpty(cookie.value),
2313
+ url: toStringOrEmpty(cookie.url) || void 0,
2314
+ domain: toStringOrEmpty(cookie.domain) || void 0,
2315
+ path: toStringOrEmpty(cookie.path) || void 0,
2316
+ expires: toNumber(cookie.expires) ?? void 0,
2317
+ httpOnly: toBoolean(cookie.httpOnly) ?? void 0,
2318
+ secure: toBoolean(cookie.secure) ?? void 0,
2319
+ sameSite: cookie.sameSite === "Lax" || cookie.sameSite === "None" || cookie.sameSite === "Strict" ? cookie.sameSite : void 0
2320
+ }
2321
+ });
2322
+ res.json({
2323
+ ok: true,
2324
+ targetId: tab.targetId
2325
+ });
2326
+ }
2327
+ });
2328
+ }));
2329
+ app.post("/cookies/clear", asyncBrowserRoute(async (req, res) => {
2330
+ await withPlaywrightRouteContext({
2331
+ req,
2332
+ res,
2333
+ ctx,
2334
+ targetId: resolveTargetIdFromBody(readBody(req)),
2335
+ feature: "cookies clear",
2336
+ run: async ({ cdpUrl, tab, pw }) => {
2337
+ await pw.cookiesClearViaPlaywright({
2338
+ cdpUrl,
2339
+ targetId: tab.targetId
2340
+ });
2341
+ res.json({
2342
+ ok: true,
2343
+ targetId: tab.targetId
2344
+ });
2345
+ }
2346
+ });
2347
+ }));
2348
+ app.get("/storage/:kind", asyncBrowserRoute(async (req, res) => {
2349
+ const kind = parseStorageKind(toStringOrEmpty(req.params.kind));
2350
+ if (!kind) return jsonError(res, 400, "kind must be local|session");
2351
+ const targetId = resolveTargetIdFromQuery(req.query);
2352
+ const key = toStringOrEmpty(req.query.key);
2353
+ await withPlaywrightRouteContext({
2354
+ req,
2355
+ res,
2356
+ ctx,
2357
+ targetId,
2358
+ feature: "storage get",
2359
+ run: async ({ cdpUrl, tab, pw }) => {
2360
+ const result = await pw.storageGetViaPlaywright({
2361
+ cdpUrl,
2362
+ targetId: tab.targetId,
2363
+ kind,
2364
+ key: normalizeOptionalString(key)
2365
+ });
2366
+ res.json({
2367
+ ok: true,
2368
+ targetId: tab.targetId,
2369
+ ...result
2370
+ });
2371
+ }
2372
+ });
2373
+ }));
2374
+ app.post("/storage/:kind/set", asyncBrowserRoute(async (req, res) => {
2375
+ const mutation = parseStorageMutationFromRequest(req, res);
2376
+ if (!mutation) return;
2377
+ const key = toStringOrEmpty(mutation.body.key);
2378
+ if (!key) return jsonError(res, 400, "key is required");
2379
+ const value = typeof mutation.body.value === "string" ? mutation.body.value : "";
2380
+ await withPlaywrightRouteContext({
2381
+ req,
2382
+ res,
2383
+ ctx,
2384
+ targetId: mutation.parsed.targetId,
2385
+ feature: "storage set",
2386
+ run: async ({ cdpUrl, tab, pw }) => {
2387
+ await pw.storageSetViaPlaywright({
2388
+ cdpUrl,
2389
+ targetId: tab.targetId,
2390
+ kind: mutation.parsed.kind,
2391
+ key,
2392
+ value
2393
+ });
2394
+ res.json({
2395
+ ok: true,
2396
+ targetId: tab.targetId
2397
+ });
2398
+ }
2399
+ });
2400
+ }));
2401
+ app.post("/storage/:kind/clear", asyncBrowserRoute(async (req, res) => {
2402
+ const mutation = parseStorageMutationFromRequest(req, res);
2403
+ if (!mutation) return;
2404
+ await withPlaywrightRouteContext({
2405
+ req,
2406
+ res,
2407
+ ctx,
2408
+ targetId: mutation.parsed.targetId,
2409
+ feature: "storage clear",
2410
+ run: async ({ cdpUrl, tab, pw }) => {
2411
+ await pw.storageClearViaPlaywright({
2412
+ cdpUrl,
2413
+ targetId: tab.targetId,
2414
+ kind: mutation.parsed.kind
2415
+ });
2416
+ res.json({
2417
+ ok: true,
2418
+ targetId: tab.targetId
2419
+ });
2420
+ }
2421
+ });
2422
+ }));
2423
+ app.post("/set/offline", asyncBrowserRoute(async (req, res) => {
2424
+ const body = readBody(req);
2425
+ const targetId = resolveTargetIdFromBody(body);
2426
+ const offline = toBoolean(body.offline);
2427
+ if (offline === void 0) return jsonError(res, 400, "offline is required");
2428
+ await withPlaywrightRouteContext({
2429
+ req,
2430
+ res,
2431
+ ctx,
2432
+ targetId,
2433
+ feature: "offline",
2434
+ run: async ({ cdpUrl, tab, pw }) => {
2435
+ await pw.setOfflineViaPlaywright({
2436
+ cdpUrl,
2437
+ targetId: tab.targetId,
2438
+ offline
2439
+ });
2440
+ res.json({
2441
+ ok: true,
2442
+ targetId: tab.targetId
2443
+ });
2444
+ }
2445
+ });
2446
+ }));
2447
+ app.post("/set/headers", asyncBrowserRoute(async (req, res) => {
2448
+ const body = readBody(req);
2449
+ const targetId = resolveTargetIdFromBody(body);
2450
+ const headers = body.headers && typeof body.headers === "object" && !Array.isArray(body.headers) ? body.headers : null;
2451
+ if (!headers) return jsonError(res, 400, "headers is required");
2452
+ const parsed = {};
2453
+ for (const [k, v] of Object.entries(headers)) if (typeof v === "string") parsed[k] = v;
2454
+ await withPlaywrightRouteContext({
2455
+ req,
2456
+ res,
2457
+ ctx,
2458
+ targetId,
2459
+ feature: "headers",
2460
+ run: async ({ cdpUrl, tab, pw }) => {
2461
+ await pw.setExtraHTTPHeadersViaPlaywright({
2462
+ cdpUrl,
2463
+ targetId: tab.targetId,
2464
+ headers: parsed
2465
+ });
2466
+ res.json({
2467
+ ok: true,
2468
+ targetId: tab.targetId
2469
+ });
2470
+ }
2471
+ });
2472
+ }));
2473
+ app.post("/set/credentials", asyncBrowserRoute(async (req, res) => {
2474
+ const body = readBody(req);
2475
+ const targetId = resolveTargetIdFromBody(body);
2476
+ const clear = toBoolean(body.clear) ?? false;
2477
+ const username = toStringOrEmpty(body.username) || void 0;
2478
+ const password = readStringValue(body.password);
2479
+ await withPlaywrightRouteContext({
2480
+ req,
2481
+ res,
2482
+ ctx,
2483
+ targetId,
2484
+ feature: "http credentials",
2485
+ run: async ({ cdpUrl, tab, pw }) => {
2486
+ await pw.setHttpCredentialsViaPlaywright({
2487
+ cdpUrl,
2488
+ targetId: tab.targetId,
2489
+ username,
2490
+ password,
2491
+ clear
2492
+ });
2493
+ res.json({
2494
+ ok: true,
2495
+ targetId: tab.targetId
2496
+ });
2497
+ }
2498
+ });
2499
+ }));
2500
+ app.post("/set/geolocation", asyncBrowserRoute(async (req, res) => {
2501
+ const body = readBody(req);
2502
+ const targetId = resolveTargetIdFromBody(body);
2503
+ const clear = toBoolean(body.clear) ?? false;
2504
+ const latitude = toNumber(body.latitude);
2505
+ const longitude = toNumber(body.longitude);
2506
+ const accuracy = toNumber(body.accuracy) ?? void 0;
2507
+ const origin = toStringOrEmpty(body.origin) || void 0;
2508
+ await withPlaywrightRouteContext({
2509
+ req,
2510
+ res,
2511
+ ctx,
2512
+ targetId,
2513
+ feature: "geolocation",
2514
+ run: async ({ cdpUrl, tab, pw }) => {
2515
+ await pw.setGeolocationViaPlaywright({
2516
+ cdpUrl,
2517
+ targetId: tab.targetId,
2518
+ latitude,
2519
+ longitude,
2520
+ accuracy,
2521
+ origin,
2522
+ clear
2523
+ });
2524
+ res.json({
2525
+ ok: true,
2526
+ targetId: tab.targetId
2527
+ });
2528
+ }
2529
+ });
2530
+ }));
2531
+ app.post("/set/media", asyncBrowserRoute(async (req, res) => {
2532
+ const body = readBody(req);
2533
+ const targetId = resolveTargetIdFromBody(body);
2534
+ const schemeRaw = toStringOrEmpty(body.colorScheme);
2535
+ const colorScheme = schemeRaw === "dark" || schemeRaw === "light" || schemeRaw === "no-preference" ? schemeRaw : schemeRaw === "none" ? null : void 0;
2536
+ if (colorScheme === void 0) return jsonError(res, 400, "colorScheme must be dark|light|no-preference|none");
2537
+ await withPlaywrightRouteContext({
2538
+ req,
2539
+ res,
2540
+ ctx,
2541
+ targetId,
2542
+ feature: "media emulation",
2543
+ run: async ({ cdpUrl, tab, pw }) => {
2544
+ await pw.emulateMediaViaPlaywright({
2545
+ cdpUrl,
2546
+ targetId: tab.targetId,
2547
+ colorScheme
2548
+ });
2549
+ res.json({
2550
+ ok: true,
2551
+ targetId: tab.targetId
2552
+ });
2553
+ }
2554
+ });
2555
+ }));
2556
+ app.post("/set/timezone", asyncBrowserRoute(async (req, res) => {
2557
+ const body = readBody(req);
2558
+ const targetId = resolveTargetIdFromBody(body);
2559
+ const timezoneId = toStringOrEmpty(body.timezoneId);
2560
+ if (!timezoneId) return jsonError(res, 400, "timezoneId is required");
2561
+ await withPlaywrightRouteContext({
2562
+ req,
2563
+ res,
2564
+ ctx,
2565
+ targetId,
2566
+ feature: "timezone",
2567
+ run: async ({ cdpUrl, tab, pw }) => {
2568
+ await pw.setTimezoneViaPlaywright({
2569
+ cdpUrl,
2570
+ targetId: tab.targetId,
2571
+ timezoneId
2572
+ });
2573
+ res.json({
2574
+ ok: true,
2575
+ targetId: tab.targetId
2576
+ });
2577
+ }
2578
+ });
2579
+ }));
2580
+ app.post("/set/locale", asyncBrowserRoute(async (req, res) => {
2581
+ const body = readBody(req);
2582
+ const targetId = resolveTargetIdFromBody(body);
2583
+ const locale = toStringOrEmpty(body.locale);
2584
+ if (!locale) return jsonError(res, 400, "locale is required");
2585
+ await withPlaywrightRouteContext({
2586
+ req,
2587
+ res,
2588
+ ctx,
2589
+ targetId,
2590
+ feature: "locale",
2591
+ run: async ({ cdpUrl, tab, pw }) => {
2592
+ await pw.setLocaleViaPlaywright({
2593
+ cdpUrl,
2594
+ targetId: tab.targetId,
2595
+ locale
2596
+ });
2597
+ res.json({
2598
+ ok: true,
2599
+ targetId: tab.targetId
2600
+ });
2601
+ }
2602
+ });
2603
+ }));
2604
+ app.post("/set/device", asyncBrowserRoute(async (req, res) => {
2605
+ const body = readBody(req);
2606
+ const targetId = resolveTargetIdFromBody(body);
2607
+ const name = toStringOrEmpty(body.name);
2608
+ if (!name) return jsonError(res, 400, "name is required");
2609
+ await withPlaywrightRouteContext({
2610
+ req,
2611
+ res,
2612
+ ctx,
2613
+ targetId,
2614
+ feature: "device emulation",
2615
+ run: async ({ cdpUrl, tab, pw }) => {
2616
+ await pw.setDeviceViaPlaywright({
2617
+ cdpUrl,
2618
+ targetId: tab.targetId,
2619
+ name
2620
+ });
2621
+ res.json({
2622
+ ok: true,
2623
+ targetId: tab.targetId
2624
+ });
2625
+ }
2626
+ });
2627
+ }));
2628
+ }
2629
+ //#endregion
2630
+ //#region extensions/browser/src/browser/routes/agent.ts
2631
+ function registerBrowserAgentRoutes(app, ctx) {
2632
+ registerBrowserAgentSnapshotRoutes(app, ctx);
2633
+ registerBrowserAgentActRoutes(app, ctx);
2634
+ registerBrowserAgentDebugRoutes(app, ctx);
2635
+ registerBrowserAgentStorageRoutes(app, ctx);
2636
+ }
2637
+ //#endregion
2638
+ //#region extensions/browser/src/browser/doctor.ts
2639
+ function buildBrowserDoctorReport(params) {
2640
+ const status = params.status;
2641
+ const checks = [];
2642
+ const transport = status.transport === "chrome-mcp" ? "chrome-mcp" : "cdp";
2643
+ checks.push({
2644
+ id: "plugin-enabled",
2645
+ label: "Browser plugin",
2646
+ status: status.enabled ? "pass" : "fail",
2647
+ summary: status.enabled ? "enabled" : "disabled",
2648
+ ...status.enabled ? {} : { fixHint: "Enable the browser plugin and restart the Gateway." }
2649
+ });
2650
+ checks.push({
2651
+ id: "profile",
2652
+ label: "Profile",
2653
+ status: "pass",
2654
+ summary: `${status.profile ?? "genesis"} via ${transport}`
2655
+ });
2656
+ if (transport === "chrome-mcp") checks.push({
2657
+ id: "attach-target",
2658
+ label: "Existing browser attach",
2659
+ status: status.running ? "pass" : "fail",
2660
+ summary: status.running ? "Chrome MCP target is reachable" : "Chrome MCP target is not reachable",
2661
+ ...status.running ? {} : { fixHint: "Keep the matching Chromium browser running, enable remote debugging in chrome://inspect, and accept the attach prompt." }
2662
+ });
2663
+ else {
2664
+ checks.push({
2665
+ id: "managed-executable",
2666
+ label: "Chromium executable",
2667
+ status: status.detectError ? "fail" : status.detectedExecutablePath ? "pass" : "warn",
2668
+ summary: status.detectError ? status.detectError : status.detectedExecutablePath ? `${status.detectedBrowser ?? "chromium"} at ${status.detectedExecutablePath}` : "No Chromium executable detected",
2669
+ ...status.detectedExecutablePath || status.detectError ? {} : { fixHint: "Install Chrome/Chromium/Brave/Edge or set browser.executablePath." }
2670
+ });
2671
+ const platform = params.platform ?? process.platform;
2672
+ const env = params.env ?? process.env;
2673
+ const uid = params.uid ?? process.getuid?.();
2674
+ if (platform === "linux" && !status.headless && !env.DISPLAY && !env.WAYLAND_DISPLAY) checks.push({
2675
+ id: "display",
2676
+ label: "Display",
2677
+ status: "warn",
2678
+ summary: "No DISPLAY or WAYLAND_DISPLAY is set while browser.headless is false",
2679
+ fixHint: "Use a desktop session, Xvfb, or set browser.headless: true."
2680
+ });
2681
+ if (platform === "linux" && uid === 0 && !status.noSandbox) checks.push({
2682
+ id: "linux-sandbox",
2683
+ label: "Linux sandbox",
2684
+ status: "warn",
2685
+ summary: "Gateway is running as root while browser.noSandbox is false",
2686
+ fixHint: "Set browser.noSandbox: true for container/root Chromium runtimes."
2687
+ });
2688
+ checks.push({
2689
+ id: "cdp-http",
2690
+ label: "CDP HTTP",
2691
+ status: status.cdpHttp ? "pass" : status.running ? "fail" : "info",
2692
+ summary: status.cdpHttp ? "CDP HTTP endpoint is reachable" : status.running ? "CDP HTTP endpoint is not reachable" : "Browser is not currently running",
2693
+ ...status.cdpHttp || !status.running ? {} : { fixHint: "Run genesis browser start or inspect browser.cdpUrl/CDP port reachability." }
2694
+ });
2695
+ checks.push({
2696
+ id: "cdp-websocket",
2697
+ label: "CDP WebSocket",
2698
+ status: status.cdpReady ? "pass" : status.running ? "fail" : "info",
2699
+ summary: status.cdpReady ? "CDP WebSocket is reachable" : status.running ? "CDP WebSocket is not reachable" : "Browser is launchable but not running",
2700
+ ...status.cdpReady || !status.running ? {} : { fixHint: "Check Chrome launch logs, stale locks, proxy env, and port conflicts." }
2701
+ });
2702
+ }
2703
+ return {
2704
+ ok: checks.every((check) => check.status !== "fail"),
2705
+ profile: status.profile ?? "genesis",
2706
+ transport,
2707
+ checks,
2708
+ status
2709
+ };
2710
+ }
2711
+ const PROFILE_NAME_REGEX = /^[a-z0-9][a-z0-9-]*$/;
2712
+ function isValidProfileName(name) {
2713
+ if (!name || name.length > 64) return false;
2714
+ return PROFILE_NAME_REGEX.test(name);
2715
+ }
2716
+ function allocateCdpPort(usedPorts, range) {
2717
+ const start = range?.start ?? 18800;
2718
+ const end = range?.end ?? 18899;
2719
+ if (!Number.isFinite(start) || !Number.isFinite(end) || start <= 0 || end <= 0) return null;
2720
+ if (start > end) return null;
2721
+ for (let port = start; port <= end; port++) if (!usedPorts.has(port)) return port;
2722
+ return null;
2723
+ }
2724
+ function getUsedPorts(profiles) {
2725
+ if (!profiles) return /* @__PURE__ */ new Set();
2726
+ const used = /* @__PURE__ */ new Set();
2727
+ for (const profile of Object.values(profiles)) {
2728
+ if (typeof profile.cdpPort === "number") {
2729
+ used.add(profile.cdpPort);
2730
+ continue;
2731
+ }
2732
+ const rawUrl = profile.cdpUrl?.trim();
2733
+ if (!rawUrl) continue;
2734
+ try {
2735
+ const parsed = new URL(rawUrl);
2736
+ const port = parsed.port && Number.parseInt(parsed.port, 10) > 0 ? Number.parseInt(parsed.port, 10) : parsed.protocol === "https:" ? 443 : 80;
2737
+ if (!Number.isNaN(port) && port > 0 && port <= 65535) used.add(port);
2738
+ } catch {}
2739
+ }
2740
+ return used;
2741
+ }
2742
+ const PROFILE_COLORS = [
2743
+ "#FF4500",
2744
+ "#0066CC",
2745
+ "#00AA00",
2746
+ "#9933FF",
2747
+ "#FF6699",
2748
+ "#00CCCC",
2749
+ "#FF9900",
2750
+ "#6666FF",
2751
+ "#CC3366",
2752
+ "#339966"
2753
+ ];
2754
+ function allocateColor(usedColors) {
2755
+ for (const color of PROFILE_COLORS) if (!usedColors.has(color.toUpperCase())) return color;
2756
+ return PROFILE_COLORS[usedColors.size % PROFILE_COLORS.length] ?? PROFILE_COLORS[0];
2757
+ }
2758
+ function getUsedColors(profiles) {
2759
+ if (!profiles) return /* @__PURE__ */ new Set();
2760
+ return new Set(Object.values(profiles).map((p) => p.color.toUpperCase()));
2761
+ }
2762
+ //#endregion
2763
+ //#region extensions/browser/src/browser/profiles-service.ts
2764
+ const HEX_COLOR_RE = /^#[0-9A-Fa-f]{6}$/;
2765
+ const cdpPortRange = (resolved) => {
2766
+ const start = resolved.cdpPortRangeStart;
2767
+ const end = resolved.cdpPortRangeEnd;
2768
+ if (typeof start === "number" && Number.isFinite(start) && Number.isInteger(start) && typeof end === "number" && Number.isFinite(end) && Number.isInteger(end) && start > 0 && end >= start && end <= 65535) return {
2769
+ start,
2770
+ end
2771
+ };
2772
+ return deriveDefaultBrowserCdpPortRange(resolved.controlPort);
2773
+ };
2774
+ function createBrowserProfilesService(ctx) {
2775
+ const listProfiles = async () => {
2776
+ return await ctx.listProfiles();
2777
+ };
2778
+ const createProfile = async (params) => {
2779
+ const name = params.name.trim();
2780
+ const rawCdpUrl = normalizeOptionalString$4(params.cdpUrl);
2781
+ const rawUserDataDir = normalizeOptionalString$4(params.userDataDir);
2782
+ const normalizedUserDataDir = rawUserDataDir ? resolveUserPath(rawUserDataDir) : void 0;
2783
+ const driver = params.driver === "existing-session" ? "existing-session" : void 0;
2784
+ if (!isValidProfileName(name)) throw new BrowserValidationError("invalid profile name: use lowercase letters, numbers, and hyphens only");
2785
+ const state = ctx.state();
2786
+ const resolvedProfiles = state.resolved.profiles;
2787
+ if (name in resolvedProfiles) throw new BrowserConflictError(`profile "${name}" already exists`);
2788
+ const cfg = loadConfig();
2789
+ const rawProfiles = cfg.browser?.profiles ?? {};
2790
+ if (name in rawProfiles) throw new BrowserConflictError(`profile "${name}" already exists`);
2791
+ const usedColors = getUsedColors(resolvedProfiles);
2792
+ const profileColor = params.color && HEX_COLOR_RE.test(params.color) ? params.color : allocateColor(usedColors);
2793
+ let profileConfig;
2794
+ if (normalizedUserDataDir && driver !== "existing-session") throw new BrowserValidationError("driver=existing-session is required when userDataDir is provided");
2795
+ if (normalizedUserDataDir && !fs.existsSync(normalizedUserDataDir)) throw new BrowserValidationError(`browser user data directory not found: ${normalizedUserDataDir}`);
2796
+ if (params.tor && (rawCdpUrl || driver === "existing-session")) throw new BrowserValidationError("Tor routing is only supported for locally launched managed browser profiles");
2797
+ if (rawCdpUrl) {
2798
+ if (driver === "existing-session") throw new BrowserValidationError("driver=existing-session does not accept cdpUrl; it attaches via the Chrome MCP auto-connect flow");
2799
+ let parsed;
2800
+ try {
2801
+ parsed = parseBrowserHttpUrl(rawCdpUrl, "browser.profiles.cdpUrl");
2802
+ await assertCdpEndpointAllowed(parsed.normalized, state.resolved.ssrfPolicy);
2803
+ } catch (err) {
2804
+ throw new BrowserValidationError(formatErrorMessage(err));
2805
+ }
2806
+ profileConfig = {
2807
+ cdpUrl: parsed.normalized,
2808
+ ...driver ? { driver } : {},
2809
+ color: profileColor
2810
+ };
2811
+ } else if (driver === "existing-session") profileConfig = {
2812
+ driver,
2813
+ attachOnly: true,
2814
+ ...normalizedUserDataDir ? { userDataDir: normalizedUserDataDir } : {},
2815
+ color: profileColor
2816
+ };
2817
+ else {
2818
+ const cdpPort = allocateCdpPort(getUsedPorts(resolvedProfiles), cdpPortRange(state.resolved));
2819
+ if (cdpPort === null) throw new BrowserResourceExhaustedError("no available CDP ports in range");
2820
+ profileConfig = {
2821
+ cdpPort,
2822
+ ...driver ? { driver } : {},
2823
+ ...params.tor ? {
2824
+ headless: true,
2825
+ tor: {
2826
+ enabled: true,
2827
+ mode: "managed"
2828
+ }
2829
+ } : {},
2830
+ color: profileColor
2831
+ };
2832
+ }
2833
+ await writeConfigFile({
2834
+ ...cfg,
2835
+ browser: {
2836
+ ...cfg.browser,
2837
+ profiles: {
2838
+ ...rawProfiles,
2839
+ [name]: profileConfig
2840
+ }
2841
+ }
2842
+ });
2843
+ state.resolved.profiles[name] = profileConfig;
2844
+ const resolved = resolveProfile(state.resolved, name);
2845
+ if (!resolved) throw new BrowserProfileNotFoundError(`profile "${name}" not found after creation`);
2846
+ const capabilities = getBrowserProfileCapabilities(resolved);
2847
+ return {
2848
+ ok: true,
2849
+ profile: name,
2850
+ transport: capabilities.usesChromeMcp ? "chrome-mcp" : "cdp",
2851
+ cdpPort: capabilities.usesChromeMcp ? null : resolved.cdpPort,
2852
+ cdpUrl: capabilities.usesChromeMcp ? null : resolved.cdpUrl,
2853
+ userDataDir: resolved.userDataDir ?? null,
2854
+ color: resolved.color,
2855
+ isRemote: !resolved.cdpIsLoopback
2856
+ };
2857
+ };
2858
+ const deleteProfile = async (nameRaw) => {
2859
+ const name = nameRaw.trim();
2860
+ if (!name) throw new BrowserValidationError("profile name is required");
2861
+ if (!isValidProfileName(name)) throw new BrowserValidationError("invalid profile name");
2862
+ const state = ctx.state();
2863
+ const cfg = loadConfig();
2864
+ const profiles = cfg.browser?.profiles ?? {};
2865
+ if (name === (cfg.browser?.defaultProfile ?? state.resolved.defaultProfile)) throw new BrowserValidationError(`cannot delete the default profile "${name}"; change browser.defaultProfile first`);
2866
+ if (!(name in profiles)) throw new BrowserProfileNotFoundError(`profile "${name}" not found`);
2867
+ let deleted = false;
2868
+ const resolved = resolveProfile(state.resolved, name);
2869
+ if (resolved?.cdpIsLoopback && resolved.driver === "genesis") {
2870
+ try {
2871
+ await ctx.forProfile(name).stopRunningBrowser();
2872
+ } catch {}
2873
+ const userDataDir = resolveGenesisUserDataDir(name);
2874
+ const profileDir = path.dirname(userDataDir);
2875
+ if (fs.existsSync(profileDir)) {
2876
+ await movePathToTrash(profileDir);
2877
+ deleted = true;
2878
+ }
2879
+ }
2880
+ const { [name]: _removed, ...remainingProfiles } = profiles;
2881
+ await writeConfigFile({
2882
+ ...cfg,
2883
+ browser: {
2884
+ ...cfg.browser,
2885
+ profiles: remainingProfiles
2886
+ }
2887
+ });
2888
+ delete state.resolved.profiles[name];
2889
+ state.profiles.delete(name);
2890
+ return {
2891
+ ok: true,
2892
+ profile: name,
2893
+ deleted
2894
+ };
2895
+ };
2896
+ return {
2897
+ listProfiles,
2898
+ createProfile,
2899
+ deleteProfile
2900
+ };
2901
+ }
2902
+ //#endregion
2903
+ //#region extensions/browser/src/browser/routes/basic.ts
2904
+ function handleBrowserRouteError(res, err) {
2905
+ const mapped = toBrowserErrorResponse(err);
2906
+ if (mapped) return jsonError(res, mapped.status, mapped.message);
2907
+ jsonError(res, 500, String(err));
2908
+ }
2909
+ function buildTorStatus(profileCtx, running) {
2910
+ const tor = profileCtx.profile.tor;
2911
+ if (!tor?.enabled) return null;
2912
+ return {
2913
+ enabled: true,
2914
+ mode: tor.mode,
2915
+ routeMode: tor.routeMode,
2916
+ socksHost: tor.socksHost,
2917
+ socksPort: tor.socksPort,
2918
+ running
2919
+ };
2920
+ }
2921
+ async function withBasicProfileRoute(params) {
2922
+ const profileCtx = resolveProfileContext(params.req, params.res, params.ctx);
2923
+ if (!profileCtx) return;
2924
+ try {
2925
+ await params.run(profileCtx);
2926
+ } catch (err) {
2927
+ return handleBrowserRouteError(params.res, err);
2928
+ }
2929
+ }
2930
+ async function withProfilesServiceMutation(params) {
2931
+ try {
2932
+ const service = createBrowserProfilesService(params.ctx);
2933
+ const result = await params.run(service);
2934
+ params.res.json(result);
2935
+ } catch (err) {
2936
+ return handleBrowserRouteError(params.res, err);
2937
+ }
2938
+ }
2939
+ async function buildBrowserStatus(req, ctx) {
2940
+ let current;
2941
+ try {
2942
+ current = ctx.state();
2943
+ } catch {
2944
+ throw new BrowserError("browser server not started", 503);
2945
+ }
2946
+ const profileCtx = getProfileContext(req, ctx);
2947
+ if ("error" in profileCtx) throw new BrowserError(profileCtx.error, profileCtx.status);
2948
+ const capabilities = getBrowserProfileCapabilities(profileCtx.profile);
2949
+ const [cdpHttp, cdpReady] = capabilities.usesChromeMcp ? await (async () => {
2950
+ const ready = await profileCtx.isTransportAvailable(600);
2951
+ return [ready, ready];
2952
+ })() : await Promise.all([profileCtx.isHttpReachable(300), profileCtx.isTransportAvailable(600)]);
2953
+ const profileState = current.profiles.get(profileCtx.profile.name);
2954
+ let detectedBrowser = null;
2955
+ let detectedExecutablePath = null;
2956
+ let detectError = null;
2957
+ try {
2958
+ const detected = resolveBrowserExecutableForPlatform(current.resolved, process.platform);
2959
+ if (detected) {
2960
+ detectedBrowser = detected.kind;
2961
+ detectedExecutablePath = detected.path;
2962
+ }
2963
+ } catch (err) {
2964
+ detectError = String(err);
2965
+ }
2966
+ return {
2967
+ enabled: current.resolved.enabled,
2968
+ profile: profileCtx.profile.name,
2969
+ driver: profileCtx.profile.driver,
2970
+ transport: capabilities.usesChromeMcp ? "chrome-mcp" : "cdp",
2971
+ running: cdpReady,
2972
+ cdpReady,
2973
+ cdpHttp,
2974
+ pid: capabilities.usesChromeMcp ? getChromeMcpPid(profileCtx.profile.name) : profileState?.running?.pid ?? null,
2975
+ cdpPort: capabilities.usesChromeMcp ? null : profileCtx.profile.cdpPort,
2976
+ cdpUrl: capabilities.usesChromeMcp ? null : profileCtx.profile.cdpUrl,
2977
+ chosenBrowser: profileState?.running?.exe.kind ?? null,
2978
+ detectedBrowser,
2979
+ detectedExecutablePath,
2980
+ detectError,
2981
+ userDataDir: profileState?.running?.userDataDir ?? profileCtx.profile.userDataDir ?? null,
2982
+ color: profileCtx.profile.color,
2983
+ headless: profileCtx.profile.headless,
2984
+ noSandbox: current.resolved.noSandbox,
2985
+ executablePath: profileCtx.profile.executablePath ?? null,
2986
+ attachOnly: profileCtx.profile.attachOnly,
2987
+ tor: buildTorStatus(profileCtx, profileState?.running?.tor ? true : null)
2988
+ };
2989
+ }
2990
+ function registerBrowserBasicRoutes(app, ctx) {
2991
+ app.get("/profiles", asyncBrowserRoute(async (_req, res) => {
2992
+ try {
2993
+ const profiles = await createBrowserProfilesService(ctx).listProfiles();
2994
+ res.json({ profiles });
2995
+ } catch (err) {
2996
+ jsonError(res, 500, String(err));
2997
+ }
2998
+ }));
2999
+ app.get("/", asyncBrowserRoute(async (req, res) => {
3000
+ try {
3001
+ res.json(await buildBrowserStatus(req, ctx));
3002
+ } catch (err) {
3003
+ const mapped = toBrowserErrorResponse(err);
3004
+ if (mapped) return jsonError(res, mapped.status, mapped.message);
3005
+ jsonError(res, 500, String(err));
3006
+ }
3007
+ }));
3008
+ app.get("/doctor", asyncBrowserRoute(async (req, res) => {
3009
+ try {
3010
+ const status = await buildBrowserStatus(req, ctx);
3011
+ res.json(buildBrowserDoctorReport({ status }));
3012
+ } catch (err) {
3013
+ const mapped = toBrowserErrorResponse(err);
3014
+ if (mapped) return jsonError(res, mapped.status, mapped.message);
3015
+ jsonError(res, 500, String(err));
3016
+ }
3017
+ }));
3018
+ app.post("/start", asyncBrowserRoute(async (req, res) => {
3019
+ await withBasicProfileRoute({
3020
+ req,
3021
+ res,
3022
+ ctx,
3023
+ run: async (profileCtx) => {
3024
+ await profileCtx.ensureBrowserAvailable();
3025
+ res.json({
3026
+ ok: true,
3027
+ profile: profileCtx.profile.name
3028
+ });
3029
+ }
3030
+ });
3031
+ }));
3032
+ app.post("/stop", asyncBrowserRoute(async (req, res) => {
3033
+ await withBasicProfileRoute({
3034
+ req,
3035
+ res,
3036
+ ctx,
3037
+ run: async (profileCtx) => {
3038
+ const result = await profileCtx.stopRunningBrowser();
3039
+ res.json({
3040
+ ok: true,
3041
+ stopped: result.stopped,
3042
+ profile: profileCtx.profile.name
3043
+ });
3044
+ }
3045
+ });
3046
+ }));
3047
+ app.post("/reset-profile", asyncBrowserRoute(async (req, res) => {
3048
+ await withBasicProfileRoute({
3049
+ req,
3050
+ res,
3051
+ ctx,
3052
+ run: async (profileCtx) => {
3053
+ const result = await profileCtx.resetProfile();
3054
+ res.json({
3055
+ ok: true,
3056
+ profile: profileCtx.profile.name,
3057
+ ...result
3058
+ });
3059
+ }
3060
+ });
3061
+ }));
3062
+ app.post("/profiles/create", asyncBrowserRoute(async (req, res) => {
3063
+ const name = toStringOrEmpty(req.body?.name);
3064
+ const color = toStringOrEmpty(req.body?.color);
3065
+ const cdpUrl = toStringOrEmpty(req.body?.cdpUrl);
3066
+ const userDataDir = toStringOrEmpty(req.body?.userDataDir);
3067
+ const driver = toStringOrEmpty(req.body?.driver);
3068
+ const tor = req.body?.tor === true;
3069
+ if (!name) return jsonError(res, 400, "name is required");
3070
+ if (driver && driver !== "genesis" && driver !== "clawd" && driver !== "existing-session") return jsonError(res, 400, `unsupported profile driver "${driver}"; use "genesis", "clawd", or "existing-session"`);
3071
+ await withProfilesServiceMutation({
3072
+ res,
3073
+ ctx,
3074
+ run: async (service) => await service.createProfile({
3075
+ name,
3076
+ color: color || void 0,
3077
+ cdpUrl: cdpUrl || void 0,
3078
+ userDataDir: userDataDir || void 0,
3079
+ tor,
3080
+ driver: driver === "existing-session" ? "existing-session" : driver === "genesis" || driver === "clawd" ? "genesis" : void 0
3081
+ })
3082
+ });
3083
+ }));
3084
+ app.delete("/profiles/:name", asyncBrowserRoute(async (req, res) => {
3085
+ const name = toStringOrEmpty(req.params.name);
3086
+ if (!name) return jsonError(res, 400, "profile name is required");
3087
+ await withProfilesServiceMutation({
3088
+ res,
3089
+ ctx,
3090
+ run: async (service) => await service.deleteProfile(name)
3091
+ });
3092
+ }));
3093
+ }
3094
+ //#endregion
3095
+ //#region extensions/browser/src/browser/routes/tabs.ts
3096
+ function resolveTabsProfileContext(req, res, ctx) {
3097
+ const profileCtx = getProfileContext(req, ctx);
3098
+ if ("error" in profileCtx) {
3099
+ jsonError(res, profileCtx.status, profileCtx.error);
3100
+ return null;
3101
+ }
3102
+ return profileCtx;
3103
+ }
3104
+ function browserNavigationPolicyForProfile(ctx, profileCtx) {
3105
+ return withBrowserNavigationPolicy(ctx.state().resolved.ssrfPolicy, { browserProxyMode: resolveBrowserNavigationProxyMode({
3106
+ resolved: ctx.state().resolved,
3107
+ profile: profileCtx.profile
3108
+ }) });
3109
+ }
3110
+ function handleTabsRouteError(ctx, res, err, opts) {
3111
+ if (opts?.mapTabError) {
3112
+ const mapped = ctx.mapTabError(err);
3113
+ if (mapped) return jsonError(res, mapped.status, mapped.message);
3114
+ }
3115
+ return jsonError(res, 500, String(err));
3116
+ }
3117
+ async function withTabsProfileRoute(params) {
3118
+ const profileCtx = resolveTabsProfileContext(params.req, params.res, params.ctx);
3119
+ if (!profileCtx) return;
3120
+ try {
3121
+ await params.run(profileCtx);
3122
+ } catch (err) {
3123
+ handleTabsRouteError(params.ctx, params.res, err, { mapTabError: params.mapTabError });
3124
+ }
3125
+ }
3126
+ async function ensureBrowserRunning(profileCtx, res) {
3127
+ if (!await profileCtx.isReachable(300)) {
3128
+ jsonError(res, new BrowserProfileUnavailableError("browser not running").status, "browser not running");
3129
+ return false;
3130
+ }
3131
+ return true;
3132
+ }
3133
+ async function redactBlockedTabUrls(params) {
3134
+ const ssrfPolicyOpts = withBrowserNavigationPolicy(params.ssrfPolicy);
3135
+ if (!ssrfPolicyOpts.ssrfPolicy) return params.tabs;
3136
+ const redactedTabs = [];
3137
+ for (const tab of params.tabs) try {
3138
+ await assertBrowserNavigationResultAllowed({
3139
+ url: tab.url,
3140
+ ...ssrfPolicyOpts
3141
+ });
3142
+ redactedTabs.push(tab);
3143
+ } catch {
3144
+ redactedTabs.push({
3145
+ ...tab,
3146
+ url: ""
3147
+ });
3148
+ }
3149
+ return redactedTabs;
3150
+ }
3151
+ function resolveIndexedTab(tabs, index) {
3152
+ return typeof index === "number" ? tabs[index] : tabs.at(0);
3153
+ }
3154
+ function parseRequiredTargetId(res, rawTargetId) {
3155
+ const targetId = toStringOrEmpty(rawTargetId);
3156
+ if (!targetId) {
3157
+ jsonError(res, 400, "targetId is required");
3158
+ return null;
3159
+ }
3160
+ return targetId;
3161
+ }
3162
+ function readOptionalTabLabel(body) {
3163
+ return toStringOrEmpty(body?.label) || void 0;
3164
+ }
3165
+ async function runTabTargetMutation(params) {
3166
+ await withTabsProfileRoute({
3167
+ req: params.req,
3168
+ res: params.res,
3169
+ ctx: params.ctx,
3170
+ mapTabError: true,
3171
+ run: async (profileCtx) => {
3172
+ if (!await ensureBrowserRunning(profileCtx, params.res)) return;
3173
+ await params.mutate(profileCtx, params.targetId);
3174
+ params.res.json({ ok: true });
3175
+ }
3176
+ });
3177
+ }
3178
+ function registerBrowserTabRoutes(app, ctx) {
3179
+ app.get("/tabs", asyncBrowserRoute(async (req, res) => {
3180
+ await withTabsProfileRoute({
3181
+ req,
3182
+ res,
3183
+ ctx,
3184
+ run: async (profileCtx) => {
3185
+ if (!await profileCtx.isReachable(300)) return res.json({
3186
+ running: false,
3187
+ tabs: []
3188
+ });
3189
+ const tabs = await redactBlockedTabUrls({
3190
+ tabs: await profileCtx.listTabs(),
3191
+ ssrfPolicy: ctx.state().resolved.ssrfPolicy
3192
+ });
3193
+ res.json({
3194
+ running: true,
3195
+ tabs
3196
+ });
3197
+ }
3198
+ });
3199
+ }));
3200
+ app.post("/tabs/open", asyncBrowserRoute(async (req, res) => {
3201
+ const url = toStringOrEmpty(req.body?.url);
3202
+ const label = readOptionalTabLabel(req.body);
3203
+ if (!url) return jsonError(res, 400, "url is required");
3204
+ await withTabsProfileRoute({
3205
+ req,
3206
+ res,
3207
+ ctx,
3208
+ mapTabError: true,
3209
+ run: async (profileCtx) => {
3210
+ await assertBrowserNavigationAllowed({
3211
+ url,
3212
+ ...browserNavigationPolicyForProfile(ctx, profileCtx)
3213
+ });
3214
+ await profileCtx.ensureBrowserAvailable();
3215
+ const tab = await profileCtx.openTab(url, { label });
3216
+ res.json(tab);
3217
+ }
3218
+ });
3219
+ }));
3220
+ app.post("/tabs/focus", asyncBrowserRoute(async (req, res) => {
3221
+ const targetId = parseRequiredTargetId(res, req.body?.targetId);
3222
+ if (!targetId) return;
3223
+ await runTabTargetMutation({
3224
+ req,
3225
+ res,
3226
+ ctx,
3227
+ targetId,
3228
+ mutate: async (profileCtx, id) => {
3229
+ const tabs = await profileCtx.listTabs();
3230
+ const resolved = resolveTargetIdFromTabs(id, tabs);
3231
+ if (!resolved.ok) {
3232
+ if (resolved.reason === "ambiguous") throw new BrowserTargetAmbiguousError();
3233
+ throw new BrowserTabNotFoundError({ input: id });
3234
+ }
3235
+ const tab = tabs.find((currentTab) => currentTab.targetId === resolved.targetId);
3236
+ if (!tab) throw new BrowserTabNotFoundError({ input: id });
3237
+ const ssrfPolicyOpts = browserNavigationPolicyForProfile(ctx, profileCtx);
3238
+ if (ssrfPolicyOpts.ssrfPolicy) await assertBrowserNavigationResultAllowed({
3239
+ url: tab.url,
3240
+ ...ssrfPolicyOpts
3241
+ });
3242
+ await profileCtx.focusTab(resolved.targetId);
3243
+ }
3244
+ });
3245
+ }));
3246
+ app.delete("/tabs/:targetId", asyncBrowserRoute(async (req, res) => {
3247
+ const targetId = parseRequiredTargetId(res, req.params.targetId);
3248
+ if (!targetId) return;
3249
+ await runTabTargetMutation({
3250
+ req,
3251
+ res,
3252
+ ctx,
3253
+ targetId,
3254
+ mutate: async (profileCtx, id) => {
3255
+ await profileCtx.closeTab(id);
3256
+ }
3257
+ });
3258
+ }));
3259
+ app.post("/tabs/action", asyncBrowserRoute(async (req, res) => {
3260
+ const action = toStringOrEmpty(req.body?.action);
3261
+ const index = toNumber(req.body?.index);
3262
+ await withTabsProfileRoute({
3263
+ req,
3264
+ res,
3265
+ ctx,
3266
+ mapTabError: true,
3267
+ run: async (profileCtx) => {
3268
+ if (action === "list") {
3269
+ if (!await profileCtx.isReachable(300)) return res.json({
3270
+ ok: true,
3271
+ tabs: []
3272
+ });
3273
+ const tabs = await redactBlockedTabUrls({
3274
+ tabs: await profileCtx.listTabs(),
3275
+ ssrfPolicy: ctx.state().resolved.ssrfPolicy
3276
+ });
3277
+ return res.json({
3278
+ ok: true,
3279
+ tabs
3280
+ });
3281
+ }
3282
+ if (action === "new") {
3283
+ await profileCtx.ensureBrowserAvailable();
3284
+ const tab = await profileCtx.openTab("about:blank", { label: readOptionalTabLabel(req.body) });
3285
+ return res.json({
3286
+ ok: true,
3287
+ tab
3288
+ });
3289
+ }
3290
+ if (action === "label") {
3291
+ if (!await ensureBrowserRunning(profileCtx, res)) return;
3292
+ const targetId = parseRequiredTargetId(res, req.body?.targetId);
3293
+ if (!targetId) return;
3294
+ const label = readOptionalTabLabel(req.body);
3295
+ if (!label) return jsonError(res, 400, "label is required");
3296
+ const tab = await profileCtx.labelTab(targetId, label);
3297
+ return res.json({
3298
+ ok: true,
3299
+ tab
3300
+ });
3301
+ }
3302
+ if (action === "close") {
3303
+ if (!await ensureBrowserRunning(profileCtx, res)) return;
3304
+ const target = resolveIndexedTab(await profileCtx.listTabs(), index);
3305
+ if (!target) throw new BrowserTabNotFoundError();
3306
+ await profileCtx.closeTab(target.targetId);
3307
+ return res.json({
3308
+ ok: true,
3309
+ targetId: target.targetId
3310
+ });
3311
+ }
3312
+ if (action === "select") {
3313
+ if (typeof index !== "number") return jsonError(res, 400, "index is required");
3314
+ if (!await ensureBrowserRunning(profileCtx, res)) return;
3315
+ const target = (await profileCtx.listTabs())[index];
3316
+ if (!target) throw new BrowserTabNotFoundError();
3317
+ const ssrfPolicyOpts = browserNavigationPolicyForProfile(ctx, profileCtx);
3318
+ if (ssrfPolicyOpts.ssrfPolicy) await assertBrowserNavigationResultAllowed({
3319
+ url: target.url,
3320
+ ...ssrfPolicyOpts
3321
+ });
3322
+ await profileCtx.focusTab(target.targetId);
3323
+ return res.json({
3324
+ ok: true,
3325
+ targetId: target.targetId
3326
+ });
3327
+ }
3328
+ return jsonError(res, 400, "unknown tab action");
3329
+ }
3330
+ });
3331
+ }));
3332
+ }
3333
+ //#endregion
3334
+ //#region extensions/browser/src/browser/routes/index.ts
3335
+ function registerBrowserRoutes(app, ctx) {
3336
+ registerBrowserBasicRoutes(app, ctx);
3337
+ registerBrowserTabRoutes(app, ctx);
3338
+ registerBrowserAgentRoutes(app, ctx);
3339
+ }
3340
+ //#endregion
3341
+ export { registerBrowserRoutes as t };