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.
Files changed (329) hide show
  1. package/dist/{accounts-BH9Qo1sQ.js → accounts-BK8I0Svb.js} +7 -7
  2. package/dist/{accounts-Cuwg9Tan.js → accounts-DeqNOvBo.js} +1 -1
  3. package/dist/{accounts-B1RxFghM.js → accounts-KzgPbLHP.js} +1 -1
  4. package/dist/{acp-cli-Ch55Vzud.js → acp-cli-BwG98FYT.js} +8 -8
  5. package/dist/{agent-scope-nEVgVklg.js → agent-scope-Cq4vDGrK.js} +17 -17
  6. package/dist/{agents-B-ig6ydU.js → agents-DXKtU4Il.js} +14 -14
  7. package/dist/{agents.config-w_Z6Fb4-.js → agents.config-BM-2SLCh.js} +2 -2
  8. package/dist/{api-key-rotation-JPmjv-c0.js → api-key-rotation-6i41mEc9.js} +1 -1
  9. package/dist/{audio-preflight-lT9iRnYi.js → audio-preflight-Bzo_zN4j.js} +4 -4
  10. package/dist/{audio-preflight-CZ--cSZh.js → audio-preflight-C-JCwUKe.js} +34 -34
  11. package/dist/{audio-transcription-runner-YiR1ym3a.js → audio-transcription-runner-Cp_lkLCv.js} +1 -1
  12. package/dist/{audio-transcription-runner-D-uxpkbd.js → audio-transcription-runner-DvQksGUE.js} +23 -23
  13. package/dist/{audit-JLT1FqTt.js → audit-DLTgNDFw.js} +29 -29
  14. package/dist/{auth-BlP9BwaD.js → auth-CuObxnC4.js} +1 -1
  15. package/dist/{auth-choice-Czu7271G.js → auth-choice-BVQQneHM.js} +13 -13
  16. package/dist/{auth-choice-ORZHjbsv.js → auth-choice-CXepQc7c.js} +11 -11
  17. package/dist/{auth-choice.apply-helpers-CdoXMtxm.js → auth-choice.apply-helpers-p1y_DmDT.js} +1 -1
  18. package/dist/{auth-profiles-9T4j6jMy.js → auth-profiles-CX4YYu7Z.js} +16 -16
  19. package/dist/{auth-token-BFc70pes.js → auth-token-Dlk7MMsC.js} +1 -1
  20. package/dist/{banner-CwNmI5G-.js → banner-DMfuBV69.js} +2 -2
  21. package/dist/{bonjour-discovery-eqJcK09r.js → bonjour-discovery-BHz2I6_W.js} +1 -1
  22. package/dist/{browser-cli-DCDPC5sg.js → browser-cli-Dvwk4zAD.js} +12 -12
  23. package/dist/build-info.json +3 -3
  24. package/dist/bundled/session-memory/handler.js +127 -12
  25. package/dist/{call-D7jOWSFr.js → call-BlWEBz99.js} +10 -10
  26. package/dist/{channel-account-context-DJ3rHgVO.js → channel-account-context-CQ6rCiGI.js} +5 -5
  27. package/dist/{channel-activity-wuB3-cfR.js → channel-activity-BZKeZQH-.js} +1 -1
  28. package/dist/{channel-options-BS7BSU_5.js → channel-options-CQ-gER0J.js} +3 -3
  29. package/dist/{channel-selection-CFWQq1nS.js → channel-selection-BqwS1Rlq.js} +1 -1
  30. package/dist/{channel-web-C1qYz-HK.js → channel-web-LLzBxZrT.js} +17 -17
  31. package/dist/{channels-cli-CVNqp5q7.js → channels-cli-D4xUEYYC.js} +93 -93
  32. package/dist/{channels-status-issues-Erzzhl2e.js → channels-status-issues-Dz1_R7Ah.js} +1 -1
  33. package/dist/{chrome-CuBHInKC.js → chrome-CZQnp4VH.js} +8 -8
  34. package/dist/{chrome-DiktJpMU.js → chrome-CoRiYsNu.js} +4 -4
  35. package/dist/{clawbot-cli-C3bt-FEP.js → clawbot-cli-2Zlim_pH.js} +11 -11
  36. package/dist/cli/daemon-cli.js +1 -1
  37. package/dist/{cli-Jyqv2jm8.js → cli-CAID9zkL.js} +73 -73
  38. package/dist/{client-COy24r9W.js → client-G9E5HGM2.js} +2 -2
  39. package/dist/{command-registry-DCojicSG.js → command-registry-AHS8_9da.js} +11 -11
  40. package/dist/{command-secret-targets-CZjP-Bm5.js → command-secret-targets-DAu5nw-j.js} +4 -4
  41. package/dist/{commands-DDHiW-As.js → commands-CnX9I_l4.js} +1 -1
  42. package/dist/{commands-registry--ITOJ-cM.js → commands-registry-_r_JONI4.js} +3 -3
  43. package/dist/{completion-cli-DCTv7Ejv.js → completion-cli-BR1r9_h4.js} +13 -13
  44. package/dist/{config-cli-CSPSSP_R.js → config-cli-D0A8Awoo.js} +7 -7
  45. package/dist/{config-guard-CFauJm79.js → config-guard-BHy2f0hU.js} +3 -3
  46. package/dist/{config-validation-Bt3LfFJ0.js → config-validation-BkvDORAk.js} +3 -3
  47. package/dist/{configure-DAol2gT6.js → configure-XmOqwwy9.js} +17 -17
  48. package/dist/{control-ui-assets-d6VtDSeo.js → control-ui-assets-BYEy341x.js} +1 -1
  49. package/dist/{cron-cli-yS1ww1k2.js → cron-cli-QwZcnjJc.js} +11 -11
  50. package/dist/{daemon-cli-B-yZvTqZ.js → daemon-cli-kJfDhzr8.js} +15 -15
  51. package/dist/{daemon-install-CbPLNiIP.js → daemon-install-Chxlu9Kv.js} +4 -4
  52. package/dist/{daemon-install-helpers-CZDVO_MU.js → daemon-install-helpers-CJtiW2RE.js} +11 -11
  53. package/dist/{deliver-6zfT7daI.js → deliver-B4WWPQvt.js} +1 -1
  54. package/dist/{deliver-D-IQEJ52.js → deliver-CL2RW5UB.js} +7 -7
  55. package/dist/deliver-runtime-C08pF1_3.js +61 -0
  56. package/dist/{deliver-runtime-MBexxUuG.js → deliver-runtime-CeE1X9si.js} +3 -3
  57. package/dist/deps-send-discord.runtime-r80y9aXF.js +36 -0
  58. package/dist/deps-send-imessage.runtime-BmocBgPM.js +35 -0
  59. package/dist/deps-send-signal.runtime-ByJt6qz-.js +34 -0
  60. package/dist/deps-send-slack.runtime-C3UUEG9J.js +32 -0
  61. package/dist/{deps-send-telegram.runtime-Irv0ky5l.js → deps-send-telegram.runtime-BHaZAs2h.js} +16 -16
  62. package/dist/{deps-send-whatsapp.runtime-CrxkfP31.js → deps-send-whatsapp.runtime-COv_qoD2.js} +7 -7
  63. package/dist/deps-send-whatsapp.runtime-__ogpmJj.js +119 -0
  64. package/dist/{devices-cli-CPgutgUT.js → devices-cli-DlQGTogF.js} +8 -8
  65. package/dist/{diagnostic-B4w80e4D.js → diagnostic-CLEtu0MC.js} +1 -1
  66. package/dist/{diagnostics-m7hHHbuE.js → diagnostics--O6mo6KH.js} +5 -5
  67. package/dist/{directory-cli-DqObADBL.js → directory-cli-K9qIwxYa.js} +7 -7
  68. package/dist/{dns-cli-CKbwsWBv.js → dns-cli-qtX-WNMF.js} +5 -5
  69. package/dist/{dock-W3cGg46W.js → dock-DJJAj46v.js} +4 -4
  70. package/dist/{docs-cli-BpZtes_j.js → docs-cli--gGxz79Z.js} +4 -4
  71. package/dist/{doctor-completion--7PR_Vqz.js → doctor-completion-CZoEdMS-.js} +2 -2
  72. package/dist/{doctor-config-flow-BDF7TR6O.js → doctor-config-flow-C-h3yV4z.js} +15 -15
  73. package/dist/{enable--Q7yLTZm.js → enable-C8FNY18p.js} +1 -1
  74. package/dist/entry.js +2 -2
  75. package/dist/{exec-approvals-allowlist-B9bcJkGP.js → exec-approvals-allowlist-CtSREgYh.js} +1 -1
  76. package/dist/{exec-approvals-cli-homtziYt.js → exec-approvals-cli-BmM4RpVn.js} +16 -16
  77. package/dist/{exec-safe-bin-runtime-policy-DECo77U6.js → exec-safe-bin-runtime-policy-CfQeDABF.js} +2 -2
  78. package/dist/extensionAPI.js +6 -6
  79. package/dist/{fetch-lq0SDLLE.js → fetch-CtoC2wgs.js} +3 -3
  80. package/dist/{fetch-guard-CbtWqa1E.js → fetch-guard-Dvzi3MjK.js} +1 -1
  81. package/dist/{plugin-sdk/fs-safe-Dqmpk-Fr.js → fs-safe-DPYj7h8A.js} +6 -6
  82. package/dist/{gateway-cli-B3oqskb4.js → gateway-cli-BJHBChfI.js} +153 -153
  83. package/dist/{gateway-rpc-BBBN9ZJk.js → gateway-rpc-D0AmaBzR.js} +1 -1
  84. package/dist/{health-CjXrJkCb.js → health-XFKFZ7ZJ.js} +11 -11
  85. package/dist/{hooks-cli--aKmd8c9.js → hooks-cli-CXsZK8H9.js} +81 -81
  86. package/dist/{hooks-status-BlgSVDvN.js → hooks-status-DMFBAUq8.js} +1 -1
  87. package/dist/{image-VgwN31FZ.js → image-DKkuLtZ4.js} +1 -1
  88. package/dist/{image-BcYt63Jx.js → image-DSWTfuxv.js} +5 -5
  89. package/dist/{image-ops-LFsSCTyI.js → image-ops-B2uuLIGD.js} +10 -10
  90. package/dist/{image-runtime-CwMuTYvd.js → image-runtime-BMavqm9n.js} +3 -3
  91. package/dist/image-runtime-cza2NTiZ.js +55 -0
  92. package/dist/{inspect-CzsXBsew.js → inspect-4c1uL0x5.js} +4 -4
  93. package/dist/{install-safe-path-DqI19VEv.js → install-safe-path-3muwy3fu.js} +25 -25
  94. package/dist/{installs-P-pYAJm1.js → installs-BiQDtPF0.js} +9 -9
  95. package/dist/{ipv4-B95173MB.js → ipv4-sHllwvAI.js} +1 -1
  96. package/dist/{ir-C7He5vmn.js → ir-BukzlgSp.js} +8 -8
  97. package/dist/{issue-format-CbTfB8Hy.js → issue-format-DCcINW-9.js} +1 -1
  98. package/dist/{json-files-rR19q30D.js → json-files-CuJjdF_0.js} +8 -8
  99. package/dist/{lifecycle-core-ChKClWdw.js → lifecycle-core-CqFEhwHn.js} +5 -5
  100. package/dist/{login-qr-CX0rs3A6.js → login-qr-B8P_EAd-.js} +6 -6
  101. package/dist/{login-CjzRATwO.js → login-zoeewfBu.js} +3 -3
  102. package/dist/{logs-cli-DvHsw1WZ.js → logs-cli-D30BUN6y.js} +9 -9
  103. package/dist/{manager-BVfTfggO.js → manager-5OzUkYLf.js} +14 -14
  104. package/dist/{manager-runtime-BXJJSlzC.js → manager-runtime-BxXpVt3x.js} +9 -9
  105. package/dist/{manifest-registry-1ACGW3OR.js → manifest-registry-7kwtbCH-.js} +1 -1
  106. package/dist/{memory-cli-u8eyO3Ec.js → memory-cli-Dj8tyFtt.js} +12 -12
  107. package/dist/{model-D7hZpWTB.js → model-B8p-EsdJ.js} +2 -2
  108. package/dist/{model-catalog-Drh9Rois.js → model-catalog-BWuvEv1x.js} +3 -3
  109. package/dist/{model-picker-DK_vvKCV.js → model-picker-CLhaaagi.js} +4 -4
  110. package/dist/{models-CFXLX9IF.js → models-5VXwJBU2.js} +17 -17
  111. package/dist/{models-cli-PHQyKESa.js → models-cli-Br56IHfy.js} +78 -78
  112. package/dist/{models-config-DAastTau.js → models-config-poV-4Xlx.js} +6 -6
  113. package/dist/{net-CIh5ellr.js → net-CCnbGop3.js} +2 -2
  114. package/dist/{node-cli-o9qcU9GJ.js → node-cli-C8hvYquX.js} +33 -33
  115. package/dist/{node-command-policy-BeTSnoyk.js → node-command-policy-B_D5ucTj.js} +1 -1
  116. package/dist/{node-service-OVe0_CIs.js → node-service-Z0JprJda.js} +1 -1
  117. package/dist/{nodes-cli-kGx_Qa3c.js → nodes-cli-IIc8fTKT.js} +16 -16
  118. package/dist/{nodes-screen-BrMJzhot.js → nodes-screen-DFFmbaXE.js} +7 -7
  119. package/dist/{npm-pack-install-Dn3FiWXB.js → npm-pack-install-B887us7R.js} +18 -18
  120. package/dist/{npm-resolution-ky_uAlXE.js → npm-resolution-CKtyq4FH.js} +4 -4
  121. package/dist/{onboard-channels-oJCC_sJX.js → onboard-channels-_kVo3Apf.js} +21 -21
  122. package/dist/{onboard-custom-CRpsaM3g.js → onboard-custom-CZtjqrY7.js} +4 -4
  123. package/dist/{onboard-helpers-DwEZeaoe.js → onboard-helpers-BP429__H.js} +10 -10
  124. package/dist/{onboard-hooks-DyxckB2C.js → onboard-hooks-CTbjgLDl.js} +4 -4
  125. package/dist/{onboard-D1Qy64JK.js → onboard-lFwpCpC3.js} +6 -6
  126. package/dist/{onboard-remote-ZgpWNq9Z.js → onboard-remote-BlZB0AE9.js} +4 -4
  127. package/dist/{onboard-skills-DEijVfCg.js → onboard-skills-BT2YOXeP.js} +4 -4
  128. package/dist/{onboarding-Mxqy4O1E.js → onboarding-EEd_g8Zg.js} +14 -14
  129. package/dist/{onboarding.finalize-DiOMx6A5.js → onboarding.finalize-Cs1ukjFN.js} +90 -90
  130. package/dist/{onboarding.gateway-config-9wkBCzzO.js → onboarding.gateway-config-C6N8r5Is.js} +18 -18
  131. package/dist/{onboarding.secret-input-DRnoQSlI.js → onboarding.secret-input-BTK1IG-J.js} +1 -1
  132. package/dist/{openai-model-default-DqE4bNtd.js → openai-model-default-COzeuAI4.js} +2 -2
  133. package/dist/{outbound-CwzUo-rx.js → outbound-B7m9Vcd2.js} +3 -3
  134. package/dist/{outbound-attachment-Bedqixj2.js → outbound-attachment-fdEhzyl9.js} +2 -2
  135. package/dist/{pairing-cli-CsYP0at7.js → pairing-cli-NhoRKes6.js} +8 -8
  136. package/dist/{pairing-labels-CX4CtqRa.js → pairing-labels-CnTvFrUT.js} +1 -1
  137. package/dist/{pairing-store-BC4mnG9S.js → pairing-store-D0eOXyby.js} +3 -3
  138. package/dist/{plugin-sdk/path-alias-guards-gBhrAn14.js → path-alias-guards-vfYYQFIg.js} +1 -1
  139. package/dist/{path-safety-D7CjFQvf.js → path-safety-C95DzArw.js} +1 -1
  140. package/dist/{paths-D6mnO6Ni.js → paths-DfuVHiHu.js} +9 -9
  141. package/dist/{pi-embedded-BN8fghaF.js → pi-embedded-BR5y0dLa.js} +24 -24
  142. package/dist/{pi-embedded-helpers-A9VYPVCH.js → pi-embedded-helpers-CEHpGDRs.js} +3 -3
  143. package/dist/{pi-embedded-helpers-DtCOZSv-.js → pi-embedded-helpers-qCAK_a65.js} +6 -6
  144. package/dist/{pi-model-discovery-Cr1q2cJt.js → pi-model-discovery-CKUePiDc.js} +1 -1
  145. package/dist/{pi-model-discovery-runtime-BHmdAKBK.js → pi-model-discovery-runtime-CNLKih0w.js} +5 -5
  146. package/dist/{pi-tools.before-tool-call.runtime-duKHqrMc.js → pi-tools.before-tool-call.runtime-Bba7rXQq.js} +5 -5
  147. package/dist/{pi-tools.policy-D3RA94WF.js → pi-tools.policy-BwWnFLLV.js} +5 -5
  148. package/dist/{plugin-auto-enable-a3TK3OPT.js → plugin-auto-enable-DJkHW_LG.js} +3 -3
  149. package/dist/{plugin-registry-CFqqDqQV.js → plugin-registry-D3PnPE1D.js} +3 -3
  150. package/dist/plugin-sdk/discord.js +6 -6
  151. package/dist/plugin-sdk/index.js +50 -50
  152. package/dist/plugin-sdk/mattermost.js +3 -3
  153. package/dist/plugin-sdk/signal.js +2 -2
  154. package/dist/{plugins-Bc7YM9X-.js → plugins-BDTkSIi7.js} +2 -2
  155. package/dist/{plugins-cli-vQi8tFye.js → plugins-cli-BA_2daJe.js} +83 -83
  156. package/dist/{ports-DMeUt80n.js → ports-0jLyYbvQ.js} +2 -2
  157. package/dist/{ports-BzfeaNjw.js → ports-Be82TlEg.js} +1 -1
  158. package/dist/{program-Nott_VTb.js → program-D_xdLzmM.js} +81 -81
  159. package/dist/{prompt-select-styled-7mnlZgrQ.js → prompt-select-styled-BsheNEnh.js} +40 -40
  160. package/dist/{provider-auth-helpers-_77rN3Zc.js → provider-auth-helpers-B5kD4Lt6.js} +5 -5
  161. package/dist/{proxy-env-BiKHVg2h.js → proxy-env-CQTuxZoS.js} +1 -1
  162. package/dist/{push-apns-Ce1zzNYB.js → push-apns-BbenjEX4.js} +5 -5
  163. package/dist/{pw-ai-CM87tQwG.js → pw-ai-Du22SYoO.js} +1 -1
  164. package/dist/{pw-ai-CAhTwexx.js → pw-ai-wo5t_KO_.js} +18 -18
  165. package/dist/{plugin-sdk/qmd-manager-6bozlfFg.js → qmd-manager-BkSWV1Q1.js} +17 -11
  166. package/dist/{qr-cli-DzjBpGix.js → qr-cli-DSMYIp-D.js} +2 -2
  167. package/dist/{query-expansion-C0HUJbRn.js → query-expansion-DI9INxTg.js} +12 -12
  168. package/dist/{redact-snapshot-C0McNGqh.js → redact-snapshot-B2YFI3cO.js} +1 -1
  169. package/dist/{register.agent-DtjNdvUh.js → register.agent-Dk_5V5oA.js} +94 -94
  170. package/dist/register.configure-C8OFfGln.js +165 -0
  171. package/dist/{register.maintenance-DERKsSgi.js → register.maintenance-CluQOq8b.js} +95 -95
  172. package/dist/{register.message-DkYxt6gZ.js → register.message-BCTXT5yK.js} +74 -74
  173. package/dist/{register.onboard-BtfW83M0.js → register.onboard-C64oXnvq.js} +18 -18
  174. package/dist/{register.setup-Ba9gMkRk.js → register.setup-Dl3nk2Ui.js} +21 -21
  175. package/dist/{register.status-health-sessions-BILdpWJV.js → register.status-health-sessions-BHtbPeCO.js} +88 -88
  176. package/dist/{register.subclis-Dfm_Zu31.js → register.subclis-CDMFyaKR.js} +31 -31
  177. package/dist/{rpc-mau2U4RG.js → rpc-DA9IhLVG.js} +1 -1
  178. package/dist/{run-main-BF7ybLIy.js → run-main-BcA22Ipv.js} +93 -93
  179. package/dist/{runtime-Bcmv4Epp.js → runtime-BnbzNRr6.js} +3 -3
  180. package/dist/{runtime-config-collectors-Bsjz4isf.js → runtime-config-collectors-CXJdhHRo.js} +1 -1
  181. package/dist/{runtime-whatsapp-login.runtime-COUEKxmy.js → runtime-whatsapp-login.runtime-DRoK8G8H.js} +7 -7
  182. package/dist/{runtime-whatsapp-outbound.runtime-BaWH6-ns.js → runtime-whatsapp-outbound.runtime-C9OiwkWh.js} +15 -15
  183. package/dist/{sandbox-ixDhkfHu.js → sandbox-C3TbYIHd.js} +18 -18
  184. package/dist/{sandbox-cli-DOxm7fjR.js → sandbox-cli-BwK2slfh.js} +25 -25
  185. package/dist/{secrets-cli-DvXznMUb.js → secrets-cli-Beu2lcrf.js} +11 -11
  186. package/dist/{security-cli-3WOXvJR-.js → security-cli-CcpKH_lC.js} +42 -42
  187. package/dist/{send-BuBTLRMz.js → send-CLI3CiQv.js} +6 -6
  188. package/dist/{send-Do2preUU.js → send-DEs83M9V.js} +11 -11
  189. package/dist/{send-BPgrWmUX.js → send-EVcbFVqn.js} +5 -5
  190. package/dist/{send-BVyLW1cn.js → send-RDqyJwZx.js} +8 -8
  191. package/dist/{send-BpkluEZ5.js → send-z-sMjqvX.js} +4 -4
  192. package/dist/{server-DMAPnkgM.js → server-Bm-IxvZZ.js} +20 -20
  193. package/dist/{server-context-Dd8UynDU.js → server-context-Dw_4lGoI.js} +12 -12
  194. package/dist/{server-lifecycle-BEZ2jsQ6.js → server-lifecycle-DYgHYif9.js} +2 -2
  195. package/dist/{server-middleware-B_LyQkOL.js → server-middleware-BVAEuQs7.js} +1 -1
  196. package/dist/{server-node-events-dr5CaM3M.js → server-node-events-Q0cT2ifj.js} +74 -74
  197. package/dist/{service-B5T42CWZ.js → service-DSqxS6_D.js} +15 -15
  198. package/dist/{session-eXSdl5mb.js → session-D0jodcgT.js} +1 -1
  199. package/dist/{session-utils-D12gSo5W.js → session-utils-XY6JwRhT.js} +6 -6
  200. package/dist/{sessions-DgnXAQCc.js → sessions-BWptzMw0.js} +15 -15
  201. package/dist/{sessions-C16G7L5c.js → sessions-CMqv9JEu.js} +4 -4
  202. package/dist/{shared-BYny1RCF.js → shared-BbVxcRzb.js} +3 -3
  203. package/dist/{shared-By6_qr_R.js → shared-D5DTxBPH.js} +1 -1
  204. package/dist/{skill-commands-BcigmiOW.js → skill-commands-fU-Mejn9.js} +5 -5
  205. package/dist/{skill-scanner--QKHR8U0.js → skill-scanner-CvS725eQ.js} +6 -6
  206. package/dist/{skills-EwyaIyKC.js → skills-C85azDXm.js} +3 -3
  207. package/dist/{skills-cli-CqEjN0Yj.js → skills-cli-ZXx6BNar.js} +5 -5
  208. package/dist/{skills-install-CXVKvhIE.js → skills-install-KD6dzNoZ.js} +6 -6
  209. package/dist/{skills-status-Bv8Xt7Lc.js → skills-status-DkO7rxE8.js} +1 -1
  210. package/dist/{slash-commands.runtime-Bi99B_EP.js → slash-commands.runtime-CPlXJtuM.js} +11 -11
  211. package/dist/slash-dispatch.runtime-BOMEVFk0.js +114 -0
  212. package/dist/{slash-dispatch.runtime-sXaUYn4v.js → slash-dispatch.runtime-BcecLKcJ.js} +6 -6
  213. package/dist/{slash-skill-commands.runtime-DOXmvOtU.js → slash-skill-commands.runtime-Cnfq_5LN.js} +15 -15
  214. package/dist/{squidclaw-root-JXyRbQLJ.js → squidclaw-root-BQfLymzj.js} +8 -8
  215. package/dist/{status-Dnl-Um1D.js → status-cU9cJReo.js} +27 -27
  216. package/dist/{status.update-BGIm6we4.js → status.update-CiLU9RPF.js} +2 -2
  217. package/dist/{store-BTkIx401.js → store-BEIcnlgx.js} +5 -5
  218. package/dist/{subagent-registry-CQA6P2FO.js → subagent-registry-CIgFD2oi.js} +149 -149
  219. package/dist/{subagent-registry-runtime-232sNNT6.js → subagent-registry-runtime-Cq9I6PwW.js} +6 -6
  220. package/dist/subagent-registry-runtime-DGTjU9Lb.js +114 -0
  221. package/dist/{system-cli-CJAQxYHv.js → system-cli-i1FWZDjn.js} +9 -9
  222. package/dist/{system-run-command-BaSqmSwR.js → system-run-command-COqCNIBg.js} +1 -1
  223. package/dist/{systemd-B86VePXs.js → systemd-Cj2cX_ZP.js} +9 -9
  224. package/dist/{systemd-hints-BmFWZu_j.js → systemd-hints-46PqJfaq.js} +6 -6
  225. package/dist/{systemd-linger-w7fvBU-1.js → systemd-linger-6Jd9K5p2.js} +1 -1
  226. package/dist/{tables-CGh4CW_h.js → tables-CIpKClDV.js} +1 -1
  227. package/dist/{tailnet-DJq7Mi1o.js → tailnet-CZANZjq6.js} +1 -1
  228. package/dist/{plugin-sdk/target-errors-jlLHihbX.js → target-errors-CRQlPF1u.js} +2 -2
  229. package/dist/{tool-images-D6mmxuWS.js → tool-images-CyzWvDUu.js} +1 -1
  230. package/dist/{tui-BbcmzKaA.js → tui-CC_AbfZr.js} +6 -6
  231. package/dist/{tui-cli-Dv3jSm3x.js → tui-cli-DiJ7zKUD.js} +32 -32
  232. package/dist/{update-BhRrb6BI.js → update-1JhjCqjy.js} +3 -3
  233. package/dist/{update-cli-Oe0fP8x9.js → update-cli-DM_dUip_.js} +104 -104
  234. package/dist/{update-runner-DdA6xBa9.js → update-runner-BBJZmfZ4.js} +16 -16
  235. package/dist/{web-Chw1dtKA.js → web-CWxO_flK.js} +6 -6
  236. package/dist/web-CZhZC1EA.js +118 -0
  237. package/dist/{webhooks-cli-CJLug1QH.js → webhooks-cli-CzDd8ikc.js} +6 -6
  238. package/dist/{whatsapp-actions-_ca5OtHq.js → whatsapp-actions-MR_bBjXO.js} +17 -17
  239. package/dist/{with-timeout-CFfRudNc.js → with-timeout-BZ_Teugb.js} +3 -3
  240. package/dist/{workspace-BbO-M3Jv.js → workspace-D5vNjk5G.js} +1 -1
  241. package/dist/{workspace-dirs-D8D-Ghcl.js → workspace-dirs-CjMIsQti.js} +1 -1
  242. package/dist/{wsl-CsGe5QCP.js → wsl-CvQfS6aU.js} +2 -2
  243. package/package.json +1 -1
  244. package/dist/deliver-runtime-zICm26tE.js +0 -61
  245. package/dist/deps-send-discord.runtime-C_9HZQko.js +0 -36
  246. package/dist/deps-send-imessage.runtime-BMhGsWds.js +0 -35
  247. package/dist/deps-send-signal.runtime-BGhjYiu6.js +0 -34
  248. package/dist/deps-send-slack.runtime-DjBCu-RX.js +0 -32
  249. package/dist/deps-send-whatsapp.runtime-CU257URT.js +0 -119
  250. package/dist/fs-safe-BPQ-per2.js +0 -352
  251. package/dist/image-runtime-Cxoxcx04.js +0 -55
  252. package/dist/path-alias-guards-DeOVetT7.js +0 -43
  253. package/dist/plugin-sdk/accounts-CUEuUR3C.js +0 -46
  254. package/dist/plugin-sdk/accounts-D0W2pELU.js +0 -288
  255. package/dist/plugin-sdk/accounts-ucj0odJq.js +0 -35
  256. package/dist/plugin-sdk/active-listener-BO7eBEG_.js +0 -50
  257. package/dist/plugin-sdk/api-key-rotation-C4C_mDsg.js +0 -181
  258. package/dist/plugin-sdk/audio-preflight-Cqdo0JKm.js +0 -69
  259. package/dist/plugin-sdk/audio-transcription-runner-DnEooIyE.js +0 -2176
  260. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +0 -58
  261. package/dist/plugin-sdk/channel-activity-BMWLw4o2.js +0 -94
  262. package/dist/plugin-sdk/channel-web-B8bj7MB9.js +0 -2256
  263. package/dist/plugin-sdk/chrome-CV-q0Lmc.js +0 -2415
  264. package/dist/plugin-sdk/commands-registry-e7YoqrbP.js +0 -1125
  265. package/dist/plugin-sdk/config-B2B64aX0.js +0 -17911
  266. package/dist/plugin-sdk/deliver-BkyBtcLR.js +0 -1694
  267. package/dist/plugin-sdk/deliver-runtime-O4lwAWMw.js +0 -32
  268. package/dist/plugin-sdk/deps-send-discord.runtime-BAeeBldY.js +0 -23
  269. package/dist/plugin-sdk/deps-send-imessage.runtime-EL-CfikZ.js +0 -22
  270. package/dist/plugin-sdk/deps-send-signal.runtime-BeemHeUu.js +0 -21
  271. package/dist/plugin-sdk/deps-send-slack.runtime-DTttkC0N.js +0 -19
  272. package/dist/plugin-sdk/deps-send-telegram.runtime-Dsf9Cnka.js +0 -24
  273. package/dist/plugin-sdk/deps-send-whatsapp.runtime-DvdFo6lj.js +0 -57
  274. package/dist/plugin-sdk/diagnostic-DPRVoKTk.js +0 -319
  275. package/dist/plugin-sdk/errors-B8oJXuCF.js +0 -54
  276. package/dist/plugin-sdk/fetch-guard-F0Fnqisy.js +0 -156
  277. package/dist/plugin-sdk/image-cBW8L8pp.js +0 -2310
  278. package/dist/plugin-sdk/image-ops-BP8ix1GC.js +0 -584
  279. package/dist/plugin-sdk/image-runtime-9xkgSlNz.js +0 -25
  280. package/dist/plugin-sdk/ir-DWEc6zOp.js +0 -1296
  281. package/dist/plugin-sdk/local-roots-BIPT8uAO.js +0 -186
  282. package/dist/plugin-sdk/logger-DDdrdbDu.js +0 -1163
  283. package/dist/plugin-sdk/login-BMTiGutN.js +0 -57
  284. package/dist/plugin-sdk/login-qr-BFxqYUkc.js +0 -320
  285. package/dist/plugin-sdk/manager-BD-aYaZ8.js +0 -3917
  286. package/dist/plugin-sdk/manager-runtime-C5bRwUlz.js +0 -15
  287. package/dist/plugin-sdk/outbound-Bm07xvO6.js +0 -212
  288. package/dist/plugin-sdk/outbound-attachment-DLsaxDsc.js +0 -19
  289. package/dist/plugin-sdk/paths-C6W4VHoa.js +0 -166
  290. package/dist/plugin-sdk/pi-embedded-helpers-BExwPvTh.js +0 -9627
  291. package/dist/plugin-sdk/pi-model-discovery-DdctvBeX.js +0 -134
  292. package/dist/plugin-sdk/pi-model-discovery-runtime-DrtpLJjk.js +0 -8
  293. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-rgTz3FBl.js +0 -354
  294. package/dist/plugin-sdk/plugins-BN64HHZA.js +0 -864
  295. package/dist/plugin-sdk/proxy-fetch-ZPEvp58f.js +0 -38
  296. package/dist/plugin-sdk/pw-ai-DBm3RdBK.js +0 -1938
  297. package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +0 -1011
  298. package/dist/plugin-sdk/redact-BoNEjbpF.js +0 -319
  299. package/dist/plugin-sdk/reply-Bp49JV3f.js +0 -98828
  300. package/dist/plugin-sdk/resolve-outbound-target-DXfjGlZQ.js +0 -40
  301. package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +0 -1994
  302. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-D2hkJBa-.js +0 -10
  303. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-C06I4adi.js +0 -19
  304. package/dist/plugin-sdk/send-B9xnwtQ-.js +0 -540
  305. package/dist/plugin-sdk/send-BxySs-Cu.js +0 -2587
  306. package/dist/plugin-sdk/send-D9THKp_J.js +0 -414
  307. package/dist/plugin-sdk/send-DCuaaP2w.js +0 -503
  308. package/dist/plugin-sdk/send-Dm_-_xje.js +0 -3135
  309. package/dist/plugin-sdk/session-DDzIZHxt.js +0 -169
  310. package/dist/plugin-sdk/skill-commands-DRvqtuFC.js +0 -342
  311. package/dist/plugin-sdk/skills-BWwlfbVj.js +0 -1428
  312. package/dist/plugin-sdk/slash-commands.runtime-BzYsaTST.js +0 -13
  313. package/dist/plugin-sdk/slash-dispatch.runtime-Cty8EAD9.js +0 -52
  314. package/dist/plugin-sdk/slash-skill-commands.runtime-sg98L8BK.js +0 -16
  315. package/dist/plugin-sdk/ssrf-DOBwjFow.js +0 -202
  316. package/dist/plugin-sdk/store-BKDR_-Qk.js +0 -81
  317. package/dist/plugin-sdk/subagent-registry-runtime-Dz50ieim.js +0 -52
  318. package/dist/plugin-sdk/tables-GIj79us5.js +0 -55
  319. package/dist/plugin-sdk/thinking-BgdUnMZ2.js +0 -1206
  320. package/dist/plugin-sdk/tokens-CTIYTLWu.js +0 -52
  321. package/dist/plugin-sdk/tool-images-GSlvf6RP.js +0 -274
  322. package/dist/plugin-sdk/web-BK9mCTAc.js +0 -56
  323. package/dist/plugin-sdk/whatsapp-actions-DQpK_5Ds.js +0 -80
  324. package/dist/qmd-manager-BsL_hcOB.js +0 -1454
  325. package/dist/register.configure-BkwbM-hb.js +0 -165
  326. package/dist/slash-dispatch.runtime-reuPLnse.js +0 -114
  327. package/dist/subagent-registry-runtime-CqgIWcSl.js +0 -114
  328. package/dist/target-errors-C_rnMuJ2.js +0 -195
  329. package/dist/web-w04Gvwqi.js +0 -118
