@noxsoft/anima 2.0.2 → 2.0.4

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 (829) hide show
  1. package/README.md +1260 -28
  2. package/dist/accounts-Bth3PpPD.js +260 -0
  3. package/dist/accounts-D8CPKNkN.js +259 -0
  4. package/dist/acp-cli-ByK6lS6c.js +1081 -0
  5. package/dist/acp-cli-CaQCjIw4.js +1084 -0
  6. package/dist/agent-BgIkqd3F.js +725 -0
  7. package/dist/agent-N5BDcge4.js +725 -0
  8. package/dist/agent-events-COH7NDW2.js +182 -0
  9. package/dist/agent-scope-CPphqq-U.js +452 -0
  10. package/dist/agent-scope-DZgptr9J.js +452 -0
  11. package/dist/agent-scope-cj2QCT6R.js +112 -0
  12. package/dist/agents-NEudYMdg.js +774 -0
  13. package/dist/agents.config-Bujs-NIy.js +182 -0
  14. package/dist/agents.config-jp7OLssr.js +182 -0
  15. package/dist/argv-BMZMiW7v.js +73 -0
  16. package/dist/audit-C-UJhfdv.js +2401 -0
  17. package/dist/audit-CeCO7SK5.js +2401 -0
  18. package/dist/auth-BNZsOHGF.js +648 -0
  19. package/dist/auth-DMPZWzEa.js +639 -0
  20. package/dist/auth-choice-5VnaGMD-.js +2681 -0
  21. package/dist/auth-choice-DA2k4vs8.js +2681 -0
  22. package/dist/auth-health-B7FqA26_.js +149 -0
  23. package/dist/auth-health-VO_MPqVX.js +149 -0
  24. package/dist/auth-profiles-BDrNYX_n.js +1564 -0
  25. package/dist/auth-profiles-CxSHydjn.js +2689 -0
  26. package/dist/banner-BtDZPRzi.js +294 -0
  27. package/dist/browser-cli-8yQMpxb8.js +1679 -0
  28. package/dist/browser-cli-Czg3JtDH.js +1676 -0
  29. package/dist/build-info.json +3 -3
  30. package/dist/bundled/boot-md/handler.js +16 -16
  31. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  32. package/dist/bundled/command-logger/handler.js +1 -1
  33. package/dist/bundled/session-memory/handler.js +5 -5
  34. package/dist/call-BIzCaKZb.js +282 -0
  35. package/dist/call-BYDpTVCZ.js +282 -0
  36. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  37. package/dist/catalog-CqKiUgu6.js +185 -0
  38. package/dist/catalog-DMfEg-oK.js +185 -0
  39. package/dist/channel-options-BrtCtyrT.js +32 -0
  40. package/dist/channel-options-CO21Gl8p.js +33 -0
  41. package/dist/channel-selection-Bbm1lq3P.js +51 -0
  42. package/dist/channel-selection-CqcX7Ocw.js +51 -0
  43. package/dist/channel-web-DrsT6OAE.js +2162 -0
  44. package/dist/channels-cli-Juyh1S6n.js +1304 -0
  45. package/dist/channels-cli-zNvi1m5c.js +1306 -0
  46. package/dist/channels-status-issues-CqzqshW4.js +18 -0
  47. package/dist/channels-status-issues-DdJdO866.js +18 -0
  48. package/dist/chrome-C4dOMO8z.js +1601 -0
  49. package/dist/chrome-DdcDzAtH.js +1629 -0
  50. package/dist/chrome-U3DRzjJD.js +1601 -0
  51. package/dist/chunk-D2nLsrEW.js +348 -0
  52. package/dist/clack-prompter-BI3RDW5w.js +92 -0
  53. package/dist/clack-prompter-Dwr1m_IZ.js +92 -0
  54. package/dist/cli/daemon-cli.js +1 -1
  55. package/dist/cli-C3cpDaz8.js +99 -0
  56. package/dist/cli-CjWUGdGC.js +101 -0
  57. package/dist/cli-session-BVjY_XrW.js +5463 -0
  58. package/dist/cli-session-gtuYN2Iq.js +5408 -0
  59. package/dist/client-Dswwze5_.js +1692 -0
  60. package/dist/client-LRKFjo4A.js +1692 -0
  61. package/dist/clipboard-BZKS9O1u.js +31 -0
  62. package/dist/clipboard-DES8b1AM.js +31 -0
  63. package/dist/command-format-CP1YTNCl.js +52 -0
  64. package/dist/command-format-CVL4K5cj.js +52 -0
  65. package/dist/command-format-G6N2zghg.js +38 -0
  66. package/dist/command-registry-BBvNvysr.js +248 -0
  67. package/dist/commands-AZ3n8Y2c.js +726 -0
  68. package/dist/commands-BMnD_QRY.js +726 -0
  69. package/dist/commands-registry-cFqZ6Ib4.js +766 -0
  70. package/dist/commands-registry-q13H7ng5.js +766 -0
  71. package/dist/common-CX5458fH.js +287 -0
  72. package/dist/common-DJbnT8ws.js +287 -0
  73. package/dist/completion-cli-BADRBcIl.js +432 -0
  74. package/dist/completion-cli-DMQgiObF.js +431 -0
  75. package/dist/config-CU-Axg8P.js +5704 -0
  76. package/dist/config-DaqbUdkI.js +5705 -0
  77. package/dist/config-cli-BPlbwiuA.js +244 -0
  78. package/dist/config-cli-DXgZJkPU.js +247 -0
  79. package/dist/config-guard-Ba49JNds.js +76 -0
  80. package/dist/config-guard-Cu0qMKZJ.js +93 -0
  81. package/dist/config-kVVm5EYV.js +6523 -0
  82. package/dist/config-sync-CzLnLTXt.js +91 -0
  83. package/dist/config-sync-DuydxPWx.js +91 -0
  84. package/dist/configure-CHgacLyi.js +960 -0
  85. package/dist/configure-DfHXDa1L.js +959 -0
  86. package/dist/context-DzgXOckU.js +60 -0
  87. package/dist/control-service-8_wKHwBa.js +72 -0
  88. package/dist/control-service-BtL1Jto_.js +72 -0
  89. package/dist/cron-cli-BCzSR2c0.js +448 -0
  90. package/dist/cron-cli-CCWNkykU.js +451 -0
  91. package/dist/daemon-cli-Bjkbu9Vy.js +565 -0
  92. package/dist/daemon-cli-CmlHcC1J.js +566 -0
  93. package/dist/daemon-cli.js +16 -16
  94. package/dist/daemon-runtime-C0tz7VAC.js +460 -0
  95. package/dist/daemon-runtime-rUTqCVwJ.js +460 -0
  96. package/dist/deliver-BBggsviM.js +1097 -0
  97. package/dist/deliver-CePITOl8.js +1162 -0
  98. package/dist/deliver-DFnVaetP.js +1097 -0
  99. package/dist/delivery-queue-BJQK3oh5.js +220 -0
  100. package/dist/deps-CeEKhrp7.js +42 -0
  101. package/dist/devices-cli-DQrDMrZH.js +198 -0
  102. package/dist/devices-cli-Oe-A1Dv0.js +195 -0
  103. package/dist/diagnostics-DxMFrBLO.js +35 -0
  104. package/dist/diagnostics-m79ZlMmZ.js +35 -0
  105. package/dist/directory-cli-BL6h8cGF.js +246 -0
  106. package/dist/directory-cli-Cjgmi_sj.js +243 -0
  107. package/dist/dispatcher-DAFbQM-c.js +100 -0
  108. package/dist/dispatcher-DNd40gUn.js +100 -0
  109. package/dist/dist-CqDI82ei.js +929 -0
  110. package/dist/dist-DnHRxR5U.js +929 -0
  111. package/dist/dns-cli-CFtV3BXK.js +200 -0
  112. package/dist/dns-cli-NyIHvQ5S.js +197 -0
  113. package/dist/dock-BdXLb5oY.js +753 -0
  114. package/dist/dock-jYICmNcI.js +753 -0
  115. package/dist/docs-cli-CrOaIK_H.js +161 -0
  116. package/dist/docs-cli-D_cmJDSr.js +159 -0
  117. package/dist/doctor-BpGxKrBl.js +1815 -0
  118. package/dist/doctor-D12wNQPU.js +1813 -0
  119. package/dist/doctor-completion-DeOfofek.js +92 -0
  120. package/dist/doctor-completion-DwjqdEcK.js +92 -0
  121. package/dist/doctor-config-flow-BI3mpkbd.js +1232 -0
  122. package/dist/doctor-config-flow-wMHheFkC.js +1232 -0
  123. package/dist/engine-BCtL-AMw.js +563 -0
  124. package/dist/engine-Bk_UT413.js +563 -0
  125. package/dist/entry.js +5 -5
  126. package/dist/env-v6411I8h.js +32 -0
  127. package/dist/exec-B7sUS164.js +1167 -0
  128. package/dist/exec-approvals-CroGJRUg.js +1221 -0
  129. package/dist/exec-approvals-cli-BTxF_RsH.js +371 -0
  130. package/dist/exec-approvals-cli-n1gyGwH2.js +368 -0
  131. package/dist/exec-mhSykkaa.js +255 -0
  132. package/dist/extensionAPI.js +3 -3
  133. package/dist/frontmatter-BmHq0vRD.js +204 -0
  134. package/dist/gateway-cli-DDBadlrS.js +19971 -0
  135. package/dist/gateway-cli-IZNkOMBe.js +19972 -0
  136. package/dist/gateway-rpc-Dtx8HN-n.js +28 -0
  137. package/dist/gateway-rpc-L2PVSqGj.js +28 -0
  138. package/dist/github-copilot-auth-DKyqDaGU.js +1418 -0
  139. package/dist/github-copilot-auth-DXpOMSd3.js +1418 -0
  140. package/dist/gmail-setup-utils-BKNczIJ9.js +428 -0
  141. package/dist/gmail-setup-utils-co0ppccC.js +428 -0
  142. package/dist/health-Bm8ZTvC3.js +1253 -0
  143. package/dist/health-DUf1gt4E.js +1258 -0
  144. package/dist/health-format-BksT6F68.js +208 -0
  145. package/dist/health-format-uzh1xYLD.js +208 -0
  146. package/dist/heartbeat-visibility-1TJb1Zao.js +98 -0
  147. package/dist/heartbeat-visibility-CwodtdcX.js +98 -0
  148. package/dist/help-format-C6cv_aZp.js +17 -0
  149. package/dist/helpers-N-uSFKOn.js +10 -0
  150. package/dist/hooks-cli-1POsXqOl.js +993 -0
  151. package/dist/hooks-cli-BGjILbze.js +991 -0
  152. package/dist/hooks-status-DE07n5RC.js +356 -0
  153. package/dist/hooks-status-Du-d1jde.js +356 -0
  154. package/dist/image-ops-B_AYV3tp.js +541 -0
  155. package/dist/image-ops-Bp0C6Mvr.js +541 -0
  156. package/dist/index.js +82 -82
  157. package/dist/init-9A0s7bWG.js +122 -0
  158. package/dist/init-DoyCHJDC.js +122 -0
  159. package/dist/installs-D1C9wHAq.js +383 -0
  160. package/dist/installs-Dh4dHayM.js +383 -0
  161. package/dist/ipv4-DCItfaJo.js +1964 -0
  162. package/dist/ipv4-DSOUVx0i.js +1964 -0
  163. package/dist/lanes-BvSnHq2h.js +232 -0
  164. package/dist/lifecycle-core-BY4WIf9g.js +388 -0
  165. package/dist/lifecycle-core-TQKyXO-6.js +387 -0
  166. package/dist/links-CNu_8RZl.js +15 -0
  167. package/dist/links-D2tt2ouh.js +15 -0
  168. package/dist/llm-slug-generator.js +4 -4
  169. package/dist/logging-BIeRw0WR.js +15 -0
  170. package/dist/logging-C7lb3Vjc.js +15 -0
  171. package/dist/login-DXWKewA2.js +59 -0
  172. package/dist/login-Fhh4uWmf.js +61 -0
  173. package/dist/login-pPs3UO38.js +61 -0
  174. package/dist/login-qr-CevLD8cV.js +326 -0
  175. package/dist/login-qr-GF2JMIy-.js +323 -0
  176. package/dist/login-qr-ZYYKD6Yt.js +321 -0
  177. package/dist/logs-cli-CzXbX8HZ.js +242 -0
  178. package/dist/logs-cli-D9ngH9PF.js +245 -0
  179. package/dist/manager-BD5rA3w0.js +3244 -0
  180. package/dist/manager-BDPgBQSH.js +3246 -0
  181. package/dist/manager-DRWMWM--.js +3244 -0
  182. package/dist/manifest-registry-DbvPaBXY.js +748 -0
  183. package/dist/manifest-registry-kHX_MFa1.js +748 -0
  184. package/dist/markdown-tables-CqwihY2m.js +347 -0
  185. package/dist/markdown-tables-DJV7eAJZ.js +348 -0
  186. package/dist/media-lUqN-0O9.js +1342 -0
  187. package/dist/memory-cli-BLXSpgnN.js +868 -0
  188. package/dist/memory-cli-BcGVkkRJ.js +869 -0
  189. package/dist/message-channel-D_jIO87f.js +110 -0
  190. package/dist/migrate-BpVOar4L.js +157 -0
  191. package/dist/migrate-CkgGDkWy.js +157 -0
  192. package/dist/model-selection-Cqt6aJ0G.js +2691 -0
  193. package/dist/models-CExsNQPH.js +2510 -0
  194. package/dist/models-cli-Ba3Jmwev.js +2739 -0
  195. package/dist/models-cli-iDAlsbL2.js +258 -0
  196. package/dist/net-0A_zcaQD.js +218 -0
  197. package/dist/node-cli-ATmwCXIk.js +1319 -0
  198. package/dist/node-cli-DYFR_V25.js +1322 -0
  199. package/dist/node-service-CN4LqR1A.js +67 -0
  200. package/dist/node-service-CWt3MdSC.js +67 -0
  201. package/dist/nodes-cli-BeVmhTz3.js +1197 -0
  202. package/dist/nodes-cli-QeJIfa18.js +1200 -0
  203. package/dist/nodes-screen-DHyWAlla.js +234 -0
  204. package/dist/nodes-screen-qs3jRBPk.js +234 -0
  205. package/dist/note-CSlg2BnB.js +73 -0
  206. package/dist/note-Ctvglhp1.js +73 -0
  207. package/dist/npm-registry-spec-DQd4M22q.js +351 -0
  208. package/dist/npm-registry-spec-PxisIMts.js +351 -0
  209. package/dist/onboard-DeruD10m.js +1166 -0
  210. package/dist/onboard-SAcu5N6N.js +1165 -0
  211. package/dist/onboard-channels-C4iSfFXR.js +672 -0
  212. package/dist/onboard-channels-oVTVgoyg.js +672 -0
  213. package/dist/onboard-helpers-B8roRwLP.js +365 -0
  214. package/dist/onboard-helpers-Dgh26hgP.js +365 -0
  215. package/dist/onboarding-Bi-ac8we.js +911 -0
  216. package/dist/onboarding-C2gjB2u8.js +910 -0
  217. package/dist/orchestrator-DlbAYMQP.js +357 -0
  218. package/dist/orchestrator-DlwVRVDA.js +357 -0
  219. package/dist/outbound-CkKgc6iR.js +2062 -0
  220. package/dist/outbound-Vfm5yDh3.js +214 -0
  221. package/dist/outbound-bs_VK51X.js +214 -0
  222. package/dist/outbound-send-deps-DDjiMfEL.js +55 -0
  223. package/dist/pairing-cli-CJYeuEik.js +118 -0
  224. package/dist/pairing-cli-mqopHI8s.js +121 -0
  225. package/dist/pairing-store-BsXzUDPv.js +388 -0
  226. package/dist/pairing-store-DoNj00-X.js +388 -0
  227. package/dist/path-env-C_xpiG8l.js +89 -0
  228. package/dist/path-env-DSSMHu5A.js +89 -0
  229. package/dist/paths-B1vRVCad.js +126 -0
  230. package/dist/paths-BMuHNFxg.js +238 -0
  231. package/dist/paths-BXQQzXGQ.js +129 -0
  232. package/dist/paths-Buw_geoe.js +54 -0
  233. package/dist/paths-DA9WYabg.js +222 -0
  234. package/dist/paths-DfQGx0_k.js +129 -0
  235. package/dist/pi-auth-json-DOPW3e4X.js +78 -0
  236. package/dist/pi-auth-json-MruLmI_X.js +82 -0
  237. package/dist/pi-auth-json-lae_wwwo.js +80 -0
  238. package/dist/pi-model-discovery-7q0GxMrp.js +3 -0
  239. package/dist/pi-tools.policy-Csmla32P.js +200 -0
  240. package/dist/pi-tools.policy-xYdDLEv9.js +200 -0
  241. package/dist/plugin-auto-enable-CViVVWgg.js +282 -0
  242. package/dist/plugin-auto-enable-CjZ238UI.js +282 -0
  243. package/dist/plugin-registry-B4Aw2hzq.js +32 -0
  244. package/dist/plugin-registry-DW81arxW.js +32 -0
  245. package/dist/plugin-sdk/cli/cli-name.d.ts +1 -1
  246. package/dist/plugin-sdk/config/paths.d.ts +2 -2
  247. package/dist/plugin-sdk/index.js +7 -7
  248. package/dist/plugins-DhcGAPDB.js +38 -0
  249. package/dist/plugins-DtghNRtM.js +168 -0
  250. package/dist/plugins-cli-4vWTmOAb.js +736 -0
  251. package/dist/plugins-cli-CdTMbP0X.js +734 -0
  252. package/dist/polls-D6eCdatA.js +1343 -0
  253. package/dist/ports-BtZx-JKD.js +96 -0
  254. package/dist/ports-C8bKN8s0.js +96 -0
  255. package/dist/ports-DHiKnPRX.js +344 -0
  256. package/dist/ports-vd93M_Pt.js +317 -0
  257. package/dist/program-CX3aUVeb.js +176 -0
  258. package/dist/program-context-BPos0ivo.js +496 -0
  259. package/dist/progress-oiAjiiNi.js +133 -0
  260. package/dist/prompt-style-Cm4wOtKm.js +9 -0
  261. package/dist/pw-ai-4QbK5YFe.js +1865 -0
  262. package/dist/pw-ai-BWz3Cxt7.js +1868 -0
  263. package/dist/pw-ai-C83HBue2.js +1867 -0
  264. package/dist/qmd-manager-BcMeZiGD.js +938 -0
  265. package/dist/qmd-manager-CPypGJ0P.js +935 -0
  266. package/dist/qmd-manager-CRrSkfia.js +937 -0
  267. package/dist/register.agent-DDY8KJhn.js +265 -0
  268. package/dist/register.agent-DKawm-9d.js +1003 -0
  269. package/dist/register.anima-CEWUo29k.js +193 -0
  270. package/dist/register.anima-DBWz2rk_.js +193 -0
  271. package/dist/register.configure-BX67qV8k.js +103 -0
  272. package/dist/register.configure-CWsySuiq.js +101 -0
  273. package/dist/register.maintenance-0k-ZNhDg.js +543 -0
  274. package/dist/register.maintenance-BIwx1fzX.js +543 -0
  275. package/dist/register.message-CXPsoakA.js +657 -0
  276. package/dist/register.message-DA3jvfgI.js +660 -0
  277. package/dist/register.onboard-C4HG7Hqv.js +170 -0
  278. package/dist/register.onboard-GOpdif-j.js +170 -0
  279. package/dist/register.setup-B17vZT7C.js +175 -0
  280. package/dist/register.setup-GJyUDCqh.js +175 -0
  281. package/dist/register.status-health-sessions-D5876dGx.js +313 -0
  282. package/dist/register.status-health-sessions-lOewVIZR.js +142 -0
  283. package/dist/register.subclis-Dwnujj5C.js +255 -0
  284. package/dist/reply-CR5T_oQJ.js +32212 -0
  285. package/dist/reply-prefix-BcrS4Umd.js +100 -0
  286. package/dist/reply-prefix-Btb5o2NH.js +100 -0
  287. package/dist/reply-r089HuRA.js +32212 -0
  288. package/dist/routes-B4czFzIb.js +1820 -0
  289. package/dist/routes-ucJWAk5O.js +1820 -0
  290. package/dist/rpc-BnKxnQ0v.js +70 -0
  291. package/dist/rpc-DgE-xnyx.js +70 -0
  292. package/dist/run-main-B74kv84C.js +371 -0
  293. package/dist/runtime-guard-CKFdts2L.js +60 -0
  294. package/dist/sandbox-CJTS3er6.js +858 -0
  295. package/dist/sandbox-DBSiVHt_.js +859 -0
  296. package/dist/sandbox-cli-CrkjyU5M.js +461 -0
  297. package/dist/sandbox-cli-D1r5y6Sz.js +458 -0
  298. package/dist/security-cli-BZUdnkhn.js +462 -0
  299. package/dist/security-cli-DS09ebvA.js +465 -0
  300. package/dist/server-context-C0xZbYhg.js +824 -0
  301. package/dist/server-context-DVh2z7om.js +824 -0
  302. package/dist/server-node-events-bu9lpkMH.js +233 -0
  303. package/dist/server-node-events-i1Rrww31.js +231 -0
  304. package/dist/service-CJJwLEor.js +642 -0
  305. package/dist/service-DxLxBhaU.js +642 -0
  306. package/dist/service-audit-DB4Y3Ekp.js +488 -0
  307. package/dist/service-audit-M8y4TXVb.js +488 -0
  308. package/dist/session-CGxOLFs2.js +179 -0
  309. package/dist/session-DTTbdKb0.js +181 -0
  310. package/dist/session-cost-usage-FcdJl9c3.js +600 -0
  311. package/dist/session-cost-usage-qdfsGU2a.js +600 -0
  312. package/dist/session-yOhWcsD2.js +181 -0
  313. package/dist/sessions-B-Cu7JZq.js +1296 -0
  314. package/dist/sessions-BgLN4KFr.js +180 -0
  315. package/dist/sessions-CnRjwdVr.js +1296 -0
  316. package/dist/sessions-wRKla1Qh.js +2038 -0
  317. package/dist/shared-DS3UaJSP.js +66 -0
  318. package/dist/shared-DxNHzky3.js +77 -0
  319. package/dist/shared-Qpt4hUDi.js +66 -0
  320. package/dist/shared-kzrojZ1B.js +77 -0
  321. package/dist/skill-scanner-DLJji5Ye.js +263 -0
  322. package/dist/skills-BWFIEp4j.js +807 -0
  323. package/dist/skills-DV4zKdCx.js +808 -0
  324. package/dist/skills-cli-BY53ILm2.js +289 -0
  325. package/dist/skills-cli-CO3gxl8A.js +286 -0
  326. package/dist/skills-status-DX5pcqY3.js +166 -0
  327. package/dist/skills-status-zhcKzGkp.js +166 -0
  328. package/dist/sqlite-B6MojU1I.js +321 -0
  329. package/dist/sqlite-CuprTGR7.js +453 -0
  330. package/dist/sqlite-dzD-jMjs.js +368 -0
  331. package/dist/start-Cu3aLoSf.js +297 -0
  332. package/dist/start-Dz7tMAl8.js +296 -0
  333. package/dist/status-CaSxhxfV.js +2132 -0
  334. package/dist/status-D2C0JCX3.js +2137 -0
  335. package/dist/status-DlFMsQzh.js +27 -0
  336. package/dist/status-G0CITnKR.js +27 -0
  337. package/dist/status.update-CHjhVxJY.js +79 -0
  338. package/dist/status.update-DVFelehi.js +79 -0
  339. package/dist/subagent-registry-3Xb4el-8.js +14 -0
  340. package/dist/subagent-registry-CdSjz14I.js +2760 -0
  341. package/dist/subagent-registry-DNDhbHWi.js +2759 -0
  342. package/dist/subsystem-DfKstnEK.js +860 -0
  343. package/dist/system-cli-B5mt0FWa.js +82 -0
  344. package/dist/system-cli-Dg3UQ3Zz.js +79 -0
  345. package/dist/systemd-B43AvOGx.js +452 -0
  346. package/dist/systemd-RpPE0XGg.js +452 -0
  347. package/dist/systemd-hints-DMJT-Bbc.js +36 -0
  348. package/dist/systemd-hints-vRInKcz9.js +36 -0
  349. package/dist/systemd-linger-Dzyxqsod.js +75 -0
  350. package/dist/systemd-linger-EujbmI5A.js +75 -0
  351. package/dist/table-DhXHfRX2.js +279 -0
  352. package/dist/table-bWCLW-3P.js +279 -0
  353. package/dist/timeout-Ddn-5kAO.js +232 -0
  354. package/dist/tokens-3psI_Qk2.js +14 -0
  355. package/dist/tokens-BaM53PEx.js +14 -0
  356. package/dist/trash-Bmxs1Rnm.js +23 -0
  357. package/dist/trash-C39a6hKA.js +23 -0
  358. package/dist/tui-BHgBWhHE.js +3894 -0
  359. package/dist/tui-cli-B9Sq5-cC.js +50 -0
  360. package/dist/tui-cli-Dw7v4JoJ.js +47 -0
  361. package/dist/tui-mUwDwqvd.js +3894 -0
  362. package/dist/update-DF0GHG0j.js +317 -0
  363. package/dist/update-DoZLVjva.js +317 -0
  364. package/dist/update-check-Bt1dVPVN.js +400 -0
  365. package/dist/update-check-D5qAKes7.js +400 -0
  366. package/dist/update-cli-BNu2Oi7H.js +1105 -0
  367. package/dist/update-cli-D36AmALA.js +1105 -0
  368. package/dist/update-runner-CNQQaTwA.js +894 -0
  369. package/dist/update-runner-CvxZmbu-.js +894 -0
  370. package/dist/usage-BGCwNnjk.js +4516 -0
  371. package/dist/utils-DZ8pnOD5.js +243 -0
  372. package/dist/web-B5QG839O.js +46842 -0
  373. package/dist/web-Cmnvk9v0.js +2203 -0
  374. package/dist/web-Cv2KnTnL.js +63 -0
  375. package/dist/webhooks-cli-B6y89Pj_.js +319 -0
  376. package/dist/webhooks-cli-BDzHON4w.js +316 -0
  377. package/dist/whatsapp-actions-C_5MwVxM.js +45 -0
  378. package/dist/whatsapp-actions-hgYA12To.js +53 -0
  379. package/dist/whatsapp-actions-zTiVOoOV.js +49 -0
  380. package/dist/widearea-dns-BeIdnISJ.js +127 -0
  381. package/dist/widearea-dns-CF1gxpJ-.js +127 -0
  382. package/dist/workspace-DLna1IxR.js +649 -0
  383. package/dist/ws-log-Q4wO1Ztb.js +267 -0
  384. package/dist/ws-log-xF0kxDzp.js +267 -0
  385. package/package.json +1 -2
  386. package/dist/accounts-Cc5E4IDO.js +0 -260
  387. package/dist/accounts-CcVrwKqv.js +0 -259
  388. package/dist/acp-cli-DvphOKuh.js +0 -1081
  389. package/dist/acp-cli-p28pQ65a.js +0 -1084
  390. package/dist/agent-Cj7uDJaZ.js +0 -725
  391. package/dist/agent-Cuj9-2sT.js +0 -725
  392. package/dist/agent-events-BEBQsyE5.js +0 -182
  393. package/dist/agent-scope-BVf4aSwY.js +0 -112
  394. package/dist/agent-scope-OZi7lb8S.js +0 -452
  395. package/dist/agent-scope-V1bi9OYL.js +0 -452
  396. package/dist/agents-BUWqn_Ui.js +0 -774
  397. package/dist/agents.config-Dvo2ULxs.js +0 -182
  398. package/dist/agents.config-d6H0_3oj.js +0 -182
  399. package/dist/argv-DqUHKf0o.js +0 -73
  400. package/dist/audit-C6okOOSh.js +0 -2401
  401. package/dist/audit-VWjIdwC7.js +0 -2401
  402. package/dist/auth-91o2YM96.js +0 -648
  403. package/dist/auth-choice-CAmACV13.js +0 -2681
  404. package/dist/auth-choice-p3SeHPj2.js +0 -2681
  405. package/dist/auth-health-B_jXrWe6.js +0 -149
  406. package/dist/auth-health-DCicUKYR.js +0 -149
  407. package/dist/auth-lZ26wsbN.js +0 -639
  408. package/dist/auth-profiles-CCDD56dU.js +0 -1564
  409. package/dist/auth-profiles-DxI8L7bs.js +0 -2689
  410. package/dist/banner-Cohn04J6.js +0 -294
  411. package/dist/browser-cli-DANzjztE.js +0 -1676
  412. package/dist/browser-cli-WjsVH741.js +0 -1679
  413. package/dist/call-BAHvlu2G.js +0 -282
  414. package/dist/call-Ct7EGP_L.js +0 -282
  415. package/dist/catalog-BAayBt1L.js +0 -185
  416. package/dist/catalog-BNsf97BM.js +0 -185
  417. package/dist/channel-options-Dx9nPlX8.js +0 -33
  418. package/dist/channel-options-ZdvXrTGs.js +0 -32
  419. package/dist/channel-selection-CujyiWGM.js +0 -51
  420. package/dist/channel-selection-DfGpCyh2.js +0 -51
  421. package/dist/channel-web-CC0hkgkR.js +0 -2162
  422. package/dist/channels-cli-D7lNBpIb.js +0 -1304
  423. package/dist/channels-cli-DUPG8WDv.js +0 -1306
  424. package/dist/channels-status-issues-DBc1pU_R.js +0 -18
  425. package/dist/channels-status-issues-DjO9MHIG.js +0 -18
  426. package/dist/chrome-Bi6iZ5sG.js +0 -1601
  427. package/dist/chrome-DNSv7Cpy.js +0 -1629
  428. package/dist/chrome-DScZx4Lk.js +0 -1601
  429. package/dist/chunk-mxPVo000.js +0 -348
  430. package/dist/clack-prompter-B0kl7shw.js +0 -92
  431. package/dist/clack-prompter-B1YxZdRy.js +0 -92
  432. package/dist/cli-CfHUkOD0.js +0 -101
  433. package/dist/cli-ClMrIh6l.js +0 -99
  434. package/dist/cli-session-BkPTd9Pk.js +0 -5463
  435. package/dist/cli-session-Dd8DKb5a.js +0 -5408
  436. package/dist/client-C1avc0vD.js +0 -1692
  437. package/dist/client-CC94YZrT.js +0 -1692
  438. package/dist/clipboard-B2fBy8tG.js +0 -31
  439. package/dist/clipboard-BbGnZskJ.js +0 -31
  440. package/dist/command-format-Clp46jkj.js +0 -38
  441. package/dist/command-format-DELazozB.js +0 -52
  442. package/dist/command-format-SkzzRqR1.js +0 -52
  443. package/dist/command-registry-DZ4hkmA0.js +0 -248
  444. package/dist/commands-DtYZJSPn.js +0 -568
  445. package/dist/commands-Dujk1JmY.js +0 -568
  446. package/dist/commands-registry-Bd0xbvwG.js +0 -766
  447. package/dist/commands-registry-DYfRSVF3.js +0 -766
  448. package/dist/common-D6bu0zHC.js +0 -287
  449. package/dist/common-zW9Y2P1B.js +0 -287
  450. package/dist/completion-cli-tSe7Pmqm.js +0 -431
  451. package/dist/completion-cli-vn4IScs5.js +0 -432
  452. package/dist/config-C8rUDJXY.js +0 -5704
  453. package/dist/config-CLZ_XGVw.js +0 -6523
  454. package/dist/config-SY8M0kM_.js +0 -5705
  455. package/dist/config-cli-1V7D2Wsw.js +0 -247
  456. package/dist/config-cli-CjWEC81L.js +0 -244
  457. package/dist/config-guard-BW2gpKj_.js +0 -93
  458. package/dist/config-guard-BvxuzHpo.js +0 -76
  459. package/dist/config-sync-CoIIbEOe.js +0 -91
  460. package/dist/config-sync-DvAttep0.js +0 -91
  461. package/dist/configure-Bf0oupCE.js +0 -959
  462. package/dist/configure-DRM-7zFf.js +0 -960
  463. package/dist/context-D5iEFzv9.js +0 -60
  464. package/dist/control-service-C8m8F9pr.js +0 -72
  465. package/dist/control-service-DKotCWCg.js +0 -72
  466. package/dist/cron-cli-DB_FLYHD.js +0 -448
  467. package/dist/cron-cli-bxm5lrrO.js +0 -451
  468. package/dist/daemon-cli-1LsOnICv.js +0 -566
  469. package/dist/daemon-cli-CC2NrJ7a.js +0 -565
  470. package/dist/daemon-runtime-BXZhtBL9.js +0 -460
  471. package/dist/daemon-runtime-DW4USC7r.js +0 -460
  472. package/dist/deliver-B4HuPwJA.js +0 -1162
  473. package/dist/deliver-LiY5oL52.js +0 -1097
  474. package/dist/deliver-xrmk7xjh.js +0 -1097
  475. package/dist/delivery-queue-TnQykYsg.js +0 -220
  476. package/dist/deps-CMMOiOsF.js +0 -42
  477. package/dist/devices-cli-Be5he2SA.js +0 -195
  478. package/dist/devices-cli-z6ecoFe9.js +0 -198
  479. package/dist/diagnostics-Dj75aEHN.js +0 -35
  480. package/dist/diagnostics-DlIw6fqD.js +0 -35
  481. package/dist/directory-cli-CEy-0nxj.js +0 -243
  482. package/dist/directory-cli-DpzKcigr.js +0 -246
  483. package/dist/dispatcher-10Shiuz3.js +0 -100
  484. package/dist/dispatcher-3Jae6AiW.js +0 -100
  485. package/dist/dns-cli-Bat1pkc-.js +0 -200
  486. package/dist/dns-cli-NohNyEo0.js +0 -197
  487. package/dist/dock-DbxBBv30.js +0 -753
  488. package/dist/dock-cPBY4qGl.js +0 -753
  489. package/dist/docs-cli-BWp6p-Tq.js +0 -161
  490. package/dist/docs-cli-x22FnZfL.js +0 -159
  491. package/dist/doctor-BrT5m_on.js +0 -1815
  492. package/dist/doctor-Pp2HVnjM.js +0 -1813
  493. package/dist/doctor-completion-DNTimX9o.js +0 -92
  494. package/dist/doctor-completion-ylN9QAJ6.js +0 -92
  495. package/dist/doctor-config-flow-D1w3700T.js +0 -1232
  496. package/dist/doctor-config-flow-Dq50iE1R.js +0 -1232
  497. package/dist/engine-B9avUJL5.js +0 -563
  498. package/dist/engine-BiUQ25D4.js +0 -563
  499. package/dist/env-0lJfCPsw.js +0 -32
  500. package/dist/exec-BenD3A5l.js +0 -1167
  501. package/dist/exec-Bv3pyjeM.js +0 -255
  502. package/dist/exec-approvals-CdLmKX2R.js +0 -1221
  503. package/dist/exec-approvals-cli-DXfV6G8H.js +0 -368
  504. package/dist/exec-approvals-cli-J2cZs10o.js +0 -371
  505. package/dist/frontmatter-YijVi0FQ.js +0 -204
  506. package/dist/gateway-cli-DOAbA0pc.js +0 -19972
  507. package/dist/gateway-cli-QpWtBhQy.js +0 -19971
  508. package/dist/gateway-rpc-DJKBil9s.js +0 -28
  509. package/dist/gateway-rpc-DVterpLP.js +0 -28
  510. package/dist/github-copilot-auth-4IUFp669.js +0 -1418
  511. package/dist/github-copilot-auth-C9E0IROs.js +0 -1418
  512. package/dist/gmail-setup-utils-BPo_LkKI.js +0 -428
  513. package/dist/gmail-setup-utils-D3Yqgor7.js +0 -428
  514. package/dist/health-BeZnqp6m.js +0 -1258
  515. package/dist/health-Cn2OoVWZ.js +0 -1253
  516. package/dist/health-format-CdP99j3Y.js +0 -208
  517. package/dist/health-format-JEChH08S.js +0 -208
  518. package/dist/heartbeat-visibility-BL3WAchI.js +0 -98
  519. package/dist/heartbeat-visibility-CQ9QimI7.js +0 -98
  520. package/dist/help-format-Dl4bsrLI.js +0 -17
  521. package/dist/helpers-ZKNRexvX.js +0 -10
  522. package/dist/hooks-cli-D99hXt7K.js +0 -991
  523. package/dist/hooks-cli-DMB8RiEO.js +0 -993
  524. package/dist/hooks-status-B-e96dZj.js +0 -356
  525. package/dist/hooks-status-C_9sE0ox.js +0 -356
  526. package/dist/image-ops-Dlt3T7th.js +0 -541
  527. package/dist/image-ops-omlvdfah.js +0 -541
  528. package/dist/init-Bm04RagW.js +0 -122
  529. package/dist/init-CaJBf4p1.js +0 -122
  530. package/dist/installs-C2iMRBVz.js +0 -383
  531. package/dist/installs-D-cPGdCw.js +0 -383
  532. package/dist/ipv4-Bf7NS3QU.js +0 -1964
  533. package/dist/ipv4-wWNs8IH_.js +0 -1964
  534. package/dist/lanes-CNxj3tit.js +0 -232
  535. package/dist/lifecycle-core-B_7XRcvF.js +0 -388
  536. package/dist/lifecycle-core-By83PVAK.js +0 -387
  537. package/dist/links-BfjHVTB_.js +0 -15
  538. package/dist/links-DPGe0OHw.js +0 -15
  539. package/dist/logging-DB6BQmhi.js +0 -15
  540. package/dist/logging-mcb66J0p.js +0 -15
  541. package/dist/login-BDCg6D0N.js +0 -61
  542. package/dist/login-BDfnbjnZ.js +0 -59
  543. package/dist/login-BqH1itcg.js +0 -61
  544. package/dist/login-qr-CyOw3R4r.js +0 -321
  545. package/dist/login-qr-D8ECtb72.js +0 -323
  546. package/dist/login-qr-RnR7e4Bw.js +0 -326
  547. package/dist/logs-cli--j89L74J.js +0 -245
  548. package/dist/logs-cli-DpEMg_Gq.js +0 -242
  549. package/dist/manager-B4OyvcxT.js +0 -3244
  550. package/dist/manager-Cqc1CeH7.js +0 -3246
  551. package/dist/manager-DUyQPFvj.js +0 -3244
  552. package/dist/manifest-registry-CW1zCyRF.js +0 -748
  553. package/dist/manifest-registry-D4lM2RdV.js +0 -748
  554. package/dist/markdown-tables-BT1X6jqH.js +0 -347
  555. package/dist/markdown-tables-DHgOK2vI.js +0 -348
  556. package/dist/media-THyainiE.js +0 -1342
  557. package/dist/memory-cli-BKocCWXM.js +0 -868
  558. package/dist/memory-cli-Jmma-xI_.js +0 -869
  559. package/dist/message-channel-dSTVVCyX.js +0 -110
  560. package/dist/migrate-BR6iAIjO.js +0 -157
  561. package/dist/migrate-D0EcMs0f.js +0 -157
  562. package/dist/model-selection-YcSr9CgC.js +0 -2691
  563. package/dist/models-1vUQBVfw.js +0 -2510
  564. package/dist/models-cli-BK3BwUhL.js +0 -2739
  565. package/dist/models-cli-DECrM8oA.js +0 -258
  566. package/dist/net-B5lXhYLV.js +0 -218
  567. package/dist/node-cli-cLHUNpPD.js +0 -1319
  568. package/dist/node-cli-fO7Y132S.js +0 -1322
  569. package/dist/node-service-BFxHJsno.js +0 -67
  570. package/dist/node-service-DUnan4uK.js +0 -67
  571. package/dist/nodes-cli-BCq35E6N.js +0 -1200
  572. package/dist/nodes-cli-vD7MwAKP.js +0 -1197
  573. package/dist/nodes-screen-1YiLkqr5.js +0 -234
  574. package/dist/nodes-screen-DZeD8hE5.js +0 -234
  575. package/dist/note-Bi8Wb8DV.js +0 -73
  576. package/dist/note-uiuPxhyX.js +0 -73
  577. package/dist/npm-registry-spec-B-XIShkB.js +0 -351
  578. package/dist/npm-registry-spec-za3itb5Y.js +0 -351
  579. package/dist/onboard-Ds6w_sWo.js +0 -1165
  580. package/dist/onboard-SAVx3bp4.js +0 -1166
  581. package/dist/onboard-channels-Cg_EkBa4.js +0 -672
  582. package/dist/onboard-channels-D7NbA55V.js +0 -672
  583. package/dist/onboard-helpers-DO_hgZb9.js +0 -365
  584. package/dist/onboard-helpers-_XgJgeqh.js +0 -365
  585. package/dist/onboarding-3hLmDd0r.js +0 -911
  586. package/dist/onboarding-B4LKLsbU.js +0 -910
  587. package/dist/orchestrator-BKzmyBWy.js +0 -357
  588. package/dist/orchestrator-BN3QCz2s.js +0 -357
  589. package/dist/outbound-BgA9hNlP.js +0 -2062
  590. package/dist/outbound-CjdvVhUI.js +0 -214
  591. package/dist/outbound-DOGe6qb2.js +0 -214
  592. package/dist/outbound-send-deps-Du5aBpd7.js +0 -55
  593. package/dist/pairing-cli-2vnyg_Nd.js +0 -118
  594. package/dist/pairing-cli-BH1KQtNV.js +0 -121
  595. package/dist/pairing-store-DJz_9Gv0.js +0 -388
  596. package/dist/pairing-store-DmOzxcuk.js +0 -388
  597. package/dist/path-env-Bu6k0jDQ.js +0 -89
  598. package/dist/path-env-C0zQSjw8.js +0 -89
  599. package/dist/paths-BTc4nk-6.js +0 -126
  600. package/dist/paths-BgUi2Z2G.js +0 -54
  601. package/dist/paths-C6VCWKo3.js +0 -238
  602. package/dist/paths-CCxa0o9c.js +0 -222
  603. package/dist/paths-CxRf2rBG.js +0 -129
  604. package/dist/paths-hcX1Gqg5.js +0 -129
  605. package/dist/pi-auth-json-B68R7q7_.js +0 -82
  606. package/dist/pi-auth-json-CR0jXAgq.js +0 -78
  607. package/dist/pi-auth-json-ZYzi3nxs.js +0 -80
  608. package/dist/pi-model-discovery-Cxs4pvC2.js +0 -3
  609. package/dist/pi-tools.policy-D81U5xy0.js +0 -200
  610. package/dist/pi-tools.policy-DSHkkb5b.js +0 -200
  611. package/dist/plugin-auto-enable-CxF4bpDN.js +0 -282
  612. package/dist/plugin-auto-enable-jNaAeyEh.js +0 -282
  613. package/dist/plugin-registry-C7XWotZG.js +0 -32
  614. package/dist/plugin-registry-DcUCbGax.js +0 -32
  615. package/dist/plugins-B362e77G.js +0 -168
  616. package/dist/plugins-CmSUIUNi.js +0 -38
  617. package/dist/plugins-cli-BsCEnoQ7.js +0 -734
  618. package/dist/plugins-cli-QSIsMUG7.js +0 -736
  619. package/dist/polls-CItfB1H8.js +0 -1343
  620. package/dist/ports-BVLMN1Sr.js +0 -96
  621. package/dist/ports-CqLSlU6Z.js +0 -317
  622. package/dist/ports-D94CwCrv.js +0 -344
  623. package/dist/ports-D_NHthOz.js +0 -96
  624. package/dist/program-DkJHjI0R.js +0 -176
  625. package/dist/program-context-DnyGM2SC.js +0 -496
  626. package/dist/progress-Bek_GyWS.js +0 -133
  627. package/dist/prompt-style-lu0clOOE.js +0 -9
  628. package/dist/pw-ai-BLVMuSLv.js +0 -1867
  629. package/dist/pw-ai-DZJWEF_f.js +0 -1865
  630. package/dist/pw-ai-dzf-ptcn.js +0 -1868
  631. package/dist/qmd-manager-Cur_Ekn0.js +0 -937
  632. package/dist/qmd-manager-DNAUuwjK.js +0 -938
  633. package/dist/qmd-manager-DepEoASu.js +0 -935
  634. package/dist/register.agent-CSWvzOkR.js +0 -265
  635. package/dist/register.agent-UeH2NXmH.js +0 -1003
  636. package/dist/register.anima-DOdee0dh.js +0 -193
  637. package/dist/register.anima-HHDWsz6r.js +0 -193
  638. package/dist/register.configure-CSJFxdz9.js +0 -103
  639. package/dist/register.configure-D84Fvcz4.js +0 -101
  640. package/dist/register.maintenance-B3pvNbZb.js +0 -543
  641. package/dist/register.maintenance-BKVOwkw6.js +0 -543
  642. package/dist/register.message-BAO6CPl2.js +0 -657
  643. package/dist/register.message-OXoOKE_6.js +0 -660
  644. package/dist/register.onboard-BK_ixVmD.js +0 -170
  645. package/dist/register.onboard-cfCaPx6j.js +0 -170
  646. package/dist/register.setup-BGfDnzph.js +0 -175
  647. package/dist/register.setup-Y-Q74M-0.js +0 -175
  648. package/dist/register.status-health-sessions-CT14eitH.js +0 -142
  649. package/dist/register.status-health-sessions-TfZMzAUn.js +0 -313
  650. package/dist/register.subclis-BZwdlNHC.js +0 -255
  651. package/dist/reply-mlsExaZm.js +0 -32212
  652. package/dist/reply-prefix-B0CfR4bM.js +0 -100
  653. package/dist/reply-prefix-w4a39ybC.js +0 -100
  654. package/dist/reply-qalRISe_.js +0 -32212
  655. package/dist/routes-CENsHJyg.js +0 -1820
  656. package/dist/routes-DO0HqW2e.js +0 -1820
  657. package/dist/rpc-C0pjNhBi.js +0 -70
  658. package/dist/rpc-DZ44PIXE.js +0 -70
  659. package/dist/run-main-BMpKw8Mp.js +0 -371
  660. package/dist/runtime-guard-BSUFiAQV.js +0 -60
  661. package/dist/sandbox-BIGfMYEI.js +0 -858
  662. package/dist/sandbox-DxP3IpUP.js +0 -859
  663. package/dist/sandbox-cli-DtLGH8sL.js +0 -461
  664. package/dist/sandbox-cli-_Tg7lfJ_.js +0 -458
  665. package/dist/security-cli-BRwgbedo.js +0 -462
  666. package/dist/security-cli-D3bSuyZt.js +0 -465
  667. package/dist/server-context-49XFFxFg.js +0 -824
  668. package/dist/server-context-LrlgrZzS.js +0 -824
  669. package/dist/server-node-events-Dm52i7NW.js +0 -231
  670. package/dist/server-node-events-QX523UyF.js +0 -233
  671. package/dist/service-BNVpYcQe.js +0 -642
  672. package/dist/service-D56aMXUB.js +0 -642
  673. package/dist/service-audit-D0X_XAB2.js +0 -488
  674. package/dist/service-audit-qmf6XMmP.js +0 -488
  675. package/dist/session-CrQQLLhx.js +0 -179
  676. package/dist/session-LocsOOWJ.js +0 -181
  677. package/dist/session-Vlce2BAT.js +0 -181
  678. package/dist/session-cost-usage-BwiTZuKl.js +0 -600
  679. package/dist/session-cost-usage-DT9YNXTJ.js +0 -600
  680. package/dist/sessions-BfV53TbG.js +0 -1296
  681. package/dist/sessions-BimpX_km.js +0 -180
  682. package/dist/sessions-DcXpzig0.js +0 -1296
  683. package/dist/sessions-Wd18dukK.js +0 -2038
  684. package/dist/shared-Bsr69u_7.js +0 -77
  685. package/dist/shared-Cgly1vPb.js +0 -66
  686. package/dist/shared-JOo05hST.js +0 -66
  687. package/dist/shared-f7dvQsi7.js +0 -77
  688. package/dist/skill-scanner-CkaVLABv.js +0 -263
  689. package/dist/skills-B-G7UHOa.js +0 -808
  690. package/dist/skills-B5LQx4lT.js +0 -807
  691. package/dist/skills-cli-DUGe2ZWW.js +0 -286
  692. package/dist/skills-cli-DtOk0bvK.js +0 -289
  693. package/dist/skills-status-Clq9ZnYu.js +0 -166
  694. package/dist/skills-status-JQluhU-P.js +0 -166
  695. package/dist/sqlite-BukcjdJa.js +0 -321
  696. package/dist/sqlite-CGcOZZ0C.js +0 -368
  697. package/dist/sqlite-Ck6f9KWc.js +0 -453
  698. package/dist/start--xmSFepB.js +0 -372
  699. package/dist/start-BdlZbqrr.js +0 -371
  700. package/dist/status-BgoeFm6g.js +0 -2137
  701. package/dist/status-BjjDrUq7.js +0 -27
  702. package/dist/status-Ct0DgOZ-.js +0 -2132
  703. package/dist/status-RA_uNmK0.js +0 -27
  704. package/dist/status.update-BjOH3GlS.js +0 -79
  705. package/dist/status.update-DLU1qBf0.js +0 -79
  706. package/dist/subagent-registry-9RLdKxES.js +0 -2760
  707. package/dist/subagent-registry-Byuex3zp.js +0 -2759
  708. package/dist/subagent-registry-DOBunBYS.js +0 -14
  709. package/dist/subsystem-Dowf8fSU.js +0 -860
  710. package/dist/system-cli-C5oBpzni.js +0 -79
  711. package/dist/system-cli-DXNKD_Id.js +0 -82
  712. package/dist/systemd-BSrHDyeU.js +0 -452
  713. package/dist/systemd-By5xdSB4.js +0 -452
  714. package/dist/systemd-hints-BtjL_5Rh.js +0 -36
  715. package/dist/systemd-hints-sJmr6cjb.js +0 -36
  716. package/dist/systemd-linger-CTmV2Gci.js +0 -75
  717. package/dist/systemd-linger-CmyqQkeC.js +0 -75
  718. package/dist/table-BL0lJzsm.js +0 -279
  719. package/dist/table-DoiRPsn0.js +0 -279
  720. package/dist/timeout-CswI_K-U.js +0 -232
  721. package/dist/tokens-C-X7wDKj.js +0 -14
  722. package/dist/tokens-DkvqA72p.js +0 -14
  723. package/dist/trash-BJLK1vMn.js +0 -23
  724. package/dist/trash-_x5UZ94k.js +0 -23
  725. package/dist/tui-BHjxDFZC.js +0 -3894
  726. package/dist/tui-CgOocwN8.js +0 -3894
  727. package/dist/tui-cli-5ANH8dE5.js +0 -47
  728. package/dist/tui-cli-BQ4P-JW_.js +0 -50
  729. package/dist/update-LFgxHHPd.js +0 -317
  730. package/dist/update-TxptCqk7.js +0 -317
  731. package/dist/update-check-CWc7YXmc.js +0 -400
  732. package/dist/update-check-IhlWaui6.js +0 -400
  733. package/dist/update-cli-PtXU62w7.js +0 -1105
  734. package/dist/update-cli-Va0EtETG.js +0 -1105
  735. package/dist/update-runner-BLeKFkiB.js +0 -894
  736. package/dist/update-runner-Iuzpc-_y.js +0 -894
  737. package/dist/usage-ApGvBLVg.js +0 -4516
  738. package/dist/utils-Bsw__U-F.js +0 -243
  739. package/dist/web-B6_Ky60G.js +0 -63
  740. package/dist/web-EZLQEWXY.js +0 -46842
  741. package/dist/web-pec8YJUX.js +0 -2203
  742. package/dist/webhooks-cli-BYQKTHTp.js +0 -319
  743. package/dist/webhooks-cli-C2_xtsUQ.js +0 -316
  744. package/dist/whatsapp-actions-C72VCq8f.js +0 -49
  745. package/dist/whatsapp-actions-Ck9Uv0Nw.js +0 -45
  746. package/dist/whatsapp-actions-D0reTj2k.js +0 -53
  747. package/dist/widearea-dns-B6ocX23x.js +0 -127
  748. package/dist/widearea-dns-NsEUNYwz.js +0 -127
  749. package/dist/workspace-Dcfoy5JJ.js +0 -649
  750. package/dist/ws-log-N8R5MvGE.js +0 -267
  751. package/dist/ws-log-gwFxPxj5.js +0 -267
  752. /package/dist/{auto-update-CUeF99gI.js → auto-update-CpF0fycd.js} +0 -0
  753. /package/dist/{auto-update-cgkp9ZTJ.js → auto-update-DNWdO7uF.js} +0 -0
  754. /package/dist/{brew-CVZkr0GU.js → brew-nqf_MiE4.js} +0 -0
  755. /package/dist/{budget-DxYQSekw.js → budget-CPedI-qW.js} +0 -0
  756. /package/dist/{budget-BWBp8Res.js → budget-CRpvqDRX.js} +0 -0
  757. /package/dist/{cli-utils-DtAxdCte.js → cli-utils-C1YHVD4o.js} +0 -0
  758. /package/dist/{command-options-CSbuuqHr.js → command-options-BbponVnw.js} +0 -0
  759. /package/dist/{command-options-Cp1tf96a.js → command-options-s0gnvXnS.js} +0 -0
  760. /package/dist/{constants-O8yBqCBv.js → constants-Dhb6zSIV.js} +0 -0
  761. /package/dist/{dangerous-tools-5ObDWy1N.js → dangerous-tools-DGTtJ_JR.js} +0 -0
  762. /package/dist/{dangerous-tools-Jwr7jqNw.js → dangerous-tools-DxrfTOfT.js} +0 -0
  763. /package/dist/{delivery-queue-B6IHz4Ry.js → delivery-queue-Bxm0nzw7.js} +0 -0
  764. /package/dist/{display-BDOsXu8F.js → display-Jy3UdGzA.js} +0 -0
  765. /package/dist/{errors-CHow2wtt.js → errors-CKaCqKga.js} +0 -0
  766. /package/dist/{exec-BizYYQgP.js → exec-DDmuVVNq.js} +0 -0
  767. /package/dist/{format-Mq6iU0_5.js → format-ByEjgyTF.js} +0 -0
  768. /package/dist/{format-duration-DhWzz_5b.js → format-duration-Aaj5tjJd.js} +0 -0
  769. /package/dist/{format-relative-C6kUHuOj.js → format-relative-79_Y1n2Y.js} +0 -0
  770. /package/dist/{help-format-DUBI91Ti.js → help-format-BMKzarov.js} +0 -0
  771. /package/dist/{helpers-eJFa4K6r.js → helpers-DpEB9Mh0.js} +0 -0
  772. /package/dist/{helpers-DLgbkcEn.js → helpers-FMld9sBT.js} +0 -0
  773. /package/dist/{input-provenance-DJBdpeKk.js → input-provenance-Cy_KnBlP.js} +0 -0
  774. /package/dist/{is-main-Dt9DTcH1.js → is-main-yjaVwMtJ.js} +0 -0
  775. /package/dist/{loader-l2OBdJ8x.js → loader-Br7Vr0zn.js} +0 -0
  776. /package/dist/{loader-BoYxRfcW.js → loader-CkmOrXcC.js} +0 -0
  777. /package/dist/{logging-BdnOSVPD.js → logging-CY-Q5cwf.js} +0 -0
  778. /package/dist/{message-channel-w4F2b2F6.js → message-channel-dua8OOGJ.js} +0 -0
  779. /package/dist/{mime-B1ZoR53M.js → mime-CBg4KybI.js} +0 -0
  780. /package/dist/{model-param-b-DPwyNGn8.js → model-param-b-DW9f0NN8.js} +0 -0
  781. /package/dist/{node-match-8XZnaid6.js → node-match-BV8bTBd4.js} +0 -0
  782. /package/dist/{normalize-GDK8JTNW.js → normalize-_lmlBOW9.js} +0 -0
  783. /package/dist/{openclaw-root-C85WMnVV.js → openclaw-root-JPvmPTf7.js} +0 -0
  784. /package/dist/{outbound-send-deps-ANnAhImn.js → outbound-send-deps-BfUvuWGa.js} +0 -0
  785. /package/dist/{parse-6-2MDhdT.js → parse-CZRwKocn.js} +0 -0
  786. /package/dist/{parse-log-line-Bqh1SSzC.js → parse-log-line-CvrZEK6A.js} +0 -0
  787. /package/dist/{parse-log-line-DUZCjXbl.js → parse-log-line-mLdat0AH.js} +0 -0
  788. /package/dist/{parse-port-BKB9Exlg.js → parse-port-BSOOdo7I.js} +0 -0
  789. /package/dist/{parse-port-DrfvwwiL.js → parse-port-Y0NK62x1.js} +0 -0
  790. /package/dist/{parse-timeout-Di_tcEmi.js → parse-timeout-DVPQ3n9j.js} +0 -0
  791. /package/dist/{paths-DcVEkYX5.js → paths-DHjlJ6cn.js} +0 -0
  792. /package/dist/{pi-model-discovery-DsRqYJLy.js → pi-model-discovery-DzEIEgHL.js} +0 -0
  793. /package/dist/{plugins-CDJw924T.js → plugins-D6PBOdkn.js} +0 -0
  794. /package/dist/{program-context-Bvn8046-.js → program-context-Q1hkT73c.js} +0 -0
  795. /package/dist/{progress-CbZ2D53A.js → progress-C9Ha1NJh.js} +0 -0
  796. /package/dist/{prompt-style-DKy6qQxR.js → prompt-style-DQi8j03a.js} +0 -0
  797. /package/dist/{prompts-BI__va99.js → prompts-BEHxUC3w.js} +0 -0
  798. /package/dist/{prompts-_dDWkCAz.js → prompts-CSOhuiqe.js} +0 -0
  799. /package/dist/{queue-D_u34pbL.js → queue-BJGo7kAB.js} +0 -0
  800. /package/dist/{queue-PG591iID.js → queue-DYgUbdoq.js} +0 -0
  801. /package/dist/{redact-ClVwO7Nn.js → redact-CyKvdFrg.js} +0 -0
  802. /package/dist/{registry-Bs_DJK9E.js → registry-C5MAYD4V.js} +0 -0
  803. /package/dist/{registry-D_zlP1U-.js → registry-CRrXXVs0.js} +0 -0
  804. /package/dist/{requirements-BzZxj2Wu.js → requirements-CGkxTCu4.js} +0 -0
  805. /package/dist/{requirements-DIW1svgA.js → requirements-CIDaOcbO.js} +0 -0
  806. /package/dist/{runtime-guard-DeOXA_86.js → runtime-guard-nL3Lp8T-.js} +0 -0
  807. /package/dist/{secret-equal-Dghy3xsA.js → secret-equal-DJpmLXlG.js} +0 -0
  808. /package/dist/{send-BhAfdGII.js → send-CTcxgDDU.js} +0 -0
  809. /package/dist/{send-ga9udK1_.js → send-DPezUR3-.js} +0 -0
  810. /package/dist/{send-C2t9xpXI.js → send-DZQTaG7-.js} +0 -0
  811. /package/dist/{send-DigO-i9j.js → send-VDff2gra.js} +0 -0
  812. /package/dist/{send-Dz2BDHll.js → send-bgQNV8d1.js} +0 -0
  813. /package/dist/{session-key-BGiG_JcT.js → session-key-CQT-NR6w.js} +0 -0
  814. /package/dist/{shell-argv-CAq1mLa2.js → shell-argv-n9IueeJQ.js} +0 -0
  815. /package/dist/{skill-scanner-Coo4QoCd.js → skill-scanner-o6NgVMD9.js} +0 -0
  816. /package/dist/{status-CMnlcBVc.js → status-C53kTIXF.js} +0 -0
  817. /package/dist/{status-tDZPwewW.js → status-CZDDA_Sy.js} +0 -0
  818. /package/dist/{system-run-command-X9lDJIy0.js → system-run-command-BCjUffN9.js} +0 -0
  819. /package/dist/{system-run-command-DGk7dwQP.js → system-run-command-CqAqKL9K.js} +0 -0
  820. /package/dist/{tailnet-CuiNECdL.js → tailnet-Ciwjv243.js} +0 -0
  821. /package/dist/{templates-CeYJjVzw.js → templates-37RKpACb.js} +0 -0
  822. /package/dist/{templates-I3Z0xplD.js → templates-DPalk30o.js} +0 -0
  823. /package/dist/{thinking-BXEswx1X.js → thinking-2hxwmvTl.js} +0 -0
  824. /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
  825. /package/dist/{transcript-tools-DuyYOkUq.js → transcript-tools-D4Lbxlka.js} +0 -0
  826. /package/dist/{usage-format-BAirWUSO.js → usage-format-6Uar63S0.js} +0 -0
  827. /package/dist/{utils-C9sj30YY.js → utils-DT8uXjFS.js} +0 -0
  828. /package/dist/{wsl-CqyuRvtM.js → wsl-CrPvx2kZ.js} +0 -0
  829. /package/dist/{wsl-ymJYvc9Q.js → wsl-UvJ5dHah.js} +0 -0
