squidclaw 3.0.13 → 3.0.14

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 (307) hide show
  1. package/dist/{accounts-PhtBJ8mA.js → accounts-BjEXPlGc.js} +1 -1
  2. package/dist/{accounts-Xp5W2xrR.js → accounts-CyBVeR-N.js} +1 -1
  3. package/dist/{accounts-BFC1okn9.js → accounts-D095MOmG.js} +7 -7
  4. package/dist/{acp-cli-Dt95OPXW.js → acp-cli-Dd2joFFS.js} +8 -8
  5. package/dist/{agent-scope-tUxfsPYq.js → agent-scope-C1XMay0T.js} +17 -17
  6. package/dist/{agents.config-DNPisWCH.js → agents.config-CRKsD30n.js} +2 -2
  7. package/dist/{api-key-rotation-Y59kKrr0.js → api-key-rotation-BcKKu9kK.js} +1 -1
  8. package/dist/{audio-preflight-DeBM0nTy.js → audio-preflight-g9rsstMv.js} +34 -34
  9. package/dist/{audio-transcription-runner-B7oPsr3U.js → audio-transcription-runner-Bnl3Ubjo.js} +23 -23
  10. package/dist/{audit-Bq3iosCf.js → audit-B4s_5Gn1.js} +29 -29
  11. package/dist/{auth-HYiP0mxx.js → auth-DHSeaNcB.js} +1 -1
  12. package/dist/{auth-choice-Du_pIfBh.js → auth-choice-C-7c5Td_.js} +13 -13
  13. package/dist/{auth-choice-CX8TDXmp.js → auth-choice-D7LiN5Ju.js} +11 -11
  14. package/dist/{auth-choice.apply-helpers-DRfHu1d8.js → auth-choice.apply-helpers-CxO2Wbq-.js} +1 -1
  15. package/dist/{auth-token-BQRI3c6e.js → auth-token-BxYYHBlc.js} +1 -1
  16. package/dist/{bonjour-discovery-BenDpM0y.js → bonjour-discovery-mtNewKSx.js} +1 -1
  17. package/dist/{browser-cli-Et8PyJjA.js → browser-cli-I1fzIVmS.js} +12 -12
  18. package/dist/build-info.json +2 -2
  19. package/dist/{call-DbkLm3eP.js → call-DkR5OGhh.js} +10 -10
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-account-context-C_WQRa6U.js → channel-account-context-e4ysObLI.js} +5 -5
  22. package/dist/{channel-activity-7kixHIgY.js → channel-activity-CCjlTlcN.js} +1 -1
  23. package/dist/{channel-options-D0TjqxeO.js → channel-options-BL5mHe-R.js} +3 -3
  24. package/dist/{channel-selection-BwbXcgj2.js → channel-selection-D_20zq3H.js} +1 -1
  25. package/dist/{channel-web-lfZ3VOOl.js → channel-web-C7Iij0H0.js} +16 -16
  26. package/dist/{channels-cli-Hr4vekE6.js → channels-cli-BMiEn81Y.js} +92 -92
  27. package/dist/{channels-status-issues-DeoqSoo-.js → channels-status-issues-N9kzQrD8.js} +1 -1
  28. package/dist/{chrome-gIqO4t7T.js → chrome-BNfSmFAM.js} +4 -4
  29. package/dist/{clawbot-cli-C-jGxnTq.js → clawbot-cli-B6-68gsT.js} +11 -11
  30. package/dist/cli/daemon-cli.js +1 -1
  31. package/dist/{cli-BH62lCfL.js → cli-ByaubO_B.js} +72 -72
  32. package/dist/{client-CeaUCJtL.js → client-BURktNyH.js} +2 -2
  33. package/dist/{command-secret-targets-BF4WzaME.js → command-secret-targets-WwcPUFAf.js} +4 -4
  34. package/dist/{commands-CD6EMOiw.js → commands-CiY9HjRt.js} +1 -1
  35. package/dist/{commands-registry-DCUj1QOi.js → commands-registry-0bpX7A_Q.js} +3 -3
  36. package/dist/{completion-cli-BIY_jjYY.js → completion-cli-8PdK97J-.js} +12 -12
  37. package/dist/{config-cli-DvNViMXW.js → config-cli-ClomIMw7.js} +7 -7
  38. package/dist/{config-guard-DwgnWjmj.js → config-guard-rLrk7eSS.js} +16 -16
  39. package/dist/{config-validation-CcqZ--gE.js → config-validation-BQEaXMk7.js} +3 -3
  40. package/dist/{configure-B5Zuhebc.js → configure-CoXGul3l.js} +17 -17
  41. package/dist/{control-ui-assets-x69xyZH-.js → control-ui-assets-Bz7TCLpb.js} +1 -1
  42. package/dist/{cron-cli-Bv-X4msQ.js → cron-cli-C3iKBccc.js} +11 -11
  43. package/dist/{daemon-cli-B-8-rGND.js → daemon-cli-BVcrlw5o.js} +15 -15
  44. package/dist/{daemon-install-2y4HHhYl.js → daemon-install-CXDWHEEO.js} +4 -4
  45. package/dist/{daemon-install-helpers-Cdo6Pryw.js → daemon-install-helpers-a4pGEsbA.js} +11 -11
  46. package/dist/{deliver-CVl43oM1.js → deliver-B1sllFkh.js} +7 -7
  47. package/dist/deliver-runtime-CaV7seKv.js +61 -0
  48. package/dist/deps-send-discord.runtime-DbS5pxta.js +36 -0
  49. package/dist/deps-send-imessage.runtime-Ji753_F7.js +35 -0
  50. package/dist/deps-send-signal.runtime-DLJqvPLf.js +34 -0
  51. package/dist/deps-send-slack.runtime-DrFxeZ1I.js +32 -0
  52. package/dist/{deps-send-telegram.runtime-C9lz8bf0.js → deps-send-telegram.runtime-CF-Ylrvr.js} +16 -16
  53. package/dist/deps-send-whatsapp.runtime-BOE0Ke6v.js +118 -0
  54. package/dist/{devices-cli-BT8K0hdG.js → devices-cli-Dn_norz3.js} +8 -8
  55. package/dist/{diagnostic-5bqrhGEp.js → diagnostic-CNl71AzW.js} +1 -1
  56. package/dist/{diagnostics-C0CazfQM.js → diagnostics-DZ99A0EW.js} +5 -5
  57. package/dist/{directory-cli-BZcT9ie1.js → directory-cli-ZzwXkW89.js} +7 -7
  58. package/dist/{dns-cli-CPYaeASu.js → dns-cli-DipYQjtY.js} +5 -5
  59. package/dist/{dock-CVTqzMqE.js → dock-C7N1CmcP.js} +4 -4
  60. package/dist/{docs-cli-C50vGyDh.js → docs-cli-C-Izm9Tb.js} +4 -4
  61. package/dist/{doctor-completion-Emprau8v.js → doctor-completion-CGmYWy0n.js} +2 -2
  62. package/dist/{doctor-config-flow-DSA-JE3n.js → doctor-config-flow-DDWA3Z2D.js} +15 -15
  63. package/dist/{enable-CAYj5OhY.js → enable-RJyJVP_B.js} +1 -1
  64. package/dist/{exec-approvals-allowlist-BO4EEQUI.js → exec-approvals-allowlist-Bu_oaDJC.js} +1 -1
  65. package/dist/{exec-approvals-cli-DSOHdWJR.js → exec-approvals-cli-Csducy9L.js} +16 -16
  66. package/dist/{exec-safe-bin-runtime-policy-CSnpe1AT.js → exec-safe-bin-runtime-policy-DRQwt8kj.js} +2 -2
  67. package/dist/{fetch-guard-VcWeni3c.js → fetch-guard-DNykKlIv.js} +1 -1
  68. package/dist/{fs-safe-CjHYKGbt.js → fs-safe-CKHYu4Vz.js} +24 -24
  69. package/dist/{gateway-cli-B2fScwuY.js → gateway-cli-CUph5Eqo.js} +152 -152
  70. package/dist/{gateway-rpc-DpqZnhyz.js → gateway-rpc-DoKw40aG.js} +1 -1
  71. package/dist/{health-BZcB9SMe.js → health-Cia3g9r1.js} +11 -11
  72. package/dist/{hooks-cli-BylHgZ52.js → hooks-cli-LDbU3XMU.js} +80 -80
  73. package/dist/{hooks-status-DqGd74DG.js → hooks-status-Dd_iWcBZ.js} +1 -1
  74. package/dist/{image-CulZw1up.js → image-D2a7rcK1.js} +5 -5
  75. package/dist/{image-ops-BpsIdA2j.js → image-ops-BIWika4g.js} +10 -10
  76. package/dist/image-runtime-DTxVPe7Z.js +55 -0
  77. package/dist/index.js +82 -82
  78. package/dist/{inspect-D5T8Bbzl.js → inspect-C3PHuODr.js} +4 -4
  79. package/dist/{install-safe-path-BoN-MLvX.js → install-safe-path-iCmVuopp.js} +25 -25
  80. package/dist/{installs-CPHMcmNj.js → installs-CyjlehlR.js} +9 -9
  81. package/dist/{ipv4-Bwl9ruCP.js → ipv4-CWVOQw5T.js} +1 -1
  82. package/dist/{ir-xnftdkOo.js → ir-BPM7rQYq.js} +8 -8
  83. package/dist/{issue-format-8t_ncgFx.js → issue-format-sA05c-6t.js} +1 -1
  84. package/dist/{json-files-DIEpaxUj.js → json-files-D6M304Qd.js} +8 -8
  85. package/dist/{lifecycle-core-DKiBjZdv.js → lifecycle-core-DsfZ6965.js} +5 -5
  86. package/dist/{local-roots-BrxGyJnb.js → local-roots-CMxJ8L4w.js} +3 -3
  87. package/dist/{login-CxDYXbgx.js → login-BjtBaVVG.js} +3 -3
  88. package/dist/{login-qr-zf4B1lpU.js → login-qr-JfRlpd7I.js} +6 -6
  89. package/dist/{logs-cli-CJAe1_dv.js → logs-cli-gv2Ql7GE.js} +9 -9
  90. package/dist/{manager-DBgRFvYb.js → manager-XeZQ6ws7.js} +14 -14
  91. package/dist/{manager-runtime-Dl31cGh-.js → manager-runtime-BvGqzQIY.js} +9 -9
  92. package/dist/{manifest-registry-Cx3mB9zS.js → manifest-registry-BaUPjNKb.js} +1 -1
  93. package/dist/{memory-cli-Bhoc-n_1.js → memory-cli-BUJHSsW6.js} +12 -12
  94. package/dist/{model-DYzjrxpA.js → model-Jy6fO59G.js} +2 -2
  95. package/dist/{model-catalog-kpDOW8eY.js → model-catalog-BfoWgIDd.js} +3 -3
  96. package/dist/{model-picker-BZwK54QT.js → model-picker-CxmHVCE1.js} +4 -4
  97. package/dist/{model-selection-ZV3PuYVR.js → model-selection-QgM_TOjC.js} +16 -16
  98. package/dist/{models-cli-BIxlIOFr.js → models-cli-DlbNL6it.js} +81 -81
  99. package/dist/{models-config-BLdDYoxi.js → models-config-DOD5jluc.js} +6 -6
  100. package/dist/{node-cli-6uYJccbd.js → node-cli-uJ5lFzxj.js} +33 -33
  101. package/dist/{node-command-policy-CKTXVa3D.js → node-command-policy-CwVo8Z1X.js} +1 -1
  102. package/dist/{node-service-DGPVb5ri.js → node-service-xGYkt3vb.js} +1 -1
  103. package/dist/{nodes-cli-CXLRfAYx.js → nodes-cli-eauCMbSr.js} +16 -16
  104. package/dist/{nodes-screen-C-tuRhA1.js → nodes-screen-iR_FzGNs.js} +7 -7
  105. package/dist/{npm-pack-install-DgSn7djE.js → npm-pack-install-s-mP9K0z.js} +18 -18
  106. package/dist/{npm-resolution-gw3vFNTB.js → npm-resolution-Ck7yFIM2.js} +4 -4
  107. package/dist/{onboard-CCaYDSO2.js → onboard-aISMp4Kt.js} +6 -6
  108. package/dist/{onboard-channels-DQnP5d3Y.js → onboard-channels-CELkEQUS.js} +21 -21
  109. package/dist/{onboard-custom-CJohrPzT.js → onboard-custom-BmAzWYbD.js} +4 -4
  110. package/dist/{onboard-helpers-Bcs_1b81.js → onboard-helpers-DRk4Y5uA.js} +10 -10
  111. package/dist/{onboard-hooks-A23nqe_3.js → onboard-hooks-lk1sMnDf.js} +4 -4
  112. package/dist/{onboard-remote-Hf9sTDHl.js → onboard-remote-Bj9cR8kF.js} +4 -4
  113. package/dist/{onboard-skills-Cpc8o6sG.js → onboard-skills-eRpyQ1la.js} +4 -4
  114. package/dist/{onboarding-wx00blu5.js → onboarding-Bl4RDn6W.js} +14 -14
  115. package/dist/{onboarding.finalize-B8wqvggG.js → onboarding.finalize-Bm7_INHb.js} +85 -85
  116. package/dist/{onboarding.gateway-config-CvWq5i_X.js → onboarding.gateway-config-BPyk6gwr.js} +18 -18
  117. package/dist/{onboarding.secret-input-CIN4p8mg.js → onboarding.secret-input-DlDt-I2O.js} +1 -1
  118. package/dist/{openai-model-default-BYfJa19m.js → openai-model-default-DnYP1Em1.js} +2 -2
  119. package/dist/{outbound-B3RZI-ai.js → outbound-BQtnr_z2.js} +3 -3
  120. package/dist/{outbound-attachment-BATDqOuj.js → outbound-attachment-WnXMTJC4.js} +2 -2
  121. package/dist/{pairing-cli-FMIw0yL6.js → pairing-cli-BsU-YnVT.js} +8 -8
  122. package/dist/{pairing-labels-MH31IXn_.js → pairing-labels-BXfoinTP.js} +1 -1
  123. package/dist/{pairing-store-KII9MIZX.js → pairing-store-C1FvWpDK.js} +3 -3
  124. package/dist/{path-alias-guards-B7H6jIIw.js → path-alias-guards-CCRXJArp.js} +3 -3
  125. package/dist/{path-safety-3wUzDqI9.js → path-safety-BWiXz6D4.js} +1 -1
  126. package/dist/{paths-BguvT84s.js → paths-Bg6h1q3v.js} +9 -9
  127. package/dist/{pi-embedded-helpers-D8WkqLZt.js → pi-embedded-helpers-DctimJJI.js} +6 -6
  128. package/dist/{pi-model-discovery-Bfyzj3Lq.js → pi-model-discovery-D63dINOn.js} +1 -1
  129. package/dist/{pi-model-discovery-runtime-nh-zh_Bp.js → pi-model-discovery-runtime-CcXGQcru.js} +5 -5
  130. package/dist/{pi-tools.before-tool-call.runtime-D4V6gUzq.js → pi-tools.before-tool-call.runtime-BMb_b90y.js} +5 -5
  131. package/dist/{pi-tools.policy-DCE9mhtw.js → pi-tools.policy-CXvZtJB7.js} +5 -5
  132. package/dist/{plugin-auto-enable-BJw5Rcbx.js → plugin-auto-enable-DMABTEO-.js} +3 -3
  133. package/dist/{plugin-registry-V0H8DaZf.js → plugin-registry-BSlUIHKX.js} +3 -3
  134. package/dist/plugin-sdk/accounts-B6gye1Jd.js +46 -0
  135. package/dist/plugin-sdk/accounts-C-BT6Po7.js +288 -0
  136. package/dist/plugin-sdk/accounts-DQDXV8eB.js +35 -0
  137. package/dist/plugin-sdk/active-listener-DZCohPuZ.js +50 -0
  138. package/dist/plugin-sdk/api-key-rotation-CrX0fvDj.js +181 -0
  139. package/dist/plugin-sdk/audio-preflight-xnWAFqH-.js +69 -0
  140. package/dist/plugin-sdk/audio-transcription-runner-BDmtq7-q.js +2176 -0
  141. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +58 -0
  142. package/dist/plugin-sdk/channel-activity-JjLRpUa_.js +94 -0
  143. package/dist/plugin-sdk/channel-web-DNWsxhYh.js +2256 -0
  144. package/dist/plugin-sdk/chrome-B5PWOUbr.js +2415 -0
  145. package/dist/plugin-sdk/commands-registry-BKeyJUxK.js +1125 -0
  146. package/dist/plugin-sdk/config-FhBFLsNm.js +17911 -0
  147. package/dist/plugin-sdk/deliver-DEbTlzFy.js +1694 -0
  148. package/dist/plugin-sdk/deliver-runtime-CO2uP-r9.js +32 -0
  149. package/dist/plugin-sdk/deps-send-discord.runtime-DIPW0tR4.js +23 -0
  150. package/dist/plugin-sdk/deps-send-imessage.runtime-ByGjRa1H.js +22 -0
  151. package/dist/plugin-sdk/deps-send-signal.runtime-Ca1awu4L.js +21 -0
  152. package/dist/plugin-sdk/deps-send-slack.runtime-CRzWCVkC.js +19 -0
  153. package/dist/plugin-sdk/deps-send-telegram.runtime-BWyavKp9.js +24 -0
  154. package/dist/plugin-sdk/deps-send-whatsapp.runtime-cC_XvHV8.js +57 -0
  155. package/dist/plugin-sdk/diagnostic-Dv9S12vm.js +319 -0
  156. package/dist/plugin-sdk/errors-B8oJXuCF.js +54 -0
  157. package/dist/plugin-sdk/fetch-guard-W_A4uSz2.js +156 -0
  158. package/dist/plugin-sdk/fs-safe-Dqmpk-Fr.js +352 -0
  159. package/dist/plugin-sdk/image-BSFy8d1M.js +2310 -0
  160. package/dist/plugin-sdk/image-ops-DN17S88I.js +584 -0
  161. package/dist/plugin-sdk/image-runtime-5YO31sjU.js +25 -0
  162. package/dist/plugin-sdk/imessage.js +2 -2
  163. package/dist/plugin-sdk/index.js +50 -50
  164. package/dist/plugin-sdk/ir-JaPZ0yKH.js +1296 -0
  165. package/dist/plugin-sdk/local-roots-BTW3ifco.js +186 -0
  166. package/dist/plugin-sdk/logger-DDdrdbDu.js +1163 -0
  167. package/dist/plugin-sdk/login-BXGRny-S.js +57 -0
  168. package/dist/plugin-sdk/login-qr-DTs92ap8.js +320 -0
  169. package/dist/plugin-sdk/manager-DzFj9oHX.js +3917 -0
  170. package/dist/plugin-sdk/manager-runtime-DrpyZvO0.js +15 -0
  171. package/dist/plugin-sdk/mattermost.js +3 -3
  172. package/dist/plugin-sdk/outbound-CQ7uBBML.js +212 -0
  173. package/dist/plugin-sdk/outbound-attachment-dTE6EVdX.js +19 -0
  174. package/dist/plugin-sdk/path-alias-guards-gBhrAn14.js +43 -0
  175. package/dist/plugin-sdk/paths-C6W4VHoa.js +166 -0
  176. package/dist/plugin-sdk/pi-embedded-helpers-CfzQPXDC.js +9627 -0
  177. package/dist/plugin-sdk/pi-model-discovery-Bt6B0MAj.js +134 -0
  178. package/dist/plugin-sdk/pi-model-discovery-runtime-BcgXpTmL.js +8 -0
  179. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DYJQxhuo.js +354 -0
  180. package/dist/plugin-sdk/plugins-6NxPd6TS.js +864 -0
  181. package/dist/plugin-sdk/proxy-fetch-ZPEvp58f.js +38 -0
  182. package/dist/plugin-sdk/pw-ai-BFK39pwE.js +1938 -0
  183. package/dist/plugin-sdk/qmd-manager-6bozlfFg.js +1448 -0
  184. package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +1011 -0
  185. package/dist/plugin-sdk/redact-BoNEjbpF.js +319 -0
  186. package/dist/plugin-sdk/reply-DgcrQBKL.js +98828 -0
  187. package/dist/plugin-sdk/resolve-outbound-target-CbaJ-kc2.js +40 -0
  188. package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +1994 -0
  189. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-jkgyeVsN.js +10 -0
  190. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DdLJJ1YC.js +19 -0
  191. package/dist/plugin-sdk/send-BSoMbeqA.js +3135 -0
  192. package/dist/plugin-sdk/send-Byyfc20_.js +503 -0
  193. package/dist/plugin-sdk/send-CI-xWEs7.js +2587 -0
  194. package/dist/plugin-sdk/send-DzP9EJqK.js +540 -0
  195. package/dist/plugin-sdk/send-MlSZ82sA.js +414 -0
  196. package/dist/plugin-sdk/session-DFy97tfW.js +169 -0
  197. package/dist/plugin-sdk/signal.js +2 -2
  198. package/dist/plugin-sdk/skill-commands-yum46YuA.js +342 -0
  199. package/dist/plugin-sdk/skills-DUphJGKn.js +1428 -0
  200. package/dist/plugin-sdk/slash-commands.runtime-5UW5KLyR.js +13 -0
  201. package/dist/plugin-sdk/slash-dispatch.runtime-4oQ2P_qo.js +52 -0
  202. package/dist/plugin-sdk/slash-skill-commands.runtime-y_mOLyS7.js +16 -0
  203. package/dist/plugin-sdk/ssrf-B3XRWBsP.js +202 -0
  204. package/dist/plugin-sdk/store-DFvIhzWZ.js +81 -0
  205. package/dist/plugin-sdk/subagent-registry-runtime-DtKXhKtl.js +52 -0
  206. package/dist/plugin-sdk/tables-bDM_jlLP.js +55 -0
  207. package/dist/{target-errors-DlzVutaL.js → plugin-sdk/target-errors-BVBW25Y3.js} +4 -4
  208. package/dist/plugin-sdk/thinking-Bu-w5mW5.js +1206 -0
  209. package/dist/plugin-sdk/tokens-CTIYTLWu.js +52 -0
  210. package/dist/plugin-sdk/tool-images-D0G_giwP.js +274 -0
  211. package/dist/plugin-sdk/web-DSXk7XCb.js +56 -0
  212. package/dist/plugin-sdk/whatsapp-actions-BOyA0Uuj.js +80 -0
  213. package/dist/{plugins-Cl_3OCyK.js → plugins-H53_4Gxb.js} +2 -2
  214. package/dist/{plugins-cli-CN2fty5U.js → plugins-cli-CQkxWdnt.js} +82 -82
  215. package/dist/{ports-Bop51hz6.js → ports-CKXuQJST.js} +2 -2
  216. package/dist/{ports-6i8smH3e.js → ports-CXjhFS7T.js} +1 -1
  217. package/dist/{program-context-ehHvCw9L.js → program-context-tphS7xu7.js} +41 -41
  218. package/dist/{prompt-select-styled-CSMviLJY.js → prompt-select-styled-DL2p1pfi.js} +40 -40
  219. package/dist/{provider-auth-helpers-CgNWlsqs.js → provider-auth-helpers-BqWiy-r-.js} +5 -5
  220. package/dist/{proxy-env-CRD7fbqp.js → proxy-env-D1tz4Z6a.js} +1 -1
  221. package/dist/{push-apns-DoYzx3tH.js → push-apns-C-YdARdy.js} +5 -5
  222. package/dist/{pw-ai-yKJj32B4.js → pw-ai-SVeR5d2o.js} +18 -18
  223. package/dist/{qmd-manager-AYDUTXmc.js → qmd-manager-B-XXhWVw.js} +20 -20
  224. package/dist/{qr-cli-cikAHfYn.js → qr-cli-B4fjHvn1.js} +2 -2
  225. package/dist/{query-expansion-CV2Z4_mS.js → query-expansion-Bf60ekMj.js} +12 -12
  226. package/dist/{redact-snapshot-C9T1079O.js → redact-snapshot-DRqM8Vla.js} +1 -1
  227. package/dist/{register.agent-BlxoyQt0.js → register.agent-BdiM0qkl.js} +97 -97
  228. package/dist/register.configure-wANXDbzQ.js +164 -0
  229. package/dist/{register.maintenance-C-Yv2mHK.js → register.maintenance-CMAt3Nl8.js} +93 -93
  230. package/dist/{register.message-CUNXtFOj.js → register.message-CbxQ5lgi.js} +73 -73
  231. package/dist/{register.onboard-BKXm1mL7.js → register.onboard-CbiTdKQX.js} +18 -18
  232. package/dist/{register.setup-DaT9AIAz.js → register.setup-KhsHMx2v.js} +21 -21
  233. package/dist/{register.status-health-sessions-7yZmSvUL.js → register.status-health-sessions-Bw5YDa_s.js} +86 -86
  234. package/dist/{reply-CeUYZhWu.js → reply-BWXzPVSJ.js} +149 -149
  235. package/dist/{rpc-BDpuIniF.js → rpc-DlN_W_L1.js} +1 -1
  236. package/dist/{runtime-Dw7Yw4OJ.js → runtime-Ci7mtLvH.js} +3 -3
  237. package/dist/{runtime-config-collectors-jhc1wDBg.js → runtime-config-collectors-CKmGmTQ5.js} +1 -1
  238. package/dist/{runtime-whatsapp-login.runtime-f293Z_er.js → runtime-whatsapp-login.runtime-Bxqt5jiO.js} +7 -7
  239. package/dist/runtime-whatsapp-outbound.runtime-B-UsXwvb.js +32 -0
  240. package/dist/{sandbox-BgsD1lf7.js → sandbox-Cuk1IWYT.js} +18 -18
  241. package/dist/{sandbox-cli-BnvmhiN9.js → sandbox-cli-BxgFeoAD.js} +25 -25
  242. package/dist/{secrets-cli-D7-K7P82.js → secrets-cli-DODLX29x.js} +11 -11
  243. package/dist/{security-cli-BFJAgNYH.js → security-cli-Ch83VrLP.js} +42 -42
  244. package/dist/{send-BvlkshC1.js → send-BfVgGHK6.js} +6 -6
  245. package/dist/{send-tK0H9nwq.js → send-Bw8LNCit.js} +5 -5
  246. package/dist/{send-CDms2FQA.js → send-C9UJKBSM.js} +4 -4
  247. package/dist/{send-CPFNtAP8.js → send-DX_fR45p.js} +11 -11
  248. package/dist/{send-C3Aeswif.js → send-FTQaNJPj.js} +8 -8
  249. package/dist/{server-OfKJG6Bo.js → server-Q9nnn04D.js} +20 -20
  250. package/dist/{server-context-B-0KzcZE.js → server-context-CX28l04l.js} +12 -12
  251. package/dist/{server-lifecycle-D6VNKVvQ.js → server-lifecycle-yAUMTJhv.js} +2 -2
  252. package/dist/{server-middleware-7cXowO4W.js → server-middleware-DIc4WJOS.js} +1 -1
  253. package/dist/{server-node-events-DWQhNK-0.js → server-node-events-qU3NTncQ.js} +73 -73
  254. package/dist/{service-Dk-UMipf.js → service-D4y0_Q5Z.js} +15 -15
  255. package/dist/{session-Da18ilJ0.js → session-CZJ5Ux6-.js} +1 -1
  256. package/dist/{sessions-CmjcNTJ3.js → sessions-C5H_BZSr.js} +15 -15
  257. package/dist/{shared-BzY0v0tS.js → shared-CxdBWgym.js} +3 -3
  258. package/dist/{shared-BcB-feC8.js → shared-DwNtcoQg.js} +1 -1
  259. package/dist/{skill-commands-BEWkEml_.js → skill-commands-BSRPnzXp.js} +5 -5
  260. package/dist/{skill-scanner-Bb5SMbCz.js → skill-scanner-rdr9cQew.js} +6 -6
  261. package/dist/{skills-Rnr7zPen.js → skills-BnBOxX1c.js} +3 -3
  262. package/dist/{skills-cli-BowIIIzH.js → skills-cli-CUgeYV1y.js} +5 -5
  263. package/dist/{skills-install-BLNCKuex.js → skills-install-BE04CZ6e.js} +6 -6
  264. package/dist/{skills-status-BCU-5otB.js → skills-status-DQw98BkG.js} +1 -1
  265. package/dist/{slash-commands.runtime-BgVgQ-Eh.js → slash-commands.runtime-BPtL2Qev.js} +11 -11
  266. package/dist/slash-dispatch.runtime-Cf9dq1k6.js +113 -0
  267. package/dist/{slash-skill-commands.runtime-4dOiU6U0.js → slash-skill-commands.runtime-9BYoANpd.js} +15 -15
  268. package/dist/{squidclaw-root-BcB7vo9M.js → squidclaw-root-CnE19yKj.js} +8 -8
  269. package/dist/{status-COTRBaam.js → status-rb5Jz-VU.js} +26 -26
  270. package/dist/{status.update-BUql4yz-.js → status.update-BNODJGA9.js} +2 -2
  271. package/dist/{store-aa15VM42.js → store-PDMRmC5Z.js} +5 -5
  272. package/dist/subagent-registry-runtime-CTiA365B.js +113 -0
  273. package/dist/{system-cli-CgCUbH_M.js → system-cli-DJYyTO07.js} +9 -9
  274. package/dist/{system-run-command-Ny1SbbOD.js → system-run-command-BgnCyvrj.js} +1 -1
  275. package/dist/{systemd-zbKl2Q3E.js → systemd-fP8tz4aL.js} +9 -9
  276. package/dist/{systemd-hints-C9_7ouv7.js → systemd-hints-BG_t__ZD.js} +6 -6
  277. package/dist/{systemd-linger-BM6JyzAr.js → systemd-linger-DgK8uuKY.js} +1 -1
  278. package/dist/{tables-jZMI8hLl.js → tables-DUSFF9-W.js} +1 -1
  279. package/dist/{tailnet-gTCqUBfJ.js → tailnet-CLkKVwDq.js} +1 -1
  280. package/dist/target-errors-BxwxgIDk.js +195 -0
  281. package/dist/{tool-images-DTl_LHMa.js → tool-images-FhSCiY-o.js} +1 -1
  282. package/dist/{tui-kDK-MAOc.js → tui-BMOMT-ma.js} +6 -6
  283. package/dist/{tui-cli-Dxy6fKkU.js → tui-cli-kqZ_-2Mz.js} +32 -32
  284. package/dist/{update-ZUTn6Jsu.js → update-blK9j2ag.js} +3 -3
  285. package/dist/{update-cli-D_QEiKyz.js → update-cli-gLKrP8UQ.js} +102 -102
  286. package/dist/{update-runner-DOXPSA_-.js → update-runner-C2UrF4oZ.js} +16 -16
  287. package/dist/web-VmjeceHS.js +117 -0
  288. package/dist/{webhooks-cli-D1iehjkP.js → webhooks-cli-BEXPBILa.js} +6 -6
  289. package/dist/{whatsapp-actions-hN5bwjWU.js → whatsapp-actions-DhiV181U.js} +17 -17
  290. package/dist/{with-timeout-BjaANd4G.js → with-timeout-BCAfkt03.js} +3 -3
  291. package/dist/{workspace-BITWyKG4.js → workspace-B-k5DNiQ.js} +1 -1
  292. package/dist/{workspace-dirs-B7O9BAHp.js → workspace-dirs-B2dNahfe.js} +1 -1
  293. package/dist/{ws-Bx8lpC1N.js → ws-DKt5HoA5.js} +2 -2
  294. package/dist/{wsl-wYxPJ8EO.js → wsl-CgxzAzRe.js} +2 -2
  295. package/package.json +1 -1
  296. package/dist/deliver-runtime-uwleBPlq.js +0 -61
  297. package/dist/deps-send-discord.runtime-CuZGpA7H.js +0 -36
  298. package/dist/deps-send-imessage.runtime-ByVW2alP.js +0 -35
  299. package/dist/deps-send-signal.runtime-Dl4GaCbQ.js +0 -34
  300. package/dist/deps-send-slack.runtime-BEV10FHj.js +0 -32
  301. package/dist/deps-send-whatsapp.runtime-Di0SEPNK.js +0 -118
  302. package/dist/image-runtime-B5Q4J9w2.js +0 -55
  303. package/dist/register.configure-CGptmTVZ.js +0 -164
  304. package/dist/runtime-whatsapp-outbound.runtime-uDhEmWe1.js +0 -32
  305. package/dist/slash-dispatch.runtime-D83FVeU7.js +0 -113
  306. package/dist/subagent-registry-runtime-CrT5RSO9.js +0 -113
  307. package/dist/web-DtSq_aUB.js +0 -117
