remoteclaw 0.1.0-next.cd6ddde → 0.1.0-next.cf9ccbe

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 (1054) hide show
  1. package/dist/accounts-79XhjwAj.js +32 -0
  2. package/dist/accounts-B1M3fOxL.js +272 -0
  3. package/dist/accounts-BwbvnKsW.js +205 -0
  4. package/dist/accounts-CIVjmTg9.js +270 -0
  5. package/dist/accounts-D1awQXKu.js +36 -0
  6. package/dist/accounts-DHkGVGUR.js +36 -0
  7. package/dist/accounts-P7cmIXUM.js +206 -0
  8. package/dist/accounts-XFgBY644.js +47 -0
  9. package/dist/accounts-_ZuNC5bz.js +47 -0
  10. package/dist/ack-reactions-BGJ9Vigf.js +621 -0
  11. package/dist/ack-reactions-Diu9O24z.js +621 -0
  12. package/dist/acp-cli-BwZ-va2P.js +1316 -0
  13. package/dist/acp-cli-eVKByz-j.js +1311 -0
  14. package/dist/active-listener--jrUO-8L.js +37 -0
  15. package/dist/active-listener-C7SyMcNY.js +37 -0
  16. package/dist/agent-BAxK2KQW.js +688 -0
  17. package/dist/agent-Dd5Yfhmq.js +687 -0
  18. package/dist/agent-helpers-5F0tdxud.js +400 -0
  19. package/dist/agent-scope-BA1HP4K6.js +114 -0
  20. package/dist/agent-scope-CAQLm3LP.js +116 -0
  21. package/dist/agents-2VlLHxv-.js +754 -0
  22. package/dist/agents.config-CmyzLYqW.js +116 -0
  23. package/dist/agents.config-DerBqRzk.js +116 -0
  24. package/dist/audio-ClIuKwkl.js +43 -0
  25. package/dist/audio-DqlIYYTb.js +43 -0
  26. package/dist/audit-Cn0cNCE4.js +3114 -0
  27. package/dist/audit-DXY4NHBC.js +3114 -0
  28. package/dist/auth-B-QK8JhI.js +315 -0
  29. package/dist/auth-C1zx1O24.js +314 -0
  30. package/dist/auth-DDmNYVMW.js +448 -0
  31. package/dist/auth-DH1wEw0w.js +448 -0
  32. package/dist/banner-CBWZhANO.js +294 -0
  33. package/dist/binaries-CYwLdubd.js +13 -0
  34. package/dist/bindings-DFAFatwT.js +69 -0
  35. package/dist/bindings-GUKIzFCp.js +69 -0
  36. package/dist/bonjour-discovery-AQMJqY4V.js +378 -0
  37. package/dist/bonjour-discovery-BLcPWHFJ.js +378 -0
  38. package/dist/boot/handler.js +28 -28
  39. package/dist/browser-cli-8Dv5ogFT.js +1690 -0
  40. package/dist/browser-cli-wNLo8SOy.js +1694 -0
  41. package/dist/build-info.json +3 -3
  42. package/dist/call-BTHzKFbN.js +518 -0
  43. package/dist/call-D_NchaCs.js +517 -0
  44. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  45. package/dist/catalog-DgpN5jxU.js +186 -0
  46. package/dist/catalog-k056Nh93.js +186 -0
  47. package/dist/channel-account-context-BHIy71Yh.js +133 -0
  48. package/dist/channel-account-context-DXU_-EkJ.js +133 -0
  49. package/dist/channel-activity-BatlvP_U.js +292 -0
  50. package/dist/channel-activity-BhT7NQ_v.js +94 -0
  51. package/dist/channel-activity-CvjEwpJz.js +94 -0
  52. package/dist/channel-options-BCccA2WC.js +32 -0
  53. package/dist/channel-options-VPR_pNyS.js +33 -0
  54. package/dist/channel-selection-AH6_y6RS.js +51 -0
  55. package/dist/channel-selection-ovohyJQZ.js +51 -0
  56. package/dist/channel-web-APDaQ_wp.js +2134 -0
  57. package/dist/channel-web-BW_YuNlT.js +2132 -0
  58. package/dist/channels-cli-BBkHQtBI.js +1440 -0
  59. package/dist/channels-cli-CKcOwL-Q.js +1436 -0
  60. package/dist/channels-status-issues-BbYNzwLp.js +18 -0
  61. package/dist/channels-status-issues-DRybAijg.js +18 -0
  62. package/dist/chat-envelope-AJFUAuBM.js +248 -0
  63. package/dist/chat-envelope-BrfcPlDM.js +248 -0
  64. package/dist/chrome-Bv2UtAMQ.js +1732 -0
  65. package/dist/chrome-C6Vc_7su.js +1733 -0
  66. package/dist/chunk-BzVoFUZL.js +341 -0
  67. package/dist/clack-prompter-C6mBTOzE.js +122 -0
  68. package/dist/clack-prompter-DKcYqv3o.js +121 -0
  69. package/dist/cleanup-utils-Cb-leJcy.js +94 -0
  70. package/dist/cli/daemon-cli.js +1 -1
  71. package/dist/cli-Cs1n6-eD.js +135 -0
  72. package/dist/cli-Di3p1tLN.js +131 -0
  73. package/dist/client-B6h7bgbF.js +2311 -0
  74. package/dist/client-CMtdm9Ii.js +2311 -0
  75. package/dist/clipboard-A06eV_5C.js +31 -0
  76. package/dist/clipboard-DQBl3coj.js +31 -0
  77. package/dist/command-format-BiiNHkWG.js +18 -0
  78. package/dist/command-format-Dntg_tnC.js +32 -0
  79. package/dist/command-logger/handler.js +1 -1
  80. package/dist/command-registry-BV2MH_iw.js +215 -0
  81. package/dist/commands-D93TXYhv.js +41 -0
  82. package/dist/commands-UD7V7QC9.js +41 -0
  83. package/dist/commands-registry-CCbTtSSK.js +891 -0
  84. package/dist/commands-registry-De8JhZLG.js +890 -0
  85. package/dist/common-D4fL3S2m.js +156 -0
  86. package/dist/common-DXNisGxw.js +156 -0
  87. package/dist/completion-cli-319xyosV.js +452 -0
  88. package/dist/completion-cli-B6Zimnek.js +452 -0
  89. package/dist/config-BTH7fB_v.js +3345 -0
  90. package/dist/config-DwuBnd6D.js +3347 -0
  91. package/dist/config-cli-c_Itt86J.js +247 -0
  92. package/dist/config-cli-rcMB3A3B.js +243 -0
  93. package/dist/config-guard-BcT7soTj.js +92 -0
  94. package/dist/config-guard-Bqak3bDc.js +75 -0
  95. package/dist/config-validation-CHEjSJ5K.js +18 -0
  96. package/dist/config-validation-CvgqLhyG.js +18 -0
  97. package/dist/configure-Cb3bbYnh.js +891 -0
  98. package/dist/configure-R2gWNv5y.js +889 -0
  99. package/dist/control-auth-DrGYtMJM.js +397 -0
  100. package/dist/control-auth-KY4Qdr2I.js +397 -0
  101. package/dist/control-ui-assets-DO1L6M0S.js +186 -0
  102. package/dist/control-ui-assets-S_TLo6Fs.js +186 -0
  103. package/dist/conversation-label-CMOfgCVl.js +36 -0
  104. package/dist/cron-cli-C7h_hLHu.js +495 -0
  105. package/dist/cron-cli-DTNg0Uvl.js +499 -0
  106. package/dist/daemon-cli-BlJS9zWM.js +737 -0
  107. package/dist/daemon-cli-Cfc1yszp.js +735 -0
  108. package/dist/daemon-cli.js +124 -1071
  109. package/dist/daemon-install-BbBLuLWg.js +60 -0
  110. package/dist/daemon-install-WEBvqVOj.js +56 -0
  111. package/dist/daemon-install-helpers-BVtPC2TK.js +504 -0
  112. package/dist/daemon-install-helpers-DVr51zvE.js +504 -0
  113. package/dist/deliver-EB272zWh.js +481 -0
  114. package/dist/deliver-iGD_woru.js +481 -0
  115. package/dist/delivery-queue-BDvalA10.js +244 -0
  116. package/dist/delivery-queue-BimvYz5E.js +244 -0
  117. package/dist/devices-cli-BXCOsNFc.js +323 -0
  118. package/dist/devices-cli-CHGdYfrz.js +319 -0
  119. package/dist/diagnostics-BzzhTQzK.js +35 -0
  120. package/dist/diagnostics-DILtxtcE.js +35 -0
  121. package/dist/directory-cli-COS40yI9.js +221 -0
  122. package/dist/directory-cli-Cb5j1JTC.js +225 -0
  123. package/dist/dispatcher-BUqxh_mA.js +174 -0
  124. package/dist/dispatcher-By-KZRWZ.js +173 -0
  125. package/dist/dm-policy-shared-BCp9_z3w.js +22 -0
  126. package/dist/dm-policy-shared-DgeKqjOu.js +22 -0
  127. package/dist/dns-cli-B8yyXB2N.js +203 -0
  128. package/dist/dns-cli-DAkTk-gM.js +199 -0
  129. package/dist/dock-B0bIIDS3.js +906 -0
  130. package/dist/dock-C3PzQ6CS.js +907 -0
  131. package/dist/doctor-completion-B_Zp4fZk.js +92 -0
  132. package/dist/doctor-completion-CZ1P5laQ.js +92 -0
  133. package/dist/doctor-config-flow-BDDsR2J1.js +978 -0
  134. package/dist/doctor-config-flow-CwFFRUic.js +979 -0
  135. package/dist/enable-C3I9dWel.js +59 -0
  136. package/dist/enable-DnwKeWnR.js +59 -0
  137. package/dist/entry.js +62 -6
  138. package/dist/env-DyyqmxSM.js +60 -0
  139. package/dist/errors-0dfGxeYQ.js +35 -0
  140. package/dist/errors-C1kDByVU.js +35 -0
  141. package/dist/exec-CAk1dxq_.js +164 -0
  142. package/dist/exec-epNpA1aU.js +164 -0
  143. package/dist/extensionAPI.js +263 -1088
  144. package/dist/fetch-BMQq41sB.js +281 -0
  145. package/dist/fetch-Cky99wYB.js +281 -0
  146. package/dist/fetch-D3tw4B4n.js +67 -0
  147. package/dist/fetch-Dgm9ZHFm.js +67 -0
  148. package/dist/file-lock-DWH0TfVu.js +107 -0
  149. package/dist/file-lock-DXW9h9ek.js +107 -0
  150. package/dist/fs-safe-BjSd07M4.js +115 -0
  151. package/dist/fs-safe-aWIhCWlb.js +125 -0
  152. package/dist/gateway-cli-BLeY_1DX.js +24154 -0
  153. package/dist/gateway-cli-Cu4vwhmi.js +24150 -0
  154. package/dist/gateway-rpc-B92CH0D3.js +28 -0
  155. package/dist/gateway-rpc-DZNlWapO.js +28 -0
  156. package/dist/gmail-setup-utils-CKyh29_R.js +422 -0
  157. package/dist/gmail-setup-utils-DquflkMR.js +423 -0
  158. package/dist/health-BYl7T-4m.js +1417 -0
  159. package/dist/health-DdviISKg.js +1414 -0
  160. package/dist/health-format-BE5TK5bs.js +28 -0
  161. package/dist/heartbeat-visibility-BO3iRpB6.js +125 -0
  162. package/dist/heartbeat-visibility-Cwp4TrTv.js +125 -0
  163. package/dist/help-format-D3JhWp1E.js +17 -0
  164. package/dist/hook-runner-global-C1thol1d.js +527 -0
  165. package/dist/hooks-cli-BKS9uZ0H.js +1221 -0
  166. package/dist/hooks-cli-FLWcCr9q.js +1217 -0
  167. package/dist/image-ops-CX41n0v5.js +354 -0
  168. package/dist/image-ops-DSL3eFfQ.js +354 -0
  169. package/dist/import-BSFgt760.js +604 -0
  170. package/dist/import-Da1CHJJg.js +606 -0
  171. package/dist/inbound-context-a5bzQvRt.js +68 -0
  172. package/dist/index.js +127 -101
  173. package/dist/inspect-BEpFbi0c.js +286 -0
  174. package/dist/inspect-BeNNpWna.js +286 -0
  175. package/dist/installs-CH7Qq_m_.js +319 -0
  176. package/dist/installs-CcM8H2YA.js +319 -0
  177. package/dist/ipv4-DNo9AFDu.js +46 -0
  178. package/dist/ipv4-VfoVR5uR.js +46 -0
  179. package/dist/ir-BPwP8hIc.js +972 -0
  180. package/dist/lifecycle-core-5Zxqwa6V.js +476 -0
  181. package/dist/lifecycle-core-C1bGeLby.js +474 -0
  182. package/dist/links-CtGBIrG8.js +15 -0
  183. package/dist/loader-BoP3JA-r.js +22411 -0
  184. package/dist/loader-DXbpue-L.js +22414 -0
  185. package/dist/logger-ASsO5Nz-.js +49 -0
  186. package/dist/logging-Cd9y2AdQ.js +20 -0
  187. package/dist/login-B2UXzgaB.js +61 -0
  188. package/dist/login-BEFL3xY9.js +62 -0
  189. package/dist/login-qr-C7wAz2fe.js +329 -0
  190. package/dist/login-qr-DWpUP1Ud.js +325 -0
  191. package/dist/logs-cli-CAcd-pXA.js +240 -0
  192. package/dist/logs-cli-D7Bzarht.js +236 -0
  193. package/dist/markdown-tables-BBNUZp4n.js +29 -0
  194. package/dist/markdown-tables-NgPcfXoF.js +29 -0
  195. package/dist/media-4-qOIjO-.js +971 -0
  196. package/dist/media-DTwJhAbE.js +9481 -0
  197. package/dist/message-action-names-BsNTjuBE.js +2520 -0
  198. package/dist/message-action-names-ocKcq8_3.js +2520 -0
  199. package/dist/message-channel-CtcVHawF.js +91 -0
  200. package/dist/mime-CAqaK3kp.js +146 -0
  201. package/dist/mime-ViuhRuMM.js +146 -0
  202. package/dist/net-DSkFMHJ8.js +225 -0
  203. package/dist/net-DTqfFYzt.js +225 -0
  204. package/dist/node-cli-BeXU67eQ.js +1458 -0
  205. package/dist/node-cli-i2aCtnmM.js +1462 -0
  206. package/dist/node-service-RyMlWp8N.js +67 -0
  207. package/dist/node-service-TL9b6Qfz.js +67 -0
  208. package/dist/nodes-cli-CtqnXBMD.js +1346 -0
  209. package/dist/nodes-cli-DgQU3LrG.js +1350 -0
  210. package/dist/nodes-screen-B7HJugJ0.js +250 -0
  211. package/dist/nodes-screen-nCRd71Mk.js +250 -0
  212. package/dist/note-B6142LyJ.js +92 -0
  213. package/dist/note-D-EI0czq.js +92 -0
  214. package/dist/npm-registry-spec-PPyRXSpx.js +786 -0
  215. package/dist/npm-registry-spec-uUmDWe6v.js +786 -0
  216. package/dist/npm-resolution-BC1LqCm2.js +86 -0
  217. package/dist/npm-resolution-DhlhUmRF.js +86 -0
  218. package/dist/onboard-CHowLVEG.js +647 -0
  219. package/dist/onboard-D_eCnKjt.js +649 -0
  220. package/dist/onboard-auth-cNtb3FTP.js +211 -0
  221. package/dist/onboard-auth-gwz-0mZ6.js +207 -0
  222. package/dist/onboard-channels-CFsUIDWq.js +2618 -0
  223. package/dist/onboard-channels-ZCML5CWb.js +2619 -0
  224. package/dist/onboard-helpers-8afRV_Tm.js +364 -0
  225. package/dist/onboard-helpers-DTRrJLj-.js +363 -0
  226. package/dist/onboard-remote-CFkvVAYg.js +127 -0
  227. package/dist/onboard-remote-JfBnmK70.js +127 -0
  228. package/dist/onboarding-DIxNghyi.js +586 -0
  229. package/dist/onboarding-Dhh0bjrb.js +588 -0
  230. package/dist/onboarding.finalize-5uipJuOl.js +403 -0
  231. package/dist/onboarding.finalize-De4etQul.js +405 -0
  232. package/dist/onboarding.gateway-config-DolBTXWT.js +196 -0
  233. package/dist/onboarding.gateway-config-rJkIamlG.js +202 -0
  234. package/dist/outbound-CPMaDtgC.js +220 -0
  235. package/dist/outbound-CYSuCMiW.js +221 -0
  236. package/dist/outbound-attachment-Ci02LXoq.js +18 -0
  237. package/dist/outbound-attachment-CqZ7Qc_o.js +18 -0
  238. package/dist/outbound-attachment-CuqWdsdV.js +18 -0
  239. package/dist/pairing-cli-B9JKvvST.js +126 -0
  240. package/dist/pairing-cli-C4HrfIHe.js +130 -0
  241. package/dist/pairing-labels-CBmGQ31P.js +9 -0
  242. package/dist/pairing-labels-D0xwC7Xb.js +9 -0
  243. package/dist/pairing-store-BoF0g-iN.js +459 -0
  244. package/dist/pairing-store-CseXj-5p.js +460 -0
  245. package/dist/path-env-CPZbb7me.js +89 -0
  246. package/dist/path-safety-BFE0XmGC.js +14 -0
  247. package/dist/path-safety-BJ8ge6Ho.js +14 -0
  248. package/dist/paths-DHuXVC00.js +229 -0
  249. package/dist/plugin-auto-enable-B_9J1XED.js +302 -0
  250. package/dist/plugin-auto-enable-DghjlFCL.js +301 -0
  251. package/dist/plugin-registry-68h2T8vi.js +33 -0
  252. package/dist/plugin-registry-BitdVPb4.js +33 -0
  253. package/dist/plugin-sdk/agents/subagent-registry.store.d.ts +0 -1
  254. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +0 -11
  255. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +1 -4
  256. package/dist/plugin-sdk/auto-reply/reply/commands-subagents/shared.d.ts +1 -1
  257. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +1 -10
  258. package/dist/plugin-sdk/auto-reply/reply/directive-handling.levels.d.ts +1 -4
  259. package/dist/plugin-sdk/auto-reply/reply/directive-handling.params.d.ts +1 -8
  260. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +1 -23
  261. package/dist/plugin-sdk/auto-reply/reply/directive-handling.persist.d.ts +0 -2
  262. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +0 -22
  263. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +2 -29
  264. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-apply.d.ts +0 -8
  265. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-utils.d.ts +0 -1
  266. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -15
  267. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +1 -8
  268. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +1 -11
  269. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +1 -13
  270. package/dist/plugin-sdk/auto-reply/reply.d.ts +1 -1
  271. package/dist/plugin-sdk/auto-reply/status.d.ts +1 -4
  272. package/dist/plugin-sdk/auto-reply/templating.d.ts +0 -4
  273. package/dist/plugin-sdk/auto-reply/thinking.d.ts +0 -4
  274. package/dist/plugin-sdk/channels/dock.d.ts +1 -2
  275. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +0 -6
  276. package/dist/plugin-sdk/channels/plugins/types.d.ts +1 -1
  277. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +1 -2
  278. package/dist/plugin-sdk/commands/onboard-helpers.d.ts +0 -1
  279. package/dist/plugin-sdk/commands/onboard-types.d.ts +0 -2
  280. package/dist/plugin-sdk/config/legacy.migrations.d.ts +2 -1
  281. package/dist/plugin-sdk/config/legacy.shared.d.ts +0 -9
  282. package/dist/plugin-sdk/config/sessions/types.d.ts +0 -7
  283. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +0 -8
  284. package/dist/plugin-sdk/config/types.base.d.ts +0 -1
  285. package/dist/plugin-sdk/config/types.messages.d.ts +0 -4
  286. package/dist/plugin-sdk/config/types.tools.d.ts +0 -73
  287. package/dist/plugin-sdk/config/types.tts.d.ts +2 -1
  288. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +0 -4
  289. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +7 -197
  290. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +2 -10
  291. package/dist/plugin-sdk/config/zod-schema.core.d.ts +6 -234
  292. package/dist/plugin-sdk/config/zod-schema.d.ts +98 -301
  293. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +148 -160
  294. package/dist/plugin-sdk/config/zod-schema.providers-whatsapp.d.ts +12 -12
  295. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +88 -96
  296. package/dist/plugin-sdk/config/zod-schema.session.d.ts +4 -10
  297. package/dist/plugin-sdk/gateway/protocol/index.d.ts +11 -16
  298. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +0 -5
  299. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +0 -1
  300. package/dist/plugin-sdk/index.js +295 -1236
  301. package/dist/plugin-sdk/line/config-schema.d.ts +4 -4
  302. package/dist/plugin-sdk/logging/levels.d.ts +1 -1
  303. package/dist/plugin-sdk/middleware/cli-runtime-base.d.ts +6 -0
  304. package/dist/plugin-sdk/middleware/runtimes/claude.d.ts +6 -0
  305. package/dist/plugin-sdk/middleware/runtimes/codex.d.ts +2 -2
  306. package/dist/plugin-sdk/middleware/runtimes/gemini.d.ts +8 -1
  307. package/dist/plugin-sdk/plugin-sdk/index.d.ts +3 -1
  308. package/dist/plugin-sdk/plugins/manifest-registry.d.ts +2 -0
  309. package/dist/plugin-sdk/plugins/manifest.d.ts +4 -4
  310. package/dist/plugin-sdk/plugins/registry.d.ts +18 -0
  311. package/dist/plugin-sdk/plugins/types.d.ts +4 -0
  312. package/dist/plugin-sdk/slack/manifest.d.ts +17 -0
  313. package/dist/plugin-sdk/stt/preflight.d.ts +2 -4
  314. package/dist/plugin-sdk/stt/providers/index.d.ts +1 -1
  315. package/dist/plugin-sdk/stt/providers/shared.d.ts +20 -1
  316. package/dist/plugin-sdk/tts/providers/edge.d.ts +2 -0
  317. package/dist/plugin-sdk/tts/providers/elevenlabs.d.ts +2 -0
  318. package/dist/plugin-sdk/tts/providers/index.d.ts +4 -0
  319. package/dist/plugin-sdk/tts/providers/openai.d.ts +2 -0
  320. package/dist/plugin-sdk/tts/tts.d.ts +13 -5
  321. package/dist/plugin-sdk/tts/types.d.ts +21 -0
  322. package/dist/plugins-BviLFPLV.js +255 -0
  323. package/dist/plugins-CaudBUbl.js +254 -0
  324. package/dist/plugins-cli-CsLhphNr.js +803 -0
  325. package/dist/plugins-cli-CujSP9NS.js +807 -0
  326. package/dist/ports-BtuzUQHl.js +370 -0
  327. package/dist/ports-CMcHia07.js +96 -0
  328. package/dist/ports-gRBeuUtp.js +316 -0
  329. package/dist/preflight-Bq8rimP-.js +667 -0
  330. package/dist/preflight-DyYbEp9X.js +667 -0
  331. package/dist/program-G8cGMPuz.js +250 -0
  332. package/dist/program-context-B9BwrbSx.js +474 -0
  333. package/dist/progress-BcwxtM9Q.js +124 -0
  334. package/dist/prompt-DtWGd43j.js +21 -0
  335. package/dist/prompt-select-styled-CpOsmtZi.js +1672 -0
  336. package/dist/prompt-select-styled-D-qBqrEJ.js +1669 -0
  337. package/dist/prompt-style-BpUMhEHC.js +9 -0
  338. package/dist/provider-auth-B7QgxlKt.js +187 -0
  339. package/dist/provider-auth-j-EQvvIk.js +187 -0
  340. package/dist/provider-dispatcher-Bx6CaIoV.js +660 -0
  341. package/dist/provider-dispatcher-DhkvjhO5.js +659 -0
  342. package/dist/push-apns--nEiZmEN.js +711 -0
  343. package/dist/push-apns-BtS6B6lb.js +713 -0
  344. package/dist/pw-ai-BpCsXF-x.js +1908 -0
  345. package/dist/pw-ai-ud_Kbn5S.js +1911 -0
  346. package/dist/qr-cli-BCeVLGfz.js +353 -0
  347. package/dist/qr-cli-Crsqtw01.js +349 -0
  348. package/dist/redact-Ci96Gj0O.js +191 -0
  349. package/dist/redact-snapshot-B9nof-Pb.js +1952 -0
  350. package/dist/redact-snapshot-BKiS91Mj.js +1952 -0
  351. package/dist/register.agent-GnCbOS2U.js +1014 -0
  352. package/dist/register.agent-Mwu5hgjA.js +292 -0
  353. package/dist/register.configure-By-Re240.js +130 -0
  354. package/dist/register.configure-rB-Q0WKu.js +135 -0
  355. package/dist/register.import-B83Dn36B.js +29 -0
  356. package/dist/register.import-wIYU2cVW.js +31 -0
  357. package/dist/register.maintenance-D5KctP9K.js +503 -0
  358. package/dist/register.maintenance-Er88Oxcm.js +501 -0
  359. package/dist/register.message-BQhRoEQQ.js +687 -0
  360. package/dist/register.message-CvZKWeGb.js +691 -0
  361. package/dist/register.onboard-BG064oHg.js +94 -0
  362. package/dist/register.onboard-CAKyc1Fc.js +98 -0
  363. package/dist/register.setup-C9sZLS_P.js +114 -0
  364. package/dist/register.setup-CVsZdhkJ.js +118 -0
  365. package/dist/register.status-health-sessions-BZJ0wTSa.js +429 -0
  366. package/dist/register.status-health-sessions-CyrUwwtB.js +667 -0
  367. package/dist/register.subclis-CQ_Pjkyv.js +267 -0
  368. package/dist/replies-BIx-MbQ7.js +136 -0
  369. package/dist/replies-DVU655H4.js +136 -0
  370. package/dist/reply-CL5VMSKN.js +12372 -0
  371. package/dist/reply-XKyfU3rS.js +12375 -0
  372. package/dist/reply-directives-DQfJ001O.js +182 -0
  373. package/dist/reply-directives-DfUITt7C.js +182 -0
  374. package/dist/reply-payloads-ZHo6kfTS.js +527 -0
  375. package/dist/reply-prefix-BSf3PC0x.js +37 -0
  376. package/dist/reply-prefix-DBTlMHLK.js +37 -0
  377. package/dist/resolve-route-B-_IgETc.js +249 -0
  378. package/dist/resolve-route-C8ZsgWDQ.js +249 -0
  379. package/dist/response-prefix-template-3LeqJx2X.js +134 -0
  380. package/dist/response-prefix-template-DBrUVx5V.js +134 -0
  381. package/dist/retry-CDrH81GP.js +77 -0
  382. package/dist/retry-Dar_7pCv.js +77 -0
  383. package/dist/run-main-DBFpx1kt.js +308 -0
  384. package/dist/secure-random-CLWSvf8A.js +44 -0
  385. package/dist/security-cli-B8lXw9ke.js +488 -0
  386. package/dist/security-cli-CRkS3VAf.js +483 -0
  387. package/dist/send-6g8QKfWj.js +374 -0
  388. package/dist/send-B5Hz1PIn.js +29 -0
  389. package/dist/send-B8eIlA1u.js +349 -0
  390. package/dist/send-BFZPQE4j.js +492 -0
  391. package/dist/send-BpTDvE0D.js +1779 -0
  392. package/dist/send-BxOrO1Wv.js +1776 -0
  393. package/dist/send-C6gPJu-Z.js +11 -0
  394. package/dist/send-C7MoKtkN.js +426 -0
  395. package/dist/send-CXzq2LI6.js +2245 -0
  396. package/dist/send-CYOZoObr.js +547 -0
  397. package/dist/send-CfQyIvcC.js +332 -0
  398. package/dist/send-DUtuuwhw.js +492 -0
  399. package/dist/send-DbafVwxp.js +2245 -0
  400. package/dist/send-DeZg8K7y.js +349 -0
  401. package/dist/send-DwkjxJlv.js +547 -0
  402. package/dist/send-iX9xbxlU.js +1178 -0
  403. package/dist/server-BKfCzEzd.js +206 -0
  404. package/dist/server-fmO4eo7K.js +202 -0
  405. package/dist/server-lifecycle-CgPpP10P.js +2437 -0
  406. package/dist/server-lifecycle-Cn8yY5MW.js +2437 -0
  407. package/dist/server-node-events-C-ZzSBYh.js +391 -0
  408. package/dist/server-node-events-DYlyfDHM.js +395 -0
  409. package/dist/service-C2j81L86.js +670 -0
  410. package/dist/service-C8a0SXHD.js +670 -0
  411. package/dist/session-AulYhqOb.js +170 -0
  412. package/dist/session-C6VKWvx6.js +170 -0
  413. package/dist/session-cost-usage-0Vs4hgMe.js +627 -0
  414. package/dist/session-cost-usage-C-DsaOfN.js +627 -0
  415. package/dist/session-dirs-CO1f2ArM.js +318 -0
  416. package/dist/session-dirs-DoboH7Oy.js +318 -0
  417. package/dist/session-utils-CRK8ToKG.js +621 -0
  418. package/dist/session-utils-DWlkmCX8.js +621 -0
  419. package/dist/sessions-DtqrmUJS.js +2553 -0
  420. package/dist/sessions-gT-4fcX-.js +245 -0
  421. package/dist/shell-env-c3j5zcU9.js +163 -0
  422. package/dist/ssrf-8wNqPNzN.js +183 -0
  423. package/dist/ssrf-CJIdPXuS.js +183 -0
  424. package/dist/status-BI_-xpDt.js +1947 -0
  425. package/dist/status-PZVwjKjl.js +1943 -0
  426. package/dist/status.update-BmuDZ7E7.js +449 -0
  427. package/dist/status.update-Mf6HSRvU.js +449 -0
  428. package/dist/store-B7PGEdFf.js +2555 -0
  429. package/dist/store-CzhBjUCN.js +64 -0
  430. package/dist/store-YkSxKAey.js +53 -0
  431. package/dist/store-ZNeFv2Q7.js +64 -0
  432. package/dist/subagent-registry-R1DiAM4R.js +4839 -0
  433. package/dist/subagent-registry-xLRXC8Bg.js +4841 -0
  434. package/dist/subsystem-BAW_f3DI.js +1195 -0
  435. package/dist/subsystem-DGSHVL8I.js +1081 -0
  436. package/dist/system-cli-9SvRrT9D.js +77 -0
  437. package/dist/system-cli-yCa5Q1YM.js +73 -0
  438. package/dist/systemd-40Rij3QR.js +547 -0
  439. package/dist/systemd-5C97CSzd.js +547 -0
  440. package/dist/systemd-hints-3iQteJw-.js +278 -0
  441. package/dist/systemd-hints-CyQqHq1i.js +278 -0
  442. package/dist/systemd-linger-B2rPbnAi.js +75 -0
  443. package/dist/systemd-linger-DDvkfxH-.js +75 -0
  444. package/dist/table-DFx25vNb.js +279 -0
  445. package/dist/tables-C5fI0PmT.js +55 -0
  446. package/dist/tables-Cm9qvQ9D.js +55 -0
  447. package/dist/tables-fRe01eP1.js +55 -0
  448. package/dist/tailnet-Da-_9e8E.js +40 -0
  449. package/dist/tailnet-xt92Yaop.js +40 -0
  450. package/dist/tailscale-CnV0JWca.js +230 -0
  451. package/dist/tailscale-VkEC8dzj.js +230 -0
  452. package/dist/targets-C99szk_e.js +114 -0
  453. package/dist/targets-CPaTjbpp.js +2607 -0
  454. package/dist/targets-CmC5m7Ey.js +53 -0
  455. package/dist/targets-D-p4rJVS.js +650 -0
  456. package/dist/targets-D2OQt8-7.js +650 -0
  457. package/dist/targets-D94MtTiZ.js +2606 -0
  458. package/dist/targets-RajrXTl7.js +220 -0
  459. package/dist/targets-_UWmnyI9.js +53 -0
  460. package/dist/thinking-4nOZPunr.js +60 -0
  461. package/dist/thinking-ZfH2V9Os.js +60 -0
  462. package/dist/tokens-TtJJxzRr.js +21 -0
  463. package/dist/tool-display-Bxs_1jIn.js +785 -0
  464. package/dist/tool-display-D9p_Ttkq.js +785 -0
  465. package/dist/tool-images-9Ron321Q.js +263 -0
  466. package/dist/tool-images-BWhy6WRN.js +263 -0
  467. package/dist/trash-B5xyvBDf.js +125 -0
  468. package/dist/trash-BpB96kHe.js +125 -0
  469. package/dist/tui-Ba0uZDrg.js +3237 -0
  470. package/dist/tui-Biz0HqDj.js +3237 -0
  471. package/dist/tui-cli-C-UV6o2v.js +63 -0
  472. package/dist/tui-cli-Ds_bLT-h.js +67 -0
  473. package/dist/types.tools-BBb2rl3g.js +23 -0
  474. package/dist/types.tools-BDJw1yFx.js +23 -0
  475. package/dist/update-Barj5dsg.js +349 -0
  476. package/dist/update-D839Q8su.js +349 -0
  477. package/dist/update-cli-2I4hm0Gy.js +1150 -0
  478. package/dist/update-cli-CcwXmMKB.js +1148 -0
  479. package/dist/usage-BI9kergH.js +5465 -0
  480. package/dist/utils-DPoNpP7D.js +631 -0
  481. package/dist/voice-credentials-64XAMSJm.js +46 -0
  482. package/dist/voice-credentials-v-CQkTpD.js +46 -0
  483. package/dist/web-63IbbidQ.js +3051 -0
  484. package/dist/web-D9N764Da.js +80 -0
  485. package/dist/web-DUvNYLzr.js +75 -0
  486. package/dist/webhooks-cli-owhVNNkz.js +334 -0
  487. package/dist/webhooks-cli-zlvka6QD.js +330 -0
  488. package/dist/whatsapp-actions-8DejyRG5.js +126 -0
  489. package/dist/whatsapp-actions-DCzp5LKe.js +131 -0
  490. package/dist/widearea-dns-CQqZIeu8.js +127 -0
  491. package/dist/workspace-CB7pVojf.js +441 -0
  492. package/dist/workspace-DWEyzM0F.js +439 -0
  493. package/dist/zod-schema-CvFqwpNE.js +2719 -0
  494. package/dist/zod-schema-Y5SQgJLm.js +2719 -0
  495. package/package.json +1 -1
  496. package/dist/accounts-Aqbb2_Fn.js +0 -270
  497. package/dist/accounts-Bo2bX8jP.js +0 -272
  498. package/dist/accounts-CJUdvsIZ.js +0 -32
  499. package/dist/accounts-D3fAPVzU.js +0 -36
  500. package/dist/accounts-DZmv4bXS.js +0 -47
  501. package/dist/accounts-DmB4SVPK.js +0 -47
  502. package/dist/accounts-DtkyfvwR.js +0 -36
  503. package/dist/ack-reactions-BqcZUQJ3.js +0 -446
  504. package/dist/ack-reactions-DXHaDBH-.js +0 -446
  505. package/dist/acp-cli-DVXhDMc6.js +0 -1324
  506. package/dist/acp-cli-QBL4_qcW.js +0 -1319
  507. package/dist/active-listener-CwxZ24bZ.js +0 -37
  508. package/dist/active-listener-v2sItamh.js +0 -37
  509. package/dist/agent-C5PZDKE1.js +0 -687
  510. package/dist/agent-helpers-BSGqeJr-.js +0 -400
  511. package/dist/agent-qCBPcUcF.js +0 -688
  512. package/dist/agent-scope-CJW7vnF8.js +0 -114
  513. package/dist/agent-scope-_ND_-bJy.js +0 -116
  514. package/dist/agents-Byc39Y4A.js +0 -760
  515. package/dist/agents.config-BgDBcY4h.js +0 -116
  516. package/dist/agents.config-D8gLHPWo.js +0 -116
  517. package/dist/audio-BIvUsncf.js +0 -43
  518. package/dist/audio-CQ8TfmVN.js +0 -43
  519. package/dist/audit-C0x7Cm6K.js +0 -3150
  520. package/dist/audit-CAY-uzWP.js +0 -3150
  521. package/dist/auth-DGqCLaQq.js +0 -448
  522. package/dist/auth-DLTRySEi.js +0 -314
  523. package/dist/auth-Drf91ntw.js +0 -315
  524. package/dist/auth-ku2khJyQ.js +0 -448
  525. package/dist/banner-CGI3XOm4.js +0 -294
  526. package/dist/binaries-BTvHIrCr.js +0 -13
  527. package/dist/bindings-Dr0bGRst.js +0 -69
  528. package/dist/bindings-DsWJQVKh.js +0 -69
  529. package/dist/bonjour-discovery-BElR62fH.js +0 -378
  530. package/dist/bonjour-discovery-C8XyVsjb.js +0 -378
  531. package/dist/browser-cli-DxJew43l.js +0 -1694
  532. package/dist/browser-cli-p0nakrjO.js +0 -1690
  533. package/dist/call-BrTmlOx3.js +0 -518
  534. package/dist/call-ChdUdwb4.js +0 -517
  535. package/dist/catalog-DTlcfTT9.js +0 -185
  536. package/dist/catalog-PixZqhZK.js +0 -185
  537. package/dist/channel-account-context-BO245Tcn.js +0 -133
  538. package/dist/channel-account-context-BgK0hm-I.js +0 -133
  539. package/dist/channel-activity-B0qlUR5e.js +0 -292
  540. package/dist/channel-activity-C-L6rDrQ.js +0 -94
  541. package/dist/channel-activity-DdgLBZ7M.js +0 -94
  542. package/dist/channel-options-C1Q9SUhv.js +0 -33
  543. package/dist/channel-options-zANFhRx_.js +0 -32
  544. package/dist/channel-selection-DW21dXB1.js +0 -51
  545. package/dist/channel-selection-wK_6S2Ku.js +0 -51
  546. package/dist/channel-web-DCSjrtlh.js +0 -2136
  547. package/dist/channel-web-JCgegBgG.js +0 -2134
  548. package/dist/channels-cli-D48ytzLq.js +0 -1438
  549. package/dist/channels-cli-hZbUcB3G.js +0 -1434
  550. package/dist/channels-status-issues-B6I2l7Sm.js +0 -18
  551. package/dist/channels-status-issues-DhDH2fWp.js +0 -18
  552. package/dist/chat-envelope-BIujl9Cj.js +0 -248
  553. package/dist/chat-envelope-CrM0X4sl.js +0 -248
  554. package/dist/chrome-Dqtq7zCc.js +0 -1733
  555. package/dist/chrome-XeSY99Z_.js +0 -1732
  556. package/dist/chunk-LUabyS9k.js +0 -341
  557. package/dist/clack-prompter-fAgbvPW4.js +0 -122
  558. package/dist/clack-prompter-kf9qTN5p.js +0 -121
  559. package/dist/cleanup-utils-CNwlTKyR.js +0 -94
  560. package/dist/cli-BTLaY8q4.js +0 -133
  561. package/dist/cli-CZV23GbW.js +0 -129
  562. package/dist/client-B9u3JdT_.js +0 -2316
  563. package/dist/client-DEEOhx0w.js +0 -2316
  564. package/dist/clipboard-B2nstLx7.js +0 -31
  565. package/dist/clipboard-C8QI9fes.js +0 -31
  566. package/dist/command-format-D0vKipG9.js +0 -32
  567. package/dist/command-format-LFmgWzKJ.js +0 -18
  568. package/dist/command-registry-BPXqH4ST.js +0 -215
  569. package/dist/commands-BAYwlS3d.js +0 -41
  570. package/dist/commands-D842kCjj.js +0 -41
  571. package/dist/commands-registry-Cg2GTT2J.js +0 -892
  572. package/dist/commands-registry-Yz-uV5oG.js +0 -891
  573. package/dist/common-B67cBSew.js +0 -156
  574. package/dist/common-DEoiTqOr.js +0 -156
  575. package/dist/completion-cli-D5J3fPka.js +0 -452
  576. package/dist/completion-cli-Dd1g-p7S.js +0 -452
  577. package/dist/config-CAa0rZSx.js +0 -4225
  578. package/dist/config-W0w-gi2j.js +0 -4223
  579. package/dist/config-cli-Ddz-yCdQ.js +0 -247
  580. package/dist/config-cli-shgSFYig.js +0 -243
  581. package/dist/config-guard-BI85dxHR.js +0 -99
  582. package/dist/config-guard-DQqnigKh.js +0 -75
  583. package/dist/config-validation-D-h4LHyA.js +0 -18
  584. package/dist/config-validation-Df_kroIQ.js +0 -18
  585. package/dist/configure-BnFwpZ3l.js +0 -891
  586. package/dist/configure-Cj4mlKSH.js +0 -889
  587. package/dist/control-auth-BrBr2xb8.js +0 -397
  588. package/dist/control-auth-CehjYKnL.js +0 -397
  589. package/dist/control-ui-assets-D8F383Mo.js +0 -186
  590. package/dist/control-ui-assets-DYKtRIm0.js +0 -186
  591. package/dist/conversation-label-Bn5j3lUT.js +0 -36
  592. package/dist/cron-cli-DVzDHzAX.js +0 -494
  593. package/dist/cron-cli-gkH2qKM4.js +0 -498
  594. package/dist/daemon-cli-BTdNO1vH.js +0 -737
  595. package/dist/daemon-cli-DNNqI2LD.js +0 -735
  596. package/dist/daemon-install-CaEHG92p.js +0 -56
  597. package/dist/daemon-install-DbpDSDfW.js +0 -60
  598. package/dist/daemon-install-helpers-DjE_WnlY.js +0 -504
  599. package/dist/daemon-install-helpers-DocTUxqQ.js +0 -504
  600. package/dist/deliver-CDcL8ok6.js +0 -481
  601. package/dist/deliver-CS8JsevV.js +0 -481
  602. package/dist/delivery-queue-CTaYZQ_8.js +0 -244
  603. package/dist/delivery-queue-DMZ7mH8P.js +0 -244
  604. package/dist/devices-cli-BBJ4His-.js +0 -319
  605. package/dist/devices-cli-DHSJSFW1.js +0 -323
  606. package/dist/diagnostics-BSvCaLNs.js +0 -35
  607. package/dist/diagnostics-mWFAsFeo.js +0 -35
  608. package/dist/directory-cli-C-oHD_XE.js +0 -224
  609. package/dist/directory-cli-Cw99VGvr.js +0 -220
  610. package/dist/dispatcher-C8d1NNLZ.js +0 -174
  611. package/dist/dispatcher-DY6Ga60j.js +0 -173
  612. package/dist/dm-policy-shared-CRQ-Wr5g.js +0 -22
  613. package/dist/dm-policy-shared-CXXf2ltd.js +0 -22
  614. package/dist/dns-cli-BOqx9qo1.js +0 -199
  615. package/dist/dns-cli-WfqSC3JU.js +0 -203
  616. package/dist/dock-Big-J2VN.js +0 -929
  617. package/dist/dock-Cj4PKiUh.js +0 -928
  618. package/dist/doctor-completion-B9RsNJKh.js +0 -92
  619. package/dist/doctor-completion-DhNvADTs.js +0 -92
  620. package/dist/doctor-config-flow-BUuADMDa.js +0 -1935
  621. package/dist/doctor-config-flow-yOUpQC2B.js +0 -1934
  622. package/dist/enable-DC9V0nTO.js +0 -59
  623. package/dist/enable-DzXMQJ-o.js +0 -59
  624. package/dist/env-B3zr72vQ.js +0 -60
  625. package/dist/errors-CdmXrBic.js +0 -35
  626. package/dist/errors-Cr_NbOb4.js +0 -35
  627. package/dist/exec-D_s-zAtY.js +0 -164
  628. package/dist/exec-Zz6eJ6YU.js +0 -164
  629. package/dist/fetch-C8pdlo4-.js +0 -67
  630. package/dist/fetch-DRVdxxEj.js +0 -67
  631. package/dist/file-lock-6NXMPZTT.js +0 -107
  632. package/dist/file-lock-C_KRlR7M.js +0 -107
  633. package/dist/fs-safe-DZHpH7TI.js +0 -98
  634. package/dist/fs-safe-vm3JMUkq.js +0 -88
  635. package/dist/gateway-cli-CebjflhZ.js +0 -24337
  636. package/dist/gateway-cli-Y9U6rbPB.js +0 -24333
  637. package/dist/gateway-rpc-BCFkQPa2.js +0 -28
  638. package/dist/gateway-rpc-DOgYbsOG.js +0 -28
  639. package/dist/gmail-setup-utils-DMeA1UM1.js +0 -423
  640. package/dist/gmail-setup-utils-FHWSAur3.js +0 -422
  641. package/dist/health-CXWQZGNz.js +0 -1414
  642. package/dist/health-DCC6hoLO.js +0 -1417
  643. package/dist/health-format-CVgQD-z9.js +0 -28
  644. package/dist/heartbeat-visibility-Cv0ejWJ-.js +0 -125
  645. package/dist/heartbeat-visibility-Da3TDQp2.js +0 -125
  646. package/dist/help-format-DM6-OBt-.js +0 -17
  647. package/dist/hook-runner-global-C0DFQmQw.js +0 -527
  648. package/dist/hooks-cli-CB5rKhHe.js +0 -1221
  649. package/dist/hooks-cli-Dy7m9hzM.js +0 -1225
  650. package/dist/image-ops-B9ofmzSq.js +0 -354
  651. package/dist/image-ops-CMuvRsMY.js +0 -354
  652. package/dist/import-BH13F5mT.js +0 -606
  653. package/dist/import-D8HVcDqO.js +0 -604
  654. package/dist/inbound-context-CmmmT8IP.js +0 -68
  655. package/dist/inbound-path-policy-BdmTOUka.js +0 -90
  656. package/dist/inbound-path-policy-BurOAu44.js +0 -90
  657. package/dist/inspect-nW8LAukU.js +0 -286
  658. package/dist/inspect-xy2EHy8G.js +0 -286
  659. package/dist/installs-CpfHmKY1.js +0 -325
  660. package/dist/installs-DebiMrGj.js +0 -325
  661. package/dist/ipv4-ysiNGssl.js +0 -46
  662. package/dist/ipv4-zc_Hfvbp.js +0 -46
  663. package/dist/ir-CaxTklDC.js +0 -940
  664. package/dist/lifecycle-core-Z5SScMlU.js +0 -476
  665. package/dist/lifecycle-core-pPwYSt7m.js +0 -474
  666. package/dist/links-D5vtq30Q.js +0 -15
  667. package/dist/loader-BVHaRcP7.js +0 -22404
  668. package/dist/loader-CxSGgugQ.js +0 -22401
  669. package/dist/local-roots-CrJ_Jv_G.js +0 -314
  670. package/dist/local-roots-n_Y4iYwb.js +0 -313
  671. package/dist/logger-B8yHnzPl.js +0 -49
  672. package/dist/logging-FctZEleJ.js +0 -20
  673. package/dist/login-C99fsB0N.js +0 -61
  674. package/dist/login-cLvGPjeO.js +0 -62
  675. package/dist/login-qr-CGqRFwgl.js +0 -329
  676. package/dist/login-qr-dnY5DC2C.js +0 -325
  677. package/dist/logs-cli-Bda7xY4N.js +0 -236
  678. package/dist/logs-cli-HzR-vnpD.js +0 -240
  679. package/dist/markdown-tables-58Hq__7K.js +0 -29
  680. package/dist/markdown-tables-GFEX0OR6.js +0 -29
  681. package/dist/media-C1SIfGTn.js +0 -10452
  682. package/dist/media-CFsyXs3H.js +0 -940
  683. package/dist/message-action-names-BgsKGLDS.js +0 -2521
  684. package/dist/message-action-names-DkZwEFhU.js +0 -2521
  685. package/dist/message-channel-FMNRI5Ax.js +0 -91
  686. package/dist/mime-AuIDUZPG.js +0 -149
  687. package/dist/mime-Cqg1jjia.js +0 -149
  688. package/dist/net-BEFkF-nI.js +0 -225
  689. package/dist/net-CNsUGiSw.js +0 -225
  690. package/dist/node-cli-Bu-InsO9.js +0 -1462
  691. package/dist/node-cli-DE7Pm7Fr.js +0 -1458
  692. package/dist/node-service-CumFZc9L.js +0 -67
  693. package/dist/node-service-DY1gG06I.js +0 -67
  694. package/dist/nodes-cli-B5aAExN0.js +0 -1350
  695. package/dist/nodes-cli-eKRqlKuO.js +0 -1346
  696. package/dist/nodes-screen-B3Sij1uT.js +0 -250
  697. package/dist/nodes-screen-DEvpoFmH.js +0 -250
  698. package/dist/note-CPFJCWJJ.js +0 -92
  699. package/dist/note-DHUJACHE.js +0 -92
  700. package/dist/npm-registry-spec-BgMtTHvq.js +0 -786
  701. package/dist/npm-registry-spec-Dz3z1Zpd.js +0 -786
  702. package/dist/npm-resolution-BXiQH99t.js +0 -86
  703. package/dist/npm-resolution-CqE0nhxJ.js +0 -86
  704. package/dist/onboard-DK2z3w1P.js +0 -649
  705. package/dist/onboard-auth-C_wHkop1.js +0 -207
  706. package/dist/onboard-auth-CkCBLvTg.js +0 -211
  707. package/dist/onboard-channels-C8_OLbPk.js +0 -2547
  708. package/dist/onboard-channels-w_tnOhVu.js +0 -2548
  709. package/dist/onboard-helpers-Q7M6vdzh.js +0 -363
  710. package/dist/onboard-helpers-SCO3k5Y8.js +0 -364
  711. package/dist/onboard-remote-Co2hv1AD.js +0 -127
  712. package/dist/onboard-remote-Dl3BFSg2.js +0 -127
  713. package/dist/onboard-rioH3DW6.js +0 -647
  714. package/dist/onboarding-CsXVuzFP.js +0 -586
  715. package/dist/onboarding-r5RCkc-Z.js +0 -588
  716. package/dist/onboarding.finalize-BY8uN1nD.js +0 -402
  717. package/dist/onboarding.finalize-C-kfj-aR.js +0 -404
  718. package/dist/onboarding.gateway-config-BL0Q7Wpg.js +0 -201
  719. package/dist/onboarding.gateway-config-D2QsXMYO.js +0 -195
  720. package/dist/outbound-CcaPcetn.js +0 -220
  721. package/dist/outbound-CeiW8z3a.js +0 -221
  722. package/dist/outbound-attachment-BLSGI2dJ.js +0 -18
  723. package/dist/outbound-attachment-Bfm5-JYe.js +0 -18
  724. package/dist/outbound-attachment-CZ7zoYxB.js +0 -18
  725. package/dist/pairing-cli-CgX79ujL.js +0 -125
  726. package/dist/pairing-cli-DvbbXFgC.js +0 -129
  727. package/dist/pairing-labels-3wDxaApH.js +0 -9
  728. package/dist/pairing-labels-DCbWnbWk.js +0 -9
  729. package/dist/pairing-store-CdY7iRS0.js +0 -459
  730. package/dist/pairing-store-DykkYpQ7.js +0 -460
  731. package/dist/path-env-Cqo5LZmw.js +0 -89
  732. package/dist/path-guards-DOpzcMXz.js +0 -31
  733. package/dist/path-guards-DipYoPVw.js +0 -31
  734. package/dist/path-safety-CXKAVpMp.js +0 -14
  735. package/dist/path-safety-DGB91qBk.js +0 -14
  736. package/dist/paths-BTaH3rLn.js +0 -232
  737. package/dist/plugin-auto-enable-C6FPGg_-.js +0 -301
  738. package/dist/plugin-auto-enable-L8eOc8iC.js +0 -302
  739. package/dist/plugin-registry-BTycBIix.js +0 -33
  740. package/dist/plugin-registry-CFty9Gym.js +0 -33
  741. package/dist/plugin-sdk/auto-reply/reply/elevated-allowlist-matcher.d.ts +0 -20
  742. package/dist/plugin-sdk/auto-reply/reply/elevated-unavailable.d.ts +0 -8
  743. package/dist/plugin-sdk/auto-reply/reply/reply-elevated.d.ts +0 -16
  744. package/dist/plugin-sdk/compat/legacy-names.d.ts +0 -8
  745. package/dist/plugin-sdk/config/legacy.migrations.part-1.d.ts +0 -2
  746. package/dist/plugin-sdk/config/legacy.migrations.part-2.d.ts +0 -2
  747. package/dist/plugin-sdk/config/legacy.migrations.part-3.d.ts +0 -2
  748. package/dist/plugin-sdk/cron/legacy-delivery.d.ts +0 -3
  749. package/dist/plugin-sdk/cron/payload-migration.d.ts +0 -3
  750. package/dist/plugin-sdk/link-understanding/apply.d.ts +0 -10
  751. package/dist/plugin-sdk/link-understanding/defaults.d.ts +0 -2
  752. package/dist/plugin-sdk/link-understanding/detect.d.ts +0 -3
  753. package/dist/plugin-sdk/link-understanding/format.d.ts +0 -4
  754. package/dist/plugin-sdk/link-understanding/runner.d.ts +0 -11
  755. package/dist/plugin-sdk/media/input-files.d.ts +0 -95
  756. package/dist/plugin-sdk/media-understanding/apply.d.ts +0 -19
  757. package/dist/plugin-sdk/media-understanding/attachments.d.ts +0 -49
  758. package/dist/plugin-sdk/media-understanding/concurrency.d.ts +0 -1
  759. package/dist/plugin-sdk/media-understanding/defaults.d.ts +0 -11
  760. package/dist/plugin-sdk/media-understanding/errors.d.ts +0 -6
  761. package/dist/plugin-sdk/media-understanding/format.d.ts +0 -7
  762. package/dist/plugin-sdk/media-understanding/fs.d.ts +0 -1
  763. package/dist/plugin-sdk/media-understanding/output-extract.d.ts +0 -2
  764. package/dist/plugin-sdk/media-understanding/providers/anthropic/index.d.ts +0 -2
  765. package/dist/plugin-sdk/media-understanding/providers/deepgram/audio.d.ts +0 -1
  766. package/dist/plugin-sdk/media-understanding/providers/deepgram/index.d.ts +0 -2
  767. package/dist/plugin-sdk/media-understanding/providers/google/audio.d.ts +0 -1
  768. package/dist/plugin-sdk/media-understanding/providers/google/index.d.ts +0 -2
  769. package/dist/plugin-sdk/media-understanding/providers/google/video.d.ts +0 -3
  770. package/dist/plugin-sdk/media-understanding/providers/groq/index.d.ts +0 -2
  771. package/dist/plugin-sdk/media-understanding/providers/index.d.ts +0 -4
  772. package/dist/plugin-sdk/media-understanding/providers/minimax/index.d.ts +0 -2
  773. package/dist/plugin-sdk/media-understanding/providers/mistral/index.d.ts +0 -2
  774. package/dist/plugin-sdk/media-understanding/providers/moonshot/index.d.ts +0 -2
  775. package/dist/plugin-sdk/media-understanding/providers/moonshot/video.d.ts +0 -3
  776. package/dist/plugin-sdk/media-understanding/providers/openai/audio.d.ts +0 -1
  777. package/dist/plugin-sdk/media-understanding/providers/openai/index.d.ts +0 -2
  778. package/dist/plugin-sdk/media-understanding/providers/shared.d.ts +0 -20
  779. package/dist/plugin-sdk/media-understanding/providers/zai/index.d.ts +0 -2
  780. package/dist/plugin-sdk/media-understanding/resolve.d.ts +0 -44
  781. package/dist/plugin-sdk/media-understanding/runner.d.ts +0 -34
  782. package/dist/plugin-sdk/media-understanding/runner.entries.d.ts +0 -33
  783. package/dist/plugin-sdk/media-understanding/scope.d.ts +0 -9
  784. package/dist/plugin-sdk/media-understanding/types.d.ts +0 -59
  785. package/dist/plugin-sdk/media-understanding/video.d.ts +0 -2
  786. package/dist/plugin-sdk/utils/run-with-concurrency.d.ts +0 -11
  787. package/dist/plugins-7B167wIj.js +0 -453
  788. package/dist/plugins-BRHOfy1Z.js +0 -455
  789. package/dist/plugins-cli-CQGW40I-.js +0 -797
  790. package/dist/plugins-cli-D-ZfWRTw.js +0 -801
  791. package/dist/ports-CAqyeQYZ.js +0 -316
  792. package/dist/ports-CTUgXF2d.js +0 -96
  793. package/dist/ports-DqfnVnCw.js +0 -370
  794. package/dist/preflight-CJqKHCYa.js +0 -64
  795. package/dist/preflight-TR92sc61.js +0 -68
  796. package/dist/program-_SGrjcuG.js +0 -248
  797. package/dist/program-context-B6yIPfYd.js +0 -474
  798. package/dist/progress-BOdRbOHD.js +0 -124
  799. package/dist/prompt-WEkXwIMT.js +0 -21
  800. package/dist/prompt-select-styled-BiBnOTh8.js +0 -1669
  801. package/dist/prompt-select-styled-DQacku67.js +0 -1672
  802. package/dist/prompt-style-B4Cq4PyQ.js +0 -9
  803. package/dist/provider-dispatcher-BjsUFEpi.js +0 -659
  804. package/dist/provider-dispatcher-BxNDRVIT.js +0 -660
  805. package/dist/push-apns-Cj0Ryn18.js +0 -713
  806. package/dist/push-apns-fFfYCqda.js +0 -711
  807. package/dist/pw-ai-CnN2sITD.js +0 -1908
  808. package/dist/pw-ai-fnX3cecw.js +0 -1911
  809. package/dist/qr-cli-CriPg41m.js +0 -349
  810. package/dist/qr-cli-DSURqD0D.js +0 -353
  811. package/dist/redact-gXuh8MFk.js +0 -191
  812. package/dist/redact-snapshot-BecRL_h6.js +0 -2016
  813. package/dist/redact-snapshot-pTdzSrex.js +0 -2016
  814. package/dist/register.agent-Bpwvc5By.js +0 -1018
  815. package/dist/register.agent-DQFcnOVQ.js +0 -290
  816. package/dist/register.configure-C5CK8tgd.js +0 -133
  817. package/dist/register.configure-CEJ5Wrkl.js +0 -128
  818. package/dist/register.import-CPQqqdje.js +0 -31
  819. package/dist/register.import-D1UaH1QV.js +0 -29
  820. package/dist/register.maintenance-Bpz-NOhG.js +0 -499
  821. package/dist/register.maintenance-DDwlfAfw.js +0 -501
  822. package/dist/register.message-BoNswT8e.js +0 -685
  823. package/dist/register.message-pvz70g_-.js +0 -689
  824. package/dist/register.onboard-BvcVLNp3.js +0 -93
  825. package/dist/register.onboard-CZV7LvZI.js +0 -97
  826. package/dist/register.setup-Cgv2uSPG.js +0 -117
  827. package/dist/register.setup-yTqvTinY.js +0 -113
  828. package/dist/register.status-health-sessions-LK50hWDT.js +0 -428
  829. package/dist/register.status-health-sessions-kDGDihye.js +0 -668
  830. package/dist/register.subclis-DSr7AHAr.js +0 -267
  831. package/dist/replies-IpiCq1Ht.js +0 -136
  832. package/dist/replies-LSx_XhsP.js +0 -136
  833. package/dist/reply-B8It91bP.js +0 -13652
  834. package/dist/reply-CbgHVTv2.js +0 -13649
  835. package/dist/reply-directives-Cz7622Qx.js +0 -182
  836. package/dist/reply-directives-ssnaPNiU.js +0 -182
  837. package/dist/reply-payloads-CQMtrphw.js +0 -527
  838. package/dist/reply-prefix-CWcAZKhE.js +0 -37
  839. package/dist/reply-prefix-Drq7Pf3A.js +0 -37
  840. package/dist/resolve-route-B8uIc2H3.js +0 -249
  841. package/dist/resolve-route-C8ooNlI4.js +0 -249
  842. package/dist/response-prefix-template-D3ZcJP4E.js +0 -134
  843. package/dist/response-prefix-template-DPOggmPO.js +0 -134
  844. package/dist/retry-B19gMxS7.js +0 -77
  845. package/dist/retry-BdhJlZQI.js +0 -77
  846. package/dist/run-main-BP3UHEJa.js +0 -306
  847. package/dist/runner-CD3YycXx.js +0 -2365
  848. package/dist/runner-D74Wiza_.js +0 -2365
  849. package/dist/secure-random-CQa3H-OL.js +0 -44
  850. package/dist/security-cli-05blEYyC.js +0 -482
  851. package/dist/security-cli-DYbt8duB.js +0 -487
  852. package/dist/send-7O3-bRtl.js +0 -547
  853. package/dist/send-9Huf62k3.js +0 -2245
  854. package/dist/send-B0C42B2A.js +0 -426
  855. package/dist/send-B9mIJdUo.js +0 -547
  856. package/dist/send-BHm9dk6D.js +0 -1178
  857. package/dist/send-BetMntNc.js +0 -11
  858. package/dist/send-Bj0RXr-a.js +0 -492
  859. package/dist/send-COuVtZ4b.js +0 -374
  860. package/dist/send-CXNuhYA-.js +0 -332
  861. package/dist/send-Ce_BDa8P.js +0 -349
  862. package/dist/send-ChvasRSh.js +0 -1779
  863. package/dist/send-DNVRlTEF.js +0 -29
  864. package/dist/send-DWf7BCPe.js +0 -492
  865. package/dist/send-Dd2_MykI.js +0 -2245
  866. package/dist/send-IJaUAa8H.js +0 -1776
  867. package/dist/send-vvZXksNU.js +0 -349
  868. package/dist/server-BrzR9JmX.js +0 -206
  869. package/dist/server-_h27-uP_.js +0 -202
  870. package/dist/server-lifecycle-CUdA6Far.js +0 -2437
  871. package/dist/server-lifecycle-DQZWL8iP.js +0 -2437
  872. package/dist/server-node-events-DSefRBGC.js +0 -394
  873. package/dist/server-node-events-jDiG1-M2.js +0 -390
  874. package/dist/service-9le8AnC-.js +0 -670
  875. package/dist/service-Drb0kx6I.js +0 -670
  876. package/dist/session-BIAOl5QR.js +0 -170
  877. package/dist/session-Wu00pCn_.js +0 -170
  878. package/dist/session-cost-usage-7plmOKbs.js +0 -627
  879. package/dist/session-cost-usage-CPFxBFUg.js +0 -627
  880. package/dist/session-dirs-CfIrIJxG.js +0 -318
  881. package/dist/session-dirs-DlPpWt5Q.js +0 -318
  882. package/dist/session-utils-Sd9w4vc1.js +0 -622
  883. package/dist/session-utils-iL47hYmZ.js +0 -622
  884. package/dist/sessions-6pKQ3gN3.js +0 -247
  885. package/dist/sessions-ZRmCDdj1.js +0 -2569
  886. package/dist/shell-env-DYZq9PqC.js +0 -163
  887. package/dist/ssrf-B-rF_tZB.js +0 -183
  888. package/dist/ssrf-DJW14Wkh.js +0 -183
  889. package/dist/status-BGM-EJGk.js +0 -1983
  890. package/dist/status-CGkrO9om.js +0 -1979
  891. package/dist/status.update-DlBReI5-.js +0 -449
  892. package/dist/status.update-v7fEQ7R9.js +0 -449
  893. package/dist/store-B5989JkX.js +0 -64
  894. package/dist/store-BpXxa0Uf.js +0 -53
  895. package/dist/store-DCrrxHyS.js +0 -2571
  896. package/dist/store-Ql6vAcsg.js +0 -64
  897. package/dist/subagent-registry-BGknZEUI.js +0 -4856
  898. package/dist/subagent-registry-CWeRBjfn.js +0 -4854
  899. package/dist/subsystem-Ct6qOOqZ.js +0 -1079
  900. package/dist/subsystem-PQ64_nsu.js +0 -1136
  901. package/dist/system-cli-CmO-4Rju.js +0 -77
  902. package/dist/system-cli-VBsa18K6.js +0 -73
  903. package/dist/systemd-CqFpK30Y.js +0 -547
  904. package/dist/systemd-fK9AV5bP.js +0 -547
  905. package/dist/systemd-hints-D3rr0j14.js +0 -278
  906. package/dist/systemd-hints-DNOSRaqA.js +0 -278
  907. package/dist/systemd-linger-B907NVVy.js +0 -75
  908. package/dist/systemd-linger-wYksBbM7.js +0 -75
  909. package/dist/table-C-dba-5-.js +0 -279
  910. package/dist/tables-CO_kxD0e.js +0 -55
  911. package/dist/tables-Rd6ZUH0u.js +0 -55
  912. package/dist/tables-WZp8Vt9n.js +0 -55
  913. package/dist/tailnet-CfZhpSnt.js +0 -40
  914. package/dist/tailnet-D0NV0tRJ.js +0 -40
  915. package/dist/tailscale-B__xvMjA.js +0 -230
  916. package/dist/tailscale-q_ZrxUCc.js +0 -230
  917. package/dist/targets-B4rMyQFJ.js +0 -53
  918. package/dist/targets-BEBzTa22.js +0 -114
  919. package/dist/targets-BjWhDMJM.js +0 -650
  920. package/dist/targets-BlEVuFSt.js +0 -2474
  921. package/dist/targets-CHwGDIgO.js +0 -650
  922. package/dist/targets-CbbmgMRV.js +0 -2473
  923. package/dist/targets-SpN-MPBH.js +0 -220
  924. package/dist/targets-mqj9GNg1.js +0 -53
  925. package/dist/thinking-BqJmU6Zp.js +0 -88
  926. package/dist/thinking-l-rrvZwu.js +0 -88
  927. package/dist/tokens-DAFBx5qr.js +0 -21
  928. package/dist/tool-display-C0hpLmkw.js +0 -785
  929. package/dist/tool-display-CQTRHo3Z.js +0 -785
  930. package/dist/tool-images-BYY11Gw3.js +0 -263
  931. package/dist/tool-images-CnJ0R8Fo.js +0 -263
  932. package/dist/trash-C0mjnHuW.js +0 -125
  933. package/dist/trash-Cgwc9mLD.js +0 -125
  934. package/dist/tui-9cJnR1dN.js +0 -3282
  935. package/dist/tui-BR3egaFJ.js +0 -3282
  936. package/dist/tui-cli-BYpkhE6J.js +0 -66
  937. package/dist/tui-cli-DndeZyup.js +0 -62
  938. package/dist/update-BJVdkzk7.js +0 -349
  939. package/dist/update-DjI6KTA5.js +0 -349
  940. package/dist/update-cli-DR-zFdCm.js +0 -1146
  941. package/dist/update-cli-EuHV_AUf.js +0 -1148
  942. package/dist/usage-BQUMGgBj.js +0 -5350
  943. package/dist/utils-C5daYcFn.js +0 -631
  944. package/dist/voice-credentials-CXdoE4IF.js +0 -45
  945. package/dist/voice-credentials-Cu7htUQq.js +0 -45
  946. package/dist/web-6WVkqhtO.js +0 -3087
  947. package/dist/web-BfSXKISl.js +0 -74
  948. package/dist/web-Cngqu3vs.js +0 -79
  949. package/dist/webhooks-cli-0yQha2yj.js +0 -334
  950. package/dist/webhooks-cli-ula0bTX-.js +0 -330
  951. package/dist/whatsapp-actions-3NdzsNg1.js +0 -130
  952. package/dist/whatsapp-actions-y_1vjkYY.js +0 -125
  953. package/dist/widearea-dns-C-0P7TRi.js +0 -127
  954. package/dist/workspace-BT3X-qCZ.js +0 -449
  955. package/dist/workspace-D5hHXubL.js +0 -447
  956. package/dist/zod-schema-CbqZAIYy.js +0 -2696
  957. package/dist/zod-schema-YGQJEcnj.js +0 -2696
  958. /package/dist/{account-lookup-BOCzCnir.js → account-lookup-CIY_RKhi.js} +0 -0
  959. /package/dist/{agent-helpers-eEHy5uX2.js → agent-helpers-Bs2nBXeI.js} +0 -0
  960. /package/dist/{api-Cd_7aESj.js → api-BE4ZCWWB.js} +0 -0
  961. /package/dist/{api-DJ_oWYus.js → api-wsk9zRVi.js} +0 -0
  962. /package/dist/{chat-type-DyovJwCt.js → chat-type-BP9akbag.js} +0 -0
  963. /package/dist/{chunk-CWD_zrz_.js → chunk-BAMyFYtF.js} +0 -0
  964. /package/dist/{cleanup-utils-gNzIs9yk.js → cleanup-utils-ZC2zvntc.js} +0 -0
  965. /package/dist/{cli-name-3MdfbvIR.js → cli-name-BZsYSp9l.js} +0 -0
  966. /package/dist/{cli-name-CRLBidNP.js → cli-name-CRe5Ow_t.js} +0 -0
  967. /package/dist/{cli-utils-5ZIfXAfM.js → cli-utils-CGB3cBZm.js} +0 -0
  968. /package/dist/{client-D5m46AuY.js → client-9dK56xly.js} +0 -0
  969. /package/dist/{client-DFyI5I0n.js → client-D-R1YdRD.js} +0 -0
  970. /package/dist/{command-options-Cn2fc1Of.js → command-options-CnHA4TzR.js} +0 -0
  971. /package/dist/{config-eval-BCKpAS_K.js → config-eval-BQIR-wSg.js} +0 -0
  972. /package/dist/{config-eval-CU2G7a83.js → config-eval-Bh82JoXK.js} +0 -0
  973. /package/dist/{constants-CRGAZ2ow.js → constants-C7j1VA2S.js} +0 -0
  974. /package/dist/{constants-BAZuhSRm.js → constants-PMRtHBHU.js} +0 -0
  975. /package/dist/{credentials-DMAWNZdV.js → credentials-C_RoJFmK.js} +0 -0
  976. /package/dist/{credentials-Dmc3H-jd.js → credentials-DM_Dj0m8.js} +0 -0
  977. /package/dist/{daemon-runtime-aQhinwSL.js → daemon-runtime-9oDBR7YW.js} +0 -0
  978. /package/dist/{dangerous-name-matching-BCaPvXy_.js → dangerous-name-matching-CSq9sJDG.js} +0 -0
  979. /package/dist/{dangerous-tools-E1i3IoxZ.js → dangerous-tools-D4jtl72G.js} +0 -0
  980. /package/dist/{fetch-DTR2MlOk.js → fetch-DTsU2XnC.js} +0 -0
  981. /package/dist/{fetch-timeout-l_6RdoMw.js → fetch-timeout-CytN1wiO.js} +0 -0
  982. /package/dist/{file-identity-BnGA6wyc.js → file-identity-CeRK5CJC.js} +0 -0
  983. /package/dist/{format-relative-Cywx6ldk.js → format-relative-Czf5fUjn.js} +0 -0
  984. /package/dist/{format-relative-DcQZUAYl.js → format-relative-zwkkXJvs.js} +0 -0
  985. /package/dist/{health-format-CL2Xq92A.js → health-format-DF54wvUU.js} +0 -0
  986. /package/dist/{heartbeat-wake-DjsTDzF3.js → heartbeat-wake-CvHncCjP.js} +0 -0
  987. /package/dist/{helpers-D-r6yhnI.js → helpers-DAEoFkbn.js} +0 -0
  988. /package/dist/{helpers-DSMIGYx2.js → helpers-n2CtWpm9.js} +0 -0
  989. /package/dist/{helpers-CRrn7Err.js → helpers-ndPQWl6m.js} +0 -0
  990. /package/dist/{input-provenance-BgfeDgck.js → input-provenance-gIfDn1ki.js} +0 -0
  991. /package/dist/{input-provenance-xUsSMOsz.js → input-provenance-wkso1o5V.js} +0 -0
  992. /package/dist/{ip-BAhS4rY2.js → ip-D4VG5EJO.js} +0 -0
  993. /package/dist/{ip-BUhsZdJu.js → ip-MwCwRA7c.js} +0 -0
  994. /package/dist/{json-file-Dbg7nZg1.js → json-file-BW22hGtf.js} +0 -0
  995. /package/dist/{json-file-B5WEJJye.js → json-file-DwRAfAAy.js} +0 -0
  996. /package/dist/{json-files-CfhnuGaC.js → json-files-BI20PLIm.js} +0 -0
  997. /package/dist/{json-files-BFGbyEzL.js → json-files-Dy52honG.js} +0 -0
  998. /package/dist/{lanes-4FoQemog.js → lanes-1CBKdsiR.js} +0 -0
  999. /package/dist/{lanes-BhdzrAIa.js → lanes-DqVYfPRG.js} +0 -0
  1000. /package/dist/{logger-IA_Dr_BT.js → logger-B8BE0PyS.js} +0 -0
  1001. /package/dist/{logger-nEdVxm5D.js → logger-CPvz-aPM.js} +0 -0
  1002. /package/dist/{logger-O6JX52kK.js → logger-cL0D2DCr.js} +0 -0
  1003. /package/dist/{logging-BiuZwq5D.js → logging-DRwtiLIS.js} +0 -0
  1004. /package/dist/{logging-Bs1VqVFL.js → logging-DTEoeoa3.js} +0 -0
  1005. /package/dist/{logging-JZEg5nDp.js → logging-fywhKCmE.js} +0 -0
  1006. /package/dist/{mutable-allowlist-detectors-TCG6mnbz.js → mutable-allowlist-detectors-BXE7Hr7F.js} +0 -0
  1007. /package/dist/{onboard-config-BxfgUqk6.js → onboard-config-DOmXYEvJ.js} +0 -0
  1008. /package/dist/{onboard-config-DNzlo8Cg.js → onboard-config-JmR21VYa.js} +0 -0
  1009. /package/dist/{parse-log-line-CT0H1-oQ.js → parse-log-line-GisaZn5H.js} +0 -0
  1010. /package/dist/{parse-log-line-pij_xhtE.js → parse-log-line-ZsbwG_u7.js} +0 -0
  1011. /package/dist/{parse-timeout-CvODy9RC.js → parse-timeout-BpphuwYl.js} +0 -0
  1012. /package/dist/{parse-timeout-CxYHsZWc.js → parse-timeout-CE6BjmGU.js} +0 -0
  1013. /package/dist/plugin-sdk/{media-understanding → stt}/providers/google/inline-data.d.ts +0 -0
  1014. /package/dist/{plugins-allowlist-Bcqe9Gd8.js → plugins-allowlist-A38nxBRG.js} +0 -0
  1015. /package/dist/{plugins-allowlist-ptAp-oPY.js → plugins-allowlist-D2tS9tcu.js} +0 -0
  1016. /package/dist/{polls-DQrR-qT3.js → polls-BLyT08ZI.js} +0 -0
  1017. /package/dist/{polls-ybwcqkWt.js → polls-BmymsJEe.js} +0 -0
  1018. /package/dist/{ports-BS8kQkd9.js → ports-DALdfBQy.js} +0 -0
  1019. /package/dist/{process-scoped-map-BwUkYFQV.js → process-scoped-map-BCJR56ZB.js} +0 -0
  1020. /package/dist/{process-scoped-map-_zxf_kLz.js → process-scoped-map-Cb1EHPyN.js} +0 -0
  1021. /package/dist/{program-context-CG-t6Yp-.js → program-context-DlXnmuB7.js} +0 -0
  1022. /package/dist/{prompt-style-B1740PBl.js → prompt-style-CUuA6OCy.js} +0 -0
  1023. /package/dist/{proxy-BdjLhNln.js → proxy-D-qGA1vm.js} +0 -0
  1024. /package/dist/{pw-ai-state-DaISdsXY.js → pw-ai-state--TxTVwRW.js} +0 -0
  1025. /package/dist/{redact-CqWx9rpK.js → redact-BW8tobyp.js} +0 -0
  1026. /package/dist/{redact-identifier-DR54qsoT.js → redact-identifier-Bv5SUUw-.js} +0 -0
  1027. /package/dist/{remoteclaw-root-u8dAeHID.js → remoteclaw-root-BfPjgewe.js} +0 -0
  1028. /package/dist/{remoteclaw-root-CgNyrbxc.js → remoteclaw-root-E4-hmb4E.js} +0 -0
  1029. /package/dist/{render-CDCvpfhh.js → render-BhKzKdV0.js} +0 -0
  1030. /package/dist/{render-CJl4GK1B.js → render-e7fENCYH.js} +0 -0
  1031. /package/dist/{retry-cXXk2j6_.js → retry-BWv_fy4u.js} +0 -0
  1032. /package/dist/{runtime-guard-BS55uiSW.js → runtime-guard-Bhx-pb8_.js} +0 -0
  1033. /package/dist/{runtime-status-BhW7hP_U.js → runtime-status-CR9445g5.js} +0 -0
  1034. /package/dist/{secret-equal-CJzes24Z.js → secret-equal-D6AoXne1.js} +0 -0
  1035. /package/dist/{secret-equal-CQAmGfGc.js → secret-equal-DLnUuWM3.js} +0 -0
  1036. /package/dist/{secure-random-B3f7Ri2X.js → secure-random-CJtykx_p.js} +0 -0
  1037. /package/dist/{secure-random-BkZFG9cd.js → secure-random-CRVHgtmO.js} +0 -0
  1038. /package/dist/{stagger-B-_Wnofy.js → stagger--wvODnNe.js} +0 -0
  1039. /package/dist/{stagger-B2ORDHsP.js → stagger-BLmTO4cK.js} +0 -0
  1040. /package/dist/{status-C6YNwimj.js → status-1zVD-Clq.js} +0 -0
  1041. /package/dist/{status-yrDGXYZM.js → status-BtRY0nXQ.js} +0 -0
  1042. /package/dist/{strip-inbound-meta-0cvL6itU.js → strip-inbound-meta-zmUXypSS.js} +0 -0
  1043. /package/dist/{strip-inbound-meta-DjKcSFaW.js → strip-inbound-meta-zqtN9FTK.js} +0 -0
  1044. /package/dist/{table-ByMyHTh_.js → table-On3hkCqi.js} +0 -0
  1045. /package/dist/{targets-DOJXjN1U.js → targets-B46m7u5J.js} +0 -0
  1046. /package/dist/{targets-WSwPflb6.js → targets-D7PT_rdO.js} +0 -0
  1047. /package/dist/{text-format-mr5bZq0f.js → text-format-Ds92M9UT.js} +0 -0
  1048. /package/dist/{tokens-C8yGxAcR.js → tokens-Dw7ZdYwT.js} +0 -0
  1049. /package/dist/{usage-BXi79Rq6.js → usage-BIzKZ5dT.js} +0 -0
  1050. /package/dist/{usage-C1lHaofV.js → usage-BvZOzIC7.js} +0 -0
  1051. /package/dist/{usage-format-CD5jsZY1.js → usage-format-CmniSPCG.js} +0 -0
  1052. /package/dist/{usage-format-CRVpDVj1.js → usage-format-D_KQYQ-w.js} +0 -0
  1053. /package/dist/{widearea-dns-DFZMcfLf.js → widearea-dns-D01FFYZ8.js} +0 -0
  1054. /package/dist/{wsl-D28w2jQC.js → wsl-PDLKeX04.js} +0 -0
