squidclaw 3.0.24 → 3.0.26
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/dist/{accounts-BH9Qo1sQ.js → accounts-BK8I0Svb.js} +7 -7
- package/dist/{accounts-Cuwg9Tan.js → accounts-DeqNOvBo.js} +1 -1
- package/dist/{accounts-B1RxFghM.js → accounts-KzgPbLHP.js} +1 -1
- package/dist/{acp-cli-Ch55Vzud.js → acp-cli-BwG98FYT.js} +8 -8
- package/dist/{agent-scope-nEVgVklg.js → agent-scope-Cq4vDGrK.js} +17 -17
- package/dist/{agents-B-ig6ydU.js → agents-DXKtU4Il.js} +14 -14
- package/dist/{agents.config-w_Z6Fb4-.js → agents.config-BM-2SLCh.js} +2 -2
- package/dist/{api-key-rotation-JPmjv-c0.js → api-key-rotation-6i41mEc9.js} +1 -1
- package/dist/{audio-preflight-lT9iRnYi.js → audio-preflight-Bzo_zN4j.js} +4 -4
- package/dist/{audio-preflight-CZ--cSZh.js → audio-preflight-C-JCwUKe.js} +34 -34
- package/dist/{audio-transcription-runner-YiR1ym3a.js → audio-transcription-runner-Cp_lkLCv.js} +1 -1
- package/dist/{audio-transcription-runner-D-uxpkbd.js → audio-transcription-runner-DvQksGUE.js} +23 -23
- package/dist/{audit-JLT1FqTt.js → audit-DLTgNDFw.js} +29 -29
- package/dist/{auth-BlP9BwaD.js → auth-CuObxnC4.js} +1 -1
- package/dist/{auth-choice-Czu7271G.js → auth-choice-BVQQneHM.js} +13 -13
- package/dist/{auth-choice-ORZHjbsv.js → auth-choice-CXepQc7c.js} +11 -11
- package/dist/{auth-choice.apply-helpers-CdoXMtxm.js → auth-choice.apply-helpers-p1y_DmDT.js} +1 -1
- package/dist/{auth-profiles-9T4j6jMy.js → auth-profiles-CX4YYu7Z.js} +16 -16
- package/dist/{auth-token-BFc70pes.js → auth-token-Dlk7MMsC.js} +1 -1
- package/dist/{banner-CwNmI5G-.js → banner-DMfuBV69.js} +2 -2
- package/dist/{bonjour-discovery-eqJcK09r.js → bonjour-discovery-BHz2I6_W.js} +1 -1
- package/dist/{browser-cli-DCDPC5sg.js → browser-cli-Dvwk4zAD.js} +12 -12
- package/dist/build-info.json +3 -3
- package/dist/bundled/session-memory/handler.js +127 -12
- package/dist/{call-D7jOWSFr.js → call-BlWEBz99.js} +10 -10
- package/dist/{channel-account-context-DJ3rHgVO.js → channel-account-context-CQ6rCiGI.js} +5 -5
- package/dist/{channel-activity-wuB3-cfR.js → channel-activity-BZKeZQH-.js} +1 -1
- package/dist/{channel-options-BS7BSU_5.js → channel-options-CQ-gER0J.js} +3 -3
- package/dist/{channel-selection-CFWQq1nS.js → channel-selection-BqwS1Rlq.js} +1 -1
- package/dist/{channel-web-C1qYz-HK.js → channel-web-LLzBxZrT.js} +17 -17
- package/dist/{channels-cli-CVNqp5q7.js → channels-cli-D4xUEYYC.js} +93 -93
- package/dist/{channels-status-issues-Erzzhl2e.js → channels-status-issues-Dz1_R7Ah.js} +1 -1
- package/dist/{chrome-CuBHInKC.js → chrome-CZQnp4VH.js} +8 -8
- package/dist/{chrome-DiktJpMU.js → chrome-CoRiYsNu.js} +4 -4
- package/dist/{clawbot-cli-C3bt-FEP.js → clawbot-cli-2Zlim_pH.js} +11 -11
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-Jyqv2jm8.js → cli-CAID9zkL.js} +73 -73
- package/dist/{client-COy24r9W.js → client-G9E5HGM2.js} +2 -2
- package/dist/{command-registry-DCojicSG.js → command-registry-AHS8_9da.js} +11 -11
- package/dist/{command-secret-targets-CZjP-Bm5.js → command-secret-targets-DAu5nw-j.js} +4 -4
- package/dist/{commands-DDHiW-As.js → commands-CnX9I_l4.js} +1 -1
- package/dist/{commands-registry--ITOJ-cM.js → commands-registry-_r_JONI4.js} +3 -3
- package/dist/{completion-cli-DCTv7Ejv.js → completion-cli-BR1r9_h4.js} +13 -13
- package/dist/{config-cli-CSPSSP_R.js → config-cli-D0A8Awoo.js} +7 -7
- package/dist/{config-guard-CFauJm79.js → config-guard-BHy2f0hU.js} +3 -3
- package/dist/{config-validation-Bt3LfFJ0.js → config-validation-BkvDORAk.js} +3 -3
- package/dist/{configure-DAol2gT6.js → configure-XmOqwwy9.js} +17 -17
- package/dist/{control-ui-assets-d6VtDSeo.js → control-ui-assets-BYEy341x.js} +1 -1
- package/dist/{cron-cli-yS1ww1k2.js → cron-cli-QwZcnjJc.js} +11 -11
- package/dist/{daemon-cli-B-yZvTqZ.js → daemon-cli-kJfDhzr8.js} +15 -15
- package/dist/{daemon-install-CbPLNiIP.js → daemon-install-Chxlu9Kv.js} +4 -4
- package/dist/{daemon-install-helpers-CZDVO_MU.js → daemon-install-helpers-CJtiW2RE.js} +11 -11
- package/dist/{deliver-6zfT7daI.js → deliver-B4WWPQvt.js} +1 -1
- package/dist/{deliver-D-IQEJ52.js → deliver-CL2RW5UB.js} +7 -7
- package/dist/deliver-runtime-C08pF1_3.js +61 -0
- package/dist/{deliver-runtime-MBexxUuG.js → deliver-runtime-CeE1X9si.js} +3 -3
- package/dist/deps-send-discord.runtime-r80y9aXF.js +36 -0
- package/dist/deps-send-imessage.runtime-BmocBgPM.js +35 -0
- package/dist/deps-send-signal.runtime-ByJt6qz-.js +34 -0
- package/dist/deps-send-slack.runtime-C3UUEG9J.js +32 -0
- package/dist/{deps-send-telegram.runtime-Irv0ky5l.js → deps-send-telegram.runtime-BHaZAs2h.js} +16 -16
- package/dist/{deps-send-whatsapp.runtime-CrxkfP31.js → deps-send-whatsapp.runtime-COv_qoD2.js} +7 -7
- package/dist/deps-send-whatsapp.runtime-__ogpmJj.js +119 -0
- package/dist/{devices-cli-CPgutgUT.js → devices-cli-DlQGTogF.js} +8 -8
- package/dist/{diagnostic-B4w80e4D.js → diagnostic-CLEtu0MC.js} +1 -1
- package/dist/{diagnostics-m7hHHbuE.js → diagnostics--O6mo6KH.js} +5 -5
- package/dist/{directory-cli-DqObADBL.js → directory-cli-K9qIwxYa.js} +7 -7
- package/dist/{dns-cli-CKbwsWBv.js → dns-cli-qtX-WNMF.js} +5 -5
- package/dist/{dock-W3cGg46W.js → dock-DJJAj46v.js} +4 -4
- package/dist/{docs-cli-BpZtes_j.js → docs-cli--gGxz79Z.js} +4 -4
- package/dist/{doctor-completion--7PR_Vqz.js → doctor-completion-CZoEdMS-.js} +2 -2
- package/dist/{doctor-config-flow-BDF7TR6O.js → doctor-config-flow-C-h3yV4z.js} +15 -15
- package/dist/{enable--Q7yLTZm.js → enable-C8FNY18p.js} +1 -1
- package/dist/entry.js +2 -2
- package/dist/{exec-approvals-allowlist-B9bcJkGP.js → exec-approvals-allowlist-CtSREgYh.js} +1 -1
- package/dist/{exec-approvals-cli-homtziYt.js → exec-approvals-cli-BmM4RpVn.js} +16 -16
- package/dist/{exec-safe-bin-runtime-policy-DECo77U6.js → exec-safe-bin-runtime-policy-CfQeDABF.js} +2 -2
- package/dist/extensionAPI.js +6 -6
- package/dist/{fetch-lq0SDLLE.js → fetch-CtoC2wgs.js} +3 -3
- package/dist/{fetch-guard-CbtWqa1E.js → fetch-guard-Dvzi3MjK.js} +1 -1
- package/dist/{plugin-sdk/fs-safe-Dqmpk-Fr.js → fs-safe-DPYj7h8A.js} +6 -6
- package/dist/{gateway-cli-B3oqskb4.js → gateway-cli-BJHBChfI.js} +153 -153
- package/dist/{gateway-rpc-BBBN9ZJk.js → gateway-rpc-D0AmaBzR.js} +1 -1
- package/dist/{health-CjXrJkCb.js → health-XFKFZ7ZJ.js} +11 -11
- package/dist/{hooks-cli--aKmd8c9.js → hooks-cli-CXsZK8H9.js} +81 -81
- package/dist/{hooks-status-BlgSVDvN.js → hooks-status-DMFBAUq8.js} +1 -1
- package/dist/{image-VgwN31FZ.js → image-DKkuLtZ4.js} +1 -1
- package/dist/{image-BcYt63Jx.js → image-DSWTfuxv.js} +5 -5
- package/dist/{image-ops-LFsSCTyI.js → image-ops-B2uuLIGD.js} +10 -10
- package/dist/{image-runtime-CwMuTYvd.js → image-runtime-BMavqm9n.js} +3 -3
- package/dist/image-runtime-cza2NTiZ.js +55 -0
- package/dist/{inspect-CzsXBsew.js → inspect-4c1uL0x5.js} +4 -4
- package/dist/{install-safe-path-DqI19VEv.js → install-safe-path-3muwy3fu.js} +25 -25
- package/dist/{installs-P-pYAJm1.js → installs-BiQDtPF0.js} +9 -9
- package/dist/{ipv4-B95173MB.js → ipv4-sHllwvAI.js} +1 -1
- package/dist/{ir-C7He5vmn.js → ir-BukzlgSp.js} +8 -8
- package/dist/{issue-format-CbTfB8Hy.js → issue-format-DCcINW-9.js} +1 -1
- package/dist/{json-files-rR19q30D.js → json-files-CuJjdF_0.js} +8 -8
- package/dist/{lifecycle-core-ChKClWdw.js → lifecycle-core-CqFEhwHn.js} +5 -5
- package/dist/{login-qr-CX0rs3A6.js → login-qr-B8P_EAd-.js} +6 -6
- package/dist/{login-CjzRATwO.js → login-zoeewfBu.js} +3 -3
- package/dist/{logs-cli-DvHsw1WZ.js → logs-cli-D30BUN6y.js} +9 -9
- package/dist/{manager-BVfTfggO.js → manager-5OzUkYLf.js} +14 -14
- package/dist/{manager-runtime-BXJJSlzC.js → manager-runtime-BxXpVt3x.js} +9 -9
- package/dist/{manifest-registry-1ACGW3OR.js → manifest-registry-7kwtbCH-.js} +1 -1
- package/dist/{memory-cli-u8eyO3Ec.js → memory-cli-Dj8tyFtt.js} +12 -12
- package/dist/{model-D7hZpWTB.js → model-B8p-EsdJ.js} +2 -2
- package/dist/{model-catalog-Drh9Rois.js → model-catalog-BWuvEv1x.js} +3 -3
- package/dist/{model-picker-DK_vvKCV.js → model-picker-CLhaaagi.js} +4 -4
- package/dist/{models-CFXLX9IF.js → models-5VXwJBU2.js} +17 -17
- package/dist/{models-cli-PHQyKESa.js → models-cli-Br56IHfy.js} +78 -78
- package/dist/{models-config-DAastTau.js → models-config-poV-4Xlx.js} +6 -6
- package/dist/{net-CIh5ellr.js → net-CCnbGop3.js} +2 -2
- package/dist/{node-cli-o9qcU9GJ.js → node-cli-C8hvYquX.js} +33 -33
- package/dist/{node-command-policy-BeTSnoyk.js → node-command-policy-B_D5ucTj.js} +1 -1
- package/dist/{node-service-OVe0_CIs.js → node-service-Z0JprJda.js} +1 -1
- package/dist/{nodes-cli-kGx_Qa3c.js → nodes-cli-IIc8fTKT.js} +16 -16
- package/dist/{nodes-screen-BrMJzhot.js → nodes-screen-DFFmbaXE.js} +7 -7
- package/dist/{npm-pack-install-Dn3FiWXB.js → npm-pack-install-B887us7R.js} +18 -18
- package/dist/{npm-resolution-ky_uAlXE.js → npm-resolution-CKtyq4FH.js} +4 -4
- package/dist/{onboard-channels-oJCC_sJX.js → onboard-channels-_kVo3Apf.js} +21 -21
- package/dist/{onboard-custom-CRpsaM3g.js → onboard-custom-CZtjqrY7.js} +4 -4
- package/dist/{onboard-helpers-DwEZeaoe.js → onboard-helpers-BP429__H.js} +10 -10
- package/dist/{onboard-hooks-DyxckB2C.js → onboard-hooks-CTbjgLDl.js} +4 -4
- package/dist/{onboard-D1Qy64JK.js → onboard-lFwpCpC3.js} +6 -6
- package/dist/{onboard-remote-ZgpWNq9Z.js → onboard-remote-BlZB0AE9.js} +4 -4
- package/dist/{onboard-skills-DEijVfCg.js → onboard-skills-BT2YOXeP.js} +4 -4
- package/dist/{onboarding-Mxqy4O1E.js → onboarding-EEd_g8Zg.js} +14 -14
- package/dist/{onboarding.finalize-DiOMx6A5.js → onboarding.finalize-Cs1ukjFN.js} +90 -90
- package/dist/{onboarding.gateway-config-9wkBCzzO.js → onboarding.gateway-config-C6N8r5Is.js} +18 -18
- package/dist/{onboarding.secret-input-DRnoQSlI.js → onboarding.secret-input-BTK1IG-J.js} +1 -1
- package/dist/{openai-model-default-DqE4bNtd.js → openai-model-default-COzeuAI4.js} +2 -2
- package/dist/{outbound-CwzUo-rx.js → outbound-B7m9Vcd2.js} +3 -3
- package/dist/{outbound-attachment-Bedqixj2.js → outbound-attachment-fdEhzyl9.js} +2 -2
- package/dist/{pairing-cli-CsYP0at7.js → pairing-cli-NhoRKes6.js} +8 -8
- package/dist/{pairing-labels-CX4CtqRa.js → pairing-labels-CnTvFrUT.js} +1 -1
- package/dist/{pairing-store-BC4mnG9S.js → pairing-store-D0eOXyby.js} +3 -3
- package/dist/{plugin-sdk/path-alias-guards-gBhrAn14.js → path-alias-guards-vfYYQFIg.js} +1 -1
- package/dist/{path-safety-D7CjFQvf.js → path-safety-C95DzArw.js} +1 -1
- package/dist/{paths-D6mnO6Ni.js → paths-DfuVHiHu.js} +9 -9
- package/dist/{pi-embedded-BN8fghaF.js → pi-embedded-BR5y0dLa.js} +24 -24
- package/dist/{pi-embedded-helpers-A9VYPVCH.js → pi-embedded-helpers-CEHpGDRs.js} +3 -3
- package/dist/{pi-embedded-helpers-DtCOZSv-.js → pi-embedded-helpers-qCAK_a65.js} +6 -6
- package/dist/{pi-model-discovery-Cr1q2cJt.js → pi-model-discovery-CKUePiDc.js} +1 -1
- package/dist/{pi-model-discovery-runtime-BHmdAKBK.js → pi-model-discovery-runtime-CNLKih0w.js} +5 -5
- package/dist/{pi-tools.before-tool-call.runtime-duKHqrMc.js → pi-tools.before-tool-call.runtime-Bba7rXQq.js} +5 -5
- package/dist/{pi-tools.policy-D3RA94WF.js → pi-tools.policy-BwWnFLLV.js} +5 -5
- package/dist/{plugin-auto-enable-a3TK3OPT.js → plugin-auto-enable-DJkHW_LG.js} +3 -3
- package/dist/{plugin-registry-CFqqDqQV.js → plugin-registry-D3PnPE1D.js} +3 -3
- package/dist/plugin-sdk/discord.js +6 -6
- package/dist/plugin-sdk/index.js +50 -50
- package/dist/plugin-sdk/mattermost.js +3 -3
- package/dist/plugin-sdk/signal.js +2 -2
- package/dist/{plugins-Bc7YM9X-.js → plugins-BDTkSIi7.js} +2 -2
- package/dist/{plugins-cli-vQi8tFye.js → plugins-cli-BA_2daJe.js} +83 -83
- package/dist/{ports-DMeUt80n.js → ports-0jLyYbvQ.js} +2 -2
- package/dist/{ports-BzfeaNjw.js → ports-Be82TlEg.js} +1 -1
- package/dist/{program-Nott_VTb.js → program-D_xdLzmM.js} +81 -81
- package/dist/{prompt-select-styled-7mnlZgrQ.js → prompt-select-styled-BsheNEnh.js} +40 -40
- package/dist/{provider-auth-helpers-_77rN3Zc.js → provider-auth-helpers-B5kD4Lt6.js} +5 -5
- package/dist/{proxy-env-BiKHVg2h.js → proxy-env-CQTuxZoS.js} +1 -1
- package/dist/{push-apns-Ce1zzNYB.js → push-apns-BbenjEX4.js} +5 -5
- package/dist/{pw-ai-CM87tQwG.js → pw-ai-Du22SYoO.js} +1 -1
- package/dist/{pw-ai-CAhTwexx.js → pw-ai-wo5t_KO_.js} +18 -18
- package/dist/{plugin-sdk/qmd-manager-6bozlfFg.js → qmd-manager-BkSWV1Q1.js} +17 -11
- package/dist/{qr-cli-DzjBpGix.js → qr-cli-DSMYIp-D.js} +2 -2
- package/dist/{query-expansion-C0HUJbRn.js → query-expansion-DI9INxTg.js} +12 -12
- package/dist/{redact-snapshot-C0McNGqh.js → redact-snapshot-B2YFI3cO.js} +1 -1
- package/dist/{register.agent-DtjNdvUh.js → register.agent-Dk_5V5oA.js} +94 -94
- package/dist/register.configure-C8OFfGln.js +165 -0
- package/dist/{register.maintenance-DERKsSgi.js → register.maintenance-CluQOq8b.js} +95 -95
- package/dist/{register.message-DkYxt6gZ.js → register.message-BCTXT5yK.js} +74 -74
- package/dist/{register.onboard-BtfW83M0.js → register.onboard-C64oXnvq.js} +18 -18
- package/dist/{register.setup-Ba9gMkRk.js → register.setup-Dl3nk2Ui.js} +21 -21
- package/dist/{register.status-health-sessions-BILdpWJV.js → register.status-health-sessions-BHtbPeCO.js} +88 -88
- package/dist/{register.subclis-Dfm_Zu31.js → register.subclis-CDMFyaKR.js} +31 -31
- package/dist/{rpc-mau2U4RG.js → rpc-DA9IhLVG.js} +1 -1
- package/dist/{run-main-BF7ybLIy.js → run-main-BcA22Ipv.js} +93 -93
- package/dist/{runtime-Bcmv4Epp.js → runtime-BnbzNRr6.js} +3 -3
- package/dist/{runtime-config-collectors-Bsjz4isf.js → runtime-config-collectors-CXJdhHRo.js} +1 -1
- package/dist/{runtime-whatsapp-login.runtime-COUEKxmy.js → runtime-whatsapp-login.runtime-DRoK8G8H.js} +7 -7
- package/dist/{runtime-whatsapp-outbound.runtime-BaWH6-ns.js → runtime-whatsapp-outbound.runtime-C9OiwkWh.js} +15 -15
- package/dist/{sandbox-ixDhkfHu.js → sandbox-C3TbYIHd.js} +18 -18
- package/dist/{sandbox-cli-DOxm7fjR.js → sandbox-cli-BwK2slfh.js} +25 -25
- package/dist/{secrets-cli-DvXznMUb.js → secrets-cli-Beu2lcrf.js} +11 -11
- package/dist/{security-cli-3WOXvJR-.js → security-cli-CcpKH_lC.js} +42 -42
- package/dist/{send-BuBTLRMz.js → send-CLI3CiQv.js} +6 -6
- package/dist/{send-Do2preUU.js → send-DEs83M9V.js} +11 -11
- package/dist/{send-BPgrWmUX.js → send-EVcbFVqn.js} +5 -5
- package/dist/{send-BVyLW1cn.js → send-RDqyJwZx.js} +8 -8
- package/dist/{send-BpkluEZ5.js → send-z-sMjqvX.js} +4 -4
- package/dist/{server-DMAPnkgM.js → server-Bm-IxvZZ.js} +20 -20
- package/dist/{server-context-Dd8UynDU.js → server-context-Dw_4lGoI.js} +12 -12
- package/dist/{server-lifecycle-BEZ2jsQ6.js → server-lifecycle-DYgHYif9.js} +2 -2
- package/dist/{server-middleware-B_LyQkOL.js → server-middleware-BVAEuQs7.js} +1 -1
- package/dist/{server-node-events-dr5CaM3M.js → server-node-events-Q0cT2ifj.js} +74 -74
- package/dist/{service-B5T42CWZ.js → service-DSqxS6_D.js} +15 -15
- package/dist/{session-eXSdl5mb.js → session-D0jodcgT.js} +1 -1
- package/dist/{session-utils-D12gSo5W.js → session-utils-XY6JwRhT.js} +6 -6
- package/dist/{sessions-DgnXAQCc.js → sessions-BWptzMw0.js} +15 -15
- package/dist/{sessions-C16G7L5c.js → sessions-CMqv9JEu.js} +4 -4
- package/dist/{shared-BYny1RCF.js → shared-BbVxcRzb.js} +3 -3
- package/dist/{shared-By6_qr_R.js → shared-D5DTxBPH.js} +1 -1
- package/dist/{skill-commands-BcigmiOW.js → skill-commands-fU-Mejn9.js} +5 -5
- package/dist/{skill-scanner--QKHR8U0.js → skill-scanner-CvS725eQ.js} +6 -6
- package/dist/{skills-EwyaIyKC.js → skills-C85azDXm.js} +3 -3
- package/dist/{skills-cli-CqEjN0Yj.js → skills-cli-ZXx6BNar.js} +5 -5
- package/dist/{skills-install-CXVKvhIE.js → skills-install-KD6dzNoZ.js} +6 -6
- package/dist/{skills-status-Bv8Xt7Lc.js → skills-status-DkO7rxE8.js} +1 -1
- package/dist/{slash-commands.runtime-Bi99B_EP.js → slash-commands.runtime-CPlXJtuM.js} +11 -11
- package/dist/slash-dispatch.runtime-BOMEVFk0.js +114 -0
- package/dist/{slash-dispatch.runtime-sXaUYn4v.js → slash-dispatch.runtime-BcecLKcJ.js} +6 -6
- package/dist/{slash-skill-commands.runtime-DOXmvOtU.js → slash-skill-commands.runtime-Cnfq_5LN.js} +15 -15
- package/dist/{squidclaw-root-JXyRbQLJ.js → squidclaw-root-BQfLymzj.js} +8 -8
- package/dist/{status-Dnl-Um1D.js → status-cU9cJReo.js} +27 -27
- package/dist/{status.update-BGIm6we4.js → status.update-CiLU9RPF.js} +2 -2
- package/dist/{store-BTkIx401.js → store-BEIcnlgx.js} +5 -5
- package/dist/{subagent-registry-CQA6P2FO.js → subagent-registry-CIgFD2oi.js} +149 -149
- package/dist/{subagent-registry-runtime-232sNNT6.js → subagent-registry-runtime-Cq9I6PwW.js} +6 -6
- package/dist/subagent-registry-runtime-DGTjU9Lb.js +114 -0
- package/dist/{system-cli-CJAQxYHv.js → system-cli-i1FWZDjn.js} +9 -9
- package/dist/{system-run-command-BaSqmSwR.js → system-run-command-COqCNIBg.js} +1 -1
- package/dist/{systemd-B86VePXs.js → systemd-Cj2cX_ZP.js} +9 -9
- package/dist/{systemd-hints-BmFWZu_j.js → systemd-hints-46PqJfaq.js} +6 -6
- package/dist/{systemd-linger-w7fvBU-1.js → systemd-linger-6Jd9K5p2.js} +1 -1
- package/dist/{tables-CGh4CW_h.js → tables-CIpKClDV.js} +1 -1
- package/dist/{tailnet-DJq7Mi1o.js → tailnet-CZANZjq6.js} +1 -1
- package/dist/{plugin-sdk/target-errors-jlLHihbX.js → target-errors-CRQlPF1u.js} +2 -2
- package/dist/{tool-images-D6mmxuWS.js → tool-images-CyzWvDUu.js} +1 -1
- package/dist/{tui-BbcmzKaA.js → tui-CC_AbfZr.js} +6 -6
- package/dist/{tui-cli-Dv3jSm3x.js → tui-cli-DiJ7zKUD.js} +32 -32
- package/dist/{update-BhRrb6BI.js → update-1JhjCqjy.js} +3 -3
- package/dist/{update-cli-Oe0fP8x9.js → update-cli-DM_dUip_.js} +104 -104
- package/dist/{update-runner-DdA6xBa9.js → update-runner-BBJZmfZ4.js} +16 -16
- package/dist/{web-Chw1dtKA.js → web-CWxO_flK.js} +6 -6
- package/dist/web-CZhZC1EA.js +118 -0
- package/dist/{webhooks-cli-CJLug1QH.js → webhooks-cli-CzDd8ikc.js} +6 -6
- package/dist/{whatsapp-actions-_ca5OtHq.js → whatsapp-actions-MR_bBjXO.js} +17 -17
- package/dist/{with-timeout-CFfRudNc.js → with-timeout-BZ_Teugb.js} +3 -3
- package/dist/{workspace-BbO-M3Jv.js → workspace-D5vNjk5G.js} +1 -1
- package/dist/{workspace-dirs-D8D-Ghcl.js → workspace-dirs-CjMIsQti.js} +1 -1
- package/dist/{wsl-CsGe5QCP.js → wsl-CvQfS6aU.js} +2 -2
- package/package.json +1 -1
- package/dist/deliver-runtime-zICm26tE.js +0 -61
- package/dist/deps-send-discord.runtime-C_9HZQko.js +0 -36
- package/dist/deps-send-imessage.runtime-BMhGsWds.js +0 -35
- package/dist/deps-send-signal.runtime-BGhjYiu6.js +0 -34
- package/dist/deps-send-slack.runtime-DjBCu-RX.js +0 -32
- package/dist/deps-send-whatsapp.runtime-CU257URT.js +0 -119
- package/dist/fs-safe-BPQ-per2.js +0 -352
- package/dist/image-runtime-Cxoxcx04.js +0 -55
- package/dist/path-alias-guards-DeOVetT7.js +0 -43
- package/dist/plugin-sdk/accounts-CUEuUR3C.js +0 -46
- package/dist/plugin-sdk/accounts-D0W2pELU.js +0 -288
- package/dist/plugin-sdk/accounts-ucj0odJq.js +0 -35
- package/dist/plugin-sdk/active-listener-BO7eBEG_.js +0 -50
- package/dist/plugin-sdk/api-key-rotation-C4C_mDsg.js +0 -181
- package/dist/plugin-sdk/audio-preflight-Cqdo0JKm.js +0 -69
- package/dist/plugin-sdk/audio-transcription-runner-DnEooIyE.js +0 -2176
- package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +0 -58
- package/dist/plugin-sdk/channel-activity-BMWLw4o2.js +0 -94
- package/dist/plugin-sdk/channel-web-B8bj7MB9.js +0 -2256
- package/dist/plugin-sdk/chrome-CV-q0Lmc.js +0 -2415
- package/dist/plugin-sdk/commands-registry-e7YoqrbP.js +0 -1125
- package/dist/plugin-sdk/config-B2B64aX0.js +0 -17911
- package/dist/plugin-sdk/deliver-BkyBtcLR.js +0 -1694
- package/dist/plugin-sdk/deliver-runtime-O4lwAWMw.js +0 -32
- package/dist/plugin-sdk/deps-send-discord.runtime-BAeeBldY.js +0 -23
- package/dist/plugin-sdk/deps-send-imessage.runtime-EL-CfikZ.js +0 -22
- package/dist/plugin-sdk/deps-send-signal.runtime-BeemHeUu.js +0 -21
- package/dist/plugin-sdk/deps-send-slack.runtime-DTttkC0N.js +0 -19
- package/dist/plugin-sdk/deps-send-telegram.runtime-Dsf9Cnka.js +0 -24
- package/dist/plugin-sdk/deps-send-whatsapp.runtime-DvdFo6lj.js +0 -57
- package/dist/plugin-sdk/diagnostic-DPRVoKTk.js +0 -319
- package/dist/plugin-sdk/errors-B8oJXuCF.js +0 -54
- package/dist/plugin-sdk/fetch-guard-F0Fnqisy.js +0 -156
- package/dist/plugin-sdk/image-cBW8L8pp.js +0 -2310
- package/dist/plugin-sdk/image-ops-BP8ix1GC.js +0 -584
- package/dist/plugin-sdk/image-runtime-9xkgSlNz.js +0 -25
- package/dist/plugin-sdk/ir-DWEc6zOp.js +0 -1296
- package/dist/plugin-sdk/local-roots-BIPT8uAO.js +0 -186
- package/dist/plugin-sdk/logger-DDdrdbDu.js +0 -1163
- package/dist/plugin-sdk/login-BMTiGutN.js +0 -57
- package/dist/plugin-sdk/login-qr-BFxqYUkc.js +0 -320
- package/dist/plugin-sdk/manager-BD-aYaZ8.js +0 -3917
- package/dist/plugin-sdk/manager-runtime-C5bRwUlz.js +0 -15
- package/dist/plugin-sdk/outbound-Bm07xvO6.js +0 -212
- package/dist/plugin-sdk/outbound-attachment-DLsaxDsc.js +0 -19
- package/dist/plugin-sdk/paths-C6W4VHoa.js +0 -166
- package/dist/plugin-sdk/pi-embedded-helpers-BExwPvTh.js +0 -9627
- package/dist/plugin-sdk/pi-model-discovery-DdctvBeX.js +0 -134
- package/dist/plugin-sdk/pi-model-discovery-runtime-DrtpLJjk.js +0 -8
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-rgTz3FBl.js +0 -354
- package/dist/plugin-sdk/plugins-BN64HHZA.js +0 -864
- package/dist/plugin-sdk/proxy-fetch-ZPEvp58f.js +0 -38
- package/dist/plugin-sdk/pw-ai-DBm3RdBK.js +0 -1938
- package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +0 -1011
- package/dist/plugin-sdk/redact-BoNEjbpF.js +0 -319
- package/dist/plugin-sdk/reply-Bp49JV3f.js +0 -98828
- package/dist/plugin-sdk/resolve-outbound-target-DXfjGlZQ.js +0 -40
- package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +0 -1994
- package/dist/plugin-sdk/runtime-whatsapp-login.runtime-D2hkJBa-.js +0 -10
- package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-C06I4adi.js +0 -19
- package/dist/plugin-sdk/send-B9xnwtQ-.js +0 -540
- package/dist/plugin-sdk/send-BxySs-Cu.js +0 -2587
- package/dist/plugin-sdk/send-D9THKp_J.js +0 -414
- package/dist/plugin-sdk/send-DCuaaP2w.js +0 -503
- package/dist/plugin-sdk/send-Dm_-_xje.js +0 -3135
- package/dist/plugin-sdk/session-DDzIZHxt.js +0 -169
- package/dist/plugin-sdk/skill-commands-DRvqtuFC.js +0 -342
- package/dist/plugin-sdk/skills-BWwlfbVj.js +0 -1428
- package/dist/plugin-sdk/slash-commands.runtime-BzYsaTST.js +0 -13
- package/dist/plugin-sdk/slash-dispatch.runtime-Cty8EAD9.js +0 -52
- package/dist/plugin-sdk/slash-skill-commands.runtime-sg98L8BK.js +0 -16
- package/dist/plugin-sdk/ssrf-DOBwjFow.js +0 -202
- package/dist/plugin-sdk/store-BKDR_-Qk.js +0 -81
- package/dist/plugin-sdk/subagent-registry-runtime-Dz50ieim.js +0 -52
- package/dist/plugin-sdk/tables-GIj79us5.js +0 -55
- package/dist/plugin-sdk/thinking-BgdUnMZ2.js +0 -1206
- package/dist/plugin-sdk/tokens-CTIYTLWu.js +0 -52
- package/dist/plugin-sdk/tool-images-GSlvf6RP.js +0 -274
- package/dist/plugin-sdk/web-BK9mCTAc.js +0 -56
- package/dist/plugin-sdk/whatsapp-actions-DQpK_5Ds.js +0 -80
- package/dist/qmd-manager-BsL_hcOB.js +0 -1454
- package/dist/register.configure-BkwbM-hb.js +0 -165
- package/dist/slash-dispatch.runtime-reuPLnse.js +0 -114
- package/dist/subagent-registry-runtime-CqgIWcSl.js +0 -114
- package/dist/target-errors-C_rnMuJ2.js +0 -195
- package/dist/web-w04Gvwqi.js +0 -118
|
@@ -65,6 +65,11 @@ import { DatabaseSync } from "node:sqlite";
|
|
|
65
65
|
* Long-Term Memory — SQLite Schema
|
|
66
66
|
* All tables + FTS5 virtual tables + sync triggers
|
|
67
67
|
*/
|
|
68
|
+
/**
|
|
69
|
+
* Migration statements run after schema creation.
|
|
70
|
+
* Wrapped in try-catch in initSchema() — safe to run on existing DBs.
|
|
71
|
+
*/
|
|
72
|
+
const LONG_TERM_MEMORY_MIGRATIONS = [`ALTER TABLE episodic ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0`, `ALTER TABLE semantic ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0`];
|
|
68
73
|
const LONG_TERM_MEMORY_SCHEMA = `
|
|
69
74
|
PRAGMA journal_mode = WAL;
|
|
70
75
|
PRAGMA foreign_keys = ON;
|
|
@@ -263,6 +268,9 @@ var MemoryManager = class {
|
|
|
263
268
|
}
|
|
264
269
|
initSchema() {
|
|
265
270
|
this.db.exec(LONG_TERM_MEMORY_SCHEMA);
|
|
271
|
+
for (const sql of LONG_TERM_MEMORY_MIGRATIONS) try {
|
|
272
|
+
this.db.exec(sql);
|
|
273
|
+
} catch {}
|
|
266
274
|
}
|
|
267
275
|
close() {
|
|
268
276
|
this.db.close();
|
|
@@ -277,11 +285,20 @@ var MemoryManager = class {
|
|
|
277
285
|
clearWorkingMemory(sessionId) {
|
|
278
286
|
this.db.prepare(`DELETE FROM working_memory WHERE session_id = ? AND agent_id = ? AND user_id = ?`).run(sessionId, this.agentId, this.userId);
|
|
279
287
|
}
|
|
288
|
+
/** Replace all working memory for this agent (working memory = current state, not history) */
|
|
289
|
+
clearAllWorkingMemory() {
|
|
290
|
+
this.db.prepare(`DELETE FROM working_memory WHERE agent_id = ? AND user_id = ?`).run(this.agentId, this.userId);
|
|
291
|
+
}
|
|
292
|
+
/** Get the most recent working memory items across all sessions */
|
|
293
|
+
getLatestWorkingMemory(limit = 5) {
|
|
294
|
+
return this.db.prepare(`SELECT * FROM working_memory WHERE agent_id = ? AND user_id = ?
|
|
295
|
+
ORDER BY created_at DESC LIMIT ?`).all(this.agentId, this.userId, limit);
|
|
296
|
+
}
|
|
280
297
|
addEpisodic(mem) {
|
|
281
298
|
const sortedEntities = [...mem.entities ?? []].toSorted();
|
|
282
299
|
const sortedTags = [...mem.tags ?? []].toSorted();
|
|
283
|
-
return this.db.prepare(`INSERT INTO episodic (agent_id, user_id, session_id, timestamp, summary, entities, tags, importance)
|
|
284
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(this.agentId, this.userId, mem.session_id ?? null, mem.timestamp, mem.summary, JSON.stringify(sortedEntities), JSON.stringify(sortedTags), mem.importance).lastInsertRowid;
|
|
300
|
+
return this.db.prepare(`INSERT INTO episodic (agent_id, user_id, session_id, timestamp, summary, entities, tags, importance, pinned)
|
|
301
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(this.agentId, this.userId, mem.session_id ?? null, mem.timestamp, mem.summary, JSON.stringify(sortedEntities), JSON.stringify(sortedTags), mem.importance, mem.pinned ?? 0).lastInsertRowid;
|
|
285
302
|
}
|
|
286
303
|
getRecentEpisodic(limit = 20) {
|
|
287
304
|
return this.db.prepare(`SELECT * FROM episodic WHERE agent_id = ? AND user_id = ?
|
|
@@ -306,8 +323,8 @@ var MemoryManager = class {
|
|
|
306
323
|
return existing.id;
|
|
307
324
|
}
|
|
308
325
|
}
|
|
309
|
-
return this.db.prepare(`INSERT INTO semantic (agent_id, user_id, fact, subject, category, confidence, source, created_at, updated_at, active)
|
|
310
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 1)`).run(this.agentId, this.userId, mem.fact, mem.subject ?? null, mem.category ?? null, mem.confidence ?? 1, mem.source ?? null, now, now).lastInsertRowid;
|
|
326
|
+
return this.db.prepare(`INSERT INTO semantic (agent_id, user_id, fact, subject, category, confidence, source, created_at, updated_at, active, pinned)
|
|
327
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?)`).run(this.agentId, this.userId, mem.fact, mem.subject ?? null, mem.category ?? null, mem.confidence ?? 1, mem.source ?? null, now, now, mem.pinned ?? 0).lastInsertRowid;
|
|
311
328
|
}
|
|
312
329
|
getActiveSemantic(limit = 50) {
|
|
313
330
|
return this.db.prepare(`SELECT * FROM semantic WHERE agent_id = ? AND user_id = ? AND active = 1
|
|
@@ -434,6 +451,36 @@ var MemoryManager = class {
|
|
|
434
451
|
}
|
|
435
452
|
return output;
|
|
436
453
|
}
|
|
454
|
+
/** Pin a semantic fact permanently (survives cleanup) */
|
|
455
|
+
pinSemantic(id) {
|
|
456
|
+
this.db.prepare(`UPDATE semantic SET pinned = 1 WHERE id = ? AND agent_id = ? AND user_id = ?`).run(id, this.agentId, this.userId);
|
|
457
|
+
}
|
|
458
|
+
/** Pin an episodic memory permanently */
|
|
459
|
+
pinEpisodic(id) {
|
|
460
|
+
this.db.prepare(`UPDATE episodic SET pinned = 1 WHERE id = ? AND agent_id = ? AND user_id = ?`).run(id, this.agentId, this.userId);
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Remove stale memories. Safe to run daily.
|
|
464
|
+
* - Deletes episodic events older than episodicAgeDays (default 90) if not pinned
|
|
465
|
+
* - Deactivates semantic facts not accessed in semanticStaleDays (default 60) if not pinned
|
|
466
|
+
* Returns counts of removed/deactivated items.
|
|
467
|
+
*/
|
|
468
|
+
runCleanup(params) {
|
|
469
|
+
const episodicAgeDays = params?.episodicAgeDays ?? 90;
|
|
470
|
+
const semanticStaleDays = params?.semanticStaleDays ?? 60;
|
|
471
|
+
const now = Date.now();
|
|
472
|
+
const episodicCutoff = now - episodicAgeDays * 24 * 60 * 60 * 1e3;
|
|
473
|
+
const semanticCutoff = now - semanticStaleDays * 24 * 60 * 60 * 1e3;
|
|
474
|
+
const ep = this.db.prepare(`DELETE FROM episodic WHERE agent_id = ? AND user_id = ? AND pinned = 0 AND timestamp < ?`).run(this.agentId, this.userId, episodicCutoff);
|
|
475
|
+
const sem = this.db.prepare(`UPDATE semantic SET active = 0
|
|
476
|
+
WHERE agent_id = ? AND user_id = ? AND pinned = 0 AND active = 1
|
|
477
|
+
AND (last_accessed IS NULL OR last_accessed < ?)
|
|
478
|
+
AND created_at < ?`).run(this.agentId, this.userId, semanticCutoff, semanticCutoff);
|
|
479
|
+
return {
|
|
480
|
+
episodicDeleted: ep.changes,
|
|
481
|
+
semanticDeactivated: sem.changes
|
|
482
|
+
};
|
|
483
|
+
}
|
|
437
484
|
getStats() {
|
|
438
485
|
return {
|
|
439
486
|
episodic: this.db.prepare(`SELECT COUNT(*) as c FROM episodic WHERE agent_id = ? AND user_id = ?`).get(this.agentId, this.userId).c,
|
|
@@ -461,13 +508,16 @@ const EXTRACTION_PROMPT_SYSTEM = `You are a memory extraction assistant. Analyze
|
|
|
461
508
|
Return ONLY valid JSON in this exact format (no markdown, no explanation):
|
|
462
509
|
{
|
|
463
510
|
"episodic": [
|
|
464
|
-
{"summary": "what happened", "entities": ["Person","Project"], "tags": ["tag"], "importance": 7}
|
|
511
|
+
{"summary": "what happened", "entities": ["Person","Project"], "tags": ["tag"], "importance": 7, "pinned": false}
|
|
465
512
|
],
|
|
466
513
|
"semantic": [
|
|
467
|
-
{"fact": "standing fact", "subject": "about what/who", "category": "preference|rule|fact|config", "confidence": 0.9}
|
|
514
|
+
{"fact": "standing fact", "subject": "about what/who", "category": "preference|rule|fact|config", "confidence": 0.9, "pinned": false}
|
|
468
515
|
],
|
|
469
516
|
"procedural": [
|
|
470
517
|
{"name": "procedure_name", "description": "when to use", "steps": ["Step 1", "Step 2"], "tags": ["tag"]}
|
|
518
|
+
],
|
|
519
|
+
"working_memory": [
|
|
520
|
+
{"task": "what was being actively worked on", "project": "ProjectName", "next_step": "the very next action to take"}
|
|
471
521
|
]
|
|
472
522
|
}
|
|
473
523
|
|
|
@@ -476,7 +526,9 @@ Rules:
|
|
|
476
526
|
- Importance: 1=trivial 5=normal 8=important 10=critical
|
|
477
527
|
- Confidence: 0.0=uncertain 0.5=probable 1.0=certain
|
|
478
528
|
- Entities: proper nouns only (people, projects, companies, products, servers)
|
|
479
|
-
- If nothing
|
|
529
|
+
- working_memory: capture ONLY tasks that were actively in progress at session end — things the user would want to continue next time. Max 3 items. If nothing was actively being worked on, return [].
|
|
530
|
+
- PINNED MEMORIES: If the user explicitly says "don't forget", "remember this", "pin this", "never forget", or "always remember" about something — set pinned: true on that memory. Pinned memories are never auto-deleted. All other memories default to pinned: false.
|
|
531
|
+
- If nothing worth remembering: {"episodic":[],"semantic":[],"procedural":[],"working_memory":[]}`;
|
|
480
532
|
/**
|
|
481
533
|
* Run long-term memory extraction on session content.
|
|
482
534
|
* Follows the same pattern as generateSlugViaLLM.
|
|
@@ -561,7 +613,8 @@ ${params.sessionContent.slice(-6e3)}`;
|
|
|
561
613
|
summary: ep.summary,
|
|
562
614
|
entities: ep.entities ?? [],
|
|
563
615
|
tags: ep.tags ?? [],
|
|
564
|
-
importance: Math.max(1, Math.min(10, ep.importance ?? 5))
|
|
616
|
+
importance: Math.max(1, Math.min(10, ep.importance ?? 5)),
|
|
617
|
+
pinned: ep.pinned ? 1 : 0
|
|
565
618
|
});
|
|
566
619
|
created++;
|
|
567
620
|
} catch {
|
|
@@ -579,7 +632,8 @@ ${params.sessionContent.slice(-6e3)}`;
|
|
|
579
632
|
subject: sem.subject,
|
|
580
633
|
category: sem.category,
|
|
581
634
|
confidence: Math.max(0, Math.min(1, sem.confidence ?? 1)),
|
|
582
|
-
source: "auto-extraction"
|
|
635
|
+
source: "auto-extraction",
|
|
636
|
+
pinned: sem.pinned ? 1 : 0
|
|
583
637
|
});
|
|
584
638
|
created++;
|
|
585
639
|
} catch {
|
|
@@ -603,6 +657,24 @@ ${params.sessionContent.slice(-6e3)}`;
|
|
|
603
657
|
skipped++;
|
|
604
658
|
}
|
|
605
659
|
}
|
|
660
|
+
const workingItems = (extracted.working_memory ?? []).filter((w) => typeof w?.task === "string" && w.task.trim().length > 0);
|
|
661
|
+
if (workingItems.length > 0) {
|
|
662
|
+
manager.clearAllWorkingMemory();
|
|
663
|
+
for (const wm of workingItems.slice(0, 3)) try {
|
|
664
|
+
manager.addWorking({
|
|
665
|
+
sessionId: params.sessionId,
|
|
666
|
+
content: JSON.stringify({
|
|
667
|
+
task: wm.task,
|
|
668
|
+
project: wm.project,
|
|
669
|
+
next_step: wm.next_step
|
|
670
|
+
}),
|
|
671
|
+
layerHint: "working"
|
|
672
|
+
});
|
|
673
|
+
created++;
|
|
674
|
+
} catch {
|
|
675
|
+
skipped++;
|
|
676
|
+
}
|
|
677
|
+
}
|
|
606
678
|
manager.logExtraction({
|
|
607
679
|
sessionId: params.sessionId,
|
|
608
680
|
trigger: "session_end",
|
|
@@ -634,6 +706,31 @@ ${params.sessionContent.slice(-6e3)}`;
|
|
|
634
706
|
};
|
|
635
707
|
}
|
|
636
708
|
/**
|
|
709
|
+
* Run daily memory cleanup if 24h have passed since last run.
|
|
710
|
+
* Tracks last run in `memory/.ltm-cleanup-ts` (plain timestamp file).
|
|
711
|
+
*/
|
|
712
|
+
async function runDailyCleanupIfDue(params) {
|
|
713
|
+
const memDir = path.join(params.workspaceDir, "memory");
|
|
714
|
+
const tsFile = path.join(memDir, ".ltm-cleanup-ts");
|
|
715
|
+
const oneDayMs = 1440 * 60 * 1e3;
|
|
716
|
+
try {
|
|
717
|
+
const lastRun = await fs.readFile(tsFile, "utf-8").then(Number).catch(() => 0);
|
|
718
|
+
if (Date.now() - lastRun < oneDayMs) return;
|
|
719
|
+
const manager = new MemoryManager({
|
|
720
|
+
dbPath: params.dbPath,
|
|
721
|
+
agentId: params.agentId,
|
|
722
|
+
userId: params.userId
|
|
723
|
+
});
|
|
724
|
+
const result = manager.runCleanup();
|
|
725
|
+
manager.close();
|
|
726
|
+
await fs.mkdir(memDir, { recursive: true });
|
|
727
|
+
await fs.writeFile(tsFile, String(Date.now()), "utf-8");
|
|
728
|
+
if (result.episodicDeleted > 0 || result.semanticDeactivated > 0) log$1.info(`LTM cleanup: removed ${result.episodicDeleted} old events, deactivated ${result.semanticDeactivated} stale facts`);
|
|
729
|
+
} catch (err) {
|
|
730
|
+
log$1.warn("LTM cleanup skipped", { error: String(err) });
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
/**
|
|
637
734
|
* Write `memory/long-term-context.md` in the workspace.
|
|
638
735
|
* This file is auto-loaded by Squidclaw's bootstrap file system.
|
|
639
736
|
*/
|
|
@@ -643,6 +740,19 @@ async function syncLongTermContextFile(params) {
|
|
|
643
740
|
"*Auto-generated from conversation history. Updated at session end.*",
|
|
644
741
|
""
|
|
645
742
|
];
|
|
743
|
+
const working = params.manager.getLatestWorkingMemory(3);
|
|
744
|
+
if (working.length > 0) {
|
|
745
|
+
lines.push("### 🔄 Active Work (Resume Here)");
|
|
746
|
+
for (const w of working) try {
|
|
747
|
+
const parsed = JSON.parse(w.content);
|
|
748
|
+
const proj = parsed.project ? `**[${parsed.project}]** ` : "";
|
|
749
|
+
const next = parsed.next_step ? ` → Next: ${parsed.next_step}` : "";
|
|
750
|
+
lines.push(`- ${proj}${parsed.task}${next}`);
|
|
751
|
+
} catch {
|
|
752
|
+
lines.push(`- ${w.content}`);
|
|
753
|
+
}
|
|
754
|
+
lines.push("");
|
|
755
|
+
}
|
|
646
756
|
const semantic = params.manager.getActiveSemantic(40);
|
|
647
757
|
if (semantic.length > 0) {
|
|
648
758
|
lines.push("### Facts & Preferences");
|
|
@@ -668,7 +778,7 @@ async function syncLongTermContextFile(params) {
|
|
|
668
778
|
lines.push("");
|
|
669
779
|
}
|
|
670
780
|
const stats = params.manager.getStats();
|
|
671
|
-
lines.push(`*${stats.episodic} events · ${stats.semantic} facts · ${stats.procedural} workflows*`);
|
|
781
|
+
lines.push(`*${stats.episodic} events · ${stats.semantic} facts · ${stats.procedural} workflows · ${stats.working} active tasks*`);
|
|
672
782
|
const memDir = path.join(params.workspaceDir, "memory");
|
|
673
783
|
await fs.mkdir(memDir, { recursive: true });
|
|
674
784
|
await fs.writeFile(path.join(memDir, "long-term-context.md"), lines.join("\n"), "utf-8");
|
|
@@ -856,8 +966,13 @@ const saveSessionToMemory = async (event) => {
|
|
|
856
966
|
agentId: ltmAgentId,
|
|
857
967
|
userId: ltmAgentId,
|
|
858
968
|
dbPath: ltmDbPath
|
|
859
|
-
}).
|
|
860
|
-
|
|
969
|
+
}).then(() => runDailyCleanupIfDue({
|
|
970
|
+
dbPath: ltmDbPath,
|
|
971
|
+
workspaceDir,
|
|
972
|
+
agentId: ltmAgentId,
|
|
973
|
+
userId: ltmAgentId
|
|
974
|
+
})).catch((err) => {
|
|
975
|
+
log.warn("Long-term memory extraction/cleanup failed (non-fatal)", { error: String(err) });
|
|
861
976
|
});
|
|
862
977
|
});
|
|
863
978
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-CHIu6D1E.js";
|
|
2
|
-
import { lt as secretRefKey, x as resolveSecretRefValues, z as loadConfig } from "./auth-profiles-
|
|
2
|
+
import { lt as secretRefKey, x as resolveSecretRefValues, z as loadConfig } from "./auth-profiles-CX4YYu7Z.js";
|
|
3
3
|
import { b as shortenHomeInString, s as ensureDir, t as CONFIG_DIR, v as resolveUserPath } from "./utils-D6vohX1h.js";
|
|
4
4
|
import { A as hasConfiguredSecretInput, F as resolveSecretInputRef } from "./registry-BXcl3IkC.js";
|
|
5
5
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DqvtYF2o.js";
|
|
6
|
-
import { Mt as PROTOCOL_VERSION, en as normalizeFingerprint, nn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-
|
|
7
|
-
import { i as isSecureWebSocketUrl } from "./net-
|
|
6
|
+
import { Mt as PROTOCOL_VERSION, en as normalizeFingerprint, nn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-G9E5HGM2.js";
|
|
7
|
+
import { i as isSecureWebSocketUrl } from "./net-CCnbGop3.js";
|
|
8
8
|
import { t as resolveGatewayCredentialsFromConfig } from "./credentials-CyQeGziJ.js";
|
|
9
9
|
import { execFile } from "node:child_process";
|
|
10
10
|
import path from "node:path";
|
|
11
11
|
import { promisify } from "node:util";
|
|
12
|
-
import
|
|
12
|
+
import fs from "node:fs/promises";
|
|
13
13
|
import { X509Certificate, randomUUID } from "node:crypto";
|
|
14
14
|
|
|
15
15
|
//#region src/infra/tls/gateway.ts
|
|
16
16
|
const execFileAsync = promisify(execFile);
|
|
17
17
|
async function fileExists(filePath) {
|
|
18
18
|
try {
|
|
19
|
-
await
|
|
19
|
+
await fs.access(filePath);
|
|
20
20
|
return true;
|
|
21
21
|
} catch {
|
|
22
22
|
return false;
|
|
@@ -43,8 +43,8 @@ async function generateSelfSignedCert(params) {
|
|
|
43
43
|
"-subj",
|
|
44
44
|
"/CN=squidclaw-gateway"
|
|
45
45
|
]);
|
|
46
|
-
await
|
|
47
|
-
await
|
|
46
|
+
await fs.chmod(params.keyPath, 384).catch(() => {});
|
|
47
|
+
await fs.chmod(params.certPath, 384).catch(() => {});
|
|
48
48
|
params.log?.info?.(`gateway tls: generated self-signed cert at ${shortenHomeInString(params.certPath)}`);
|
|
49
49
|
}
|
|
50
50
|
async function loadGatewayTlsRuntime(cfg, log) {
|
|
@@ -82,9 +82,9 @@ async function loadGatewayTlsRuntime(cfg, log) {
|
|
|
82
82
|
error: "gateway tls: cert/key missing"
|
|
83
83
|
};
|
|
84
84
|
try {
|
|
85
|
-
const cert = await
|
|
86
|
-
const key = await
|
|
87
|
-
const ca = caPath ? await
|
|
85
|
+
const cert = await fs.readFile(certPath, "utf8");
|
|
86
|
+
const key = await fs.readFile(keyPath, "utf8");
|
|
87
|
+
const ca = caPath ? await fs.readFile(caPath, "utf8") : void 0;
|
|
88
88
|
const fingerprintSha256 = normalizeFingerprint(new X509Certificate(cert).fingerprint256 ?? "");
|
|
89
89
|
if (!fingerprintSha256) return {
|
|
90
90
|
enabled: false,
|
|
@@ -2,7 +2,7 @@ import { t as runCommandWithTimeout } from "./exec-TSiqsZw1.js";
|
|
|
2
2
|
import { n as fetchWithTimeout } from "./fetch-timeout-Mawkd1Br.js";
|
|
3
3
|
import { t as resolveChannelDefaultAccountId } from "./helpers-D7MilaX-.js";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import
|
|
5
|
+
import fs from "node:fs/promises";
|
|
6
6
|
|
|
7
7
|
//#region src/infra/update-channels.ts
|
|
8
8
|
const DEFAULT_PACKAGE_CHANNEL = "stable";
|
|
@@ -86,11 +86,11 @@ function resolveUpdateChannelDisplay(params) {
|
|
|
86
86
|
//#region src/infra/detect-package-manager.ts
|
|
87
87
|
async function detectPackageManager$1(root) {
|
|
88
88
|
try {
|
|
89
|
-
const raw = await
|
|
89
|
+
const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
|
|
90
90
|
const pm = JSON.parse(raw)?.packageManager?.split("@")[0]?.trim();
|
|
91
91
|
if (pm === "pnpm" || pm === "bun" || pm === "npm") return pm;
|
|
92
92
|
} catch {}
|
|
93
|
-
const files = await
|
|
93
|
+
const files = await fs.readdir(root).catch(() => []);
|
|
94
94
|
if (files.includes("pnpm-lock.yaml")) return "pnpm";
|
|
95
95
|
if (files.includes("bun.lockb")) return "bun";
|
|
96
96
|
if (files.includes("package-lock.json")) return "npm";
|
|
@@ -112,7 +112,7 @@ function formatGitInstallLabel(update) {
|
|
|
112
112
|
}
|
|
113
113
|
async function exists(p) {
|
|
114
114
|
try {
|
|
115
|
-
await
|
|
115
|
+
await fs.access(p);
|
|
116
116
|
return true;
|
|
117
117
|
} catch {
|
|
118
118
|
return false;
|
|
@@ -239,7 +239,7 @@ async function checkGitUpdateStatus(params) {
|
|
|
239
239
|
}
|
|
240
240
|
async function statMtimeMs(p) {
|
|
241
241
|
try {
|
|
242
|
-
return (await
|
|
242
|
+
return (await fs.stat(p)).mtimeMs;
|
|
243
243
|
} catch {
|
|
244
244
|
return null;
|
|
245
245
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as createSubsystemLogger } from "./subsystem-Bw5n50gj.js";
|
|
2
|
-
import { Xr as resolveRetryConfig, Zr as retryAsync } from "./auth-profiles-
|
|
2
|
+
import { Xr as resolveRetryConfig, Zr as retryAsync } from "./auth-profiles-CX4YYu7Z.js";
|
|
3
3
|
import { r as formatErrorMessage } from "./errors-BnRmsfe-.js";
|
|
4
4
|
import { RateLimitError } from "@buape/carbon";
|
|
5
5
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as isTruthyEnvValue } from "./entry.js";
|
|
2
2
|
import { n as CHAT_CHANNEL_ORDER } from "./registry-BXcl3IkC.js";
|
|
3
|
-
import { n as listChannelPlugins } from "./plugins-
|
|
4
|
-
import { a as listChannelPluginCatalogEntries } from "./plugin-auto-enable-
|
|
5
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
3
|
+
import { n as listChannelPlugins } from "./plugins-BDTkSIi7.js";
|
|
4
|
+
import { a as listChannelPluginCatalogEntries } from "./plugin-auto-enable-DJkHW_LG.js";
|
|
5
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D3PnPE1D.js";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import fs from "node:fs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as listDeliverableMessageChannels, l as normalizeMessageChannel, n as isDeliverableMessageChannel } from "./message-channel-DqvtYF2o.js";
|
|
2
|
-
import { n as listChannelPlugins } from "./plugins-
|
|
2
|
+
import { n as listChannelPlugins } from "./plugins-BDTkSIi7.js";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/outbound/channel-selection.ts
|
|
5
5
|
const getMessageChannels = () => listDeliverableMessageChannels();
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { a as logVerbose, c as shouldLogVerbose, m as getChildLogger } from "./globals-BrhVUl-N.js";
|
|
2
2
|
import { d as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Bw5n50gj.js";
|
|
3
|
-
import { z as loadConfig } from "./auth-profiles-
|
|
3
|
+
import { z as loadConfig } from "./auth-profiles-CX4YYu7Z.js";
|
|
4
4
|
import { t as formatCliCommand } from "./command-format-D8-lYArk.js";
|
|
5
5
|
import { a as buildGroupHistoryKey, c as normalizeAgentId, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey } from "./session-key-k6urs9r-.js";
|
|
6
6
|
import { S as sleep, _ as resolveJidToE164, d as isSelfChatMode, f as jidToE164, n as clamp, p as normalizeE164, w as toWhatsappJid } from "./utils-D6vohX1h.js";
|
|
7
|
-
import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-
|
|
8
|
-
import { c as recordSessionMetaFromInbound, lt as resolveGroupSessionKey, o as loadSessionStore, u as updateLastRoute } from "./sessions-
|
|
9
|
-
import { i as resolveWhatsAppAccount, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-
|
|
10
|
-
import { $ as shouldAckReactionForWhatsApp, A as resolveInboundSessionEnvelopeContext, Ct as resolveAgentRoute, Dn as normalizeGroupActivation, G as buildPairingReply, J as buildHistoryContextFromEntries, K as resolveMentionGating, On as parseActivationCommand, Q as warnMissingProviderGroupPolicyFallbackOnce, Sr as resolveMessagePrefix, St as buildAgentSessionKey, Un as enqueueSystemEvent, W as createReplyPrefixOptions, X as resolveDefaultGroupPolicy, Y as recordPendingHistoryEntryIfEnabled, Z as resolveOpenProviderRuntimeGroupPolicy, ct as createDedupeCache, dr as hasControlCommand, et as dispatchReplyWithBufferedBlockDispatcher, fr as shouldComputeCommandAuthorized, gr as normalizeMentionText, hr as buildMentionRegexes, it as formatInboundEnvelope, lt as getReplyFromConfig, nt as createInboundDebouncer, q as DEFAULT_GROUP_HISTORY_LIMIT, rt as resolveInboundDebounceMs, sr as finalizeInboundContext, xr as resolveIdentityNamePrefix } from "./subagent-registry-
|
|
7
|
+
import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-DJJAj46v.js";
|
|
8
|
+
import { c as recordSessionMetaFromInbound, lt as resolveGroupSessionKey, o as loadSessionStore, u as updateLastRoute } from "./sessions-BWptzMw0.js";
|
|
9
|
+
import { i as resolveWhatsAppAccount, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-BK8I0Svb.js";
|
|
10
|
+
import { $ as shouldAckReactionForWhatsApp, A as resolveInboundSessionEnvelopeContext, Ct as resolveAgentRoute, Dn as normalizeGroupActivation, G as buildPairingReply, J as buildHistoryContextFromEntries, K as resolveMentionGating, On as parseActivationCommand, Q as warnMissingProviderGroupPolicyFallbackOnce, Sr as resolveMessagePrefix, St as buildAgentSessionKey, Un as enqueueSystemEvent, W as createReplyPrefixOptions, X as resolveDefaultGroupPolicy, Y as recordPendingHistoryEntryIfEnabled, Z as resolveOpenProviderRuntimeGroupPolicy, ct as createDedupeCache, dr as hasControlCommand, et as dispatchReplyWithBufferedBlockDispatcher, fr as shouldComputeCommandAuthorized, gr as normalizeMentionText, hr as buildMentionRegexes, it as formatInboundEnvelope, lt as getReplyFromConfig, nt as createInboundDebouncer, q as DEFAULT_GROUP_HISTORY_LIMIT, rt as resolveInboundDebounceMs, sr as finalizeInboundContext, xr as resolveIdentityNamePrefix } from "./subagent-registry-CIgFD2oi.js";
|
|
11
11
|
import { c as resolveStorePath } from "./paths-Dn_rzeZN.js";
|
|
12
|
-
import { K as formatLocationText, q as toLocationContext } from "./send-
|
|
13
|
-
import { i as saveMediaBuffer } from "./store-
|
|
14
|
-
import { i as getAgentScopedMediaLocalRoots } from "./fetch-
|
|
15
|
-
import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-
|
|
16
|
-
import { a as loadWebMedia, d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, m as resolveChunkMode, s as resolveMarkdownTableMode } from "./ir-
|
|
17
|
-
import { s as upsertChannelPairingRequest } from "./pairing-store-
|
|
12
|
+
import { K as formatLocationText, q as toLocationContext } from "./send-RDqyJwZx.js";
|
|
13
|
+
import { i as saveMediaBuffer } from "./store-BEIcnlgx.js";
|
|
14
|
+
import { i as getAgentScopedMediaLocalRoots } from "./fetch-CtoC2wgs.js";
|
|
15
|
+
import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-DvQksGUE.js";
|
|
16
|
+
import { a as loadWebMedia, d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, m as resolveChunkMode, s as resolveMarkdownTableMode } from "./ir-BukzlgSp.js";
|
|
17
|
+
import { s as upsertChannelPairingRequest } from "./pairing-store-D0eOXyby.js";
|
|
18
18
|
import { r as formatDurationPrecise } from "./format-duration-CZ0b60YO.js";
|
|
19
|
-
import { f as computeBackoff, p as sleepWithAbort } from "./session-utils-
|
|
20
|
-
import { n as recordChannelActivity } from "./channel-activity-
|
|
21
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
19
|
+
import { f as computeBackoff, p as sleepWithAbort } from "./session-utils-XY6JwRhT.js";
|
|
20
|
+
import { n as recordChannelActivity } from "./channel-activity-BZKeZQH-.js";
|
|
21
|
+
import { t as convertMarkdownTables } from "./tables-CIpKClDV.js";
|
|
22
22
|
import { r as setActiveWebListener } from "./active-listener-tA6LTRr3.js";
|
|
23
|
-
import { c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, u as resolveDmGroupAccessWithCommandGate } from "./pi-tools.policy-
|
|
24
|
-
import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-
|
|
25
|
-
import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-
|
|
23
|
+
import { c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, u as resolveDmGroupAccessWithCommandGate } from "./pi-tools.policy-BwWnFLLV.js";
|
|
24
|
+
import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-B7m9Vcd2.js";
|
|
25
|
+
import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-D0jodcgT.js";
|
|
26
26
|
import { randomUUID } from "node:crypto";
|
|
27
27
|
import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
|
|
28
28
|
|