@@ -0,0 +1,57 @@
1
+ import { i as resolveWhatsAppAccount, l as logoutWeb } from "./accounts-C-BT6Po7.js";
2
+ import { Pr as formatCliCommand, n as loadConfig } from "./config-FhBFLsNm.js";
3
+ import { B as success, F as danger, I as info, c as defaultRuntime, r as logInfo } from "./logger-DDdrdbDu.js";
4
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-DFy97tfW.js";
5
+ import { DisconnectReason } from "@whiskeysockets/baileys";
6
+
7
+ //#region src/web/login.ts
8
+ async function loginWeb(verbose, waitForConnection, runtime = defaultRuntime, accountId) {
9
+ const wait = waitForConnection ?? waitForWaConnection;
10
+ const account = resolveWhatsAppAccount({
11
+ cfg: loadConfig(),
12
+ accountId
13
+ });
14
+ const sock = await createWaSocket(true, verbose, { authDir: account.authDir });
15
+ logInfo("Waiting for WhatsApp connection...", runtime);
16
+ try {
17
+ await wait(sock);
18
+ console.log(success("✅ Linked! Credentials saved for future sends."));
19
+ } catch (err) {
20
+ const code = err?.error?.output?.statusCode ?? err?.output?.statusCode;
21
+ if (code === 515) {
22
+ console.log(info("WhatsApp asked for a restart after pairing (code 515); creds are saved. Restarting connection once…"));
23
+ try {
24
+ sock.ws?.close();
25
+ } catch {}
26
+ const retry = await createWaSocket(false, verbose, { authDir: account.authDir });
27
+ try {
28
+ await wait(retry);
29
+ console.log(success("✅ Linked after restart; web session ready."));
30
+ return;
31
+ } finally {
32
+ setTimeout(() => retry.ws?.close(), 500);
33
+ }
34
+ }
35
+ if (code === DisconnectReason.loggedOut) {
36
+ await logoutWeb({
37
+ authDir: account.authDir,
38
+ isLegacyAuthDir: account.isLegacyAuthDir,
39
+ runtime
40
+ });
41
+ console.error(danger(`WhatsApp reported the session is logged out. Cleared cached web session; please rerun ${formatCliCommand("squidclaw channels login")} and scan the QR again.`));
42
+ throw new Error("Session logged out; cache cleared. Re-run login.", { cause: err });
43
+ }
44
+ const formatted = formatError(err);
45
+ console.error(danger(`WhatsApp Web connection ended before fully opening. ${formatted}`));
46
+ throw new Error(formatted, { cause: err });
47
+ } finally {
48
+ setTimeout(() => {
49
+ try {
50
+ sock.ws?.close();
51
+ } catch {}
52
+ }, 500);
53
+ }
54
+ }
55
+
56
+ //#endregion
57
+ export { loginWeb as t };
@@ -0,0 +1,320 @@
1
+ import "./run-with-concurrency-5DMu9szx.js";
2
+ import { _ as webAuthExists, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId } from "./accounts-C-BT6Po7.js";
3
+ import "./paths-8xF5kDne.js";
4
+ import "./github-copilot-token-Dy-0-Kh3.js";
5
+ import { n as loadConfig } from "./config-FhBFLsNm.js";
6
+ import { B as success, F as danger, I as info, c as defaultRuntime, r as logInfo } from "./logger-DDdrdbDu.js";
7
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-DFy97tfW.js";
8
+ import { randomUUID } from "node:crypto";
9
+ import { DisconnectReason } from "@whiskeysockets/baileys";
10
+ import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
11
+ import QRErrorCorrectLevelModule from "qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js";
12
+ import { deflateSync } from "node:zlib";
13
+
14
+ //#region src/media/png-encode.ts
15
+ /**
16
+ * Minimal PNG encoder for generating simple RGBA images without native dependencies.
17
+ * Used for QR codes, live probes, and other programmatic image generation.
18
+ */
19
+ const CRC_TABLE = (() => {
20
+ const table = new Uint32Array(256);
21
+ for (let i = 0; i < 256; i += 1) {
22
+ let c = i;
23
+ for (let k = 0; k < 8; k += 1) c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
24
+ table[i] = c >>> 0;
25
+ }
26
+ return table;
27
+ })();
28
+ /** Compute CRC32 checksum for a buffer (used in PNG chunk encoding). */
29
+ function crc32(buf) {
30
+ let crc = 4294967295;
31
+ for (let i = 0; i < buf.length; i += 1) crc = CRC_TABLE[(crc ^ buf[i]) & 255] ^ crc >>> 8;
32
+ return (crc ^ 4294967295) >>> 0;
33
+ }
34
+ /** Create a PNG chunk with type, data, and CRC. */
35
+ function pngChunk(type, data) {
36
+ const typeBuf = Buffer.from(type, "ascii");
37
+ const len = Buffer.alloc(4);
38
+ len.writeUInt32BE(data.length, 0);
39
+ const crc = crc32(Buffer.concat([typeBuf, data]));
40
+ const crcBuf = Buffer.alloc(4);
41
+ crcBuf.writeUInt32BE(crc, 0);
42
+ return Buffer.concat([
43
+ len,
44
+ typeBuf,
45
+ data,
46
+ crcBuf
47
+ ]);
48
+ }
49
+ /** Write a pixel to an RGBA buffer. Ignores out-of-bounds writes. */
50
+ function fillPixel(buf, x, y, width, r, g, b, a = 255) {
51
+ if (x < 0 || y < 0 || x >= width) return;
52
+ const idx = (y * width + x) * 4;
53
+ if (idx < 0 || idx + 3 >= buf.length) return;
54
+ buf[idx] = r;
55
+ buf[idx + 1] = g;
56
+ buf[idx + 2] = b;
57
+ buf[idx + 3] = a;
58
+ }
59
+ /** Encode an RGBA buffer as a PNG image. */
60
+ function encodePngRgba(buffer, width, height) {
61
+ const stride = width * 4;
62
+ const raw = Buffer.alloc((stride + 1) * height);
63
+ for (let row = 0; row < height; row += 1) {
64
+ const rawOffset = row * (stride + 1);
65
+ raw[rawOffset] = 0;
66
+ buffer.copy(raw, rawOffset + 1, row * stride, row * stride + stride);
67
+ }
68
+ const compressed = deflateSync(raw);
69
+ const signature = Buffer.from([
70
+ 137,
71
+ 80,
72
+ 78,
73
+ 71,
74
+ 13,
75
+ 10,
76
+ 26,
77
+ 10
78
+ ]);
79
+ const ihdr = Buffer.alloc(13);
80
+ ihdr.writeUInt32BE(width, 0);
81
+ ihdr.writeUInt32BE(height, 4);
82
+ ihdr[8] = 8;
83
+ ihdr[9] = 6;
84
+ ihdr[10] = 0;
85
+ ihdr[11] = 0;
86
+ ihdr[12] = 0;
87
+ return Buffer.concat([
88
+ signature,
89
+ pngChunk("IHDR", ihdr),
90
+ pngChunk("IDAT", compressed),
91
+ pngChunk("IEND", Buffer.alloc(0))
92
+ ]);
93
+ }
94
+
95
+ //#endregion
96
+ //#region src/web/qr-image.ts
97
+ const QRCode = QRCodeModule;
98
+ const QRErrorCorrectLevel = QRErrorCorrectLevelModule;
99
+ function createQrMatrix(input) {
100
+ const qr = new QRCode(-1, QRErrorCorrectLevel.L);
101
+ qr.addData(input);
102
+ qr.make();
103
+ return qr;
104
+ }
105
+ async function renderQrPngBase64(input, opts = {}) {
106
+ const { scale = 6, marginModules = 4 } = opts;
107
+ const qr = createQrMatrix(input);
108
+ const modules = qr.getModuleCount();
109
+ const size = (modules + marginModules * 2) * scale;
110
+ const buf = Buffer.alloc(size * size * 4, 255);
111
+ for (let row = 0; row < modules; row += 1) for (let col = 0; col < modules; col += 1) {
112
+ if (!qr.isDark(row, col)) continue;
113
+ const startX = (col + marginModules) * scale;
114
+ const startY = (row + marginModules) * scale;
115
+ for (let y = 0; y < scale; y += 1) {
116
+ const pixelY = startY + y;
117
+ for (let x = 0; x < scale; x += 1) fillPixel(buf, startX + x, pixelY, size, 0, 0, 0, 255);
118
+ }
119
+ }
120
+ return encodePngRgba(buf, size, size).toString("base64");
121
+ }
122
+
123
+ //#endregion
124
+ //#region src/web/login-qr.ts
125
+ const ACTIVE_LOGIN_TTL_MS = 3 * 6e4;
126
+ const activeLogins = /* @__PURE__ */ new Map();
127
+ function closeSocket(sock) {
128
+ try {
129
+ sock.ws?.close();
130
+ } catch {}
131
+ }
132
+ async function resetActiveLogin(accountId, reason) {
133
+ const login = activeLogins.get(accountId);
134
+ if (login) {
135
+ closeSocket(login.sock);
136
+ activeLogins.delete(accountId);
137
+ }
138
+ if (reason) logInfo(reason);
139
+ }
140
+ function isLoginFresh(login) {
141
+ return Date.now() - login.startedAt < ACTIVE_LOGIN_TTL_MS;
142
+ }
143
+ function attachLoginWaiter(accountId, login) {
144
+ login.waitPromise = waitForWaConnection(login.sock).then(() => {
145
+ const current = activeLogins.get(accountId);
146
+ if (current?.id === login.id) current.connected = true;
147
+ }).catch((err) => {
148
+ const current = activeLogins.get(accountId);
149
+ if (current?.id !== login.id) return;
150
+ current.error = formatError(err);
151
+ current.errorStatus = getStatusCode(err);
152
+ });
153
+ }
154
+ async function restartLoginSocket(login, runtime) {
155
+ if (login.restartAttempted) return false;
156
+ login.restartAttempted = true;
157
+ runtime.log(info("WhatsApp asked for a restart after pairing (code 515); retrying connection once…"));
158
+ closeSocket(login.sock);
159
+ try {
160
+ login.sock = await createWaSocket(false, login.verbose, { authDir: login.authDir });
161
+ login.connected = false;
162
+ login.error = void 0;
163
+ login.errorStatus = void 0;
164
+ attachLoginWaiter(login.accountId, login);
165
+ return true;
166
+ } catch (err) {
167
+ login.error = formatError(err);
168
+ login.errorStatus = getStatusCode(err);
169
+ return false;
170
+ }
171
+ }
172
+ async function startWebLoginWithQr(opts = {}) {
173
+ const runtime = opts.runtime ?? defaultRuntime;
174
+ const account = resolveWhatsAppAccount({
175
+ cfg: loadConfig(),
176
+ accountId: opts.accountId
177
+ });
178
+ const hasWeb = await webAuthExists(account.authDir);
179
+ const selfId = readWebSelfId(account.authDir);
180
+ if (hasWeb && !opts.force) return { message: `WhatsApp is already linked (${selfId.e164 ?? selfId.jid ?? "unknown"}). Say “relink” if you want a fresh QR.` };
181
+ const existing = activeLogins.get(account.accountId);
182
+ if (existing && isLoginFresh(existing) && existing.qrDataUrl) return {
183
+ qrDataUrl: existing.qrDataUrl,
184
+ message: "QR already active. Scan it in WhatsApp → Linked Devices."
185
+ };
186
+ await resetActiveLogin(account.accountId);
187
+ let resolveQr = null;
188
+ let rejectQr = null;
189
+ const qrPromise = new Promise((resolve, reject) => {
190
+ resolveQr = resolve;
191
+ rejectQr = reject;
192
+ });
193
+ const qrTimer = setTimeout(() => {
194
+ rejectQr?.(/* @__PURE__ */ new Error("Timed out waiting for WhatsApp QR"));
195
+ }, Math.max(opts.timeoutMs ?? 3e4, 5e3));
196
+ let sock;
197
+ let pendingQr = null;
198
+ try {
199
+ sock = await createWaSocket(false, Boolean(opts.verbose), {
200
+ authDir: account.authDir,
201
+ onQr: (qr) => {
202
+ if (pendingQr) return;
203
+ pendingQr = qr;
204
+ const current = activeLogins.get(account.accountId);
205
+ if (current && !current.qr) current.qr = qr;
206
+ clearTimeout(qrTimer);
207
+ runtime.log(info("WhatsApp QR received."));
208
+ resolveQr?.(qr);
209
+ }
210
+ });
211
+ } catch (err) {
212
+ clearTimeout(qrTimer);
213
+ await resetActiveLogin(account.accountId);
214
+ return { message: `Failed to start WhatsApp login: ${String(err)}` };
215
+ }
216
+ const login = {
217
+ accountId: account.accountId,
218
+ authDir: account.authDir,
219
+ isLegacyAuthDir: account.isLegacyAuthDir,
220
+ id: randomUUID(),
221
+ sock,
222
+ startedAt: Date.now(),
223
+ connected: false,
224
+ waitPromise: Promise.resolve(),
225
+ restartAttempted: false,
226
+ verbose: Boolean(opts.verbose)
227
+ };
228
+ activeLogins.set(account.accountId, login);
229
+ if (pendingQr && !login.qr) login.qr = pendingQr;
230
+ attachLoginWaiter(account.accountId, login);
231
+ let qr;
232
+ try {
233
+ qr = await qrPromise;
234
+ } catch (err) {
235
+ clearTimeout(qrTimer);
236
+ await resetActiveLogin(account.accountId);
237
+ return { message: `Failed to get QR: ${String(err)}` };
238
+ }
239
+ login.qrDataUrl = `data:image/png;base64,${await renderQrPngBase64(qr)}`;
240
+ return {
241
+ qrDataUrl: login.qrDataUrl,
242
+ message: "Scan this QR in WhatsApp → Linked Devices."
243
+ };
244
+ }
245
+ async function waitForWebLogin(opts = {}) {
246
+ const runtime = opts.runtime ?? defaultRuntime;
247
+ const account = resolveWhatsAppAccount({
248
+ cfg: loadConfig(),
249
+ accountId: opts.accountId
250
+ });
251
+ const activeLogin = activeLogins.get(account.accountId);
252
+ if (!activeLogin) return {
253
+ connected: false,
254
+ message: "No active WhatsApp login in progress."
255
+ };
256
+ const login = activeLogin;
257
+ if (!isLoginFresh(login)) {
258
+ await resetActiveLogin(account.accountId);
259
+ return {
260
+ connected: false,
261
+ message: "The login QR expired. Ask me to generate a new one."
262
+ };
263
+ }
264
+ const timeoutMs = Math.max(opts.timeoutMs ?? 12e4, 1e3);
265
+ const deadline = Date.now() + timeoutMs;
266
+ while (true) {
267
+ const remaining = deadline - Date.now();
268
+ if (remaining <= 0) return {
269
+ connected: false,
270
+ message: "Still waiting for the QR scan. Let me know when you’ve scanned it."
271
+ };
272
+ const timeout = new Promise((resolve) => setTimeout(() => resolve("timeout"), remaining));
273
+ if (await Promise.race([login.waitPromise.then(() => "done"), timeout]) === "timeout") return {
274
+ connected: false,
275
+ message: "Still waiting for the QR scan. Let me know when you’ve scanned it."
276
+ };
277
+ if (login.error) {
278
+ if (login.errorStatus === DisconnectReason.loggedOut) {
279
+ await logoutWeb({
280
+ authDir: login.authDir,
281
+ isLegacyAuthDir: login.isLegacyAuthDir,
282
+ runtime
283
+ });
284
+ const message = "WhatsApp reported the session is logged out. Cleared cached web session; please scan a new QR.";
285
+ await resetActiveLogin(account.accountId, message);
286
+ runtime.log(danger(message));
287
+ return {
288
+ connected: false,
289
+ message
290
+ };
291
+ }
292
+ if (login.errorStatus === 515) {
293
+ if (await restartLoginSocket(login, runtime) && isLoginFresh(login)) continue;
294
+ }
295
+ const message = `WhatsApp login failed: ${login.error}`;
296
+ await resetActiveLogin(account.accountId, message);
297
+ runtime.log(danger(message));
298
+ return {
299
+ connected: false,
300
+ message
301
+ };
302
+ }
303
+ if (login.connected) {
304
+ const message = "✅ Linked! WhatsApp is ready.";
305
+ runtime.log(success(message));
306
+ await resetActiveLogin(account.accountId);
307
+ return {
308
+ connected: true,
309
+ message
310
+ };
311
+ }
312
+ return {
313
+ connected: false,
314
+ message: "Login ended without a connection."
315
+ };
316
+ }
317
+ }
318
+
319
+ //#endregion
320
+ export { startWebLoginWithQr, waitForWebLogin };