@@ -1,1983 +0,0 @@
1
- import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Ct as theme, Ht as resolveGatewayPort, St as isRich, ft as info } from "./entry.js";
3
- import { i as loadConfig, o as readConfigFileSnapshot } from "./config-W0w-gi2j.js";
4
- import { t as VERSION } from "./version-3QUZW8EP.js";
5
- import { C as parseAgentSessionKey } from "./session-key-BF-9YzxC.js";
6
- import { o as resolveAgentWorkspaceDir } from "./agent-scope-CJW7vnF8.js";
7
- import { G as resolveFreshSessionTotalTokens, Y as resolveMainSessionKey, l as loadSessionStore } from "./sessions-ZRmCDdj1.js";
8
- import { n as listChannelPlugins } from "./plugins-7B167wIj.js";
9
- import { t as formatCliCommand } from "./command-format-LFmgWzKJ.js";
10
- import { m as resolveStorePath } from "./chat-envelope-CrM0X4sl.js";
11
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-ChdUdwb4.js";
12
- import { n as runExec } from "./exec-D_s-zAtY.js";
13
- import { $ as formatUsageReportLines, Q as loadProviderUsageSummary, c as formatChannelAllowFrom, o as buildChannelSummary, s as buildChannelAccountSnapshot } from "./reply-CbgHVTv2.js";
14
- import { n as sha256HexPrefix } from "./redact-identifier-DR54qsoT.js";
15
- import { b as peekSystemEvents } from "./targets-CbbmgMRV.js";
16
- import { n as formatTimeAgo } from "./format-relative-DcQZUAYl.js";
17
- import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-CAqyeQYZ.js";
18
- import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-q_ZrxUCc.js";
19
- import { n as formatDurationPrecise } from "./format-duration-B-Uv5nOi.js";
20
- import { n as withProgress } from "./progress-DRLmcFiG.js";
21
- import { t as resolveChannelDefaultAccountId } from "./helpers-CRrn7Err.js";
22
- import { h as resolveControlUiLinks, x as normalizeControlUiBasePath } from "./onboard-helpers-Q7M6vdzh.js";
23
- import { t as collectChannelStatusIssues } from "./channels-status-issues-DhDH2fWp.js";
24
- import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-9le8AnC-.js";
25
- import { t as formatRuntimeStatusWithDetails } from "./runtime-status-BhW7hP_U.js";
26
- import { t as readLastGatewayErrorLine } from "./diagnostics-BSvCaLNs.js";
27
- import { t as renderTable } from "./table-ByMyHTh_.js";
28
- import { _ as resolveGatewayProbeAuth$1, b as probeGateway, t as runSecurityAudit } from "./audit-CAY-uzWP.js";
29
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CXWQZGNz.js";
30
- import { t as resolveRemoteClawPackageRoot } from "./remoteclaw-root-CgNyrbxc.js";
31
- import { a as readRestartSentinel, f as normalizeUpdateChannel, m as resolveUpdateChannelDisplay, o as summarizeRestartSentinel, t as resolveDefaultChannelAccountContext } from "./channel-account-context-BO245Tcn.js";
32
- import { a as checkUpdateStatus, i as resolveUpdateAvailability, n as formatUpdateOneLiner, r as getUpdateCheckResult, t as formatUpdateAvailableHint } from "./status.update-v7fEQ7R9.js";
33
- import { l as resolveSessionModelRef, n as classifySessionKey, r as listAgentsForGateway } from "./session-utils-Sd9w4vc1.js";
34
- import { t as resolveNodeService } from "./node-service-CumFZc9L.js";
35
- import { t as shortenText } from "./text-format-mr5bZq0f.js";
36
- import { spawnSync } from "node:child_process";
37
- import os from "node:os";
38
- import path from "node:path";
39
- import fs from "node:fs";
40
- import fsp from "node:fs/promises";
41
-
42
- //#region src/commands/gateway-presence.ts
43
- function pickGatewaySelfPresence(presence) {
44
- if (!Array.isArray(presence)) return null;
45
- const entries = presence;
46
- const self = entries.find((e) => e.mode === "gateway" && e.reason === "self") ?? entries.find((e) => typeof e.text === "string" && String(e.text).startsWith("Gateway:")) ?? null;
47
- if (!self) return null;
48
- return {
49
- host: typeof self.host === "string" ? self.host : void 0,
50
- ip: typeof self.ip === "string" ? self.ip : void 0,
51
- version: typeof self.version === "string" ? self.version : void 0,
52
- platform: typeof self.platform === "string" ? self.platform : void 0
53
- };
54
- }
55
-
56
- //#endregion
57
- //#region src/infra/os-summary.ts
58
- function safeTrim(value) {
59
- return typeof value === "string" ? value.trim() : "";
60
- }
61
- function macosVersion() {
62
- return safeTrim(spawnSync("sw_vers", ["-productVersion"], { encoding: "utf-8" }).stdout) || os.release();
63
- }
64
- function resolveOsSummary() {
65
- const platform = os.platform();
66
- const release = os.release();
67
- const arch = os.arch();
68
- return {
69
- platform,
70
- arch,
71
- release,
72
- label: (() => {
73
- if (platform === "darwin") return `macos ${macosVersion()} (${arch})`;
74
- if (platform === "win32") return `windows ${release} (${arch})`;
75
- return `${platform} ${release} (${arch})`;
76
- })()
77
- };
78
- }
79
-
80
- //#endregion
81
- //#region src/commands/status-all/agents.ts
82
- async function fileExists$1(p) {
83
- try {
84
- await fsp.access(p);
85
- return true;
86
- } catch {
87
- return false;
88
- }
89
- }
90
- async function getAgentLocalStatuses$1(cfg) {
91
- const agentList = listAgentsForGateway(cfg);
92
- const now = Date.now();
93
- const agents = await Promise.all(agentList.agents.map(async (agent) => {
94
- const workspaceDir = (() => {
95
- try {
96
- return resolveAgentWorkspaceDir(cfg, agent.id);
97
- } catch {
98
- return null;
99
- }
100
- })();
101
- const bootstrapPending = workspaceDir != null ? await fileExists$1(path.join(workspaceDir, "BOOTSTRAP.md")) : null;
102
- const sessionsPath = resolveStorePath(cfg.session?.store, { agentId: agent.id });
103
- const store = (() => {
104
- try {
105
- return loadSessionStore(sessionsPath);
106
- } catch {
107
- return {};
108
- }
109
- })();
110
- const updatedAt = Object.values(store).reduce((max, entry) => Math.max(max, entry?.updatedAt ?? 0), 0);
111
- const lastUpdatedAt = updatedAt > 0 ? updatedAt : null;
112
- const lastActiveAgeMs = lastUpdatedAt ? now - lastUpdatedAt : null;
113
- const sessionsCount = Object.keys(store).filter((k) => k !== "global" && k !== "unknown").length;
114
- return {
115
- id: agent.id,
116
- name: agent.name,
117
- workspaceDir,
118
- bootstrapPending,
119
- sessionsPath,
120
- sessionsCount,
121
- lastUpdatedAt,
122
- lastActiveAgeMs
123
- };
124
- }));
125
- const totalSessions = agents.reduce((sum, a) => sum + a.sessionsCount, 0);
126
- const bootstrapPendingCount = agents.reduce((sum, a) => sum + (a.bootstrapPending ? 1 : 0), 0);
127
- return {
128
- defaultId: agentList.defaultId,
129
- agents,
130
- totalSessions,
131
- bootstrapPendingCount
132
- };
133
- }
134
-
135
- //#endregion
136
- //#region src/commands/status-all/format.ts
137
- function formatGatewayAuthUsed(auth) {
138
- const hasToken = Boolean(auth?.token?.trim());
139
- const hasPassword = Boolean(auth?.password?.trim());
140
- if (hasToken && hasPassword) return "token+password";
141
- if (hasToken) return "token";
142
- if (hasPassword) return "password";
143
- return "none";
144
- }
145
- function redactSecrets(text) {
146
- if (!text) return text;
147
- let out = text;
148
- out = out.replace(/(\b(?:access[_-]?token|refresh[_-]?token|token|password|secret|api[_-]?key)\b\s*[:=]\s*)("?)([^"\\s]+)("?)/gi, "$1$2***$4");
149
- out = out.replace(/\bBearer\s+[A-Za-z0-9._-]+\b/g, "Bearer ***");
150
- out = out.replace(/\bsk-[A-Za-z0-9]{10,}\b/g, "sk-***");
151
- return out;
152
- }
153
-
154
- //#endregion
155
- //#region src/commands/status-all/channels.ts
156
- const asRecord = (value) => value && typeof value === "object" ? value : {};
157
- function summarizeSources(sources) {
158
- const counts = /* @__PURE__ */ new Map();
159
- for (const s of sources) {
160
- const key = s?.trim() ? s.trim() : "unknown";
161
- counts.set(key, (counts.get(key) ?? 0) + 1);
162
- }
163
- const parts = [...counts.entries()].toSorted((a, b) => b[1] - a[1]).map(([key, n]) => `${key}${n > 1 ? `×${n}` : ""}`);
164
- return {
165
- label: parts.length > 0 ? parts.join("+") : "unknown",
166
- parts
167
- };
168
- }
169
- function existsSyncMaybe(p) {
170
- const path = p?.trim() || "";
171
- if (!path) return null;
172
- try {
173
- return fs.existsSync(path);
174
- } catch {
175
- return null;
176
- }
177
- }
178
- function formatTokenHint(token, opts) {
179
- const t = token.trim();
180
- if (!t) return "empty";
181
- if (!opts.showSecrets) return `sha256:${sha256HexPrefix(t, 8)} · len ${t.length}`;
182
- const head = t.slice(0, 4);
183
- const tail = t.slice(-4);
184
- if (t.length <= 10) return `${t} · len ${t.length}`;
185
- return `${head}…${tail} · len ${t.length}`;
186
- }
187
- const formatAccountLabel = (params) => {
188
- const base = params.accountId || "default";
189
- if (params.name?.trim()) return `${base} (${params.name.trim()})`;
190
- return base;
191
- };
192
- const resolveAccountEnabled = (plugin, account, cfg) => {
193
- if (plugin.config.isEnabled) return plugin.config.isEnabled(account, cfg);
194
- return asRecord(account).enabled !== false;
195
- };
196
- const resolveAccountConfigured = async (plugin, account, cfg) => {
197
- if (plugin.config.isConfigured) return await plugin.config.isConfigured(account, cfg);
198
- return asRecord(account).configured !== false;
199
- };
200
- const buildAccountNotes = (params) => {
201
- const { plugin, cfg, entry } = params;
202
- const notes = [];
203
- const snapshot = entry.snapshot;
204
- if (snapshot.enabled === false) notes.push("disabled");
205
- if (snapshot.dmPolicy) notes.push(`dm:${snapshot.dmPolicy}`);
206
- if (snapshot.tokenSource && snapshot.tokenSource !== "none") notes.push(`token:${snapshot.tokenSource}`);
207
- if (snapshot.botTokenSource && snapshot.botTokenSource !== "none") notes.push(`bot:${snapshot.botTokenSource}`);
208
- if (snapshot.appTokenSource && snapshot.appTokenSource !== "none") notes.push(`app:${snapshot.appTokenSource}`);
209
- if (snapshot.baseUrl) notes.push(snapshot.baseUrl);
210
- if (snapshot.port != null) notes.push(`port:${snapshot.port}`);
211
- if (snapshot.cliPath) notes.push(`cli:${snapshot.cliPath}`);
212
- if (snapshot.dbPath) notes.push(`db:${snapshot.dbPath}`);
213
- const allowFrom = plugin.config.resolveAllowFrom?.({
214
- cfg,
215
- accountId: snapshot.accountId
216
- }) ?? snapshot.allowFrom;
217
- if (allowFrom?.length) {
218
- const formatted = formatChannelAllowFrom({
219
- plugin,
220
- cfg,
221
- accountId: snapshot.accountId,
222
- allowFrom
223
- }).slice(0, 3);
224
- if (formatted.length > 0) notes.push(`allow:${formatted.join(",")}`);
225
- }
226
- return notes;
227
- };
228
- function resolveLinkFields(summary) {
229
- const rec = asRecord(summary);
230
- const linked = typeof rec.linked === "boolean" ? rec.linked : null;
231
- const authAgeMs = typeof rec.authAgeMs === "number" ? rec.authAgeMs : null;
232
- const self = asRecord(rec.self);
233
- return {
234
- linked,
235
- authAgeMs,
236
- selfE164: typeof self.e164 === "string" && self.e164.trim() ? self.e164.trim() : null
237
- };
238
- }
239
- function collectMissingPaths(accounts) {
240
- const missing = [];
241
- for (const entry of accounts) {
242
- const accountRec = asRecord(entry.account);
243
- const snapshotRec = asRecord(entry.snapshot);
244
- for (const key of [
245
- "tokenFile",
246
- "botTokenFile",
247
- "appTokenFile",
248
- "cliPath",
249
- "dbPath",
250
- "authDir"
251
- ]) {
252
- const raw = accountRec[key] ?? snapshotRec[key];
253
- if (existsSyncMaybe(raw) === false) missing.push(String(raw));
254
- }
255
- }
256
- return missing;
257
- }
258
- function summarizeTokenConfig(params) {
259
- const enabled = params.accounts.filter((a) => a.enabled);
260
- if (enabled.length === 0) return {
261
- state: null,
262
- detail: null
263
- };
264
- const accountRecs = enabled.map((a) => asRecord(a.account));
265
- const hasBotTokenField = accountRecs.some((r) => "botToken" in r);
266
- const hasAppTokenField = accountRecs.some((r) => "appToken" in r);
267
- const hasTokenField = accountRecs.some((r) => "token" in r);
268
- if (!hasBotTokenField && !hasAppTokenField && !hasTokenField) return {
269
- state: null,
270
- detail: null
271
- };
272
- if (hasBotTokenField && hasAppTokenField) {
273
- const ready = enabled.filter((a) => {
274
- const rec = asRecord(a.account);
275
- const bot = typeof rec.botToken === "string" ? rec.botToken.trim() : "";
276
- const app = typeof rec.appToken === "string" ? rec.appToken.trim() : "";
277
- return Boolean(bot) && Boolean(app);
278
- });
279
- const partial = enabled.filter((a) => {
280
- const rec = asRecord(a.account);
281
- const bot = typeof rec.botToken === "string" ? rec.botToken.trim() : "";
282
- const app = typeof rec.appToken === "string" ? rec.appToken.trim() : "";
283
- const hasBot = Boolean(bot);
284
- const hasApp = Boolean(app);
285
- return hasBot && !hasApp || !hasBot && hasApp;
286
- });
287
- if (partial.length > 0) return {
288
- state: "warn",
289
- detail: `partial tokens (need bot+app) · accounts ${partial.length}`
290
- };
291
- if (ready.length === 0) return {
292
- state: "setup",
293
- detail: "no tokens (need bot+app)"
294
- };
295
- const botSources = summarizeSources(ready.map((a) => a.snapshot.botTokenSource ?? "none"));
296
- const appSources = summarizeSources(ready.map((a) => a.snapshot.appTokenSource ?? "none"));
297
- const sample = ready[0]?.account ? asRecord(ready[0].account) : {};
298
- const botToken = typeof sample.botToken === "string" ? sample.botToken : "";
299
- const appToken = typeof sample.appToken === "string" ? sample.appToken : "";
300
- const botHint = botToken.trim() ? formatTokenHint(botToken, { showSecrets: params.showSecrets }) : "";
301
- const appHint = appToken.trim() ? formatTokenHint(appToken, { showSecrets: params.showSecrets }) : "";
302
- const hint = botHint || appHint ? ` (bot ${botHint || "?"}, app ${appHint || "?"})` : "";
303
- return {
304
- state: "ok",
305
- detail: `tokens ok (bot ${botSources.label}, app ${appSources.label})${hint} · accounts ${ready.length}/${enabled.length || 1}`
306
- };
307
- }
308
- if (hasBotTokenField) {
309
- const ready = enabled.filter((a) => {
310
- const rec = asRecord(a.account);
311
- const bot = typeof rec.botToken === "string" ? rec.botToken.trim() : "";
312
- return Boolean(bot);
313
- });
314
- if (ready.length === 0) return {
315
- state: "setup",
316
- detail: "no bot token"
317
- };
318
- const sample = ready[0]?.account ? asRecord(ready[0].account) : {};
319
- const botToken = typeof sample.botToken === "string" ? sample.botToken : "";
320
- const botHint = botToken.trim() ? formatTokenHint(botToken, { showSecrets: params.showSecrets }) : "";
321
- return {
322
- state: "ok",
323
- detail: `bot token config${botHint ? ` (${botHint})` : ""} · accounts ${ready.length}/${enabled.length || 1}`
324
- };
325
- }
326
- const ready = enabled.filter((a) => {
327
- const rec = asRecord(a.account);
328
- return typeof rec.token === "string" ? Boolean(rec.token.trim()) : false;
329
- });
330
- if (ready.length === 0) return {
331
- state: "setup",
332
- detail: "no token"
333
- };
334
- const sources = summarizeSources(ready.map((a) => a.snapshot.tokenSource));
335
- const sample = ready[0]?.account ? asRecord(ready[0].account) : {};
336
- const token = typeof sample.token === "string" ? sample.token : "";
337
- const hint = token.trim() ? ` (${formatTokenHint(token, { showSecrets: params.showSecrets })})` : "";
338
- return {
339
- state: "ok",
340
- detail: `token ${sources.label}${hint} · accounts ${ready.length}/${enabled.length || 1}`
341
- };
342
- }
343
- async function buildChannelsTable(cfg, opts) {
344
- const showSecrets = opts?.showSecrets === true;
345
- const rows = [];
346
- const details = [];
347
- for (const plugin of listChannelPlugins()) {
348
- const accountIds = plugin.config.listAccountIds(cfg);
349
- const defaultAccountId = resolveChannelDefaultAccountId({
350
- plugin,
351
- cfg,
352
- accountIds
353
- });
354
- const resolvedAccountIds = accountIds.length > 0 ? accountIds : [defaultAccountId];
355
- const accounts = [];
356
- for (const accountId of resolvedAccountIds) {
357
- const account = plugin.config.resolveAccount(cfg, accountId);
358
- const enabled = resolveAccountEnabled(plugin, account, cfg);
359
- const configured = await resolveAccountConfigured(plugin, account, cfg);
360
- const snapshot = buildChannelAccountSnapshot({
361
- plugin,
362
- cfg,
363
- accountId,
364
- account,
365
- enabled,
366
- configured
367
- });
368
- accounts.push({
369
- accountId,
370
- account,
371
- enabled,
372
- configured,
373
- snapshot
374
- });
375
- }
376
- const anyEnabled = accounts.some((a) => a.enabled);
377
- const enabledAccounts = accounts.filter((a) => a.enabled);
378
- const configuredAccounts = enabledAccounts.filter((a) => a.configured);
379
- const defaultEntry = accounts.find((a) => a.accountId === defaultAccountId) ?? accounts[0];
380
- const link = resolveLinkFields(plugin.status?.buildChannelSummary ? await plugin.status.buildChannelSummary({
381
- account: defaultEntry?.account ?? {},
382
- cfg,
383
- defaultAccountId,
384
- snapshot: defaultEntry?.snapshot ?? { accountId: defaultAccountId }
385
- }) : void 0);
386
- const missingPaths = collectMissingPaths(enabledAccounts);
387
- const tokenSummary = summarizeTokenConfig({
388
- plugin,
389
- cfg,
390
- accounts,
391
- showSecrets
392
- });
393
- const issues = plugin.status?.collectStatusIssues ? plugin.status.collectStatusIssues(accounts.map((a) => a.snapshot)) : [];
394
- const label = plugin.meta.label ?? plugin.id;
395
- const state = (() => {
396
- if (!anyEnabled) return "off";
397
- if (missingPaths.length > 0) return "warn";
398
- if (issues.length > 0) return "warn";
399
- if (link.linked === false) return "setup";
400
- if (tokenSummary.state) return tokenSummary.state;
401
- if (link.linked === true) return "ok";
402
- if (configuredAccounts.length > 0) return "ok";
403
- return "setup";
404
- })();
405
- const detail = (() => {
406
- if (!anyEnabled) {
407
- if (!defaultEntry) return "disabled";
408
- return plugin.config.disabledReason?.(defaultEntry.account, cfg) ?? "disabled";
409
- }
410
- if (missingPaths.length > 0) return `missing file (${missingPaths[0]})`;
411
- if (issues.length > 0) return issues[0]?.message ?? "misconfigured";
412
- if (link.linked !== null) {
413
- const base = link.linked ? "linked" : "not linked";
414
- const extra = [];
415
- if (link.linked && link.selfE164) extra.push(link.selfE164);
416
- if (link.linked && link.authAgeMs != null && link.authAgeMs >= 0) extra.push(`auth ${formatTimeAgo(link.authAgeMs)}`);
417
- if (accounts.length > 1 || plugin.meta.forceAccountBinding) extra.push(`accounts ${accounts.length || 1}`);
418
- return extra.length > 0 ? `${base} · ${extra.join(" · ")}` : base;
419
- }
420
- if (tokenSummary.detail) return tokenSummary.detail;
421
- if (configuredAccounts.length > 0) {
422
- const head = "configured";
423
- if (accounts.length <= 1 && !plugin.meta.forceAccountBinding) return head;
424
- return `${head} · accounts ${configuredAccounts.length}/${enabledAccounts.length || 1}`;
425
- }
426
- return (defaultEntry && plugin.config.unconfiguredReason ? plugin.config.unconfiguredReason(defaultEntry.account, cfg) : null) ?? "not configured";
427
- })();
428
- rows.push({
429
- id: plugin.id,
430
- label,
431
- enabled: anyEnabled,
432
- state,
433
- detail
434
- });
435
- if (configuredAccounts.length > 0) details.push({
436
- title: `${label} accounts`,
437
- columns: [
438
- "Account",
439
- "Status",
440
- "Notes"
441
- ],
442
- rows: configuredAccounts.map((entry) => {
443
- const notes = buildAccountNotes({
444
- plugin,
445
- cfg,
446
- entry
447
- });
448
- return {
449
- Account: formatAccountLabel({
450
- accountId: entry.accountId,
451
- name: entry.snapshot.name
452
- }),
453
- Status: entry.enabled ? "OK" : "WARN",
454
- Notes: notes.join(" · ")
455
- };
456
- })
457
- });
458
- }
459
- return {
460
- rows,
461
- details
462
- };
463
- }
464
-
465
- //#endregion
466
- //#region src/commands/status-all/gateway.ts
467
- async function readFileTailLines(filePath, maxLines) {
468
- const raw = await fsp.readFile(filePath, "utf8").catch(() => "");
469
- if (!raw.trim()) return [];
470
- const lines = raw.replace(/\r/g, "").split("\n");
471
- return lines.slice(Math.max(0, lines.length - maxLines)).map((line) => line.trimEnd()).filter((line) => line.trim().length > 0);
472
- }
473
- function countMatches(haystack, needle) {
474
- if (!haystack || !needle) return 0;
475
- return haystack.split(needle).length - 1;
476
- }
477
- function shorten(message, maxLen) {
478
- const cleaned = message.replace(/\s+/g, " ").trim();
479
- if (cleaned.length <= maxLen) return cleaned;
480
- return `${cleaned.slice(0, Math.max(0, maxLen - 1))}…`;
481
- }
482
- function normalizeGwsLine(line) {
483
- return line.replace(/\s+runId=[^\s]+/g, "").replace(/\s+conn=[^\s]+/g, "").replace(/\s+id=[^\s]+/g, "").replace(/\s+error=Error:.*$/g, "").trim();
484
- }
485
- function consumeJsonBlock(lines, startIndex) {
486
- const startLine = lines[startIndex] ?? "";
487
- const braceAt = startLine.indexOf("{");
488
- if (braceAt < 0) return null;
489
- const parts = [startLine.slice(braceAt)];
490
- let depth = countMatches(parts[0] ?? "", "{") - countMatches(parts[0] ?? "", "}");
491
- let i = startIndex;
492
- while (depth > 0 && i + 1 < lines.length) {
493
- i += 1;
494
- const next = lines[i] ?? "";
495
- parts.push(next);
496
- depth += countMatches(next, "{") - countMatches(next, "}");
497
- }
498
- return {
499
- json: parts.join("\n"),
500
- endIndex: i
501
- };
502
- }
503
- function summarizeLogTail(rawLines, opts) {
504
- const maxLines = Math.max(6, opts?.maxLines ?? 26);
505
- const out = [];
506
- const groups = /* @__PURE__ */ new Map();
507
- const addGroup = (key, base) => {
508
- const existing = groups.get(key);
509
- if (existing) {
510
- existing.count += 1;
511
- return;
512
- }
513
- groups.set(key, {
514
- count: 1,
515
- index: out.length,
516
- base
517
- });
518
- out.push(base);
519
- };
520
- const addLine = (line) => {
521
- const trimmed = line.trimEnd();
522
- if (!trimmed) return;
523
- out.push(trimmed);
524
- };
525
- const lines = rawLines.map((line) => line.trimEnd()).filter(Boolean);
526
- for (let i = 0; i < lines.length; i += 1) {
527
- const line = lines[i] ?? "";
528
- const trimmedStart = line.trimStart();
529
- if ((trimmedStart.startsWith("\"") || trimmedStart === "}" || trimmedStart === "{" || trimmedStart.startsWith("}") || trimmedStart.startsWith("{")) && !trimmedStart.startsWith("[") && !trimmedStart.startsWith("#")) continue;
530
- const tokenRefresh = line.match(/^\[([^\]]+)\]\s+Token refresh failed:\s*(\d+)\s*(\{)?\s*$/);
531
- if (tokenRefresh) {
532
- const tag = tokenRefresh[1] ?? "unknown";
533
- const status = tokenRefresh[2] ?? "unknown";
534
- const block = consumeJsonBlock(lines, i);
535
- if (block) {
536
- i = block.endIndex;
537
- const parsed = (() => {
538
- try {
539
- return JSON.parse(block.json);
540
- } catch {
541
- return null;
542
- }
543
- })();
544
- const code = parsed?.error?.code?.trim() || null;
545
- const msg = parsed?.error?.message?.trim() || null;
546
- const msgShort = msg ? msg.toLowerCase().includes("signing in again") ? "re-auth required" : shorten(msg, 52) : null;
547
- const base = `[${tag}] token refresh ${status}${code ? ` ${code}` : ""}${msgShort ? ` · ${msgShort}` : ""}`;
548
- addGroup(`token:${tag}:${status}:${code ?? ""}:${msgShort ?? ""}`, base);
549
- continue;
550
- }
551
- }
552
- const embedded = line.match(/^Embedded agent failed before reply:\s+OAuth token refresh failed for ([^:]+):/);
553
- if (embedded) {
554
- const provider = embedded[1]?.trim() || "unknown";
555
- addGroup(`embedded:${provider}`, `Embedded agent: OAuth token refresh failed (${provider})`);
556
- continue;
557
- }
558
- if (line.startsWith("[gws]") && line.includes("errorCode=UNAVAILABLE") && line.includes("OAuth token refresh failed")) {
559
- const normalized = normalizeGwsLine(line);
560
- addGroup(`gws:${normalized}`, normalized);
561
- continue;
562
- }
563
- addLine(line);
564
- }
565
- for (const g of groups.values()) {
566
- if (g.count <= 1) continue;
567
- out[g.index] = `${g.base} ×${g.count}`;
568
- }
569
- const deduped = [];
570
- for (const line of out) {
571
- if (deduped[deduped.length - 1] === line) continue;
572
- deduped.push(line);
573
- }
574
- if (deduped.length <= maxLines) return deduped;
575
- const head = Math.min(6, Math.floor(maxLines / 3));
576
- const tail = Math.max(1, maxLines - head - 1);
577
- return [
578
- ...deduped.slice(0, head),
579
- `… ${deduped.length - head - tail} lines omitted …`,
580
- ...deduped.slice(-tail)
581
- ];
582
- }
583
-
584
- //#endregion
585
- //#region src/commands/status-all/diagnosis.ts
586
- async function appendStatusAllDiagnosis(params) {
587
- const { lines, muted, ok, warn, fail } = params;
588
- const emitCheck = (label, status) => {
589
- const icon = status === "ok" ? ok("✓") : status === "warn" ? warn("!") : fail("✗");
590
- const colored = status === "ok" ? ok(label) : status === "warn" ? warn(label) : fail(label);
591
- lines.push(`${icon} ${colored}`);
592
- };
593
- lines.push("");
594
- lines.push(muted("Gateway connection details:"));
595
- for (const line of redactSecrets(params.connectionDetailsForReport).split("\n").map((l) => l.trimEnd())) lines.push(` ${muted(line)}`);
596
- lines.push("");
597
- if (params.snap) {
598
- const status = !params.snap.exists ? "fail" : params.snap.valid ? "ok" : "warn";
599
- emitCheck(`Config: ${params.snap.path ?? "(unknown)"}`, status);
600
- const issues = [...params.snap.legacyIssues ?? [], ...params.snap.issues ?? []];
601
- const uniqueIssues = issues.filter((issue, index) => issues.findIndex((x) => x.path === issue.path && x.message === issue.message) === index);
602
- for (const issue of uniqueIssues.slice(0, 12)) lines.push(` - ${issue.path}: ${issue.message}`);
603
- if (uniqueIssues.length > 12) lines.push(` ${muted(`… +${uniqueIssues.length - 12} more`)}`);
604
- } else emitCheck("Config: read failed", "warn");
605
- if (params.remoteUrlMissing) {
606
- lines.push("");
607
- emitCheck("Gateway remote mode misconfigured (gateway.remote.url missing)", "warn");
608
- lines.push(` ${muted("Fix: set gateway.remote.url, or set gateway.mode=local.")}`);
609
- }
610
- if (params.sentinel?.payload) {
611
- emitCheck("Restart sentinel present", "warn");
612
- lines.push(` ${muted(`${summarizeRestartSentinel(params.sentinel.payload)} · ${formatTimeAgo(Date.now() - params.sentinel.payload.ts)}`)}`);
613
- } else emitCheck("Restart sentinel: none", "ok");
614
- const lastErrClean = params.lastErr?.trim() ?? "";
615
- const isTrivialLastErr = lastErrClean.length < 8 || lastErrClean === "}" || lastErrClean === "{";
616
- if (lastErrClean && !isTrivialLastErr) {
617
- lines.push("");
618
- lines.push(muted("Gateway last log line:"));
619
- lines.push(` ${muted(redactSecrets(lastErrClean))}`);
620
- }
621
- if (params.portUsage) {
622
- const portOk = params.portUsage.listeners.length === 0;
623
- emitCheck(`Port ${params.port}`, portOk ? "ok" : "warn");
624
- if (!portOk) for (const line of formatPortDiagnostics(params.portUsage)) lines.push(` ${muted(line)}`);
625
- }
626
- {
627
- const backend = params.tailscale.backendState ?? "unknown";
628
- const okBackend = backend === "Running";
629
- const hasDns = Boolean(params.tailscale.dnsName);
630
- emitCheck(params.tailscaleMode === "off" ? `Tailscale: off · ${backend}${params.tailscale.dnsName ? ` · ${params.tailscale.dnsName}` : ""}` : `Tailscale: ${params.tailscaleMode} · ${backend}${params.tailscale.dnsName ? ` · ${params.tailscale.dnsName}` : ""}`, okBackend && (params.tailscaleMode === "off" || hasDns) ? "ok" : "warn");
631
- if (params.tailscale.error) lines.push(` ${muted(`error: ${params.tailscale.error}`)}`);
632
- if (params.tailscale.ips.length > 0) lines.push(` ${muted(`ips: ${params.tailscale.ips.slice(0, 3).join(", ")}${params.tailscale.ips.length > 3 ? "…" : ""}`)}`);
633
- if (params.tailscaleHttpsUrl) lines.push(` ${muted(`https: ${params.tailscaleHttpsUrl}`)}`);
634
- }
635
- if (params.skillStatus) {
636
- const eligible = params.skillStatus.skills.filter((s) => s.eligible).length;
637
- const missing = params.skillStatus.skills.filter((s) => s.eligible && Object.values(s.missing).some((arr) => arr.length)).length;
638
- emitCheck(`Skills: ${eligible} eligible · ${missing} missing · ${params.skillStatus.workspaceDir}`, missing === 0 ? "ok" : "warn");
639
- }
640
- params.progress.setLabel("Reading logs…");
641
- const logPaths = (() => {
642
- try {
643
- return resolveGatewayLogPaths(process.env);
644
- } catch {
645
- return null;
646
- }
647
- })();
648
- if (logPaths) {
649
- params.progress.setLabel("Reading logs…");
650
- const [stderrTail, stdoutTail] = await Promise.all([readFileTailLines(logPaths.stderrPath, 40).catch(() => []), readFileTailLines(logPaths.stdoutPath, 40).catch(() => [])]);
651
- if (stderrTail.length > 0 || stdoutTail.length > 0) {
652
- lines.push("");
653
- lines.push(muted(`Gateway logs (tail, summarized): ${logPaths.logDir}`));
654
- lines.push(` ${muted(`# stderr: ${logPaths.stderrPath}`)}`);
655
- for (const line of summarizeLogTail(stderrTail, { maxLines: 22 }).map(redactSecrets)) lines.push(` ${muted(line)}`);
656
- lines.push(` ${muted(`# stdout: ${logPaths.stdoutPath}`)}`);
657
- for (const line of summarizeLogTail(stdoutTail, { maxLines: 22 }).map(redactSecrets)) lines.push(` ${muted(line)}`);
658
- }
659
- }
660
- params.progress.tick();
661
- if (params.channelsStatus) {
662
- emitCheck(`Channel issues (${params.channelIssues.length || "none"})`, params.channelIssues.length === 0 ? "ok" : "warn");
663
- for (const issue of params.channelIssues.slice(0, 12)) {
664
- const fixText = issue.fix ? ` · fix: ${issue.fix}` : "";
665
- lines.push(` - ${issue.channel}[${issue.accountId}] ${issue.kind}: ${issue.message}${fixText}`);
666
- }
667
- if (params.channelIssues.length > 12) lines.push(` ${muted(`… +${params.channelIssues.length - 12} more`)}`);
668
- } else emitCheck(`Channel issues skipped (gateway ${params.gatewayReachable ? "query failed" : "unreachable"})`, "warn");
669
- const healthErr = (() => {
670
- if (!params.health || typeof params.health !== "object") return "";
671
- const record = params.health;
672
- if (!("error" in record)) return "";
673
- const value = record.error;
674
- if (!value) return "";
675
- if (typeof value === "string") return value;
676
- try {
677
- return JSON.stringify(value, null, 2);
678
- } catch {
679
- return "[unserializable error]";
680
- }
681
- })();
682
- if (healthErr) {
683
- lines.push("");
684
- lines.push(muted("Gateway health:"));
685
- lines.push(` ${muted(redactSecrets(healthErr))}`);
686
- }
687
- lines.push("");
688
- lines.push(muted("Pasteable debug report. Auth tokens redacted."));
689
- lines.push("Troubleshooting: https://docs.remoteclaw.org/troubleshooting");
690
- lines.push("");
691
- }
692
-
693
- //#endregion
694
- //#region src/commands/status-all/report-lines.ts
695
- async function buildStatusAllReportLines(params) {
696
- const rich = isRich();
697
- const heading = (text) => rich ? theme.heading(text) : text;
698
- const ok = (text) => rich ? theme.success(text) : text;
699
- const warn = (text) => rich ? theme.warn(text) : text;
700
- const fail = (text) => rich ? theme.error(text) : text;
701
- const muted = (text) => rich ? theme.muted(text) : text;
702
- const tableWidth = Math.max(60, (process.stdout.columns ?? 120) - 1);
703
- const overview = renderTable({
704
- width: tableWidth,
705
- columns: [{
706
- key: "Item",
707
- header: "Item",
708
- minWidth: 10
709
- }, {
710
- key: "Value",
711
- header: "Value",
712
- flex: true,
713
- minWidth: 24
714
- }],
715
- rows: params.overviewRows
716
- });
717
- const channelRows = params.channels.rows.map((row) => ({
718
- channelId: row.id,
719
- Channel: row.label,
720
- Enabled: row.enabled ? ok("ON") : muted("OFF"),
721
- State: row.state === "ok" ? ok("OK") : row.state === "warn" ? warn("WARN") : row.state === "off" ? muted("OFF") : theme.accentDim("SETUP"),
722
- Detail: row.detail
723
- }));
724
- const channelIssuesByChannel = (() => {
725
- const map = /* @__PURE__ */ new Map();
726
- for (const issue of params.channelIssues) {
727
- const key = issue.channel;
728
- const list = map.get(key);
729
- if (list) list.push(issue);
730
- else map.set(key, [issue]);
731
- }
732
- return map;
733
- })();
734
- const channelsTable = renderTable({
735
- width: tableWidth,
736
- columns: [
737
- {
738
- key: "Channel",
739
- header: "Channel",
740
- minWidth: 10
741
- },
742
- {
743
- key: "Enabled",
744
- header: "Enabled",
745
- minWidth: 7
746
- },
747
- {
748
- key: "State",
749
- header: "State",
750
- minWidth: 8
751
- },
752
- {
753
- key: "Detail",
754
- header: "Detail",
755
- flex: true,
756
- minWidth: 28
757
- }
758
- ],
759
- rows: channelRows.map((row) => {
760
- const issues = channelIssuesByChannel.get(row.channelId) ?? [];
761
- if (issues.length === 0) return row;
762
- const issue = issues[0];
763
- const suffix = ` · ${warn(`gateway: ${String(issue.message).slice(0, 90)}`)}`;
764
- return {
765
- ...row,
766
- State: warn("WARN"),
767
- Detail: `${row.Detail}${suffix}`
768
- };
769
- })
770
- });
771
- const agentsTable = renderTable({
772
- width: tableWidth,
773
- columns: [
774
- {
775
- key: "Agent",
776
- header: "Agent",
777
- minWidth: 12
778
- },
779
- {
780
- key: "BootstrapFile",
781
- header: "Bootstrap file",
782
- minWidth: 14
783
- },
784
- {
785
- key: "Sessions",
786
- header: "Sessions",
787
- align: "right",
788
- minWidth: 8
789
- },
790
- {
791
- key: "Active",
792
- header: "Active",
793
- minWidth: 10
794
- },
795
- {
796
- key: "Store",
797
- header: "Store",
798
- flex: true,
799
- minWidth: 34
800
- }
801
- ],
802
- rows: params.agentStatus.agents.map((a) => ({
803
- Agent: a.name?.trim() ? `${a.id} (${a.name.trim()})` : a.id,
804
- BootstrapFile: a.bootstrapPending === true ? warn("PRESENT") : a.bootstrapPending === false ? ok("ABSENT") : "unknown",
805
- Sessions: String(a.sessionsCount),
806
- Active: a.lastActiveAgeMs != null ? formatTimeAgo(a.lastActiveAgeMs) : "unknown",
807
- Store: a.sessionsPath
808
- }))
809
- });
810
- const lines = [];
811
- lines.push(heading("RemoteClaw status --all"));
812
- lines.push("");
813
- lines.push(heading("Overview"));
814
- lines.push(overview.trimEnd());
815
- lines.push("");
816
- lines.push(heading("Channels"));
817
- lines.push(channelsTable.trimEnd());
818
- for (const detail of params.channels.details) {
819
- lines.push("");
820
- lines.push(heading(detail.title));
821
- lines.push(renderTable({
822
- width: tableWidth,
823
- columns: detail.columns.map((c) => ({
824
- key: c,
825
- header: c,
826
- flex: c === "Notes",
827
- minWidth: c === "Notes" ? 28 : 10
828
- })),
829
- rows: detail.rows.map((r) => ({
830
- ...r,
831
- ...r.Status === "OK" ? { Status: ok("OK") } : r.Status === "WARN" ? { Status: warn("WARN") } : {}
832
- }))
833
- }).trimEnd());
834
- }
835
- lines.push("");
836
- lines.push(heading("Agents"));
837
- lines.push(agentsTable.trimEnd());
838
- lines.push("");
839
- lines.push(heading("Diagnosis (read-only)"));
840
- await appendStatusAllDiagnosis({
841
- lines,
842
- progress: params.progress,
843
- muted,
844
- ok,
845
- warn,
846
- fail,
847
- connectionDetailsForReport: params.connectionDetailsForReport,
848
- ...params.diagnosis
849
- });
850
- return lines;
851
- }
852
-
853
- //#endregion
854
- //#region src/commands/status-all.ts
855
- async function statusAllCommand(runtime, opts) {
856
- await withProgress({
857
- label: "Scanning status --all…",
858
- total: 11
859
- }, async (progress) => {
860
- progress.setLabel("Loading config…");
861
- const cfg = loadConfig();
862
- const osSummary = resolveOsSummary();
863
- const snap = await readConfigFileSnapshot().catch(() => null);
864
- progress.tick();
865
- progress.setLabel("Checking Tailscale…");
866
- const tailscaleMode = cfg.gateway?.tailscale?.mode ?? "off";
867
- const tailscale = await (async () => {
868
- try {
869
- const parsed = await readTailscaleStatusJson(runExec, { timeoutMs: 1200 });
870
- const backendState = typeof parsed.BackendState === "string" ? parsed.BackendState : null;
871
- const self = typeof parsed.Self === "object" && parsed.Self !== null ? parsed.Self : null;
872
- const dnsNameRaw = self && typeof self.DNSName === "string" ? self.DNSName : null;
873
- return {
874
- ok: true,
875
- backendState,
876
- dnsName: dnsNameRaw ? dnsNameRaw.replace(/\.$/, "") : null,
877
- ips: self && Array.isArray(self.TailscaleIPs) ? self.TailscaleIPs.filter((v) => typeof v === "string" && v.trim().length > 0).map((v) => v.trim()) : [],
878
- error: null
879
- };
880
- } catch (err) {
881
- return {
882
- ok: false,
883
- backendState: null,
884
- dnsName: null,
885
- ips: [],
886
- error: String(err)
887
- };
888
- }
889
- })();
890
- const tailscaleHttpsUrl = tailscaleMode !== "off" && tailscale.dnsName ? `https://${tailscale.dnsName}${normalizeControlUiBasePath(cfg.gateway?.controlUi?.basePath)}` : null;
891
- progress.tick();
892
- progress.setLabel("Checking for updates…");
893
- const update = await checkUpdateStatus({
894
- root: await resolveRemoteClawPackageRoot({
895
- moduleUrl: import.meta.url,
896
- argv1: process.argv[1],
897
- cwd: process.cwd()
898
- }),
899
- timeoutMs: 6500,
900
- fetchGit: false,
901
- includeRegistry: true
902
- });
903
- const channelLabel = resolveUpdateChannelDisplay({ configChannel: normalizeUpdateChannel(cfg.update?.channel) }).label;
904
- progress.tick();
905
- progress.setLabel("Probing gateway…");
906
- const connection = buildGatewayConnectionDetails({ config: cfg });
907
- const isRemoteMode = cfg.gateway?.mode === "remote";
908
- const remoteUrlRaw = typeof cfg.gateway?.remote?.url === "string" ? cfg.gateway.remote.url.trim() : "";
909
- const remoteUrlMissing = isRemoteMode && !remoteUrlRaw;
910
- const gatewayMode = isRemoteMode ? "remote" : "local";
911
- const localFallbackAuth = resolveGatewayProbeAuth$1({
912
- cfg,
913
- mode: "local"
914
- });
915
- const remoteAuth = resolveGatewayProbeAuth$1({
916
- cfg,
917
- mode: "remote"
918
- });
919
- const probeAuth = isRemoteMode && !remoteUrlMissing ? remoteAuth : localFallbackAuth;
920
- const gatewayProbe = await probeGateway({
921
- url: connection.url,
922
- auth: probeAuth,
923
- timeoutMs: Math.min(5e3, opts?.timeoutMs ?? 1e4)
924
- }).catch(() => null);
925
- const gatewayReachable = gatewayProbe?.ok === true;
926
- const gatewaySelf = pickGatewaySelfPresence(gatewayProbe?.presence ?? null);
927
- progress.tick();
928
- progress.setLabel("Checking services…");
929
- const readServiceSummary = async (service) => {
930
- try {
931
- const [loaded, runtimeInfo, command] = await Promise.all([
932
- service.isLoaded({ env: process.env }).catch(() => false),
933
- service.readRuntime(process.env).catch(() => void 0),
934
- service.readCommand(process.env).catch(() => null)
935
- ]);
936
- const installed = command != null;
937
- return {
938
- label: service.label,
939
- installed,
940
- loaded,
941
- loadedText: loaded ? service.loadedText : service.notLoadedText,
942
- runtime: runtimeInfo
943
- };
944
- } catch {
945
- return null;
946
- }
947
- };
948
- const daemon = await readServiceSummary(resolveGatewayService());
949
- const nodeService = await readServiceSummary(resolveNodeService());
950
- progress.tick();
951
- progress.setLabel("Scanning agents…");
952
- const agentStatus = await getAgentLocalStatuses$1(cfg);
953
- progress.tick();
954
- progress.setLabel("Summarizing channels…");
955
- const channels = await buildChannelsTable(cfg, { showSecrets: false });
956
- progress.tick();
957
- const connectionDetailsForReport = (() => {
958
- if (!remoteUrlMissing) return connection.message;
959
- const bindMode = cfg.gateway?.bind ?? "loopback";
960
- return [
961
- "Gateway mode: remote",
962
- "Gateway target: (missing gateway.remote.url)",
963
- `Config: ${snap?.path?.trim() ? snap.path.trim() : "(unknown config path)"}`,
964
- `Bind: ${bindMode}`,
965
- `Local fallback (used for probes): ${connection.url}`,
966
- "Fix: set gateway.remote.url, or set gateway.mode=local."
967
- ].join("\n");
968
- })();
969
- const callOverrides = remoteUrlMissing ? {
970
- url: connection.url,
971
- token: localFallbackAuth.token,
972
- password: localFallbackAuth.password
973
- } : {};
974
- progress.setLabel("Querying gateway…");
975
- const health = gatewayReachable ? await callGateway({
976
- method: "health",
977
- timeoutMs: Math.min(8e3, opts?.timeoutMs ?? 1e4),
978
- ...callOverrides
979
- }).catch((err) => ({ error: String(err) })) : { error: gatewayProbe?.error ?? "gateway unreachable" };
980
- const channelsStatus = gatewayReachable ? await callGateway({
981
- method: "channels.status",
982
- params: {
983
- probe: false,
984
- timeoutMs: opts?.timeoutMs ?? 1e4
985
- },
986
- timeoutMs: Math.min(8e3, opts?.timeoutMs ?? 1e4),
987
- ...callOverrides
988
- }).catch(() => null) : null;
989
- const channelIssues = channelsStatus ? collectChannelStatusIssues(channelsStatus) : [];
990
- progress.tick();
991
- progress.setLabel("Checking local state…");
992
- const sentinel = await readRestartSentinel().catch(() => null);
993
- const lastErr = await readLastGatewayErrorLine(process.env).catch(() => null);
994
- const port = resolveGatewayPort(cfg);
995
- const portUsage = await inspectPortUsage(port).catch(() => null);
996
- progress.tick();
997
- const skillStatus = null;
998
- const dashboard = cfg.gateway?.controlUi?.enabled ?? true ? resolveControlUiLinks({
999
- port,
1000
- bind: cfg.gateway?.bind,
1001
- customBindHost: cfg.gateway?.customBindHost,
1002
- basePath: cfg.gateway?.controlUi?.basePath
1003
- }).httpUrl : null;
1004
- const updateLine = formatUpdateOneLiner(update).replace(/^Update:\s*/i, "");
1005
- const gatewayTarget = remoteUrlMissing ? `fallback ${connection.url}` : connection.url;
1006
- const gatewayStatus = gatewayReachable ? `reachable ${formatDurationPrecise(gatewayProbe?.connectLatencyMs ?? 0)}` : gatewayProbe?.error ? `unreachable (${gatewayProbe.error})` : "unreachable";
1007
- const gatewayAuth = gatewayReachable ? ` · auth ${formatGatewayAuthUsed(probeAuth)}` : "";
1008
- const gatewaySelfLine = gatewaySelf?.host || gatewaySelf?.ip || gatewaySelf?.version || gatewaySelf?.platform ? [
1009
- gatewaySelf.host ? gatewaySelf.host : null,
1010
- gatewaySelf.ip ? `(${gatewaySelf.ip})` : null,
1011
- gatewaySelf.version ? `app ${gatewaySelf.version}` : null,
1012
- gatewaySelf.platform ? gatewaySelf.platform : null
1013
- ].filter(Boolean).join(" ") : null;
1014
- const aliveThresholdMs = 10 * 6e4;
1015
- const aliveAgents = agentStatus.agents.filter((a) => a.lastActiveAgeMs != null && a.lastActiveAgeMs <= aliveThresholdMs).length;
1016
- const lines = await buildStatusAllReportLines({
1017
- progress,
1018
- overviewRows: [
1019
- {
1020
- Item: "Version",
1021
- Value: VERSION
1022
- },
1023
- {
1024
- Item: "OS",
1025
- Value: osSummary.label
1026
- },
1027
- {
1028
- Item: "Node",
1029
- Value: process.versions.node
1030
- },
1031
- {
1032
- Item: "Config",
1033
- Value: snap?.path?.trim() ? snap.path.trim() : "(unknown config path)"
1034
- },
1035
- dashboard ? {
1036
- Item: "Dashboard",
1037
- Value: dashboard
1038
- } : {
1039
- Item: "Dashboard",
1040
- Value: "disabled"
1041
- },
1042
- {
1043
- Item: "Tailscale",
1044
- Value: tailscaleMode === "off" ? `off${tailscale.backendState ? ` · ${tailscale.backendState}` : ""}${tailscale.dnsName ? ` · ${tailscale.dnsName}` : ""}` : tailscale.dnsName && tailscaleHttpsUrl ? `${tailscaleMode} · ${tailscale.backendState ?? "unknown"} · ${tailscale.dnsName} · ${tailscaleHttpsUrl}` : `${tailscaleMode} · ${tailscale.backendState ?? "unknown"} · magicdns unknown`
1045
- },
1046
- {
1047
- Item: "Channel",
1048
- Value: channelLabel
1049
- },
1050
- {
1051
- Item: "Update",
1052
- Value: updateLine
1053
- },
1054
- {
1055
- Item: "Gateway",
1056
- Value: `${gatewayMode}${remoteUrlMissing ? " (remote.url missing)" : ""} · ${gatewayTarget} (${connection.urlSource}) · ${gatewayStatus}${gatewayAuth}`
1057
- },
1058
- {
1059
- Item: "Security",
1060
- Value: `Run: ${formatCliCommand("remoteclaw security audit --deep")}`
1061
- },
1062
- gatewaySelfLine ? {
1063
- Item: "Gateway self",
1064
- Value: gatewaySelfLine
1065
- } : {
1066
- Item: "Gateway self",
1067
- Value: "unknown"
1068
- },
1069
- daemon ? {
1070
- Item: "Gateway service",
1071
- Value: !daemon.installed ? `${daemon.label} not installed` : `${daemon.label} ${daemon.installed ? "installed · " : ""}${daemon.loadedText}${daemon.runtime?.status ? ` · ${daemon.runtime.status}` : ""}${daemon.runtime?.pid ? ` (pid ${daemon.runtime.pid})` : ""}`
1072
- } : {
1073
- Item: "Gateway service",
1074
- Value: "unknown"
1075
- },
1076
- nodeService ? {
1077
- Item: "Node service",
1078
- Value: !nodeService.installed ? `${nodeService.label} not installed` : `${nodeService.label} ${nodeService.installed ? "installed · " : ""}${nodeService.loadedText}${nodeService.runtime?.status ? ` · ${nodeService.runtime.status}` : ""}${nodeService.runtime?.pid ? ` (pid ${nodeService.runtime.pid})` : ""}`
1079
- } : {
1080
- Item: "Node service",
1081
- Value: "unknown"
1082
- },
1083
- {
1084
- Item: "Agents",
1085
- Value: `${agentStatus.agents.length} total · ${agentStatus.bootstrapPendingCount} bootstrapping · ${aliveAgents} active · ${agentStatus.totalSessions} sessions`
1086
- }
1087
- ],
1088
- channels,
1089
- channelIssues: channelIssues.map((issue) => ({
1090
- channel: issue.channel,
1091
- message: issue.message
1092
- })),
1093
- agentStatus,
1094
- connectionDetailsForReport,
1095
- diagnosis: {
1096
- snap,
1097
- remoteUrlMissing,
1098
- sentinel,
1099
- lastErr,
1100
- port,
1101
- portUsage,
1102
- tailscaleMode,
1103
- tailscale,
1104
- tailscaleHttpsUrl,
1105
- skillStatus,
1106
- channelsStatus,
1107
- channelIssues,
1108
- gatewayReachable,
1109
- health
1110
- }
1111
- });
1112
- progress.setLabel("Rendering…");
1113
- runtime.log(lines.join("\n"));
1114
- progress.tick();
1115
- });
1116
- }
1117
-
1118
- //#endregion
1119
- //#region src/commands/status.format.ts
1120
- const formatKTokens = (value) => `${(value / 1e3).toFixed(value >= 1e4 ? 0 : 1)}k`;
1121
- const formatDuration = (ms) => {
1122
- if (ms == null || !Number.isFinite(ms)) return "unknown";
1123
- return formatDurationPrecise(ms, { decimals: 1 });
1124
- };
1125
- const formatTokensCompact = (sess) => {
1126
- const used = sess.totalTokens;
1127
- const ctx = sess.contextTokens;
1128
- const cacheRead = sess.cacheRead;
1129
- const cacheWrite = sess.cacheWrite;
1130
- let result = "";
1131
- if (used == null) result = ctx ? `unknown/${formatKTokens(ctx)} (?%)` : "unknown used";
1132
- else if (!ctx) result = `${formatKTokens(used)} used`;
1133
- else {
1134
- const pctLabel = sess.percentUsed != null ? `${sess.percentUsed}%` : "?%";
1135
- result = `${formatKTokens(used)}/${formatKTokens(ctx)} (${pctLabel})`;
1136
- }
1137
- if (typeof cacheRead === "number" && cacheRead > 0) {
1138
- const total = typeof used === "number" ? used : cacheRead + (typeof cacheWrite === "number" ? cacheWrite : 0);
1139
- const hitRate = Math.round(cacheRead / total * 100);
1140
- result += ` · 🗄️ ${hitRate}% cached`;
1141
- }
1142
- return result;
1143
- };
1144
- const formatDaemonRuntimeShort = (runtime) => {
1145
- if (!runtime) return null;
1146
- const details = [];
1147
- const detail = runtime.detail?.replace(/\s+/g, " ").trim() || "";
1148
- const noisyLaunchctlDetail = runtime.missingUnit === true && detail.toLowerCase().includes("could not find service");
1149
- if (detail && !noisyLaunchctlDetail) details.push(detail);
1150
- return formatRuntimeStatusWithDetails({
1151
- status: runtime.status,
1152
- pid: runtime.pid,
1153
- state: runtime.state,
1154
- details
1155
- });
1156
- };
1157
-
1158
- //#endregion
1159
- //#region src/commands/status.daemon.ts
1160
- async function buildDaemonStatusSummary(service, fallbackLabel) {
1161
- try {
1162
- const [loaded, runtime, command] = await Promise.all([
1163
- service.isLoaded({ env: process.env }).catch(() => false),
1164
- service.readRuntime(process.env).catch(() => void 0),
1165
- service.readCommand(process.env).catch(() => null)
1166
- ]);
1167
- const installed = command != null;
1168
- const loadedText = loaded ? service.loadedText : service.notLoadedText;
1169
- const runtimeShort = formatDaemonRuntimeShort(runtime);
1170
- return {
1171
- label: service.label,
1172
- installed,
1173
- loadedText,
1174
- runtimeShort
1175
- };
1176
- } catch {
1177
- return {
1178
- label: fallbackLabel,
1179
- installed: null,
1180
- loadedText: "unknown",
1181
- runtimeShort: null
1182
- };
1183
- }
1184
- }
1185
- async function getDaemonStatusSummary() {
1186
- return await buildDaemonStatusSummary(resolveGatewayService(), "Daemon");
1187
- }
1188
- async function getNodeDaemonStatusSummary() {
1189
- return await buildDaemonStatusSummary(resolveNodeService(), "Node");
1190
- }
1191
-
1192
- //#endregion
1193
- //#region src/commands/status.gateway-probe.ts
1194
- function resolveGatewayProbeAuth(cfg) {
1195
- return resolveGatewayProbeAuth$1({
1196
- cfg,
1197
- mode: cfg.gateway?.mode === "remote" ? "remote" : "local",
1198
- env: process.env
1199
- });
1200
- }
1201
-
1202
- //#endregion
1203
- //#region src/commands/status.agent-local.ts
1204
- async function fileExists(p) {
1205
- try {
1206
- await fsp.access(p);
1207
- return true;
1208
- } catch {
1209
- return false;
1210
- }
1211
- }
1212
- async function getAgentLocalStatuses() {
1213
- const cfg = loadConfig();
1214
- const agentList = listAgentsForGateway(cfg);
1215
- const now = Date.now();
1216
- const statuses = [];
1217
- for (const agent of agentList.agents) {
1218
- const agentId = agent.id;
1219
- const workspaceDir = (() => {
1220
- try {
1221
- return resolveAgentWorkspaceDir(cfg, agentId);
1222
- } catch {
1223
- return null;
1224
- }
1225
- })();
1226
- const bootstrapPath = workspaceDir != null ? path.join(workspaceDir, "BOOTSTRAP.md") : null;
1227
- const bootstrapPending = bootstrapPath != null ? await fileExists(bootstrapPath) : null;
1228
- const sessionsPath = resolveStorePath(cfg.session?.store, { agentId });
1229
- const store = (() => {
1230
- try {
1231
- return loadSessionStore(sessionsPath);
1232
- } catch {
1233
- return {};
1234
- }
1235
- })();
1236
- const sessions = Object.entries(store).filter(([key]) => key !== "global" && key !== "unknown").map(([, entry]) => entry);
1237
- const sessionsCount = sessions.length;
1238
- const lastUpdatedAt = sessions.reduce((max, e) => Math.max(max, e?.updatedAt ?? 0), 0);
1239
- const resolvedLastUpdatedAt = lastUpdatedAt > 0 ? lastUpdatedAt : null;
1240
- const lastActiveAgeMs = resolvedLastUpdatedAt ? now - resolvedLastUpdatedAt : null;
1241
- statuses.push({
1242
- id: agentId,
1243
- name: agent.name,
1244
- workspaceDir,
1245
- bootstrapPending,
1246
- sessionsPath,
1247
- sessionsCount,
1248
- lastUpdatedAt: resolvedLastUpdatedAt,
1249
- lastActiveAgeMs
1250
- });
1251
- }
1252
- const totalSessions = statuses.reduce((sum, s) => sum + s.sessionsCount, 0);
1253
- const bootstrapPendingCount = statuses.reduce((sum, s) => sum + (s.bootstrapPending ? 1 : 0), 0);
1254
- return {
1255
- defaultId: agentList.defaultId,
1256
- agents: statuses,
1257
- totalSessions,
1258
- bootstrapPendingCount
1259
- };
1260
- }
1261
-
1262
- //#endregion
1263
- //#region src/commands/status.link-channel.ts
1264
- async function resolveLinkChannelContext(cfg) {
1265
- for (const plugin of listChannelPlugins()) {
1266
- const { defaultAccountId, account, enabled, configured } = await resolveDefaultChannelAccountContext(plugin, cfg);
1267
- const snapshot = plugin.config.describeAccount ? plugin.config.describeAccount(account, cfg) : {
1268
- accountId: defaultAccountId,
1269
- enabled,
1270
- configured
1271
- };
1272
- const summaryRecord = plugin.status?.buildChannelSummary ? await plugin.status.buildChannelSummary({
1273
- account,
1274
- cfg,
1275
- defaultAccountId,
1276
- snapshot
1277
- }) : void 0;
1278
- const linked = summaryRecord && typeof summaryRecord.linked === "boolean" ? summaryRecord.linked : null;
1279
- if (linked === null) continue;
1280
- return {
1281
- linked,
1282
- authAgeMs: summaryRecord && typeof summaryRecord.authAgeMs === "number" ? summaryRecord.authAgeMs : null,
1283
- account,
1284
- accountId: defaultAccountId,
1285
- plugin
1286
- };
1287
- }
1288
- return null;
1289
- }
1290
-
1291
- //#endregion
1292
- //#region src/commands/status.summary.ts
1293
- const buildFlags = (entry) => {
1294
- if (!entry) return [];
1295
- const flags = [];
1296
- const verbose = entry?.verboseLevel;
1297
- if (typeof verbose === "string" && verbose.length > 0) flags.push(`verbose:${verbose}`);
1298
- const elevated = entry?.elevatedLevel;
1299
- if (typeof elevated === "string" && elevated.length > 0) flags.push(`elevated:${elevated}`);
1300
- if (entry?.systemSent) flags.push("system");
1301
- if (entry?.abortedLastRun) flags.push("aborted");
1302
- const sessionId = entry?.sessionId;
1303
- if (typeof sessionId === "string" && sessionId.length > 0) flags.push(`id:${sessionId}`);
1304
- return flags;
1305
- };
1306
- function redactSensitiveStatusSummary(summary) {
1307
- return {
1308
- ...summary,
1309
- sessions: {
1310
- ...summary.sessions,
1311
- paths: [],
1312
- defaults: {
1313
- model: null,
1314
- contextTokens: null
1315
- },
1316
- recent: [],
1317
- byAgent: summary.sessions.byAgent.map((entry) => ({
1318
- ...entry,
1319
- path: "[redacted]",
1320
- recent: []
1321
- }))
1322
- }
1323
- };
1324
- }
1325
- async function getStatusSummary(options = {}) {
1326
- const { includeSensitive = true } = options;
1327
- const cfg = loadConfig();
1328
- const linkContext = await resolveLinkChannelContext(cfg);
1329
- const agentList = listAgentsForGateway(cfg);
1330
- const heartbeatAgents = agentList.agents.map((agent) => {
1331
- const summary = resolveHeartbeatSummaryForAgent(cfg, agent.id);
1332
- return {
1333
- agentId: agent.id,
1334
- enabled: summary.enabled,
1335
- every: summary.every,
1336
- everyMs: summary.everyMs
1337
- };
1338
- });
1339
- const channelSummary = await buildChannelSummary(cfg, {
1340
- colorize: true,
1341
- includeAllowFrom: true
1342
- });
1343
- const queuedSystemEvents = peekSystemEvents(resolveMainSessionKey(cfg));
1344
- const configModel = "unknown";
1345
- const configContextTokens = cfg.agents?.defaults?.contextTokens ?? 2e5;
1346
- const now = Date.now();
1347
- const storeCache = /* @__PURE__ */ new Map();
1348
- const loadStore = (storePath) => {
1349
- const cached = storeCache.get(storePath);
1350
- if (cached) return cached;
1351
- const store = loadSessionStore(storePath);
1352
- storeCache.set(storePath, store);
1353
- return store;
1354
- };
1355
- const buildSessionRows = (store, opts = {}) => Object.entries(store).filter(([key]) => key !== "global" && key !== "unknown").map(([key, entry]) => {
1356
- const updatedAt = entry?.updatedAt ?? null;
1357
- const age = updatedAt ? now - updatedAt : null;
1358
- const model = resolveSessionModelRef(cfg, entry, opts.agentIdOverride).model ?? configModel ?? null;
1359
- const contextTokens = entry?.contextTokens ?? configContextTokens ?? null;
1360
- const total = resolveFreshSessionTotalTokens(entry);
1361
- const totalTokensFresh = typeof entry?.totalTokens === "number" ? entry?.totalTokensFresh !== false : false;
1362
- const remaining = contextTokens != null && total !== void 0 ? Math.max(0, contextTokens - total) : null;
1363
- const pct = contextTokens && contextTokens > 0 && total !== void 0 ? Math.min(999, Math.round(total / contextTokens * 100)) : null;
1364
- const parsedAgentId = parseAgentSessionKey(key)?.agentId;
1365
- return {
1366
- agentId: opts.agentIdOverride ?? parsedAgentId,
1367
- key,
1368
- kind: classifySessionKey(key, entry),
1369
- sessionId: entry?.sessionId,
1370
- updatedAt,
1371
- age,
1372
- verboseLevel: entry?.verboseLevel,
1373
- elevatedLevel: entry?.elevatedLevel,
1374
- systemSent: entry?.systemSent,
1375
- abortedLastRun: entry?.abortedLastRun,
1376
- inputTokens: entry?.inputTokens,
1377
- outputTokens: entry?.outputTokens,
1378
- cacheRead: entry?.cacheRead,
1379
- cacheWrite: entry?.cacheWrite,
1380
- totalTokens: total ?? null,
1381
- totalTokensFresh,
1382
- remainingTokens: remaining,
1383
- percentUsed: pct,
1384
- model,
1385
- contextTokens,
1386
- flags: buildFlags(entry)
1387
- };
1388
- }).sort((a, b) => (b.updatedAt ?? 0) - (a.updatedAt ?? 0));
1389
- const paths = /* @__PURE__ */ new Set();
1390
- const byAgent = agentList.agents.map((agent) => {
1391
- const storePath = resolveStorePath(cfg.session?.store, { agentId: agent.id });
1392
- paths.add(storePath);
1393
- const sessions = buildSessionRows(loadStore(storePath), { agentIdOverride: agent.id });
1394
- return {
1395
- agentId: agent.id,
1396
- path: storePath,
1397
- count: sessions.length,
1398
- recent: sessions.slice(0, 10)
1399
- };
1400
- });
1401
- const allSessions = Array.from(paths).flatMap((storePath) => buildSessionRows(loadStore(storePath))).toSorted((a, b) => (b.updatedAt ?? 0) - (a.updatedAt ?? 0));
1402
- const recent = allSessions.slice(0, 10);
1403
- const totalSessions = allSessions.length;
1404
- const summary = {
1405
- linkChannel: linkContext ? {
1406
- id: linkContext.plugin.id,
1407
- label: linkContext.plugin.meta.label ?? "Channel",
1408
- linked: linkContext.linked,
1409
- authAgeMs: linkContext.authAgeMs
1410
- } : void 0,
1411
- heartbeat: {
1412
- defaultAgentId: agentList.defaultId,
1413
- agents: heartbeatAgents
1414
- },
1415
- channelSummary,
1416
- queuedSystemEvents,
1417
- sessions: {
1418
- paths: Array.from(paths),
1419
- count: totalSessions,
1420
- defaults: {
1421
- model: configModel ?? null,
1422
- contextTokens: configContextTokens ?? null
1423
- },
1424
- recent,
1425
- byAgent
1426
- }
1427
- };
1428
- return includeSensitive ? summary : redactSensitiveStatusSummary(summary);
1429
- }
1430
-
1431
- //#endregion
1432
- //#region src/commands/status.scan.ts
1433
- async function scanStatus(opts, _runtime) {
1434
- return await withProgress({
1435
- label: "Scanning status…",
1436
- total: 10,
1437
- enabled: opts.json !== true
1438
- }, async (progress) => {
1439
- progress.setLabel("Loading config…");
1440
- const cfg = loadConfig();
1441
- const osSummary = resolveOsSummary();
1442
- progress.tick();
1443
- progress.setLabel("Checking Tailscale…");
1444
- const tailscaleMode = cfg.gateway?.tailscale?.mode ?? "off";
1445
- const tailscaleDns = tailscaleMode === "off" ? null : await getTailnetHostname((cmd, args) => runExec(cmd, args, {
1446
- timeoutMs: 1200,
1447
- maxBuffer: 2e5
1448
- })).catch(() => null);
1449
- const tailscaleHttpsUrl = tailscaleMode !== "off" && tailscaleDns ? `https://${tailscaleDns}${normalizeControlUiBasePath(cfg.gateway?.controlUi?.basePath)}` : null;
1450
- progress.tick();
1451
- progress.setLabel("Checking for updates…");
1452
- const update = await getUpdateCheckResult({
1453
- timeoutMs: opts.all ? 6500 : 2500,
1454
- fetchGit: true,
1455
- includeRegistry: true
1456
- });
1457
- progress.tick();
1458
- progress.setLabel("Resolving agents…");
1459
- const agentStatus = await getAgentLocalStatuses();
1460
- progress.tick();
1461
- progress.setLabel("Probing gateway…");
1462
- const gatewayConnection = buildGatewayConnectionDetails();
1463
- const isRemoteMode = cfg.gateway?.mode === "remote";
1464
- const remoteUrlRaw = typeof cfg.gateway?.remote?.url === "string" ? cfg.gateway.remote.url : "";
1465
- const remoteUrlMissing = isRemoteMode && !remoteUrlRaw.trim();
1466
- const gatewayMode = isRemoteMode ? "remote" : "local";
1467
- const gatewayProbe = remoteUrlMissing ? null : await probeGateway({
1468
- url: gatewayConnection.url,
1469
- auth: resolveGatewayProbeAuth(cfg),
1470
- timeoutMs: Math.min(opts.all ? 5e3 : 2500, opts.timeoutMs ?? 1e4)
1471
- }).catch(() => null);
1472
- const gatewayReachable = gatewayProbe?.ok === true;
1473
- const gatewaySelf = gatewayProbe?.presence ? pickGatewaySelfPresence(gatewayProbe.presence) : null;
1474
- progress.tick();
1475
- progress.setLabel("Querying channel status…");
1476
- const channelsStatus = gatewayReachable ? await callGateway({
1477
- method: "channels.status",
1478
- params: {
1479
- probe: false,
1480
- timeoutMs: Math.min(8e3, opts.timeoutMs ?? 1e4)
1481
- },
1482
- timeoutMs: Math.min(opts.all ? 5e3 : 2500, opts.timeoutMs ?? 1e4)
1483
- }).catch(() => null) : null;
1484
- const channelIssues = channelsStatus ? collectChannelStatusIssues(channelsStatus) : [];
1485
- progress.tick();
1486
- progress.setLabel("Summarizing channels…");
1487
- const channels = await buildChannelsTable(cfg, { showSecrets: process.env.REMOTECLAW_SHOW_SECRETS?.trim() !== "0" });
1488
- progress.tick();
1489
- progress.tick();
1490
- progress.setLabel("Reading sessions…");
1491
- const summary = await getStatusSummary();
1492
- progress.tick();
1493
- progress.setLabel("Rendering…");
1494
- progress.tick();
1495
- return {
1496
- cfg,
1497
- osSummary,
1498
- tailscaleMode,
1499
- tailscaleDns,
1500
- tailscaleHttpsUrl,
1501
- update,
1502
- gatewayConnection,
1503
- remoteUrlMissing,
1504
- gatewayMode,
1505
- gatewayProbe,
1506
- gatewayReachable,
1507
- gatewaySelf,
1508
- channelIssues,
1509
- agentStatus,
1510
- channels,
1511
- summary
1512
- };
1513
- });
1514
- }
1515
-
1516
- //#endregion
1517
- //#region src/commands/status.command.ts
1518
- function resolvePairingRecoveryContext(params) {
1519
- const sanitizeRequestId = (value) => {
1520
- const trimmed = value.trim();
1521
- if (!trimmed) return null;
1522
- if (!/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(trimmed)) return null;
1523
- return trimmed;
1524
- };
1525
- const source = [params.error, params.closeReason].filter((part) => typeof part === "string" && part.trim().length > 0).join(" ");
1526
- if (!source || !/pairing required/i.test(source)) return null;
1527
- const requestIdMatch = source.match(/requestId:\s*([^\s)]+)/i);
1528
- return { requestId: (requestIdMatch && requestIdMatch[1] ? sanitizeRequestId(requestIdMatch[1]) : null) || null };
1529
- }
1530
- async function statusCommand(opts, runtime) {
1531
- if (opts.all && !opts.json) {
1532
- await statusAllCommand(runtime, { timeoutMs: opts.timeoutMs });
1533
- return;
1534
- }
1535
- const { cfg, osSummary, tailscaleMode, tailscaleDns, tailscaleHttpsUrl, update, gatewayConnection, remoteUrlMissing, gatewayMode, gatewayProbe, gatewayReachable, gatewaySelf, channelIssues, agentStatus, channels, summary } = await scanStatus({
1536
- json: opts.json,
1537
- timeoutMs: opts.timeoutMs,
1538
- all: opts.all
1539
- }, runtime);
1540
- const securityAudit = await withProgress({
1541
- label: "Running security audit…",
1542
- indeterminate: true,
1543
- enabled: opts.json !== true
1544
- }, async () => await runSecurityAudit({
1545
- config: cfg,
1546
- deep: false,
1547
- includeFilesystem: true,
1548
- includeChannelSecurity: true
1549
- }));
1550
- const usage = opts.usage ? await withProgress({
1551
- label: "Fetching usage snapshot…",
1552
- indeterminate: true,
1553
- enabled: opts.json !== true
1554
- }, async () => await loadProviderUsageSummary({ timeoutMs: opts.timeoutMs })) : void 0;
1555
- const health = opts.deep ? await withProgress({
1556
- label: "Checking gateway health…",
1557
- indeterminate: true,
1558
- enabled: opts.json !== true
1559
- }, async () => await callGateway({
1560
- method: "health",
1561
- params: { probe: true },
1562
- timeoutMs: opts.timeoutMs
1563
- })) : void 0;
1564
- const lastHeartbeat = opts.deep && gatewayReachable ? await callGateway({
1565
- method: "last-heartbeat",
1566
- params: {},
1567
- timeoutMs: opts.timeoutMs
1568
- }).catch(() => null) : null;
1569
- const channelInfo = resolveUpdateChannelDisplay({ configChannel: normalizeUpdateChannel(cfg.update?.channel) });
1570
- if (opts.json) {
1571
- const [daemon, nodeDaemon] = await Promise.all([getDaemonStatusSummary(), getNodeDaemonStatusSummary()]);
1572
- runtime.log(JSON.stringify({
1573
- ...summary,
1574
- os: osSummary,
1575
- update,
1576
- updateChannel: channelInfo.channel,
1577
- updateChannelSource: channelInfo.source,
1578
- gateway: {
1579
- mode: gatewayMode,
1580
- url: gatewayConnection.url,
1581
- urlSource: gatewayConnection.urlSource,
1582
- misconfigured: remoteUrlMissing,
1583
- reachable: gatewayReachable,
1584
- connectLatencyMs: gatewayProbe?.connectLatencyMs ?? null,
1585
- self: gatewaySelf,
1586
- error: gatewayProbe?.error ?? null
1587
- },
1588
- gatewayService: daemon,
1589
- nodeService: nodeDaemon,
1590
- agents: agentStatus,
1591
- securityAudit,
1592
- ...health || usage || lastHeartbeat ? {
1593
- health,
1594
- usage,
1595
- lastHeartbeat
1596
- } : {}
1597
- }, null, 2));
1598
- return;
1599
- }
1600
- const muted = (value) => theme.muted(value);
1601
- const ok = (value) => theme.success(value);
1602
- const warn = (value) => theme.warn(value);
1603
- if (opts.verbose) {
1604
- const details = buildGatewayConnectionDetails();
1605
- runtime.log(info("Gateway connection:"));
1606
- for (const line of details.message.split("\n")) runtime.log(` ${line}`);
1607
- runtime.log("");
1608
- }
1609
- const tableWidth = Math.max(60, (process.stdout.columns ?? 120) - 1);
1610
- const dashboard = (() => {
1611
- if (!(cfg.gateway?.controlUi?.enabled ?? true)) return "disabled";
1612
- return resolveControlUiLinks({
1613
- port: resolveGatewayPort(cfg),
1614
- bind: cfg.gateway?.bind,
1615
- customBindHost: cfg.gateway?.customBindHost,
1616
- basePath: cfg.gateway?.controlUi?.basePath
1617
- }).httpUrl;
1618
- })();
1619
- const gatewayValue = (() => {
1620
- const target = remoteUrlMissing ? `fallback ${gatewayConnection.url}` : `${gatewayConnection.url}${gatewayConnection.urlSource ? ` (${gatewayConnection.urlSource})` : ""}`;
1621
- const reach = remoteUrlMissing ? warn("misconfigured (remote.url missing)") : gatewayReachable ? ok(`reachable ${formatDuration(gatewayProbe?.connectLatencyMs)}`) : warn(gatewayProbe?.error ? `unreachable (${gatewayProbe.error})` : "unreachable");
1622
- const auth = gatewayReachable && !remoteUrlMissing ? ` · auth ${formatGatewayAuthUsed(resolveGatewayProbeAuth(cfg))}` : "";
1623
- const self = gatewaySelf?.host || gatewaySelf?.version || gatewaySelf?.platform ? [
1624
- gatewaySelf?.host ? gatewaySelf.host : null,
1625
- gatewaySelf?.ip ? `(${gatewaySelf.ip})` : null,
1626
- gatewaySelf?.version ? `app ${gatewaySelf.version}` : null,
1627
- gatewaySelf?.platform ? gatewaySelf.platform : null
1628
- ].filter(Boolean).join(" ") : null;
1629
- return `${gatewayMode} · ${target} · ${reach}${auth}${self ? ` · ${self}` : ""}`;
1630
- })();
1631
- const pairingRecovery = resolvePairingRecoveryContext({
1632
- error: gatewayProbe?.error ?? null,
1633
- closeReason: gatewayProbe?.close?.reason ?? null
1634
- });
1635
- const agentsValue = (() => {
1636
- const pending = agentStatus.bootstrapPendingCount > 0 ? `${agentStatus.bootstrapPendingCount} bootstrap file${agentStatus.bootstrapPendingCount === 1 ? "" : "s"} present` : "no bootstrap files";
1637
- const def = agentStatus.agents.find((a) => a.id === agentStatus.defaultId);
1638
- const defActive = def?.lastActiveAgeMs != null ? formatTimeAgo(def.lastActiveAgeMs) : "unknown";
1639
- const defSuffix = def ? ` · default ${def.id} active ${defActive}` : "";
1640
- return `${agentStatus.agents.length} · ${pending} · sessions ${agentStatus.totalSessions}${defSuffix}`;
1641
- })();
1642
- const [daemon, nodeDaemon] = await Promise.all([getDaemonStatusSummary(), getNodeDaemonStatusSummary()]);
1643
- const daemonValue = (() => {
1644
- if (daemon.installed === false) return `${daemon.label} not installed`;
1645
- const installedPrefix = daemon.installed === true ? "installed · " : "";
1646
- return `${daemon.label} ${installedPrefix}${daemon.loadedText}${daemon.runtimeShort ? ` · ${daemon.runtimeShort}` : ""}`;
1647
- })();
1648
- const nodeDaemonValue = (() => {
1649
- if (nodeDaemon.installed === false) return `${nodeDaemon.label} not installed`;
1650
- const installedPrefix = nodeDaemon.installed === true ? "installed · " : "";
1651
- return `${nodeDaemon.label} ${installedPrefix}${nodeDaemon.loadedText}${nodeDaemon.runtimeShort ? ` · ${nodeDaemon.runtimeShort}` : ""}`;
1652
- })();
1653
- const defaults = summary.sessions.defaults;
1654
- const defaultCtx = defaults.contextTokens ? ` (${formatKTokens(defaults.contextTokens)} ctx)` : "";
1655
- const eventsValue = summary.queuedSystemEvents.length > 0 ? `${summary.queuedSystemEvents.length} queued` : "none";
1656
- const probesValue = health ? ok("enabled") : muted("skipped (use --deep)");
1657
- const heartbeatValue = (() => {
1658
- const parts = summary.heartbeat.agents.map((agent) => {
1659
- if (!agent.enabled || !agent.everyMs) return `disabled (${agent.agentId})`;
1660
- return `${agent.every} (${agent.agentId})`;
1661
- }).filter(Boolean);
1662
- return parts.length > 0 ? parts.join(", ") : "disabled";
1663
- })();
1664
- const lastHeartbeatValue = (() => {
1665
- if (!opts.deep) return null;
1666
- if (!gatewayReachable) return warn("unavailable");
1667
- if (!lastHeartbeat) return muted("none");
1668
- const age = formatTimeAgo(Date.now() - lastHeartbeat.ts);
1669
- const channel = lastHeartbeat.channel ?? "unknown";
1670
- const accountLabel = lastHeartbeat.accountId ? `account ${lastHeartbeat.accountId}` : null;
1671
- return [
1672
- lastHeartbeat.status,
1673
- `${age} ago`,
1674
- channel,
1675
- accountLabel
1676
- ].filter(Boolean).join(" · ");
1677
- })();
1678
- const storeLabel = summary.sessions.paths.length > 1 ? `${summary.sessions.paths.length} stores` : summary.sessions.paths[0] ?? "unknown";
1679
- const updateAvailability = resolveUpdateAvailability(update);
1680
- const updateLine = formatUpdateOneLiner(update).replace(/^Update:\s*/i, "");
1681
- const channelLabel = channelInfo.label;
1682
- const overviewRows = [
1683
- {
1684
- Item: "Dashboard",
1685
- Value: dashboard
1686
- },
1687
- {
1688
- Item: "OS",
1689
- Value: `${osSummary.label} · node ${process.versions.node}`
1690
- },
1691
- {
1692
- Item: "Tailscale",
1693
- Value: tailscaleMode === "off" ? muted("off") : tailscaleDns && tailscaleHttpsUrl ? `${tailscaleMode} · ${tailscaleDns} · ${tailscaleHttpsUrl}` : warn(`${tailscaleMode} · magicdns unknown`)
1694
- },
1695
- {
1696
- Item: "Channel",
1697
- Value: channelLabel
1698
- },
1699
- {
1700
- Item: "Update",
1701
- Value: updateAvailability.available ? warn(`available · ${updateLine}`) : updateLine
1702
- },
1703
- {
1704
- Item: "Gateway",
1705
- Value: gatewayValue
1706
- },
1707
- {
1708
- Item: "Gateway service",
1709
- Value: daemonValue
1710
- },
1711
- {
1712
- Item: "Node service",
1713
- Value: nodeDaemonValue
1714
- },
1715
- {
1716
- Item: "Agents",
1717
- Value: agentsValue
1718
- },
1719
- {
1720
- Item: "Probes",
1721
- Value: probesValue
1722
- },
1723
- {
1724
- Item: "Events",
1725
- Value: eventsValue
1726
- },
1727
- {
1728
- Item: "Heartbeat",
1729
- Value: heartbeatValue
1730
- },
1731
- ...lastHeartbeatValue ? [{
1732
- Item: "Last heartbeat",
1733
- Value: lastHeartbeatValue
1734
- }] : [],
1735
- {
1736
- Item: "Sessions",
1737
- Value: `${summary.sessions.count} active · default ${defaults.model ?? "unknown"}${defaultCtx} · ${storeLabel}`
1738
- }
1739
- ];
1740
- runtime.log(theme.heading("RemoteClaw status"));
1741
- runtime.log("");
1742
- runtime.log(theme.heading("Overview"));
1743
- runtime.log(renderTable({
1744
- width: tableWidth,
1745
- columns: [{
1746
- key: "Item",
1747
- header: "Item",
1748
- minWidth: 12
1749
- }, {
1750
- key: "Value",
1751
- header: "Value",
1752
- flex: true,
1753
- minWidth: 32
1754
- }],
1755
- rows: overviewRows
1756
- }).trimEnd());
1757
- if (pairingRecovery) {
1758
- runtime.log("");
1759
- runtime.log(theme.warn("Gateway pairing approval required."));
1760
- if (pairingRecovery.requestId) runtime.log(theme.muted(`Recovery: ${formatCliCommand(`remoteclaw devices approve ${pairingRecovery.requestId}`)}`));
1761
- runtime.log(theme.muted(`Fallback: ${formatCliCommand("remoteclaw devices approve --latest")}`));
1762
- runtime.log(theme.muted(`Inspect: ${formatCliCommand("remoteclaw devices list")}`));
1763
- }
1764
- runtime.log("");
1765
- runtime.log(theme.heading("Security audit"));
1766
- const fmtSummary = (value) => {
1767
- return [
1768
- theme.error(`${value.critical} critical`),
1769
- theme.warn(`${value.warn} warn`),
1770
- theme.muted(`${value.info} info`)
1771
- ].join(" · ");
1772
- };
1773
- runtime.log(theme.muted(`Summary: ${fmtSummary(securityAudit.summary)}`));
1774
- const importantFindings = securityAudit.findings.filter((f) => f.severity === "critical" || f.severity === "warn");
1775
- if (importantFindings.length === 0) runtime.log(theme.muted("No critical or warn findings detected."));
1776
- else {
1777
- const severityLabel = (sev) => {
1778
- if (sev === "critical") return theme.error("CRITICAL");
1779
- if (sev === "warn") return theme.warn("WARN");
1780
- return theme.muted("INFO");
1781
- };
1782
- const sevRank = (sev) => sev === "critical" ? 0 : sev === "warn" ? 1 : 2;
1783
- const sorted = [...importantFindings].toSorted((a, b) => sevRank(a.severity) - sevRank(b.severity));
1784
- const shown = sorted.slice(0, 6);
1785
- for (const f of shown) {
1786
- runtime.log(` ${severityLabel(f.severity)} ${f.title}`);
1787
- runtime.log(` ${shortenText(f.detail.replaceAll("\n", " "), 160)}`);
1788
- if (f.remediation?.trim()) runtime.log(` ${theme.muted(`Fix: ${f.remediation.trim()}`)}`);
1789
- }
1790
- if (sorted.length > shown.length) runtime.log(theme.muted(`… +${sorted.length - shown.length} more`));
1791
- }
1792
- runtime.log(theme.muted(`Full report: ${formatCliCommand("remoteclaw security audit")}`));
1793
- runtime.log(theme.muted(`Deep probe: ${formatCliCommand("remoteclaw security audit --deep")}`));
1794
- runtime.log("");
1795
- runtime.log(theme.heading("Channels"));
1796
- const channelIssuesByChannel = (() => {
1797
- const map = /* @__PURE__ */ new Map();
1798
- for (const issue of channelIssues) {
1799
- const key = issue.channel;
1800
- const list = map.get(key);
1801
- if (list) list.push(issue);
1802
- else map.set(key, [issue]);
1803
- }
1804
- return map;
1805
- })();
1806
- runtime.log(renderTable({
1807
- width: tableWidth,
1808
- columns: [
1809
- {
1810
- key: "Channel",
1811
- header: "Channel",
1812
- minWidth: 10
1813
- },
1814
- {
1815
- key: "Enabled",
1816
- header: "Enabled",
1817
- minWidth: 7
1818
- },
1819
- {
1820
- key: "State",
1821
- header: "State",
1822
- minWidth: 8
1823
- },
1824
- {
1825
- key: "Detail",
1826
- header: "Detail",
1827
- flex: true,
1828
- minWidth: 24
1829
- }
1830
- ],
1831
- rows: channels.rows.map((row) => {
1832
- const issues = channelIssuesByChannel.get(row.id) ?? [];
1833
- const effectiveState = row.state === "off" ? "off" : issues.length > 0 ? "warn" : row.state;
1834
- const issueSuffix = issues.length > 0 ? ` · ${warn(`gateway: ${shortenText(issues[0]?.message ?? "issue", 84)}`)}` : "";
1835
- return {
1836
- Channel: row.label,
1837
- Enabled: row.enabled ? ok("ON") : muted("OFF"),
1838
- State: effectiveState === "ok" ? ok("OK") : effectiveState === "warn" ? warn("WARN") : effectiveState === "off" ? muted("OFF") : theme.accentDim("SETUP"),
1839
- Detail: `${row.detail}${issueSuffix}`
1840
- };
1841
- })
1842
- }).trimEnd());
1843
- runtime.log("");
1844
- runtime.log(theme.heading("Sessions"));
1845
- runtime.log(renderTable({
1846
- width: tableWidth,
1847
- columns: [
1848
- {
1849
- key: "Key",
1850
- header: "Key",
1851
- minWidth: 20,
1852
- flex: true
1853
- },
1854
- {
1855
- key: "Kind",
1856
- header: "Kind",
1857
- minWidth: 6
1858
- },
1859
- {
1860
- key: "Age",
1861
- header: "Age",
1862
- minWidth: 9
1863
- },
1864
- {
1865
- key: "Model",
1866
- header: "Model",
1867
- minWidth: 14
1868
- },
1869
- {
1870
- key: "Tokens",
1871
- header: "Tokens",
1872
- minWidth: 16
1873
- }
1874
- ],
1875
- rows: summary.sessions.recent.length > 0 ? summary.sessions.recent.map((sess) => ({
1876
- Key: shortenText(sess.key, 32),
1877
- Kind: sess.kind,
1878
- Age: sess.updatedAt ? formatTimeAgo(sess.age) : "no activity",
1879
- Model: sess.model ?? "unknown",
1880
- Tokens: formatTokensCompact(sess)
1881
- })) : [{
1882
- Key: muted("no sessions yet"),
1883
- Kind: "",
1884
- Age: "",
1885
- Model: "",
1886
- Tokens: ""
1887
- }]
1888
- }).trimEnd());
1889
- if (summary.queuedSystemEvents.length > 0) {
1890
- runtime.log("");
1891
- runtime.log(theme.heading("System events"));
1892
- runtime.log(renderTable({
1893
- width: tableWidth,
1894
- columns: [{
1895
- key: "Event",
1896
- header: "Event",
1897
- flex: true,
1898
- minWidth: 24
1899
- }],
1900
- rows: summary.queuedSystemEvents.slice(0, 5).map((event) => ({ Event: event }))
1901
- }).trimEnd());
1902
- if (summary.queuedSystemEvents.length > 5) runtime.log(muted(`… +${summary.queuedSystemEvents.length - 5} more`));
1903
- }
1904
- if (health) {
1905
- runtime.log("");
1906
- runtime.log(theme.heading("Health"));
1907
- const rows = [];
1908
- rows.push({
1909
- Item: "Gateway",
1910
- Status: ok("reachable"),
1911
- Detail: `${health.durationMs}ms`
1912
- });
1913
- for (const line of formatHealthChannelLines(health, { accountMode: "all" })) {
1914
- const colon = line.indexOf(":");
1915
- if (colon === -1) continue;
1916
- const item = line.slice(0, colon).trim();
1917
- const detail = line.slice(colon + 1).trim();
1918
- const normalized = detail.toLowerCase();
1919
- const status = (() => {
1920
- if (normalized.startsWith("ok")) return ok("OK");
1921
- if (normalized.startsWith("failed")) return warn("WARN");
1922
- if (normalized.startsWith("not configured")) return muted("OFF");
1923
- if (normalized.startsWith("configured")) return ok("OK");
1924
- if (normalized.startsWith("linked")) return ok("LINKED");
1925
- if (normalized.startsWith("not linked")) return warn("UNLINKED");
1926
- return warn("WARN");
1927
- })();
1928
- rows.push({
1929
- Item: item,
1930
- Status: status,
1931
- Detail: detail
1932
- });
1933
- }
1934
- runtime.log(renderTable({
1935
- width: tableWidth,
1936
- columns: [
1937
- {
1938
- key: "Item",
1939
- header: "Item",
1940
- minWidth: 10
1941
- },
1942
- {
1943
- key: "Status",
1944
- header: "Status",
1945
- minWidth: 8
1946
- },
1947
- {
1948
- key: "Detail",
1949
- header: "Detail",
1950
- flex: true,
1951
- minWidth: 28
1952
- }
1953
- ],
1954
- rows
1955
- }).trimEnd());
1956
- }
1957
- if (usage) {
1958
- runtime.log("");
1959
- runtime.log(theme.heading("Usage"));
1960
- for (const line of formatUsageReportLines(usage)) runtime.log(line);
1961
- }
1962
- runtime.log("");
1963
- runtime.log("FAQ: https://docs.remoteclaw.org/faq");
1964
- runtime.log("Troubleshooting: https://docs.remoteclaw.org/troubleshooting");
1965
- runtime.log("");
1966
- const updateHint = formatUpdateAvailableHint(update);
1967
- if (updateHint) {
1968
- runtime.log(theme.warn(updateHint));
1969
- runtime.log("");
1970
- }
1971
- runtime.log("Next steps:");
1972
- runtime.log(` Need to share? ${formatCliCommand("remoteclaw status --all")}`);
1973
- runtime.log(` Need to debug live? ${formatCliCommand("remoteclaw logs --follow")}`);
1974
- if (gatewayReachable) runtime.log(` Need to test channels? ${formatCliCommand("remoteclaw status --deep")}`);
1975
- else runtime.log(` Fix reachability first: ${formatCliCommand("remoteclaw gateway probe")}`);
1976
- }
1977
-
1978
- //#endregion
1979
- //#region src/commands/status.ts
1980
- var status_exports = /* @__PURE__ */ __exportAll({ statusCommand: () => statusCommand });
1981
-
1982
- //#endregion
1983
- export { pickGatewaySelfPresence as i, statusCommand as n, getStatusSummary as r, status_exports as t };