remoteclaw 0.1.0-next.9da39bb → 0.1.0-next.a520909
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.
- package/README.md +9 -7
- package/dist/accounts-Aqbb2_Fn.js +270 -0
- package/dist/accounts-CYi-JUU1.js +272 -0
- package/dist/accounts-CvHzFyp1.js +36 -0
- package/dist/accounts-D3fAPVzU.js +36 -0
- package/dist/accounts-DZmv4bXS.js +47 -0
- package/dist/accounts-Dde0z8df.js +32 -0
- package/dist/accounts-yC-Ql9rZ.js +47 -0
- package/dist/ack-reactions-A3yH7WQs.js +446 -0
- package/dist/ack-reactions-BmvDPC0X.js +446 -0
- package/dist/acp-cli-0ejzjHiz.js +1318 -0
- package/dist/acp-cli-DKwteXSI.js +1324 -0
- package/dist/active-listener-DKYgax8D.js +37 -0
- package/dist/active-listener-K-gHEsyV.js +37 -0
- package/dist/agent-C1O-mqkc.js +703 -0
- package/dist/agent-CPeJcMLI.js +704 -0
- package/dist/agent-scope-BrDeaWWf.js +116 -0
- package/dist/agent-scope-CJW7vnF8.js +114 -0
- package/dist/agents-DpCbWS_c.js +760 -0
- package/dist/agents.config-Dg9ZQl-w.js +116 -0
- package/dist/agents.config-THRuzfs5.js +116 -0
- package/dist/audio-BZvgJdlv.js +43 -0
- package/dist/audio-preflight-C1_SFTZd.js +69 -0
- package/dist/audio-preflight-DwttDOap.js +64 -0
- package/dist/audit-CgunyqhP.js +3149 -0
- package/dist/audit-DBBKLDV-.js +3149 -0
- package/dist/auth-BYtRHj--.js +448 -0
- package/dist/auth-Ba7IJY3s.js +184 -0
- package/dist/auth-CpwOkSrK.js +185 -0
- package/dist/auth-DQBj_DA7.js +448 -0
- package/dist/banner-C_AZlY8U.js +294 -0
- package/dist/binaries-DPlY0cvi.js +13 -0
- package/dist/bindings-Cr-mXPiq.js +69 -0
- package/dist/bindings-Dr0bGRst.js +69 -0
- package/dist/bonjour-discovery-BKHQWWQn.js +378 -0
- package/dist/bonjour-discovery-D4g8uh38.js +378 -0
- package/dist/boot/handler.js +18 -18
- package/dist/browser-cli-BqpP9AxB.js +1689 -0
- package/dist/browser-cli-CxnroXxe.js +1694 -0
- package/dist/build-info.json +3 -3
- package/dist/call-Bb0kRxlD.js +2826 -0
- package/dist/call-CBReCUTO.js +2825 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/catalog-CMicVL2I.js +185 -0
- package/dist/catalog-CTjf0roq.js +185 -0
- package/dist/channel-account-context-5hI72gYX.js +550 -0
- package/dist/channel-account-context-rFlv9fcH.js +550 -0
- package/dist/channel-activity-C1EIGNu1.js +94 -0
- package/dist/channel-activity-CEM5YJQs.js +94 -0
- package/dist/channel-activity-hL4KZrCz.js +292 -0
- package/dist/channel-options-B-ChqTtf.js +32 -0
- package/dist/channel-options-By8lOnVN.js +33 -0
- package/dist/channel-selection-ByShtuhp.js +51 -0
- package/dist/channel-selection-DRNp47md.js +51 -0
- package/dist/channel-web-BTyaH8lM.js +2136 -0
- package/dist/channel-web-DoMblOzA.js +2134 -0
- package/dist/channels-cli-7VU4wWX1.js +1428 -0
- package/dist/channels-cli-CKEVGfTJ.js +1423 -0
- package/dist/channels-status-issues-C-aMtk-n.js +18 -0
- package/dist/channels-status-issues-Pz2omjVp.js +18 -0
- package/dist/chat-envelope-CY1yvCc-.js +248 -0
- package/dist/chrome-CnQU46kX.js +1733 -0
- package/dist/chrome-DNikl4VQ.js +1732 -0
- package/dist/chunk-B7Qk7ACV.js +341 -0
- package/dist/chunk-C2vxqDKb.js +341 -0
- package/dist/clack-prompter-DxWF9EMV.js +122 -0
- package/dist/clack-prompter-UsUyNqRE.js +121 -0
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-C91FmBni.js +132 -0
- package/dist/cli-KvLwk0BU.js +127 -0
- package/dist/clipboard-DrMbwy6W.js +31 -0
- package/dist/clipboard-DuI4jJgy.js +31 -0
- package/dist/command-format-5Mm4OX03.js +32 -0
- package/dist/command-format-LFmgWzKJ.js +18 -0
- package/dist/command-logger/handler.js +1 -1
- package/dist/command-registry-cuc3AD6k.js +215 -0
- package/dist/commands-BSutwoQ9.js +41 -0
- package/dist/commands-CuX98AIv.js +41 -0
- package/dist/commands-registry-D8LoaUeU.js +892 -0
- package/dist/commands-registry-datKw4NJ.js +891 -0
- package/dist/common-0pVkAEMe.js +156 -0
- package/dist/common-nSRorWd3.js +156 -0
- package/dist/completion-cli-BCMpEmDA.js +452 -0
- package/dist/completion-cli-C_aI_QGt.js +452 -0
- package/dist/config-CSkWl_q0.js +4225 -0
- package/dist/config-Z5vhysno.js +4223 -0
- package/dist/config-cli-CJI4KjNf.js +243 -0
- package/dist/config-cli-XNsCJwwc.js +248 -0
- package/dist/config-guard-D2pPfuWT.js +75 -0
- package/dist/config-guard-DSMdtqh5.js +99 -0
- package/dist/config-validation-B_f7GMXB.js +18 -0
- package/dist/config-validation-Bgrd2M7q.js +18 -0
- package/dist/configure-BOxbQ-4T.js +891 -0
- package/dist/configure-DxNGqbyj.js +889 -0
- package/dist/control-auth-ByLWpGmj.js +397 -0
- package/dist/control-auth-CMgYC6bI.js +397 -0
- package/dist/control-ui/assets/index-DdiU_ccM.css +1 -0
- package/dist/control-ui/assets/index-kVUYi64u.js +7723 -0
- package/dist/control-ui/assets/index-kVUYi64u.js.map +1 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/control-ui-assets-Be7wYtPV.js +186 -0
- package/dist/control-ui-assets-x-FU54VZ.js +186 -0
- package/dist/conversation-label-CDH4rKMG.js +36 -0
- package/dist/conversation-label-tLwAlqLf.js +36 -0
- package/dist/cron-cli-BKWvF-lu.js +492 -0
- package/dist/cron-cli-Mr3vJ1xB.js +497 -0
- package/dist/daemon-cli-CojQV3ea.js +1199 -0
- package/dist/daemon-cli-oKDPLaH9.js +1197 -0
- package/dist/daemon-cli.js +14 -7
- package/dist/daemon-install-BTH9Hr-r.js +56 -0
- package/dist/daemon-install-CnUT0dtr.js +61 -0
- package/dist/daemon-install-helpers-C3AdCemv.js +463 -0
- package/dist/daemon-install-helpers-DsBl9bBo.js +463 -0
- package/dist/deliver-CiN6VwcX.js +481 -0
- package/dist/deliver-D07D18kt.js +481 -0
- package/dist/delivery-queue-CZOATijD.js +244 -0
- package/dist/devices-cli-Ce8Qh8gF.js +323 -0
- package/dist/devices-cli-DKgPivC_.js +318 -0
- package/dist/diagnostics-Bwm27ePU.js +46 -0
- package/dist/diagnostics-CIPDL1bH.js +46 -0
- package/dist/directory-cli-CV8H71eb.js +224 -0
- package/dist/directory-cli-Ck10mXCz.js +219 -0
- package/dist/dm-policy-shared-CUJow99p.js +22 -0
- package/dist/dm-policy-shared-cQeANZBI.js +22 -0
- package/dist/dns-cli-CRoAvkaQ.js +199 -0
- package/dist/dns-cli-U8TKnutF.js +204 -0
- package/dist/dock-CVCmU_Yv.js +929 -0
- package/dist/dock-Cj4PKiUh.js +928 -0
- package/dist/doctor-completion-CFjU8frU.js +92 -0
- package/dist/doctor-completion-CyskRvxi.js +92 -0
- package/dist/doctor-config-flow-B89ZE4Bk.js +1935 -0
- package/dist/doctor-config-flow-iPzjMVUg.js +1934 -0
- package/dist/enable-CqdyoDNA.js +59 -0
- package/dist/enable-DpHVKtoJ.js +59 -0
- package/dist/entry.js +1 -1
- package/dist/env-vars-CDr9IXFl.js +43 -0
- package/dist/env-vars-CLX_DBNR.js +43 -0
- package/dist/errors-24e316-U.js +35 -0
- package/dist/errors-CgC58q_F.js +35 -0
- package/dist/exec-D7Bp9Kzi.js +164 -0
- package/dist/exec-DLgyrvcf.js +164 -0
- package/dist/extensionAPI.js +973 -50
- package/dist/fetch-CYi6j9LI.js +67 -0
- package/dist/fetch-Cw0TofAa.js +67 -0
- package/dist/file-lock-CkrYG1r7.js +107 -0
- package/dist/file-lock-DFd595E7.js +107 -0
- package/dist/fs-safe-Du75CIw7.js +98 -0
- package/dist/gateway-cli-Dsw3SCed.js +23744 -0
- package/dist/gateway-cli-vZR4KOZx.js +23739 -0
- package/dist/gateway-rpc-BvuBt8PE.js +28 -0
- package/dist/gateway-rpc-DOvJNHyN.js +28 -0
- package/dist/gmail-setup-utils-CUTCdGWa.js +423 -0
- package/dist/gmail-setup-utils-uqZ7m5TH.js +422 -0
- package/dist/health-CL1_E2eW.js +1414 -0
- package/dist/health-kMbu8I7r.js +1417 -0
- package/dist/heartbeat-visibility-D-_ow3R6.js +125 -0
- package/dist/heartbeat-visibility-DSRIwAQL.js +125 -0
- package/dist/helpers-BPOeGmd1.js +10 -0
- package/dist/hook-runner-global-DVKhou29.js +527 -0
- package/dist/hooks-cli-SG7QnkZU.js +1224 -0
- package/dist/hooks-cli-zRxCCVyQ.js +1219 -0
- package/dist/image-ops-Brp1SxLh.js +354 -0
- package/dist/image-ops-kUTMt_X-.js +354 -0
- package/dist/import-B3HW2PM4.js +603 -0
- package/dist/import-iYFXP-vR.js +601 -0
- package/dist/inbound-context-BtA228jl.js +68 -0
- package/dist/inbound-context-CXKhKQz4.js +68 -0
- package/dist/inbound-path-policy-BurOAu44.js +90 -0
- package/dist/inbound-path-policy-Bv1SSBX0.js +90 -0
- package/dist/index.js +99 -97
- package/dist/inspect-BiW5KWS-.js +559 -0
- package/dist/inspect-DXr8ki5k.js +559 -0
- package/dist/installs-C83NIvWN.js +325 -0
- package/dist/installs-Cjh7Aon0.js +325 -0
- package/dist/ipv4-D1oXJaNu.js +46 -0
- package/dist/ipv4-D83xJ7X5.js +46 -0
- package/dist/ir-DSRvbFiq.js +940 -0
- package/dist/json-files-DW71C3QC.js +46 -0
- package/dist/loader-C7CUttUA.js +22404 -0
- package/dist/loader-D72oOvNf.js +22401 -0
- package/dist/local-roots-09zAPZxt.js +314 -0
- package/dist/local-roots-CJVCfYzc.js +313 -0
- package/dist/login-BASSFCd8.js +61 -0
- package/dist/login-Diwrffhg.js +62 -0
- package/dist/login-qr-D62uNqK8.js +324 -0
- package/dist/login-qr-DMz0a5fd.js +329 -0
- package/dist/logs-cli-DuAApWA1.js +240 -0
- package/dist/logs-cli-pJMLiP9o.js +235 -0
- package/dist/markdown-tables--ARiu9Y1.js +29 -0
- package/dist/markdown-tables-CMPFjRFj.js +29 -0
- package/dist/media-DyXncdbb.js +940 -0
- package/dist/media-DyiZapYY.js +10452 -0
- package/dist/message-action-names-Bp9jWNrL.js +2521 -0
- package/dist/message-action-names-D4mHW3G2.js +2521 -0
- package/dist/net-B7tLlwbU.js +225 -0
- package/dist/net-DE2kzvsY.js +225 -0
- package/dist/nodes-cli-B5tfhtaN.js +1350 -0
- package/dist/nodes-cli-BZcPlxC2.js +1345 -0
- package/dist/nodes-screen-BbGQN2wt.js +250 -0
- package/dist/nodes-screen-id-Bb6Id.js +250 -0
- package/dist/note-BzfrQZI0.js +92 -0
- package/dist/note-xaYg6Lfa.js +92 -0
- package/dist/npm-registry-spec-V7j5Uas_.js +786 -0
- package/dist/npm-registry-spec-ja6-spul.js +786 -0
- package/dist/npm-resolution-Bkj-i6Sw.js +86 -0
- package/dist/npm-resolution-Dr02XSFx.js +86 -0
- package/dist/onboard-C42P04mI.js +438 -0
- package/dist/onboard-CQIcxKby.js +436 -0
- package/dist/onboard-channels-B85JIv9E.js +2548 -0
- package/dist/onboard-channels-BkpAX1L8.js +2547 -0
- package/dist/onboard-helpers-CIpBCvz4.js +363 -0
- package/dist/onboard-helpers-Cg-F4znL.js +364 -0
- package/dist/onboard-remote-BwGjM-pE.js +127 -0
- package/dist/onboard-remote-MZP9zstQ.js +127 -0
- package/dist/onboarding-DqqL72_1.js +588 -0
- package/dist/onboarding-vANKjCt-.js +586 -0
- package/dist/onboarding.finalize-DEznVdII.js +400 -0
- package/dist/onboarding.finalize-Dz9UUF9y.js +403 -0
- package/dist/onboarding.gateway-config-DJ_h7Ldt.js +200 -0
- package/dist/onboarding.gateway-config-DRGjntje.js +193 -0
- package/dist/outbound-6vgCW1Bp.js +220 -0
- package/dist/outbound-B34AeKpd.js +221 -0
- package/dist/outbound-attachment-9eMFwFrm.js +18 -0
- package/dist/outbound-attachment-D2QJXHUK.js +18 -0
- package/dist/outbound-attachment-e72S5Wk3.js +18 -0
- package/dist/pairing-cli-DDYb9ulI.js +129 -0
- package/dist/pairing-cli-KUiTqdZ_.js +124 -0
- package/dist/pairing-labels-B3ymC59s.js +9 -0
- package/dist/pairing-labels-_ahX1Iwx.js +9 -0
- package/dist/pairing-store-DAdsH-_X.js +459 -0
- package/dist/pairing-store-hEFX87_3.js +460 -0
- package/dist/path-env-DvGXF1PK.js +89 -0
- package/dist/path-env-nhpk9bHU.js +89 -0
- package/dist/path-safety-Bm08v8w8.js +14 -0
- package/dist/plugin-auto-enable-B-ZbQJGk.js +301 -0
- package/dist/plugin-auto-enable-BlO7PQGZ.js +302 -0
- package/dist/plugin-registry--YpU7RN-.js +33 -0
- package/dist/plugin-registry-EFV5oG0E.js +33 -0
- package/dist/plugin-sdk/agents/agent-scope.d.ts +10 -0
- package/dist/plugin-sdk/auth/constants.d.ts +15 -0
- package/dist/plugin-sdk/auth/display.d.ts +7 -0
- package/dist/plugin-sdk/auth/doctor.d.ts +8 -0
- package/dist/plugin-sdk/auth/env-injection.d.ts +40 -0
- package/dist/plugin-sdk/auth/index.d.ts +8 -0
- package/dist/plugin-sdk/auth/oauth.d.ts +13 -0
- package/dist/plugin-sdk/auth/paths.d.ts +3 -0
- package/dist/plugin-sdk/auth/profiles.d.ts +10 -0
- package/dist/plugin-sdk/auth/provider-auth.d.ts +38 -0
- package/dist/plugin-sdk/auth/session-override.d.ts +17 -0
- package/dist/plugin-sdk/auth/store.d.ts +7 -0
- package/dist/plugin-sdk/auth/types.d.ts +25 -0
- package/dist/plugin-sdk/auto-reply/reply/directive-handling.auth.d.ts +1 -2
- package/dist/plugin-sdk/auto-reply/reply/directive-handling.persist.d.ts +0 -1
- package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-apply.d.ts +0 -1
- package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +0 -1
- package/dist/plugin-sdk/config/types.agent-defaults.d.ts +7 -0
- package/dist/plugin-sdk/config/types.agents.d.ts +8 -0
- package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +1 -0
- package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +3 -0
- package/dist/plugin-sdk/config/zod-schema.agents.d.ts +2 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +2 -0
- package/dist/plugin-sdk/index.js +65 -32
- package/dist/plugin-sdk/infra/agent-events.d.ts +1 -1
- package/dist/plugin-sdk/infra/provider-usage.auth.d.ts +0 -1
- package/dist/plugin-sdk/infra/provider-usage.load.d.ts +0 -1
- package/dist/plugin-sdk/middleware/auth-key-retry.d.ts +31 -0
- package/dist/plugin-sdk/middleware/error-classifier.d.ts +5 -0
- package/dist/plugin-sdk/middleware/media-resolver.d.ts +12 -0
- package/dist/plugin-sdk/middleware/runtimes/codex.d.ts +1 -0
- package/dist/plugin-sdk/middleware/runtimes/opencode.d.ts +1 -0
- package/dist/plugin-sdk/middleware/types.d.ts +37 -1
- package/dist/plugin-sdk/plugins/types.d.ts +1 -1
- package/dist/plugins-7B167wIj.js +453 -0
- package/dist/plugins-C3RTS5Jy.js +455 -0
- package/dist/plugins-cli-Dd9iTYxD.js +800 -0
- package/dist/plugins-cli-DsDNYnge.js +795 -0
- package/dist/ports-B_lYgIyN.js +316 -0
- package/dist/ports-BrGekhfF.js +96 -0
- package/dist/ports-CU98RMVJ.js +96 -0
- package/dist/ports-C_5EshUM.js +370 -0
- package/dist/program-C4ywZzus.js +246 -0
- package/dist/program-context-AOt5NtCL.js +474 -0
- package/dist/prompt-select-styled-CHxhmGev.js +1647 -0
- package/dist/prompt-select-styled-sXw6u-Z5.js +1650 -0
- package/dist/provider-dispatcher-BArXnq4g.js +660 -0
- package/dist/provider-dispatcher-BMwa54Mb.js +659 -0
- package/dist/push-apns-EUvNahMw.js +713 -0
- package/dist/push-apns-xD9poCq1.js +711 -0
- package/dist/pw-ai-CQ_ErGyT.js +1908 -0
- package/dist/pw-ai-DmTYkP_M.js +1912 -0
- package/dist/qr-cli-CserVCUj.js +349 -0
- package/dist/qr-cli-dSY8Jcjr.js +354 -0
- package/dist/redact-snapshot-C4RWjjs9.js +2016 -0
- package/dist/redact-snapshot-aZAJCPqx.js +2016 -0
- package/dist/register.agent-CZZ-bSk3.js +1017 -0
- package/dist/register.agent-fPq_oTsV.js +288 -0
- package/dist/register.configure-BCJDpn73.js +132 -0
- package/dist/register.configure-D5WGaU9P.js +126 -0
- package/dist/register.import-CHY1Yjox.js +29 -0
- package/dist/register.import-XQ0kdycy.js +32 -0
- package/dist/register.maintenance-B-e0GaNG.js +496 -0
- package/dist/register.maintenance-DDjkk-_Z.js +499 -0
- package/dist/register.message-1nDaSCjP.js +683 -0
- package/dist/register.message-C-VDdB-b.js +688 -0
- package/dist/register.onboard-CE3YcsZz.js +264 -0
- package/dist/register.onboard-CF_Bij5T.js +259 -0
- package/dist/register.setup-C709IpXW.js +116 -0
- package/dist/register.setup-Ctj3f6qf.js +111 -0
- package/dist/register.status-health-sessions-lDNmrR-q.js +666 -0
- package/dist/register.status-health-sessions-qLDF070z.js +425 -0
- package/dist/register.subclis-BhRsU6GF.js +267 -0
- package/dist/replies-10JzBkPW.js +136 -0
- package/dist/replies-BQusKLeB.js +136 -0
- package/dist/reply-C1Yh7MHD.js +13686 -0
- package/dist/reply-C4xpfmyb.js +13683 -0
- package/dist/reply-directives-8s8hoVAG.js +182 -0
- package/dist/reply-directives-CmPgo60i.js +182 -0
- package/dist/reply-payloads-NlHsO4JU.js +527 -0
- package/dist/reply-prefix-Bto_wLwa.js +37 -0
- package/dist/reply-prefix-Dej_5SDE.js +37 -0
- package/dist/resolve-route-CKycdke1.js +249 -0
- package/dist/resolve-route-DlJHHITX.js +249 -0
- package/dist/response-prefix-template-CBr9RICF.js +134 -0
- package/dist/response-prefix-template-SN9HSK00.js +134 -0
- package/dist/retry-BMUvSHT-.js +77 -0
- package/dist/run-main-DBRmQMfw.js +304 -0
- package/dist/runner-CBiNPi0D.js +2289 -0
- package/dist/runner-DFKlLh-o.js +2289 -0
- package/dist/secure-random-B22q_Bpm.js +44 -0
- package/dist/security-cli-BM8cMWWc.js +480 -0
- package/dist/security-cli-D58eTZNc.js +486 -0
- package/dist/send-2UWyzHA4.js +492 -0
- package/dist/send-B7SJfFVR.js +11 -0
- package/dist/send-BD7xe6fW.js +2245 -0
- package/dist/send-BPZSuv8R.js +547 -0
- package/dist/send-BdbDK7Gm.js +1776 -0
- package/dist/send-C0a60RHn.js +349 -0
- package/dist/send-CVy5b1Z3.js +349 -0
- package/dist/send-CYI3ZSbp.js +29 -0
- package/dist/send-D64qEY1N.js +1779 -0
- package/dist/send-DHQ_PjNs.js +492 -0
- package/dist/send-DZR-_UV3.js +547 -0
- package/dist/send-DbkjaWxS.js +1174 -0
- package/dist/send-FePh9AL3.js +426 -0
- package/dist/send-Tc6nYSJQ.js +2245 -0
- package/dist/send-WsTzM5wz.js +332 -0
- package/dist/send-t33E5qpm.js +374 -0
- package/dist/server-B1KDlN4a.js +207 -0
- package/dist/server-BBFfC210.js +202 -0
- package/dist/server-lifecycle-C_kkMdO7.js +2437 -0
- package/dist/server-lifecycle-_gBPCxJ8.js +2437 -0
- package/dist/server-node-events-Cbd9imEv.js +391 -0
- package/dist/server-node-events-CuRLxyQX.js +396 -0
- package/dist/service-DZNs7x-w.js +670 -0
- package/dist/service-r8kPiYnQ.js +670 -0
- package/dist/session-DkLYlMBm.js +170 -0
- package/dist/session-assFIC3H.js +170 -0
- package/dist/session-cost-usage-Dtm3t6lF.js +627 -0
- package/dist/session-cost-usage-bMbCS0Yv.js +627 -0
- package/dist/session-dirs-C81oNyFN.js +947 -0
- package/dist/session-dirs-D0KbSK3q.js +947 -0
- package/dist/session-key-BF-9YzxC.js +235 -0
- package/dist/session-utils-BVFN0nL4.js +622 -0
- package/dist/session-utils-ZhX2v-OC.js +622 -0
- package/dist/sessions-3glPunYr.js +2569 -0
- package/dist/sessions-CkGvMwES.js +247 -0
- package/dist/shell-env-CsV_IkJj.js +163 -0
- package/dist/shell-env-hZW9j-Uc.js +163 -0
- package/dist/ssrf-DC0zFdz4.js +183 -0
- package/dist/ssrf-UNL0fUGf.js +183 -0
- package/dist/status-DcJAJUYN.js +2065 -0
- package/dist/status-DmJYn9uZ.js +2061 -0
- package/dist/status.update-954Fhbjr.js +79 -0
- package/dist/status.update-B2umkV3j.js +79 -0
- package/dist/store-BSc6aGZT.js +2571 -0
- package/dist/store-BhG9XHsF.js +64 -0
- package/dist/store-C2dbfXzu.js +53 -0
- package/dist/store-CzdZLRld.js +64 -0
- package/dist/subagent-registry-BTOt-8bf.js +4854 -0
- package/dist/subagent-registry-DXNrwwc-.js +4856 -0
- package/dist/subsystem-SgROXN1v.js +1079 -0
- package/dist/system-cli-CfbMtTS9.js +77 -0
- package/dist/system-cli-DW4FugDt.js +72 -0
- package/dist/systemd-B_f-wDxc.js +547 -0
- package/dist/systemd-DXNd4qOC.js +547 -0
- package/dist/systemd-linger-1B4ULj46.js +75 -0
- package/dist/systemd-linger-BNoRZo8N.js +75 -0
- package/dist/tables-361UXJ4C.js +55 -0
- package/dist/tables-DK0bS_Of.js +55 -0
- package/dist/tables-DKUrXUwR.js +55 -0
- package/dist/tailnet-CB_Y1J-4.js +40 -0
- package/dist/tailnet-CIjiTkjf.js +40 -0
- package/dist/tailscale-CVH3JEAh.js +230 -0
- package/dist/tailscale-D9tfMGNs.js +230 -0
- package/dist/targets-B4rMyQFJ.js +53 -0
- package/dist/targets-BX9_lbJ2.js +220 -0
- package/dist/targets-Bin6ZHVb.js +2448 -0
- package/dist/targets-BzeP3ZHj.js +650 -0
- package/dist/targets-J5bYXG0v.js +2447 -0
- package/dist/targets-rdWlC6Y-.js +53 -0
- package/dist/targets-tDrl_ioQ.js +46 -0
- package/dist/targets-vYAaa-34.js +650 -0
- package/dist/tool-display-DPxFoqpo.js +785 -0
- package/dist/tool-display-Kb0G4otf.js +785 -0
- package/dist/tool-images-CmLjncli.js +263 -0
- package/dist/tool-images-DFd3tVJP.js +263 -0
- package/dist/trash-B5GquK_R.js +125 -0
- package/dist/trash-CmkALnFO.js +125 -0
- package/dist/tui-CHU9xO-P.js +3281 -0
- package/dist/tui-Df7blJ0Q.js +3281 -0
- package/dist/tui-cli-BqMhaS6e.js +65 -0
- package/dist/tui-cli-DEys5XyC.js +60 -0
- package/dist/update-Bemi0zlX.js +349 -0
- package/dist/update-CHtOiEVf.js +349 -0
- package/dist/update-cli-CnKZ1q-R.js +1372 -0
- package/dist/update-cli-qa0gF8DF.js +1375 -0
- package/dist/usage-Do64XdpO.js +5337 -0
- package/dist/version-3QUZW8EP.js +52 -0
- package/dist/version-Ba6dSSl9.js +52 -0
- package/dist/web-BFYbrl88.js +78 -0
- package/dist/web-DD8haiyR.js +72 -0
- package/dist/web-DzUnqw1q.js +3070 -0
- package/dist/webhooks-cli-CyTfI18g.js +330 -0
- package/dist/webhooks-cli-DW8P9jL_.js +335 -0
- package/dist/whatsapp-actions-CANxWPbG.js +130 -0
- package/dist/whatsapp-actions-DX_8e1lY.js +124 -0
- package/dist/workspace-BxtrYz-g.js +449 -0
- package/dist/workspace-QdYobHCO.js +447 -0
- package/dist/zod-schema-C1zZtGYm.js +2696 -0
- package/dist/zod-schema-CR7FaEW2.js +2696 -0
- package/package.json +1 -1
- package/dist/accounts-B5BNJ_lk.js +0 -36
- package/dist/accounts-BTXSfPWi.js +0 -270
- package/dist/accounts-BvXnQloJ.js +0 -32
- package/dist/accounts-BxGS70Do.js +0 -36
- package/dist/accounts-CNY1TGj1.js +0 -47
- package/dist/accounts-DOwpPNpJ.js +0 -47
- package/dist/accounts-Y6fBCsx_.js +0 -272
- package/dist/ack-reactions-BFKo3Koo.js +0 -446
- package/dist/ack-reactions-Dwyidw3T.js +0 -446
- package/dist/acp-cli-BCyjX4K5.js +0 -1316
- package/dist/acp-cli-aE-ffske.js +0 -1322
- package/dist/active-listener-COHBjEry.js +0 -37
- package/dist/active-listener-z0qVEcom.js +0 -37
- package/dist/agent-AIzSM1vK.js +0 -703
- package/dist/agent-CgX8kUig.js +0 -704
- package/dist/agent-scope-BDF8U7HM.js +0 -99
- package/dist/agent-scope-Dzc3Pxwr.js +0 -101
- package/dist/agents-DVBdkX-G.js +0 -788
- package/dist/agents.config-BgeMZRrc.js +0 -116
- package/dist/agents.config-SHo6gmD5.js +0 -116
- package/dist/audio-B_mzy948.js +0 -43
- package/dist/audio-preflight-BcEEwEC8.js +0 -69
- package/dist/audio-preflight-zKteixjl.js +0 -64
- package/dist/audit-BmJMYEgJ.js +0 -3149
- package/dist/audit-CRs3V3Gm.js +0 -3149
- package/dist/auth-BZ9W_93P.js +0 -448
- package/dist/auth-Deh9i9Eg.js +0 -448
- package/dist/auth-profiles-BquJGKLC.js +0 -279
- package/dist/auth-profiles-DJsaxEsz.js +0 -281
- package/dist/banner-W9C_U_lK.js +0 -294
- package/dist/binaries-DdAb_BxQ.js +0 -13
- package/dist/bindings-C6J0GYWO.js +0 -69
- package/dist/bindings-D0yqi_XP.js +0 -69
- package/dist/bonjour-discovery-DuhiIZZx.js +0 -378
- package/dist/bonjour-discovery-STZGcDQV.js +0 -378
- package/dist/browser-cli-BvaV-ivh.js +0 -1692
- package/dist/browser-cli-DE-ol_Wn.js +0 -1687
- package/dist/call-DStm6xNU.js +0 -2827
- package/dist/call-VMoa73XV.js +0 -2826
- package/dist/catalog-BVgiPlVN.js +0 -185
- package/dist/catalog-DhWKDMFJ.js +0 -185
- package/dist/channel-account-context-BlOGpmo5.js +0 -550
- package/dist/channel-account-context-CvIDAtHS.js +0 -550
- package/dist/channel-activity-BZtWpdKA.js +0 -292
- package/dist/channel-activity-Bb_Sbkt-.js +0 -94
- package/dist/channel-activity-DTKGf3j5.js +0 -94
- package/dist/channel-options-GJjALKXu.js +0 -32
- package/dist/channel-options-OcjVSFmE.js +0 -33
- package/dist/channel-selection-B5SqfNeA.js +0 -51
- package/dist/channel-selection-FwTh5pB-.js +0 -51
- package/dist/channel-web-BAXPDOsk.js +0 -2134
- package/dist/channel-web-BoPiMjGj.js +0 -2136
- package/dist/channels-cli-CIQlC5iz.js +0 -1421
- package/dist/channels-cli-MR1Snp4Y.js +0 -1426
- package/dist/channels-status-issues-DRBiGjad.js +0 -18
- package/dist/channels-status-issues-DxKE4Gv8.js +0 -18
- package/dist/chat-envelope-DEZ-5RY8.js +0 -248
- package/dist/chrome-BPS0qqQn.js +0 -1733
- package/dist/chrome-DrFJnK8A.js +0 -1732
- package/dist/chunk-CSQfUhgF.js +0 -341
- package/dist/chunk-DtPQ4ACP.js +0 -341
- package/dist/clack-prompter-CCFnKP_1.js +0 -121
- package/dist/clack-prompter-gcnWKHgT.js +0 -122
- package/dist/cli-D-Bz1t1R.js +0 -130
- package/dist/cli-DxIYdlMx.js +0 -125
- package/dist/clipboard-DyO56X0d.js +0 -31
- package/dist/clipboard-Dzkx6Q2K.js +0 -31
- package/dist/command-format-CVfo8I5f.js +0 -18
- package/dist/command-format-DgXcqxBt.js +0 -32
- package/dist/command-registry-B-ZqoIvL.js +0 -215
- package/dist/commands-CX-o6Gzn.js +0 -41
- package/dist/commands-ChY7s9hy.js +0 -41
- package/dist/commands-registry-C-NFTH7P.js +0 -891
- package/dist/commands-registry-C_sd8Lmg.js +0 -892
- package/dist/common-DSVmydhm.js +0 -156
- package/dist/common-XY1OwAbh.js +0 -156
- package/dist/completion-cli-BFZAm27l.js +0 -452
- package/dist/completion-cli-UVOmQ6zG.js +0 -452
- package/dist/config-BXKZbG-n.js +0 -6908
- package/dist/config-CtIjLqOj.js +0 -6906
- package/dist/config-cli-BTQy5H3-.js +0 -241
- package/dist/config-cli-CRplAGa2.js +0 -246
- package/dist/config-guard-B6oyGiZ9.js +0 -75
- package/dist/config-guard-C485TINq.js +0 -97
- package/dist/config-validation-BAktOB-P.js +0 -18
- package/dist/config-validation-BvZBGQog.js +0 -18
- package/dist/configure-BF69cahc.js +0 -891
- package/dist/configure-BSIKQq18.js +0 -889
- package/dist/control-auth-ByQ2UTJl.js +0 -397
- package/dist/control-auth-CSw3eEqF.js +0 -397
- package/dist/control-ui/assets/index-CuY3pfh1.js +0 -7716
- package/dist/control-ui/assets/index-CuY3pfh1.js.map +0 -1
- package/dist/control-ui/assets/index-D_fjkN3g.css +0 -1
- package/dist/control-ui-assets-Cx_mw4D0.js +0 -186
- package/dist/control-ui-assets-GJ4R_9nc.js +0 -186
- package/dist/conversation-label-C4SDz4sT.js +0 -36
- package/dist/conversation-label-D1frnvYe.js +0 -36
- package/dist/cron-cli-CZqe2JG5.js +0 -495
- package/dist/cron-cli-bjoM1LJG.js +0 -490
- package/dist/daemon-cli-C6yedkyX.js +0 -1199
- package/dist/daemon-cli-C7WWH6Ep.js +0 -1197
- package/dist/daemon-install-D_TMhoqo.js +0 -55
- package/dist/daemon-install-PDNZKHDV.js +0 -60
- package/dist/daemon-install-helpers-B3iDmuw1.js +0 -462
- package/dist/daemon-install-helpers-CWPt9X4V.js +0 -462
- package/dist/deliver-BQagyoLa.js +0 -481
- package/dist/deliver-DjOzd2jc.js +0 -481
- package/dist/delivery-queue-CxVRi4tw.js +0 -244
- package/dist/devices-cli-DLrY-vXI.js +0 -321
- package/dist/devices-cli-a0bPBWE-.js +0 -316
- package/dist/diagnostics-CgSF6bdG.js +0 -46
- package/dist/diagnostics-pnhexb9O.js +0 -46
- package/dist/directory-cli-XQdcVHdI.js +0 -222
- package/dist/directory-cli-hp37Nspg.js +0 -217
- package/dist/dm-policy-shared-38ZSwYRy.js +0 -22
- package/dist/dm-policy-shared-BZRzLFhP.js +0 -22
- package/dist/dns-cli-D4vlN3bm.js +0 -197
- package/dist/dns-cli-_FTDx5xD.js +0 -202
- package/dist/dock-BtLbLczG.js +0 -928
- package/dist/dock-_qq4sBie.js +0 -929
- package/dist/doctor-completion-NWQY57nZ.js +0 -92
- package/dist/doctor-completion-Pc12ptB2.js +0 -92
- package/dist/doctor-config-flow-D3NAVY4u.js +0 -1934
- package/dist/doctor-config-flow-xcnm1Sg5.js +0 -1933
- package/dist/enable-CJBIf5Q9.js +0 -59
- package/dist/enable-ibNq4UWy.js +0 -59
- package/dist/env-vars-7aZqKPhk.js +0 -93
- package/dist/env-vars-CLGbxdpL.js +0 -93
- package/dist/errors-BpAidYqH.js +0 -35
- package/dist/errors-DZ199hOo.js +0 -35
- package/dist/exec-D6PvFXKb.js +0 -164
- package/dist/exec-DkFE7lqU.js +0 -164
- package/dist/fetch-1v6uP2tC.js +0 -67
- package/dist/fetch-Du9BJ20J.js +0 -67
- package/dist/file-lock-CIvloidc.js +0 -107
- package/dist/file-lock-CzBL_VIx.js +0 -107
- package/dist/fs-safe-DkBhNAc3.js +0 -98
- package/dist/gateway-cli-DK60ibmy.js +0 -23723
- package/dist/gateway-cli-xnU8Zeob.js +0 -23728
- package/dist/gateway-rpc-b8DDxKNk.js +0 -28
- package/dist/gateway-rpc-lloSJpSO.js +0 -28
- package/dist/gmail-setup-utils-Cnx8A5pW.js +0 -422
- package/dist/gmail-setup-utils-DcvTRsFv.js +0 -423
- package/dist/health-CBn9k6sb.js +0 -1413
- package/dist/health-DvHxqlAs.js +0 -1416
- package/dist/heartbeat-visibility-BjRX-UuR.js +0 -125
- package/dist/heartbeat-visibility-DZoDleYM.js +0 -125
- package/dist/helpers-R7bU5IBz.js +0 -10
- package/dist/hook-runner-global-DVQOzWKP.js +0 -527
- package/dist/hooks-cli-BhK-Q2mO.js +0 -1222
- package/dist/hooks-cli-DdFgfE3a.js +0 -1217
- package/dist/image-ops-DBBLmYIV.js +0 -354
- package/dist/image-ops-DWytvdh_.js +0 -354
- package/dist/import-B6Xn6yAg.js +0 -248
- package/dist/import-D2W4jaSE.js +0 -250
- package/dist/inbound-context-CPkkQW0i.js +0 -68
- package/dist/inbound-context-D94rw0Oq.js +0 -68
- package/dist/inbound-path-policy-gHabNHWN.js +0 -250
- package/dist/inbound-path-policy-sdr5Ji0k.js +0 -250
- package/dist/inspect-BAPmGK9E.js +0 -559
- package/dist/inspect-Cm2C9Ogh.js +0 -559
- package/dist/installs-BCAutccF.js +0 -325
- package/dist/installs-D1q4YUri.js +0 -325
- package/dist/ipv4--2WXMVtE.js +0 -46
- package/dist/ipv4-CDQpx1A7.js +0 -46
- package/dist/ir-BpaWuxJC.js +0 -940
- package/dist/json-files-DzpTak5i.js +0 -46
- package/dist/loader-D8Fp-_-g.js +0 -22403
- package/dist/loader-DMtv1-eP.js +0 -22400
- package/dist/local-roots-CWQNmgUt.js +0 -313
- package/dist/local-roots-DJo8GN9l.js +0 -314
- package/dist/login-BLWuoXgk.js +0 -61
- package/dist/login-DcLXhiXp.js +0 -62
- package/dist/login-qr-B7xqVGLa.js +0 -327
- package/dist/login-qr-CHX7SBSI.js +0 -322
- package/dist/logs-cli-Be_gsxmt.js +0 -233
- package/dist/logs-cli-DDXsLG4-.js +0 -238
- package/dist/markdown-tables-42YE9A_H.js +0 -29
- package/dist/markdown-tables-Bry8gXRC.js +0 -29
- package/dist/media-BeBx3iHu.js +0 -10444
- package/dist/media-DNm8s1nv.js +0 -940
- package/dist/message-action-names-BiJJY8F4.js +0 -2521
- package/dist/message-action-names-BxTBtpYU.js +0 -2521
- package/dist/net-Cg8AQeke.js +0 -225
- package/dist/net-Dl7oQfqm.js +0 -225
- package/dist/nodes-cli-Dn27q6Li.js +0 -1343
- package/dist/nodes-cli-yCpAOWVc.js +0 -1348
- package/dist/nodes-screen-Bmp1l9wY.js +0 -250
- package/dist/nodes-screen-Cw7Hv7M2.js +0 -250
- package/dist/note-Dlv4NmlQ.js +0 -92
- package/dist/note-xRSpyX5s.js +0 -92
- package/dist/npm-registry-spec-BQzh4vvV.js +0 -786
- package/dist/npm-registry-spec-COvUzy5J.js +0 -786
- package/dist/npm-resolution-CV1VtDq6.js +0 -86
- package/dist/npm-resolution-DY50j4jB.js +0 -86
- package/dist/onboard-66sal4TH.js +0 -407
- package/dist/onboard-CRFWNh60.js +0 -405
- package/dist/onboard-channels-C1lJpRWd.js +0 -2548
- package/dist/onboard-channels-Cv-p_MDh.js +0 -2547
- package/dist/onboard-helpers-CSiK1DGB.js +0 -362
- package/dist/onboard-helpers-CfH4S4p-.js +0 -363
- package/dist/onboard-remote-Gb6uG0-e.js +0 -127
- package/dist/onboard-remote-Umk9b-4Z.js +0 -127
- package/dist/onboarding-BCVNKXZi.js +0 -532
- package/dist/onboarding-BYAmj_f_.js +0 -534
- package/dist/onboarding.finalize-B9Wj2G6v.js +0 -401
- package/dist/onboarding.finalize-XszRDMw9.js +0 -398
- package/dist/onboarding.gateway-config--b_-yoA6.js +0 -191
- package/dist/onboarding.gateway-config-D4H5Skqb.js +0 -198
- package/dist/outbound-0OjyS1ay.js +0 -220
- package/dist/outbound-DVyzk1hn.js +0 -221
- package/dist/outbound-attachment-CvF-d7SO.js +0 -18
- package/dist/outbound-attachment-H1yBQoS2.js +0 -18
- package/dist/outbound-attachment-rwH8tE_j.js +0 -18
- package/dist/pairing-cli-CoJZ8dTg.js +0 -122
- package/dist/pairing-cli-Ldq1VdFE.js +0 -127
- package/dist/pairing-labels-BEzEtY3m.js +0 -9
- package/dist/pairing-labels-DNY1LXbl.js +0 -9
- package/dist/pairing-store-DlhFf9Sd.js +0 -460
- package/dist/pairing-store-ePSWRBuX.js +0 -459
- package/dist/path-env-DdE_hfAk.js +0 -89
- package/dist/path-env-qRJbjJzj.js +0 -89
- package/dist/path-safety-juI2XbO1.js +0 -14
- package/dist/plugin-auto-enable-7lj3ONi8.js +0 -301
- package/dist/plugin-auto-enable-Cd9WE5kB.js +0 -302
- package/dist/plugin-registry-B9resZ4x.js +0 -33
- package/dist/plugin-registry-oufihHBl.js +0 -33
- package/dist/plugin-sdk/agents/agent-paths.d.ts +0 -1
- package/dist/plugin-sdk/agents/auth-profiles/constants.d.ts +0 -16
- package/dist/plugin-sdk/agents/auth-profiles/display.d.ts +0 -7
- package/dist/plugin-sdk/agents/auth-profiles/doctor.d.ts +0 -8
- package/dist/plugin-sdk/agents/auth-profiles/oauth.d.ts +0 -14
- package/dist/plugin-sdk/agents/auth-profiles/paths.d.ts +0 -4
- package/dist/plugin-sdk/agents/auth-profiles/profiles.d.ts +0 -12
- package/dist/plugin-sdk/agents/auth-profiles/session-override.d.ts +0 -18
- package/dist/plugin-sdk/agents/auth-profiles/store.d.ts +0 -10
- package/dist/plugin-sdk/agents/auth-profiles/types.d.ts +0 -13
- package/dist/plugin-sdk/agents/auth-profiles.d.ts +0 -8
- package/dist/plugin-sdk/agents/provider-auth.d.ts +0 -40
- package/dist/plugins-BtMu6L8i.js +0 -453
- package/dist/plugins-HyUNaoYP.js +0 -455
- package/dist/plugins-cli-DiSLhdtP.js +0 -798
- package/dist/plugins-cli-ZwfTL788.js +0 -793
- package/dist/ports-DmM4pHmC.js +0 -370
- package/dist/ports-NPqtlfp0.js +0 -316
- package/dist/ports-QMI4-F9m.js +0 -96
- package/dist/ports-nkccaDJy.js +0 -96
- package/dist/program-IV8xqENm.js +0 -244
- package/dist/program-context-CCQfPhMi.js +0 -474
- package/dist/prompt-select-styled-Dke0P6Lu.js +0 -1647
- package/dist/prompt-select-styled-iKOStqrD.js +0 -1650
- package/dist/provider-dispatcher-CN8WlGTX.js +0 -660
- package/dist/provider-dispatcher-DaNI6eMi.js +0 -659
- package/dist/push-apns-CHI8oGCz.js +0 -713
- package/dist/push-apns-DuG95AKC.js +0 -711
- package/dist/pw-ai-BCATW7oj.js +0 -1910
- package/dist/pw-ai-DuWJR2bD.js +0 -1906
- package/dist/qr-cli-BAbl97GR.js +0 -347
- package/dist/qr-cli-x6XLL1gs.js +0 -352
- package/dist/redact-snapshot-CYzH7d_A.js +0 -2016
- package/dist/redact-snapshot-DsVGs4aN.js +0 -2016
- package/dist/register.agent-CeceQfAP.js +0 -1043
- package/dist/register.agent-u1lNeFpV.js +0 -286
- package/dist/register.configure-AUH9J-JC.js +0 -124
- package/dist/register.configure-nSogUhv7.js +0 -130
- package/dist/register.import-BlsrD54G.js +0 -30
- package/dist/register.import-DdLGUSEK.js +0 -27
- package/dist/register.maintenance-CuLaszSR.js +0 -497
- package/dist/register.maintenance-DTyGossb.js +0 -494
- package/dist/register.message-BxezY8SV.js +0 -681
- package/dist/register.message-qrIalqDa.js +0 -686
- package/dist/register.onboard-CEAyr7D4.js +0 -257
- package/dist/register.onboard-CO0NFyXJ.js +0 -262
- package/dist/register.setup-CMRdfoDN.js +0 -109
- package/dist/register.setup-DWk6iVd_.js +0 -114
- package/dist/register.status-health-sessions-5pEWY3wf.js +0 -664
- package/dist/register.status-health-sessions-mMvRo8AQ.js +0 -423
- package/dist/register.subclis-9E3Ugk1T.js +0 -267
- package/dist/replies-jKtjhQ-s.js +0 -136
- package/dist/replies-pwJGu9Jo.js +0 -136
- package/dist/reply-BbHyKA6K.js +0 -13510
- package/dist/reply-DUQyOCMK.js +0 -13507
- package/dist/reply-directives-BdJZaTkb.js +0 -182
- package/dist/reply-directives-C6mKDSxU.js +0 -182
- package/dist/reply-payloads-B2kcd0dL.js +0 -527
- package/dist/reply-prefix-BDI1sLXA.js +0 -37
- package/dist/reply-prefix-SGmUA9cV.js +0 -37
- package/dist/resolve-route-BNRMZ0km.js +0 -249
- package/dist/resolve-route-CrSio4RY.js +0 -249
- package/dist/response-prefix-template-C0XvOOPH.js +0 -134
- package/dist/response-prefix-template-CA8pfT6v.js +0 -134
- package/dist/retry-bFj4k6Ii.js +0 -77
- package/dist/run-main-DPXDf7bs.js +0 -302
- package/dist/runner-B-FXPgK0.js +0 -2294
- package/dist/runner-BvtNyNts.js +0 -2294
- package/dist/secure-random-BJve6bb_.js +0 -44
- package/dist/security-cli-B_AEHvW8.js +0 -478
- package/dist/security-cli-h7bLwDzZ.js +0 -484
- package/dist/send-1XO1XSXO.js +0 -2245
- package/dist/send-8yz2-_HH.js +0 -1778
- package/dist/send-AlMsDde2.js +0 -349
- package/dist/send-B1iHZJdx.js +0 -374
- package/dist/send-B2JN7CQJ.js +0 -492
- package/dist/send-BHlgcDpz.js +0 -332
- package/dist/send-BNHQKlx7.js +0 -29
- package/dist/send-CGHEEbNo.js +0 -547
- package/dist/send-CGKCk8lN.js +0 -2245
- package/dist/send-CVf8xWQj.js +0 -492
- package/dist/send-Cf2gNkoT.js +0 -426
- package/dist/send-DJ0Zx-Ma.js +0 -547
- package/dist/send-DkTW0Swe.js +0 -1174
- package/dist/send-KFCtT3Z5.js +0 -349
- package/dist/send-mVVMFwmx.js +0 -11
- package/dist/send-rnY4Ef4N.js +0 -1775
- package/dist/server-DUElvT3m.js +0 -200
- package/dist/server-GtJ6JX-O.js +0 -205
- package/dist/server-lifecycle-B4d1rFOm.js +0 -2437
- package/dist/server-lifecycle-t_S9_eG-.js +0 -2437
- package/dist/server-node-events-C5OhVZlR.js +0 -394
- package/dist/server-node-events-Cu-NnHZa.js +0 -389
- package/dist/service-3Xcd2WIW.js +0 -670
- package/dist/service-BOIQUlgm.js +0 -670
- package/dist/session-DBL5nHDy.js +0 -170
- package/dist/session-DMl4z_Wj.js +0 -170
- package/dist/session-cost-usage-DES0ywek.js +0 -627
- package/dist/session-cost-usage-DX09eTPU.js +0 -627
- package/dist/session-dirs-CHjQfl7x.js +0 -947
- package/dist/session-dirs-DdF6TDsE.js +0 -947
- package/dist/session-utils-CpZCzfZc.js +0 -622
- package/dist/session-utils-R7nW6YZu.js +0 -622
- package/dist/sessions-B4ejSv2C.js +0 -247
- package/dist/sessions-BxAqEHHy.js +0 -2568
- package/dist/ssrf-Ck9HDZpv.js +0 -183
- package/dist/ssrf-m7kFIobZ.js +0 -183
- package/dist/status-Dlp6uU5L.js +0 -2065
- package/dist/status-lkm2lXHS.js +0 -2061
- package/dist/status.update-C55QM2xs.js +0 -79
- package/dist/status.update-DMfgnqeT.js +0 -79
- package/dist/store-BPZo49zT.js +0 -64
- package/dist/store-C_Dj8ASh.js +0 -53
- package/dist/store-qGKdk2ZD.js +0 -2570
- package/dist/store-v3P-OWhi.js +0 -64
- package/dist/subagent-registry-CpkkkUbU.js +0 -4855
- package/dist/subagent-registry-DzPNxhIk.js +0 -4853
- package/dist/subsystem-rxNDBm7l.js +0 -1079
- package/dist/system-cli-BZH8XgMa.js +0 -70
- package/dist/system-cli-B_HNwxrH.js +0 -75
- package/dist/systemd-DCwD8aqg.js +0 -547
- package/dist/systemd-eqdgvF51.js +0 -547
- package/dist/systemd-linger-CsQTTKKC.js +0 -75
- package/dist/systemd-linger-KG9RYSlH.js +0 -75
- package/dist/tables-6CkQRTJR.js +0 -55
- package/dist/tables-CamcS9gx.js +0 -55
- package/dist/tables-HN31BKCH.js +0 -55
- package/dist/tailnet-CEudzG0i.js +0 -40
- package/dist/tailnet-wUV6epIk.js +0 -40
- package/dist/tailscale-Dbyahx0J.js +0 -230
- package/dist/tailscale-dtzyN0aT.js +0 -230
- package/dist/targets-BEON1rlZ.js +0 -650
- package/dist/targets-BXHW0zVC.js +0 -2245
- package/dist/targets-BlVk-r3Q.js +0 -220
- package/dist/targets-CYY3iBkV.js +0 -2244
- package/dist/targets-CcTME3bp.js +0 -46
- package/dist/targets-CmC5m7Ey.js +0 -53
- package/dist/targets-Cvzqesmd.js +0 -650
- package/dist/targets-IkURIBGL.js +0 -53
- package/dist/tool-display-B-nr7cSF.js +0 -785
- package/dist/tool-display-Br6mwaJc.js +0 -785
- package/dist/tool-images-C6LHSeSs.js +0 -263
- package/dist/tool-images-kloBqxqK.js +0 -263
- package/dist/trash-7yJovaAx.js +0 -125
- package/dist/trash-DPi0aCCQ.js +0 -125
- package/dist/tui-DK5-19m7.js +0 -3319
- package/dist/tui-cli-BuGYX7LC.js +0 -58
- package/dist/tui-cli-u_3fCMg-.js +0 -63
- package/dist/tui-gEa1FBSQ.js +0 -3319
- package/dist/update-COwDCdga.js +0 -349
- package/dist/update-NMU1foyo.js +0 -349
- package/dist/update-cli-B5gans2I.js +0 -1370
- package/dist/update-cli-sW0u7h-c.js +0 -1373
- package/dist/usage-CAM9Q3bX.js +0 -5248
- package/dist/web-BnhT_Tfr.js +0 -3063
- package/dist/web-CcocPSQX.js +0 -76
- package/dist/web-D5JAxqw3.js +0 -70
- package/dist/webhooks-cli-C3H1XPNG.js +0 -333
- package/dist/webhooks-cli-DqSPJMDG.js +0 -328
- package/dist/whatsapp-actions-CDqFo3GP.js +0 -128
- package/dist/whatsapp-actions-DNKQ1h0G.js +0 -122
- package/dist/workspace-C-QwN1zu.js +0 -449
- package/dist/workspace-CEBaVctV.js +0 -447
- /package/dist/{account-lookup-0KDSp5Mj.js → account-lookup-C0ndrpt-.js} +0 -0
- /package/dist/{account-lookup-zvANGr2x.js → account-lookup-R1ParPyR.js} +0 -0
- /package/dist/{agent-helpers-D83kfcF9.js → agent-helpers-Bzz_tiPK.js} +0 -0
- /package/dist/{agent-helpers-Dv4rPlt_.js → agent-helpers-D7NhvM9Z.js} +0 -0
- /package/dist/{api-BeQMq2iS.js → api-DSIfHPts.js} +0 -0
- /package/dist/{api-CxX8-gGz.js → api-DTwcrkBE.js} +0 -0
- /package/dist/{argv-Co-b9Zsc.js → argv-DW4MYBdJ.js} +0 -0
- /package/dist/{audio-DDvXRwh-.js → audio-CgwsD4uc.js} +0 -0
- /package/dist/{brew-DbSbN8sD.js → brew-CBsS-Vq1.js} +0 -0
- /package/dist/{brew-C4zKZsHX.js → brew-DJvEvRfG.js} +0 -0
- /package/dist/{chat-envelope-CRqgofiw.js → chat-envelope-CQkxqiAp.js} +0 -0
- /package/dist/{chat-type-CYPyHAj-.js → chat-type-BPBtOjer.js} +0 -0
- /package/dist/{chat-type-DKb2TlGZ.js → chat-type-CH3W-zKy.js} +0 -0
- /package/dist/{cleanup-utils-o2MM9xyf.js → cleanup-utils-yPa4b4YC.js} +0 -0
- /package/dist/{cleanup-utils-CwQvD73q.js → cleanup-utils-zWAqOnW8.js} +0 -0
- /package/dist/{cli-name-BicfmwQX.js → cli-name-3MdfbvIR.js} +0 -0
- /package/dist/{cli-name-C6rJGl18.js → cli-name-CpSGz3mA.js} +0 -0
- /package/dist/{cli-utils-BhXbz2UF.js → cli-utils-DLQmX9d8.js} +0 -0
- /package/dist/{cli-utils-DZe_rVkZ.js → cli-utils-DVWIt9Ob.js} +0 -0
- /package/dist/{client-C61M8zI3.js → client-D5m46AuY.js} +0 -0
- /package/dist/{client-CwnX0nXo.js → client-Fi2k2G9Z.js} +0 -0
- /package/dist/{command-options-C4paWSGf.js → command-options-Eo_ESfC0.js} +0 -0
- /package/dist/{command-options-CA30lfLK.js → command-options-criepGrH.js} +0 -0
- /package/dist/{config-eval-CjGZtLwx.js → config-eval-DbGlbDlp.js} +0 -0
- /package/dist/{config-eval-H_wlEYIG.js → config-eval-Yxi-wJPE.js} +0 -0
- /package/dist/{constants-ChptG3d7.js → constants-BlFnttWm.js} +0 -0
- /package/dist/{constants-DQTT0rbk.js → constants-DNKY4Ei3.js} +0 -0
- /package/dist/{constants-DY6b-_Wl.js → constants-wpkIJk8U.js} +0 -0
- /package/dist/{credentials-BHWUBHMd.js → credentials-Bqu9Xdfz.js} +0 -0
- /package/dist/{credentials-C82aU5z-.js → credentials-DQ28n4lc.js} +0 -0
- /package/dist/{daemon-runtime-CvqE4ysg.js → daemon-runtime-aQhinwSL.js} +0 -0
- /package/dist/{dangerous-name-matching-BzmiLXmA.js → dangerous-name-matching-B4MRPcn-.js} +0 -0
- /package/dist/{dangerous-name-matching-DaVRgwer.js → dangerous-name-matching-UV0YfXlV.js} +0 -0
- /package/dist/{dangerous-tools-BOLoCRv4.js → dangerous-tools-BU0t3SUd.js} +0 -0
- /package/dist/{dangerous-tools-Baq7Q-i6.js → dangerous-tools-Ce1dELvv.js} +0 -0
- /package/dist/{delivery-queue-Cfa9Wmxp.js → delivery-queue-1d--YXgK.js} +0 -0
- /package/dist/{fetch-CEDsOiql.js → fetch-DNEsm4Ur.js} +0 -0
- /package/dist/{fetch-timeout-DTIN7CGM.js → fetch-timeout-jOIu9Xud.js} +0 -0
- /package/dist/{format-duration-CqUERz51.js → format-duration-DQ1Dl3YB.js} +0 -0
- /package/dist/{format-duration-Ct-yiwkS.js → format-duration-Oj8pTbYL.js} +0 -0
- /package/dist/{format-relative-C6kUHuOj.js → format-relative-8dpVUfzZ.js} +0 -0
- /package/dist/{format-relative-CxLpEQOX.js → format-relative-Cywx6ldk.js} +0 -0
- /package/dist/{health-format-Bygse7KA.js → health-format-DsqB_lOC.js} +0 -0
- /package/dist/{health-format-B_QRD8Si.js → health-format-FHquW42d.js} +0 -0
- /package/dist/{heartbeat-wake-LGEgcXjs.js → heartbeat-wake-AkM9ZRL2.js} +0 -0
- /package/dist/{help-format-NNm_Ov4H.js → help-format-Ca9FzlcN.js} +0 -0
- /package/dist/{help-format-sqWgYEdL.js → help-format-D-X9bY8s.js} +0 -0
- /package/dist/{helpers-BAsMXprO.js → helpers-703bXVlF.js} +0 -0
- /package/dist/{helpers-DLgbkcEn.js → helpers-CpIyUra4.js} +0 -0
- /package/dist/{helpers-CN0aEvFf.js → helpers-D1ViXWK0.js} +0 -0
- /package/dist/{host-env-security-szwfmhC4.js → host-env-security-CbiODGvQ.js} +0 -0
- /package/dist/{input-provenance-BDPOaXFk.js → input-provenance-BgfeDgck.js} +0 -0
- /package/dist/{input-provenance-xUsSMOsz.js → input-provenance-duDehu0D.js} +0 -0
- /package/dist/{ip-C9q3Oq20.js → ip-kVgrMfw-.js} +0 -0
- /package/dist/{ip-D0zgNmBV.js → ip-o-YLqTzQ.js} +0 -0
- /package/dist/{is-main-DN8-sNR5.js → is-main-BE1Jih91.js} +0 -0
- /package/dist/{json-file-ChO_R9yh.js → json-file-DNead8D_.js} +0 -0
- /package/dist/{json-file-B7l5-Xhr.js → json-file-DY96R8LK.js} +0 -0
- /package/dist/{json-files-Ct2lDInr.js → json-files-CjOU2Hds.js} +0 -0
- /package/dist/{lanes-DKkroN9D.js → lanes-3Hy9dOzA.js} +0 -0
- /package/dist/{lanes-cHJ5arWg.js → lanes-BmSbfjW9.js} +0 -0
- /package/dist/{links-Cm43Vcft.js → links-CPYVK7l1.js} +0 -0
- /package/dist/{links-Bz4V7R_p.js → links-NSE5DGnq.js} +0 -0
- /package/dist/{location-DBWCGNLq.js → location-BUhzov-a.js} +0 -0
- /package/dist/{location-GbZ0bBRU.js → location-C8XO7UyG.js} +0 -0
- /package/dist/{logger-BiVcvOhw.js → logger-ANaZk_PW.js} +0 -0
- /package/dist/{logger-DyL5G2DO.js → logger-DWcHNtdK.js} +0 -0
- /package/dist/{logger-BWMPnILd.js → logger-DsFoLpk4.js} +0 -0
- /package/dist/{logger-GvipVDfh.js → logger-n5cQNuVr.js} +0 -0
- /package/dist/{logging-D8-Kozjc.js → logging-BEw3xi9W.js} +0 -0
- /package/dist/{logging-D8R0sLY9.js → logging-DEDs-xX7.js} +0 -0
- /package/dist/{message-channel-uWMAiywE.js → message-channel-BHrK-j5D.js} +0 -0
- /package/dist/{mime-BS3jhcZE.js → mime-C4zhIbPz.js} +0 -0
- /package/dist/{mutable-allowlist-detectors-DiZDtmlZ.js → mutable-allowlist-detectors-DbdlW-cX.js} +0 -0
- /package/dist/{node-cli-Uf6lAntf.js → node-cli-BJEaXcTB.js} +0 -0
- /package/dist/{node-cli-DploXEZI.js → node-cli-BcYDUwDf.js} +0 -0
- /package/dist/{onboard-config-CLLvYuqo.js → onboard-config-BeFaSbOY.js} +0 -0
- /package/dist/{onboard-config-CM9pKGnR.js → onboard-config-x054Cod3.js} +0 -0
- /package/dist/{parse-log-line-enq8pduH.js → parse-log-line-DTl9swsB.js} +0 -0
- /package/dist/{parse-log-line-mz9TG6ig.js → parse-log-line-LEXRMnqc.js} +0 -0
- /package/dist/{parse-timeout-BMP8a0_a.js → parse-timeout-C7ggYYiO.js} +0 -0
- /package/dist/{parse-timeout-CDkco8kd.js → parse-timeout-o1QTe1VR.js} +0 -0
- /package/dist/{path-guards-CrQOUlsq.js → path-guards-lL3tZoxY.js} +0 -0
- /package/dist/{path-safety-DkT9RmTG.js → path-safety-CphcstYi.js} +0 -0
- /package/dist/plugin-sdk/{agents → auth}/api-key-rotation.d.ts +0 -0
- /package/dist/{plugins-allowlist-BbTQ5Z2k.js → plugins-allowlist-Cf3EjAjw.js} +0 -0
- /package/dist/{plugins-allowlist-C20oaESO.js → plugins-allowlist-Dml1TRY5.js} +0 -0
- /package/dist/{polls-B0CCBDeR.js → polls-DdY_LCOM.js} +0 -0
- /package/dist/{ports-lsof-Wteul3ju.js → ports-lsof-Dv4WDRbi.js} +0 -0
- /package/dist/{process-scoped-map-CV9kDvfG.js → process-scoped-map-C7KeadUK.js} +0 -0
- /package/dist/{process-scoped-map-PEvnG75N.js → process-scoped-map-CuVgan0a.js} +0 -0
- /package/dist/{program-context-jqeI5alP.js → program-context-Bqg7MHJh.js} +0 -0
- /package/dist/{progress-C1kUfYL-.js → progress-DSHP8RB4.js} +0 -0
- /package/dist/{progress-C248R1Az.js → progress-gsZJl831.js} +0 -0
- /package/dist/{prompt-Yn2yClg1.js → prompt-B2SgjtOJ.js} +0 -0
- /package/dist/{prompt-BVZVovoB.js → prompt-BXeXEH0o.js} +0 -0
- /package/dist/{prompt-style-D0LUnqXi.js → prompt-style-BzXtlA1Y.js} +0 -0
- /package/dist/{prompt-style-DjEYC_s-.js → prompt-style-D-ViRLW_.js} +0 -0
- /package/dist/{provider-utils-3JTMJroG.js → provider-utils-DiLhkKQp.js} +0 -0
- /package/dist/{proxy-DL3MD6-P.js → proxy-BUoQO1tr.js} +0 -0
- /package/dist/{proxy-DpNv2cSV.js → proxy-dRhp8Ykw.js} +0 -0
- /package/dist/{pw-ai-state-CGfLv6nV.js → pw-ai-state-Cg1RrEiW.js} +0 -0
- /package/dist/{pw-ai-state-Dynx20hr.js → pw-ai-state-DidjiYBK.js} +0 -0
- /package/dist/{redact-Dx1Fue21.js → redact-BlqmrEU3.js} +0 -0
- /package/dist/{redact-BsoXOV1y.js → redact-Cj9LoKIG.js} +0 -0
- /package/dist/{redact-identifier-CAagcfWA.js → redact-identifier-HyK89Sod.js} +0 -0
- /package/dist/{remoteclaw-root-C2HV2VeC.js → remoteclaw-root-CtzHY_u8.js} +0 -0
- /package/dist/{remoteclaw-root-DybYl8PL.js → remoteclaw-root-bO85B6Kq.js} +0 -0
- /package/dist/{render-CCLsW6Lz.js → render-DrBfVs0u.js} +0 -0
- /package/dist/{retry-BbVJvOUo.js → retry-B19gMxS7.js} +0 -0
- /package/dist/{retry-DnqPAqWp.js → retry-CByUYDAZ.js} +0 -0
- /package/dist/{runtime-guard-CTl7OnCR.js → runtime-guard-BMa-MbRw.js} +0 -0
- /package/dist/{runtime-guard-U-ewY_QH.js → runtime-guard-D-cp6ZAE.js} +0 -0
- /package/dist/{secret-equal-CXJEZiWb.js → secret-equal-CF39pFqv.js} +0 -0
- /package/dist/{secret-equal-DgjJcvjv.js → secret-equal-D7A3Bol7.js} +0 -0
- /package/dist/{secure-random-CS2mSdTn.js → secure-random-BOP0UuZY.js} +0 -0
- /package/dist/{stagger-BXv_apuy.js → stagger-CjeisVRF.js} +0 -0
- /package/dist/{stagger-MI9gd2rQ.js → stagger-Cu9_3JD_.js} +0 -0
- /package/dist/{status-BmtCS3T1.js → status-DaSGMHlt.js} +0 -0
- /package/dist/{status-BrwHRn2B.js → status-bTdQW3Mt.js} +0 -0
- /package/dist/{strip-inbound-meta-B21Qdh8I.js → strip-inbound-meta-0cvL6itU.js} +0 -0
- /package/dist/{strip-inbound-meta-DjKcSFaW.js → strip-inbound-meta-DuDjnGjC.js} +0 -0
- /package/dist/{table-CGS1Ml9r.js → table-CU9MUMy2.js} +0 -0
- /package/dist/{table-C1rdyYl9.js → table-iXOQchYB.js} +0 -0
- /package/dist/{target-errors-BDpPcwh5.js → target-errors-ChjvOMuV.js} +0 -0
- /package/dist/{targets-D-qLBpTA.js → targets-B_d_1z3N.js} +0 -0
- /package/dist/{targets-UncQvCVs.js → targets-BtGRUQMa.js} +0 -0
- /package/dist/{targets-D7PT_rdO.js → targets-CE4AYRI9.js} +0 -0
- /package/dist/{targets-JCISV-hS.js → targets-D3WkRcT8.js} +0 -0
- /package/dist/{targets-BMenhVHg.js → targets-D3r6Zgic.js} +0 -0
- /package/dist/{targets-DfXObWaL.js → targets-WSwPflb6.js} +0 -0
- /package/dist/{text-format-oWqzVmah.js → text-format-CahQpVRb.js} +0 -0
- /package/dist/{thinking-DeEBjYPc.js → thinking-dksVQLY3.js} +0 -0
- /package/dist/{tokens-qLtFu3nT.js → tokens-DAFBx5qr.js} +0 -0
- /package/dist/{tokens-B-jmvNR9.js → tokens-gcZ7MOvD.js} +0 -0
- /package/dist/{usage-BdhBT0Vz.js → usage-C1lHaofV.js} +0 -0
- /package/dist/{usage-sF5tij7A.js → usage-CRJFqYf8.js} +0 -0
- /package/dist/{usage-format-C3mNLfhI.js → usage-format-Bs8DkQtr.js} +0 -0
- /package/dist/{usage-format-C6Iz_Ws9.js → usage-format-CRVpDVj1.js} +0 -0
- /package/dist/{widearea-dns-CsmBVbez.js → widearea-dns-C5Fr8Rr1.js} +0 -0
- /package/dist/{widearea-dns-BXGCmXnD.js → widearea-dns-fETWNpyh.js} +0 -0
- /package/dist/{workspace-BzPeZDew.js → workspace-BIiYRjA3.js} +0 -0
- /package/dist/{wsl-BCnYV9O0.js → wsl-Cs-gowFJ.js} +0 -0
- /package/dist/{wsl-B_sPlzWw.js → wsl-mFuShVrc.js} +0 -0
package/README.md
CHANGED
|
@@ -173,13 +173,13 @@ Run `remoteclaw doctor` to surface risky/misconfigured DM policies.
|
|
|
173
173
|
- [Canvas](https://docs.remoteclaw.org/platforms/mac/canvas): [A2UI](https://docs.remoteclaw.org/platforms/mac/canvas#canvas-a2ui) push/reset, eval, snapshot.
|
|
174
174
|
- [Nodes](https://docs.remoteclaw.org/nodes): camera snap/clip, screen record, [location.get](https://docs.remoteclaw.org/nodes/location-command), notifications.
|
|
175
175
|
- [Cron + wakeups](https://docs.remoteclaw.org/automation/cron-jobs); [webhooks](https://docs.remoteclaw.org/automation/webhook); [Gmail Pub/Sub](https://docs.remoteclaw.org/automation/gmail-pubsub).
|
|
176
|
-
- [Skills platform](https://docs.remoteclaw.org/tools/skills): bundled
|
|
176
|
+
- [Skills platform](https://docs.remoteclaw.org/tools/skills): bundled and workspace skills.
|
|
177
177
|
|
|
178
178
|
### Runtime + safety
|
|
179
179
|
|
|
180
180
|
- [Channel routing](https://docs.remoteclaw.org/channels/channel-routing), [retry policy](https://docs.remoteclaw.org/concepts/retry), and [streaming/chunking](https://docs.remoteclaw.org/concepts/streaming).
|
|
181
181
|
- [Presence](https://docs.remoteclaw.org/concepts/presence), [typing indicators](https://docs.remoteclaw.org/concepts/typing-indicators), and [usage tracking](https://docs.remoteclaw.org/concepts/usage-tracking).
|
|
182
|
-
- [
|
|
182
|
+
- [Session pruning](https://docs.remoteclaw.org/concepts/session-pruning).
|
|
183
183
|
- [Security](https://docs.remoteclaw.org/gateway/security) and [troubleshooting](https://docs.remoteclaw.org/channels/troubleshooting).
|
|
184
184
|
|
|
185
185
|
### Ops + packaging
|
|
@@ -255,7 +255,7 @@ The macOS app can run in **node mode** and advertises its capabilities + permiss
|
|
|
255
255
|
Elevated bash (host permissions) is separate from macOS TCC:
|
|
256
256
|
|
|
257
257
|
- Use `/elevated on|off` to toggle per‑session elevated access when enabled + allowlisted.
|
|
258
|
-
- Gateway persists the per‑session toggle via `sessions.patch` (WS method) alongside `verboseLevel`, `
|
|
258
|
+
- Gateway persists the per‑session toggle via `sessions.patch` (WS method) alongside `verboseLevel`, `sendPolicy`, and `groupActivation`.
|
|
259
259
|
|
|
260
260
|
Details: [Nodes](https://docs.remoteclaw.org/nodes) · [macOS app](https://docs.remoteclaw.org/platforms/macos) · [Gateway protocol](https://docs.remoteclaw.org/concepts/architecture)
|
|
261
261
|
|
|
@@ -275,7 +275,7 @@ Send these in WhatsApp/Telegram/Slack/Google Chat/Microsoft Teams/WebChat (group
|
|
|
275
275
|
- `/status` — compact session status (model + tokens, cost when available)
|
|
276
276
|
- `/new` or `/reset` — reset the session
|
|
277
277
|
- `/compact` — compact session context (summary)
|
|
278
|
-
- `/think <level>` — off|minimal|low|medium|high|xhigh (
|
|
278
|
+
- `/think <level>` — off|minimal|low|medium|high|xhigh (runtimes that support extended thinking)
|
|
279
279
|
- `/verbose on|off`
|
|
280
280
|
- `/usage off|tokens|full` — per-response usage footer
|
|
281
281
|
- `/restart` — restart the gateway (owner-only in groups)
|
|
@@ -318,12 +318,14 @@ Runbook: [iOS connect](https://docs.remoteclaw.org/platforms/ios).
|
|
|
318
318
|
|
|
319
319
|
## Configuration
|
|
320
320
|
|
|
321
|
-
Minimal `~/.remoteclaw/remoteclaw.json
|
|
321
|
+
Minimal `~/.remoteclaw/remoteclaw.json`:
|
|
322
322
|
|
|
323
323
|
```json5
|
|
324
324
|
{
|
|
325
|
-
|
|
326
|
-
|
|
325
|
+
channels: {
|
|
326
|
+
telegram: {
|
|
327
|
+
botToken: "YOUR_BOT_TOKEN",
|
|
328
|
+
},
|
|
327
329
|
},
|
|
328
330
|
}
|
|
329
331
|
```
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { Kt as resolveOAuthDir, Z as jidToE164, _ as defaultRuntime, ft as info, rt as resolveUserPath, wt as getChildLogger, yt as success } from "./entry.js";
|
|
2
|
+
import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-BF-9YzxC.js";
|
|
3
|
+
import { t as resolveAccountEntry } from "./account-lookup-C0ndrpt-.js";
|
|
4
|
+
import { t as formatCliCommand } from "./command-format-LFmgWzKJ.js";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import fs from "node:fs";
|
|
7
|
+
import fsp from "node:fs/promises";
|
|
8
|
+
|
|
9
|
+
//#region src/channels/plugins/account-helpers.ts
|
|
10
|
+
function createAccountListHelpers(channelKey) {
|
|
11
|
+
function listConfiguredAccountIds(cfg) {
|
|
12
|
+
const accounts = (cfg.channels?.[channelKey])?.accounts;
|
|
13
|
+
if (!accounts || typeof accounts !== "object") return [];
|
|
14
|
+
return Object.keys(accounts).filter(Boolean);
|
|
15
|
+
}
|
|
16
|
+
function listAccountIds(cfg) {
|
|
17
|
+
const ids = listConfiguredAccountIds(cfg);
|
|
18
|
+
if (ids.length === 0) return [DEFAULT_ACCOUNT_ID];
|
|
19
|
+
return ids.toSorted((a, b) => a.localeCompare(b));
|
|
20
|
+
}
|
|
21
|
+
function resolveDefaultAccountId(cfg) {
|
|
22
|
+
const ids = listAccountIds(cfg);
|
|
23
|
+
if (ids.includes(DEFAULT_ACCOUNT_ID)) return DEFAULT_ACCOUNT_ID;
|
|
24
|
+
return ids[0] ?? DEFAULT_ACCOUNT_ID;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
listConfiguredAccountIds,
|
|
28
|
+
listAccountIds,
|
|
29
|
+
resolveDefaultAccountId
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/web/auth-store.ts
|
|
35
|
+
function resolveDefaultWebAuthDir() {
|
|
36
|
+
return path.join(resolveOAuthDir(), "whatsapp", DEFAULT_ACCOUNT_ID);
|
|
37
|
+
}
|
|
38
|
+
const WA_WEB_AUTH_DIR = resolveDefaultWebAuthDir();
|
|
39
|
+
function resolveWebCredsPath(authDir) {
|
|
40
|
+
return path.join(authDir, "creds.json");
|
|
41
|
+
}
|
|
42
|
+
function resolveWebCredsBackupPath(authDir) {
|
|
43
|
+
return path.join(authDir, "creds.json.bak");
|
|
44
|
+
}
|
|
45
|
+
function hasWebCredsSync(authDir) {
|
|
46
|
+
try {
|
|
47
|
+
const stats = fs.statSync(resolveWebCredsPath(authDir));
|
|
48
|
+
return stats.isFile() && stats.size > 1;
|
|
49
|
+
} catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function readCredsJsonRaw(filePath) {
|
|
54
|
+
try {
|
|
55
|
+
if (!fs.existsSync(filePath)) return null;
|
|
56
|
+
const stats = fs.statSync(filePath);
|
|
57
|
+
if (!stats.isFile() || stats.size <= 1) return null;
|
|
58
|
+
return fs.readFileSync(filePath, "utf-8");
|
|
59
|
+
} catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function maybeRestoreCredsFromBackup(authDir) {
|
|
64
|
+
const logger = getChildLogger({ module: "web-session" });
|
|
65
|
+
try {
|
|
66
|
+
const credsPath = resolveWebCredsPath(authDir);
|
|
67
|
+
const backupPath = resolveWebCredsBackupPath(authDir);
|
|
68
|
+
const raw = readCredsJsonRaw(credsPath);
|
|
69
|
+
if (raw) {
|
|
70
|
+
JSON.parse(raw);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const backupRaw = readCredsJsonRaw(backupPath);
|
|
74
|
+
if (!backupRaw) return;
|
|
75
|
+
JSON.parse(backupRaw);
|
|
76
|
+
fs.copyFileSync(backupPath, credsPath);
|
|
77
|
+
try {
|
|
78
|
+
fs.chmodSync(credsPath, 384);
|
|
79
|
+
} catch {}
|
|
80
|
+
logger.warn({ credsPath }, "restored corrupted WhatsApp creds.json from backup");
|
|
81
|
+
} catch {}
|
|
82
|
+
}
|
|
83
|
+
async function webAuthExists(authDir = resolveDefaultWebAuthDir()) {
|
|
84
|
+
const resolvedAuthDir = resolveUserPath(authDir);
|
|
85
|
+
maybeRestoreCredsFromBackup(resolvedAuthDir);
|
|
86
|
+
const credsPath = resolveWebCredsPath(resolvedAuthDir);
|
|
87
|
+
try {
|
|
88
|
+
await fsp.access(resolvedAuthDir);
|
|
89
|
+
} catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const stats = await fsp.stat(credsPath);
|
|
94
|
+
if (!stats.isFile() || stats.size <= 1) return false;
|
|
95
|
+
const raw = await fsp.readFile(credsPath, "utf-8");
|
|
96
|
+
JSON.parse(raw);
|
|
97
|
+
return true;
|
|
98
|
+
} catch {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async function clearLegacyBaileysAuthState(authDir) {
|
|
103
|
+
const entries = await fsp.readdir(authDir, { withFileTypes: true });
|
|
104
|
+
const shouldDelete = (name) => {
|
|
105
|
+
if (name === "oauth.json") return false;
|
|
106
|
+
if (name === "creds.json" || name === "creds.json.bak") return true;
|
|
107
|
+
if (!name.endsWith(".json")) return false;
|
|
108
|
+
return /^(app-state-sync|session|sender-key|pre-key)-/.test(name);
|
|
109
|
+
};
|
|
110
|
+
await Promise.all(entries.map(async (entry) => {
|
|
111
|
+
if (!entry.isFile()) return;
|
|
112
|
+
if (!shouldDelete(entry.name)) return;
|
|
113
|
+
await fsp.rm(path.join(authDir, entry.name), { force: true });
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
116
|
+
async function logoutWeb(params) {
|
|
117
|
+
const runtime = params.runtime ?? defaultRuntime;
|
|
118
|
+
const resolvedAuthDir = resolveUserPath(params.authDir ?? resolveDefaultWebAuthDir());
|
|
119
|
+
if (!await webAuthExists(resolvedAuthDir)) {
|
|
120
|
+
runtime.log(info("No WhatsApp Web session found; nothing to delete."));
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (params.isLegacyAuthDir) await clearLegacyBaileysAuthState(resolvedAuthDir);
|
|
124
|
+
else await fsp.rm(resolvedAuthDir, {
|
|
125
|
+
recursive: true,
|
|
126
|
+
force: true
|
|
127
|
+
});
|
|
128
|
+
runtime.log(success("Cleared WhatsApp Web credentials."));
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
|
|
132
|
+
try {
|
|
133
|
+
const credsPath = resolveWebCredsPath(resolveUserPath(authDir));
|
|
134
|
+
if (!fs.existsSync(credsPath)) return {
|
|
135
|
+
e164: null,
|
|
136
|
+
jid: null
|
|
137
|
+
};
|
|
138
|
+
const raw = fs.readFileSync(credsPath, "utf-8");
|
|
139
|
+
const jid = JSON.parse(raw)?.me?.id ?? null;
|
|
140
|
+
return {
|
|
141
|
+
e164: jid ? jidToE164(jid, { authDir }) : null,
|
|
142
|
+
jid
|
|
143
|
+
};
|
|
144
|
+
} catch {
|
|
145
|
+
return {
|
|
146
|
+
e164: null,
|
|
147
|
+
jid: null
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Return the age (in milliseconds) of the cached WhatsApp web auth state, or null when missing.
|
|
153
|
+
* Helpful for heartbeats/observability to spot stale credentials.
|
|
154
|
+
*/
|
|
155
|
+
function getWebAuthAgeMs(authDir = resolveDefaultWebAuthDir()) {
|
|
156
|
+
try {
|
|
157
|
+
const stats = fs.statSync(resolveWebCredsPath(resolveUserPath(authDir)));
|
|
158
|
+
return Date.now() - stats.mtimeMs;
|
|
159
|
+
} catch {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function logWebSelfId(authDir = resolveDefaultWebAuthDir(), runtime = defaultRuntime, includeChannelPrefix = false) {
|
|
164
|
+
const { e164, jid } = readWebSelfId(authDir);
|
|
165
|
+
const details = e164 || jid ? `${e164 ?? "unknown"}${jid ? ` (jid ${jid})` : ""}` : "unknown";
|
|
166
|
+
const prefix = includeChannelPrefix ? "Web Channel: " : "";
|
|
167
|
+
runtime.log(info(`${prefix}${details}`));
|
|
168
|
+
}
|
|
169
|
+
async function pickWebChannel(pref, authDir = resolveDefaultWebAuthDir()) {
|
|
170
|
+
const choice = pref === "auto" ? "web" : pref;
|
|
171
|
+
if (!await webAuthExists(authDir)) throw new Error(`No WhatsApp Web session found. Run \`${formatCliCommand("remoteclaw channels login --channel whatsapp --verbose")}\` to link.`);
|
|
172
|
+
return choice;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
//#endregion
|
|
176
|
+
//#region src/web/accounts.ts
|
|
177
|
+
const { listConfiguredAccountIds, listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("whatsapp");
|
|
178
|
+
const listWhatsAppAccountIds = listAccountIds;
|
|
179
|
+
const resolveDefaultWhatsAppAccountId = resolveDefaultAccountId;
|
|
180
|
+
function listWhatsAppAuthDirs(cfg) {
|
|
181
|
+
const oauthDir = resolveOAuthDir();
|
|
182
|
+
const whatsappDir = path.join(oauthDir, "whatsapp");
|
|
183
|
+
const authDirs = new Set([oauthDir, path.join(whatsappDir, DEFAULT_ACCOUNT_ID)]);
|
|
184
|
+
const accountIds = listConfiguredAccountIds(cfg);
|
|
185
|
+
for (const accountId of accountIds) authDirs.add(resolveWhatsAppAuthDir({
|
|
186
|
+
cfg,
|
|
187
|
+
accountId
|
|
188
|
+
}).authDir);
|
|
189
|
+
try {
|
|
190
|
+
const entries = fs.readdirSync(whatsappDir, { withFileTypes: true });
|
|
191
|
+
for (const entry of entries) {
|
|
192
|
+
if (!entry.isDirectory()) continue;
|
|
193
|
+
authDirs.add(path.join(whatsappDir, entry.name));
|
|
194
|
+
}
|
|
195
|
+
} catch {}
|
|
196
|
+
return Array.from(authDirs);
|
|
197
|
+
}
|
|
198
|
+
function hasAnyWhatsAppAuth(cfg) {
|
|
199
|
+
return listWhatsAppAuthDirs(cfg).some((authDir) => hasWebCredsSync(authDir));
|
|
200
|
+
}
|
|
201
|
+
function resolveAccountConfig(cfg, accountId) {
|
|
202
|
+
return resolveAccountEntry(cfg.channels?.whatsapp?.accounts, accountId);
|
|
203
|
+
}
|
|
204
|
+
function resolveDefaultAuthDir(accountId) {
|
|
205
|
+
return path.join(resolveOAuthDir(), "whatsapp", normalizeAccountId(accountId));
|
|
206
|
+
}
|
|
207
|
+
function resolveLegacyAuthDir() {
|
|
208
|
+
return resolveOAuthDir();
|
|
209
|
+
}
|
|
210
|
+
function legacyAuthExists(authDir) {
|
|
211
|
+
try {
|
|
212
|
+
return fs.existsSync(path.join(authDir, "creds.json"));
|
|
213
|
+
} catch {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function resolveWhatsAppAuthDir(params) {
|
|
218
|
+
const accountId = params.accountId.trim() || DEFAULT_ACCOUNT_ID;
|
|
219
|
+
const configured = resolveAccountConfig(params.cfg, accountId)?.authDir?.trim();
|
|
220
|
+
if (configured) return {
|
|
221
|
+
authDir: resolveUserPath(configured),
|
|
222
|
+
isLegacy: false
|
|
223
|
+
};
|
|
224
|
+
const defaultDir = resolveDefaultAuthDir(accountId);
|
|
225
|
+
if (accountId === DEFAULT_ACCOUNT_ID) {
|
|
226
|
+
const legacyDir = resolveLegacyAuthDir();
|
|
227
|
+
if (legacyAuthExists(legacyDir) && !legacyAuthExists(defaultDir)) return {
|
|
228
|
+
authDir: legacyDir,
|
|
229
|
+
isLegacy: true
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
authDir: defaultDir,
|
|
234
|
+
isLegacy: false
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
function resolveWhatsAppAccount(params) {
|
|
238
|
+
const rootCfg = params.cfg.channels?.whatsapp;
|
|
239
|
+
const accountId = params.accountId?.trim() || resolveDefaultWhatsAppAccountId(params.cfg);
|
|
240
|
+
const accountCfg = resolveAccountConfig(params.cfg, accountId);
|
|
241
|
+
const enabled = accountCfg?.enabled !== false;
|
|
242
|
+
const { authDir, isLegacy } = resolveWhatsAppAuthDir({
|
|
243
|
+
cfg: params.cfg,
|
|
244
|
+
accountId
|
|
245
|
+
});
|
|
246
|
+
return {
|
|
247
|
+
accountId,
|
|
248
|
+
name: accountCfg?.name?.trim() || void 0,
|
|
249
|
+
enabled,
|
|
250
|
+
sendReadReceipts: accountCfg?.sendReadReceipts ?? rootCfg?.sendReadReceipts ?? true,
|
|
251
|
+
messagePrefix: accountCfg?.messagePrefix ?? rootCfg?.messagePrefix ?? params.cfg.messages?.messagePrefix,
|
|
252
|
+
authDir,
|
|
253
|
+
isLegacyAuthDir: isLegacy,
|
|
254
|
+
selfChatMode: accountCfg?.selfChatMode ?? rootCfg?.selfChatMode,
|
|
255
|
+
dmPolicy: accountCfg?.dmPolicy ?? rootCfg?.dmPolicy,
|
|
256
|
+
allowFrom: accountCfg?.allowFrom ?? rootCfg?.allowFrom,
|
|
257
|
+
groupAllowFrom: accountCfg?.groupAllowFrom ?? rootCfg?.groupAllowFrom,
|
|
258
|
+
groupPolicy: accountCfg?.groupPolicy ?? rootCfg?.groupPolicy,
|
|
259
|
+
textChunkLimit: accountCfg?.textChunkLimit ?? rootCfg?.textChunkLimit,
|
|
260
|
+
chunkMode: accountCfg?.chunkMode ?? rootCfg?.chunkMode,
|
|
261
|
+
mediaMaxMb: accountCfg?.mediaMaxMb ?? rootCfg?.mediaMaxMb,
|
|
262
|
+
blockStreaming: accountCfg?.blockStreaming ?? rootCfg?.blockStreaming,
|
|
263
|
+
ackReaction: accountCfg?.ackReaction ?? rootCfg?.ackReaction,
|
|
264
|
+
groups: accountCfg?.groups ?? rootCfg?.groups,
|
|
265
|
+
debounceMs: accountCfg?.debounceMs ?? rootCfg?.debounceMs
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
//#endregion
|
|
270
|
+
export { webAuthExists as _, resolveWhatsAppAuthDir as a, logWebSelfId as c, pickWebChannel as d, readCredsJsonRaw as f, resolveWebCredsPath as g, resolveWebCredsBackupPath as h, resolveWhatsAppAccount as i, logoutWeb as l, resolveDefaultWebAuthDir as m, listWhatsAppAccountIds as n, WA_WEB_AUTH_DIR as o, readWebSelfId as p, resolveDefaultWhatsAppAccountId as r, getWebAuthAgeMs as s, hasAnyWhatsAppAuth as t, maybeRestoreCredsFromBackup as u, createAccountListHelpers as v };
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { m as resolveOAuthDir } from "./paths-BTaH3rLn.js";
|
|
2
|
+
import { E as info, N as success, R as getChildLogger, _ as resolveUserPath, d as jidToE164 } from "./utils-C5daYcFn.js";
|
|
3
|
+
import { n as defaultRuntime } from "./runtime-Ds3E9SqF.js";
|
|
4
|
+
import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-C2n-VILA.js";
|
|
5
|
+
import { t as formatCliCommand } from "./command-format-5Mm4OX03.js";
|
|
6
|
+
import { t as resolveAccountEntry } from "./account-lookup-R1ParPyR.js";
|
|
7
|
+
import fs from "node:fs";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
import fs$1 from "node:fs/promises";
|
|
10
|
+
|
|
11
|
+
//#region src/channels/plugins/account-helpers.ts
|
|
12
|
+
function createAccountListHelpers(channelKey) {
|
|
13
|
+
function listConfiguredAccountIds(cfg) {
|
|
14
|
+
const accounts = (cfg.channels?.[channelKey])?.accounts;
|
|
15
|
+
if (!accounts || typeof accounts !== "object") return [];
|
|
16
|
+
return Object.keys(accounts).filter(Boolean);
|
|
17
|
+
}
|
|
18
|
+
function listAccountIds(cfg) {
|
|
19
|
+
const ids = listConfiguredAccountIds(cfg);
|
|
20
|
+
if (ids.length === 0) return [DEFAULT_ACCOUNT_ID];
|
|
21
|
+
return ids.toSorted((a, b) => a.localeCompare(b));
|
|
22
|
+
}
|
|
23
|
+
function resolveDefaultAccountId(cfg) {
|
|
24
|
+
const ids = listAccountIds(cfg);
|
|
25
|
+
if (ids.includes(DEFAULT_ACCOUNT_ID)) return DEFAULT_ACCOUNT_ID;
|
|
26
|
+
return ids[0] ?? DEFAULT_ACCOUNT_ID;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
listConfiguredAccountIds,
|
|
30
|
+
listAccountIds,
|
|
31
|
+
resolveDefaultAccountId
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/web/auth-store.ts
|
|
37
|
+
function resolveDefaultWebAuthDir() {
|
|
38
|
+
return path.join(resolveOAuthDir(), "whatsapp", DEFAULT_ACCOUNT_ID);
|
|
39
|
+
}
|
|
40
|
+
const WA_WEB_AUTH_DIR = resolveDefaultWebAuthDir();
|
|
41
|
+
function resolveWebCredsPath(authDir) {
|
|
42
|
+
return path.join(authDir, "creds.json");
|
|
43
|
+
}
|
|
44
|
+
function resolveWebCredsBackupPath(authDir) {
|
|
45
|
+
return path.join(authDir, "creds.json.bak");
|
|
46
|
+
}
|
|
47
|
+
function hasWebCredsSync(authDir) {
|
|
48
|
+
try {
|
|
49
|
+
const stats = fs.statSync(resolveWebCredsPath(authDir));
|
|
50
|
+
return stats.isFile() && stats.size > 1;
|
|
51
|
+
} catch {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function readCredsJsonRaw(filePath) {
|
|
56
|
+
try {
|
|
57
|
+
if (!fs.existsSync(filePath)) return null;
|
|
58
|
+
const stats = fs.statSync(filePath);
|
|
59
|
+
if (!stats.isFile() || stats.size <= 1) return null;
|
|
60
|
+
return fs.readFileSync(filePath, "utf-8");
|
|
61
|
+
} catch {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function maybeRestoreCredsFromBackup(authDir) {
|
|
66
|
+
const logger = getChildLogger({ module: "web-session" });
|
|
67
|
+
try {
|
|
68
|
+
const credsPath = resolveWebCredsPath(authDir);
|
|
69
|
+
const backupPath = resolveWebCredsBackupPath(authDir);
|
|
70
|
+
const raw = readCredsJsonRaw(credsPath);
|
|
71
|
+
if (raw) {
|
|
72
|
+
JSON.parse(raw);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const backupRaw = readCredsJsonRaw(backupPath);
|
|
76
|
+
if (!backupRaw) return;
|
|
77
|
+
JSON.parse(backupRaw);
|
|
78
|
+
fs.copyFileSync(backupPath, credsPath);
|
|
79
|
+
try {
|
|
80
|
+
fs.chmodSync(credsPath, 384);
|
|
81
|
+
} catch {}
|
|
82
|
+
logger.warn({ credsPath }, "restored corrupted WhatsApp creds.json from backup");
|
|
83
|
+
} catch {}
|
|
84
|
+
}
|
|
85
|
+
async function webAuthExists(authDir = resolveDefaultWebAuthDir()) {
|
|
86
|
+
const resolvedAuthDir = resolveUserPath(authDir);
|
|
87
|
+
maybeRestoreCredsFromBackup(resolvedAuthDir);
|
|
88
|
+
const credsPath = resolveWebCredsPath(resolvedAuthDir);
|
|
89
|
+
try {
|
|
90
|
+
await fs$1.access(resolvedAuthDir);
|
|
91
|
+
} catch {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const stats = await fs$1.stat(credsPath);
|
|
96
|
+
if (!stats.isFile() || stats.size <= 1) return false;
|
|
97
|
+
const raw = await fs$1.readFile(credsPath, "utf-8");
|
|
98
|
+
JSON.parse(raw);
|
|
99
|
+
return true;
|
|
100
|
+
} catch {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function clearLegacyBaileysAuthState(authDir) {
|
|
105
|
+
const entries = await fs$1.readdir(authDir, { withFileTypes: true });
|
|
106
|
+
const shouldDelete = (name) => {
|
|
107
|
+
if (name === "oauth.json") return false;
|
|
108
|
+
if (name === "creds.json" || name === "creds.json.bak") return true;
|
|
109
|
+
if (!name.endsWith(".json")) return false;
|
|
110
|
+
return /^(app-state-sync|session|sender-key|pre-key)-/.test(name);
|
|
111
|
+
};
|
|
112
|
+
await Promise.all(entries.map(async (entry) => {
|
|
113
|
+
if (!entry.isFile()) return;
|
|
114
|
+
if (!shouldDelete(entry.name)) return;
|
|
115
|
+
await fs$1.rm(path.join(authDir, entry.name), { force: true });
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
async function logoutWeb(params) {
|
|
119
|
+
const runtime = params.runtime ?? defaultRuntime;
|
|
120
|
+
const resolvedAuthDir = resolveUserPath(params.authDir ?? resolveDefaultWebAuthDir());
|
|
121
|
+
if (!await webAuthExists(resolvedAuthDir)) {
|
|
122
|
+
runtime.log(info("No WhatsApp Web session found; nothing to delete."));
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
if (params.isLegacyAuthDir) await clearLegacyBaileysAuthState(resolvedAuthDir);
|
|
126
|
+
else await fs$1.rm(resolvedAuthDir, {
|
|
127
|
+
recursive: true,
|
|
128
|
+
force: true
|
|
129
|
+
});
|
|
130
|
+
runtime.log(success("Cleared WhatsApp Web credentials."));
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
|
|
134
|
+
try {
|
|
135
|
+
const credsPath = resolveWebCredsPath(resolveUserPath(authDir));
|
|
136
|
+
if (!fs.existsSync(credsPath)) return {
|
|
137
|
+
e164: null,
|
|
138
|
+
jid: null
|
|
139
|
+
};
|
|
140
|
+
const raw = fs.readFileSync(credsPath, "utf-8");
|
|
141
|
+
const jid = JSON.parse(raw)?.me?.id ?? null;
|
|
142
|
+
return {
|
|
143
|
+
e164: jid ? jidToE164(jid, { authDir }) : null,
|
|
144
|
+
jid
|
|
145
|
+
};
|
|
146
|
+
} catch {
|
|
147
|
+
return {
|
|
148
|
+
e164: null,
|
|
149
|
+
jid: null
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Return the age (in milliseconds) of the cached WhatsApp web auth state, or null when missing.
|
|
155
|
+
* Helpful for heartbeats/observability to spot stale credentials.
|
|
156
|
+
*/
|
|
157
|
+
function getWebAuthAgeMs(authDir = resolveDefaultWebAuthDir()) {
|
|
158
|
+
try {
|
|
159
|
+
const stats = fs.statSync(resolveWebCredsPath(resolveUserPath(authDir)));
|
|
160
|
+
return Date.now() - stats.mtimeMs;
|
|
161
|
+
} catch {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function logWebSelfId(authDir = resolveDefaultWebAuthDir(), runtime = defaultRuntime, includeChannelPrefix = false) {
|
|
166
|
+
const { e164, jid } = readWebSelfId(authDir);
|
|
167
|
+
const details = e164 || jid ? `${e164 ?? "unknown"}${jid ? ` (jid ${jid})` : ""}` : "unknown";
|
|
168
|
+
const prefix = includeChannelPrefix ? "Web Channel: " : "";
|
|
169
|
+
runtime.log(info(`${prefix}${details}`));
|
|
170
|
+
}
|
|
171
|
+
async function pickWebChannel(pref, authDir = resolveDefaultWebAuthDir()) {
|
|
172
|
+
const choice = pref === "auto" ? "web" : pref;
|
|
173
|
+
if (!await webAuthExists(authDir)) throw new Error(`No WhatsApp Web session found. Run \`${formatCliCommand("remoteclaw channels login --channel whatsapp --verbose")}\` to link.`);
|
|
174
|
+
return choice;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
//#endregion
|
|
178
|
+
//#region src/web/accounts.ts
|
|
179
|
+
const { listConfiguredAccountIds, listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("whatsapp");
|
|
180
|
+
const listWhatsAppAccountIds = listAccountIds;
|
|
181
|
+
const resolveDefaultWhatsAppAccountId = resolveDefaultAccountId;
|
|
182
|
+
function listWhatsAppAuthDirs(cfg) {
|
|
183
|
+
const oauthDir = resolveOAuthDir();
|
|
184
|
+
const whatsappDir = path.join(oauthDir, "whatsapp");
|
|
185
|
+
const authDirs = new Set([oauthDir, path.join(whatsappDir, DEFAULT_ACCOUNT_ID)]);
|
|
186
|
+
const accountIds = listConfiguredAccountIds(cfg);
|
|
187
|
+
for (const accountId of accountIds) authDirs.add(resolveWhatsAppAuthDir({
|
|
188
|
+
cfg,
|
|
189
|
+
accountId
|
|
190
|
+
}).authDir);
|
|
191
|
+
try {
|
|
192
|
+
const entries = fs.readdirSync(whatsappDir, { withFileTypes: true });
|
|
193
|
+
for (const entry of entries) {
|
|
194
|
+
if (!entry.isDirectory()) continue;
|
|
195
|
+
authDirs.add(path.join(whatsappDir, entry.name));
|
|
196
|
+
}
|
|
197
|
+
} catch {}
|
|
198
|
+
return Array.from(authDirs);
|
|
199
|
+
}
|
|
200
|
+
function hasAnyWhatsAppAuth(cfg) {
|
|
201
|
+
return listWhatsAppAuthDirs(cfg).some((authDir) => hasWebCredsSync(authDir));
|
|
202
|
+
}
|
|
203
|
+
function resolveAccountConfig(cfg, accountId) {
|
|
204
|
+
return resolveAccountEntry(cfg.channels?.whatsapp?.accounts, accountId);
|
|
205
|
+
}
|
|
206
|
+
function resolveDefaultAuthDir(accountId) {
|
|
207
|
+
return path.join(resolveOAuthDir(), "whatsapp", normalizeAccountId(accountId));
|
|
208
|
+
}
|
|
209
|
+
function resolveLegacyAuthDir() {
|
|
210
|
+
return resolveOAuthDir();
|
|
211
|
+
}
|
|
212
|
+
function legacyAuthExists(authDir) {
|
|
213
|
+
try {
|
|
214
|
+
return fs.existsSync(path.join(authDir, "creds.json"));
|
|
215
|
+
} catch {
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
function resolveWhatsAppAuthDir(params) {
|
|
220
|
+
const accountId = params.accountId.trim() || DEFAULT_ACCOUNT_ID;
|
|
221
|
+
const configured = resolveAccountConfig(params.cfg, accountId)?.authDir?.trim();
|
|
222
|
+
if (configured) return {
|
|
223
|
+
authDir: resolveUserPath(configured),
|
|
224
|
+
isLegacy: false
|
|
225
|
+
};
|
|
226
|
+
const defaultDir = resolveDefaultAuthDir(accountId);
|
|
227
|
+
if (accountId === DEFAULT_ACCOUNT_ID) {
|
|
228
|
+
const legacyDir = resolveLegacyAuthDir();
|
|
229
|
+
if (legacyAuthExists(legacyDir) && !legacyAuthExists(defaultDir)) return {
|
|
230
|
+
authDir: legacyDir,
|
|
231
|
+
isLegacy: true
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
authDir: defaultDir,
|
|
236
|
+
isLegacy: false
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
function resolveWhatsAppAccount(params) {
|
|
240
|
+
const rootCfg = params.cfg.channels?.whatsapp;
|
|
241
|
+
const accountId = params.accountId?.trim() || resolveDefaultWhatsAppAccountId(params.cfg);
|
|
242
|
+
const accountCfg = resolveAccountConfig(params.cfg, accountId);
|
|
243
|
+
const enabled = accountCfg?.enabled !== false;
|
|
244
|
+
const { authDir, isLegacy } = resolveWhatsAppAuthDir({
|
|
245
|
+
cfg: params.cfg,
|
|
246
|
+
accountId
|
|
247
|
+
});
|
|
248
|
+
return {
|
|
249
|
+
accountId,
|
|
250
|
+
name: accountCfg?.name?.trim() || void 0,
|
|
251
|
+
enabled,
|
|
252
|
+
sendReadReceipts: accountCfg?.sendReadReceipts ?? rootCfg?.sendReadReceipts ?? true,
|
|
253
|
+
messagePrefix: accountCfg?.messagePrefix ?? rootCfg?.messagePrefix ?? params.cfg.messages?.messagePrefix,
|
|
254
|
+
authDir,
|
|
255
|
+
isLegacyAuthDir: isLegacy,
|
|
256
|
+
selfChatMode: accountCfg?.selfChatMode ?? rootCfg?.selfChatMode,
|
|
257
|
+
dmPolicy: accountCfg?.dmPolicy ?? rootCfg?.dmPolicy,
|
|
258
|
+
allowFrom: accountCfg?.allowFrom ?? rootCfg?.allowFrom,
|
|
259
|
+
groupAllowFrom: accountCfg?.groupAllowFrom ?? rootCfg?.groupAllowFrom,
|
|
260
|
+
groupPolicy: accountCfg?.groupPolicy ?? rootCfg?.groupPolicy,
|
|
261
|
+
textChunkLimit: accountCfg?.textChunkLimit ?? rootCfg?.textChunkLimit,
|
|
262
|
+
chunkMode: accountCfg?.chunkMode ?? rootCfg?.chunkMode,
|
|
263
|
+
mediaMaxMb: accountCfg?.mediaMaxMb ?? rootCfg?.mediaMaxMb,
|
|
264
|
+
blockStreaming: accountCfg?.blockStreaming ?? rootCfg?.blockStreaming,
|
|
265
|
+
ackReaction: accountCfg?.ackReaction ?? rootCfg?.ackReaction,
|
|
266
|
+
groups: accountCfg?.groups ?? rootCfg?.groups,
|
|
267
|
+
debounceMs: accountCfg?.debounceMs ?? rootCfg?.debounceMs
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
//#endregion
|
|
272
|
+
export { webAuthExists as _, resolveWhatsAppAuthDir as a, logWebSelfId as c, pickWebChannel as d, readCredsJsonRaw as f, resolveWebCredsPath as g, resolveWebCredsBackupPath as h, resolveWhatsAppAccount as i, logoutWeb as l, resolveDefaultWebAuthDir as m, listWhatsAppAccountIds as n, WA_WEB_AUTH_DIR as o, readWebSelfId as p, resolveDefaultWhatsAppAccountId as r, getWebAuthAgeMs as s, hasAnyWhatsAppAuth as t, maybeRestoreCredsFromBackup as u, createAccountListHelpers as v };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { h as normalizeAccountId } from "./session-key-C2n-VILA.js";
|
|
2
|
+
import { t as resolveAccountEntry } from "./account-lookup-R1ParPyR.js";
|
|
3
|
+
import { v as createAccountListHelpers } from "./accounts-CYi-JUU1.js";
|
|
4
|
+
|
|
5
|
+
//#region src/imessage/accounts.ts
|
|
6
|
+
const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
|
|
7
|
+
const listIMessageAccountIds = listAccountIds;
|
|
8
|
+
const resolveDefaultIMessageAccountId = resolveDefaultAccountId;
|
|
9
|
+
function resolveAccountConfig(cfg, accountId) {
|
|
10
|
+
return resolveAccountEntry(cfg.channels?.imessage?.accounts, accountId);
|
|
11
|
+
}
|
|
12
|
+
function mergeIMessageAccountConfig(cfg, accountId) {
|
|
13
|
+
const { accounts: _ignored, ...base } = cfg.channels?.imessage ?? {};
|
|
14
|
+
const account = resolveAccountConfig(cfg, accountId) ?? {};
|
|
15
|
+
return {
|
|
16
|
+
...base,
|
|
17
|
+
...account
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function resolveIMessageAccount(params) {
|
|
21
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
22
|
+
const baseEnabled = params.cfg.channels?.imessage?.enabled !== false;
|
|
23
|
+
const merged = mergeIMessageAccountConfig(params.cfg, accountId);
|
|
24
|
+
const accountEnabled = merged.enabled !== false;
|
|
25
|
+
const configured = Boolean(merged.cliPath?.trim() || merged.dbPath?.trim() || merged.service || merged.region?.trim() || merged.allowFrom && merged.allowFrom.length > 0 || merged.groupAllowFrom && merged.groupAllowFrom.length > 0 || merged.dmPolicy || merged.groupPolicy || typeof merged.includeAttachments === "boolean" || merged.attachmentRoots && merged.attachmentRoots.length > 0 || merged.remoteAttachmentRoots && merged.remoteAttachmentRoots.length > 0 || typeof merged.mediaMaxMb === "number" || typeof merged.textChunkLimit === "number" || merged.groups && Object.keys(merged.groups).length > 0);
|
|
26
|
+
return {
|
|
27
|
+
accountId,
|
|
28
|
+
enabled: baseEnabled && accountEnabled,
|
|
29
|
+
name: merged.name?.trim() || void 0,
|
|
30
|
+
config: merged,
|
|
31
|
+
configured
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { resolveDefaultIMessageAccountId as n, resolveIMessageAccount as r, listIMessageAccountIds as t };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { h as normalizeAccountId } from "./session-key-BF-9YzxC.js";
|
|
2
|
+
import { t as resolveAccountEntry } from "./account-lookup-C0ndrpt-.js";
|
|
3
|
+
import { v as createAccountListHelpers } from "./accounts-Aqbb2_Fn.js";
|
|
4
|
+
|
|
5
|
+
//#region src/imessage/accounts.ts
|
|
6
|
+
const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
|
|
7
|
+
const listIMessageAccountIds = listAccountIds;
|
|
8
|
+
const resolveDefaultIMessageAccountId = resolveDefaultAccountId;
|
|
9
|
+
function resolveAccountConfig(cfg, accountId) {
|
|
10
|
+
return resolveAccountEntry(cfg.channels?.imessage?.accounts, accountId);
|
|
11
|
+
}
|
|
12
|
+
function mergeIMessageAccountConfig(cfg, accountId) {
|
|
13
|
+
const { accounts: _ignored, ...base } = cfg.channels?.imessage ?? {};
|
|
14
|
+
const account = resolveAccountConfig(cfg, accountId) ?? {};
|
|
15
|
+
return {
|
|
16
|
+
...base,
|
|
17
|
+
...account
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function resolveIMessageAccount(params) {
|
|
21
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
22
|
+
const baseEnabled = params.cfg.channels?.imessage?.enabled !== false;
|
|
23
|
+
const merged = mergeIMessageAccountConfig(params.cfg, accountId);
|
|
24
|
+
const accountEnabled = merged.enabled !== false;
|
|
25
|
+
const configured = Boolean(merged.cliPath?.trim() || merged.dbPath?.trim() || merged.service || merged.region?.trim() || merged.allowFrom && merged.allowFrom.length > 0 || merged.groupAllowFrom && merged.groupAllowFrom.length > 0 || merged.dmPolicy || merged.groupPolicy || typeof merged.includeAttachments === "boolean" || merged.attachmentRoots && merged.attachmentRoots.length > 0 || merged.remoteAttachmentRoots && merged.remoteAttachmentRoots.length > 0 || typeof merged.mediaMaxMb === "number" || typeof merged.textChunkLimit === "number" || merged.groups && Object.keys(merged.groups).length > 0);
|
|
26
|
+
return {
|
|
27
|
+
accountId,
|
|
28
|
+
enabled: baseEnabled && accountEnabled,
|
|
29
|
+
name: merged.name?.trim() || void 0,
|
|
30
|
+
config: merged,
|
|
31
|
+
configured
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { resolveDefaultIMessageAccountId as n, resolveIMessageAccount as r, listIMessageAccountIds as t };
|