@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,1105 @@
1
+ import { g as resolveStateDir } from "./paths-BMuHNFxg.js";
2
+ import { B as theme, u as defaultRuntime } from "./subsystem-DfKstnEK.js";
3
+ import { g as pathExists } from "./utils-DZ8pnOD5.js";
4
+ import "./thinking-BLU0jXR8.js";
5
+ import "./subagent-registry-CdSjz14I.js";
6
+ import { N as trimLogTail } from "./reply-CR5T_oQJ.js";
7
+ import { t as runCommandWithTimeout } from "./exec-mhSykkaa.js";
8
+ import "./agent-scope-CPphqq-U.js";
9
+ import "./model-selection-Cqt6aJ0G.js";
10
+ import { n as replaceCliName, r as resolveCliName, t as formatCliCommand } from "./command-format-CVL4K5cj.js";
11
+ import "./boolean-Wzu0-e0P.js";
12
+ import "./env-v6411I8h.js";
13
+ import "./lanes-BvSnHq2h.js";
14
+ import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-DaqbUdkI.js";
15
+ import "./manifest-registry-kHX_MFa1.js";
16
+ import "./sessions-B-Cu7JZq.js";
17
+ import "./image-ops-B_AYV3tp.js";
18
+ import "./polls-D6eCdatA.js";
19
+ import "./mime-C1RlpUSs.js";
20
+ import "./cli-session-BVjY_XrW.js";
21
+ import "./dock-jYICmNcI.js";
22
+ import "./logging-54nXj81z.js";
23
+ import "./accounts-Bth3PpPD.js";
24
+ import "./tokens-3psI_Qk2.js";
25
+ import "./sandbox-DBSiVHt_.js";
26
+ import "./chrome-U3DRzjJD.js";
27
+ import "./auth-BNZsOHGF.js";
28
+ import "./server-context-C0xZbYhg.js";
29
+ import "./skills-DV4zKdCx.js";
30
+ import "./routes-B4czFzIb.js";
31
+ import "./paths-Buw_geoe.js";
32
+ import "./ports-DHiKnPRX.js";
33
+ import "./trash-C39a6hKA.js";
34
+ import "./message-channel-D_jIO87f.js";
35
+ import "./plugins-DhcGAPDB.js";
36
+ import "./paths-BXQQzXGQ.js";
37
+ import "./commands-registry-q13H7ng5.js";
38
+ import "./markdown-tables-DJV7eAJZ.js";
39
+ import "./deliver-BBggsviM.js";
40
+ import "./pairing-store-BsXzUDPv.js";
41
+ import "./client-LRKFjo4A.js";
42
+ import "./call-BYDpTVCZ.js";
43
+ import "./nodes-screen-qs3jRBPk.js";
44
+ import { r as formatDurationPrecise } from "./format-duration-Cm3xh8xz.js";
45
+ import "./memory-cli-BcGVkkRJ.js";
46
+ import "./manager-BDPgBQSH.js";
47
+ import "./sqlite-dzD-jMjs.js";
48
+ import "./redact-BHmk44DI.js";
49
+ import "./common-CX5458fH.js";
50
+ import { t as formatDocsLink } from "./links-D2tt2ouh.js";
51
+ import "./progress-oiAjiiNi.js";
52
+ import "./control-service-BtL1Jto_.js";
53
+ import "./dispatcher-DAFbQM-c.js";
54
+ import "./pi-model-discovery-BkqhoPls.js";
55
+ import "./channel-selection-CqcX7Ocw.js";
56
+ import "./delivery-queue-BJQK3oh5.js";
57
+ import "./pi-tools.policy-Csmla32P.js";
58
+ import "./session-cost-usage-FcdJl9c3.js";
59
+ import { r as parseSemver } from "./runtime-guard-CKFdts2L.js";
60
+ import "./program-context-BPos0ivo.js";
61
+ import "./catalog-CqKiUgu6.js";
62
+ import "./skills-status-DX5pcqY3.js";
63
+ import { t as formatHelpExamples } from "./help-format-C6cv_aZp.js";
64
+ import { n as stylePromptMessage, t as stylePromptHint } from "./prompt-style-Cm4wOtKm.js";
65
+ import "./note-CSlg2BnB.js";
66
+ import "./plugin-auto-enable-CjZ238UI.js";
67
+ import "./npm-registry-spec-DQd4M22q.js";
68
+ import "./skill-scanner-o6NgVMD9.js";
69
+ import "./installs-Dh4dHayM.js";
70
+ import "./channels-status-issues-DdJdO866.js";
71
+ import { r as installCompletion } from "./completion-cli-DMQgiObF.js";
72
+ import "./daemon-runtime-C0tz7VAC.js";
73
+ import "./onboard-helpers-Dgh26hgP.js";
74
+ import "./systemd-B43AvOGx.js";
75
+ import "./service-DxLxBhaU.js";
76
+ import "./lifecycle-core-BY4WIf9g.js";
77
+ import { r as runDaemonRestart } from "./daemon-cli-CmlHcC1J.js";
78
+ import "./diagnostics-m79ZlMmZ.js";
79
+ import "./service-audit-M8y4TXVb.js";
80
+ import { t as renderTable } from "./table-bWCLW-3P.js";
81
+ import "./health-Bm8ZTvC3.js";
82
+ import "./health-format-BksT6F68.js";
83
+ import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-Bt1dVPVN.js";
84
+ import "./logging-BIeRw0WR.js";
85
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DwjqdEcK.js";
86
+ import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-DVFelehi.js";
87
+ import { a as globalInstallArgs, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, t as runGatewayUpdate } from "./update-runner-CvxZmbu-.js";
88
+ import "./auth-health-VO_MPqVX.js";
89
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DoZLVjva.js";
90
+ import "./doctor-config-flow-wMHheFkC.js";
91
+ import "./systemd-linger-Dzyxqsod.js";
92
+ import { t as doctorCommand } from "./doctor-BpGxKrBl.js";
93
+ import os from "node:os";
94
+ import path from "node:path";
95
+ import fs from "node:fs/promises";
96
+ import { spawnSync } from "node:child_process";
97
+ import { confirm, isCancel, select, spinner } from "@clack/prompts";
98
+
99
+ //#region src/cli/update-cli/shared.ts
100
+ const OPENCLAW_REPO_URL = "https://github.com/openclaw/openclaw.git";
101
+ const MAX_LOG_CHARS = 8e3;
102
+ const DEFAULT_PACKAGE_NAME = "openclaw";
103
+ const CORE_PACKAGE_NAMES = new Set([DEFAULT_PACKAGE_NAME]);
104
+ function normalizeTag(value) {
105
+ if (!value) return null;
106
+ const trimmed = value.trim();
107
+ if (!trimmed) return null;
108
+ if (trimmed.startsWith("openclaw@")) return trimmed.slice(9);
109
+ if (trimmed.startsWith(`${DEFAULT_PACKAGE_NAME}@`)) return trimmed.slice(`${DEFAULT_PACKAGE_NAME}@`.length);
110
+ return trimmed;
111
+ }
112
+ function normalizeVersionTag(tag) {
113
+ const trimmed = tag.trim();
114
+ if (!trimmed) return null;
115
+ const cleaned = trimmed.startsWith("v") ? trimmed.slice(1) : trimmed;
116
+ return parseSemver(cleaned) ? cleaned : null;
117
+ }
118
+ async function readPackageVersion(root) {
119
+ try {
120
+ const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
121
+ const parsed = JSON.parse(raw);
122
+ return typeof parsed.version === "string" ? parsed.version : null;
123
+ } catch {
124
+ return null;
125
+ }
126
+ }
127
+ async function resolveTargetVersion(tag, timeoutMs) {
128
+ const direct = normalizeVersionTag(tag);
129
+ if (direct) return direct;
130
+ return (await fetchNpmTagVersion({
131
+ tag,
132
+ timeoutMs
133
+ })).version ?? null;
134
+ }
135
+ async function isGitCheckout(root) {
136
+ try {
137
+ await fs.stat(path.join(root, ".git"));
138
+ return true;
139
+ } catch {
140
+ return false;
141
+ }
142
+ }
143
+ async function readPackageName(root) {
144
+ try {
145
+ const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
146
+ const name = JSON.parse(raw)?.name?.trim();
147
+ return name ? name : null;
148
+ } catch {
149
+ return null;
150
+ }
151
+ }
152
+ async function isCorePackage(root) {
153
+ const name = await readPackageName(root);
154
+ return Boolean(name && CORE_PACKAGE_NAMES.has(name));
155
+ }
156
+ async function isEmptyDir(targetPath) {
157
+ try {
158
+ return (await fs.readdir(targetPath)).length === 0;
159
+ } catch {
160
+ return false;
161
+ }
162
+ }
163
+ function resolveGitInstallDir() {
164
+ const override = process.env.OPENCLAW_GIT_DIR?.trim();
165
+ if (override) return path.resolve(override);
166
+ return resolveDefaultGitDir();
167
+ }
168
+ function resolveDefaultGitDir() {
169
+ return resolveStateDir(process.env, os.homedir);
170
+ }
171
+ function resolveNodeRunner() {
172
+ const base = path.basename(process.execPath).toLowerCase();
173
+ if (base === "node" || base === "node.exe") return process.execPath;
174
+ return "node";
175
+ }
176
+ async function resolveUpdateRoot() {
177
+ return await resolveOpenClawPackageRoot({
178
+ moduleUrl: import.meta.url,
179
+ argv1: process.argv[1],
180
+ cwd: process.cwd()
181
+ }) ?? process.cwd();
182
+ }
183
+ async function runUpdateStep(params) {
184
+ const command = params.argv.join(" ");
185
+ params.progress?.onStepStart?.({
186
+ name: params.name,
187
+ command,
188
+ index: 0,
189
+ total: 0
190
+ });
191
+ const started = Date.now();
192
+ const res = await runCommandWithTimeout(params.argv, {
193
+ cwd: params.cwd,
194
+ timeoutMs: params.timeoutMs
195
+ });
196
+ const durationMs = Date.now() - started;
197
+ const stderrTail = trimLogTail(res.stderr, MAX_LOG_CHARS);
198
+ params.progress?.onStepComplete?.({
199
+ name: params.name,
200
+ command,
201
+ index: 0,
202
+ total: 0,
203
+ durationMs,
204
+ exitCode: res.code,
205
+ stderrTail
206
+ });
207
+ return {
208
+ name: params.name,
209
+ command,
210
+ cwd: params.cwd ?? process.cwd(),
211
+ durationMs,
212
+ exitCode: res.code,
213
+ stdoutTail: trimLogTail(res.stdout, MAX_LOG_CHARS),
214
+ stderrTail
215
+ };
216
+ }
217
+ async function ensureGitCheckout(params) {
218
+ if (!await pathExists(params.dir)) return await runUpdateStep({
219
+ name: "git clone",
220
+ argv: [
221
+ "git",
222
+ "clone",
223
+ OPENCLAW_REPO_URL,
224
+ params.dir
225
+ ],
226
+ timeoutMs: params.timeoutMs,
227
+ progress: params.progress
228
+ });
229
+ if (!await isGitCheckout(params.dir)) {
230
+ if (!await isEmptyDir(params.dir)) throw new Error(`OPENCLAW_GIT_DIR points at a non-git directory: ${params.dir}. Set OPENCLAW_GIT_DIR to an empty folder or an anima checkout.`);
231
+ return await runUpdateStep({
232
+ name: "git clone",
233
+ argv: [
234
+ "git",
235
+ "clone",
236
+ OPENCLAW_REPO_URL,
237
+ params.dir
238
+ ],
239
+ cwd: params.dir,
240
+ timeoutMs: params.timeoutMs,
241
+ progress: params.progress
242
+ });
243
+ }
244
+ if (!await isCorePackage(params.dir)) throw new Error(`OPENCLAW_GIT_DIR does not look like a core checkout: ${params.dir}.`);
245
+ return null;
246
+ }
247
+ async function resolveGlobalManager(params) {
248
+ const runCommand = async (argv, options) => {
249
+ const res = await runCommandWithTimeout(argv, options);
250
+ return {
251
+ stdout: res.stdout,
252
+ stderr: res.stderr,
253
+ code: res.code
254
+ };
255
+ };
256
+ if (params.installKind === "package") {
257
+ const detected = await detectGlobalInstallManagerForRoot(runCommand, params.root, params.timeoutMs);
258
+ if (detected) return detected;
259
+ }
260
+ return await detectGlobalInstallManagerByPresence(runCommand, params.timeoutMs) ?? "npm";
261
+ }
262
+ async function tryWriteCompletionCache(root, jsonMode) {
263
+ const binPath = path.join(root, "openclaw.mjs");
264
+ if (!await pathExists(binPath)) return;
265
+ const result = spawnSync(resolveNodeRunner(), [
266
+ binPath,
267
+ "completion",
268
+ "--write-state"
269
+ ], {
270
+ cwd: root,
271
+ env: process.env,
272
+ encoding: "utf-8"
273
+ });
274
+ if (result.error) {
275
+ if (!jsonMode) defaultRuntime.log(theme.warn(`Completion cache update failed: ${String(result.error)}`));
276
+ return;
277
+ }
278
+ if (result.status !== 0 && !jsonMode) {
279
+ const stderr = (result.stderr ?? "").toString().trim();
280
+ const detail = stderr ? ` (${stderr})` : "";
281
+ defaultRuntime.log(theme.warn(`Completion cache update failed${detail}.`));
282
+ }
283
+ }
284
+
285
+ //#endregion
286
+ //#region src/cli/update-cli/status.ts
287
+ function formatGitStatusLine(params) {
288
+ const shortSha = params.sha ? params.sha.slice(0, 8) : null;
289
+ const branch = params.branch && params.branch !== "HEAD" ? params.branch : null;
290
+ const tag = params.tag;
291
+ return [
292
+ branch ?? (tag ? "detached" : "git"),
293
+ tag ? `tag ${tag}` : null,
294
+ shortSha ? `@ ${shortSha}` : null
295
+ ].filter(Boolean).join(" · ");
296
+ }
297
+ async function updateStatusCommand(opts) {
298
+ const timeoutMs = opts.timeout ? Number.parseInt(opts.timeout, 10) * 1e3 : void 0;
299
+ if (timeoutMs !== void 0 && (Number.isNaN(timeoutMs) || timeoutMs <= 0)) {
300
+ defaultRuntime.error("--timeout must be a positive integer (seconds)");
301
+ defaultRuntime.exit(1);
302
+ return;
303
+ }
304
+ const root = await resolveUpdateRoot();
305
+ const configSnapshot = await readConfigFileSnapshot();
306
+ const configChannel = configSnapshot.valid ? normalizeUpdateChannel(configSnapshot.config.update?.channel) : null;
307
+ const update = await checkUpdateStatus({
308
+ root,
309
+ timeoutMs: timeoutMs ?? 3500,
310
+ fetchGit: true,
311
+ includeRegistry: true
312
+ });
313
+ const channelInfo = resolveEffectiveUpdateChannel({
314
+ configChannel,
315
+ installKind: update.installKind,
316
+ git: update.git ? {
317
+ tag: update.git.tag,
318
+ branch: update.git.branch
319
+ } : void 0
320
+ });
321
+ const channelLabel = formatUpdateChannelLabel({
322
+ channel: channelInfo.channel,
323
+ source: channelInfo.source,
324
+ gitTag: update.git?.tag ?? null,
325
+ gitBranch: update.git?.branch ?? null
326
+ });
327
+ const gitLabel = update.installKind === "git" ? formatGitStatusLine({
328
+ branch: update.git?.branch ?? null,
329
+ tag: update.git?.tag ?? null,
330
+ sha: update.git?.sha ?? null
331
+ }) : null;
332
+ const updateAvailability = resolveUpdateAvailability(update);
333
+ const updateLine = formatUpdateOneLiner(update).replace(/^Update:\s*/i, "");
334
+ if (opts.json) {
335
+ defaultRuntime.log(JSON.stringify({
336
+ update,
337
+ channel: {
338
+ value: channelInfo.channel,
339
+ source: channelInfo.source,
340
+ label: channelLabel,
341
+ config: configChannel
342
+ },
343
+ availability: updateAvailability
344
+ }, null, 2));
345
+ return;
346
+ }
347
+ const tableWidth = Math.max(60, (process.stdout.columns ?? 120) - 1);
348
+ const rows = [
349
+ {
350
+ Item: "Install",
351
+ Value: update.installKind === "git" ? `git (${update.root ?? "unknown"})` : update.installKind === "package" ? update.packageManager : "unknown"
352
+ },
353
+ {
354
+ Item: "Channel",
355
+ Value: channelLabel
356
+ },
357
+ ...gitLabel ? [{
358
+ Item: "Git",
359
+ Value: gitLabel
360
+ }] : [],
361
+ {
362
+ Item: "Update",
363
+ Value: updateAvailability.available ? theme.warn(`available · ${updateLine}`) : updateLine
364
+ }
365
+ ];
366
+ defaultRuntime.log(theme.heading("Anima update status"));
367
+ defaultRuntime.log("");
368
+ defaultRuntime.log(renderTable({
369
+ width: tableWidth,
370
+ columns: [{
371
+ key: "Item",
372
+ header: "Item",
373
+ minWidth: 10
374
+ }, {
375
+ key: "Value",
376
+ header: "Value",
377
+ flex: true,
378
+ minWidth: 24
379
+ }],
380
+ rows
381
+ }).trimEnd());
382
+ defaultRuntime.log("");
383
+ const updateHint = formatUpdateAvailableHint(update);
384
+ if (updateHint) defaultRuntime.log(theme.warn(updateHint));
385
+ }
386
+
387
+ //#endregion
388
+ //#region src/cli/update-cli/progress.ts
389
+ const STEP_LABELS = {
390
+ "clean check": "Working directory is clean",
391
+ "upstream check": "Upstream branch exists",
392
+ "git fetch": "Fetching latest changes",
393
+ "git rebase": "Rebasing onto target commit",
394
+ "git rev-parse @{upstream}": "Resolving upstream commit",
395
+ "git rev-list": "Enumerating candidate commits",
396
+ "git clone": "Cloning git checkout",
397
+ "preflight worktree": "Preparing preflight worktree",
398
+ "preflight cleanup": "Cleaning preflight worktree",
399
+ "deps install": "Installing dependencies",
400
+ build: "Building",
401
+ "ui:build": "Building UI assets",
402
+ "ui:build (post-doctor repair)": "Restoring missing UI assets",
403
+ "ui assets verify": "Validating UI assets",
404
+ "anima doctor entry": "Checking doctor entrypoint",
405
+ "anima doctor": "Running doctor checks",
406
+ "git rev-parse HEAD (after)": "Verifying update",
407
+ "global update": "Updating via package manager",
408
+ "global install": "Installing global package"
409
+ };
410
+ function getStepLabel(step) {
411
+ return STEP_LABELS[step.name] ?? step.name;
412
+ }
413
+ function createUpdateProgress(enabled) {
414
+ if (!enabled) return {
415
+ progress: {},
416
+ stop: () => {}
417
+ };
418
+ let currentSpinner = null;
419
+ return {
420
+ progress: {
421
+ onStepStart: (step) => {
422
+ currentSpinner = spinner();
423
+ currentSpinner.start(theme.accent(getStepLabel(step)));
424
+ },
425
+ onStepComplete: (step) => {
426
+ if (!currentSpinner) return;
427
+ const label = getStepLabel(step);
428
+ const duration = theme.muted(`(${formatDurationPrecise(step.durationMs)})`);
429
+ const icon = step.exitCode === 0 ? theme.success("✓") : theme.error("✗");
430
+ currentSpinner.stop(`${icon} ${label} ${duration}`);
431
+ currentSpinner = null;
432
+ if (step.exitCode !== 0 && step.stderrTail) {
433
+ const lines = step.stderrTail.split("\n").slice(-10);
434
+ for (const line of lines) if (line.trim()) defaultRuntime.log(` ${theme.error(line)}`);
435
+ }
436
+ }
437
+ },
438
+ stop: () => {
439
+ if (currentSpinner) {
440
+ currentSpinner.stop();
441
+ currentSpinner = null;
442
+ }
443
+ }
444
+ };
445
+ }
446
+ function formatStepStatus(exitCode) {
447
+ if (exitCode === 0) return theme.success("✓");
448
+ if (exitCode === null) return theme.warn("?");
449
+ return theme.error("✗");
450
+ }
451
+ function printResult(result, opts) {
452
+ if (opts.json) {
453
+ defaultRuntime.log(JSON.stringify(result, null, 2));
454
+ return;
455
+ }
456
+ const statusColor = result.status === "ok" ? theme.success : result.status === "skipped" ? theme.warn : theme.error;
457
+ defaultRuntime.log("");
458
+ defaultRuntime.log(`${theme.heading("Update Result:")} ${statusColor(result.status.toUpperCase())}`);
459
+ if (result.root) defaultRuntime.log(` Root: ${theme.muted(result.root)}`);
460
+ if (result.reason) defaultRuntime.log(` Reason: ${theme.muted(result.reason)}`);
461
+ if (result.before?.version || result.before?.sha) {
462
+ const before = result.before.version ?? result.before.sha?.slice(0, 8) ?? "";
463
+ defaultRuntime.log(` Before: ${theme.muted(before)}`);
464
+ }
465
+ if (result.after?.version || result.after?.sha) {
466
+ const after = result.after.version ?? result.after.sha?.slice(0, 8) ?? "";
467
+ defaultRuntime.log(` After: ${theme.muted(after)}`);
468
+ }
469
+ if (!opts.hideSteps && result.steps.length > 0) {
470
+ defaultRuntime.log("");
471
+ defaultRuntime.log(theme.heading("Steps:"));
472
+ for (const step of result.steps) {
473
+ const status = formatStepStatus(step.exitCode);
474
+ const duration = theme.muted(`(${formatDurationPrecise(step.durationMs)})`);
475
+ defaultRuntime.log(` ${status} ${step.name} ${duration}`);
476
+ if (step.exitCode !== 0 && step.stderrTail) {
477
+ const lines = step.stderrTail.split("\n").slice(0, 5);
478
+ for (const line of lines) if (line.trim()) defaultRuntime.log(` ${theme.error(line)}`);
479
+ }
480
+ }
481
+ }
482
+ defaultRuntime.log("");
483
+ defaultRuntime.log(`Total time: ${theme.muted(formatDurationPrecise(result.durationMs))}`);
484
+ }
485
+
486
+ //#endregion
487
+ //#region src/cli/update-cli/suppress-deprecations.ts
488
+ /**
489
+ * Suppress Node.js deprecation warnings.
490
+ *
491
+ * On Node.js v23+ `process.noDeprecation` may be a read-only property
492
+ * (defined via a getter on the prototype with no setter), so the
493
+ * assignment can throw. We fall back to the environment variable which
494
+ * achieves the same effect.
495
+ */
496
+ function suppressDeprecations() {
497
+ try {
498
+ process.noDeprecation = true;
499
+ } catch {}
500
+ process.env.NODE_NO_WARNINGS = "1";
501
+ }
502
+
503
+ //#endregion
504
+ //#region src/cli/update-cli/update-command.ts
505
+ const CLI_NAME = resolveCliName();
506
+ const UPDATE_QUIPS = [
507
+ "Leveled up! New skills unlocked. You're welcome.",
508
+ "Fresh code, same lobster. Miss me?",
509
+ "Back and better. Did you even notice I was gone?",
510
+ "Update complete. I learned some new tricks while I was out.",
511
+ "Upgraded! Now with 23% more sass.",
512
+ "I've evolved. Try to keep up.",
513
+ "New version, who dis? Oh right, still me but shinier.",
514
+ "Patched, polished, and ready to pinch. Let's go.",
515
+ "The lobster has molted. Harder shell, sharper claws.",
516
+ "Update done! Check the changelog or just trust me, it's good.",
517
+ "Reborn from the boiling waters of npm. Stronger now.",
518
+ "I went away and came back smarter. You should try it sometime.",
519
+ "Update complete. The bugs feared me, so they left.",
520
+ "New version installed. Old version sends its regards.",
521
+ "Firmware fresh. Brain wrinkles: increased.",
522
+ "I've seen things you wouldn't believe. Anyway, I'm updated.",
523
+ "Back online. The changelog is long but our friendship is longer.",
524
+ "Upgraded! Peter fixed stuff. Blame him if it breaks.",
525
+ "Molting complete. Please don't look at my soft shell phase.",
526
+ "Version bump! Same chaos energy, fewer crashes (probably)."
527
+ ];
528
+ function pickUpdateQuip() {
529
+ return UPDATE_QUIPS[Math.floor(Math.random() * UPDATE_QUIPS.length)] ?? "Update complete.";
530
+ }
531
+ async function tryInstallShellCompletion(opts) {
532
+ if (opts.jsonMode || !process.stdin.isTTY) return;
533
+ const status = await checkShellCompletionStatus(CLI_NAME);
534
+ if (status.usesSlowPattern) {
535
+ defaultRuntime.log(theme.muted("Upgrading shell completion to cached version..."));
536
+ if (await ensureCompletionCacheExists(CLI_NAME)) await installCompletion(status.shell, true, CLI_NAME);
537
+ return;
538
+ }
539
+ if (status.profileInstalled && !status.cacheExists) {
540
+ defaultRuntime.log(theme.muted("Regenerating shell completion cache..."));
541
+ await ensureCompletionCacheExists(CLI_NAME);
542
+ return;
543
+ }
544
+ if (!status.profileInstalled) {
545
+ defaultRuntime.log("");
546
+ defaultRuntime.log(theme.heading("Shell completion"));
547
+ const shouldInstall = await confirm({
548
+ message: stylePromptMessage(`Enable ${status.shell} shell completion for ${CLI_NAME}?`),
549
+ initialValue: true
550
+ });
551
+ if (isCancel(shouldInstall) || !shouldInstall) {
552
+ if (!opts.skipPrompt) defaultRuntime.log(theme.muted(`Skipped. Run \`${replaceCliName(formatCliCommand("anima completion --install"), CLI_NAME)}\` later to enable.`));
553
+ return;
554
+ }
555
+ if (!await ensureCompletionCacheExists(CLI_NAME)) {
556
+ defaultRuntime.log(theme.warn("Failed to generate completion cache."));
557
+ return;
558
+ }
559
+ await installCompletion(status.shell, opts.skipPrompt, CLI_NAME);
560
+ }
561
+ }
562
+ async function runPackageInstallUpdate(params) {
563
+ const manager = await resolveGlobalManager({
564
+ root: params.root,
565
+ installKind: params.installKind,
566
+ timeoutMs: params.timeoutMs
567
+ });
568
+ const runCommand = async (argv, options) => {
569
+ const res = await runCommandWithTimeout(argv, options);
570
+ return {
571
+ stdout: res.stdout,
572
+ stderr: res.stderr,
573
+ code: res.code
574
+ };
575
+ };
576
+ const pkgRoot = await resolveGlobalPackageRoot(manager, runCommand, params.timeoutMs);
577
+ const packageName = (pkgRoot ? await readPackageName(pkgRoot) : await readPackageName(params.root)) ?? DEFAULT_PACKAGE_NAME;
578
+ const beforeVersion = pkgRoot ? await readPackageVersion(pkgRoot) : null;
579
+ if (pkgRoot) await cleanupGlobalRenameDirs({
580
+ globalRoot: path.dirname(pkgRoot),
581
+ packageName
582
+ });
583
+ const steps = [await runUpdateStep({
584
+ name: "global update",
585
+ argv: globalInstallArgs(manager, `${packageName}@${params.tag}`),
586
+ timeoutMs: params.timeoutMs,
587
+ progress: params.progress
588
+ })];
589
+ let afterVersion = beforeVersion;
590
+ if (pkgRoot) {
591
+ afterVersion = await readPackageVersion(pkgRoot);
592
+ const entryPath = path.join(pkgRoot, "dist", "entry.js");
593
+ if (await pathExists(entryPath)) {
594
+ const doctorStep = await runUpdateStep({
595
+ name: `${CLI_NAME} doctor`,
596
+ argv: [
597
+ resolveNodeRunner(),
598
+ entryPath,
599
+ "doctor",
600
+ "--non-interactive"
601
+ ],
602
+ timeoutMs: params.timeoutMs,
603
+ progress: params.progress
604
+ });
605
+ steps.push(doctorStep);
606
+ }
607
+ }
608
+ const failedStep = steps.find((step) => step.exitCode !== 0);
609
+ return {
610
+ status: failedStep ? "error" : "ok",
611
+ mode: manager,
612
+ root: pkgRoot ?? params.root,
613
+ reason: failedStep ? failedStep.name : void 0,
614
+ before: { version: beforeVersion },
615
+ after: { version: afterVersion },
616
+ steps,
617
+ durationMs: Date.now() - params.startedAt
618
+ };
619
+ }
620
+ async function runGitUpdate(params) {
621
+ const updateRoot = params.switchToGit ? resolveGitInstallDir() : params.root;
622
+ const effectiveTimeout = params.timeoutMs ?? 20 * 6e4;
623
+ const cloneStep = params.switchToGit ? await ensureGitCheckout({
624
+ dir: updateRoot,
625
+ timeoutMs: effectiveTimeout,
626
+ progress: params.progress
627
+ }) : null;
628
+ if (cloneStep && cloneStep.exitCode !== 0) {
629
+ const result = {
630
+ status: "error",
631
+ mode: "git",
632
+ root: updateRoot,
633
+ reason: cloneStep.name,
634
+ steps: [cloneStep],
635
+ durationMs: Date.now() - params.startedAt
636
+ };
637
+ params.stop();
638
+ printResult(result, {
639
+ ...params.opts,
640
+ hideSteps: params.showProgress
641
+ });
642
+ defaultRuntime.exit(1);
643
+ return result;
644
+ }
645
+ const updateResult = await runGatewayUpdate({
646
+ cwd: updateRoot,
647
+ argv1: params.switchToGit ? void 0 : process.argv[1],
648
+ timeoutMs: params.timeoutMs,
649
+ progress: params.progress,
650
+ channel: params.channel,
651
+ tag: params.tag
652
+ });
653
+ const steps = [...cloneStep ? [cloneStep] : [], ...updateResult.steps];
654
+ if (params.switchToGit && updateResult.status === "ok") {
655
+ const installStep = await runUpdateStep({
656
+ name: "global install",
657
+ argv: globalInstallArgs(await resolveGlobalManager({
658
+ root: params.root,
659
+ installKind: params.installKind,
660
+ timeoutMs: effectiveTimeout
661
+ }), updateRoot),
662
+ cwd: updateRoot,
663
+ timeoutMs: effectiveTimeout,
664
+ progress: params.progress
665
+ });
666
+ steps.push(installStep);
667
+ const failedStep = installStep.exitCode !== 0 ? installStep : null;
668
+ return {
669
+ ...updateResult,
670
+ status: updateResult.status === "ok" && !failedStep ? "ok" : "error",
671
+ steps,
672
+ durationMs: Date.now() - params.startedAt
673
+ };
674
+ }
675
+ return {
676
+ ...updateResult,
677
+ steps,
678
+ durationMs: Date.now() - params.startedAt
679
+ };
680
+ }
681
+ async function updatePluginsAfterCoreUpdate(params) {
682
+ if (!params.configSnapshot.valid) {
683
+ if (!params.opts.json) defaultRuntime.log(theme.warn("Skipping plugin updates: config is invalid."));
684
+ return;
685
+ }
686
+ const pluginLogger = params.opts.json ? {} : {
687
+ info: (msg) => defaultRuntime.log(msg),
688
+ warn: (msg) => defaultRuntime.log(theme.warn(msg)),
689
+ error: (msg) => defaultRuntime.log(theme.error(msg))
690
+ };
691
+ if (!params.opts.json) {
692
+ defaultRuntime.log("");
693
+ defaultRuntime.log(theme.heading("Updating plugins..."));
694
+ }
695
+ const syncResult = await syncPluginsForUpdateChannel({
696
+ config: params.configSnapshot.config,
697
+ channel: params.channel,
698
+ workspaceDir: params.root,
699
+ logger: pluginLogger
700
+ });
701
+ let pluginConfig = syncResult.config;
702
+ const npmResult = await updateNpmInstalledPlugins({
703
+ config: pluginConfig,
704
+ skipIds: new Set(syncResult.summary.switchedToNpm),
705
+ logger: pluginLogger
706
+ });
707
+ pluginConfig = npmResult.config;
708
+ if (syncResult.changed || npmResult.changed) await writeConfigFile(pluginConfig);
709
+ if (params.opts.json) return;
710
+ const summarizeList = (list) => {
711
+ if (list.length <= 6) return list.join(", ");
712
+ return `${list.slice(0, 6).join(", ")} +${list.length - 6} more`;
713
+ };
714
+ if (syncResult.summary.switchedToBundled.length > 0) defaultRuntime.log(theme.muted(`Switched to bundled plugins: ${summarizeList(syncResult.summary.switchedToBundled)}.`));
715
+ if (syncResult.summary.switchedToNpm.length > 0) defaultRuntime.log(theme.muted(`Restored npm plugins: ${summarizeList(syncResult.summary.switchedToNpm)}.`));
716
+ for (const warning of syncResult.summary.warnings) defaultRuntime.log(theme.warn(warning));
717
+ for (const error of syncResult.summary.errors) defaultRuntime.log(theme.error(error));
718
+ const updated = npmResult.outcomes.filter((entry) => entry.status === "updated").length;
719
+ const unchanged = npmResult.outcomes.filter((entry) => entry.status === "unchanged").length;
720
+ const failed = npmResult.outcomes.filter((entry) => entry.status === "error").length;
721
+ const skipped = npmResult.outcomes.filter((entry) => entry.status === "skipped").length;
722
+ if (npmResult.outcomes.length === 0) defaultRuntime.log(theme.muted("No plugin updates needed."));
723
+ else {
724
+ const parts = [`${updated} updated`, `${unchanged} unchanged`];
725
+ if (failed > 0) parts.push(`${failed} failed`);
726
+ if (skipped > 0) parts.push(`${skipped} skipped`);
727
+ defaultRuntime.log(theme.muted(`npm plugins: ${parts.join(", ")}.`));
728
+ }
729
+ for (const outcome of npmResult.outcomes) {
730
+ if (outcome.status !== "error") continue;
731
+ defaultRuntime.log(theme.error(outcome.message));
732
+ }
733
+ }
734
+ async function maybeRestartService(params) {
735
+ if (params.shouldRestart) {
736
+ if (!params.opts.json) {
737
+ defaultRuntime.log("");
738
+ defaultRuntime.log(theme.heading("Restarting service..."));
739
+ }
740
+ try {
741
+ const restarted = await runDaemonRestart();
742
+ if (!params.opts.json && restarted) {
743
+ defaultRuntime.log(theme.success("Daemon restarted successfully."));
744
+ defaultRuntime.log("");
745
+ process.env.OPENCLAW_UPDATE_IN_PROGRESS = "1";
746
+ try {
747
+ await doctorCommand(defaultRuntime, { nonInteractive: !(Boolean(process.stdin.isTTY) && !params.opts.json && params.opts.yes !== true) });
748
+ } catch (err) {
749
+ defaultRuntime.log(theme.warn(`Doctor failed: ${String(err)}`));
750
+ } finally {
751
+ delete process.env.OPENCLAW_UPDATE_IN_PROGRESS;
752
+ }
753
+ }
754
+ } catch (err) {
755
+ if (!params.opts.json) {
756
+ defaultRuntime.log(theme.warn(`Daemon restart failed: ${String(err)}`));
757
+ defaultRuntime.log(theme.muted(`You may need to restart the service manually: ${replaceCliName(formatCliCommand("anima gateway restart"), CLI_NAME)}`));
758
+ }
759
+ }
760
+ return;
761
+ }
762
+ if (!params.opts.json) {
763
+ defaultRuntime.log("");
764
+ if (params.result.mode === "npm" || params.result.mode === "pnpm") defaultRuntime.log(theme.muted(`Tip: Run \`${replaceCliName(formatCliCommand("anima doctor"), CLI_NAME)}\`, then \`${replaceCliName(formatCliCommand("anima gateway restart"), CLI_NAME)}\` to apply updates to a running gateway.`));
765
+ else defaultRuntime.log(theme.muted(`Tip: Run \`${replaceCliName(formatCliCommand("anima gateway restart"), CLI_NAME)}\` to apply updates to a running gateway.`));
766
+ }
767
+ }
768
+ async function updateCommand(opts) {
769
+ suppressDeprecations();
770
+ const timeoutMs = opts.timeout ? Number.parseInt(opts.timeout, 10) * 1e3 : void 0;
771
+ const shouldRestart = opts.restart !== false;
772
+ if (timeoutMs !== void 0 && (Number.isNaN(timeoutMs) || timeoutMs <= 0)) {
773
+ defaultRuntime.error("--timeout must be a positive integer (seconds)");
774
+ defaultRuntime.exit(1);
775
+ return;
776
+ }
777
+ const root = await resolveUpdateRoot();
778
+ const updateStatus = await checkUpdateStatus({
779
+ root,
780
+ timeoutMs: timeoutMs ?? 3500,
781
+ fetchGit: false,
782
+ includeRegistry: false
783
+ });
784
+ const configSnapshot = await readConfigFileSnapshot();
785
+ const storedChannel = configSnapshot.valid ? normalizeUpdateChannel(configSnapshot.config.update?.channel) : null;
786
+ const requestedChannel = normalizeUpdateChannel(opts.channel);
787
+ if (opts.channel && !requestedChannel) {
788
+ defaultRuntime.error(`--channel must be "stable", "beta", or "dev" (got "${opts.channel}")`);
789
+ defaultRuntime.exit(1);
790
+ return;
791
+ }
792
+ if (opts.channel && !configSnapshot.valid) {
793
+ const issues = configSnapshot.issues.map((issue) => `- ${issue.path}: ${issue.message}`);
794
+ defaultRuntime.error(["Config is invalid; cannot set update channel.", ...issues].join("\n"));
795
+ defaultRuntime.exit(1);
796
+ return;
797
+ }
798
+ const installKind = updateStatus.installKind;
799
+ const switchToGit = requestedChannel === "dev" && installKind !== "git";
800
+ const switchToPackage = requestedChannel !== null && requestedChannel !== "dev" && installKind === "git";
801
+ const updateInstallKind = switchToGit ? "git" : switchToPackage ? "package" : installKind;
802
+ const channel = requestedChannel ?? storedChannel ?? (updateInstallKind === "git" ? DEFAULT_GIT_CHANNEL : DEFAULT_PACKAGE_CHANNEL);
803
+ const explicitTag = normalizeTag(opts.tag);
804
+ let tag = explicitTag ?? channelToNpmTag(channel);
805
+ if (updateInstallKind !== "git") {
806
+ const currentVersion = switchToPackage ? null : await readPackageVersion(root);
807
+ let fallbackToLatest = false;
808
+ const targetVersion = explicitTag ? await resolveTargetVersion(tag, timeoutMs) : await resolveNpmChannelTag({
809
+ channel,
810
+ timeoutMs
811
+ }).then((resolved) => {
812
+ tag = resolved.tag;
813
+ fallbackToLatest = channel === "beta" && resolved.tag === "latest";
814
+ return resolved.version;
815
+ });
816
+ const cmp = currentVersion && targetVersion ? compareSemverStrings(currentVersion, targetVersion) : null;
817
+ if (!fallbackToLatest && currentVersion != null && (targetVersion == null || cmp != null && cmp > 0) && !opts.yes) {
818
+ if (!process.stdin.isTTY || opts.json) {
819
+ defaultRuntime.error(["Downgrade confirmation required.", "Downgrading can break configuration. Re-run in a TTY to confirm."].join("\n"));
820
+ defaultRuntime.exit(1);
821
+ return;
822
+ }
823
+ const ok = await confirm({
824
+ message: stylePromptMessage(`Downgrading from ${currentVersion} to ${targetVersion ?? `${tag} (unknown)`} can break configuration. Continue?`),
825
+ initialValue: false
826
+ });
827
+ if (isCancel(ok) || !ok) {
828
+ if (!opts.json) defaultRuntime.log(theme.muted("Update cancelled."));
829
+ defaultRuntime.exit(0);
830
+ return;
831
+ }
832
+ }
833
+ } else if (opts.tag && !opts.json) defaultRuntime.log(theme.muted("Note: --tag applies to npm installs only; git updates ignore it."));
834
+ if (requestedChannel && configSnapshot.valid) {
835
+ await writeConfigFile({
836
+ ...configSnapshot.config,
837
+ update: {
838
+ ...configSnapshot.config.update,
839
+ channel: requestedChannel
840
+ }
841
+ });
842
+ if (!opts.json) defaultRuntime.log(theme.muted(`Update channel set to ${requestedChannel}.`));
843
+ }
844
+ const showProgress = !opts.json && process.stdout.isTTY;
845
+ if (!opts.json) {
846
+ defaultRuntime.log(theme.heading("Updating Anima..."));
847
+ defaultRuntime.log("");
848
+ }
849
+ const { progress, stop } = createUpdateProgress(showProgress);
850
+ const startedAt = Date.now();
851
+ const result = switchToPackage ? await runPackageInstallUpdate({
852
+ root,
853
+ installKind,
854
+ tag,
855
+ timeoutMs: timeoutMs ?? 20 * 6e4,
856
+ startedAt,
857
+ progress
858
+ }) : await runGitUpdate({
859
+ root,
860
+ switchToGit,
861
+ installKind,
862
+ timeoutMs,
863
+ startedAt,
864
+ progress,
865
+ channel,
866
+ tag,
867
+ showProgress,
868
+ opts,
869
+ stop
870
+ });
871
+ stop();
872
+ printResult(result, {
873
+ ...opts,
874
+ hideSteps: showProgress
875
+ });
876
+ if (result.status === "error") {
877
+ defaultRuntime.exit(1);
878
+ return;
879
+ }
880
+ if (result.status === "skipped") {
881
+ if (result.reason === "dirty") defaultRuntime.log(theme.warn("Skipped: working directory has uncommitted changes. Commit or stash them first."));
882
+ if (result.reason === "not-git-install") {
883
+ defaultRuntime.log(theme.warn(`Skipped: this Anima install isn't a git checkout, and the package manager couldn't be detected. Update via your package manager, then run \`${replaceCliName(formatCliCommand("anima doctor"), CLI_NAME)}\` and \`${replaceCliName(formatCliCommand("anima gateway restart"), CLI_NAME)}\`.`));
884
+ defaultRuntime.log(theme.muted(`Examples: \`${replaceCliName("npm i -g anima@latest", CLI_NAME)}\` or \`${replaceCliName("pnpm add -g anima@latest", CLI_NAME)}\``));
885
+ }
886
+ defaultRuntime.exit(0);
887
+ return;
888
+ }
889
+ await updatePluginsAfterCoreUpdate({
890
+ root,
891
+ channel,
892
+ configSnapshot,
893
+ opts
894
+ });
895
+ await tryWriteCompletionCache(root, Boolean(opts.json));
896
+ await tryInstallShellCompletion({
897
+ jsonMode: Boolean(opts.json),
898
+ skipPrompt: Boolean(opts.yes)
899
+ });
900
+ await maybeRestartService({
901
+ shouldRestart,
902
+ result,
903
+ opts
904
+ });
905
+ if (!opts.json) defaultRuntime.log(theme.muted(pickUpdateQuip()));
906
+ }
907
+
908
+ //#endregion
909
+ //#region src/cli/update-cli/wizard.ts
910
+ const selectStyled = (params) => select({
911
+ ...params,
912
+ message: stylePromptMessage(params.message),
913
+ options: params.options.map((opt) => opt.hint === void 0 ? opt : {
914
+ ...opt,
915
+ hint: stylePromptHint(opt.hint)
916
+ })
917
+ });
918
+ async function updateWizardCommand(opts = {}) {
919
+ if (!process.stdin.isTTY) {
920
+ defaultRuntime.error("Update wizard requires a TTY. Use `anima update --channel <stable|beta|dev>` instead.");
921
+ defaultRuntime.exit(1);
922
+ return;
923
+ }
924
+ const timeoutMs = opts.timeout ? Number.parseInt(opts.timeout, 10) * 1e3 : void 0;
925
+ if (timeoutMs !== void 0 && (Number.isNaN(timeoutMs) || timeoutMs <= 0)) {
926
+ defaultRuntime.error("--timeout must be a positive integer (seconds)");
927
+ defaultRuntime.exit(1);
928
+ return;
929
+ }
930
+ const root = await resolveUpdateRoot();
931
+ const [updateStatus, configSnapshot] = await Promise.all([checkUpdateStatus({
932
+ root,
933
+ timeoutMs: timeoutMs ?? 3500,
934
+ fetchGit: false,
935
+ includeRegistry: false
936
+ }), readConfigFileSnapshot()]);
937
+ const channelInfo = resolveEffectiveUpdateChannel({
938
+ configChannel: configSnapshot.valid ? normalizeUpdateChannel(configSnapshot.config.update?.channel) : null,
939
+ installKind: updateStatus.installKind,
940
+ git: updateStatus.git ? {
941
+ tag: updateStatus.git.tag,
942
+ branch: updateStatus.git.branch
943
+ } : void 0
944
+ });
945
+ const channelLabel = formatUpdateChannelLabel({
946
+ channel: channelInfo.channel,
947
+ source: channelInfo.source,
948
+ gitTag: updateStatus.git?.tag ?? null,
949
+ gitBranch: updateStatus.git?.branch ?? null
950
+ });
951
+ const pickedChannel = await selectStyled({
952
+ message: "Update channel",
953
+ options: [
954
+ {
955
+ value: "keep",
956
+ label: `Keep current (${channelInfo.channel})`,
957
+ hint: channelLabel
958
+ },
959
+ {
960
+ value: "stable",
961
+ label: "Stable",
962
+ hint: "Tagged releases (npm latest)"
963
+ },
964
+ {
965
+ value: "beta",
966
+ label: "Beta",
967
+ hint: "Prereleases (npm beta)"
968
+ },
969
+ {
970
+ value: "dev",
971
+ label: "Dev",
972
+ hint: "Git main"
973
+ }
974
+ ],
975
+ initialValue: "keep"
976
+ });
977
+ if (isCancel(pickedChannel)) {
978
+ defaultRuntime.log(theme.muted("Update cancelled."));
979
+ defaultRuntime.exit(0);
980
+ return;
981
+ }
982
+ const requestedChannel = pickedChannel === "keep" ? null : pickedChannel;
983
+ if (requestedChannel === "dev" && updateStatus.installKind !== "git") {
984
+ const gitDir = resolveGitInstallDir();
985
+ if (!await isGitCheckout(gitDir)) {
986
+ if (await pathExists(gitDir)) {
987
+ if (!await isEmptyDir(gitDir)) {
988
+ defaultRuntime.error(`OPENCLAW_GIT_DIR points at a non-git directory: ${gitDir}. Set OPENCLAW_GIT_DIR to an empty folder or an anima checkout.`);
989
+ defaultRuntime.exit(1);
990
+ return;
991
+ }
992
+ }
993
+ const ok = await confirm({
994
+ message: stylePromptMessage(`Create a git checkout at ${gitDir}? (override via OPENCLAW_GIT_DIR)`),
995
+ initialValue: true
996
+ });
997
+ if (isCancel(ok) || !ok) {
998
+ defaultRuntime.log(theme.muted("Update cancelled."));
999
+ defaultRuntime.exit(0);
1000
+ return;
1001
+ }
1002
+ }
1003
+ }
1004
+ const restart = await confirm({
1005
+ message: stylePromptMessage("Restart the gateway service after update?"),
1006
+ initialValue: true
1007
+ });
1008
+ if (isCancel(restart)) {
1009
+ defaultRuntime.log(theme.muted("Update cancelled."));
1010
+ defaultRuntime.exit(0);
1011
+ return;
1012
+ }
1013
+ try {
1014
+ await updateCommand({
1015
+ channel: requestedChannel ?? void 0,
1016
+ restart: Boolean(restart),
1017
+ timeout: opts.timeout
1018
+ });
1019
+ } catch (err) {
1020
+ defaultRuntime.error(String(err));
1021
+ defaultRuntime.exit(1);
1022
+ }
1023
+ }
1024
+
1025
+ //#endregion
1026
+ //#region src/cli/update-cli.ts
1027
+ function registerUpdateCli(program) {
1028
+ const update = program.command("update").description("Update Anima to the latest version").option("--json", "Output result as JSON", false).option("--no-restart", "Skip restarting the gateway service after a successful update").option("--channel <stable|beta|dev>", "Persist update channel (git + npm)").option("--tag <dist-tag|version>", "Override npm dist-tag or version for this update").option("--timeout <seconds>", "Timeout for each update step in seconds (default: 1200)").option("--yes", "Skip confirmation prompts (non-interactive)", false).addHelpText("after", () => {
1029
+ const fmtExamples = [
1030
+ ["anima update", "Update a source checkout (git)"],
1031
+ ["anima update --channel beta", "Switch to beta channel (git + npm)"],
1032
+ ["anima update --channel dev", "Switch to dev channel (git + npm)"],
1033
+ ["anima update --tag beta", "One-off update to a dist-tag or version"],
1034
+ ["anima update --no-restart", "Update without restarting the service"],
1035
+ ["anima update --json", "Output result as JSON"],
1036
+ ["anima update --yes", "Non-interactive (accept downgrade prompts)"],
1037
+ ["anima update wizard", "Interactive update wizard"],
1038
+ ["anima --update", "Shorthand for anima update"]
1039
+ ].map(([cmd, desc]) => ` ${theme.command(cmd)} ${theme.muted(`# ${desc}`)}`).join("\n");
1040
+ return `
1041
+ ${theme.heading("What this does:")}
1042
+ - Git checkouts: fetches, rebases, installs deps, builds, and runs doctor
1043
+ - npm installs: updates via detected package manager
1044
+
1045
+ ${theme.heading("Switch channels:")}
1046
+ - Use --channel stable|beta|dev to persist the update channel in config
1047
+ - Run anima update status to see the active channel and source
1048
+ - Use --tag <dist-tag|version> for a one-off npm update without persisting
1049
+
1050
+ ${theme.heading("Non-interactive:")}
1051
+ - Use --yes to accept downgrade prompts
1052
+ - Combine with --channel/--tag/--restart/--json/--timeout as needed
1053
+
1054
+ ${theme.heading("Examples:")}
1055
+ ${fmtExamples}
1056
+
1057
+ ${theme.heading("Notes:")}
1058
+ - Switch channels with --channel stable|beta|dev
1059
+ - For global installs: auto-updates via detected package manager when possible (see docs/install/updating.md)
1060
+ - Downgrades require confirmation (can break configuration)
1061
+ - Skips update if the working directory has uncommitted changes
1062
+
1063
+ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.noxsoft.net/anima/cli/update")}`;
1064
+ }).action(async (opts) => {
1065
+ try {
1066
+ await updateCommand({
1067
+ json: Boolean(opts.json),
1068
+ restart: Boolean(opts.restart),
1069
+ channel: opts.channel,
1070
+ tag: opts.tag,
1071
+ timeout: opts.timeout,
1072
+ yes: Boolean(opts.yes)
1073
+ });
1074
+ } catch (err) {
1075
+ defaultRuntime.error(String(err));
1076
+ defaultRuntime.exit(1);
1077
+ }
1078
+ });
1079
+ update.command("wizard").description("Interactive update wizard").option("--timeout <seconds>", "Timeout for each update step in seconds (default: 1200)").addHelpText("after", `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.noxsoft.net/anima/cli/update")}\n`).action(async (opts) => {
1080
+ try {
1081
+ await updateWizardCommand({ timeout: opts.timeout });
1082
+ } catch (err) {
1083
+ defaultRuntime.error(String(err));
1084
+ defaultRuntime.exit(1);
1085
+ }
1086
+ });
1087
+ update.command("status").description("Show update channel and version status").option("--json", "Output result as JSON", false).option("--timeout <seconds>", "Timeout for update checks in seconds (default: 3)").addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples([
1088
+ ["anima update status", "Show channel + version status."],
1089
+ ["anima update status --json", "JSON output."],
1090
+ ["anima update status --timeout 10", "Custom timeout."]
1091
+ ])}\n\n${theme.heading("Notes:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.noxsoft.net/anima/cli/update")}`).action(async (opts) => {
1092
+ try {
1093
+ await updateStatusCommand({
1094
+ json: Boolean(opts.json),
1095
+ timeout: opts.timeout
1096
+ });
1097
+ } catch (err) {
1098
+ defaultRuntime.error(String(err));
1099
+ defaultRuntime.exit(1);
1100
+ }
1101
+ });
1102
+ }
1103
+
1104
+ //#endregion
1105
+ export { registerUpdateCli };