@@ -1,1011 +0,0 @@
1
- import { t as runTasksWithConcurrency } from "./run-with-concurrency-5DMu9szx.js";
2
- import { a as createSubsystemLogger } from "./logger-DDdrdbDu.js";
3
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-C6W4VHoa.js";
4
- import { t as redactSensitiveText } from "./redact-BoNEjbpF.js";
5
- import { createRequire } from "node:module";
6
- import fs from "node:fs";
7
- import path from "node:path";
8
- import fs$1 from "node:fs/promises";
9
- import crypto from "node:crypto";
10
-
11
- //#region src/memory/fs-utils.ts
12
- function isFileMissingError(err) {
13
- return Boolean(err && typeof err === "object" && "code" in err && err.code === "ENOENT");
14
- }
15
- async function statRegularFile(absPath) {
16
- let stat;
17
- try {
18
- stat = await fs$1.lstat(absPath);
19
- } catch (err) {
20
- if (isFileMissingError(err)) return { missing: true };
21
- throw err;
22
- }
23
- if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("path required");
24
- return {
25
- missing: false,
26
- stat
27
- };
28
- }
29
-
30
- //#endregion
31
- //#region src/memory/internal.ts
32
- function ensureDir(dir) {
33
- try {
34
- fs.mkdirSync(dir, { recursive: true });
35
- } catch {}
36
- return dir;
37
- }
38
- function normalizeRelPath(value) {
39
- return value.trim().replace(/^[./]+/, "").replace(/\\/g, "/");
40
- }
41
- function normalizeExtraMemoryPaths(workspaceDir, extraPaths) {
42
- if (!extraPaths?.length) return [];
43
- const resolved = extraPaths.map((value) => value.trim()).filter(Boolean).map((value) => path.isAbsolute(value) ? path.resolve(value) : path.resolve(workspaceDir, value));
44
- return Array.from(new Set(resolved));
45
- }
46
- function isMemoryPath(relPath) {
47
- const normalized = normalizeRelPath(relPath);
48
- if (!normalized) return false;
49
- if (normalized === "MEMORY.md" || normalized === "memory.md") return true;
50
- return normalized.startsWith("memory/");
51
- }
52
- async function walkDir(dir, files) {
53
- const entries = await fs$1.readdir(dir, { withFileTypes: true });
54
- for (const entry of entries) {
55
- const full = path.join(dir, entry.name);
56
- if (entry.isSymbolicLink()) continue;
57
- if (entry.isDirectory()) {
58
- await walkDir(full, files);
59
- continue;
60
- }
61
- if (!entry.isFile()) continue;
62
- if (!entry.name.endsWith(".md")) continue;
63
- files.push(full);
64
- }
65
- }
66
- async function listMemoryFiles(workspaceDir, extraPaths) {
67
- const result = [];
68
- const memoryFile = path.join(workspaceDir, "MEMORY.md");
69
- const altMemoryFile = path.join(workspaceDir, "memory.md");
70
- const memoryDir = path.join(workspaceDir, "memory");
71
- const addMarkdownFile = async (absPath) => {
72
- try {
73
- const stat = await fs$1.lstat(absPath);
74
- if (stat.isSymbolicLink() || !stat.isFile()) return;
75
- if (!absPath.endsWith(".md")) return;
76
- result.push(absPath);
77
- } catch {}
78
- };
79
- await addMarkdownFile(memoryFile);
80
- await addMarkdownFile(altMemoryFile);
81
- try {
82
- const dirStat = await fs$1.lstat(memoryDir);
83
- if (!dirStat.isSymbolicLink() && dirStat.isDirectory()) await walkDir(memoryDir, result);
84
- } catch {}
85
- const normalizedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
86
- if (normalizedExtraPaths.length > 0) for (const inputPath of normalizedExtraPaths) try {
87
- const stat = await fs$1.lstat(inputPath);
88
- if (stat.isSymbolicLink()) continue;
89
- if (stat.isDirectory()) {
90
- await walkDir(inputPath, result);
91
- continue;
92
- }
93
- if (stat.isFile() && inputPath.endsWith(".md")) result.push(inputPath);
94
- } catch {}
95
- if (result.length <= 1) return result;
96
- const seen = /* @__PURE__ */ new Set();
97
- const deduped = [];
98
- for (const entry of result) {
99
- let key = entry;
100
- try {
101
- key = await fs$1.realpath(entry);
102
- } catch {}
103
- if (seen.has(key)) continue;
104
- seen.add(key);
105
- deduped.push(entry);
106
- }
107
- return deduped;
108
- }
109
- function hashText(value) {
110
- return crypto.createHash("sha256").update(value).digest("hex");
111
- }
112
- async function buildFileEntry(absPath, workspaceDir) {
113
- let stat;
114
- try {
115
- stat = await fs$1.stat(absPath);
116
- } catch (err) {
117
- if (isFileMissingError(err)) return null;
118
- throw err;
119
- }
120
- let content;
121
- try {
122
- content = await fs$1.readFile(absPath, "utf-8");
123
- } catch (err) {
124
- if (isFileMissingError(err)) return null;
125
- throw err;
126
- }
127
- const hash = hashText(content);
128
- return {
129
- path: path.relative(workspaceDir, absPath).replace(/\\/g, "/"),
130
- absPath,
131
- mtimeMs: stat.mtimeMs,
132
- size: stat.size,
133
- hash
134
- };
135
- }
136
- function chunkMarkdown(content, chunking) {
137
- const lines = content.split("\n");
138
- if (lines.length === 0) return [];
139
- const maxChars = Math.max(32, chunking.tokens * 4);
140
- const overlapChars = Math.max(0, chunking.overlap * 4);
141
- const chunks = [];
142
- let current = [];
143
- let currentChars = 0;
144
- const flush = () => {
145
- if (current.length === 0) return;
146
- const firstEntry = current[0];
147
- const lastEntry = current[current.length - 1];
148
- if (!firstEntry || !lastEntry) return;
149
- const text = current.map((entry) => entry.line).join("\n");
150
- const startLine = firstEntry.lineNo;
151
- const endLine = lastEntry.lineNo;
152
- chunks.push({
153
- startLine,
154
- endLine,
155
- text,
156
- hash: hashText(text)
157
- });
158
- };
159
- const carryOverlap = () => {
160
- if (overlapChars <= 0 || current.length === 0) {
161
- current = [];
162
- currentChars = 0;
163
- return;
164
- }
165
- let acc = 0;
166
- const kept = [];
167
- for (let i = current.length - 1; i >= 0; i -= 1) {
168
- const entry = current[i];
169
- if (!entry) continue;
170
- acc += entry.line.length + 1;
171
- kept.unshift(entry);
172
- if (acc >= overlapChars) break;
173
- }
174
- current = kept;
175
- currentChars = kept.reduce((sum, entry) => sum + entry.line.length + 1, 0);
176
- };
177
- for (let i = 0; i < lines.length; i += 1) {
178
- const line = lines[i] ?? "";
179
- const lineNo = i + 1;
180
- const segments = [];
181
- if (line.length === 0) segments.push("");
182
- else for (let start = 0; start < line.length; start += maxChars) segments.push(line.slice(start, start + maxChars));
183
- for (const segment of segments) {
184
- const lineSize = segment.length + 1;
185
- if (currentChars + lineSize > maxChars && current.length > 0) {
186
- flush();
187
- carryOverlap();
188
- }
189
- current.push({
190
- line: segment,
191
- lineNo
192
- });
193
- currentChars += lineSize;
194
- }
195
- }
196
- flush();
197
- return chunks;
198
- }
199
- /**
200
- * Remap chunk startLine/endLine from content-relative positions to original
201
- * source file positions using a lineMap. Each entry in lineMap gives the
202
- * 1-indexed source line for the corresponding 0-indexed content line.
203
- *
204
- * This is used for session JSONL files where buildSessionEntry() flattens
205
- * messages into a plain-text string before chunking. Without remapping the
206
- * stored line numbers would reference positions in the flattened text rather
207
- * than the original JSONL file.
208
- */
209
- function remapChunkLines(chunks, lineMap) {
210
- if (!lineMap || lineMap.length === 0) return;
211
- for (const chunk of chunks) {
212
- chunk.startLine = lineMap[chunk.startLine - 1] ?? chunk.startLine;
213
- chunk.endLine = lineMap[chunk.endLine - 1] ?? chunk.endLine;
214
- }
215
- }
216
- function parseEmbedding(raw) {
217
- try {
218
- const parsed = JSON.parse(raw);
219
- return Array.isArray(parsed) ? parsed : [];
220
- } catch {
221
- return [];
222
- }
223
- }
224
- function cosineSimilarity(a, b) {
225
- if (a.length === 0 || b.length === 0) return 0;
226
- const len = Math.min(a.length, b.length);
227
- let dot = 0;
228
- let normA = 0;
229
- let normB = 0;
230
- for (let i = 0; i < len; i += 1) {
231
- const av = a[i] ?? 0;
232
- const bv = b[i] ?? 0;
233
- dot += av * bv;
234
- normA += av * av;
235
- normB += bv * bv;
236
- }
237
- if (normA === 0 || normB === 0) return 0;
238
- return dot / (Math.sqrt(normA) * Math.sqrt(normB));
239
- }
240
- async function runWithConcurrency(tasks, limit) {
241
- const { results, firstError, hasError } = await runTasksWithConcurrency({
242
- tasks,
243
- limit,
244
- errorMode: "stop"
245
- });
246
- if (hasError) throw firstError;
247
- return results;
248
- }
249
-
250
- //#endregion
251
- //#region src/memory/session-files.ts
252
- const log = createSubsystemLogger("memory");
253
- async function listSessionFilesForAgent(agentId) {
254
- const dir = resolveSessionTranscriptsDirForAgent(agentId);
255
- try {
256
- return (await fs$1.readdir(dir, { withFileTypes: true })).filter((entry) => entry.isFile()).map((entry) => entry.name).filter((name) => name.endsWith(".jsonl")).map((name) => path.join(dir, name));
257
- } catch {
258
- return [];
259
- }
260
- }
261
- function sessionPathForFile(absPath) {
262
- return path.join("sessions", path.basename(absPath)).replace(/\\/g, "/");
263
- }
264
- function normalizeSessionText(value) {
265
- return value.replace(/\s*\n+\s*/g, " ").replace(/\s+/g, " ").trim();
266
- }
267
- function extractSessionText(content) {
268
- if (typeof content === "string") {
269
- const normalized = normalizeSessionText(content);
270
- return normalized ? normalized : null;
271
- }
272
- if (!Array.isArray(content)) return null;
273
- const parts = [];
274
- for (const block of content) {
275
- if (!block || typeof block !== "object") continue;
276
- const record = block;
277
- if (record.type !== "text" || typeof record.text !== "string") continue;
278
- const normalized = normalizeSessionText(record.text);
279
- if (normalized) parts.push(normalized);
280
- }
281
- if (parts.length === 0) return null;
282
- return parts.join(" ");
283
- }
284
- async function buildSessionEntry(absPath) {
285
- try {
286
- const stat = await fs$1.stat(absPath);
287
- const lines = (await fs$1.readFile(absPath, "utf-8")).split("\n");
288
- const collected = [];
289
- const lineMap = [];
290
- for (let jsonlIdx = 0; jsonlIdx < lines.length; jsonlIdx++) {
291
- const line = lines[jsonlIdx];
292
- if (!line.trim()) continue;
293
- let record;
294
- try {
295
- record = JSON.parse(line);
296
- } catch {
297
- continue;
298
- }
299
- if (!record || typeof record !== "object" || record.type !== "message") continue;
300
- const message = record.message;
301
- if (!message || typeof message.role !== "string") continue;
302
- if (message.role !== "user" && message.role !== "assistant") continue;
303
- const text = extractSessionText(message.content);
304
- if (!text) continue;
305
- const safe = redactSensitiveText(text, { mode: "tools" });
306
- const label = message.role === "user" ? "User" : "Assistant";
307
- collected.push(`${label}: ${safe}`);
308
- lineMap.push(jsonlIdx + 1);
309
- }
310
- const content = collected.join("\n");
311
- return {
312
- path: sessionPathForFile(absPath),
313
- absPath,
314
- mtimeMs: stat.mtimeMs,
315
- size: stat.size,
316
- hash: hashText(content + "\n" + lineMap.join(",")),
317
- content,
318
- lineMap
319
- };
320
- } catch (err) {
321
- log.debug(`Failed reading session file ${absPath}: ${String(err)}`);
322
- return null;
323
- }
324
- }
325
-
326
- //#endregion
327
- //#region src/infra/warning-filter.ts
328
- const warningFilterKey = Symbol.for("squidclaw.warning-filter");
329
- function shouldIgnoreWarning(warning) {
330
- if (warning.code === "DEP0040" && warning.message?.includes("punycode")) return true;
331
- if (warning.code === "DEP0060" && warning.message?.includes("util._extend")) return true;
332
- if (warning.name === "ExperimentalWarning" && warning.message?.includes("SQLite is an experimental feature")) return true;
333
- return false;
334
- }
335
- function normalizeWarningArgs(args) {
336
- const warningArg = args[0];
337
- const secondArg = args[1];
338
- const thirdArg = args[2];
339
- let name;
340
- let code;
341
- let message;
342
- if (warningArg instanceof Error) {
343
- name = warningArg.name;
344
- message = warningArg.message;
345
- code = warningArg.code;
346
- } else if (typeof warningArg === "string") message = warningArg;
347
- if (secondArg && typeof secondArg === "object" && !Array.isArray(secondArg)) {
348
- const options = secondArg;
349
- if (typeof options.type === "string") name = options.type;
350
- if (typeof options.code === "string") code = options.code;
351
- } else {
352
- if (typeof secondArg === "string") name = secondArg;
353
- if (typeof thirdArg === "string") code = thirdArg;
354
- }
355
- return {
356
- name,
357
- code,
358
- message
359
- };
360
- }
361
- function installProcessWarningFilter() {
362
- const globalState = globalThis;
363
- if (globalState[warningFilterKey]?.installed) return;
364
- const originalEmitWarning = process.emitWarning.bind(process);
365
- const wrappedEmitWarning = ((...args) => {
366
- if (shouldIgnoreWarning(normalizeWarningArgs(args))) return;
367
- return Reflect.apply(originalEmitWarning, process, args);
368
- });
369
- process.emitWarning = wrappedEmitWarning;
370
- globalState[warningFilterKey] = { installed: true };
371
- }
372
-
373
- //#endregion
374
- //#region src/memory/sqlite.ts
375
- const require = createRequire(import.meta.url);
376
- function requireNodeSqlite() {
377
- installProcessWarningFilter();
378
- try {
379
- return require("node:sqlite");
380
- } catch (err) {
381
- const message = err instanceof Error ? err.message : String(err);
382
- throw new Error(`SQLite support is unavailable in this Node runtime (missing node:sqlite). ${message}`, { cause: err });
383
- }
384
- }
385
-
386
- //#endregion
387
- //#region src/memory/query-expansion.ts
388
- /**
389
- * Query expansion for FTS-only search mode.
390
- *
391
- * When no embedding provider is available, we fall back to FTS (full-text search).
392
- * FTS works best with specific keywords, but users often ask conversational queries
393
- * like "that thing we discussed yesterday" or "之前讨论的那个方案".
394
- *
395
- * This module extracts meaningful keywords from such queries to improve FTS results.
396
- */
397
- const STOP_WORDS_EN = new Set([
398
- "a",
399
- "an",
400
- "the",
401
- "this",
402
- "that",
403
- "these",
404
- "those",
405
- "i",
406
- "me",
407
- "my",
408
- "we",
409
- "our",
410
- "you",
411
- "your",
412
- "he",
413
- "she",
414
- "it",
415
- "they",
416
- "them",
417
- "is",
418
- "are",
419
- "was",
420
- "were",
421
- "be",
422
- "been",
423
- "being",
424
- "have",
425
- "has",
426
- "had",
427
- "do",
428
- "does",
429
- "did",
430
- "will",
431
- "would",
432
- "could",
433
- "should",
434
- "can",
435
- "may",
436
- "might",
437
- "in",
438
- "on",
439
- "at",
440
- "to",
441
- "for",
442
- "of",
443
- "with",
444
- "by",
445
- "from",
446
- "about",
447
- "into",
448
- "through",
449
- "during",
450
- "before",
451
- "after",
452
- "above",
453
- "below",
454
- "between",
455
- "under",
456
- "over",
457
- "and",
458
- "or",
459
- "but",
460
- "if",
461
- "then",
462
- "because",
463
- "as",
464
- "while",
465
- "when",
466
- "where",
467
- "what",
468
- "which",
469
- "who",
470
- "how",
471
- "why",
472
- "yesterday",
473
- "today",
474
- "tomorrow",
475
- "earlier",
476
- "later",
477
- "recently",
478
- "before",
479
- "ago",
480
- "just",
481
- "now",
482
- "thing",
483
- "things",
484
- "stuff",
485
- "something",
486
- "anything",
487
- "everything",
488
- "nothing",
489
- "please",
490
- "help",
491
- "find",
492
- "show",
493
- "get",
494
- "tell",
495
- "give"
496
- ]);
497
- const STOP_WORDS_ES = new Set([
498
- "el",
499
- "la",
500
- "los",
501
- "las",
502
- "un",
503
- "una",
504
- "unos",
505
- "unas",
506
- "este",
507
- "esta",
508
- "ese",
509
- "esa",
510
- "yo",
511
- "me",
512
- "mi",
513
- "nosotros",
514
- "nosotras",
515
- "tu",
516
- "tus",
517
- "usted",
518
- "ustedes",
519
- "ellos",
520
- "ellas",
521
- "de",
522
- "del",
523
- "a",
524
- "en",
525
- "con",
526
- "por",
527
- "para",
528
- "sobre",
529
- "entre",
530
- "y",
531
- "o",
532
- "pero",
533
- "si",
534
- "porque",
535
- "como",
536
- "es",
537
- "son",
538
- "fue",
539
- "fueron",
540
- "ser",
541
- "estar",
542
- "haber",
543
- "tener",
544
- "hacer",
545
- "ayer",
546
- "hoy",
547
- "mañana",
548
- "antes",
549
- "despues",
550
- "después",
551
- "ahora",
552
- "recientemente",
553
- "que",
554
- "qué",
555
- "cómo",
556
- "cuando",
557
- "cuándo",
558
- "donde",
559
- "dónde",
560
- "porqué",
561
- "favor",
562
- "ayuda"
563
- ]);
564
- const STOP_WORDS_PT = new Set([
565
- "o",
566
- "a",
567
- "os",
568
- "as",
569
- "um",
570
- "uma",
571
- "uns",
572
- "umas",
573
- "este",
574
- "esta",
575
- "esse",
576
- "essa",
577
- "eu",
578
- "me",
579
- "meu",
580
- "minha",
581
- "nos",
582
- "nós",
583
- "você",
584
- "vocês",
585
- "ele",
586
- "ela",
587
- "eles",
588
- "elas",
589
- "de",
590
- "do",
591
- "da",
592
- "em",
593
- "com",
594
- "por",
595
- "para",
596
- "sobre",
597
- "entre",
598
- "e",
599
- "ou",
600
- "mas",
601
- "se",
602
- "porque",
603
- "como",
604
- "é",
605
- "são",
606
- "foi",
607
- "foram",
608
- "ser",
609
- "estar",
610
- "ter",
611
- "fazer",
612
- "ontem",
613
- "hoje",
614
- "amanhã",
615
- "antes",
616
- "depois",
617
- "agora",
618
- "recentemente",
619
- "que",
620
- "quê",
621
- "quando",
622
- "onde",
623
- "porquê",
624
- "favor",
625
- "ajuda"
626
- ]);
627
- const STOP_WORDS_AR = new Set([
628
- "ال",
629
- "و",
630
- "أو",
631
- "لكن",
632
- "ثم",
633
- "بل",
634
- "أنا",
635
- "نحن",
636
- "هو",
637
- "هي",
638
- "هم",
639
- "هذا",
640
- "هذه",
641
- "ذلك",
642
- "تلك",
643
- "هنا",
644
- "هناك",
645
- "من",
646
- "إلى",
647
- "الى",
648
- "في",
649
- "على",
650
- "عن",
651
- "مع",
652
- "بين",
653
- "ل",
654
- "ب",
655
- "ك",
656
- "كان",
657
- "كانت",
658
- "يكون",
659
- "تكون",
660
- "صار",
661
- "أصبح",
662
- "يمكن",
663
- "ممكن",
664
- "بالأمس",
665
- "امس",
666
- "اليوم",
667
- "غدا",
668
- "الآن",
669
- "قبل",
670
- "بعد",
671
- "مؤخرا",
672
- "لماذا",
673
- "كيف",
674
- "ماذا",
675
- "متى",
676
- "أين",
677
- "هل",
678
- "من فضلك",
679
- "فضلا",
680
- "ساعد"
681
- ]);
682
- const STOP_WORDS_KO = new Set([
683
- "은",
684
- "는",
685
- "이",
686
- "가",
687
- "을",
688
- "를",
689
- "의",
690
- "에",
691
- "에서",
692
- "로",
693
- "으로",
694
- "와",
695
- "과",
696
- "도",
697
- "만",
698
- "까지",
699
- "부터",
700
- "한테",
701
- "에게",
702
- "께",
703
- "처럼",
704
- "같이",
705
- "보다",
706
- "마다",
707
- "밖에",
708
- "대로",
709
- "나",
710
- "나는",
711
- "내가",
712
- "나를",
713
- "너",
714
- "우리",
715
- "저",
716
- "저희",
717
- "그",
718
- "그녀",
719
- "그들",
720
- "이것",
721
- "저것",
722
- "그것",
723
- "여기",
724
- "저기",
725
- "거기",
726
- "있다",
727
- "없다",
728
- "하다",
729
- "되다",
730
- "이다",
731
- "아니다",
732
- "보다",
733
- "주다",
734
- "오다",
735
- "가다",
736
- "것",
737
- "거",
738
- "등",
739
- "수",
740
- "때",
741
- "곳",
742
- "중",
743
- "분",
744
- "잘",
745
- "더",
746
- "또",
747
- "매우",
748
- "정말",
749
- "아주",
750
- "많이",
751
- "너무",
752
- "좀",
753
- "그리고",
754
- "하지만",
755
- "그래서",
756
- "그런데",
757
- "그러나",
758
- "또는",
759
- "그러면",
760
- "왜",
761
- "어떻게",
762
- "뭐",
763
- "언제",
764
- "어디",
765
- "누구",
766
- "무엇",
767
- "어떤",
768
- "어제",
769
- "오늘",
770
- "내일",
771
- "최근",
772
- "지금",
773
- "아까",
774
- "나중",
775
- "전에",
776
- "제발",
777
- "부탁"
778
- ]);
779
- const KO_TRAILING_PARTICLES = [
780
- "에서",
781
- "으로",
782
- "에게",
783
- "한테",
784
- "처럼",
785
- "같이",
786
- "보다",
787
- "까지",
788
- "부터",
789
- "마다",
790
- "밖에",
791
- "대로",
792
- "은",
793
- "는",
794
- "이",
795
- "가",
796
- "을",
797
- "를",
798
- "의",
799
- "에",
800
- "로",
801
- "와",
802
- "과",
803
- "도",
804
- "만"
805
- ].toSorted((a, b) => b.length - a.length);
806
- function stripKoreanTrailingParticle(token) {
807
- for (const particle of KO_TRAILING_PARTICLES) if (token.length > particle.length && token.endsWith(particle)) return token.slice(0, -particle.length);
808
- return null;
809
- }
810
- function isUsefulKoreanStem(stem) {
811
- if (/[\uac00-\ud7af]/.test(stem)) return stem.length >= 2;
812
- return /^[a-z0-9_]+$/i.test(stem);
813
- }
814
- const STOP_WORDS_JA = new Set([
815
- "これ",
816
- "それ",
817
- "あれ",
818
- "この",
819
- "その",
820
- "あの",
821
- "ここ",
822
- "そこ",
823
- "あそこ",
824
- "する",
825
- "した",
826
- "して",
827
- "です",
828
- "ます",
829
- "いる",
830
- "ある",
831
- "なる",
832
- "できる",
833
- "の",
834
- "こと",
835
- "もの",
836
- "ため",
837
- "そして",
838
- "しかし",
839
- "また",
840
- "でも",
841
- "から",
842
- "まで",
843
- "より",
844
- "だけ",
845
- "なぜ",
846
- "どう",
847
- "何",
848
- "いつ",
849
- "どこ",
850
- "誰",
851
- "どれ",
852
- "昨日",
853
- "今日",
854
- "明日",
855
- "最近",
856
- "今",
857
- "さっき",
858
- "前",
859
- "後"
860
- ]);
861
- const STOP_WORDS_ZH = new Set([
862
- "我",
863
- "我们",
864
- "你",
865
- "你们",
866
- "他",
867
- "她",
868
- "它",
869
- "他们",
870
- "这",
871
- "那",
872
- "这个",
873
- "那个",
874
- "这些",
875
- "那些",
876
- "的",
877
- "了",
878
- "着",
879
- "过",
880
- "得",
881
- "地",
882
- "吗",
883
- "呢",
884
- "吧",
885
- "啊",
886
- "呀",
887
- "嘛",
888
- "啦",
889
- "是",
890
- "有",
891
- "在",
892
- "被",
893
- "把",
894
- "给",
895
- "让",
896
- "用",
897
- "到",
898
- "去",
899
- "来",
900
- "做",
901
- "说",
902
- "看",
903
- "找",
904
- "想",
905
- "要",
906
- "能",
907
- "会",
908
- "可以",
909
- "和",
910
- "与",
911
- "或",
912
- "但",
913
- "但是",
914
- "因为",
915
- "所以",
916
- "如果",
917
- "虽然",
918
- "而",
919
- "也",
920
- "都",
921
- "就",
922
- "还",
923
- "又",
924
- "再",
925
- "才",
926
- "只",
927
- "之前",
928
- "以前",
929
- "之后",
930
- "以后",
931
- "刚才",
932
- "现在",
933
- "昨天",
934
- "今天",
935
- "明天",
936
- "最近",
937
- "东西",
938
- "事情",
939
- "事",
940
- "什么",
941
- "哪个",
942
- "哪些",
943
- "怎么",
944
- "为什么",
945
- "多少",
946
- "请",
947
- "帮",
948
- "帮忙",
949
- "告诉"
950
- ]);
951
- /**
952
- * Check if a token looks like a meaningful keyword.
953
- * Returns false for short tokens, numbers-only, etc.
954
- */
955
- function isValidKeyword(token) {
956
- if (!token || token.length === 0) return false;
957
- if (/^[a-zA-Z]+$/.test(token) && token.length < 3) return false;
958
- if (/^\d+$/.test(token)) return false;
959
- if (/^[\p{P}\p{S}]+$/u.test(token)) return false;
960
- return true;
961
- }
962
- /**
963
- * Simple tokenizer that handles English, Chinese, Korean, and Japanese text.
964
- * For Chinese, we do character-based splitting since we don't have a proper segmenter.
965
- * For English, we split on whitespace and punctuation.
966
- */
967
- function tokenize(text) {
968
- const tokens = [];
969
- const segments = text.toLowerCase().trim().split(/[\s\p{P}]+/u).filter(Boolean);
970
- for (const segment of segments) if (/[\u3040-\u30ff]/.test(segment)) {
971
- const jpParts = segment.match(/[a-z0-9_]+|[\u30a0-\u30ffー]+|[\u4e00-\u9fff]+|[\u3040-\u309f]{2,}/g) ?? [];
972
- for (const part of jpParts) if (/^[\u4e00-\u9fff]+$/.test(part)) {
973
- tokens.push(part);
974
- for (let i = 0; i < part.length - 1; i++) tokens.push(part[i] + part[i + 1]);
975
- } else tokens.push(part);
976
- } else if (/[\u4e00-\u9fff]/.test(segment)) {
977
- const chars = Array.from(segment).filter((c) => /[\u4e00-\u9fff]/.test(c));
978
- tokens.push(...chars);
979
- for (let i = 0; i < chars.length - 1; i++) tokens.push(chars[i] + chars[i + 1]);
980
- } else if (/[\uac00-\ud7af\u3131-\u3163]/.test(segment)) {
981
- const stem = stripKoreanTrailingParticle(segment);
982
- const stemIsStopWord = stem !== null && STOP_WORDS_KO.has(stem);
983
- if (!STOP_WORDS_KO.has(segment) && !stemIsStopWord) tokens.push(segment);
984
- if (stem && !STOP_WORDS_KO.has(stem) && isUsefulKoreanStem(stem)) tokens.push(stem);
985
- } else tokens.push(segment);
986
- return tokens;
987
- }
988
- /**
989
- * Extract keywords from a conversational query for FTS search.
990
- *
991
- * Examples:
992
- * - "that thing we discussed about the API" → ["discussed", "API"]
993
- * - "之前讨论的那个方案" → ["讨论", "方案"]
994
- * - "what was the solution for the bug" → ["solution", "bug"]
995
- */
996
- function extractKeywords(query) {
997
- const tokens = tokenize(query);
998
- const keywords = [];
999
- const seen = /* @__PURE__ */ new Set();
1000
- for (const token of tokens) {
1001
- if (STOP_WORDS_EN.has(token) || STOP_WORDS_ES.has(token) || STOP_WORDS_PT.has(token) || STOP_WORDS_AR.has(token) || STOP_WORDS_ZH.has(token) || STOP_WORDS_KO.has(token) || STOP_WORDS_JA.has(token)) continue;
1002
- if (!isValidKeyword(token)) continue;
1003
- if (seen.has(token)) continue;
1004
- seen.add(token);
1005
- keywords.push(token);
1006
- }
1007
- return keywords;
1008
- }
1009
-
1010
- //#endregion
1011
- export { isFileMissingError as _, sessionPathForFile as a, cosineSimilarity as c, isMemoryPath as d, listMemoryFiles as f, runWithConcurrency as g, remapChunkLines as h, listSessionFilesForAgent as i, ensureDir as l, parseEmbedding as m, requireNodeSqlite as n, buildFileEntry as o, normalizeExtraMemoryPaths as p, buildSessionEntry as r, chunkMarkdown as s, extractKeywords as t, hashText as u, statRegularFile as v };