@@ -0,0 +1,824 @@
1
+ import { q as resolveGatewayPort } from "./entry.js";
2
+ import { i as loadConfig, l as writeConfigFile, r as createConfigIO } from "./config-CU-Axg8P.js";
3
+ import { n as isLoopbackHost } from "./net-0A_zcaQD.js";
4
+ import { C as DEFAULT_ANIMA_BROWSER_ENABLED, E as DEFAULT_BROWSER_EVALUATE_ENABLED, S as DEFAULT_ANIMA_BROWSER_COLOR, T as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as ensureChromeExtensionRelayServer, a as resolveAnimaUserDataDir, d as normalizeCdpWsUrl, h as getHeadersWithAuth, i as launchAnimaChrome, l as createTargetViaCdp, n as isChromeCdpReady, o as stopAnimaChrome, p as appendCdpPath, r as isChromeReachable, v as stopChromeExtensionRelayServer, w as DEFAULT_ANIMA_BROWSER_PROFILE_NAME } from "./chrome-C4dOMO8z.js";
5
+ import { i as resolveGatewayAuth } from "./auth-DMPZWzEa.js";
6
+ import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CKaCqKga.js";
7
+ import { t as movePathToTrash } from "./trash-Bmxs1Rnm.js";
8
+ import fs from "node:fs";
9
+ import crypto from "node:crypto";
10
+
11
+ //#region src/config/port-defaults.ts
12
+ function isValidPort(port) {
13
+ return Number.isFinite(port) && port > 0 && port <= 65535;
14
+ }
15
+ function clampPort(port, fallback) {
16
+ return isValidPort(port) ? port : fallback;
17
+ }
18
+ function derivePort(base, offset, fallback) {
19
+ return clampPort(base + offset, fallback);
20
+ }
21
+ const DEFAULT_BROWSER_CONTROL_PORT = 18791;
22
+ const DEFAULT_BROWSER_CDP_PORT_RANGE_START = 18800;
23
+ const DEFAULT_BROWSER_CDP_PORT_RANGE_END = 18899;
24
+ function deriveDefaultBrowserControlPort(gatewayPort) {
25
+ return derivePort(gatewayPort, 2, DEFAULT_BROWSER_CONTROL_PORT);
26
+ }
27
+ function deriveDefaultBrowserCdpPortRange(browserControlPort) {
28
+ const start = derivePort(browserControlPort, 9, DEFAULT_BROWSER_CDP_PORT_RANGE_START);
29
+ const end = clampPort(start + (DEFAULT_BROWSER_CDP_PORT_RANGE_END - DEFAULT_BROWSER_CDP_PORT_RANGE_START), DEFAULT_BROWSER_CDP_PORT_RANGE_END);
30
+ if (end < start) return {
31
+ start,
32
+ end: start
33
+ };
34
+ return {
35
+ start,
36
+ end
37
+ };
38
+ }
39
+
40
+ //#endregion
41
+ //#region src/browser/profiles.ts
42
+ /**
43
+ * CDP port allocation for browser profiles.
44
+ *
45
+ * Default port range: 18800-18899 (100 profiles max)
46
+ * Ports are allocated once at profile creation and persisted in config.
47
+ * Multi-instance: callers may pass an explicit range to avoid collisions.
48
+ *
49
+ * Reserved ports (do not use for CDP):
50
+ * 18789 - Gateway WebSocket
51
+ * 18790 - Bridge
52
+ * 18791 - Browser control server
53
+ * 18792-18799 - Reserved for future one-off services (canvas at 18793)
54
+ */
55
+ const CDP_PORT_RANGE_START = 18800;
56
+ const CDP_PORT_RANGE_END = 18899;
57
+ const PROFILE_NAME_REGEX = /^[a-z0-9][a-z0-9-]*$/;
58
+ function isValidProfileName(name) {
59
+ if (!name || name.length > 64) return false;
60
+ return PROFILE_NAME_REGEX.test(name);
61
+ }
62
+ function allocateCdpPort(usedPorts, range) {
63
+ const start = range?.start ?? CDP_PORT_RANGE_START;
64
+ const end = range?.end ?? CDP_PORT_RANGE_END;
65
+ if (!Number.isFinite(start) || !Number.isFinite(end) || start <= 0 || end <= 0) return null;
66
+ if (start > end) return null;
67
+ for (let port = start; port <= end; port++) if (!usedPorts.has(port)) return port;
68
+ return null;
69
+ }
70
+ function getUsedPorts(profiles) {
71
+ if (!profiles) return /* @__PURE__ */ new Set();
72
+ const used = /* @__PURE__ */ new Set();
73
+ for (const profile of Object.values(profiles)) {
74
+ if (typeof profile.cdpPort === "number") {
75
+ used.add(profile.cdpPort);
76
+ continue;
77
+ }
78
+ const rawUrl = profile.cdpUrl?.trim();
79
+ if (!rawUrl) continue;
80
+ try {
81
+ const parsed = new URL(rawUrl);
82
+ const port = parsed.port && Number.parseInt(parsed.port, 10) > 0 ? Number.parseInt(parsed.port, 10) : parsed.protocol === "https:" ? 443 : 80;
83
+ if (!Number.isNaN(port) && port > 0 && port <= 65535) used.add(port);
84
+ } catch {}
85
+ }
86
+ return used;
87
+ }
88
+ const PROFILE_COLORS = [
89
+ "#FF4500",
90
+ "#0066CC",
91
+ "#00AA00",
92
+ "#9933FF",
93
+ "#FF6699",
94
+ "#00CCCC",
95
+ "#FF9900",
96
+ "#6666FF",
97
+ "#CC3366",
98
+ "#339966"
99
+ ];
100
+ function allocateColor(usedColors) {
101
+ for (const color of PROFILE_COLORS) if (!usedColors.has(color.toUpperCase())) return color;
102
+ return PROFILE_COLORS[usedColors.size % PROFILE_COLORS.length] ?? PROFILE_COLORS[0];
103
+ }
104
+ function getUsedColors(profiles) {
105
+ if (!profiles) return /* @__PURE__ */ new Set();
106
+ return new Set(Object.values(profiles).map((p) => p.color.toUpperCase()));
107
+ }
108
+
109
+ //#endregion
110
+ //#region src/browser/config.ts
111
+ function normalizeHexColor(raw) {
112
+ const value = (raw ?? "").trim();
113
+ if (!value) return DEFAULT_ANIMA_BROWSER_COLOR;
114
+ const normalized = value.startsWith("#") ? value : `#${value}`;
115
+ if (!/^#[0-9a-fA-F]{6}$/.test(normalized)) return DEFAULT_ANIMA_BROWSER_COLOR;
116
+ return normalized.toUpperCase();
117
+ }
118
+ function normalizeTimeoutMs(raw, fallback) {
119
+ const value = typeof raw === "number" && Number.isFinite(raw) ? Math.floor(raw) : fallback;
120
+ return value < 0 ? fallback : value;
121
+ }
122
+ function parseHttpUrl(raw, label) {
123
+ const trimmed = raw.trim();
124
+ const parsed = new URL(trimmed);
125
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") throw new Error(`${label} must be http(s), got: ${parsed.protocol.replace(":", "")}`);
126
+ const port = parsed.port && Number.parseInt(parsed.port, 10) > 0 ? Number.parseInt(parsed.port, 10) : parsed.protocol === "https:" ? 443 : 80;
127
+ if (Number.isNaN(port) || port <= 0 || port > 65535) throw new Error(`${label} has invalid port: ${parsed.port}`);
128
+ return {
129
+ parsed,
130
+ port,
131
+ normalized: parsed.toString().replace(/\/$/, "")
132
+ };
133
+ }
134
+ /**
135
+ * Ensure the default "anima" profile exists in the profiles map.
136
+ * Auto-creates it with the legacy CDP port (from browser.cdpUrl) or first port if missing.
137
+ */
138
+ function ensureDefaultProfile(profiles, defaultColor, legacyCdpPort, derivedDefaultCdpPort) {
139
+ const result = { ...profiles };
140
+ if (!result[DEFAULT_ANIMA_BROWSER_PROFILE_NAME]) result[DEFAULT_ANIMA_BROWSER_PROFILE_NAME] = {
141
+ cdpPort: legacyCdpPort ?? derivedDefaultCdpPort ?? CDP_PORT_RANGE_START,
142
+ color: defaultColor
143
+ };
144
+ return result;
145
+ }
146
+ /**
147
+ * Ensure a built-in "chrome" profile exists for the Chrome extension relay.
148
+ *
149
+ * Note: this is an Anima browser profile (routing config), not a Chrome user profile.
150
+ * It points at the local relay CDP endpoint (controlPort + 1).
151
+ */
152
+ function ensureDefaultChromeExtensionProfile(profiles, controlPort) {
153
+ const result = { ...profiles };
154
+ if (result.chrome) return result;
155
+ const relayPort = controlPort + 1;
156
+ if (!Number.isFinite(relayPort) || relayPort <= 0 || relayPort > 65535) return result;
157
+ if (getUsedPorts(result).has(relayPort)) return result;
158
+ result.chrome = {
159
+ driver: "extension",
160
+ cdpUrl: `http://127.0.0.1:${relayPort}`,
161
+ color: "#00AA00"
162
+ };
163
+ return result;
164
+ }
165
+ function resolveBrowserConfig(cfg, rootConfig) {
166
+ const enabled = cfg?.enabled ?? DEFAULT_ANIMA_BROWSER_ENABLED;
167
+ const evaluateEnabled = cfg?.evaluateEnabled ?? DEFAULT_BROWSER_EVALUATE_ENABLED;
168
+ const controlPort = deriveDefaultBrowserControlPort(resolveGatewayPort(rootConfig) ?? DEFAULT_BROWSER_CONTROL_PORT);
169
+ const defaultColor = normalizeHexColor(cfg?.color);
170
+ const remoteCdpTimeoutMs = normalizeTimeoutMs(cfg?.remoteCdpTimeoutMs, 1500);
171
+ const remoteCdpHandshakeTimeoutMs = normalizeTimeoutMs(cfg?.remoteCdpHandshakeTimeoutMs, Math.max(2e3, remoteCdpTimeoutMs * 2));
172
+ const derivedCdpRange = deriveDefaultBrowserCdpPortRange(controlPort);
173
+ const rawCdpUrl = (cfg?.cdpUrl ?? "").trim();
174
+ let cdpInfo;
175
+ if (rawCdpUrl) cdpInfo = parseHttpUrl(rawCdpUrl, "browser.cdpUrl");
176
+ else {
177
+ const derivedPort = controlPort + 1;
178
+ if (derivedPort > 65535) throw new Error(`Derived CDP port (${derivedPort}) is too high; check gateway port configuration.`);
179
+ const derived = new URL(`http://127.0.0.1:${derivedPort}`);
180
+ cdpInfo = {
181
+ parsed: derived,
182
+ port: derivedPort,
183
+ normalized: derived.toString().replace(/\/$/, "")
184
+ };
185
+ }
186
+ const headless = cfg?.headless === true;
187
+ const noSandbox = cfg?.noSandbox === true;
188
+ const attachOnly = cfg?.attachOnly === true;
189
+ const executablePath = cfg?.executablePath?.trim() || void 0;
190
+ const defaultProfileFromConfig = cfg?.defaultProfile?.trim() || void 0;
191
+ const legacyCdpPort = rawCdpUrl ? cdpInfo.port : void 0;
192
+ const profiles = ensureDefaultChromeExtensionProfile(ensureDefaultProfile(cfg?.profiles, defaultColor, legacyCdpPort, derivedCdpRange.start), controlPort);
193
+ const cdpProtocol = cdpInfo.parsed.protocol === "https:" ? "https" : "http";
194
+ const defaultProfile = defaultProfileFromConfig ?? (profiles[DEFAULT_BROWSER_DEFAULT_PROFILE_NAME] ? DEFAULT_BROWSER_DEFAULT_PROFILE_NAME : DEFAULT_ANIMA_BROWSER_PROFILE_NAME);
195
+ return {
196
+ enabled,
197
+ evaluateEnabled,
198
+ controlPort,
199
+ cdpProtocol,
200
+ cdpHost: cdpInfo.parsed.hostname,
201
+ cdpIsLoopback: isLoopbackHost(cdpInfo.parsed.hostname),
202
+ remoteCdpTimeoutMs,
203
+ remoteCdpHandshakeTimeoutMs,
204
+ color: defaultColor,
205
+ executablePath,
206
+ headless,
207
+ noSandbox,
208
+ attachOnly,
209
+ defaultProfile,
210
+ profiles
211
+ };
212
+ }
213
+ /**
214
+ * Resolve a profile by name from the config.
215
+ * Returns null if the profile doesn't exist.
216
+ */
217
+ function resolveProfile(resolved, profileName) {
218
+ const profile = resolved.profiles[profileName];
219
+ if (!profile) return null;
220
+ const rawProfileUrl = profile.cdpUrl?.trim() ?? "";
221
+ let cdpHost = resolved.cdpHost;
222
+ let cdpPort = profile.cdpPort ?? 0;
223
+ let cdpUrl = "";
224
+ const driver = profile.driver === "extension" ? "extension" : "anima";
225
+ if (rawProfileUrl) {
226
+ const parsed = parseHttpUrl(rawProfileUrl, `browser.profiles.${profileName}.cdpUrl`);
227
+ cdpHost = parsed.parsed.hostname;
228
+ cdpPort = parsed.port;
229
+ cdpUrl = parsed.normalized;
230
+ } else if (cdpPort) cdpUrl = `${resolved.cdpProtocol}://${resolved.cdpHost}:${cdpPort}`;
231
+ else throw new Error(`Profile "${profileName}" must define cdpPort or cdpUrl.`);
232
+ return {
233
+ name: profileName,
234
+ cdpPort,
235
+ cdpUrl,
236
+ cdpHost,
237
+ cdpIsLoopback: isLoopbackHost(cdpHost),
238
+ color: profile.color,
239
+ driver
240
+ };
241
+ }
242
+
243
+ //#endregion
244
+ //#region src/browser/control-auth.ts
245
+ function resolveBrowserControlAuth(cfg, env = process.env) {
246
+ const auth = resolveGatewayAuth({
247
+ authConfig: cfg?.gateway?.auth,
248
+ env,
249
+ tailscaleMode: cfg?.gateway?.tailscale?.mode
250
+ });
251
+ const token = typeof auth.token === "string" ? auth.token.trim() : "";
252
+ const password = typeof auth.password === "string" ? auth.password.trim() : "";
253
+ return {
254
+ token: token || void 0,
255
+ password: password || void 0
256
+ };
257
+ }
258
+ function shouldAutoGenerateBrowserAuth(env) {
259
+ if ((env.NODE_ENV ?? "").trim().toLowerCase() === "test") return false;
260
+ const vitest = (env.VITEST ?? "").trim().toLowerCase();
261
+ if (vitest && vitest !== "0" && vitest !== "false" && vitest !== "off") return false;
262
+ return true;
263
+ }
264
+ async function ensureBrowserControlAuth(params) {
265
+ const env = params.env ?? process.env;
266
+ const auth = resolveBrowserControlAuth(params.cfg, env);
267
+ if (auth.token || auth.password) return { auth };
268
+ if (!shouldAutoGenerateBrowserAuth(env)) return { auth };
269
+ if (params.cfg.gateway?.auth?.mode === "password") return { auth };
270
+ if (params.cfg.gateway?.auth?.mode === "trusted-proxy") return { auth };
271
+ const latestCfg = loadConfig();
272
+ const latestAuth = resolveBrowserControlAuth(latestCfg, env);
273
+ if (latestAuth.token || latestAuth.password) return { auth: latestAuth };
274
+ if (latestCfg.gateway?.auth?.mode === "password") return { auth: latestAuth };
275
+ if (latestCfg.gateway?.auth?.mode === "trusted-proxy") return { auth: latestAuth };
276
+ const generatedToken = crypto.randomBytes(24).toString("hex");
277
+ await writeConfigFile({
278
+ ...latestCfg,
279
+ gateway: {
280
+ ...latestCfg.gateway,
281
+ auth: {
282
+ ...latestCfg.gateway?.auth,
283
+ mode: "token",
284
+ token: generatedToken
285
+ }
286
+ }
287
+ });
288
+ return {
289
+ auth: { token: generatedToken },
290
+ generatedToken
291
+ };
292
+ }
293
+
294
+ //#endregion
295
+ //#region src/browser/pw-ai-module.ts
296
+ let pwAiModuleSoft = null;
297
+ let pwAiModuleStrict = null;
298
+ function isModuleNotFoundError(err) {
299
+ if (extractErrorCode(err) === "ERR_MODULE_NOT_FOUND") return true;
300
+ const msg = formatErrorMessage(err);
301
+ return msg.includes("Cannot find module") || msg.includes("Cannot find package") || msg.includes("Failed to resolve import") || msg.includes("Failed to resolve entry for package") || msg.includes("Failed to load url");
302
+ }
303
+ async function loadPwAiModule(mode) {
304
+ try {
305
+ return await import("./pw-ai-C83HBue2.js");
306
+ } catch (err) {
307
+ if (mode === "soft") return null;
308
+ if (isModuleNotFoundError(err)) return null;
309
+ throw err;
310
+ }
311
+ }
312
+ async function getPwAiModule(opts) {
313
+ if ((opts?.mode ?? "soft") === "soft") {
314
+ if (!pwAiModuleSoft) pwAiModuleSoft = loadPwAiModule("soft");
315
+ return await pwAiModuleSoft;
316
+ }
317
+ if (!pwAiModuleStrict) pwAiModuleStrict = loadPwAiModule("strict");
318
+ return await pwAiModuleStrict;
319
+ }
320
+
321
+ //#endregion
322
+ //#region src/browser/resolved-config-refresh.ts
323
+ function applyResolvedConfig(current, freshResolved) {
324
+ current.resolved = freshResolved;
325
+ for (const [name, runtime] of current.profiles) {
326
+ const nextProfile = resolveProfile(freshResolved, name);
327
+ if (nextProfile) {
328
+ runtime.profile = nextProfile;
329
+ continue;
330
+ }
331
+ if (!runtime.running) current.profiles.delete(name);
332
+ }
333
+ }
334
+ function refreshResolvedBrowserConfigFromDisk(params) {
335
+ if (!params.refreshConfigFromDisk) return;
336
+ const cfg = params.mode === "fresh" ? createConfigIO().loadConfig() : loadConfig();
337
+ const freshResolved = resolveBrowserConfig(cfg.browser, cfg);
338
+ applyResolvedConfig(params.current, freshResolved);
339
+ }
340
+ function resolveBrowserProfileWithHotReload(params) {
341
+ refreshResolvedBrowserConfigFromDisk({
342
+ current: params.current,
343
+ refreshConfigFromDisk: params.refreshConfigFromDisk,
344
+ mode: "cached"
345
+ });
346
+ let profile = resolveProfile(params.current.resolved, params.name);
347
+ if (profile) return profile;
348
+ refreshResolvedBrowserConfigFromDisk({
349
+ current: params.current,
350
+ refreshConfigFromDisk: params.refreshConfigFromDisk,
351
+ mode: "fresh"
352
+ });
353
+ profile = resolveProfile(params.current.resolved, params.name);
354
+ return profile;
355
+ }
356
+
357
+ //#endregion
358
+ //#region src/browser/target-id.ts
359
+ function resolveTargetIdFromTabs(input, tabs) {
360
+ const needle = input.trim();
361
+ if (!needle) return {
362
+ ok: false,
363
+ reason: "not_found"
364
+ };
365
+ const exact = tabs.find((t) => t.targetId === needle);
366
+ if (exact) return {
367
+ ok: true,
368
+ targetId: exact.targetId
369
+ };
370
+ const lower = needle.toLowerCase();
371
+ const matches = tabs.map((t) => t.targetId).filter((id) => id.toLowerCase().startsWith(lower));
372
+ const only = matches.length === 1 ? matches[0] : void 0;
373
+ if (only) return {
374
+ ok: true,
375
+ targetId: only
376
+ };
377
+ if (matches.length === 0) return {
378
+ ok: false,
379
+ reason: "not_found"
380
+ };
381
+ return {
382
+ ok: false,
383
+ reason: "ambiguous",
384
+ matches
385
+ };
386
+ }
387
+
388
+ //#endregion
389
+ //#region src/browser/server-context.ts
390
+ function listKnownProfileNames(state) {
391
+ const names = new Set(Object.keys(state.resolved.profiles));
392
+ for (const name of state.profiles.keys()) names.add(name);
393
+ return [...names];
394
+ }
395
+ /**
396
+ * Normalize a CDP WebSocket URL to use the correct base URL.
397
+ */
398
+ function normalizeWsUrl(raw, cdpBaseUrl) {
399
+ if (!raw) return;
400
+ try {
401
+ return normalizeCdpWsUrl(raw, cdpBaseUrl);
402
+ } catch {
403
+ return raw;
404
+ }
405
+ }
406
+ async function fetchJson(url, timeoutMs = 1500, init) {
407
+ const ctrl = new AbortController();
408
+ const t = setTimeout(ctrl.abort.bind(ctrl), timeoutMs);
409
+ try {
410
+ const headers = getHeadersWithAuth(url, init?.headers || {});
411
+ const res = await fetch(url, {
412
+ ...init,
413
+ headers,
414
+ signal: ctrl.signal
415
+ });
416
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
417
+ return await res.json();
418
+ } finally {
419
+ clearTimeout(t);
420
+ }
421
+ }
422
+ async function fetchOk(url, timeoutMs = 1500, init) {
423
+ const ctrl = new AbortController();
424
+ const t = setTimeout(ctrl.abort.bind(ctrl), timeoutMs);
425
+ try {
426
+ const headers = getHeadersWithAuth(url, init?.headers || {});
427
+ const res = await fetch(url, {
428
+ ...init,
429
+ headers,
430
+ signal: ctrl.signal
431
+ });
432
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
433
+ } finally {
434
+ clearTimeout(t);
435
+ }
436
+ }
437
+ /**
438
+ * Create a profile-scoped context for browser operations.
439
+ */
440
+ function createProfileContext(opts, profile) {
441
+ const state = () => {
442
+ const current = opts.getState();
443
+ if (!current) throw new Error("Browser server not started");
444
+ return current;
445
+ };
446
+ const getProfileState = () => {
447
+ const current = state();
448
+ let profileState = current.profiles.get(profile.name);
449
+ if (!profileState) {
450
+ profileState = {
451
+ profile,
452
+ running: null,
453
+ lastTargetId: null
454
+ };
455
+ current.profiles.set(profile.name, profileState);
456
+ }
457
+ return profileState;
458
+ };
459
+ const setProfileRunning = (running) => {
460
+ const profileState = getProfileState();
461
+ profileState.running = running;
462
+ };
463
+ const listTabs = async () => {
464
+ if (!profile.cdpIsLoopback) {
465
+ const listPagesViaPlaywright = (await getPwAiModule({ mode: "strict" }))?.listPagesViaPlaywright;
466
+ if (typeof listPagesViaPlaywright === "function") return (await listPagesViaPlaywright({ cdpUrl: profile.cdpUrl })).map((p) => ({
467
+ targetId: p.targetId,
468
+ title: p.title,
469
+ url: p.url,
470
+ type: p.type
471
+ }));
472
+ }
473
+ return (await fetchJson(appendCdpPath(profile.cdpUrl, "/json/list"))).map((t) => ({
474
+ targetId: t.id ?? "",
475
+ title: t.title ?? "",
476
+ url: t.url ?? "",
477
+ wsUrl: normalizeWsUrl(t.webSocketDebuggerUrl, profile.cdpUrl),
478
+ type: t.type
479
+ })).filter((t) => Boolean(t.targetId));
480
+ };
481
+ const openTab = async (url) => {
482
+ if (!profile.cdpIsLoopback) {
483
+ const createPageViaPlaywright = (await getPwAiModule({ mode: "strict" }))?.createPageViaPlaywright;
484
+ if (typeof createPageViaPlaywright === "function") {
485
+ const page = await createPageViaPlaywright({
486
+ cdpUrl: profile.cdpUrl,
487
+ url
488
+ });
489
+ const profileState = getProfileState();
490
+ profileState.lastTargetId = page.targetId;
491
+ return {
492
+ targetId: page.targetId,
493
+ title: page.title,
494
+ url: page.url,
495
+ type: page.type
496
+ };
497
+ }
498
+ }
499
+ const createdViaCdp = await createTargetViaCdp({
500
+ cdpUrl: profile.cdpUrl,
501
+ url
502
+ }).then((r) => r.targetId).catch(() => null);
503
+ if (createdViaCdp) {
504
+ const profileState = getProfileState();
505
+ profileState.lastTargetId = createdViaCdp;
506
+ const deadline = Date.now() + 2e3;
507
+ while (Date.now() < deadline) {
508
+ const found = (await listTabs().catch(() => [])).find((t) => t.targetId === createdViaCdp);
509
+ if (found) return found;
510
+ await new Promise((r) => setTimeout(r, 100));
511
+ }
512
+ return {
513
+ targetId: createdViaCdp,
514
+ title: "",
515
+ url,
516
+ type: "page"
517
+ };
518
+ }
519
+ const encoded = encodeURIComponent(url);
520
+ const endpointUrl = new URL(appendCdpPath(profile.cdpUrl, "/json/new"));
521
+ const endpoint = endpointUrl.search ? (() => {
522
+ endpointUrl.searchParams.set("url", url);
523
+ return endpointUrl.toString();
524
+ })() : `${endpointUrl.toString()}?${encoded}`;
525
+ const created = await fetchJson(endpoint, 1500, { method: "PUT" }).catch(async (err) => {
526
+ if (String(err).includes("HTTP 405")) return await fetchJson(endpoint, 1500);
527
+ throw err;
528
+ });
529
+ if (!created.id) throw new Error("Failed to open tab (missing id)");
530
+ const profileState = getProfileState();
531
+ profileState.lastTargetId = created.id;
532
+ return {
533
+ targetId: created.id,
534
+ title: created.title ?? "",
535
+ url: created.url ?? url,
536
+ wsUrl: normalizeWsUrl(created.webSocketDebuggerUrl, profile.cdpUrl),
537
+ type: created.type
538
+ };
539
+ };
540
+ const resolveRemoteHttpTimeout = (timeoutMs) => {
541
+ if (profile.cdpIsLoopback) return timeoutMs ?? 300;
542
+ const resolved = state().resolved;
543
+ if (typeof timeoutMs === "number" && Number.isFinite(timeoutMs)) return Math.max(Math.floor(timeoutMs), resolved.remoteCdpTimeoutMs);
544
+ return resolved.remoteCdpTimeoutMs;
545
+ };
546
+ const resolveRemoteWsTimeout = (timeoutMs) => {
547
+ if (profile.cdpIsLoopback) {
548
+ const base = timeoutMs ?? 300;
549
+ return Math.max(200, Math.min(2e3, base * 2));
550
+ }
551
+ const resolved = state().resolved;
552
+ if (typeof timeoutMs === "number" && Number.isFinite(timeoutMs)) return Math.max(Math.floor(timeoutMs) * 2, resolved.remoteCdpHandshakeTimeoutMs);
553
+ return resolved.remoteCdpHandshakeTimeoutMs;
554
+ };
555
+ const isReachable = async (timeoutMs) => {
556
+ const httpTimeout = resolveRemoteHttpTimeout(timeoutMs);
557
+ const wsTimeout = resolveRemoteWsTimeout(timeoutMs);
558
+ return await isChromeCdpReady(profile.cdpUrl, httpTimeout, wsTimeout);
559
+ };
560
+ const isHttpReachable = async (timeoutMs) => {
561
+ const httpTimeout = resolveRemoteHttpTimeout(timeoutMs);
562
+ return await isChromeReachable(profile.cdpUrl, httpTimeout);
563
+ };
564
+ const attachRunning = (running) => {
565
+ setProfileRunning(running);
566
+ running.proc.on("exit", () => {
567
+ if (!opts.getState()) return;
568
+ if (getProfileState().running?.pid === running.pid) setProfileRunning(null);
569
+ });
570
+ };
571
+ const ensureBrowserAvailable = async () => {
572
+ const current = state();
573
+ const remoteCdp = !profile.cdpIsLoopback;
574
+ const isExtension = profile.driver === "extension";
575
+ const profileState = getProfileState();
576
+ const httpReachable = await isHttpReachable();
577
+ if (isExtension && remoteCdp) throw new Error(`Profile "${profile.name}" uses driver=extension but cdpUrl is not loopback (${profile.cdpUrl}).`);
578
+ if (isExtension) {
579
+ if (!httpReachable) {
580
+ await ensureChromeExtensionRelayServer({ cdpUrl: profile.cdpUrl });
581
+ if (await isHttpReachable(1200)) {} else throw new Error(`Chrome extension relay for profile "${profile.name}" is not reachable at ${profile.cdpUrl}.`);
582
+ }
583
+ if (await isReachable(600)) return;
584
+ throw new Error(`Chrome extension relay is running, but no tab is connected. Click the Anima Chrome extension icon on a tab to attach it (profile "${profile.name}").`);
585
+ }
586
+ if (!httpReachable) {
587
+ if ((current.resolved.attachOnly || remoteCdp) && opts.onEnsureAttachTarget) {
588
+ await opts.onEnsureAttachTarget(profile);
589
+ if (await isHttpReachable(1200)) return;
590
+ }
591
+ if (current.resolved.attachOnly || remoteCdp) throw new Error(remoteCdp ? `Remote CDP for profile "${profile.name}" is not reachable at ${profile.cdpUrl}.` : `Browser attachOnly is enabled and profile "${profile.name}" is not running.`);
592
+ attachRunning(await launchAnimaChrome(current.resolved, profile));
593
+ return;
594
+ }
595
+ if (await isReachable()) return;
596
+ if (!profileState.running) throw new Error(`Port ${profile.cdpPort} is in use for profile "${profile.name}" but not by anima. Run action=reset-profile profile=${profile.name} to kill the process.`);
597
+ if (current.resolved.attachOnly || remoteCdp) {
598
+ if (opts.onEnsureAttachTarget) {
599
+ await opts.onEnsureAttachTarget(profile);
600
+ if (await isReachable(1200)) return;
601
+ }
602
+ throw new Error(remoteCdp ? `Remote CDP websocket for profile "${profile.name}" is not reachable.` : `Browser attachOnly is enabled and CDP websocket for profile "${profile.name}" is not reachable.`);
603
+ }
604
+ await stopAnimaChrome(profileState.running);
605
+ setProfileRunning(null);
606
+ attachRunning(await launchAnimaChrome(current.resolved, profile));
607
+ if (!await isReachable(600)) throw new Error(`Chrome CDP websocket for profile "${profile.name}" is not reachable after restart.`);
608
+ };
609
+ const ensureTabAvailable = async (targetId) => {
610
+ await ensureBrowserAvailable();
611
+ const profileState = getProfileState();
612
+ if ((await listTabs()).length === 0) {
613
+ if (profile.driver === "extension") throw new Error(`tab not found (no attached Chrome tabs for profile "${profile.name}"). Click the Anima Browser Relay toolbar icon on the tab you want to control (badge ON).`);
614
+ await openTab("about:blank");
615
+ }
616
+ const tabs = await listTabs();
617
+ const candidates = profile.driver === "extension" || !profile.cdpIsLoopback ? tabs : tabs.filter((t) => Boolean(t.wsUrl));
618
+ const resolveById = (raw) => {
619
+ const resolved = resolveTargetIdFromTabs(raw, candidates);
620
+ if (!resolved.ok) {
621
+ if (resolved.reason === "ambiguous") return "AMBIGUOUS";
622
+ return null;
623
+ }
624
+ return candidates.find((t) => t.targetId === resolved.targetId) ?? null;
625
+ };
626
+ const pickDefault = () => {
627
+ const last = profileState.lastTargetId?.trim() || "";
628
+ const lastResolved = last ? resolveById(last) : null;
629
+ if (lastResolved && lastResolved !== "AMBIGUOUS") return lastResolved;
630
+ return candidates.find((t) => (t.type ?? "page") === "page") ?? candidates.at(0) ?? null;
631
+ };
632
+ let chosen = targetId ? resolveById(targetId) : pickDefault();
633
+ if (!chosen && profile.driver === "extension" && candidates.length === 1) chosen = candidates[0] ?? null;
634
+ if (chosen === "AMBIGUOUS") throw new Error("ambiguous target id prefix");
635
+ if (!chosen) throw new Error("tab not found");
636
+ profileState.lastTargetId = chosen.targetId;
637
+ return chosen;
638
+ };
639
+ const focusTab = async (targetId) => {
640
+ const resolved = resolveTargetIdFromTabs(targetId, await listTabs());
641
+ if (!resolved.ok) {
642
+ if (resolved.reason === "ambiguous") throw new Error("ambiguous target id prefix");
643
+ throw new Error("tab not found");
644
+ }
645
+ if (!profile.cdpIsLoopback) {
646
+ const focusPageByTargetIdViaPlaywright = (await getPwAiModule({ mode: "strict" }))?.focusPageByTargetIdViaPlaywright;
647
+ if (typeof focusPageByTargetIdViaPlaywright === "function") {
648
+ await focusPageByTargetIdViaPlaywright({
649
+ cdpUrl: profile.cdpUrl,
650
+ targetId: resolved.targetId
651
+ });
652
+ const profileState = getProfileState();
653
+ profileState.lastTargetId = resolved.targetId;
654
+ return;
655
+ }
656
+ }
657
+ await fetchOk(appendCdpPath(profile.cdpUrl, `/json/activate/${resolved.targetId}`));
658
+ const profileState = getProfileState();
659
+ profileState.lastTargetId = resolved.targetId;
660
+ };
661
+ const closeTab = async (targetId) => {
662
+ const resolved = resolveTargetIdFromTabs(targetId, await listTabs());
663
+ if (!resolved.ok) {
664
+ if (resolved.reason === "ambiguous") throw new Error("ambiguous target id prefix");
665
+ throw new Error("tab not found");
666
+ }
667
+ if (!profile.cdpIsLoopback) {
668
+ const closePageByTargetIdViaPlaywright = (await getPwAiModule({ mode: "strict" }))?.closePageByTargetIdViaPlaywright;
669
+ if (typeof closePageByTargetIdViaPlaywright === "function") {
670
+ await closePageByTargetIdViaPlaywright({
671
+ cdpUrl: profile.cdpUrl,
672
+ targetId: resolved.targetId
673
+ });
674
+ return;
675
+ }
676
+ }
677
+ await fetchOk(appendCdpPath(profile.cdpUrl, `/json/close/${resolved.targetId}`));
678
+ };
679
+ const stopRunningBrowser = async () => {
680
+ if (profile.driver === "extension") return { stopped: await stopChromeExtensionRelayServer({ cdpUrl: profile.cdpUrl }) };
681
+ const profileState = getProfileState();
682
+ if (!profileState.running) return { stopped: false };
683
+ await stopAnimaChrome(profileState.running);
684
+ setProfileRunning(null);
685
+ return { stopped: true };
686
+ };
687
+ const resetProfile = async () => {
688
+ if (profile.driver === "extension") {
689
+ await stopChromeExtensionRelayServer({ cdpUrl: profile.cdpUrl }).catch(() => {});
690
+ return {
691
+ moved: false,
692
+ from: profile.cdpUrl
693
+ };
694
+ }
695
+ if (!profile.cdpIsLoopback) throw new Error(`reset-profile is only supported for local profiles (profile "${profile.name}" is remote).`);
696
+ const userDataDir = resolveAnimaUserDataDir(profile.name);
697
+ const profileState = getProfileState();
698
+ if (await isHttpReachable(300) && !profileState.running) try {
699
+ await (await import("./pw-ai-C83HBue2.js")).closePlaywrightBrowserConnection();
700
+ } catch {}
701
+ if (profileState.running) await stopRunningBrowser();
702
+ try {
703
+ await (await import("./pw-ai-C83HBue2.js")).closePlaywrightBrowserConnection();
704
+ } catch {}
705
+ if (!fs.existsSync(userDataDir)) return {
706
+ moved: false,
707
+ from: userDataDir
708
+ };
709
+ return {
710
+ moved: true,
711
+ from: userDataDir,
712
+ to: await movePathToTrash(userDataDir)
713
+ };
714
+ };
715
+ return {
716
+ profile,
717
+ ensureBrowserAvailable,
718
+ ensureTabAvailable,
719
+ isHttpReachable,
720
+ isReachable,
721
+ listTabs,
722
+ openTab,
723
+ focusTab,
724
+ closeTab,
725
+ stopRunningBrowser,
726
+ resetProfile
727
+ };
728
+ }
729
+ function createBrowserRouteContext(opts) {
730
+ const refreshConfigFromDisk = opts.refreshConfigFromDisk === true;
731
+ const state = () => {
732
+ const current = opts.getState();
733
+ if (!current) throw new Error("Browser server not started");
734
+ return current;
735
+ };
736
+ const forProfile = (profileName) => {
737
+ const current = state();
738
+ const name = profileName ?? current.resolved.defaultProfile;
739
+ const profile = resolveBrowserProfileWithHotReload({
740
+ current,
741
+ refreshConfigFromDisk,
742
+ name
743
+ });
744
+ if (!profile) {
745
+ const available = Object.keys(current.resolved.profiles).join(", ");
746
+ throw new Error(`Profile "${name}" not found. Available profiles: ${available || "(none)"}`);
747
+ }
748
+ return createProfileContext(opts, profile);
749
+ };
750
+ const listProfiles = async () => {
751
+ const current = state();
752
+ refreshResolvedBrowserConfigFromDisk({
753
+ current,
754
+ refreshConfigFromDisk,
755
+ mode: "cached"
756
+ });
757
+ const result = [];
758
+ for (const name of Object.keys(current.resolved.profiles)) {
759
+ const profileState = current.profiles.get(name);
760
+ const profile = resolveProfile(current.resolved, name);
761
+ if (!profile) continue;
762
+ let tabCount = 0;
763
+ let running = false;
764
+ if (profileState?.running) {
765
+ running = true;
766
+ try {
767
+ tabCount = (await createProfileContext(opts, profile).listTabs()).filter((t) => t.type === "page").length;
768
+ } catch {}
769
+ } else try {
770
+ if (await isChromeReachable(profile.cdpUrl, 200)) {
771
+ running = true;
772
+ tabCount = (await createProfileContext(opts, profile).listTabs().catch(() => [])).filter((t) => t.type === "page").length;
773
+ }
774
+ } catch {}
775
+ result.push({
776
+ name,
777
+ cdpPort: profile.cdpPort,
778
+ cdpUrl: profile.cdpUrl,
779
+ color: profile.color,
780
+ running,
781
+ tabCount,
782
+ isDefault: name === current.resolved.defaultProfile,
783
+ isRemote: !profile.cdpIsLoopback
784
+ });
785
+ }
786
+ return result;
787
+ };
788
+ const getDefaultContext = () => forProfile();
789
+ const mapTabError = (err) => {
790
+ const msg = String(err);
791
+ if (msg.includes("ambiguous target id prefix")) return {
792
+ status: 409,
793
+ message: "ambiguous target id prefix"
794
+ };
795
+ if (msg.includes("tab not found")) return {
796
+ status: 404,
797
+ message: msg
798
+ };
799
+ if (msg.includes("not found")) return {
800
+ status: 404,
801
+ message: msg
802
+ };
803
+ return null;
804
+ };
805
+ return {
806
+ state,
807
+ forProfile,
808
+ listProfiles,
809
+ ensureBrowserAvailable: () => getDefaultContext().ensureBrowserAvailable(),
810
+ ensureTabAvailable: (targetId) => getDefaultContext().ensureTabAvailable(targetId),
811
+ isHttpReachable: (timeoutMs) => getDefaultContext().isHttpReachable(timeoutMs),
812
+ isReachable: (timeoutMs) => getDefaultContext().isReachable(timeoutMs),
813
+ listTabs: () => getDefaultContext().listTabs(),
814
+ openTab: (url) => getDefaultContext().openTab(url),
815
+ focusTab: (targetId) => getDefaultContext().focusTab(targetId),
816
+ closeTab: (targetId) => getDefaultContext().closeTab(targetId),
817
+ stopRunningBrowser: () => getDefaultContext().stopRunningBrowser(),
818
+ resetProfile: () => getDefaultContext().resetProfile(),
819
+ mapTabError
820
+ };
821
+ }
822
+
823
+ //#endregion
824
+ export { resolveBrowserControlAuth as a, resolveProfile as c, getUsedColors as d, getUsedPorts as f, ensureBrowserControlAuth as i, allocateCdpPort as l, deriveDefaultBrowserCdpPortRange as m, listKnownProfileNames as n, parseHttpUrl as o, isValidProfileName as p, getPwAiModule as r, resolveBrowserConfig as s, createBrowserRouteContext as t, allocateColor as u };