@qqbrowser/openclaw-qbot 0.0.128 → 0.0.129
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/account-lookup-CW-_CL7y.js +1 -1
- package/dist/acp-cli-01SGjPGi.js +1 -1
- package/dist/acp-cli-uxN405XG.js +1 -1
- package/dist/active-listener-BZ6loNaF.js +1 -1
- package/dist/active-listener-D8VOdVx3.js +1 -1
- package/dist/active-listener-DB5mhDuO.js +1 -1
- package/dist/active-listener-DeKRt_UV.js +1 -1
- package/dist/agent-scope-DAWJwFfl.js +1 -1
- package/dist/agent-scope-DXZc3eNT.js +1 -1
- package/dist/agents-BMh3ZeoB.js +1 -1
- package/dist/agents.config-B-0lZSmb.js +1 -1
- package/dist/agents.config-BDEN2Eph.js +1 -1
- package/dist/allow-from-B6dI7oz8.js +1 -1
- package/dist/allow-from-DEeVIPKS.js +1 -1
- package/dist/api-BeG0ObSq.js +1 -1
- package/dist/api-Dx8x1KTs.js +1 -1
- package/dist/api-key-rotation-C_MG2y1D.js +1 -1
- package/dist/api-key-rotation-D8WsZ43x.js +1 -1
- package/dist/api-key-rotation-DYYvcqSG.js +1 -1
- package/dist/api-key-rotation-dNu0GxPN.js +1 -1
- package/dist/arg-split-BOqSMBuf.js +1 -1
- package/dist/arg-split-DE5RqDHq.js +1 -1
- package/dist/audio-preflight--K4-eUVY.js +1 -1
- package/dist/audio-preflight-BKIm58PG.js +1 -1
- package/dist/audio-preflight-CAfi10dl.js +1 -1
- package/dist/audio-preflight-Xm0NL5JA.js +1 -1
- package/dist/audio-transcription-runner-BJNP7vB8.js +1 -1
- package/dist/audio-transcription-runner-BUsb6cqv.js +1 -1
- package/dist/audio-transcription-runner-C_31Yoq0.js +1 -1
- package/dist/audio-transcription-runner-CjKLRVPo.js +1 -1
- package/dist/audit-7DFnKINd.js +1 -1
- package/dist/audit-B6LsW3Ai.js +1 -1
- package/dist/audit-membership-runtime-BpRsMj5-.js +1 -1
- package/dist/audit-membership-runtime-BsfLZNBj.js +1 -1
- package/dist/audit-membership-runtime-DRHirRmx.js +1 -1
- package/dist/audit-membership-runtime-g0dEWJTp.js +1 -1
- package/dist/audit-membership-runtime-kdyToskD.js +1 -1
- package/dist/auth-choice-BNd2SNjJ.js +1 -1
- package/dist/auth-choice-C3aUWXx9.js +1 -1
- package/dist/auth-choice-DViEjgMg.js +1 -1
- package/dist/auth-choice-edozMf7r.js +1 -1
- package/dist/auth-choice-options-B3WQyS7I.js +1 -1
- package/dist/auth-choice-options-Dw14noox.js +1 -1
- package/dist/auth-choice-prompt-uegl56cf.js +1 -1
- package/dist/auth-choice-prompt-xYj13czb.js +1 -1
- package/dist/auth-choice.apply-helpers-CNLYnRxx.js +1 -1
- package/dist/auth-choice.apply-helpers-DCe5nTyP.js +1 -1
- package/dist/auth-profiles-BhXA8Jy2.js +1 -1
- package/dist/auth-token-C75IOb_K.js +1 -1
- package/dist/auth-token-CzgZf-ta.js +1 -1
- package/dist/banner-mIDEloRy.js +1 -1
- package/dist/bonjour-discovery-CpvzLjyB.js +1 -1
- package/dist/bonjour-discovery-wsh3Si1Q.js +1 -1
- package/dist/boolean-Ch3DfXPy.js +1 -1
- package/dist/boolean-D15s2V33.js +1 -1
- package/dist/boolean-DypnRoRK.js +1 -1
- package/dist/brew-COcDl8CB.js +1 -1
- package/dist/brew-DDPm_HfE.js +1 -1
- package/dist/browser-cli-BjzNbvF9.js +1 -1
- package/dist/browser-cli-CgHkgtgV.js +1 -1
- package/dist/build-info.json +2 -2
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/call-BA3O_Qpl.js +1 -1
- package/dist/call-BQT0zCgv.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/channel-account-context-BMPAMZEv.js +1 -1
- package/dist/channel-account-context-DAcarnqW.js +1 -1
- package/dist/channel-activity-B04WbrrK.js +1 -1
- package/dist/channel-activity-BPRCQpI6.js +1 -1
- package/dist/channel-activity-D2VTmenR.js +1 -1
- package/dist/channel-activity-DHY5wAyl.js +1 -1
- package/dist/channel-activity-DYpm-0Cz.js +1 -1
- package/dist/channel-options-BYmHreMn.js +1 -1
- package/dist/channel-options-Cbv7VETu.js +1 -1
- package/dist/channel-selection-Ddyykqxv.js +1 -1
- package/dist/channel-selection-oRONo9z3.js +1 -1
- package/dist/channel-web-CK4RqVCH.js +1 -1
- package/dist/channel-web-Xw89Exy3.js +1 -1
- package/dist/channels/plugins/actions/discord.js +1 -1
- package/dist/channels/plugins/actions/signal.js +1 -1
- package/dist/channels/plugins/actions/telegram.js +1 -1
- package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -1
- package/dist/channels-cli-D2y5Xk5i.js +1 -1
- package/dist/channels-cli-cwFjBXcP.js +1 -1
- package/dist/channels-status-issues-8eFrGKyf.js +1 -1
- package/dist/channels-status-issues-PRgOT90w.js +1 -1
- package/dist/chat-envelope-Bznn2SoS.js +1 -1
- package/dist/chat-envelope-HVpKusFc.js +1 -1
- package/dist/clack-prompter-DBPdGdqp.js +1 -1
- package/dist/clack-prompter-Dq0aY6iM.js +1 -1
- package/dist/clawbot-cli-BwG1-8A9.js +1 -1
- package/dist/clawbot-cli-CaNu5A0G.js +1 -1
- package/dist/cleanup-utils-BWm70DoD.js +1 -1
- package/dist/cleanup-utils-D-RhEX6F.js +1 -1
- package/dist/cli-CQKA38bc.js +1 -1
- package/dist/cli-i7P4bYBg.js +1 -1
- package/dist/cli-utils-BY7dLMFy.js +1 -1
- package/dist/cli-utils-BleB1eys.js +1 -1
- package/dist/clipboard-Bk8cviBt.js +1 -1
- package/dist/clipboard-CKT_VIkG.js +1 -1
- package/dist/cmd-argv-BBT5l8AV.js +1 -1
- package/dist/cmd-argv-Bh-KpaZ0.js +1 -1
- package/dist/command-format-BbDT1tlm.js +1 -1
- package/dist/command-format-CLxIPuLR.js +1 -1
- package/dist/command-options-BpOUDl2S.js +1 -1
- package/dist/command-options-Bq5nQxz6.js +1 -1
- package/dist/command-poll-backoff-BZLHYB2k.js +1 -1
- package/dist/command-poll-backoff-Cww_r-24.js +1 -1
- package/dist/command-poll-backoff-Df6cOQrX.js +1 -1
- package/dist/command-poll-backoff-endAPdwn.js +1 -1
- package/dist/command-registry-BYk36N_R.js +1 -1
- package/dist/command-secret-targets-BBTiqQKa.js +1 -1
- package/dist/command-secret-targets-KM3OecbM.js +1 -1
- package/dist/commands-CGpM84iR.js +1 -1
- package/dist/commands-Dy7duWlt.js +1 -1
- package/dist/commands-registry-B3FI6TSl.js +1 -1
- package/dist/commands-registry-CxDVU5s9.js +1 -1
- package/dist/commands-registry-Dn2uuNuy.js +1 -1
- package/dist/commands-registry-Du79fdAL.js +1 -1
- package/dist/compact-CuBCVnVS.js +1 -1
- package/dist/completion-cli-CRNTbZlR.js +1 -1
- package/dist/completion-cli-DbGDCoiM.js +1 -1
- package/dist/config-BqW5S1xL.js +1 -1
- package/dist/config-DAQjvwZw.js +1 -1
- package/dist/config-cli-D_coAWd9.js +1 -1
- package/dist/config-cli-EKXoNzLf.js +1 -1
- package/dist/config-guard-U0wlYLUN.js +1 -1
- package/dist/config-guard-XayIkveC.js +1 -1
- package/dist/config-validation-B0nN9egx.js +1 -1
- package/dist/config-validation-CAHnpjrk.js +1 -1
- package/dist/configure-DNnQRKy8.js +1 -1
- package/dist/configure-NCNskZPe.js +1 -1
- package/dist/connection-auth-BcPbGyxw.js +1 -1
- package/dist/connection-auth-DZ-3Svr_.js +1 -1
- package/dist/context-window-guard-7crlatf9.js +1 -1
- package/dist/context-window-guard-CPChk363.js +1 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/de-DuUYLvt1.js +1 -0
- package/dist/control-ui/assets/es-DHtyqUQZ.js +1 -0
- package/dist/control-ui/assets/index-CYbiPp9k.js +8383 -0
- package/dist/control-ui/assets/index-C_GaJ8wS.css +1 -0
- package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +1 -0
- package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +1 -0
- package/dist/control-ui/assets/zh-TW-cW5xB87I.js +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +17 -0
- package/dist/control-ui-assets-BIa0GGDg.js +1 -1
- package/dist/control-ui-assets-CTHGGgaX.js +1 -1
- package/dist/cron-cli-Cro66JtU.js +1 -1
- package/dist/cron-cli-DIeBukvk.js +1 -1
- package/dist/daemon-cli-Cw_fxNgE.js +1 -1
- package/dist/daemon-cli-DQsKS3pT.js +1 -1
- package/dist/daemon-cli.js +1 -1
- package/dist/daemon-install-C_DmJEkV.js +1 -1
- package/dist/daemon-install-D1DacLbM.js +1 -1
- package/dist/daemon-install-plan.shared-BSDdwWjB.js +1 -1
- package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -1
- package/dist/daemon-runtime-DHiDbRuC.js +1 -1
- package/dist/daemon-runtime-VcpeBRJV.js +1 -1
- package/dist/dangerous-name-matching-BOmvAibz.js +1 -1
- package/dist/dangerous-name-matching-DtllRqBD.js +1 -1
- package/dist/dangerous-tools-CFRYQJ6V.js +1 -1
- package/dist/dangerous-tools-oYCu5wfC.js +1 -1
- package/dist/deliver-2c-EsQ_W.js +1 -1
- package/dist/deliver-BudDnEIb.js +1 -1
- package/dist/deliver-COKdxPmA.js +1 -1
- package/dist/deliver-DHP2vHKB.js +1 -1
- package/dist/delivery-queue-CKbauSFq.js +1 -1
- package/dist/delivery-queue-nkPJu0fY.js +1 -1
- package/dist/device-pairing-4eDo43Kk.js +1 -1
- package/dist/device-pairing-B7ZXiXp3.js +1 -1
- package/dist/devices-cli-BXUIb_UN.js +1 -1
- package/dist/devices-cli-D7PkbnHO.js +1 -1
- package/dist/diagnostic-Bzd5vlKH.js +1 -1
- package/dist/diagnostic-CFmHdXHP.js +1 -1
- package/dist/diagnostic-CW_Jv5UM.js +1 -1
- package/dist/diagnostic-Dza7-pMC.js +1 -1
- package/dist/diagnostics-BgbeL9KE.js +1 -1
- package/dist/diagnostics-Cdctg9K_.js +1 -1
- package/dist/directory-cli-CxeuNJcC.js +1 -1
- package/dist/directory-cli-DFlYCB5L.js +1 -1
- package/dist/dns-cli-BDbHznhi.js +1 -1
- package/dist/dns-cli-OuwliJ60.js +1 -1
- package/dist/docs-cli-Cdw9Iz9a.js +1 -1
- package/dist/docs-cli-ClD2UyX1.js +1 -1
- package/dist/doctor-completion-BSOX-LSq.js +1 -1
- package/dist/doctor-completion-DXqdpdlo.js +1 -1
- package/dist/doctor-config-flow-DHB8N7tT.js +1 -1
- package/dist/doctor-config-flow-MjfHBDlw.js +1 -1
- package/dist/enable-DVuqWT2a.js +1 -1
- package/dist/enable-DWaSH1HY.js +1 -1
- package/dist/entry-status-CCwwKO43.js +1 -1
- package/dist/entry-status-CoXkbJcX.js +1 -1
- package/dist/entry.js +1 -1
- package/dist/env-D7wNuBx1.js +1 -1
- package/dist/env-overrides-DHtB4kK3.js +1 -1
- package/dist/env-overrides-DXJbFrwI.js +1 -1
- package/dist/errors-6SQWM9dj.js +1 -1
- package/dist/errors-Bunti32V.js +1 -1
- package/dist/exec-B3eleY5O.js +1 -1
- package/dist/exec-DHqLtFYt.js +1 -1
- package/dist/exec-approvals-BXO9Cezj.js +1 -1
- package/dist/exec-approvals-BpBNEy6i.js +1 -1
- package/dist/exec-approvals-allowlist-BKFaHvA5.js +1 -1
- package/dist/exec-approvals-allowlist-DBh9Pm77.js +1 -1
- package/dist/exec-approvals-cli-0neCwpk-.js +1 -1
- package/dist/exec-approvals-cli-BuHSw09B.js +1 -1
- package/dist/exec-safe-bin-runtime-policy-Ck3GO5AB.js +1 -1
- package/dist/exec-safe-bin-runtime-policy-D2WexijZ.js +1 -1
- package/dist/fetch-BI3CnKE3.js +1 -1
- package/dist/fetch-BJT3BrkJ.js +1 -1
- package/dist/fetch-Bn0mWg6a.js +1 -1
- package/dist/fetch-CY5G3PDq.js +1 -1
- package/dist/fetch-Ce-scEU-.js +1 -1
- package/dist/fetch-D0rZDHKO.js +1 -1
- package/dist/fetch-DHo17YmK.js +1 -1
- package/dist/fetch-Dh-apy46.js +1 -1
- package/dist/fetch-Dikjvc5M.js +1 -1
- package/dist/fetch-DsjPfQlp.js +1 -1
- package/dist/fetch-_g8lZ8K8.js +1 -1
- package/dist/fetch-guard-BaRbr_V6.js +1 -1
- package/dist/fetch-guard-BmNIhXP-.js +1 -1
- package/dist/fetch-guard-ChVqc0HF.js +1 -1
- package/dist/fetch-guard-Cji70DJW.js +1 -1
- package/dist/fetch-hy0JKSsm.js +1 -1
- package/dist/fetch-timeout-CdYxWG9w.js +1 -1
- package/dist/fetch-timeout-Cj8_oAls.js +1 -1
- package/dist/fetch-timeout-DoOI_izT.js +1 -1
- package/dist/fetch-timeout-u8g99Ax0.js +1 -1
- package/dist/fetch-xT2jRpqs.js +1 -1
- package/dist/format-Bn1bwJKX.js +1 -1
- package/dist/format-Ce7I7s-k.js +1 -1
- package/dist/format-duration-C8AzNqKh.js +1 -1
- package/dist/format-duration-D5AMtmHa.js +1 -1
- package/dist/format-relative-B9pSIdGe.js +1 -1
- package/dist/format-relative-DkMjYy7z.js +1 -1
- package/dist/frontmatter-BkZkwkVO.js +1 -1
- package/dist/frontmatter-C7mzDNxd.js +1 -1
- package/dist/frontmatter-CzpfPBFl.js +1 -1
- package/dist/gateway-cli-Bj-BYgGN.js +1 -1
- package/dist/gateway-cli-DP65otLl.js +1 -1
- package/dist/gateway-install-token-BIqlEgy0.js +1 -1
- package/dist/gateway-install-token-CtUJl3A3.js +1 -1
- package/dist/gateway-rpc-DJHjmEZz.js +1 -1
- package/dist/gateway-rpc-XRAMeV67.js +1 -1
- package/dist/github-copilot-token-C79yeDKS.js +1 -1
- package/dist/github-copilot-token-DGYAlOmV.js +1 -1
- package/dist/github-copilot-token-DePP-lIf.js +1 -1
- package/dist/github-copilot-token-wm6mbypz.js +1 -1
- package/dist/gmail-setup-utils-CYOH3zzx.js +1 -1
- package/dist/gmail-setup-utils-S-MyEGuj.js +1 -1
- package/dist/group-access-BHKVOhrj.js +1 -1
- package/dist/group-access-D2DOYMfr.js +1 -1
- package/dist/health-Bedsiigi.js +1 -1
- package/dist/health-Cy_CvKbX.js +1 -1
- package/dist/health-format-B1nj3Wfn.js +1 -1
- package/dist/health-format-VBr6LEpt.js +1 -1
- package/dist/heartbeat-visibility-BQ_esv2m.js +1 -1
- package/dist/heartbeat-visibility-q74UdY8O.js +1 -1
- package/dist/help-format-B4aEI7V9.js +1 -1
- package/dist/help-format-BRbF_INg.js +1 -1
- package/dist/helpers-COz1ghcB.js +1 -1
- package/dist/helpers-Cp8gcO6u.js +1 -1
- package/dist/hooks-cli-DrnH2iDk.js +1 -1
- package/dist/hooks-cli-DvfZKyZl.js +1 -1
- package/dist/hooks-status-BHt-Xvh4.js +1 -1
- package/dist/hooks-status-CRJ4J0ZW.js +1 -1
- package/dist/image-BJC11A7e.js +1 -1
- package/dist/image-BKPxWO_2.js +1 -1
- package/dist/image-Ba-mOMMV.js +1 -1
- package/dist/image-D-R3N1it.js +1 -1
- package/dist/index.js +1 -1
- package/dist/inspect-BKV-I1UE.js +1 -1
- package/dist/inspect-z59cgmYc.js +1 -1
- package/dist/install-safe-path-C6kc_8NW.js +1 -1
- package/dist/install-safe-path-iesxijn2.js +1 -1
- package/dist/installs-BNeI_oML.js +1 -1
- package/dist/installs-C1xQLuby.js +1 -1
- package/dist/ipv4-BXZDlz5C.js +1 -1
- package/dist/ipv4-BnPLbv6y.js +1 -1
- package/dist/ir-BYCrFFZ9.js +1 -1
- package/dist/ir-CH7YvSi9.js +1 -1
- package/dist/ir-CSysIkNU.js +1 -1
- package/dist/ir-CZdZsdnI.js +1 -1
- package/dist/is-main-DG5ueqhF.js +1 -1
- package/dist/issue-format-CpTuk_rQ.js +1 -1
- package/dist/issue-format-kj7FXHhi.js +1 -1
- package/dist/kill-tree-DBJW8_Q-.js +1 -1
- package/dist/lifecycle-core-B72WHNHV.js +1 -1
- package/dist/lifecycle-core-dhkH_Nux.js +1 -1
- package/dist/line/accounts.js +1 -1
- package/dist/line/send.js +1 -1
- package/dist/line/template-messages.js +1 -1
- package/dist/links-CBnmRP9D.js +1 -1
- package/dist/links-CySwdMcF.js +1 -1
- package/dist/llm-slug-generator.js +1 -1
- package/dist/load-options-BsOW74dp.js +1 -1
- package/dist/load-options-C7dLuybp.js +1 -1
- package/dist/load-options-DV4j6Aqb.js +1 -1
- package/dist/load-options-Dwt0CeEg.js +1 -1
- package/dist/local-roots-Dxioh0C2.js +1 -1
- package/dist/logger-5W0OocJW.js +1 -1
- package/dist/logger-Bl8URnrW.js +1 -1
- package/dist/logger-DwWqfo66.js +1 -1
- package/dist/logger-kQAOe3qp.js +1 -1
- package/dist/logging-Dz4Qg6th.js +1 -1
- package/dist/logging-KiJmOmw4.js +1 -1
- package/dist/login-BMZxDYaU.js +1 -1
- package/dist/login-BdzP8F8J.js +1 -1
- package/dist/login-BzU0cMck.js +1 -1
- package/dist/login-Cb1A6qwM.js +1 -1
- package/dist/login-qr-BgsmAwKm.js +1 -1
- package/dist/login-qr-Bux8gWTO.js +1 -1
- package/dist/login-qr-COr_25Hx.js +1 -1
- package/dist/login-qr-CxBPOOAK.js +1 -1
- package/dist/login-qr-DnQm7bM4.js +1 -1
- package/dist/logs-cli-BM2XCmrH.js +1 -1
- package/dist/logs-cli-HKhyxaUs.js +1 -1
- package/dist/manager-B6zZuJEB.js +1 -1
- package/dist/manager-BwrZfep3.js +1 -1
- package/dist/manager-C5SBozw4.js +1 -1
- package/dist/manager-CjihRbGa.js +1 -1
- package/dist/memory-cli-CnruTL1h.js +1 -1
- package/dist/memory-cli-DHvscp7X.js +1 -1
- package/dist/model-catalog-BLdaFmIo.js +1 -1
- package/dist/model-catalog-vNCcsy4h.js +1 -1
- package/dist/model-param-b-B0r2cPDw.js +1 -1
- package/dist/model-param-b-BqIr5rY5.js +1 -1
- package/dist/model-picker-BaeW3tiV.js +1 -1
- package/dist/model-picker-DN0czUYS.js +1 -1
- package/dist/model-selection-C2QwHmXT.js +1 -1
- package/dist/model-selection-I1ctjFOB.js +1 -1
- package/dist/model-selection-qkByRv5A.js +1 -1
- package/dist/models-UTdl0vXO.js +1 -1
- package/dist/models-cli-QRONP7EL.js +1 -1
- package/dist/models-cli-vRoB_gfX.js +1 -1
- package/dist/models-config-CWIlroKT.js +1 -1
- package/dist/models-config-DN2Q51fC.js +1 -1
- package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -1
- package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -1
- package/dist/node-cli-2-E4-83G.js +1 -1
- package/dist/node-cli-DUI7Zctj.js +1 -1
- package/dist/node-command-policy-Bbmnc16l.js +1 -1
- package/dist/node-command-policy-DgkwfoCs.js +1 -1
- package/dist/node-commands-8GBOiktk.js +1 -1
- package/dist/node-commands-DdkziOTx.js +1 -1
- package/dist/node-resolve-B3BJbmQX.js +1 -1
- package/dist/node-resolve-DLZf3-1V.js +1 -1
- package/dist/node-service-BRfrNp8l.js +1 -1
- package/dist/node-service-C0bl7jcZ.js +1 -1
- package/dist/node-shell-dXp4vk-i.js +1 -1
- package/dist/nodes-cli-DU13-dCL.js +1 -1
- package/dist/nodes-cli-rPeIRj_f.js +1 -1
- package/dist/nodes-screen-C7-5RrbN.js +1 -1
- package/dist/note-D4GAwgha.js +1 -1
- package/dist/note-Dp-d_utk.js +1 -1
- package/dist/npm-pack-install-B23L-AtF.js +1 -1
- package/dist/npm-pack-install-C0te3Oap.js +1 -1
- package/dist/npm-resolution-BCXCw93f.js +1 -1
- package/dist/npm-resolution-Cmm82lui.js +1 -1
- package/dist/oauth-env-DAamJ1oz.js +1 -1
- package/dist/oauth-env-DSLBTWb1.js +1 -1
- package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -1
- package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -1
- package/dist/ollama-setup-CKt3tF-S.js +1 -1
- package/dist/ollama-setup-I8lghdX1.js +1 -1
- package/dist/onboard-B3WSjKCu.js +1 -1
- package/dist/onboard-C65vdb94.js +1 -1
- package/dist/onboard-channels-9CmG3Jgn.js +1 -1
- package/dist/onboard-channels-CV1AK9jY.js +1 -1
- package/dist/onboard-config-B7U20YRw.js +1 -1
- package/dist/onboard-config-DS9dUv8M.js +1 -1
- package/dist/onboard-custom-CwHYUB0T.js +1 -1
- package/dist/onboard-custom-uwufXtQf.js +1 -1
- package/dist/onboard-helpers-CGJLUoxR.js +1 -1
- package/dist/onboard-helpers-DbpWQoiB.js +1 -1
- package/dist/onboard-hooks-CERzXObm.js +1 -1
- package/dist/onboard-hooks-gQ3sxBNi.js +1 -1
- package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -1
- package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -1
- package/dist/onboard-remote-BeDZ_gbH.js +1 -1
- package/dist/onboard-remote-KTUx-3G1.js +1 -1
- package/dist/onboard-search-f2tJD4hg.js +1 -1
- package/dist/onboard-search-fslKKhyg.js +1 -1
- package/dist/onboard-skills-BoS_oVdm.js +1 -1
- package/dist/onboard-skills-C4omGWoD.js +1 -1
- package/dist/onboarding-B8icigkk.js +1 -1
- package/dist/onboarding-BJRqNsZ8.js +1 -1
- package/dist/onboarding.finalize-D0qISqn-.js +1 -1
- package/dist/onboarding.finalize-Ds9NwPBL.js +1 -1
- package/dist/onboarding.gateway-config-F8n_QFUR.js +1 -1
- package/dist/onboarding.gateway-config-eno73eHw.js +1 -1
- package/dist/onboarding.secret-input-B6fzeucQ.js +1 -1
- package/dist/onboarding.secret-input-CBuD3c32.js +1 -1
- package/dist/openai-codex-model-default-Df2T3foI.js +1 -1
- package/dist/openai-codex-model-default-DtIeKJm0.js +1 -1
- package/dist/openai-model-default-DIE55yBt.js +1 -1
- package/dist/openai-model-default-sqvWk4kB.js +1 -1
- package/dist/openclaw-exec-env-BWbOu_YC.js +1 -1
- package/dist/openclaw-root-CnsBf6ZU.js +1 -1
- package/dist/openclaw-root-D_0Q6--h.js +1 -1
- package/dist/outbound-B88MLJN3.js +1 -1
- package/dist/outbound-C-4qToKv.js +1 -1
- package/dist/outbound-CSk4oF0g.js +1 -1
- package/dist/outbound-DKMI_4xm.js +1 -1
- package/dist/outbound-attachment-BOax42-M.js +1 -1
- package/dist/outbound-attachment-DBNxdLYh.js +1 -1
- package/dist/outbound-attachment-DVjJQ3V6.js +1 -1
- package/dist/outbound-attachment-aZWcoZ-N.js +1 -1
- package/dist/pairing-cli-Cby6Ww8F.js +1 -1
- package/dist/pairing-cli-DiJb_a0V.js +1 -1
- package/dist/pairing-labels-BP1h0iHy.js +1 -1
- package/dist/pairing-labels-ryOnuOFA.js +1 -1
- package/dist/pairing-store-Bv4KSELv.js +1 -1
- package/dist/pairing-store-CjTPxq0X.js +1 -1
- package/dist/pairing-token-CKX1ds78.js +1 -1
- package/dist/pairing-token-CX0SUJsB.js +1 -1
- package/dist/parse-duration-XTjMKl8s.js +1 -1
- package/dist/parse-finite-number-DqzUM-_s.js +1 -1
- package/dist/parse-finite-number-dBmDLLKL.js +1 -1
- package/dist/parse-log-line-CsYLg7Qu.js +1 -1
- package/dist/parse-log-line-NV-cipB_.js +1 -1
- package/dist/parse-port-Bv1Y9Wk5.js +1 -1
- package/dist/parse-port-JVwkxcZ8.js +1 -1
- package/dist/parse-timeout-DWSGfCkQ.js +1 -1
- package/dist/parse-timeout-Dx4QnVzo.js +1 -1
- package/dist/path-alias-guards-kY_ZbWs-.js +1 -1
- package/dist/path-alias-guards-mvyLCPlN.js +1 -1
- package/dist/path-env-BPd1Yd-i.js +1 -1
- package/dist/path-env-emdAQejM.js +1 -1
- package/dist/path-safety-BukYK8Kd.js +1 -1
- package/dist/path-safety-DaaMJFdt.js +1 -1
- package/dist/paths-B4IRk3wi.js +1 -1
- package/dist/paths-BfjJY2VL.js +1 -1
- package/dist/paths-BjD3T_xq.js +1 -1
- package/dist/paths-BpQOWYiT.js +1 -1
- package/dist/paths-CChBdtE8.js +1 -1
- package/dist/paths-CrCoPIVK.js +1 -1
- package/dist/paths-piJASC5k.js +1 -1
- package/dist/paths-yLEk_25I.js +1 -1
- package/dist/pi-embedded-ZEWNj7P5.js +1 -1
- package/dist/pi-embedded-bqE4EmdD.js +1 -1
- package/dist/pi-model-discovery-6myCPEJE.js +1 -1
- package/dist/pi-model-discovery-AiV9h8k6.js +1 -1
- package/dist/pi-model-discovery-BzqdozHB.js +1 -1
- package/dist/pi-model-discovery-C8YBu6D4.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CPAJMO7J.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CYmLHod0.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CfVqI0Ng.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-D9FlPJ_v.js +1 -1
- package/dist/pi-tools.policy-CeSKHaKa.js +1 -1
- package/dist/plugin-auto-enable-Cp7L8ko8.js +1 -1
- package/dist/plugin-auto-enable-DCOxqfDQ.js +1 -1
- package/dist/plugin-install-plan-BobX0y9S.js +1 -1
- package/dist/plugin-install-plan-NvDGp0d8.js +1 -1
- package/dist/plugin-registry-Fg000e4I.js +1 -1
- package/dist/plugin-registry-fm5tDUbE.js +1 -1
- package/dist/plugin-sdk/account-id.cjs +1 -1
- package/dist/plugin-sdk/account-id.js +1 -1
- package/dist/plugin-sdk/acpx.cjs +1 -1
- package/dist/plugin-sdk/acpx.js +1 -1
- package/dist/plugin-sdk/active-listener-BFeaYGID.js +1 -1
- package/dist/plugin-sdk/active-listener-BszCM2Au.cjs +1 -1
- package/dist/plugin-sdk/active-listener-CIcleJgU.cjs +1 -1
- package/dist/plugin-sdk/active-listener-Cqgd7xVh.cjs +1 -1
- package/dist/plugin-sdk/active-listener-D578zEtk.cjs +1 -1
- package/dist/plugin-sdk/active-listener-D6gGPLq-.js +1 -1
- package/dist/plugin-sdk/active-listener-DKSZRn4x.cjs +1 -1
- package/dist/plugin-sdk/active-listener-DNO10F1L.js +1 -1
- package/dist/plugin-sdk/active-listener-DQq07Aar.js +1 -1
- package/dist/plugin-sdk/active-listener-Dle_kYqb.js +1 -1
- package/dist/plugin-sdk/active-listener-DmJcHkMC.js +1 -1
- package/dist/plugin-sdk/active-listener-UmFpcYFY.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-39TRXDEA.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-7qlqJ_ou.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-BY7fLi9z.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CF9_CKS-.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-CWylhFOt.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-ClZmonv2.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CmesQWXP.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-Cs6II2__.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CxaiMcI1.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-D5cfmg7E.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-DkP7KnSm.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-mDqgBFMG.js +1 -1
- package/dist/plugin-sdk/audio-preflight-B-HrF5Oc.js +1 -1
- package/dist/plugin-sdk/audio-preflight-B2MGeSoT.js +1 -1
- package/dist/plugin-sdk/audio-preflight-BVjiz_Qk.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-Behqe7F3.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-C0ncOCbK.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-C1o1n-KK.js +1 -1
- package/dist/plugin-sdk/audio-preflight-CzLYTZ5P.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-DDiBwIB9.js +1 -1
- package/dist/plugin-sdk/audio-preflight-DQyh-XSn.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-WH9WDR81.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-ZPLO3G1S.js +1 -1
- package/dist/plugin-sdk/audio-preflight-s3BAID12.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-2-ZQ5Md-.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-BO7T_SzP.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CRYJlAeP.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CmW24oVR.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CmYuWS0_.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CslXJs5c.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DE1tKTQV.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DZR84B28.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DoR-NOcV.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-IE4olXkd.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-YiDQM_Rb.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-kAVM4YFR.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -1
- package/dist/plugin-sdk/bluebubbles.cjs +1 -1
- package/dist/plugin-sdk/bluebubbles.js +1 -1
- package/dist/plugin-sdk/channel-activity-Bed876M5.js +1 -1
- package/dist/plugin-sdk/channel-activity-Bu8tAmGa.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-C01Im_o1.js +1 -1
- package/dist/plugin-sdk/channel-activity-CIycjzUC.js +1 -1
- package/dist/plugin-sdk/channel-activity-Cdkn3O_i.js +1 -1
- package/dist/plugin-sdk/channel-activity-Cia2G3v5.js +1 -1
- package/dist/plugin-sdk/channel-activity-D6d2wU8H.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-DNv7JLBx.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-Df3DfYyZ.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-Rut-HCfT.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-mffNSQrX.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-qjwFifkE.js +1 -1
- package/dist/plugin-sdk/channel-web-Ces_xx2T.js +1 -1
- package/dist/plugin-sdk/channel-web-CsmEnYD8.cjs +1 -1
- package/dist/plugin-sdk/channel-web-DtzNv49H.cjs +1 -1
- package/dist/plugin-sdk/channel-web-VEZVrMYU.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -1
- package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -1
- package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-33H8WYTk.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-BGdm1KdC.js +1 -1
- package/dist/plugin-sdk/commands-registry-BgV9i-bj.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-BifdCfty.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-CJLBIIIp.js +1 -1
- package/dist/plugin-sdk/commands-registry-CWK9ARbc.js +1 -1
- package/dist/plugin-sdk/commands-registry-CfVD1h8L.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-CpG4pxrA.js +1 -1
- package/dist/plugin-sdk/commands-registry-D-AnIQWz.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-DBI4cPqT.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-DOBe9cWq.js +1 -1
- package/dist/plugin-sdk/commands-registry-DqemUyiv.js +1 -1
- package/dist/plugin-sdk/common-CEe87dmX.js +1 -1
- package/dist/plugin-sdk/common-CjMKHm2Z.cjs +1 -1
- package/dist/plugin-sdk/compat.cjs +1 -1
- package/dist/plugin-sdk/compat.js +1 -1
- package/dist/plugin-sdk/config-DT_csBcZ.cjs +1 -1
- package/dist/plugin-sdk/config-LR8GH3Ws.js +1 -1
- package/dist/plugin-sdk/copilot-proxy.cjs +1 -1
- package/dist/plugin-sdk/copilot-proxy.js +1 -1
- package/dist/plugin-sdk/core.cjs +1 -1
- package/dist/plugin-sdk/core.js +1 -1
- package/dist/plugin-sdk/deliver-AORlkcbD.cjs +1 -1
- package/dist/plugin-sdk/deliver-BiBFW5fm.cjs +1 -1
- package/dist/plugin-sdk/deliver-BpqEPwLO.cjs +1 -1
- package/dist/plugin-sdk/deliver-BvC6aUKM.js +1 -1
- package/dist/plugin-sdk/deliver-CT0AIuK1.cjs +1 -1
- package/dist/plugin-sdk/deliver-CmddcjtG.cjs +1 -1
- package/dist/plugin-sdk/deliver-DFz5N1Eh.js +1 -1
- package/dist/plugin-sdk/deliver-DcJWpoqf.cjs +1 -1
- package/dist/plugin-sdk/deliver-ILim6ANU.js +1 -1
- package/dist/plugin-sdk/deliver-QgxW9IxV.js +1 -1
- package/dist/plugin-sdk/deliver-cT-Q8v0h.js +1 -1
- package/dist/plugin-sdk/deliver-cu_NQTmb.js +1 -1
- package/dist/plugin-sdk/device-pair.cjs +1 -1
- package/dist/plugin-sdk/device-pair.js +1 -1
- package/dist/plugin-sdk/diagnostic-BCyE1aYH.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-BFea3l_a.js +1 -1
- package/dist/plugin-sdk/diagnostic-BvR96WdC.js +1 -1
- package/dist/plugin-sdk/diagnostic-C0xDsk89.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CEPhLgsW.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CbLwUqTE.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CbfxoqI_.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-DDwUPG1m.js +1 -1
- package/dist/plugin-sdk/diagnostic-DS_mKKOu.js +1 -1
- package/dist/plugin-sdk/diagnostic-DYpehqHU.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-DkncnZ3G.js +1 -1
- package/dist/plugin-sdk/diagnostic-Dz8HPEDe.js +1 -1
- package/dist/plugin-sdk/diagnostics-otel.cjs +1 -1
- package/dist/plugin-sdk/diagnostics-otel.js +1 -1
- package/dist/plugin-sdk/diffs.cjs +1 -1
- package/dist/plugin-sdk/diffs.js +1 -1
- package/dist/plugin-sdk/discord.cjs +1 -1
- package/dist/plugin-sdk/discord.js +1 -1
- package/dist/plugin-sdk/dispatch-6m3206FH.js +1 -1
- package/dist/plugin-sdk/dispatch-BYZNaz0n.cjs +1 -1
- package/dist/plugin-sdk/dispatch-BahZCe-D.js +1 -1
- package/dist/plugin-sdk/dispatch-Bi3yeWxb.cjs +1 -1
- package/dist/plugin-sdk/dispatch-BjB_TqWy.cjs +1 -1
- package/dist/plugin-sdk/dispatch-CNR186B3.js +1 -1
- package/dist/plugin-sdk/dispatch-CStT30wi.cjs +1 -1
- package/dist/plugin-sdk/dispatch-CdZAW9dg.cjs +1 -1
- package/dist/plugin-sdk/dispatch-Ewg2Jgw9.js +1 -1
- package/dist/plugin-sdk/dispatch-HRTsdeCV.js +1 -1
- package/dist/plugin-sdk/feishu.cjs +1 -1
- package/dist/plugin-sdk/feishu.js +1 -1
- package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -1
- package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -1
- package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -1
- package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -1
- package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -1
- package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -1
- package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -1
- package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -1
- package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -1
- package/dist/plugin-sdk/fetch-BtZY623f.js +1 -1
- package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -1
- package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -1
- package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -1
- package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -1
- package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -1
- package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -1
- package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -1
- package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -1
- package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -1
- package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -1
- package/dist/plugin-sdk/fetch-guard-D8TdhTHU.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DC_pFJEy.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DDkd30BG.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DELiFG5g.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DIYjBRpq.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DPVfELS7.js +1 -1
- package/dist/plugin-sdk/fetch-guard-Dpz6CnJY.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DqNKwgHP.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DqTxZ3G8.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-EoAitPe9.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-qfU6iTvp.js +1 -1
- package/dist/plugin-sdk/fetch-guard-u2Dt6P9i.cjs +1 -1
- package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -1
- package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -1
- package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -1
- package/dist/plugin-sdk/googlechat.cjs +1 -1
- package/dist/plugin-sdk/googlechat.js +1 -1
- package/dist/plugin-sdk/image-0OHO98b9.cjs +1 -1
- package/dist/plugin-sdk/image-B9SLKAOs.cjs +1 -1
- package/dist/plugin-sdk/image-BVnZq5Y4.js +1 -1
- package/dist/plugin-sdk/image-CKLAyhco.js +1 -1
- package/dist/plugin-sdk/image-DUHEJeBF.js +1 -1
- package/dist/plugin-sdk/image-DngxW2Nh.cjs +1 -1
- package/dist/plugin-sdk/image-DrPh2689.cjs +1 -1
- package/dist/plugin-sdk/image-ISWO0Dwt.js +1 -1
- package/dist/plugin-sdk/image-KfZYW6Lh.cjs +1 -1
- package/dist/plugin-sdk/image-YVlw68CK.js +1 -1
- package/dist/plugin-sdk/image-gehqJnV6.js +1 -1
- package/dist/plugin-sdk/image-jUYo-0eT.cjs +1 -1
- package/dist/plugin-sdk/imessage.cjs +1 -1
- package/dist/plugin-sdk/imessage.js +1 -1
- package/dist/plugin-sdk/index.cjs +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/ir-78toXVqC.cjs +1 -1
- package/dist/plugin-sdk/ir-A_TqKaXP.cjs +1 -1
- package/dist/plugin-sdk/ir-B0_rUT7m.js +1 -1
- package/dist/plugin-sdk/ir-B7agH4cQ.cjs +1 -1
- package/dist/plugin-sdk/ir-B9ap_YNW.cjs +1 -1
- package/dist/plugin-sdk/ir-BxKSHYao.cjs +1 -1
- package/dist/plugin-sdk/ir-BzZArF6l.js +1 -1
- package/dist/plugin-sdk/ir-CpkEWZD6.js +1 -1
- package/dist/plugin-sdk/ir-D4Dz-giw.cjs +1 -1
- package/dist/plugin-sdk/ir-DJ08DSkk.js +1 -1
- package/dist/plugin-sdk/ir-L2vhtuGx.js +1 -1
- package/dist/plugin-sdk/ir-ntSck5Kp.js +1 -1
- package/dist/plugin-sdk/irc.cjs +1 -1
- package/dist/plugin-sdk/irc.js +1 -1
- package/dist/plugin-sdk/keyed-async-queue.cjs +1 -1
- package/dist/plugin-sdk/keyed-async-queue.js +1 -1
- package/dist/plugin-sdk/line.cjs +1 -1
- package/dist/plugin-sdk/line.js +1 -1
- package/dist/plugin-sdk/llm-task.cjs +1 -1
- package/dist/plugin-sdk/llm-task.js +1 -1
- package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -1
- package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -1
- package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -1
- package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -1
- package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -1
- package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -1
- package/dist/plugin-sdk/lobster.cjs +1 -1
- package/dist/plugin-sdk/lobster.js +1 -1
- package/dist/plugin-sdk/local-roots-B0zm186S.js +1 -1
- package/dist/plugin-sdk/local-roots-B4Uy4kG3.cjs +1 -1
- package/dist/plugin-sdk/local-roots-CM1R1Ncr.cjs +1 -1
- package/dist/plugin-sdk/local-roots-CW78ZeZV.js +1 -1
- package/dist/plugin-sdk/local-roots-CnsaE7a_.js +1 -1
- package/dist/plugin-sdk/local-roots-D1k-fAlE.cjs +1 -1
- package/dist/plugin-sdk/local-roots-DQ_vfJPK.js +1 -1
- package/dist/plugin-sdk/local-roots-DYlB1au6.cjs +1 -1
- package/dist/plugin-sdk/local-roots-H4-t0qG_.js +1 -1
- package/dist/plugin-sdk/local-roots-SCyeUfM3.cjs +1 -1
- package/dist/plugin-sdk/local-roots-l4PqCmiU.js +1 -1
- package/dist/plugin-sdk/local-roots-xHoEq1Fq.cjs +1 -1
- package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -1
- package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -1
- package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -1
- package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -1
- package/dist/plugin-sdk/logger-C210xuWx.js +1 -1
- package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -1
- package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -1
- package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -1
- package/dist/plugin-sdk/logger-DwWqfo66.js +1 -1
- package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -1
- package/dist/plugin-sdk/login-BN1TsFp4.cjs +1 -1
- package/dist/plugin-sdk/login-BXUtcSnB.cjs +1 -1
- package/dist/plugin-sdk/login-BoMH2iJT.js +1 -1
- package/dist/plugin-sdk/login-BtT7yRJO.js +1 -1
- package/dist/plugin-sdk/login-COzybMRK.js +1 -1
- package/dist/plugin-sdk/login-Cw1jFbel.cjs +1 -1
- package/dist/plugin-sdk/login-DEmpr5YK.js +1 -1
- package/dist/plugin-sdk/login-Dln00cFs.cjs +1 -1
- package/dist/plugin-sdk/login-S2Fe5n5K.cjs +1 -1
- package/dist/plugin-sdk/login-TieaF0ts.cjs +1 -1
- package/dist/plugin-sdk/login-ZQK4uJLw.js +1 -1
- package/dist/plugin-sdk/login-fKxJv0_F.js +1 -1
- package/dist/plugin-sdk/login-qr-1ilmySGx.js +1 -1
- package/dist/plugin-sdk/login-qr-B0ZSZaNI.js +1 -1
- package/dist/plugin-sdk/login-qr-B2P2Ky4j.js +1 -1
- package/dist/plugin-sdk/login-qr-B2U87iU8.js +1 -1
- package/dist/plugin-sdk/login-qr-B4x_eWI_.js +1 -1
- package/dist/plugin-sdk/login-qr-BIaJB24t.cjs +1 -1
- package/dist/plugin-sdk/login-qr-BMl5Beq2.cjs +1 -1
- package/dist/plugin-sdk/login-qr-Bkm3QorK.cjs +1 -1
- package/dist/plugin-sdk/login-qr-ClL8FMAJ.cjs +1 -1
- package/dist/plugin-sdk/login-qr-DFVK1lg-.js +1 -1
- package/dist/plugin-sdk/login-qr-DhieI9fL.cjs +1 -1
- package/dist/plugin-sdk/login-qr-DyQT1QnE.cjs +1 -1
- package/dist/plugin-sdk/manager-0tvX3Z_N.cjs +1 -1
- package/dist/plugin-sdk/manager-8uylP7PH.cjs +1 -1
- package/dist/plugin-sdk/manager-B6hWglXe.js +1 -1
- package/dist/plugin-sdk/manager-BGoKN9ur.js +1 -1
- package/dist/plugin-sdk/manager-BRP1lzb6.js +1 -1
- package/dist/plugin-sdk/manager-BeLNhsXC.cjs +1 -1
- package/dist/plugin-sdk/manager-BnytMgmq.js +1 -1
- package/dist/plugin-sdk/manager-BoMQeM1I.cjs +1 -1
- package/dist/plugin-sdk/manager-CYZY9vcM.js +1 -1
- package/dist/plugin-sdk/manager-DCDy2V1U.cjs +1 -1
- package/dist/plugin-sdk/manager-DE7sDip8.cjs +1 -1
- package/dist/plugin-sdk/manager-PwgQZNK1.js +1 -1
- package/dist/plugin-sdk/matrix.cjs +1 -1
- package/dist/plugin-sdk/matrix.js +1 -1
- package/dist/plugin-sdk/mattermost.cjs +1 -1
- package/dist/plugin-sdk/mattermost.js +1 -1
- package/dist/plugin-sdk/memory-core.cjs +1 -1
- package/dist/plugin-sdk/memory-core.js +1 -1
- package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -1
- package/dist/plugin-sdk/minimax-portal-auth.js +1 -1
- package/dist/plugin-sdk/model-auth-BgS7ynQw.cjs +1 -1
- package/dist/plugin-sdk/model-auth-CKlA2xRB.cjs +1 -1
- package/dist/plugin-sdk/model-auth-CLnFIqcf.cjs +1 -1
- package/dist/plugin-sdk/model-auth-D7YupJDS.js +1 -1
- package/dist/plugin-sdk/model-auth-eNVBeC-B.js +1 -1
- package/dist/plugin-sdk/model-auth-fJrNIbke.cjs +1 -1
- package/dist/plugin-sdk/model-auth-g6eGgTwR.js +1 -1
- package/dist/plugin-sdk/model-auth-wcxJptQX.js +1 -1
- package/dist/plugin-sdk/model-selection-4ExiFkaW.js +1 -1
- package/dist/plugin-sdk/model-selection-CZY_x2-a.cjs +1 -1
- package/dist/plugin-sdk/msteams.cjs +1 -1
- package/dist/plugin-sdk/msteams.js +1 -1
- package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
- package/dist/plugin-sdk/nextcloud-talk.js +1 -1
- package/dist/plugin-sdk/nostr.cjs +1 -1
- package/dist/plugin-sdk/nostr.js +1 -1
- package/dist/plugin-sdk/outbound-2VVSR_d4.js +1 -1
- package/dist/plugin-sdk/outbound-B03BQa7T.cjs +1 -1
- package/dist/plugin-sdk/outbound-BE8CJ9c_.js +1 -1
- package/dist/plugin-sdk/outbound-BWtGs0dn.cjs +1 -1
- package/dist/plugin-sdk/outbound-BrD0UsX0.js +1 -1
- package/dist/plugin-sdk/outbound-Bvu4LbQx.js +1 -1
- package/dist/plugin-sdk/outbound-C5rNt-8z.cjs +1 -1
- package/dist/plugin-sdk/outbound-C6BJCoYf.cjs +1 -1
- package/dist/plugin-sdk/outbound-Cgc0JJtB.js +1 -1
- package/dist/plugin-sdk/outbound-DAHIkpiA.cjs +1 -1
- package/dist/plugin-sdk/outbound-DnO_udAm.cjs +1 -1
- package/dist/plugin-sdk/outbound-UAHsCNyW.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-0QahtSQB.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-8qvAj1MK.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-B6SJy_CG.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-BVdSGifg.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-C-QqSQ79.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-CYGrnygD.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-CtA5eBgj.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-D8Ng5uVX.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-DS0S0NLK.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-Ds2XsjQl.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-acB4qID1.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-x4Q2SVIA.cjs +1 -1
- package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -1
- package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -1
- package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -1
- package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -1
- package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -1
- package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -1
- package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -1
- package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -1
- package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -1
- package/dist/plugin-sdk/paths-CtrEseGU.js +1 -1
- package/dist/plugin-sdk/paths-D55o_j8-.js +1 -1
- package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -1
- package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -1
- package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -1
- package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -1
- package/dist/plugin-sdk/paths-Do0djuaj.js +1 -1
- package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -1
- package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -1
- package/dist/plugin-sdk/paths-piJASC5k.js +1 -1
- package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery--UcCzdQg.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-Bi4dKtW0.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-CCK2Ppj9.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-CRSZ0OFi.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-Cx_r4FGY.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-D3JQMjAa.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DN1RHetG.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DVFSU0-f.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DWMAAhA-.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DYOHzCjs.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DdSVvbQ5.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DejkxBol.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-SmVAFMj_.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-ma8st1Ek.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-B2WodYBY.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BC114tUb.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BF6jP1nM.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Beg-U7Z-.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BkEYsSLL.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-C21sWtkh.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CKkgBGIj.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CNun__L-.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Clulhv2X.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DvwL5in9.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-FnzjmZqP.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Rq5y0QJ2.cjs +1 -1
- package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -1
- package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -1
- package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -1
- package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -1
- package/dist/plugin-sdk/polls-PGxiE05J.js +1 -1
- package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -1
- package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -1
- package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -1
- package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -1
- package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -1
- package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-3piACPqP.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-8dajXBkZ.js +1 -1
- package/dist/plugin-sdk/pw-ai-B7mrBDW5.js +1 -1
- package/dist/plugin-sdk/pw-ai-BLD7x-3a.js +1 -1
- package/dist/plugin-sdk/pw-ai-BYmANcaC.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-C1rVW06B.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-CCDvaBUm.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-CVYUOcKM.js +1 -1
- package/dist/plugin-sdk/pw-ai-DBg5CCXp.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-DY11CCd3.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-Kf2RyA25.js +1 -1
- package/dist/plugin-sdk/pw-ai-f5yF3n3t.js +1 -1
- package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -1
- package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -1
- package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -1
- package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -1
- package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -1
- package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -1
- package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -1
- package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -1
- package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -1
- package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -1
- package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -1
- package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -1
- package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -1
- package/dist/plugin-sdk/qwen-portal-auth.js +1 -1
- package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -1
- package/dist/plugin-sdk/render-CBsnn-2A.js +1 -1
- package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -1
- package/dist/plugin-sdk/render-DGmfCIRG.js +1 -1
- package/dist/plugin-sdk/render-DhTJXP1U.js +1 -1
- package/dist/plugin-sdk/render-Djx15dPh.js +1 -1
- package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -1
- package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -1
- package/dist/plugin-sdk/reply-BrHB7v5V.cjs +1 -1
- package/dist/plugin-sdk/reply-Clex4c2R.js +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-BHLQMMp-.cjs +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-Cvz2WXAk.cjs +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-DDqGniMw.js +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-DEpmpEep.js +1 -1
- package/dist/plugin-sdk/send--HeMLLzj.js +1 -1
- package/dist/plugin-sdk/send-2IhtEEzb.js +1 -1
- package/dist/plugin-sdk/send-9tPLnqkc.js +1 -1
- package/dist/plugin-sdk/send-B-exJfkg.js +1 -1
- package/dist/plugin-sdk/send-B4kzPtcN.js +1 -1
- package/dist/plugin-sdk/send-BCSkdYN6.cjs +1 -1
- package/dist/plugin-sdk/send-BEmZxBcF.js +1 -1
- package/dist/plugin-sdk/send-BHvZIrbJ.cjs +1 -1
- package/dist/plugin-sdk/send-BLbCBxeF.js +1 -1
- package/dist/plugin-sdk/send-BOkABdQu.cjs +1 -1
- package/dist/plugin-sdk/send-BPNd63Qs.js +1 -1
- package/dist/plugin-sdk/send-BVAm6Zbr.cjs +1 -1
- package/dist/plugin-sdk/send-B_619b3s.js +1 -1
- package/dist/plugin-sdk/send-BcuylzbX.js +1 -1
- package/dist/plugin-sdk/send-BdFvK9Wc2.js +1 -1
- package/dist/plugin-sdk/send-Bh-J7XWZ.cjs +1 -1
- package/dist/plugin-sdk/send-BkREPc90.cjs +1 -1
- package/dist/plugin-sdk/send-Bp4f-KJu.cjs +1 -1
- package/dist/plugin-sdk/send-BtF36kYb.js +1 -1
- package/dist/plugin-sdk/send-C6S8tkTA.cjs +1 -1
- package/dist/plugin-sdk/send-CDQF_izk.js +1 -1
- package/dist/plugin-sdk/send-CF3qas-K.js +1 -1
- package/dist/plugin-sdk/send-CFKQX2Wo.js +1 -1
- package/dist/plugin-sdk/send-CIP1u5a-.js +1 -1
- package/dist/plugin-sdk/send-CIxh7PV0.cjs +1 -1
- package/dist/plugin-sdk/send-CJJdcDHX.js +1 -1
- package/dist/plugin-sdk/send-COtvydDt.cjs +1 -1
- package/dist/plugin-sdk/send-CPwh7tRu.js +1 -1
- package/dist/plugin-sdk/send-CRnIqXN9.cjs +1 -1
- package/dist/plugin-sdk/send-CSqipUeV.cjs +1 -1
- package/dist/plugin-sdk/send-Chfe8tPY.js +1 -1
- package/dist/plugin-sdk/send-ClMvdjfg.js +1 -1
- package/dist/plugin-sdk/send-CmoJSYhT.js +1 -1
- package/dist/plugin-sdk/send-Cs5jSTw0.cjs +1 -1
- package/dist/plugin-sdk/send-D-6Et_9H.js +1 -1
- package/dist/plugin-sdk/send-D13uFnzH.cjs +1 -1
- package/dist/plugin-sdk/send-D3eT0F4N.cjs +1 -1
- package/dist/plugin-sdk/send-DAtg_VHa.js +1 -1
- package/dist/plugin-sdk/send-DCF59ijQ.cjs +1 -1
- package/dist/plugin-sdk/send-DN2xic3w.cjs +1 -1
- package/dist/plugin-sdk/send-DOjSTB6D.cjs +1 -1
- package/dist/plugin-sdk/send-DavwL7cF.js +1 -1
- package/dist/plugin-sdk/send-Dbmn1rgD.cjs +1 -1
- package/dist/plugin-sdk/send-DhfDqcwc.cjs +1 -1
- package/dist/plugin-sdk/send-DsDCrJWq.js +1 -1
- package/dist/plugin-sdk/send-DyR5Lpl-.js +1 -1
- package/dist/plugin-sdk/send-DyzuwDjE.js +1 -1
- package/dist/plugin-sdk/send-GtphEa1b.cjs +1 -1
- package/dist/plugin-sdk/send-HZNY_u3L.cjs +1 -1
- package/dist/plugin-sdk/send-IM-76QZu.js +1 -1
- package/dist/plugin-sdk/send-IqcgAO8b.cjs +1 -1
- package/dist/plugin-sdk/send-OQcuL9tP.js +1 -1
- package/dist/plugin-sdk/send-_92aOzWU.cjs +1 -1
- package/dist/plugin-sdk/send-h_kE-cAK.js +1 -1
- package/dist/plugin-sdk/send-jOMdGt0L.cjs +1 -1
- package/dist/plugin-sdk/send-mZ_d-t_3.cjs +1 -1
- package/dist/plugin-sdk/send-puyUta4_.cjs +1 -1
- package/dist/plugin-sdk/send-t5U34FhY.cjs +1 -1
- package/dist/plugin-sdk/send-tvw8j-Se.cjs +1 -1
- package/dist/plugin-sdk/send-z1vaCgF3.cjs +1 -1
- package/dist/plugin-sdk/session--K1m5v7m.js +1 -1
- package/dist/plugin-sdk/session-B1DJ45om.js +1 -1
- package/dist/plugin-sdk/session-B80NWO1m.js +1 -1
- package/dist/plugin-sdk/session-BKPBr445.js +1 -1
- package/dist/plugin-sdk/session-BQLjsBwL.cjs +1 -1
- package/dist/plugin-sdk/session-BZHltxdM.js +1 -1
- package/dist/plugin-sdk/session-Bt5yI-VW.cjs +1 -1
- package/dist/plugin-sdk/session-CC1GqwiM.cjs +1 -1
- package/dist/plugin-sdk/session-C_yqyp3P.cjs +1 -1
- package/dist/plugin-sdk/session-ClISxvtJ.js +1 -1
- package/dist/plugin-sdk/session-D4nn-nXX.cjs +1 -1
- package/dist/plugin-sdk/session-DOA4CJgj.cjs +1 -1
- package/dist/plugin-sdk/sessions-BwTjGneU.js +1 -1
- package/dist/plugin-sdk/sessions-CJbvfO6m.cjs +1 -1
- package/dist/plugin-sdk/signal.cjs +1 -1
- package/dist/plugin-sdk/signal.js +1 -1
- package/dist/plugin-sdk/skill-commands-5WGHyr3h.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-BZlF3g3o.js +1 -1
- package/dist/plugin-sdk/skill-commands-BmBQSmNH.js +1 -1
- package/dist/plugin-sdk/skill-commands-CD4GQXTR.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-CGOPOT-r.js +1 -1
- package/dist/plugin-sdk/skill-commands-CM9ziCQY.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-CVsU5rEy.js +1 -1
- package/dist/plugin-sdk/skill-commands-DNPxE-kc.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-DcgKCVDt.js +1 -1
- package/dist/plugin-sdk/skill-commands-IAwkVeOe.js +1 -1
- package/dist/plugin-sdk/skill-commands-ZyLkXbR_.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-xJWQthd5.cjs +1 -1
- package/dist/plugin-sdk/slack.cjs +1 -1
- package/dist/plugin-sdk/slack.js +1 -1
- package/dist/plugin-sdk/synology-chat.cjs +1 -1
- package/dist/plugin-sdk/synology-chat.js +1 -1
- package/dist/plugin-sdk/tables-BZUVdTR-.cjs +1 -1
- package/dist/plugin-sdk/tables-Bbodvj_s.cjs +1 -1
- package/dist/plugin-sdk/tables-C5b2CtNw.cjs +1 -1
- package/dist/plugin-sdk/tables-C6TX2QvW.js +1 -1
- package/dist/plugin-sdk/tables-Cz5osenc.js +1 -1
- package/dist/plugin-sdk/tables-DBSeZ07-.cjs +1 -1
- package/dist/plugin-sdk/tables-DLSXY2-Q.js +1 -1
- package/dist/plugin-sdk/tables-DQad-z2Z.cjs +1 -1
- package/dist/plugin-sdk/tables-DYuLwL1d.js +1 -1
- package/dist/plugin-sdk/tables-D_J655yN.js +1 -1
- package/dist/plugin-sdk/tables-_vqK8P0T.js +1 -1
- package/dist/plugin-sdk/tables-bSgb8OzP.cjs +1 -1
- package/dist/plugin-sdk/target-errors-B-mJ4s4b.cjs +1 -1
- package/dist/plugin-sdk/target-errors-BAHAHc8f.js +1 -1
- package/dist/plugin-sdk/target-errors-BKruhz8r.js +1 -1
- package/dist/plugin-sdk/target-errors-BbQBR5da.js +1 -1
- package/dist/plugin-sdk/target-errors-BjgLCOTm.cjs +1 -1
- package/dist/plugin-sdk/target-errors-CQbFkOae.js +1 -1
- package/dist/plugin-sdk/target-errors-C_HYvghh.cjs +1 -1
- package/dist/plugin-sdk/target-errors-CaaKhU6m.js +1 -1
- package/dist/plugin-sdk/target-errors-QWTCk98R.cjs +1 -1
- package/dist/plugin-sdk/target-errors-oh0u5K2w.cjs +1 -1
- package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -1
- package/dist/plugin-sdk/targets-BSkiizml.js +1 -1
- package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -1
- package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -1
- package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -1
- package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -1
- package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -1
- package/dist/plugin-sdk/targets-CrkJkzil.js +1 -1
- package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -1
- package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -1
- package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -1
- package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -1
- package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -1
- package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -1
- package/dist/plugin-sdk/telegram.cjs +1 -1
- package/dist/plugin-sdk/telegram.js +1 -1
- package/dist/plugin-sdk/test-utils.cjs +1 -1
- package/dist/plugin-sdk/test-utils.js +1 -1
- package/dist/plugin-sdk/tlon.cjs +1 -1
- package/dist/plugin-sdk/tlon.js +1 -1
- package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -1
- package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -1
- package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -1
- package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -1
- package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -1
- package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -1
- package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -1
- package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -1
- package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -1
- package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -1
- package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -1
- package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -1
- package/dist/plugin-sdk/twitch.cjs +1 -1
- package/dist/plugin-sdk/twitch.js +1 -1
- package/dist/plugin-sdk/utils-BJtJR72k.js +1 -1
- package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -1
- package/dist/plugin-sdk/voice-call.cjs +1 -1
- package/dist/plugin-sdk/voice-call.js +1 -1
- package/dist/plugin-sdk/web-B4A8zBP9.cjs +1 -1
- package/dist/plugin-sdk/web-BKKx3jqf.cjs +1 -1
- package/dist/plugin-sdk/web-BTBgpaEi.js +1 -1
- package/dist/plugin-sdk/web-BfjArU7g.js +1 -1
- package/dist/plugin-sdk/web-C7KhecaH.cjs +1 -1
- package/dist/plugin-sdk/web-CFMrBQv7.js +1 -1
- package/dist/plugin-sdk/web-CS0AvKLx.js +1 -1
- package/dist/plugin-sdk/web-EfgEjg15.cjs +1 -1
- package/dist/plugin-sdk/weixin.cjs +1 -1
- package/dist/plugin-sdk/weixin.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-6N2LIWVD.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BGEghean.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BP_fSzB9.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BSx6-Onq.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BZAMGDn8.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BvZMduqd.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-CDUbwNdp.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DNVIKnqz.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DTVbVkOo.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DjMYqpSS.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-P1DVqKhD.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-shElOKKX.js +1 -1
- package/dist/plugin-sdk/whatsapp.cjs +1 -1
- package/dist/plugin-sdk/whatsapp.js +1 -1
- package/dist/plugin-sdk/zalo.cjs +1 -1
- package/dist/plugin-sdk/zalo.js +1 -1
- package/dist/plugin-sdk/zalouser.cjs +1 -1
- package/dist/plugin-sdk/zalouser.js +1 -1
- package/dist/plugins-CYLrFT4h.js +1 -1
- package/dist/plugins-DNlgeTTc.js +1 -1
- package/dist/plugins-cli-BiV4FaGs.js +1 -1
- package/dist/plugins-cli-C0PLRxT0.js +1 -1
- package/dist/polls-BIVz6a4F.js +1 -1
- package/dist/polls-Bh5wc9-6.js +1 -1
- package/dist/polls-C_XSFz3d.js +1 -1
- package/dist/polls-DKJOFSzJ.js +1 -1
- package/dist/ports-Bjc9q__g.js +1 -1
- package/dist/ports-Di2_MOUb.js +1 -1
- package/dist/probe-auth-9RrZOStc.js +1 -1
- package/dist/probe-auth-Cg6SAov9.js +1 -1
- package/dist/profile-utils-CWmra1aY.js +1 -1
- package/dist/program-CI--7377.js +1 -1
- package/dist/program-context-CH9p6anW.js +1 -1
- package/dist/program-context-Cu8fVR-O.js +1 -1
- package/dist/progress-LNttnI-y.js +1 -1
- package/dist/progress-d1m2sqR1.js +1 -1
- package/dist/prompt-select-styled-CbTtKeIC.js +1 -1
- package/dist/prompt-select-styled-sYEl0gMg.js +1 -1
- package/dist/prompt-style-BThRSQJR.js +1 -1
- package/dist/prompt-style-CXKekIBY.js +1 -1
- package/dist/prompts-CMzglboN.js +1 -1
- package/dist/prompts-wv-lfVrJ.js +1 -1
- package/dist/provider-auth-helpers-C3OaF218.js +1 -1
- package/dist/provider-auth-helpers-CZyb7LUg.js +1 -1
- package/dist/provider-env-vars-D8p6Ohpj.js +1 -1
- package/dist/provider-env-vars-Dt0Q29Su.js +1 -1
- package/dist/proxy-env-BNhTHkd_.js +1 -1
- package/dist/proxy-env-DcmW_urA.js +1 -1
- package/dist/proxy-env-DrC3TIGh.js +1 -1
- package/dist/proxy-env-FJr5nlvs.js +1 -1
- package/dist/proxy-fetch-BADsUK4d.js +1 -1
- package/dist/proxy-fetch-BZ9O8Dvj.js +1 -1
- package/dist/proxy-fetch-DnjU1fEB.js +1 -1
- package/dist/proxy-fetch-gWETR3cl.js +1 -1
- package/dist/push-apns-kySzOiJr.js +1 -1
- package/dist/push-apns-tM6G9LLm.js +1 -1
- package/dist/pw-ai-B7YMA_4Q.js +1 -1
- package/dist/pw-ai-C7peCONw.js +1 -1
- package/dist/pw-ai-CojtT9WR.js +1 -1
- package/dist/pw-ai-DWJWFzTA.js +1 -1
- package/dist/qmd-manager-C_e04BNg.js +1 -1
- package/dist/qmd-manager-DSQ_mDCl.js +1 -1
- package/dist/qmd-manager-DcBYbt_V.js +1 -1
- package/dist/qmd-manager-NLI0R6kp.js +1 -1
- package/dist/qr-cli-DUR7oW0_.js +1 -1
- package/dist/qr-cli-kb3ygh9I.js +1 -1
- package/dist/query-expansion-0OxEb1Io.js +1 -1
- package/dist/query-expansion-BUUx_oWg.js +1 -1
- package/dist/query-expansion-r_iXkNzt.js +1 -1
- package/dist/reaction-level-DVPHL14p.js +1 -1
- package/dist/reaction-message-id-BEEe7X3D.js +1 -1
- package/dist/read-only-account-inspect-DEnPVHTo.js +1 -1
- package/dist/redact-3_CiXMY6.js +1 -1
- package/dist/redact-CnRxK70G.js +1 -1
- package/dist/register.agent-BwmE1VD-.js +1 -1
- package/dist/register.agent-D1hQi_68.js +1 -1
- package/dist/register.backup-8s5jgnHQ.js +1 -1
- package/dist/register.backup-CAiwLaIW.js +1 -1
- package/dist/register.configure-BsTw4XfK.js +1 -1
- package/dist/register.configure-DxR84Ot6.js +1 -1
- package/dist/register.maintenance-3nzWAo_a.js +1 -1
- package/dist/register.maintenance-DxKGQ9Jo.js +1 -1
- package/dist/register.message-Bk1pHVSK.js +1 -1
- package/dist/register.message-PcFtBR0-.js +1 -1
- package/dist/register.onboard-AWxbhU7j.js +1 -1
- package/dist/register.onboard-BTOZN8ro.js +1 -1
- package/dist/register.setup-B-e1qIbc.js +1 -1
- package/dist/register.setup-CweJJdt8.js +1 -1
- package/dist/register.status-health-sessions-B1R_nl6P.js +1 -1
- package/dist/register.status-health-sessions-CWNLXpAn.js +1 -1
- package/dist/register.subclis-C0VQ_HfZ.js +1 -1
- package/dist/registry-BptzrW8D.js +1 -1
- package/dist/registry-hFAtCSWG.js +1 -1
- package/dist/render-BXEUPIHe.js +1 -1
- package/dist/render-CBsnn-2A.js +1 -1
- package/dist/render-D8OWO2hT.js +1 -1
- package/dist/render-DrrPmnMI.js +1 -1
- package/dist/reply-r9KtzgpM.js +1 -1
- package/dist/restart-CTfuVGfA.js +1 -1
- package/dist/rpc-BQXfCyCw.js +1 -1
- package/dist/rpc-CcrILVsV.js +1 -1
- package/dist/run-main-CuQQyoU3.js +1 -1
- package/dist/runtime-BlsMYeaw.js +1 -1
- package/dist/runtime-DLxfCs7F.js +1 -1
- package/dist/runtime-guard-DFYBaYZS.js +1 -1
- package/dist/runtime-guard-DX2Ie4ri.js +1 -1
- package/dist/runtime-status-CqFBmdRd.js +1 -1
- package/dist/runtime-status-DszMjvJK.js +1 -1
- package/dist/runtime-web-tools-BWv0X5qp.js +1 -1
- package/dist/runtime-web-tools-CCIXUISf.js +1 -1
- package/dist/sandbox-cli-CxluKLFV.js +1 -1
- package/dist/sandbox-cli-xCX6FV4Z.js +1 -1
- package/dist/scan-paths-C13EseXp.js +1 -1
- package/dist/scan-paths-CWtvWW40.js +1 -1
- package/dist/search-manager-KMRzwyPH.js +1 -1
- package/dist/secret-file-C7JffiM_.js +1 -1
- package/dist/secret-file-D60EFEOe.js +1 -1
- package/dist/secret-file-DuWm26jS.js +1 -1
- package/dist/secrets-cli-Be6OBr6Q.js +1 -1
- package/dist/secrets-cli-DmDZiX17.js +1 -1
- package/dist/secure-random-D7JQgiK-.js +1 -1
- package/dist/security-cli-CllLwpQ-.js +1 -1
- package/dist/security-cli-DcA9keUK.js +1 -1
- package/dist/send-8rJCpsDu.js +1 -1
- package/dist/send-BJjoLBo3.js +1 -1
- package/dist/send-BOxuQt9L.js +1 -1
- package/dist/send-BPfl_1It.js +1 -1
- package/dist/send-BdS6jUBa.js +1 -1
- package/dist/send-BeZJ1zbp.js +1 -1
- package/dist/send-BkZ8dWQV2.js +1 -1
- package/dist/send-CDAeI9xB2.js +1 -1
- package/dist/send-CgeRzkWS.js +1 -1
- package/dist/send-CiTZ4p2t.js +1 -1
- package/dist/send-D0y-r_hg2.js +1 -1
- package/dist/send-DIw8ExHc.js +1 -1
- package/dist/send-DRm6AFp-.js +1 -1
- package/dist/send-DS5Quwb7.js +1 -1
- package/dist/send-DVmPgxm7.js +1 -1
- package/dist/send-Ds5sy22D.js +1 -1
- package/dist/send-DvGzdoKK.js +1 -1
- package/dist/send-OVet2uKx.js +1 -1
- package/dist/send-YPQFx-fV.js +1 -1
- package/dist/send-e2ppdA_R.js +1 -1
- package/dist/server-Dzqb5Tau.js +1 -1
- package/dist/server-node-events-B2irOUJ_.js +1 -1
- package/dist/server-node-events-DSr6P0VG.js +1 -1
- package/dist/server-w7sUBJEA.js +1 -1
- package/dist/service-BtB9epJk.js +1 -1
- package/dist/service-DZ9EbS15.js +1 -1
- package/dist/session-BYYOduc1.js +1 -1
- package/dist/session-B_qrXLsR.js +1 -1
- package/dist/session-Be0RV2V1.js +1 -1
- package/dist/session-bk3gFwO4.js +1 -1
- package/dist/session-cost-usage-BgqKixv0.js +1 -1
- package/dist/session-cost-usage-CHtVgnE8.js +1 -1
- package/dist/session-key-C7F_iqYg.js +1 -1
- package/dist/session-key-D3P0tf5P.js +1 -1
- package/dist/session-utils-CrR0wD3W.js +1 -1
- package/dist/sessions-BvTGb3rW.js +1 -1
- package/dist/shared-9x5sqYRb.js +1 -1
- package/dist/shared-BKWhOp64.js +1 -1
- package/dist/shared-BV-hfJ3h.js +1 -1
- package/dist/skill-commands-C59b8Yso.js +1 -1
- package/dist/skill-commands-CqIEajsA.js +1 -1
- package/dist/skill-commands-F5NFH0NR.js +1 -1
- package/dist/skill-commands-O39uSj-k.js +1 -1
- package/dist/skill-scanner-CUUF3Fvo.js +1 -1
- package/dist/skill-scanner-CkxXNioD.js +1 -1
- package/dist/skills-CKTicUKS.js +1 -1
- package/dist/skills-DHbOKEGc.js +1 -1
- package/dist/skills-cli-CZD1Ng18.js +1 -1
- package/dist/skills-cli-nj0w4fe0.js +1 -1
- package/dist/skills-install-D0I6c17J.js +1 -1
- package/dist/skills-install-XHpqMBWl.js +1 -1
- package/dist/skills-status-BWIugRCz.js +1 -1
- package/dist/skills-status-DswSl5aD.js +1 -1
- package/dist/sqlite-CILF3z9U.js +1 -1
- package/dist/stagger-DmFYysrJ.js +1 -1
- package/dist/stagger-DxzgG2jd.js +1 -1
- package/dist/status-DKB9gdSp.js +1 -1
- package/dist/status-DgRrUxyg.js +1 -1
- package/dist/status-YZD9V9xi.js +1 -1
- package/dist/status-isxcm8Xz.js +1 -1
- package/dist/status.update-B_8Gumuc.js +1 -1
- package/dist/status.update-Cf2e-l9d.js +1 -1
- package/dist/string-normalization-BrUPaXaM.js +1 -1
- package/dist/string-normalization-DJT5zuUF.js +1 -1
- package/dist/subsystem-BLbY429l.js +1 -1
- package/dist/subsystem-Bc2XrjUz.js +1 -1
- package/dist/subsystem-C5XF2Fy5.js +1 -1
- package/dist/system-cli-CRs3TOTw.js +1 -1
- package/dist/system-cli-GyoLZQpj.js +1 -1
- package/dist/system-run-command-DCzdgYyb.js +1 -1
- package/dist/system-run-command-FCk9hSMO.js +1 -1
- package/dist/systemd-D7odsu4K.js +1 -1
- package/dist/systemd-DbevZh65.js +1 -1
- package/dist/systemd-hints-lXpMy-kY.js +1 -1
- package/dist/systemd-hints-x1lJAOxS.js +1 -1
- package/dist/systemd-linger-C2MJD6KG.js +1 -1
- package/dist/systemd-linger-cWKbFNpu.js +1 -1
- package/dist/table-CR7TFMew.js +1 -1
- package/dist/table-CY440fI1.js +1 -1
- package/dist/tables-3Rjt6nwZ.js +1 -1
- package/dist/tables-B9wFKQvT.js +1 -1
- package/dist/tables-D1pcaye7.js +1 -1
- package/dist/tables-h7y1Jhf4.js +1 -1
- package/dist/target-errors-CUQcIty1.js +1 -1
- package/dist/target-errors-D55sWZ4E.js +1 -1
- package/dist/target-errors-DH0aw-m5.js +1 -1
- package/dist/target-errors-LuLROpta.js +1 -1
- package/dist/targets-4EaxWBal.js +1 -1
- package/dist/targets-BJTo7bqu.js +1 -1
- package/dist/targets-BYVMrXDf.js +1 -1
- package/dist/targets-Bq6rS6-Z.js +1 -1
- package/dist/targets-CL5fYQi7.js +1 -1
- package/dist/targets-fozeWOOg.js +1 -1
- package/dist/targets-m_41k_Mv.js +1 -1
- package/dist/telegram/audit.js +1 -1
- package/dist/text-format-CvrvBBre.js +1 -1
- package/dist/text-format-DEWK6oCT.js +1 -1
- package/dist/token-DnTmiyJu.js +1 -1
- package/dist/tokens-B2fq-rL6.js +1 -1
- package/dist/tokens-CL2fSjGl.js +1 -1
- package/dist/tokens-DRM8vzJx.js +1 -1
- package/dist/tokens-XGbQGn67.js +1 -1
- package/dist/tool-display-DJDtttQg.js +1 -1
- package/dist/tool-display-DjuSUUbH.js +1 -1
- package/dist/tui-CqEb9hrT.js +1 -1
- package/dist/tui-DdZ8SpNW.js +1 -1
- package/dist/tui-cli-Bj0okLCf.js +1 -1
- package/dist/tui-cli-CYvBshyB.js +1 -1
- package/dist/types.secrets-C-5U96pc.js +1 -1
- package/dist/types.secrets-D4tbc3Wq.js +1 -1
- package/dist/update-BGrxUIyz.js +1 -1
- package/dist/update-CwTy5DPl.js +1 -1
- package/dist/update-cli-lciKU8_L.js +1 -1
- package/dist/update-cli-xb0jHjE8.js +1 -1
- package/dist/update-runner-8Hto6X-M.js +1 -1
- package/dist/update-runner-LVJcy569.js +1 -1
- package/dist/usage-format-BWD8FJFL.js +1 -1
- package/dist/usage-format-yPwal8Iz.js +1 -1
- package/dist/utils-CGdo13HV.js +1 -1
- package/dist/utils-D3t-vPka.js +1 -1
- package/dist/utils-R-mFyVJi.js +1 -1
- package/dist/utils-UGOV_184.js +1 -1
- package/dist/version-q3SkUw2K.js +1 -1
- package/dist/warning-filter.js +1 -1
- package/dist/web-Bfz_qlYe.js +1 -1
- package/dist/web-ClbIohhf.js +1 -1
- package/dist/webhooks-cli-DKfKihmJ.js +1 -1
- package/dist/webhooks-cli-LU2ADRQp.js +1 -1
- package/dist/whatsapp-actions-1TJ8dlv0.js +1 -1
- package/dist/whatsapp-actions-CuDiuPGa.js +1 -1
- package/dist/whatsapp-actions-DkLDOIk1.js +1 -1
- package/dist/whatsapp-actions-EnduXWui.js +1 -1
- package/dist/widearea-dns-BDx7vkV2.js +1 -1
- package/dist/widearea-dns-BFjqKXu_.js +1 -1
- package/dist/windows-spawn-7oINn5ao.js +1 -1
- package/dist/windows-spawn-AB7ItGAE.js +1 -1
- package/dist/with-timeout-WveKxvFV.js +1 -1
- package/dist/with-timeout-c1CzdShT.js +1 -1
- package/dist/workspace-B0ZQeHXg.js +1 -1
- package/dist/workspace-C45T1Cxg.js +1 -1
- package/dist/workspace-dirs-A8Vib9_B.js +1 -1
- package/dist/workspace-dirs-BhF1Dzxt.js +1 -1
- package/dist/workspace-xNEpaJvu.js +1 -1
- package/dist/wsl-DHxB2Ew_.js +1 -1
- package/dist/wsl-Ok7GaSJ6.js +1 -1
- package/extensions/memory-core/index.js +1 -0
- package/extensions/memory-core/package.json +1 -1
- package/extensions/openclaw-telemetry-galileo-embedded/index.js +4 -0
- package/extensions/openclaw-telemetry-galileo-embedded/package.json +2 -2
- package/extensions/openclaw-telemetry-galileo-embedded/src/service.js +13 -0
- package/extensions/openclaw-weixin/index.js +1 -0
- package/extensions/openclaw-weixin/package.json +3 -3
- package/extensions/openclaw-weixin/src/api/api.js +1 -0
- package/extensions/openclaw-weixin/src/api/config-cache.js +1 -0
- package/extensions/openclaw-weixin/src/api/session-guard.js +1 -0
- package/extensions/openclaw-weixin/src/api/types.js +1 -0
- package/extensions/openclaw-weixin/src/auth/accounts.js +1 -0
- package/extensions/openclaw-weixin/src/auth/login-qr.js +11 -0
- package/extensions/openclaw-weixin/src/auth/pairing.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/aes-ecb.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/cdn-upload.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/cdn-url.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/pic-decrypt.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/upload.js +1 -0
- package/extensions/openclaw-weixin/src/channel.js +6 -0
- package/extensions/openclaw-weixin/src/config/config-schema.js +1 -0
- package/extensions/openclaw-weixin/src/log-upload.js +4 -0
- package/extensions/openclaw-weixin/src/media/media-download.js +1 -0
- package/extensions/openclaw-weixin/src/media/mime.js +1 -0
- package/extensions/openclaw-weixin/src/media/silk-transcode.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/debug-mode.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/error-notice.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/inbound.js +2 -0
- package/extensions/openclaw-weixin/src/messaging/process-message.js +3 -0
- package/extensions/openclaw-weixin/src/messaging/send-media.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/send.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/slash-commands.js +2 -0
- package/extensions/openclaw-weixin/src/monitor/monitor.js +1 -0
- package/extensions/openclaw-weixin/src/runtime.js +1 -0
- package/extensions/openclaw-weixin/src/storage/state-dir.js +1 -0
- package/extensions/openclaw-weixin/src/storage/sync-buf.js +1 -0
- package/extensions/openclaw-weixin/src/util/logger.js +2 -0
- package/extensions/openclaw-weixin/src/util/random.js +1 -0
- package/extensions/openclaw-weixin/src/util/redact.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/index.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/package.json +1 -1
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.js +1 -0
- package/package.json +1 -1
- package/preset-config.json +22 -0
- package/extensions/memory-core/index.ts +0 -38
- package/extensions/openclaw-telemetry-galileo-embedded/index.ts +0 -663
- package/extensions/openclaw-telemetry-galileo-embedded/src/service.ts +0 -1590
- package/extensions/openclaw-weixin/index.ts +0 -26
- package/extensions/openclaw-weixin/src/api/api.ts +0 -238
- package/extensions/openclaw-weixin/src/api/config-cache.ts +0 -79
- package/extensions/openclaw-weixin/src/api/session-guard.ts +0 -58
- package/extensions/openclaw-weixin/src/api/types.ts +0 -222
- package/extensions/openclaw-weixin/src/auth/accounts.ts +0 -363
- package/extensions/openclaw-weixin/src/auth/login-qr.ts +0 -344
- package/extensions/openclaw-weixin/src/auth/pairing.ts +0 -120
- package/extensions/openclaw-weixin/src/cdn/aes-ecb.ts +0 -21
- package/extensions/openclaw-weixin/src/cdn/cdn-upload.ts +0 -75
- package/extensions/openclaw-weixin/src/cdn/cdn-url.ts +0 -17
- package/extensions/openclaw-weixin/src/cdn/pic-decrypt.ts +0 -85
- package/extensions/openclaw-weixin/src/cdn/upload.ts +0 -154
- package/extensions/openclaw-weixin/src/channel.ts +0 -483
- package/extensions/openclaw-weixin/src/config/config-schema.ts +0 -21
- package/extensions/openclaw-weixin/src/log-upload.ts +0 -129
- package/extensions/openclaw-weixin/src/media/media-download.ts +0 -138
- package/extensions/openclaw-weixin/src/media/mime.ts +0 -76
- package/extensions/openclaw-weixin/src/media/silk-transcode.ts +0 -74
- package/extensions/openclaw-weixin/src/messaging/debug-mode.ts +0 -68
- package/extensions/openclaw-weixin/src/messaging/error-notice.ts +0 -36
- package/extensions/openclaw-weixin/src/messaging/inbound.ts +0 -283
- package/extensions/openclaw-weixin/src/messaging/process-message.ts +0 -488
- package/extensions/openclaw-weixin/src/messaging/send-media.ts +0 -76
- package/extensions/openclaw-weixin/src/messaging/send.ts +0 -267
- package/extensions/openclaw-weixin/src/messaging/slash-commands.ts +0 -105
- package/extensions/openclaw-weixin/src/monitor/monitor.ts +0 -225
- package/extensions/openclaw-weixin/src/runtime.ts +0 -67
- package/extensions/openclaw-weixin/src/storage/state-dir.ts +0 -11
- package/extensions/openclaw-weixin/src/storage/sync-buf.ts +0 -79
- package/extensions/openclaw-weixin/src/util/logger.ts +0 -146
- package/extensions/openclaw-weixin/src/util/random.ts +0 -17
- package/extensions/openclaw-weixin/src/util/redact.ts +0 -57
- package/extensions/openclaw-weixin/src/vendor.d.ts +0 -21
- package/extensions/qbagent-mcp-server-x5uselocal-node/index.ts +0 -140
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.ts +0 -157
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.ts +0 -135
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.ts +0 -205
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.ts +0 -351
|
@@ -67,4 +67,4 @@ import{A as e,N as t,k as n,o as r}from"./paths-CXgWvWAM.js";import{O as i,S as
|
|
|
67
67
|
FROM chunks
|
|
68
68
|
WHERE model = ?${e.sourceFilter.sql}`).all(e.providerModel,...e.sourceFilter.params).map(e=>({id:e.id,path:e.path,startLine:e.start_line,endLine:e.end_line,text:e.text,embedding:pe(e.embedding),source:e.source}))}async function Zn(e){if(e.limit<=0)return[];let t=e.buildFtsQuery(e.query);if(!t)return[];let n=e.providerModel?` AND model = ?`:``,r=e.providerModel?[e.providerModel]:[];return e.db.prepare(`SELECT id, path, source, start_line, end_line, text,\n bm25(${e.ftsTable}) AS rank\n FROM ${e.ftsTable}\n WHERE ${e.ftsTable} MATCH ?${n}${e.sourceFilter.sql}\n ORDER BY rank ASC\n LIMIT ?`).all(t,...r,...e.sourceFilter.params,e.limit).map(t=>{let n=e.bm25RankToScore(t.rank);return{id:t.id,path:t.path,startLine:t.start_line,endLine:t.end_line,score:n,textScore:n,snippet:a(t.text,e.snippetMaxChars),source:t.source}})}const Z=i(`memory`),Q=new Map,$=new Map;async function Qn(){let e=Array.from($.values());e.length>0&&await Promise.allSettled(e);let t=Array.from(Q.values());Q.clear();for(let e of t)try{await e.close()}catch(e){Z.warn(`failed to close memory index manager: ${String(e)}`)}}var $n=class n extends qn{static async get(r){let{cfg:i,agentId:a}=r,o=ze(i,a);if(!o)return null;let s=t(i,a),c=`${a}:${s}:${JSON.stringify(o)}`,l=Q.get(c);if(l)return l;let u=$.get(c);if(u)return u;let d=(async()=>{let t=await At({config:i,agentDir:e(i,a),provider:o.provider,remote:o.remote,model:o.model,outputDimensionality:o.outputDimensionality,fallback:o.fallback,local:o.local}),l=Q.get(c);if(l)return l;let u=new n({cacheKey:c,cfg:i,agentId:a,workspaceDir:s,settings:o,providerResult:t,purpose:r.purpose});return Q.set(c,u),u})();$.set(c,d);try{return await d}finally{$.get(c)===d&&$.delete(c)}}constructor(e){super(),this.batchFailureCount=0,this.batchFailureLock=Promise.resolve(),this.vectorReady=null,this.watcher=null,this.watchTimer=null,this.sessionWatchTimer=null,this.sessionUnsubscribe=null,this.intervalTimer=null,this.closed=!1,this.dirty=!1,this.sessionsDirty=!1,this.sessionsDirtyFiles=new Set,this.sessionPendingFiles=new Set,this.sessionDeltas=new Map,this.sessionWarm=new Set,this.syncing=null,this.readonlyRecoveryAttempts=0,this.readonlyRecoverySuccesses=0,this.readonlyRecoveryFailures=0,this.cacheKey=e.cacheKey,this.cfg=e.cfg,this.agentId=e.agentId,this.workspaceDir=e.workspaceDir,this.settings=e.settings,this.provider=e.providerResult.provider,this.requestedProvider=e.providerResult.requestedProvider,this.fallbackFrom=e.providerResult.fallbackFrom,this.fallbackReason=e.providerResult.fallbackReason,this.providerUnavailableReason=e.providerResult.providerUnavailableReason,this.openAi=e.providerResult.openAi,this.gemini=e.providerResult.gemini,this.voyage=e.providerResult.voyage,this.mistral=e.providerResult.mistral,this.ollama=e.providerResult.ollama,this.sources=new Set(e.settings.sources),this.db=this.openDatabase(),this.providerKey=this.computeProviderKey(),this.cache={enabled:e.settings.cache.enabled,maxEntries:e.settings.cache.maxEntries},this.fts={enabled:e.settings.query.hybrid.enabled,available:!1},this.ensureSchema(),this.vector={enabled:e.settings.store.vector.enabled,available:null,extensionPath:e.settings.store.vector.extensionPath};let t=this.readMeta();t?.vectorDims&&(this.vector.dims=t.vectorDims),this.ensureWatcher(),this.ensureSessionListener(),this.ensureIntervalSync();let n=e.purpose===`status`;this.dirty=this.sources.has(`memory`)&&(n?!t:!0),this.batch=this.resolveBatchConfig()}async warmSession(e){if(!this.settings.sync.onSessionStart)return;let t=e?.trim()||``;t&&this.sessionWarm.has(t)||(this.sync({reason:`session-start`}).catch(e=>{Z.warn(`memory sync failed (session-start): ${String(e)}`)}),t&&this.sessionWarm.add(t))}async search(e,t){this.warmSession(t?.sessionKey),this.settings.sync.onSearch&&(this.dirty||this.sessionsDirty)&&this.sync({reason:`search`}).catch(e=>{Z.warn(`memory sync failed (search): ${String(e)}`)});let n=e.trim();if(!n)return[];let r=t?.minScore??this.settings.query.minScore,i=t?.maxResults??this.settings.query.maxResults,a=this.settings.query.hybrid,o=Math.min(200,Math.max(1,Math.floor(i*a.candidateMultiplier)));if(!this.provider){if(!this.fts.enabled||!this.fts.available)return Z.warn(`memory search: no provider and FTS unavailable`),[];let e=Se(n),t=e.length>0?e:[n],a=await Promise.all(t.map(e=>this.searchKeyword(e,o).catch(()=>[]))),s=new Map;for(let e of a)for(let t of e){let e=s.get(t.id);(!e||t.score>e.score)&&s.set(t.id,t)}return[...s.values()].toSorted((e,t)=>t.score-e.score).filter(e=>e.score>=r).slice(0,i)}let s=a.enabled&&this.fts.enabled&&this.fts.available?await this.searchKeyword(n,o).catch(()=>[]):[],c=await this.embedQueryWithTimeout(n),l=c.some(e=>e!==0)?await this.searchVector(c,o).catch(()=>[]):[];if(!a.enabled||!this.fts.enabled||!this.fts.available)return l.filter(e=>e.score>=r).slice(0,i);let u=await this.mergeHybridResults({vector:l,keyword:s,vectorWeight:a.vectorWeight,textWeight:a.textWeight,mmr:a.mmr,temporalDecay:a.temporalDecay}),d=u.filter(e=>e.score>=r);if(d.length>0||s.length===0)return d.slice(0,i);let f=Math.min(r,a.textWeight),p=new Set(s.map(e=>`${e.source}:${e.path}:${e.startLine}:${e.endLine}`));return u.filter(e=>p.has(`${e.source}:${e.path}:${e.startLine}:${e.endLine}`)&&e.score>=f).slice(0,i)}async searchVector(e,t){return this.provider?(await Yn({db:this.db,vectorTable:`chunks_vec`,providerModel:this.provider.model,queryVec:e,limit:t,snippetMaxChars:700,ensureVectorReady:async e=>await this.ensureVectorReady(e),sourceFilterVec:this.buildSourceFilter(`c`),sourceFilterChunks:this.buildSourceFilter()})).map(e=>e):[]}buildFtsQuery(e){return Jt(e)}async searchKeyword(e,t){if(!this.fts.enabled||!this.fts.available)return[];let n=this.buildSourceFilter(),r=this.provider?.model;return(await Zn({db:this.db,ftsTable:`chunks_fts`,providerModel:r,query:e,limit:t,snippetMaxChars:700,sourceFilter:n,buildFtsQuery:e=>this.buildFtsQuery(e),bm25RankToScore:Yt})).map(e=>e)}mergeHybridResults(e){return Xt({vector:e.vector.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,vectorScore:e.score})),keyword:e.keyword.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,textScore:e.textScore})),vectorWeight:e.vectorWeight,textWeight:e.textWeight,mmr:e.mmr,temporalDecay:e.temporalDecay,workspaceDir:this.workspaceDir}).then(e=>e.map(e=>e))}async sync(e){if(!this.closed)return this.syncing?this.syncing:(this.syncing=this.runSyncWithReadonlyRecovery(e).finally(()=>{this.syncing=null}),this.syncing??Promise.resolve())}isReadonlyDbError(e){let t=/attempt to write a readonly database|database is read-only|SQLITE_READONLY/i,n=new Set,r=e=>{if(typeof e!=`string`)return;let t=e.trim();t&&n.add(t)};if(r(e instanceof Error?e.message:String(e)),e&&typeof e==`object`){let t=e;if(r(t.message),r(t.code),r(t.name),t.cause&&typeof t.cause==`object`){let e=t.cause;r(e.message),r(e.code),r(e.name)}}return[...n].some(e=>t.test(e))}extractErrorReason(e){if(e instanceof Error&&e.message.trim())return e.message;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`&&t.message.trim())return t.message;if(typeof t.code==`string`&&t.code.trim())return t.code}return String(e)}async runSyncWithReadonlyRecovery(e){try{await this.runSync(e);return}catch(t){if(!this.isReadonlyDbError(t)||this.closed)throw t;let n=this.extractErrorReason(t);this.readonlyRecoveryAttempts+=1,this.readonlyRecoveryLastError=n,Z.warn(`memory sync readonly handle detected; reopening sqlite connection`,{reason:n});try{this.db.close()}catch{}this.db=this.openDatabase(),this.vectorReady=null,this.vector.available=null,this.vector.loadError=void 0,this.ensureSchema();let r=this.readMeta();this.vector.dims=r?.vectorDims;try{await this.runSync(e),this.readonlyRecoverySuccesses+=1}catch(e){throw this.readonlyRecoveryFailures+=1,e}}}async readFile(e){let t=e.relPath.trim();if(!t)throw Error(`path required`);let n=O.isAbsolute(t)?O.resolve(t):O.resolve(this.workspaceDir,t),r=O.relative(this.workspaceDir,n).replace(/\\/g,`/`),i=r.length>0&&!r.startsWith(`..`)&&!O.isAbsolute(r)&&ye(r),a=!1;if(!i&&this.settings.extraPaths.length>0){let e=w(this.workspaceDir,this.settings.extraPaths);for(let t of e)try{let e=await D.lstat(t);if(e.isSymbolicLink())continue;if(e.isDirectory()){if(n===t||n.startsWith(`${t}${O.sep}`)){a=!0;break}continue}if(e.isFile()&&n===t&&n.endsWith(`.md`)){a=!0;break}}catch{}}if(!i&&!a||!n.endsWith(`.md`))throw Error(`path required`);if((await we(n)).missing)return{text:``,path:r};let o;try{o=await D.readFile(n,`utf-8`)}catch(e){if(_(e))return{text:``,path:r};throw e}if(!e.from&&!e.lines)return{text:o,path:r};let s=o.split(`
|
|
69
69
|
`),c=Math.max(1,e.from??1),l=Math.max(1,e.lines??s.length);return{text:s.slice(c-1,c-1+l).join(`
|
|
70
|
-
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};export{Qn as n,ze as r,$n as t};
|
|
70
|
+
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};export{Qn as n,ze as r,$n as t};
|
|
@@ -67,4 +67,4 @@ const e=require(`./paths-BvlJvmRS.cjs`),t=require(`./paths-BPlgbwrb.cjs`),n=requ
|
|
|
67
67
|
FROM chunks
|
|
68
68
|
WHERE model = ?${e.sourceFilter.sql}`).all(e.providerModel,...e.sourceFilter.params).map(e=>({id:e.id,path:e.path,startLine:e.start_line,endLine:e.end_line,text:e.text,embedding:s.g(e.embedding),source:e.source}))}async function on(e){if(e.limit<=0)return[];let t=e.buildFtsQuery(e.query);if(!t)return[];let n=e.providerModel?` AND model = ?`:``,i=e.providerModel?[e.providerModel]:[];return e.db.prepare(`SELECT id, path, source, start_line, end_line, text,\n bm25(${e.ftsTable}) AS rank\n FROM ${e.ftsTable}\n WHERE ${e.ftsTable} MATCH ?${n}${e.sourceFilter.sql}\n ORDER BY rank ASC\n LIMIT ?`).all(t,...i,...e.sourceFilter.params,e.limit).map(t=>{let n=e.bm25RankToScore(t.rank);return{id:t.id,path:t.path,startLine:t.start_line,endLine:t.end_line,score:n,textScore:n,snippet:r.P(t.text,e.snippetMaxChars),source:t.source}})}const Z=r.a(`memory`),Q=new Map,$=new Map;async function sn(){let e=Array.from($.values());e.length>0&&await Promise.allSettled(e);let t=Array.from(Q.values());Q.clear();for(let e of t)try{await e.close()}catch(e){Z.warn(`failed to close memory index manager: ${String(e)}`)}}var cn=class e extends tn{static async get(n){let{cfg:r,agentId:i}=n,a=g(r,i);if(!a)return null;let o=t.J(r,i),s=`${i}:${o}:${JSON.stringify(a)}`,c=Q.get(s);if(c)return c;let l=$.get(s);if(l)return l;let u=(async()=>{let c=await Be({config:r,agentDir:t.G(r,i),provider:a.provider,remote:a.remote,model:a.model,outputDimensionality:a.outputDimensionality,fallback:a.fallback,local:a.local}),l=Q.get(s);if(l)return l;let u=new e({cacheKey:s,cfg:r,agentId:i,workspaceDir:o,settings:a,providerResult:c,purpose:n.purpose});return Q.set(s,u),u})();$.set(s,u);try{return await u}finally{$.get(s)===u&&$.delete(s)}}constructor(e){super(),this.batchFailureCount=0,this.batchFailureLock=Promise.resolve(),this.vectorReady=null,this.watcher=null,this.watchTimer=null,this.sessionWatchTimer=null,this.sessionUnsubscribe=null,this.intervalTimer=null,this.closed=!1,this.dirty=!1,this.sessionsDirty=!1,this.sessionsDirtyFiles=new Set,this.sessionPendingFiles=new Set,this.sessionDeltas=new Map,this.sessionWarm=new Set,this.syncing=null,this.readonlyRecoveryAttempts=0,this.readonlyRecoverySuccesses=0,this.readonlyRecoveryFailures=0,this.cacheKey=e.cacheKey,this.cfg=e.cfg,this.agentId=e.agentId,this.workspaceDir=e.workspaceDir,this.settings=e.settings,this.provider=e.providerResult.provider,this.requestedProvider=e.providerResult.requestedProvider,this.fallbackFrom=e.providerResult.fallbackFrom,this.fallbackReason=e.providerResult.fallbackReason,this.providerUnavailableReason=e.providerResult.providerUnavailableReason,this.openAi=e.providerResult.openAi,this.gemini=e.providerResult.gemini,this.voyage=e.providerResult.voyage,this.mistral=e.providerResult.mistral,this.ollama=e.providerResult.ollama,this.sources=new Set(e.settings.sources),this.db=this.openDatabase(),this.providerKey=this.computeProviderKey(),this.cache={enabled:e.settings.cache.enabled,maxEntries:e.settings.cache.maxEntries},this.fts={enabled:e.settings.query.hybrid.enabled,available:!1},this.ensureSchema(),this.vector={enabled:e.settings.store.vector.enabled,available:null,extensionPath:e.settings.store.vector.extensionPath};let t=this.readMeta();t?.vectorDims&&(this.vector.dims=t.vectorDims),this.ensureWatcher(),this.ensureSessionListener(),this.ensureIntervalSync();let n=e.purpose===`status`;this.dirty=this.sources.has(`memory`)&&(n?!t:!0),this.batch=this.resolveBatchConfig()}async warmSession(e){if(!this.settings.sync.onSessionStart)return;let t=e?.trim()||``;t&&this.sessionWarm.has(t)||(this.sync({reason:`session-start`}).catch(e=>{Z.warn(`memory sync failed (session-start): ${String(e)}`)}),t&&this.sessionWarm.add(t))}async search(e,t){this.warmSession(t?.sessionKey),this.settings.sync.onSearch&&(this.dirty||this.sessionsDirty)&&this.sync({reason:`search`}).catch(e=>{Z.warn(`memory sync failed (search): ${String(e)}`)});let n=e.trim();if(!n)return[];let r=t?.minScore??this.settings.query.minScore,i=t?.maxResults??this.settings.query.maxResults,a=this.settings.query.hybrid,o=Math.min(200,Math.max(1,Math.floor(i*a.candidateMultiplier)));if(!this.provider){if(!this.fts.enabled||!this.fts.available)return Z.warn(`memory search: no provider and FTS unavailable`),[];let e=s.t(n),t=e.length>0?e:[n],a=await Promise.all(t.map(e=>this.searchKeyword(e,o).catch(()=>[]))),c=new Map;for(let e of a)for(let t of e){let e=c.get(t.id);(!e||t.score>e.score)&&c.set(t.id,t)}return[...c.values()].toSorted((e,t)=>t.score-e.score).filter(e=>e.score>=r).slice(0,i)}let c=a.enabled&&this.fts.enabled&&this.fts.available?await this.searchKeyword(n,o).catch(()=>[]):[],l=await this.embedQueryWithTimeout(n),u=l.some(e=>e!==0)?await this.searchVector(l,o).catch(()=>[]):[];if(!a.enabled||!this.fts.enabled||!this.fts.available)return u.filter(e=>e.score>=r).slice(0,i);let d=await this.mergeHybridResults({vector:u,keyword:c,vectorWeight:a.vectorWeight,textWeight:a.textWeight,mmr:a.mmr,temporalDecay:a.temporalDecay}),f=d.filter(e=>e.score>=r);if(f.length>0||c.length===0)return f.slice(0,i);let p=Math.min(r,a.textWeight),m=new Set(c.map(e=>`${e.source}:${e.path}:${e.startLine}:${e.endLine}`));return d.filter(e=>m.has(`${e.source}:${e.path}:${e.startLine}:${e.endLine}`)&&e.score>=p).slice(0,i)}async searchVector(e,t){return this.provider?(await rn({db:this.db,vectorTable:`chunks_vec`,providerModel:this.provider.model,queryVec:e,limit:t,snippetMaxChars:700,ensureVectorReady:async e=>await this.ensureVectorReady(e),sourceFilterVec:this.buildSourceFilter(`c`),sourceFilterChunks:this.buildSourceFilter()})).map(e=>e):[]}buildFtsQuery(e){return it(e)}async searchKeyword(e,t){if(!this.fts.enabled||!this.fts.available)return[];let n=this.buildSourceFilter(),r=this.provider?.model;return(await on({db:this.db,ftsTable:`chunks_fts`,providerModel:r,query:e,limit:t,snippetMaxChars:700,sourceFilter:n,buildFtsQuery:e=>this.buildFtsQuery(e),bm25RankToScore:at})).map(e=>e)}mergeHybridResults(e){return ot({vector:e.vector.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,vectorScore:e.score})),keyword:e.keyword.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,textScore:e.textScore})),vectorWeight:e.vectorWeight,textWeight:e.textWeight,mmr:e.mmr,temporalDecay:e.temporalDecay,workspaceDir:this.workspaceDir}).then(e=>e.map(e=>e))}async sync(e){if(!this.closed)return this.syncing?this.syncing:(this.syncing=this.runSyncWithReadonlyRecovery(e).finally(()=>{this.syncing=null}),this.syncing??Promise.resolve())}isReadonlyDbError(e){let t=/attempt to write a readonly database|database is read-only|SQLITE_READONLY/i,n=new Set,r=e=>{if(typeof e!=`string`)return;let t=e.trim();t&&n.add(t)};if(r(e instanceof Error?e.message:String(e)),e&&typeof e==`object`){let t=e;if(r(t.message),r(t.code),r(t.name),t.cause&&typeof t.cause==`object`){let e=t.cause;r(e.message),r(e.code),r(e.name)}}return[...n].some(e=>t.test(e))}extractErrorReason(e){if(e instanceof Error&&e.message.trim())return e.message;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`&&t.message.trim())return t.message;if(typeof t.code==`string`&&t.code.trim())return t.code}return String(e)}async runSyncWithReadonlyRecovery(e){try{await this.runSync(e);return}catch(t){if(!this.isReadonlyDbError(t)||this.closed)throw t;let n=this.extractErrorReason(t);this.readonlyRecoveryAttempts+=1,this.readonlyRecoveryLastError=n,Z.warn(`memory sync readonly handle detected; reopening sqlite connection`,{reason:n});try{this.db.close()}catch{}this.db=this.openDatabase(),this.vectorReady=null,this.vector.available=null,this.vector.loadError=void 0,this.ensureSchema();let r=this.readMeta();this.vector.dims=r?.vectorDims;try{await this.runSync(e),this.readonlyRecoverySuccesses+=1}catch(e){throw this.readonlyRecoveryFailures+=1,e}}}async readFile(e){let t=e.relPath.trim();if(!t)throw Error(`path required`);let n=l.default.isAbsolute(t)?l.default.resolve(t):l.default.resolve(this.workspaceDir,t),r=l.default.relative(this.workspaceDir,n).replace(/\\/g,`/`),i=r.length>0&&!r.startsWith(`..`)&&!l.default.isAbsolute(r)&&s.p(r),a=!1;if(!i&&this.settings.extraPaths.length>0){let e=s.h(this.workspaceDir,this.settings.extraPaths);for(let t of e)try{let e=await d.default.lstat(t);if(e.isSymbolicLink())continue;if(e.isDirectory()){if(n===t||n.startsWith(`${t}${l.default.sep}`)){a=!0;break}continue}if(e.isFile()&&n===t&&n.endsWith(`.md`)){a=!0;break}}catch{}}if(!i&&!a||!n.endsWith(`.md`))throw Error(`path required`);if((await s.w(n)).missing)return{text:``,path:r};let o;try{o=await d.default.readFile(n,`utf-8`)}catch(e){if(s.C(e))return{text:``,path:r};throw e}if(!e.from&&!e.lines)return{text:o,path:r};let c=o.split(`
|
|
69
69
|
`),u=Math.max(1,e.from??1),f=Math.max(1,e.lines??c.length);return{text:c.slice(u-1,u-1+f).join(`
|
|
70
|
-
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return cn}});
|
|
70
|
+
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return cn}});
|
|
@@ -67,4 +67,4 @@ import{B as e,V as t,W as n,o as r}from"./paths-cBAF6Bj0.js";import{Ci as i,Sn a
|
|
|
67
67
|
FROM chunks
|
|
68
68
|
WHERE model = ?${e.sourceFilter.sql}`).all(e.providerModel,...e.sourceFilter.params).map(e=>({id:e.id,path:e.path,startLine:e.start_line,endLine:e.end_line,text:e.text,embedding:fe(e.embedding),source:e.source}))}async function Zn(e){if(e.limit<=0)return[];let t=e.buildFtsQuery(e.query);if(!t)return[];let n=e.providerModel?` AND model = ?`:``,r=e.providerModel?[e.providerModel]:[];return e.db.prepare(`SELECT id, path, source, start_line, end_line, text,\n bm25(${e.ftsTable}) AS rank\n FROM ${e.ftsTable}\n WHERE ${e.ftsTable} MATCH ?${n}${e.sourceFilter.sql}\n ORDER BY rank ASC\n LIMIT ?`).all(t,...r,...e.sourceFilter.params,e.limit).map(t=>{let n=e.bm25RankToScore(t.rank);return{id:t.id,path:t.path,startLine:t.start_line,endLine:t.end_line,score:n,textScore:n,snippet:p(t.text,e.snippetMaxChars),source:t.source}})}const Z=m(`memory`),Q=new Map,$=new Map;async function Qn(){let e=Array.from($.values());e.length>0&&await Promise.allSettled(e);let t=Array.from(Q.values());Q.clear();for(let e of t)try{await e.close()}catch(e){Z.warn(`failed to close memory index manager: ${String(e)}`)}}var $n=class e extends qn{static async get(r){let{cfg:i,agentId:a}=r,o=Re(i,a);if(!o)return null;let s=n(i,a),c=`${a}:${s}:${JSON.stringify(o)}`,l=Q.get(c);if(l)return l;let u=$.get(c);if(u)return u;let d=(async()=>{let n=await kt({config:i,agentDir:t(i,a),provider:o.provider,remote:o.remote,model:o.model,outputDimensionality:o.outputDimensionality,fallback:o.fallback,local:o.local}),l=Q.get(c);if(l)return l;let u=new e({cacheKey:c,cfg:i,agentId:a,workspaceDir:s,settings:o,providerResult:n,purpose:r.purpose});return Q.set(c,u),u})();$.set(c,d);try{return await d}finally{$.get(c)===d&&$.delete(c)}}constructor(e){super(),this.batchFailureCount=0,this.batchFailureLock=Promise.resolve(),this.vectorReady=null,this.watcher=null,this.watchTimer=null,this.sessionWatchTimer=null,this.sessionUnsubscribe=null,this.intervalTimer=null,this.closed=!1,this.dirty=!1,this.sessionsDirty=!1,this.sessionsDirtyFiles=new Set,this.sessionPendingFiles=new Set,this.sessionDeltas=new Map,this.sessionWarm=new Set,this.syncing=null,this.readonlyRecoveryAttempts=0,this.readonlyRecoverySuccesses=0,this.readonlyRecoveryFailures=0,this.cacheKey=e.cacheKey,this.cfg=e.cfg,this.agentId=e.agentId,this.workspaceDir=e.workspaceDir,this.settings=e.settings,this.provider=e.providerResult.provider,this.requestedProvider=e.providerResult.requestedProvider,this.fallbackFrom=e.providerResult.fallbackFrom,this.fallbackReason=e.providerResult.fallbackReason,this.providerUnavailableReason=e.providerResult.providerUnavailableReason,this.openAi=e.providerResult.openAi,this.gemini=e.providerResult.gemini,this.voyage=e.providerResult.voyage,this.mistral=e.providerResult.mistral,this.ollama=e.providerResult.ollama,this.sources=new Set(e.settings.sources),this.db=this.openDatabase(),this.providerKey=this.computeProviderKey(),this.cache={enabled:e.settings.cache.enabled,maxEntries:e.settings.cache.maxEntries},this.fts={enabled:e.settings.query.hybrid.enabled,available:!1},this.ensureSchema(),this.vector={enabled:e.settings.store.vector.enabled,available:null,extensionPath:e.settings.store.vector.extensionPath};let t=this.readMeta();t?.vectorDims&&(this.vector.dims=t.vectorDims),this.ensureWatcher(),this.ensureSessionListener(),this.ensureIntervalSync();let n=e.purpose===`status`;this.dirty=this.sources.has(`memory`)&&(n?!t:!0),this.batch=this.resolveBatchConfig()}async warmSession(e){if(!this.settings.sync.onSessionStart)return;let t=e?.trim()||``;t&&this.sessionWarm.has(t)||(this.sync({reason:`session-start`}).catch(e=>{Z.warn(`memory sync failed (session-start): ${String(e)}`)}),t&&this.sessionWarm.add(t))}async search(e,t){this.warmSession(t?.sessionKey),this.settings.sync.onSearch&&(this.dirty||this.sessionsDirty)&&this.sync({reason:`search`}).catch(e=>{Z.warn(`memory sync failed (search): ${String(e)}`)});let n=e.trim();if(!n)return[];let r=t?.minScore??this.settings.query.minScore,i=t?.maxResults??this.settings.query.maxResults,a=this.settings.query.hybrid,o=Math.min(200,Math.max(1,Math.floor(i*a.candidateMultiplier)));if(!this.provider){if(!this.fts.enabled||!this.fts.available)return Z.warn(`memory search: no provider and FTS unavailable`),[];let e=xe(n),t=e.length>0?e:[n],a=await Promise.all(t.map(e=>this.searchKeyword(e,o).catch(()=>[]))),s=new Map;for(let e of a)for(let t of e){let e=s.get(t.id);(!e||t.score>e.score)&&s.set(t.id,t)}return[...s.values()].toSorted((e,t)=>t.score-e.score).filter(e=>e.score>=r).slice(0,i)}let s=a.enabled&&this.fts.enabled&&this.fts.available?await this.searchKeyword(n,o).catch(()=>[]):[],c=await this.embedQueryWithTimeout(n),l=c.some(e=>e!==0)?await this.searchVector(c,o).catch(()=>[]):[];if(!a.enabled||!this.fts.enabled||!this.fts.available)return l.filter(e=>e.score>=r).slice(0,i);let u=await this.mergeHybridResults({vector:l,keyword:s,vectorWeight:a.vectorWeight,textWeight:a.textWeight,mmr:a.mmr,temporalDecay:a.temporalDecay}),d=u.filter(e=>e.score>=r);if(d.length>0||s.length===0)return d.slice(0,i);let f=Math.min(r,a.textWeight),p=new Set(s.map(e=>`${e.source}:${e.path}:${e.startLine}:${e.endLine}`));return u.filter(e=>p.has(`${e.source}:${e.path}:${e.startLine}:${e.endLine}`)&&e.score>=f).slice(0,i)}async searchVector(e,t){return this.provider?(await Yn({db:this.db,vectorTable:`chunks_vec`,providerModel:this.provider.model,queryVec:e,limit:t,snippetMaxChars:700,ensureVectorReady:async e=>await this.ensureVectorReady(e),sourceFilterVec:this.buildSourceFilter(`c`),sourceFilterChunks:this.buildSourceFilter()})).map(e=>e):[]}buildFtsQuery(e){return qt(e)}async searchKeyword(e,t){if(!this.fts.enabled||!this.fts.available)return[];let n=this.buildSourceFilter(),r=this.provider?.model;return(await Zn({db:this.db,ftsTable:`chunks_fts`,providerModel:r,query:e,limit:t,snippetMaxChars:700,sourceFilter:n,buildFtsQuery:e=>this.buildFtsQuery(e),bm25RankToScore:Jt})).map(e=>e)}mergeHybridResults(e){return Yt({vector:e.vector.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,vectorScore:e.score})),keyword:e.keyword.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,textScore:e.textScore})),vectorWeight:e.vectorWeight,textWeight:e.textWeight,mmr:e.mmr,temporalDecay:e.temporalDecay,workspaceDir:this.workspaceDir}).then(e=>e.map(e=>e))}async sync(e){if(!this.closed)return this.syncing?this.syncing:(this.syncing=this.runSyncWithReadonlyRecovery(e).finally(()=>{this.syncing=null}),this.syncing??Promise.resolve())}isReadonlyDbError(e){let t=/attempt to write a readonly database|database is read-only|SQLITE_READONLY/i,n=new Set,r=e=>{if(typeof e!=`string`)return;let t=e.trim();t&&n.add(t)};if(r(e instanceof Error?e.message:String(e)),e&&typeof e==`object`){let t=e;if(r(t.message),r(t.code),r(t.name),t.cause&&typeof t.cause==`object`){let e=t.cause;r(e.message),r(e.code),r(e.name)}}return[...n].some(e=>t.test(e))}extractErrorReason(e){if(e instanceof Error&&e.message.trim())return e.message;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`&&t.message.trim())return t.message;if(typeof t.code==`string`&&t.code.trim())return t.code}return String(e)}async runSyncWithReadonlyRecovery(e){try{await this.runSync(e);return}catch(t){if(!this.isReadonlyDbError(t)||this.closed)throw t;let n=this.extractErrorReason(t);this.readonlyRecoveryAttempts+=1,this.readonlyRecoveryLastError=n,Z.warn(`memory sync readonly handle detected; reopening sqlite connection`,{reason:n});try{this.db.close()}catch{}this.db=this.openDatabase(),this.vectorReady=null,this.vector.available=null,this.vector.loadError=void 0,this.ensureSchema();let r=this.readMeta();this.vector.dims=r?.vectorDims;try{await this.runSync(e),this.readonlyRecoverySuccesses+=1}catch(e){throw this.readonlyRecoveryFailures+=1,e}}}async readFile(e){let t=e.relPath.trim();if(!t)throw Error(`path required`);let n=O.isAbsolute(t)?O.resolve(t):O.resolve(this.workspaceDir,t),r=O.relative(this.workspaceDir,n).replace(/\\/g,`/`),i=r.length>0&&!r.startsWith(`..`)&&!O.isAbsolute(r)&&ve(r),a=!1;if(!i&&this.settings.extraPaths.length>0){let e=T(this.workspaceDir,this.settings.extraPaths);for(let t of e)try{let e=await k.lstat(t);if(e.isSymbolicLink())continue;if(e.isDirectory()){if(n===t||n.startsWith(`${t}${O.sep}`)){a=!0;break}continue}if(e.isFile()&&n===t&&n.endsWith(`.md`)){a=!0;break}}catch{}}if(!i&&!a||!n.endsWith(`.md`))throw Error(`path required`);if((await Ce(n)).missing)return{text:``,path:r};let o;try{o=await k.readFile(n,`utf-8`)}catch(e){if(v(e))return{text:``,path:r};throw e}if(!e.from&&!e.lines)return{text:o,path:r};let s=o.split(`
|
|
69
69
|
`),c=Math.max(1,e.from??1),l=Math.max(1,e.lines??s.length);return{text:s.slice(c-1,c-1+l).join(`
|
|
70
|
-
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};export{Qn as n,Re as r,$n as t};
|
|
70
|
+
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};export{Qn as n,Re as r,$n as t};
|
|
@@ -67,4 +67,4 @@ const e=require(`./paths-Bcdg3ma0.cjs`),t=require(`./paths-Cqca1YmF.cjs`),n=requ
|
|
|
67
67
|
FROM chunks
|
|
68
68
|
WHERE model = ?${e.sourceFilter.sql}`).all(e.providerModel,...e.sourceFilter.params).map(e=>({id:e.id,path:e.path,startLine:e.start_line,endLine:e.end_line,text:e.text,embedding:s.g(e.embedding),source:e.source}))}async function on(e){if(e.limit<=0)return[];let t=e.buildFtsQuery(e.query);if(!t)return[];let n=e.providerModel?` AND model = ?`:``,i=e.providerModel?[e.providerModel]:[];return e.db.prepare(`SELECT id, path, source, start_line, end_line, text,\n bm25(${e.ftsTable}) AS rank\n FROM ${e.ftsTable}\n WHERE ${e.ftsTable} MATCH ?${n}${e.sourceFilter.sql}\n ORDER BY rank ASC\n LIMIT ?`).all(t,...i,...e.sourceFilter.params,e.limit).map(t=>{let n=e.bm25RankToScore(t.rank);return{id:t.id,path:t.path,startLine:t.start_line,endLine:t.end_line,score:n,textScore:n,snippet:r.E(t.text,e.snippetMaxChars),source:t.source}})}const Z=r.O(`memory`),Q=new Map,$=new Map;async function sn(){let e=Array.from($.values());e.length>0&&await Promise.allSettled(e);let t=Array.from(Q.values());Q.clear();for(let e of t)try{await e.close()}catch(e){Z.warn(`failed to close memory index manager: ${String(e)}`)}}var cn=class e extends tn{static async get(n){let{cfg:r,agentId:i}=n,a=g(r,i);if(!a)return null;let o=t.W(r,i),s=`${i}:${o}:${JSON.stringify(a)}`,c=Q.get(s);if(c)return c;let l=$.get(s);if(l)return l;let u=(async()=>{let c=await Be({config:r,agentDir:t.V(r,i),provider:a.provider,remote:a.remote,model:a.model,outputDimensionality:a.outputDimensionality,fallback:a.fallback,local:a.local}),l=Q.get(s);if(l)return l;let u=new e({cacheKey:s,cfg:r,agentId:i,workspaceDir:o,settings:a,providerResult:c,purpose:n.purpose});return Q.set(s,u),u})();$.set(s,u);try{return await u}finally{$.get(s)===u&&$.delete(s)}}constructor(e){super(),this.batchFailureCount=0,this.batchFailureLock=Promise.resolve(),this.vectorReady=null,this.watcher=null,this.watchTimer=null,this.sessionWatchTimer=null,this.sessionUnsubscribe=null,this.intervalTimer=null,this.closed=!1,this.dirty=!1,this.sessionsDirty=!1,this.sessionsDirtyFiles=new Set,this.sessionPendingFiles=new Set,this.sessionDeltas=new Map,this.sessionWarm=new Set,this.syncing=null,this.readonlyRecoveryAttempts=0,this.readonlyRecoverySuccesses=0,this.readonlyRecoveryFailures=0,this.cacheKey=e.cacheKey,this.cfg=e.cfg,this.agentId=e.agentId,this.workspaceDir=e.workspaceDir,this.settings=e.settings,this.provider=e.providerResult.provider,this.requestedProvider=e.providerResult.requestedProvider,this.fallbackFrom=e.providerResult.fallbackFrom,this.fallbackReason=e.providerResult.fallbackReason,this.providerUnavailableReason=e.providerResult.providerUnavailableReason,this.openAi=e.providerResult.openAi,this.gemini=e.providerResult.gemini,this.voyage=e.providerResult.voyage,this.mistral=e.providerResult.mistral,this.ollama=e.providerResult.ollama,this.sources=new Set(e.settings.sources),this.db=this.openDatabase(),this.providerKey=this.computeProviderKey(),this.cache={enabled:e.settings.cache.enabled,maxEntries:e.settings.cache.maxEntries},this.fts={enabled:e.settings.query.hybrid.enabled,available:!1},this.ensureSchema(),this.vector={enabled:e.settings.store.vector.enabled,available:null,extensionPath:e.settings.store.vector.extensionPath};let t=this.readMeta();t?.vectorDims&&(this.vector.dims=t.vectorDims),this.ensureWatcher(),this.ensureSessionListener(),this.ensureIntervalSync();let n=e.purpose===`status`;this.dirty=this.sources.has(`memory`)&&(n?!t:!0),this.batch=this.resolveBatchConfig()}async warmSession(e){if(!this.settings.sync.onSessionStart)return;let t=e?.trim()||``;t&&this.sessionWarm.has(t)||(this.sync({reason:`session-start`}).catch(e=>{Z.warn(`memory sync failed (session-start): ${String(e)}`)}),t&&this.sessionWarm.add(t))}async search(e,t){this.warmSession(t?.sessionKey),this.settings.sync.onSearch&&(this.dirty||this.sessionsDirty)&&this.sync({reason:`search`}).catch(e=>{Z.warn(`memory sync failed (search): ${String(e)}`)});let n=e.trim();if(!n)return[];let r=t?.minScore??this.settings.query.minScore,i=t?.maxResults??this.settings.query.maxResults,a=this.settings.query.hybrid,o=Math.min(200,Math.max(1,Math.floor(i*a.candidateMultiplier)));if(!this.provider){if(!this.fts.enabled||!this.fts.available)return Z.warn(`memory search: no provider and FTS unavailable`),[];let e=s.t(n),t=e.length>0?e:[n],a=await Promise.all(t.map(e=>this.searchKeyword(e,o).catch(()=>[]))),c=new Map;for(let e of a)for(let t of e){let e=c.get(t.id);(!e||t.score>e.score)&&c.set(t.id,t)}return[...c.values()].toSorted((e,t)=>t.score-e.score).filter(e=>e.score>=r).slice(0,i)}let c=a.enabled&&this.fts.enabled&&this.fts.available?await this.searchKeyword(n,o).catch(()=>[]):[],l=await this.embedQueryWithTimeout(n),u=l.some(e=>e!==0)?await this.searchVector(l,o).catch(()=>[]):[];if(!a.enabled||!this.fts.enabled||!this.fts.available)return u.filter(e=>e.score>=r).slice(0,i);let d=await this.mergeHybridResults({vector:u,keyword:c,vectorWeight:a.vectorWeight,textWeight:a.textWeight,mmr:a.mmr,temporalDecay:a.temporalDecay}),f=d.filter(e=>e.score>=r);if(f.length>0||c.length===0)return f.slice(0,i);let p=Math.min(r,a.textWeight),m=new Set(c.map(e=>`${e.source}:${e.path}:${e.startLine}:${e.endLine}`));return d.filter(e=>m.has(`${e.source}:${e.path}:${e.startLine}:${e.endLine}`)&&e.score>=p).slice(0,i)}async searchVector(e,t){return this.provider?(await rn({db:this.db,vectorTable:`chunks_vec`,providerModel:this.provider.model,queryVec:e,limit:t,snippetMaxChars:700,ensureVectorReady:async e=>await this.ensureVectorReady(e),sourceFilterVec:this.buildSourceFilter(`c`),sourceFilterChunks:this.buildSourceFilter()})).map(e=>e):[]}buildFtsQuery(e){return it(e)}async searchKeyword(e,t){if(!this.fts.enabled||!this.fts.available)return[];let n=this.buildSourceFilter(),r=this.provider?.model;return(await on({db:this.db,ftsTable:`chunks_fts`,providerModel:r,query:e,limit:t,snippetMaxChars:700,sourceFilter:n,buildFtsQuery:e=>this.buildFtsQuery(e),bm25RankToScore:at})).map(e=>e)}mergeHybridResults(e){return ot({vector:e.vector.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,vectorScore:e.score})),keyword:e.keyword.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,textScore:e.textScore})),vectorWeight:e.vectorWeight,textWeight:e.textWeight,mmr:e.mmr,temporalDecay:e.temporalDecay,workspaceDir:this.workspaceDir}).then(e=>e.map(e=>e))}async sync(e){if(!this.closed)return this.syncing?this.syncing:(this.syncing=this.runSyncWithReadonlyRecovery(e).finally(()=>{this.syncing=null}),this.syncing??Promise.resolve())}isReadonlyDbError(e){let t=/attempt to write a readonly database|database is read-only|SQLITE_READONLY/i,n=new Set,r=e=>{if(typeof e!=`string`)return;let t=e.trim();t&&n.add(t)};if(r(e instanceof Error?e.message:String(e)),e&&typeof e==`object`){let t=e;if(r(t.message),r(t.code),r(t.name),t.cause&&typeof t.cause==`object`){let e=t.cause;r(e.message),r(e.code),r(e.name)}}return[...n].some(e=>t.test(e))}extractErrorReason(e){if(e instanceof Error&&e.message.trim())return e.message;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`&&t.message.trim())return t.message;if(typeof t.code==`string`&&t.code.trim())return t.code}return String(e)}async runSyncWithReadonlyRecovery(e){try{await this.runSync(e);return}catch(t){if(!this.isReadonlyDbError(t)||this.closed)throw t;let n=this.extractErrorReason(t);this.readonlyRecoveryAttempts+=1,this.readonlyRecoveryLastError=n,Z.warn(`memory sync readonly handle detected; reopening sqlite connection`,{reason:n});try{this.db.close()}catch{}this.db=this.openDatabase(),this.vectorReady=null,this.vector.available=null,this.vector.loadError=void 0,this.ensureSchema();let r=this.readMeta();this.vector.dims=r?.vectorDims;try{await this.runSync(e),this.readonlyRecoverySuccesses+=1}catch(e){throw this.readonlyRecoveryFailures+=1,e}}}async readFile(e){let t=e.relPath.trim();if(!t)throw Error(`path required`);let n=c.default.isAbsolute(t)?c.default.resolve(t):c.default.resolve(this.workspaceDir,t),r=c.default.relative(this.workspaceDir,n).replace(/\\/g,`/`),i=r.length>0&&!r.startsWith(`..`)&&!c.default.isAbsolute(r)&&s.p(r),a=!1;if(!i&&this.settings.extraPaths.length>0){let e=s.h(this.workspaceDir,this.settings.extraPaths);for(let t of e)try{let e=await d.default.lstat(t);if(e.isSymbolicLink())continue;if(e.isDirectory()){if(n===t||n.startsWith(`${t}${c.default.sep}`)){a=!0;break}continue}if(e.isFile()&&n===t&&n.endsWith(`.md`)){a=!0;break}}catch{}}if(!i&&!a||!n.endsWith(`.md`))throw Error(`path required`);if((await s.w(n)).missing)return{text:``,path:r};let o;try{o=await d.default.readFile(n,`utf-8`)}catch(e){if(s.C(e))return{text:``,path:r};throw e}if(!e.from&&!e.lines)return{text:o,path:r};let l=o.split(`
|
|
69
69
|
`),u=Math.max(1,e.from??1),f=Math.max(1,e.lines??l.length);return{text:l.slice(u-1,u-1+f).join(`
|
|
70
|
-
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return cn}});
|
|
70
|
+
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return cn}});
|
|
@@ -67,4 +67,4 @@ const e=require(`./paths-Bcdg3ma0.cjs`),t=require(`./paths-Dd7r1qlB.cjs`),n=requ
|
|
|
67
67
|
FROM chunks
|
|
68
68
|
WHERE model = ?${e.sourceFilter.sql}`).all(e.providerModel,...e.sourceFilter.params).map(e=>({id:e.id,path:e.path,startLine:e.start_line,endLine:e.end_line,text:e.text,embedding:s.g(e.embedding),source:e.source}))}async function on(e){if(e.limit<=0)return[];let t=e.buildFtsQuery(e.query);if(!t)return[];let n=e.providerModel?` AND model = ?`:``,i=e.providerModel?[e.providerModel]:[];return e.db.prepare(`SELECT id, path, source, start_line, end_line, text,\n bm25(${e.ftsTable}) AS rank\n FROM ${e.ftsTable}\n WHERE ${e.ftsTable} MATCH ?${n}${e.sourceFilter.sql}\n ORDER BY rank ASC\n LIMIT ?`).all(t,...i,...e.sourceFilter.params,e.limit).map(t=>{let n=e.bm25RankToScore(t.rank);return{id:t.id,path:t.path,startLine:t.start_line,endLine:t.end_line,score:n,textScore:n,snippet:r.E(t.text,e.snippetMaxChars),source:t.source}})}const Z=r.O(`memory`),Q=new Map,$=new Map;async function sn(){let e=Array.from($.values());e.length>0&&await Promise.allSettled(e);let t=Array.from(Q.values());Q.clear();for(let e of t)try{await e.close()}catch(e){Z.warn(`failed to close memory index manager: ${String(e)}`)}}var cn=class e extends tn{static async get(n){let{cfg:r,agentId:i}=n,a=g(r,i);if(!a)return null;let o=t.W(r,i),s=`${i}:${o}:${JSON.stringify(a)}`,c=Q.get(s);if(c)return c;let l=$.get(s);if(l)return l;let u=(async()=>{let c=await Be({config:r,agentDir:t.V(r,i),provider:a.provider,remote:a.remote,model:a.model,outputDimensionality:a.outputDimensionality,fallback:a.fallback,local:a.local}),l=Q.get(s);if(l)return l;let u=new e({cacheKey:s,cfg:r,agentId:i,workspaceDir:o,settings:a,providerResult:c,purpose:n.purpose});return Q.set(s,u),u})();$.set(s,u);try{return await u}finally{$.get(s)===u&&$.delete(s)}}constructor(e){super(),this.batchFailureCount=0,this.batchFailureLock=Promise.resolve(),this.vectorReady=null,this.watcher=null,this.watchTimer=null,this.sessionWatchTimer=null,this.sessionUnsubscribe=null,this.intervalTimer=null,this.closed=!1,this.dirty=!1,this.sessionsDirty=!1,this.sessionsDirtyFiles=new Set,this.sessionPendingFiles=new Set,this.sessionDeltas=new Map,this.sessionWarm=new Set,this.syncing=null,this.readonlyRecoveryAttempts=0,this.readonlyRecoverySuccesses=0,this.readonlyRecoveryFailures=0,this.cacheKey=e.cacheKey,this.cfg=e.cfg,this.agentId=e.agentId,this.workspaceDir=e.workspaceDir,this.settings=e.settings,this.provider=e.providerResult.provider,this.requestedProvider=e.providerResult.requestedProvider,this.fallbackFrom=e.providerResult.fallbackFrom,this.fallbackReason=e.providerResult.fallbackReason,this.providerUnavailableReason=e.providerResult.providerUnavailableReason,this.openAi=e.providerResult.openAi,this.gemini=e.providerResult.gemini,this.voyage=e.providerResult.voyage,this.mistral=e.providerResult.mistral,this.ollama=e.providerResult.ollama,this.sources=new Set(e.settings.sources),this.db=this.openDatabase(),this.providerKey=this.computeProviderKey(),this.cache={enabled:e.settings.cache.enabled,maxEntries:e.settings.cache.maxEntries},this.fts={enabled:e.settings.query.hybrid.enabled,available:!1},this.ensureSchema(),this.vector={enabled:e.settings.store.vector.enabled,available:null,extensionPath:e.settings.store.vector.extensionPath};let t=this.readMeta();t?.vectorDims&&(this.vector.dims=t.vectorDims),this.ensureWatcher(),this.ensureSessionListener(),this.ensureIntervalSync();let n=e.purpose===`status`;this.dirty=this.sources.has(`memory`)&&(n?!t:!0),this.batch=this.resolveBatchConfig()}async warmSession(e){if(!this.settings.sync.onSessionStart)return;let t=e?.trim()||``;t&&this.sessionWarm.has(t)||(this.sync({reason:`session-start`}).catch(e=>{Z.warn(`memory sync failed (session-start): ${String(e)}`)}),t&&this.sessionWarm.add(t))}async search(e,t){this.warmSession(t?.sessionKey),this.settings.sync.onSearch&&(this.dirty||this.sessionsDirty)&&this.sync({reason:`search`}).catch(e=>{Z.warn(`memory sync failed (search): ${String(e)}`)});let n=e.trim();if(!n)return[];let r=t?.minScore??this.settings.query.minScore,i=t?.maxResults??this.settings.query.maxResults,a=this.settings.query.hybrid,o=Math.min(200,Math.max(1,Math.floor(i*a.candidateMultiplier)));if(!this.provider){if(!this.fts.enabled||!this.fts.available)return Z.warn(`memory search: no provider and FTS unavailable`),[];let e=s.t(n),t=e.length>0?e:[n],a=await Promise.all(t.map(e=>this.searchKeyword(e,o).catch(()=>[]))),c=new Map;for(let e of a)for(let t of e){let e=c.get(t.id);(!e||t.score>e.score)&&c.set(t.id,t)}return[...c.values()].toSorted((e,t)=>t.score-e.score).filter(e=>e.score>=r).slice(0,i)}let c=a.enabled&&this.fts.enabled&&this.fts.available?await this.searchKeyword(n,o).catch(()=>[]):[],l=await this.embedQueryWithTimeout(n),u=l.some(e=>e!==0)?await this.searchVector(l,o).catch(()=>[]):[];if(!a.enabled||!this.fts.enabled||!this.fts.available)return u.filter(e=>e.score>=r).slice(0,i);let d=await this.mergeHybridResults({vector:u,keyword:c,vectorWeight:a.vectorWeight,textWeight:a.textWeight,mmr:a.mmr,temporalDecay:a.temporalDecay}),f=d.filter(e=>e.score>=r);if(f.length>0||c.length===0)return f.slice(0,i);let p=Math.min(r,a.textWeight),m=new Set(c.map(e=>`${e.source}:${e.path}:${e.startLine}:${e.endLine}`));return d.filter(e=>m.has(`${e.source}:${e.path}:${e.startLine}:${e.endLine}`)&&e.score>=p).slice(0,i)}async searchVector(e,t){return this.provider?(await rn({db:this.db,vectorTable:`chunks_vec`,providerModel:this.provider.model,queryVec:e,limit:t,snippetMaxChars:700,ensureVectorReady:async e=>await this.ensureVectorReady(e),sourceFilterVec:this.buildSourceFilter(`c`),sourceFilterChunks:this.buildSourceFilter()})).map(e=>e):[]}buildFtsQuery(e){return it(e)}async searchKeyword(e,t){if(!this.fts.enabled||!this.fts.available)return[];let n=this.buildSourceFilter(),r=this.provider?.model;return(await on({db:this.db,ftsTable:`chunks_fts`,providerModel:r,query:e,limit:t,snippetMaxChars:700,sourceFilter:n,buildFtsQuery:e=>this.buildFtsQuery(e),bm25RankToScore:at})).map(e=>e)}mergeHybridResults(e){return ot({vector:e.vector.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,vectorScore:e.score})),keyword:e.keyword.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,textScore:e.textScore})),vectorWeight:e.vectorWeight,textWeight:e.textWeight,mmr:e.mmr,temporalDecay:e.temporalDecay,workspaceDir:this.workspaceDir}).then(e=>e.map(e=>e))}async sync(e){if(!this.closed)return this.syncing?this.syncing:(this.syncing=this.runSyncWithReadonlyRecovery(e).finally(()=>{this.syncing=null}),this.syncing??Promise.resolve())}isReadonlyDbError(e){let t=/attempt to write a readonly database|database is read-only|SQLITE_READONLY/i,n=new Set,r=e=>{if(typeof e!=`string`)return;let t=e.trim();t&&n.add(t)};if(r(e instanceof Error?e.message:String(e)),e&&typeof e==`object`){let t=e;if(r(t.message),r(t.code),r(t.name),t.cause&&typeof t.cause==`object`){let e=t.cause;r(e.message),r(e.code),r(e.name)}}return[...n].some(e=>t.test(e))}extractErrorReason(e){if(e instanceof Error&&e.message.trim())return e.message;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`&&t.message.trim())return t.message;if(typeof t.code==`string`&&t.code.trim())return t.code}return String(e)}async runSyncWithReadonlyRecovery(e){try{await this.runSync(e);return}catch(t){if(!this.isReadonlyDbError(t)||this.closed)throw t;let n=this.extractErrorReason(t);this.readonlyRecoveryAttempts+=1,this.readonlyRecoveryLastError=n,Z.warn(`memory sync readonly handle detected; reopening sqlite connection`,{reason:n});try{this.db.close()}catch{}this.db=this.openDatabase(),this.vectorReady=null,this.vector.available=null,this.vector.loadError=void 0,this.ensureSchema();let r=this.readMeta();this.vector.dims=r?.vectorDims;try{await this.runSync(e),this.readonlyRecoverySuccesses+=1}catch(e){throw this.readonlyRecoveryFailures+=1,e}}}async readFile(e){let t=e.relPath.trim();if(!t)throw Error(`path required`);let n=c.default.isAbsolute(t)?c.default.resolve(t):c.default.resolve(this.workspaceDir,t),r=c.default.relative(this.workspaceDir,n).replace(/\\/g,`/`),i=r.length>0&&!r.startsWith(`..`)&&!c.default.isAbsolute(r)&&s.p(r),a=!1;if(!i&&this.settings.extraPaths.length>0){let e=s.h(this.workspaceDir,this.settings.extraPaths);for(let t of e)try{let e=await d.default.lstat(t);if(e.isSymbolicLink())continue;if(e.isDirectory()){if(n===t||n.startsWith(`${t}${c.default.sep}`)){a=!0;break}continue}if(e.isFile()&&n===t&&n.endsWith(`.md`)){a=!0;break}}catch{}}if(!i&&!a||!n.endsWith(`.md`))throw Error(`path required`);if((await s.w(n)).missing)return{text:``,path:r};let o;try{o=await d.default.readFile(n,`utf-8`)}catch(e){if(s.C(e))return{text:``,path:r};throw e}if(!e.from&&!e.lines)return{text:o,path:r};let l=o.split(`
|
|
69
69
|
`),u=Math.max(1,e.from??1),f=Math.max(1,e.lines??l.length);return{text:l.slice(u-1,u-1+f).join(`
|
|
70
|
-
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return cn}});
|
|
70
|
+
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return cn}});
|
|
@@ -67,4 +67,4 @@ import{B as e,V as t,W as n,o as r}from"./paths-D55o_j8-.js";import{Dt as i,Fs a
|
|
|
67
67
|
FROM chunks
|
|
68
68
|
WHERE model = ?${e.sourceFilter.sql}`).all(e.providerModel,...e.sourceFilter.params).map(e=>({id:e.id,path:e.path,startLine:e.start_line,endLine:e.end_line,text:e.text,embedding:fe(e.embedding),source:e.source}))}async function Zn(e){if(e.limit<=0)return[];let t=e.buildFtsQuery(e.query);if(!t)return[];let n=e.providerModel?` AND model = ?`:``,r=e.providerModel?[e.providerModel]:[];return e.db.prepare(`SELECT id, path, source, start_line, end_line, text,\n bm25(${e.ftsTable}) AS rank\n FROM ${e.ftsTable}\n WHERE ${e.ftsTable} MATCH ?${n}${e.sourceFilter.sql}\n ORDER BY rank ASC\n LIMIT ?`).all(t,...r,...e.sourceFilter.params,e.limit).map(t=>{let n=e.bm25RankToScore(t.rank);return{id:t.id,path:t.path,startLine:t.start_line,endLine:t.end_line,score:n,textScore:n,snippet:p(t.text,e.snippetMaxChars),source:t.source}})}const Z=m(`memory`),Q=new Map,$=new Map;async function Qn(){let e=Array.from($.values());e.length>0&&await Promise.allSettled(e);let t=Array.from(Q.values());Q.clear();for(let e of t)try{await e.close()}catch(e){Z.warn(`failed to close memory index manager: ${String(e)}`)}}var $n=class e extends qn{static async get(r){let{cfg:i,agentId:a}=r,o=Re(i,a);if(!o)return null;let s=n(i,a),c=`${a}:${s}:${JSON.stringify(o)}`,l=Q.get(c);if(l)return l;let u=$.get(c);if(u)return u;let d=(async()=>{let n=await kt({config:i,agentDir:t(i,a),provider:o.provider,remote:o.remote,model:o.model,outputDimensionality:o.outputDimensionality,fallback:o.fallback,local:o.local}),l=Q.get(c);if(l)return l;let u=new e({cacheKey:c,cfg:i,agentId:a,workspaceDir:s,settings:o,providerResult:n,purpose:r.purpose});return Q.set(c,u),u})();$.set(c,d);try{return await d}finally{$.get(c)===d&&$.delete(c)}}constructor(e){super(),this.batchFailureCount=0,this.batchFailureLock=Promise.resolve(),this.vectorReady=null,this.watcher=null,this.watchTimer=null,this.sessionWatchTimer=null,this.sessionUnsubscribe=null,this.intervalTimer=null,this.closed=!1,this.dirty=!1,this.sessionsDirty=!1,this.sessionsDirtyFiles=new Set,this.sessionPendingFiles=new Set,this.sessionDeltas=new Map,this.sessionWarm=new Set,this.syncing=null,this.readonlyRecoveryAttempts=0,this.readonlyRecoverySuccesses=0,this.readonlyRecoveryFailures=0,this.cacheKey=e.cacheKey,this.cfg=e.cfg,this.agentId=e.agentId,this.workspaceDir=e.workspaceDir,this.settings=e.settings,this.provider=e.providerResult.provider,this.requestedProvider=e.providerResult.requestedProvider,this.fallbackFrom=e.providerResult.fallbackFrom,this.fallbackReason=e.providerResult.fallbackReason,this.providerUnavailableReason=e.providerResult.providerUnavailableReason,this.openAi=e.providerResult.openAi,this.gemini=e.providerResult.gemini,this.voyage=e.providerResult.voyage,this.mistral=e.providerResult.mistral,this.ollama=e.providerResult.ollama,this.sources=new Set(e.settings.sources),this.db=this.openDatabase(),this.providerKey=this.computeProviderKey(),this.cache={enabled:e.settings.cache.enabled,maxEntries:e.settings.cache.maxEntries},this.fts={enabled:e.settings.query.hybrid.enabled,available:!1},this.ensureSchema(),this.vector={enabled:e.settings.store.vector.enabled,available:null,extensionPath:e.settings.store.vector.extensionPath};let t=this.readMeta();t?.vectorDims&&(this.vector.dims=t.vectorDims),this.ensureWatcher(),this.ensureSessionListener(),this.ensureIntervalSync();let n=e.purpose===`status`;this.dirty=this.sources.has(`memory`)&&(n?!t:!0),this.batch=this.resolveBatchConfig()}async warmSession(e){if(!this.settings.sync.onSessionStart)return;let t=e?.trim()||``;t&&this.sessionWarm.has(t)||(this.sync({reason:`session-start`}).catch(e=>{Z.warn(`memory sync failed (session-start): ${String(e)}`)}),t&&this.sessionWarm.add(t))}async search(e,t){this.warmSession(t?.sessionKey),this.settings.sync.onSearch&&(this.dirty||this.sessionsDirty)&&this.sync({reason:`search`}).catch(e=>{Z.warn(`memory sync failed (search): ${String(e)}`)});let n=e.trim();if(!n)return[];let r=t?.minScore??this.settings.query.minScore,i=t?.maxResults??this.settings.query.maxResults,a=this.settings.query.hybrid,o=Math.min(200,Math.max(1,Math.floor(i*a.candidateMultiplier)));if(!this.provider){if(!this.fts.enabled||!this.fts.available)return Z.warn(`memory search: no provider and FTS unavailable`),[];let e=xe(n),t=e.length>0?e:[n],a=await Promise.all(t.map(e=>this.searchKeyword(e,o).catch(()=>[]))),s=new Map;for(let e of a)for(let t of e){let e=s.get(t.id);(!e||t.score>e.score)&&s.set(t.id,t)}return[...s.values()].toSorted((e,t)=>t.score-e.score).filter(e=>e.score>=r).slice(0,i)}let s=a.enabled&&this.fts.enabled&&this.fts.available?await this.searchKeyword(n,o).catch(()=>[]):[],c=await this.embedQueryWithTimeout(n),l=c.some(e=>e!==0)?await this.searchVector(c,o).catch(()=>[]):[];if(!a.enabled||!this.fts.enabled||!this.fts.available)return l.filter(e=>e.score>=r).slice(0,i);let u=await this.mergeHybridResults({vector:l,keyword:s,vectorWeight:a.vectorWeight,textWeight:a.textWeight,mmr:a.mmr,temporalDecay:a.temporalDecay}),d=u.filter(e=>e.score>=r);if(d.length>0||s.length===0)return d.slice(0,i);let f=Math.min(r,a.textWeight),p=new Set(s.map(e=>`${e.source}:${e.path}:${e.startLine}:${e.endLine}`));return u.filter(e=>p.has(`${e.source}:${e.path}:${e.startLine}:${e.endLine}`)&&e.score>=f).slice(0,i)}async searchVector(e,t){return this.provider?(await Yn({db:this.db,vectorTable:`chunks_vec`,providerModel:this.provider.model,queryVec:e,limit:t,snippetMaxChars:700,ensureVectorReady:async e=>await this.ensureVectorReady(e),sourceFilterVec:this.buildSourceFilter(`c`),sourceFilterChunks:this.buildSourceFilter()})).map(e=>e):[]}buildFtsQuery(e){return qt(e)}async searchKeyword(e,t){if(!this.fts.enabled||!this.fts.available)return[];let n=this.buildSourceFilter(),r=this.provider?.model;return(await Zn({db:this.db,ftsTable:`chunks_fts`,providerModel:r,query:e,limit:t,snippetMaxChars:700,sourceFilter:n,buildFtsQuery:e=>this.buildFtsQuery(e),bm25RankToScore:Jt})).map(e=>e)}mergeHybridResults(e){return Yt({vector:e.vector.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,vectorScore:e.score})),keyword:e.keyword.map(e=>({id:e.id,path:e.path,startLine:e.startLine,endLine:e.endLine,source:e.source,snippet:e.snippet,textScore:e.textScore})),vectorWeight:e.vectorWeight,textWeight:e.textWeight,mmr:e.mmr,temporalDecay:e.temporalDecay,workspaceDir:this.workspaceDir}).then(e=>e.map(e=>e))}async sync(e){if(!this.closed)return this.syncing?this.syncing:(this.syncing=this.runSyncWithReadonlyRecovery(e).finally(()=>{this.syncing=null}),this.syncing??Promise.resolve())}isReadonlyDbError(e){let t=/attempt to write a readonly database|database is read-only|SQLITE_READONLY/i,n=new Set,r=e=>{if(typeof e!=`string`)return;let t=e.trim();t&&n.add(t)};if(r(e instanceof Error?e.message:String(e)),e&&typeof e==`object`){let t=e;if(r(t.message),r(t.code),r(t.name),t.cause&&typeof t.cause==`object`){let e=t.cause;r(e.message),r(e.code),r(e.name)}}return[...n].some(e=>t.test(e))}extractErrorReason(e){if(e instanceof Error&&e.message.trim())return e.message;if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`&&t.message.trim())return t.message;if(typeof t.code==`string`&&t.code.trim())return t.code}return String(e)}async runSyncWithReadonlyRecovery(e){try{await this.runSync(e);return}catch(t){if(!this.isReadonlyDbError(t)||this.closed)throw t;let n=this.extractErrorReason(t);this.readonlyRecoveryAttempts+=1,this.readonlyRecoveryLastError=n,Z.warn(`memory sync readonly handle detected; reopening sqlite connection`,{reason:n});try{this.db.close()}catch{}this.db=this.openDatabase(),this.vectorReady=null,this.vector.available=null,this.vector.loadError=void 0,this.ensureSchema();let r=this.readMeta();this.vector.dims=r?.vectorDims;try{await this.runSync(e),this.readonlyRecoverySuccesses+=1}catch(e){throw this.readonlyRecoveryFailures+=1,e}}}async readFile(e){let t=e.relPath.trim();if(!t)throw Error(`path required`);let n=O.isAbsolute(t)?O.resolve(t):O.resolve(this.workspaceDir,t),r=O.relative(this.workspaceDir,n).replace(/\\/g,`/`),i=r.length>0&&!r.startsWith(`..`)&&!O.isAbsolute(r)&&ve(r),a=!1;if(!i&&this.settings.extraPaths.length>0){let e=T(this.workspaceDir,this.settings.extraPaths);for(let t of e)try{let e=await k.lstat(t);if(e.isSymbolicLink())continue;if(e.isDirectory()){if(n===t||n.startsWith(`${t}${O.sep}`)){a=!0;break}continue}if(e.isFile()&&n===t&&n.endsWith(`.md`)){a=!0;break}}catch{}}if(!i&&!a||!n.endsWith(`.md`))throw Error(`path required`);if((await Ce(n)).missing)return{text:``,path:r};let o;try{o=await k.readFile(n,`utf-8`)}catch(e){if(v(e))return{text:``,path:r};throw e}if(!e.from&&!e.lines)return{text:o,path:r};let s=o.split(`
|
|
69
69
|
`),c=Math.max(1,e.from??1),l=Math.max(1,e.lines??s.length);return{text:s.slice(c-1,c-1+l).join(`
|
|
70
|
-
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};export{Qn as n,Re as r,$n as t};
|
|
70
|
+
`),path:r}}status(){let e=this.buildSourceFilter(),t=this.db.prepare(`SELECT COUNT(*) as c FROM files WHERE 1=1${e.sql}`).get(...e.params),n=this.db.prepare(`SELECT COUNT(*) as c FROM chunks WHERE 1=1${e.sql}`).get(...e.params),r=(()=>{let t=Array.from(this.sources);if(t.length===0)return[];let n=new Map;for(let e of t)n.set(e,{files:0,chunks:0});let r=this.db.prepare(`SELECT source, COUNT(*) as c FROM files WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of r){let t=n.get(e.source)??{files:0,chunks:0};t.files=e.c??0,n.set(e.source,t)}let i=this.db.prepare(`SELECT source, COUNT(*) as c FROM chunks WHERE 1=1${e.sql} GROUP BY source`).all(...e.params);for(let e of i){let t=n.get(e.source)??{files:0,chunks:0};t.chunks=e.c??0,n.set(e.source,t)}return t.map(e=>Object.assign({source:e},n.get(e)))})(),i=this.provider?`hybrid`:`fts-only`,a=this.provider?{provider:this.provider.id,model:this.provider.model}:{provider:`none`,model:void 0};return{backend:`builtin`,files:t?.c??0,chunks:n?.c??0,dirty:this.dirty||this.sessionsDirty,workspaceDir:this.workspaceDir,dbPath:this.settings.store.path,provider:a.provider,model:a.model,requestedProvider:this.requestedProvider,sources:Array.from(this.sources),extraPaths:this.settings.extraPaths,sourceCounts:r,cache:this.cache.enabled?{enabled:!0,entries:this.db.prepare(`SELECT COUNT(*) as c FROM embedding_cache`).get()?.c??0,maxEntries:this.cache.maxEntries}:{enabled:!1,maxEntries:this.cache.maxEntries},fts:{enabled:this.fts.enabled,available:this.fts.available,error:this.fts.loadError},fallback:this.fallbackReason?{from:this.fallbackFrom??`local`,reason:this.fallbackReason}:void 0,vector:{enabled:this.vector.enabled,available:this.vector.available??void 0,extensionPath:this.vector.extensionPath,loadError:this.vector.loadError,dims:this.vector.dims},batch:{enabled:this.batch.enabled,failures:this.batchFailureCount,limit:2,wait:this.batch.wait,concurrency:this.batch.concurrency,pollIntervalMs:this.batch.pollIntervalMs,timeoutMs:this.batch.timeoutMs,lastError:this.batchFailureLastError,lastProvider:this.batchFailureLastProvider},custom:{searchMode:i,providerUnavailableReason:this.providerUnavailableReason,readonlyRecovery:{attempts:this.readonlyRecoveryAttempts,successes:this.readonlyRecoverySuccesses,failures:this.readonlyRecoveryFailures,lastError:this.readonlyRecoveryLastError}}}}async probeVectorAvailability(){return!this.provider||!this.vector.enabled?!1:this.ensureVectorReady()}async probeEmbeddingAvailability(){if(!this.provider)return{ok:!1,error:this.providerUnavailableReason??`No embedding provider available (FTS-only mode)`};try{return await this.embedBatchWithRetry([`ping`]),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async close(){if(this.closed)return;this.closed=!0;let e=this.syncing;if(this.watchTimer&&=(clearTimeout(this.watchTimer),null),this.sessionWatchTimer&&=(clearTimeout(this.sessionWatchTimer),null),this.intervalTimer&&=(clearInterval(this.intervalTimer),null),this.watcher&&=(await this.watcher.close(),null),this.sessionUnsubscribe&&=(this.sessionUnsubscribe(),null),e)try{await e}catch{}this.db.close(),Q.delete(this.cacheKey)}};export{Qn as n,Re as r,$n as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`);require(`./utils-PPIvU9qw.cjs`);const t=require(`./model-auth-BgS7ynQw.cjs`),n=require(`./target-errors-BjgLCOTm.cjs`),r=require(`./dispatch-BYZNaz0n.cjs`),i=require(`./send-COtvydDt.cjs`),a=require(`./send-CIxh7PV0.cjs`);require(`./proxy-env-D48qBPAr.cjs`),require(`./github-copilot-token-C1O2cBqk.cjs`),require(`./send-Dbmn1rgD.cjs`);const o=require(`./fetch-guard-EoAitPe9.cjs`);require(`./deliver-DcJWpoqf.cjs`),require(`./diagnostic-DYpehqHU.cjs`),require(`./pi-model-discovery-SmVAFMj_.cjs`),require(`./audio-transcription-runner-CmYuWS0_.cjs`),require(`./image-jUYo-0eT.cjs`),require(`./api-key-rotation-CF9_CKS-.cjs`),require(`./local-roots-DYlB1au6.cjs`),require(`./proxy-fetch-BwXFVsHE.cjs`),require(`./tokens-CnB4dJmp.cjs`),require(`./commands-registry-BifdCfty.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./ir-D4Dz-giw.cjs`),require(`./render-g5VlmgpF.cjs`),require(`./channel-activity-mffNSQrX.cjs`),require(`./tables-DBSeZ07-.cjs`),require(`./send-IqcgAO8b.cjs`),require(`./fetch-BN9y3kTg.cjs`),require(`./skill-commands-xJWQthd5.cjs`),require(`./outbound-attachment-D8Ng5uVX.cjs`),require(`./send-DOjSTB6D.cjs`),require(`./query-expansion-cpXCyoDy.cjs`),require(`./manager-0tvX3Z_N.cjs`);let s=require(`node:util`),c=require(`zod`);const l=c.z.union([c.z.string(),c.z.number()]);c.z.array(l).optional();function u(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const d={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},f=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],p=[...new Set(Object.values(d).flatMap(e=>e))];[...new Set([...p,...f])];function m(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function h(e){return d[e]?.find(e=>e.trim().length>0)}function g(e){return`/providers/${t.Hi(e)}/apiKey`}async function _(e){let n=e.preferredEnvVar??h(e.provider)??``,r=g(e.provider),i=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:i,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(i=a,a===`env`){let r=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:n||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:n=>{let r=n.trim();if(!t.Ms(r))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[r]?.trim())return e.copy?.envVarMissingError?.(r)??`Environment variable "${r}" is missing or empty in this session.`}}),i=String(r??``).trim(),a=i&&t.Ms(i)?i:n;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let o={source:`env`,provider:t.Ds(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},s=await t.Fi(o,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:o,resolvedValue:s}}let o=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(o.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let s=t.Ds(e.config,`file`,{preferFirstProviderForSource:!0}),c=await e.prompter.select({message:`Select secret provider`,initialValue:o.find(([e])=>e===s)?.[0]??o[0]?.[0],options:o.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),l=e.config.secrets?.providers?.[c];if(!l||l.source!==`file`&&l.source!==`exec`){await e.prompter.note(`Provider "${c}" is not a file/exec provider.`,`Invalid provider`);continue}let u=l.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,d=l.source===`file`?l.mode===`singleValue`?`value`:r:`${e.provider}/apiKey`,f=await e.prompter.text({message:u,initialValue:d,placeholder:l.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let n=e.trim();if(!n)return`Secret id cannot be empty.`;if(l.source===`file`&&l.mode!==`singleValue`&&!t.Es(n))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(l.source===`file`&&l.mode===`singleValue`&&n!==`value`)return`singleValue mode expects id "value".`;if(l.source===`exec`&&!t.Ts(n))return t.ws()}}),p=String(f??``).trim()||d,h={source:l.source,provider:c,id:p};try{let n=await t.Fi(h,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(c,p,l.source)??`Validated ${l.source} reference ${c}:${p}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:h,resolvedValue:n}}catch(t){await e.prompter.note([`Could not validate provider reference ${c}:${p}.`,m(t),`Check your provider configuration and try again.`].join(`
|
|
2
2
|
`),`Reference check failed`)}}}async function v(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}function y(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function b(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:y(e.cfg,e.channelKey)}function x(t){let n=t.name?.trim();if(!n)return t.cfg;let r=e.Ot(t.accountId),i=t.cfg.channels?.[t.channelKey],a=typeof i==`object`&&i?i:void 0;if(!b({cfg:t.cfg,channelKey:t.channelKey,accountId:r,alwaysUseAccounts:t.alwaysUseAccounts})&&r===`default`){let e=a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...e,name:n}}}}let o=a?.accounts??{},s=o[r]??{},c=r===`default`?(({name:e,...t})=>t)(a??{}):a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...c,accounts:{...o,[r]:{...s,name:n}}}}}}function S(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function C(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function w(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function T(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function E(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function D(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function O(e){if(await v({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await D({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await _({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}function k(e){return w(String(e??``))}function A(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function j(e){let t=[{value:`allowlist`,label:`Allowlist (recommended)`}];e.allowOpen!==!1&&t.push({value:`open`,label:`Open (allow all channels)`}),e.allowDisabled!==!1&&t.push({value:`disabled`,label:`Disabled (block all channels)`});let n=e.currentPolicy??`allowlist`;return await e.prompter.select({message:`${e.label} access`,options:t,initialValue:n})}async function M(e){let t=e.currentEntries&&e.currentEntries.length>0?A(e.currentEntries):void 0;return k(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function N(e){let t=(e.currentEntries??[]).length>0,n=e.defaultPrompt??!t;if(!await e.prompter.confirm({message:e.updatePrompt?`Update ${e.label} access?`:`Configure ${e.label} access?`,initialValue:n}))return null;let r=await j({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await M({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}function P(){let e=c.z.string().regex(t.Cs,`Secret reference provider must match /^[a-z][a-z0-9_-]{0,63}$/ (example: "default").`);return c.z.union([c.z.string(),c.z.discriminatedUnion(`source`,[c.z.object({source:c.z.literal(`env`),provider:e,id:c.z.string().regex(t.ks,`Env secret reference id must match /^[A-Z][A-Z0-9_]{0,127}$/ (example: "OPENAI_API_KEY").`)}),c.z.object({source:c.z.literal(`file`),provider:e,id:c.z.string().refine(t.Es,`File secret reference id must be an absolute JSON pointer (example: "/providers/openai/apiKey"), or "value" for singleValue mode.`)}),c.z.object({source:c.z.literal(`exec`),provider:e,id:c.z.string().refine(t.Ts,t.ws())})])])}function F(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function I(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?F(`expected config object`):Object.keys(e).length>0?F(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function L(t){let n=e.Ot(t.accountId);return{accountId:n,readAllowFromStore:()=>t.core.channel.pairing.readAllowFromStore({channel:t.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>t.core.channel.pairing.readAllowFromStore({channel:n,accountId:e.Ot(r)}),upsertPairingRequest:e=>t.core.channel.pairing.upsertPairingRequest({channel:t.channel,accountId:n,...e})}}function R(e){if(!(e.resolved.length===0&&e.unresolved.length===0))return[e.resolved.length>0?`Resolved: ${e.resolved.join(`, `)}`:void 0,e.unresolved.length>0?`Unresolved (kept as typed): ${e.unresolved.join(`, `)}`:void 0].filter(Boolean).join(`
|
|
3
|
-
`)}async function z(e){let[n]=e.argv;if(!n)return{code:1,stdout:``,stderr:`command is required`};try{let n=await t._c(e.argv,{timeoutMs:e.timeoutMs,cwd:e.cwd,env:e.env}),r=n.termination===`timeout`||n.termination===`no-output-timeout`;return{code:n.code??1,stdout:n.stdout,stderr:r?n.stderr||`command timed out after ${e.timeoutMs}ms`:n.stderr}}catch(e){return{code:1,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function B(e){return await r.t({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>r.n({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}function V(e){return{log:(...t)=>{e.logger.info((0,s.format)(...t))},error:(...t)=>{e.logger.error((0,s.format)(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function H(e){return e.runtime??V(e)}function U(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function W(e,t){return{...U(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function G(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}exports.DEFAULT_ACCOUNT_ID=e.Dt,exports.GROUP_POLICY_BLOCKED_LABEL=a.At,exports.MarkdownConfigSchema=t.bs,exports.PAIRING_APPROVED_MESSAGE=`✅ OpenClaw access approved. Send a message to start chatting.`,exports.ToolPolicySchema=t.la,exports.addWildcardAllowFrom=S,exports.applyAccountNameToChannelSection=x,exports.buildChannelConfigSchema=u,exports.buildChannelKeyCandidates=a.It,exports.buildProbeChannelStatusSummary=W,exports.buildSecretInputSchema=P,exports.buildSingleChannelSecretPromptState=E,exports.collectStatusIssuesFromLastError=G,exports.compileAllowlist=r.rt,exports.createAccountListHelpers=t.tc,exports.createActionGate=n.o,exports.createLoggerBackedRuntime=V,exports.createReplyPrefixOptions=r.Y,exports.createScopedPairingAccess=L,exports.createTypingCallbacks=r.J,exports.deleteAccountFromConfigSection=t.sc,exports.dispatchReplyFromConfigWithSettledDispatcher=B,exports.emptyPluginConfigSchema=I,exports.evaluateGroupRouteAccessForPolicy=a.Dt,exports.fetchWithSsrFGuard=o.t,exports.formatAllowlistMatchMeta=r.it,exports.formatDocsLink=r.H,exports.formatLocationText=i.ct,exports.formatPairingApproveHint=t.ic,exports.formatResolvedUnresolvedNote=R,exports.hasConfiguredSecretInput=t.js,exports.issuePairingChallenge=r.q,exports.jsonResult=n.l,exports.logInboundDrop=r.Q,exports.logTypingFailure=r.$,exports.mergeAllowFromEntries=C,exports.mergeAllowlist=r.tt,exports.normalizeAccountId=e.Ot,exports.normalizeResolvedSecretInputString=t.Ns,exports.normalizeSecretInputString=t.Ps,exports.normalizeStringEntries=e.ft,exports.promptChannelAccessConfig=N,exports.promptSingleChannelSecretInput=O,exports.readNumberParam=n.d,exports.readReactionParams=n.f,exports.readStoreAllowFromForDmPolicy=r.U,exports.readStringParam=n.h,exports.resolveAllowlistCandidates=r.at,exports.resolveAllowlistMatchByCandidates=r.ot,exports.resolveAllowlistProviderRuntimeGroupPolicy=a.jt,exports.resolveChannelEntryMatch=a.Rt,exports.resolveControlCommandGate=r.et,exports.resolveDefaultGroupPolicy=a.Mt,exports.resolveDmGroupAccessWithLists=r.G,exports.resolveInboundSessionEnvelopeContext=r.l,exports.resolveRuntimeEnv=H,exports.resolveSenderScopedGroupPolicy=a.kt,exports.runPluginCommandWithTimeout=z,exports.setAccountEnabledInConfigSection=t.cc,exports.setTopLevelChannelGroupPolicy=T,exports.summarizeMapping=r.nt,exports.toLocationContext=i.lt,exports.warnMissingProviderGroupPolicyFallbackOnce=a.Pt;
|
|
3
|
+
`)}async function z(e){let[n]=e.argv;if(!n)return{code:1,stdout:``,stderr:`command is required`};try{let n=await t._c(e.argv,{timeoutMs:e.timeoutMs,cwd:e.cwd,env:e.env}),r=n.termination===`timeout`||n.termination===`no-output-timeout`;return{code:n.code??1,stdout:n.stdout,stderr:r?n.stderr||`command timed out after ${e.timeoutMs}ms`:n.stderr}}catch(e){return{code:1,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function B(e){return await r.t({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>r.n({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}function V(e){return{log:(...t)=>{e.logger.info((0,s.format)(...t))},error:(...t)=>{e.logger.error((0,s.format)(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function H(e){return e.runtime??V(e)}function U(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function W(e,t){return{...U(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function G(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}exports.DEFAULT_ACCOUNT_ID=e.Dt,exports.GROUP_POLICY_BLOCKED_LABEL=a.At,exports.MarkdownConfigSchema=t.bs,exports.PAIRING_APPROVED_MESSAGE=`✅ OpenClaw access approved. Send a message to start chatting.`,exports.ToolPolicySchema=t.la,exports.addWildcardAllowFrom=S,exports.applyAccountNameToChannelSection=x,exports.buildChannelConfigSchema=u,exports.buildChannelKeyCandidates=a.It,exports.buildProbeChannelStatusSummary=W,exports.buildSecretInputSchema=P,exports.buildSingleChannelSecretPromptState=E,exports.collectStatusIssuesFromLastError=G,exports.compileAllowlist=r.rt,exports.createAccountListHelpers=t.tc,exports.createActionGate=n.o,exports.createLoggerBackedRuntime=V,exports.createReplyPrefixOptions=r.Y,exports.createScopedPairingAccess=L,exports.createTypingCallbacks=r.J,exports.deleteAccountFromConfigSection=t.sc,exports.dispatchReplyFromConfigWithSettledDispatcher=B,exports.emptyPluginConfigSchema=I,exports.evaluateGroupRouteAccessForPolicy=a.Dt,exports.fetchWithSsrFGuard=o.t,exports.formatAllowlistMatchMeta=r.it,exports.formatDocsLink=r.H,exports.formatLocationText=i.ct,exports.formatPairingApproveHint=t.ic,exports.formatResolvedUnresolvedNote=R,exports.hasConfiguredSecretInput=t.js,exports.issuePairingChallenge=r.q,exports.jsonResult=n.l,exports.logInboundDrop=r.Q,exports.logTypingFailure=r.$,exports.mergeAllowFromEntries=C,exports.mergeAllowlist=r.tt,exports.normalizeAccountId=e.Ot,exports.normalizeResolvedSecretInputString=t.Ns,exports.normalizeSecretInputString=t.Ps,exports.normalizeStringEntries=e.ft,exports.promptChannelAccessConfig=N,exports.promptSingleChannelSecretInput=O,exports.readNumberParam=n.d,exports.readReactionParams=n.f,exports.readStoreAllowFromForDmPolicy=r.U,exports.readStringParam=n.h,exports.resolveAllowlistCandidates=r.at,exports.resolveAllowlistMatchByCandidates=r.ot,exports.resolveAllowlistProviderRuntimeGroupPolicy=a.jt,exports.resolveChannelEntryMatch=a.Rt,exports.resolveControlCommandGate=r.et,exports.resolveDefaultGroupPolicy=a.Mt,exports.resolveDmGroupAccessWithLists=r.G,exports.resolveInboundSessionEnvelopeContext=r.l,exports.resolveRuntimeEnv=H,exports.resolveSenderScopedGroupPolicy=a.kt,exports.runPluginCommandWithTimeout=z,exports.setAccountEnabledInConfigSection=t.cc,exports.setTopLevelChannelGroupPolicy=T,exports.summarizeMapping=r.nt,exports.toLocationContext=i.lt,exports.warnMissingProviderGroupPolicyFallbackOnce=a.Pt;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import{Dt as e,Ot as t,ft as n}from"./paths-CXgWvWAM.js";import"./utils-BJtJR72k.js";import"./paths-rO4ehkyU.js";import{As as r,Cs as i,Ds as a,Os as o,Pi as s,Ss as c,Ts as l,Vi as u,Zs as d,bs as f,ca as p,ec as m,gs as h,ic as g,ks as _,pc as v,rc as ee,xs as y,ys as te}from"./model-auth-wcxJptQX.js";import{d as ne,f as re,h as ie,l as ae,o as oe}from"./target-errors-CaaKhU6m.js";import{$ as b,G as x,H as S,J as C,Q as w,U as T,Y as E,at as D,et as O,it as k,l as A,n as j,nt as M,ot as N,q as P,rt as F,t as I,tt as L}from"./dispatch-HRTsdeCV.js";import{ct as R,lt as z}from"./send-DyzuwDjE.js";import{At as B,Dt as V,It as H,Mt as U,Pt as W,Rt as G,jt as K,kt as q}from"./send-BEmZxBcF.js";import"./proxy-env-m9eG3uZN.js";import"./github-copilot-token-C8j8_NjX.js";import"./send-B_619b3s.js";import{t as se}from"./fetch-guard-DDkd30BG.js";import"./deliver-ILim6ANU.js";import"./diagnostic-Dz8HPEDe.js";import"./pi-model-discovery--UcCzdQg.js";import"./audio-transcription-runner-CslXJs5c.js";import"./image-BVnZq5Y4.js";import"./api-key-rotation-Cs6II2__.js";import"./local-roots-B0zm186S.js";import"./proxy-fetch-YCVHz7Rl.js";import"./tokens-DgPZk2Uu.js";import"./commands-registry-CpG4pxrA.js";import"./fetch-B1GR6-u4.js";import"./ir-CpkEWZD6.js";import"./render-Djx15dPh.js";import"./channel-activity-CIycjzUC.js";import"./tables-C6TX2QvW.js";import"./send-B4kzPtcN.js";import"./fetch-J0IzopiJ.js";import"./skill-commands-BZlF3g3o.js";import"./outbound-attachment-DS0S0NLK.js";import"./send-h_kE-cAK.js";import"./query-expansion-Cb2vnF6y.js";import"./manager-BnytMgmq.js";import{format as J}from"node:util";import{z as Y}from"zod";const ce=Y.union([Y.string(),Y.number()]);Y.array(ce).optional();function le(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const X={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},ue=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],de=[...new Set(Object.values(X).flatMap(e=>e))];[...new Set([...de,...ue])];function fe(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function pe(e){return X[e]?.find(e=>e.trim().length>0)}function me(e){return`/providers/${u(e)}/apiKey`}async function he(e){let t=e.preferredEnvVar??pe(e.provider)??``,n=me(e.provider),r=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:r,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(r=a,a===`env`){let n=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:t||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:t=>{let n=t.trim();if(!o(n))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[n]?.trim())return e.copy?.envVarMissingError?.(n)??`Environment variable "${n}" is missing or empty in this session.`}}),r=String(n??``).trim(),a=r&&o(r)?r:t;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let c={source:`env`,provider:i(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},l=await s(c,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:c,resolvedValue:l}}let l=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(l.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let u=i(e.config,`file`,{preferFirstProviderForSource:!0}),d=await e.prompter.select({message:`Select secret provider`,initialValue:l.find(([e])=>e===u)?.[0]??l[0]?.[0],options:l.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),p=e.config.secrets?.providers?.[d];if(!p||p.source!==`file`&&p.source!==`exec`){await e.prompter.note(`Provider "${d}" is not a file/exec provider.`,`Invalid provider`);continue}let m=p.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,h=p.source===`file`?p.mode===`singleValue`?`value`:n:`${e.provider}/apiKey`,g=await e.prompter.text({message:m,initialValue:h,placeholder:p.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let t=e.trim();if(!t)return`Secret id cannot be empty.`;if(p.source===`file`&&p.mode!==`singleValue`&&!c(t))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(p.source===`file`&&p.mode===`singleValue`&&t!==`value`)return`singleValue mode expects id "value".`;if(p.source===`exec`&&!y(t))return f()}}),_=String(g??``).trim()||h,v={source:p.source,provider:d,id:_};try{let t=await s(v,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(d,_,p.source)??`Validated ${p.source} reference ${d}:${_}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:v,resolvedValue:t}}catch(t){await e.prompter.note([`Could not validate provider reference ${d}:${_}.`,fe(t),`Check your provider configuration and try again.`].join(`
|
|
2
2
|
`),`Reference check failed`)}}}async function ge(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}function _e(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function ve(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:_e(e.cfg,e.channelKey)}function ye(e){let n=e.name?.trim();if(!n)return e.cfg;let r=t(e.accountId),i=e.cfg.channels?.[e.channelKey],a=typeof i==`object`&&i?i:void 0;if(!ve({cfg:e.cfg,channelKey:e.channelKey,accountId:r,alwaysUseAccounts:e.alwaysUseAccounts})&&r===`default`){let t=a??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...t,name:n}}}}let o=a?.accounts??{},s=o[r]??{},c=r===`default`?(({name:e,...t})=>t)(a??{}):a??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...c,accounts:{...o,[r]:{...s,name:n}}}}}}function be(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function xe(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function Se(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function Ce(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function we(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function Te(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function Ee(e){if(await ge({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await Te({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await he({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}function De(e){return Se(String(e??``))}function Oe(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function ke(e){let t=[{value:`allowlist`,label:`Allowlist (recommended)`}];e.allowOpen!==!1&&t.push({value:`open`,label:`Open (allow all channels)`}),e.allowDisabled!==!1&&t.push({value:`disabled`,label:`Disabled (block all channels)`});let n=e.currentPolicy??`allowlist`;return await e.prompter.select({message:`${e.label} access`,options:t,initialValue:n})}async function Ae(e){let t=e.currentEntries&&e.currentEntries.length>0?Oe(e.currentEntries):void 0;return De(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function je(e){let t=(e.currentEntries??[]).length>0,n=e.defaultPrompt??!t;if(!await e.prompter.confirm({message:e.updatePrompt?`Update ${e.label} access?`:`Configure ${e.label} access?`,initialValue:n}))return null;let r=await ke({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await Ae({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}const Me=`✅ OpenClaw access approved. Send a message to start chatting.`;function Ne(){let e=Y.string().regex(te,`Secret reference provider must match /^[a-z][a-z0-9_-]{0,63}$/ (example: "default").`);return Y.union([Y.string(),Y.discriminatedUnion(`source`,[Y.object({source:Y.literal(`env`),provider:e,id:Y.string().regex(l,`Env secret reference id must match /^[A-Z][A-Z0-9_]{0,127}$/ (example: "OPENAI_API_KEY").`)}),Y.object({source:Y.literal(`file`),provider:e,id:Y.string().refine(c,`File secret reference id must be an absolute JSON pointer (example: "/providers/openai/apiKey"), or "value" for singleValue mode.`)}),Y.object({source:Y.literal(`exec`),provider:e,id:Y.string().refine(y,f())})])])}function Z(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function Pe(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?Z(`expected config object`):Object.keys(e).length>0?Z(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function Fe(e){let n=t(e.accountId);return{accountId:n,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>e.core.channel.pairing.readAllowFromStore({channel:n,accountId:t(r)}),upsertPairingRequest:t=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:n,...t})}}function Q(e){if(!(e.resolved.length===0&&e.unresolved.length===0))return[e.resolved.length>0?`Resolved: ${e.resolved.join(`, `)}`:void 0,e.unresolved.length>0?`Unresolved (kept as typed): ${e.unresolved.join(`, `)}`:void 0].filter(Boolean).join(`
|
|
3
|
-
`)}async function Ie(e){let[t]=e.argv;if(!t)return{code:1,stdout:``,stderr:`command is required`};try{let t=await v(e.argv,{timeoutMs:e.timeoutMs,cwd:e.cwd,env:e.env}),n=t.termination===`timeout`||t.termination===`no-output-timeout`;return{code:t.code??1,stdout:t.stdout,stderr:n?t.stderr||`command timed out after ${e.timeoutMs}ms`:t.stderr}}catch(e){return{code:1,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function Le(e){return await I({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>j({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}function $(e){return{log:(...t)=>{e.logger.info(J(...t))},error:(...t)=>{e.logger.error(J(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function Re(e){return e.runtime??$(e)}function ze(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function Be(e,t){return{...ze(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Ve(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}export{e as DEFAULT_ACCOUNT_ID,B as GROUP_POLICY_BLOCKED_LABEL,h as MarkdownConfigSchema,Me as PAIRING_APPROVED_MESSAGE,p as ToolPolicySchema,be as addWildcardAllowFrom,ye as applyAccountNameToChannelSection,le as buildChannelConfigSchema,H as buildChannelKeyCandidates,Be as buildProbeChannelStatusSummary,Ne as buildSecretInputSchema,we as buildSingleChannelSecretPromptState,Ve as collectStatusIssuesFromLastError,F as compileAllowlist,d as createAccountListHelpers,oe as createActionGate,$ as createLoggerBackedRuntime,E as createReplyPrefixOptions,Fe as createScopedPairingAccess,C as createTypingCallbacks,ee as deleteAccountFromConfigSection,Le as dispatchReplyFromConfigWithSettledDispatcher,Pe as emptyPluginConfigSchema,V as evaluateGroupRouteAccessForPolicy,se as fetchWithSsrFGuard,k as formatAllowlistMatchMeta,S as formatDocsLink,R as formatLocationText,m as formatPairingApproveHint,Q as formatResolvedUnresolvedNote,a as hasConfiguredSecretInput,P as issuePairingChallenge,ae as jsonResult,w as logInboundDrop,b as logTypingFailure,xe as mergeAllowFromEntries,L as mergeAllowlist,t as normalizeAccountId,_ as normalizeResolvedSecretInputString,r as normalizeSecretInputString,n as normalizeStringEntries,je as promptChannelAccessConfig,Ee as promptSingleChannelSecretInput,ne as readNumberParam,re as readReactionParams,T as readStoreAllowFromForDmPolicy,ie as readStringParam,D as resolveAllowlistCandidates,N as resolveAllowlistMatchByCandidates,K as resolveAllowlistProviderRuntimeGroupPolicy,G as resolveChannelEntryMatch,O as resolveControlCommandGate,U as resolveDefaultGroupPolicy,x as resolveDmGroupAccessWithLists,A as resolveInboundSessionEnvelopeContext,Re as resolveRuntimeEnv,q as resolveSenderScopedGroupPolicy,Ie as runPluginCommandWithTimeout,g as setAccountEnabledInConfigSection,Ce as setTopLevelChannelGroupPolicy,M as summarizeMapping,z as toLocationContext,W as warnMissingProviderGroupPolicyFallbackOnce};
|
|
3
|
+
`)}async function Ie(e){let[t]=e.argv;if(!t)return{code:1,stdout:``,stderr:`command is required`};try{let t=await v(e.argv,{timeoutMs:e.timeoutMs,cwd:e.cwd,env:e.env}),n=t.termination===`timeout`||t.termination===`no-output-timeout`;return{code:t.code??1,stdout:t.stdout,stderr:n?t.stderr||`command timed out after ${e.timeoutMs}ms`:t.stderr}}catch(e){return{code:1,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function Le(e){return await I({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>j({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}function $(e){return{log:(...t)=>{e.logger.info(J(...t))},error:(...t)=>{e.logger.error(J(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function Re(e){return e.runtime??$(e)}function ze(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function Be(e,t){return{...ze(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Ve(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}export{e as DEFAULT_ACCOUNT_ID,B as GROUP_POLICY_BLOCKED_LABEL,h as MarkdownConfigSchema,Me as PAIRING_APPROVED_MESSAGE,p as ToolPolicySchema,be as addWildcardAllowFrom,ye as applyAccountNameToChannelSection,le as buildChannelConfigSchema,H as buildChannelKeyCandidates,Be as buildProbeChannelStatusSummary,Ne as buildSecretInputSchema,we as buildSingleChannelSecretPromptState,Ve as collectStatusIssuesFromLastError,F as compileAllowlist,d as createAccountListHelpers,oe as createActionGate,$ as createLoggerBackedRuntime,E as createReplyPrefixOptions,Fe as createScopedPairingAccess,C as createTypingCallbacks,ee as deleteAccountFromConfigSection,Le as dispatchReplyFromConfigWithSettledDispatcher,Pe as emptyPluginConfigSchema,V as evaluateGroupRouteAccessForPolicy,se as fetchWithSsrFGuard,k as formatAllowlistMatchMeta,S as formatDocsLink,R as formatLocationText,m as formatPairingApproveHint,Q as formatResolvedUnresolvedNote,a as hasConfiguredSecretInput,P as issuePairingChallenge,ae as jsonResult,w as logInboundDrop,b as logTypingFailure,xe as mergeAllowFromEntries,L as mergeAllowlist,t as normalizeAccountId,_ as normalizeResolvedSecretInputString,r as normalizeSecretInputString,n as normalizeStringEntries,je as promptChannelAccessConfig,Ee as promptSingleChannelSecretInput,ne as readNumberParam,re as readReactionParams,T as readStoreAllowFromForDmPolicy,ie as readStringParam,D as resolveAllowlistCandidates,N as resolveAllowlistMatchByCandidates,K as resolveAllowlistProviderRuntimeGroupPolicy,G as resolveChannelEntryMatch,O as resolveControlCommandGate,U as resolveDefaultGroupPolicy,x as resolveDmGroupAccessWithLists,A as resolveInboundSessionEnvelopeContext,Re as resolveRuntimeEnv,q as resolveSenderScopedGroupPolicy,Ie as runPluginCommandWithTimeout,g as setAccountEnabledInConfigSection,Ce as setTopLevelChannelGroupPolicy,M as summarizeMapping,z as toLocationContext,W as warnMissingProviderGroupPolicyFallbackOnce};
|
|
@@ -9,4 +9,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
|
|
|
9
9
|
• Summary – Toggle AI summary for long texts
|
|
10
10
|
• Audio – Generate TTS from custom text
|
|
11
11
|
• Help – Show usage guide`}}),y({key:`whoami`,nativeName:`whoami`,description:`Show your sender id.`,textAlias:`/whoami`,category:`status`}),y({key:`session`,nativeName:`session`,description:`Manage session-level settings (for example /session idle).`,textAlias:`/session`,category:`session`,args:[{name:`action`,description:`idle | max-age`,type:`string`,choices:[`idle`,`max-age`]},{name:`value`,description:`Duration (24h, 90m) or off`,type:`string`,captureRemaining:!0}],argsMenu:`auto`}),y({key:`subagents`,nativeName:`subagents`,description:`List, kill, log, spawn, or steer subagent runs for this session.`,textAlias:`/subagents`,category:`management`,args:[{name:`action`,description:`list | kill | log | info | send | steer | spawn`,type:`string`,choices:[`list`,`kill`,`log`,`info`,`send`,`steer`,`spawn`]},{name:`target`,description:`Run id, index, or session key`,type:`string`},{name:`value`,description:`Additional input (limit/message)`,type:`string`,captureRemaining:!0}],argsMenu:`auto`}),y({key:`acp`,nativeName:`acp`,description:`Manage ACP sessions and runtime options.`,textAlias:`/acp`,category:`management`,args:[{name:`action`,description:`Action to run`,type:`string`,preferAutocomplete:!0,choices:[`spawn`,`cancel`,`steer`,`close`,`sessions`,`status`,`set-mode`,`set`,`cwd`,`permissions`,`timeout`,`model`,`reset-options`,`doctor`,`install`,`help`]},{name:`value`,description:`Action arguments`,type:`string`,captureRemaining:!0}],argsMenu:`auto`}),y({key:`focus`,nativeName:`focus`,description:`Bind this thread (Discord) or topic/conversation (Telegram) to a session target.`,textAlias:`/focus`,category:`management`,args:[{name:`target`,description:`Subagent label/index or session key/id/label`,type:`string`,captureRemaining:!0}]}),y({key:`unfocus`,nativeName:`unfocus`,description:`Remove the current thread (Discord) or topic/conversation (Telegram) binding.`,textAlias:`/unfocus`,category:`management`}),y({key:`agents`,nativeName:`agents`,description:`List thread-bound agents for this session.`,textAlias:`/agents`,category:`management`}),y({key:`kill`,nativeName:`kill`,description:`Kill a running subagent (or all).`,textAlias:`/kill`,category:`management`,args:[{name:`target`,description:`Label, run id, index, or all`,type:`string`}],argsMenu:`auto`}),y({key:`steer`,nativeName:`steer`,description:`Send guidance to a running subagent.`,textAlias:`/steer`,category:`management`,args:[{name:`target`,description:`Label, run id, or index`,type:`string`},{name:`message`,description:`Steering message`,type:`string`,captureRemaining:!0}]}),y({key:`config`,nativeName:`config`,description:`Show or set config values.`,textAlias:`/config`,category:`management`,args:[{name:`action`,description:`show | get | set | unset`,type:`string`,choices:[`show`,`get`,`set`,`unset`]},{name:`path`,description:`Config path`,type:`string`},{name:`value`,description:`Value for set`,type:`string`,captureRemaining:!0}],argsParsing:`none`,formatArgs:v.config}),y({key:`debug`,nativeName:`debug`,description:`Set runtime debug overrides.`,textAlias:`/debug`,category:`management`,args:[{name:`action`,description:`show | reset | set | unset`,type:`string`,choices:[`show`,`reset`,`set`,`unset`]},{name:`path`,description:`Debug path`,type:`string`},{name:`value`,description:`Value for set`,type:`string`,captureRemaining:!0}],argsParsing:`none`,formatArgs:v.debug}),y({key:`usage`,nativeName:`usage`,description:`Usage footer or cost summary.`,textAlias:`/usage`,category:`options`,args:[{name:`mode`,description:`off, tokens, full, or cost`,type:`string`,choices:[`off`,`tokens`,`full`,`cost`]}],argsMenu:`auto`}),y({key:`stop`,nativeName:`stop`,description:`Stop the current run.`,textAlias:`/stop`,category:`session`}),y({key:`restart`,nativeName:`restart`,description:`Restart OpenClaw.`,textAlias:`/restart`,category:`tools`}),y({key:`activation`,nativeName:`activation`,description:`Set group activation mode.`,textAlias:`/activation`,category:`management`,args:[{name:`mode`,description:`mention or always`,type:`string`,choices:[`mention`,`always`]}],argsMenu:`auto`}),y({key:`send`,nativeName:`send`,description:`Set send policy.`,textAlias:`/send`,category:`management`,args:[{name:`mode`,description:`on, off, or inherit`,type:`string`,choices:[`on`,`off`,`inherit`]}],argsMenu:`auto`}),y({key:`reset`,nativeName:`reset`,description:`Reset the current session.`,textAlias:`/reset`,acceptsArgs:!0,category:`session`}),y({key:`new`,nativeName:`new`,description:`Start a new session.`,textAlias:`/new`,acceptsArgs:!0,category:`session`}),y({key:`compact`,nativeName:`compact`,description:`Compact the session context.`,textAlias:`/compact`,category:`session`,args:[{name:`instructions`,description:`Extra compaction instructions`,type:`string`,captureRemaining:!0}]}),y({key:`think`,nativeName:`think`,description:`Set thinking level.`,textAlias:`/think`,category:`options`,args:[{name:`level`,description:`off, minimal, low, medium, high, xhigh`,type:`string`,choices:({provider:t,model:n})=>e.l(t,n)}],argsMenu:`auto`}),y({key:`verbose`,nativeName:`verbose`,description:`Toggle verbose mode.`,textAlias:`/verbose`,category:`options`,args:[{name:`mode`,description:`on or off`,type:`string`,choices:[`on`,`off`]}],argsMenu:`auto`}),y({key:`reasoning`,nativeName:`reasoning`,description:`Toggle reasoning visibility.`,textAlias:`/reasoning`,category:`options`,args:[{name:`mode`,description:`on, off, or stream`,type:`string`,choices:[`on`,`off`,`stream`]}],argsMenu:`auto`}),y({key:`elevated`,nativeName:`elevated`,description:`Toggle elevated mode.`,textAlias:`/elevated`,category:`options`,args:[{name:`mode`,description:`on, off, ask, or full`,type:`string`,choices:[`on`,`off`,`ask`,`full`]}],argsMenu:`auto`}),y({key:`exec`,nativeName:`exec`,description:`Set exec defaults for this session.`,textAlias:`/exec`,category:`options`,args:[{name:`host`,description:`sandbox, gateway, or node`,type:`string`,choices:[`sandbox`,`gateway`,`node`]},{name:`security`,description:`deny, allowlist, or full`,type:`string`,choices:[`deny`,`allowlist`,`full`]},{name:`ask`,description:`off, on-miss, or always`,type:`string`,choices:[`off`,`on-miss`,`always`]},{name:`node`,description:`Node id or name`,type:`string`}],argsParsing:`none`,formatArgs:v.exec}),y({key:`model`,nativeName:`model`,description:`Show or set the model.`,textAlias:`/model`,category:`options`,args:[{name:`model`,description:`Model id (provider/model or id)`,type:`string`}]}),y({key:`models`,nativeName:`models`,description:`List model providers or provider models.`,textAlias:`/models`,argsParsing:`none`,acceptsArgs:!0,category:`options`}),y({key:`queue`,nativeName:`queue`,description:`Adjust queue settings.`,textAlias:`/queue`,category:`options`,args:[{name:`mode`,description:`queue mode`,type:`string`,choices:[`steer`,`interrupt`,`followup`,`collect`,`steer-backlog`]},{name:`debounce`,description:`debounce duration (e.g. 500ms, 2s)`,type:`string`},{name:`cap`,description:`queue cap`,type:`number`},{name:`drop`,description:`drop policy`,type:`string`,choices:[`old`,`new`,`summarize`]}],argsParsing:`none`,formatArgs:v.queue}),y({key:`bash`,description:`Run host shell commands (host-only).`,textAlias:`/bash`,scope:`text`,category:`tools`,args:[{name:`command`,description:`Shell command`,type:`string`,captureRemaining:!0}]}),...e.Y().filter(e=>e.capabilities.nativeCommands).map(e=>me(e))];return b(t,`whoami`,`/id`),b(t,`think`,`/thinking`,`/t`),b(t,`verbose`,`/v`),b(t,`reasoning`,`/reason`),b(t,`elevated`,`/elev`),b(t,`steer`,`/tell`),he(t),t}function ve(){let t=e.tt();if(x&&t===ge)return x;let n=_e();return x=n,ge=t,n}function ye(e){return!e||e.length===0?[]:e.map(e=>({key:`skill:${e.skillName}`,nativeName:e.name,description:e.description,textAliases:[`/${e.name}`],acceptsArgs:!0,argsParsing:`none`,scope:`both`}))}function be(e){let t=ve();return e?.skillCommands?.length?[...t,...ye(e.skillCommands)]:[...t]}function xe(e=[]){let t=new Set;for(let e of be()){e.nativeName&&t.add(e.nativeName.toLowerCase());for(let n of e.textAliases){let e=n.trim();e.startsWith(`/`)&&t.add(e.slice(1).toLowerCase())}}for(let n of e){let e=n.trim().toLowerCase();e&&t.add(e)}return t}function Se(e){let t=new Set,n=[];for(let r of e){let e=r.skillName.trim().toLowerCase();e&&t.has(e)||(e&&t.add(e),n.push(r))}return n}function Ce(n){let r=(e,t)=>{if(!(e===void 0||t===void 0))return e.length===0?Array.from(new Set(t)):t.length===0?Array.from(new Set(e)):Array.from(new Set([...e,...t]))},i=n.agentIds??e.mt(n.cfg),a=xe(),o=[],s=new Map;for(let a of i){let i=e._t(n.cfg,a);if(!t.default.existsSync(i)){e.Dt(`Skipping agent "${a}": workspace does not exist: ${i}`);continue}let o;try{o=t.default.realpathSync(i)}catch{e.Dt(`Skipping agent "${a}": cannot resolve workspace: ${i}`);continue}let c=e.gt(n.cfg,a),l=s.get(o);if(l){l.skillFilter=r(l.skillFilter,c);continue}s.set(o,{workspaceDir:i,skillFilter:c})}for(let{workspaceDir:t,skillFilter:r}of s.values()){let i=e.q(t,{config:n.cfg,skillFilter:r,eligibility:{remote:le()},reservedNames:a});for(let e of i)a.add(e.name.toLowerCase()),o.push(e)}return Se(o)}function we(e){let{useAccessGroups:t,authorizers:n}=e,r=e.modeWhenAccessGroupsOff??`allow`;return t?n.some(e=>e.configured&&e.allowed):r===`allow`?!0:r===`deny`?!1:n.some(e=>e.configured)?n.some(e=>e.configured&&e.allowed):!0}function Te(e){let t=we({useAccessGroups:e.useAccessGroups,authorizers:e.authorizers,modeWhenAccessGroupsOff:e.modeWhenAccessGroupsOff});return{commandAuthorized:t,shouldBlock:e.allowTextCommands&&e.hasControlCommand&&!t}}function Ee(e){let t=e.target?` target=${e.target}`:``;e.log(`${e.channel}: drop ${e.reason}${t}`)}function De(e){let t=e.target?` target=${e.target}`:``,n=e.action?` action=${e.action}`:``;e.log(`${e.channel} typing${n} failed${t}: ${String(e.error)}`)}function S(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Oe(e){return e.explicitPresent&&S(e.explicitValue)?e.explicitValue:S(e.implicitValue)?e.implicitValue:S(e.explicitValue)?e.explicitValue:void 0}function C(e){if(!e||typeof e!=`object`)return``;let t=e.id;return typeof t==`string`?t.trim():``}function ke(e,t){let n=Array.isArray(e.models)?e.models:[],r=Array.isArray(t.models)?t.models:[];if(n.length===0)return{...e,...t};let i=new Map(n.map(e=>[C(e),e]).filter(([e])=>!!e)),a=new Set,o=r.map(e=>{let t=C(e);if(!t)return e;a.add(t);let n=i.get(t);if(!n)return e;let r=Oe({explicitPresent:`contextWindow`in e,explicitValue:e.contextWindow,implicitValue:n.contextWindow}),o=Oe({explicitPresent:`maxTokens`in e,explicitValue:e.maxTokens,implicitValue:n.maxTokens});return{...e,input:n.input,reasoning:`reasoning`in e?e.reasoning:n.reasoning,...r===void 0?{}:{contextWindow:r},...o===void 0?{}:{maxTokens:o}}});for(let e of n){let t=C(e);!t||a.has(t)||(a.add(t),o.push(e))}return{...e,...t,models:o}}function Ae(e){let t=e.implicit?{...e.implicit}:{};for(let[n,r]of Object.entries(e.explicit??{})){let e=n.trim();if(!e)continue;let i=t[e];t[e]=i?ke(i,r):r}return t}function je(e){if(typeof e?.api==`string`)return e.api.trim()||void 0}function Me(e){if(!Array.isArray(e?.models))return;let t=e.models.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e.api;return typeof t==`string`&&t.trim()?[t.trim()]:[]}).toSorted();return t.length>0?JSON.stringify(t):void 0}function Ne(e){return je(e)??Me(e)}function Pe(t){let{providerKey:n,existing:r,nextEntry:i,secretRefManagedProviders:a}=t,o=typeof i.apiKey==`string`?i.apiKey:``;return o&&e.c(o)?!1:!a.has(n)&&typeof r.apiKey==`string`&&r.apiKey.length>0&&!e.c(r.apiKey,{includeEnvVarName:!1})}function Fe(e){let{providerKey:t,existing:n,nextEntry:r,explicitBaseUrlProviders:i}=e;if(i.has(t)||typeof n.baseUrl!=`string`||n.baseUrl.length===0)return!1;let a=Ne(n),o=Ne(r);return!a||!o||a===o}function Ie(e){let{nextProviders:t,existingProviders:n,secretRefManagedProviders:r,explicitBaseUrlProviders:i}=e,a={};for(let[e,t]of Object.entries(n))a[e]=t;for(let[e,o]of Object.entries(t)){let t=n[e];if(!t){a[e]=o;continue}let s={};Pe({providerKey:e,existing:t,nextEntry:o,secretRefManagedProviders:r})&&(s.apiKey=t.apiKey),Fe({providerKey:e,existing:t,nextEntry:o,explicitBaseUrlProviders:i})&&(s.baseUrl=t.baseUrl),a[e]={...o,...s}}return a}async function Le(t){let{cfg:n,agentDir:r,env:i}=t,a=n.models?.providers??{};return Ae({implicit:await e.s({agentDir:r,config:n,env:i,explicitProviders:a}),explicit:a})}function Re(e){return new Set(Object.entries(e?.providers??{}).map(([e,t])=>[e.trim(),t]).filter(([e,t])=>!!e&&typeof t?.baseUrl==`string`&&t.baseUrl.trim()).map(([e])=>e))}async function ze(t){if(t.mode!==`merge`)return t.providers;let n=t.existingParsed;if(!e.yt(n)||!e.yt(n.providers))return t.providers;let r=n.providers;return Ie({nextProviders:t.providers,existingProviders:r,secretRefManagedProviders:t.secretRefManagedProviders,explicitBaseUrlProviders:t.explicitBaseUrlProviders})}async function Be(t){let{cfg:n,agentDir:r,env:i}=t,a=await Le({cfg:n,agentDir:r,env:i});if(Object.keys(a).length===0)return{action:`skip`};let o=n.models?.mode??`merge`,s=new Set,c=e.o({providers:a,agentDir:r,env:i,secretDefaults:n.secrets?.defaults,secretRefManagedProviders:s})??a,l=await ze({mode:o,existingParsed:t.existingParsed,providers:c,secretRefManagedProviders:s,explicitBaseUrlProviders:Re(n.models)}),u=`${JSON.stringify({providers:l},null,2)}\n`;return t.existingRaw===u?{action:`noop`}:{action:`write`,contents:u}}const w=new Map;async function Ve(e){try{let t=await i.default.readFile(e,`utf8`);return{raw:t,parsed:JSON.parse(t)}}catch{return{raw:``,parsed:null}}}async function T(e){await i.default.chmod(e,384).catch(()=>{})}async function He(e,t){let n=`${e}.${process.pid}.${Date.now()}.tmp`;await i.default.writeFile(n,t,{mode:384}),await i.default.rename(n,e)}function Ue(t){let n=e.F();return t?n?e.L(t):t:n??e.I()}async function We(e,t){let n=w.get(e)??Promise.resolve(),r=()=>{},i=new Promise(e=>{r=e}),a=n.then(()=>i);w.set(e,a);try{return await n,await t()}finally{r(),w.get(e)===a&&w.delete(e)}}async function Ge(t,r){let a=Ue(t),o=r?.trim()?r.trim():e.G(),s=n.default.join(o,`models.json`);return await We(s,async()=>{let t=e.U(a),n=await Ve(s),r=await Be({cfg:a,agentDir:o,env:t,existingRaw:n.raw,existingParsed:n.parsed});return r.action===`skip`?{agentDir:o,wrote:!1}:r.action===`noop`?(await T(s),{agentDir:o,wrote:!1}):(await i.default.mkdir(o,{recursive:!0,mode:448}),await He(s,r.contents),await T(s),{agentDir:o,wrote:!0})})}const Ke=e.Et(`model-catalog`);let E=null,D=!1,qe=()=>Promise.resolve().then(()=>require(`./pi-model-discovery-DWMAAhA-.cjs`));const Je=`openai-codex`,O=`openai`,Ye=new Set([`kilocode`]),Xe=[{provider:O,id:`gpt-5.4`,templateIds:[`gpt-5.2`]},{provider:O,id:`gpt-5.4-pro`,templateIds:[`gpt-5.2-pro`,`gpt-5.2`]},{provider:Je,id:`gpt-5.4`,templateIds:[`gpt-5.3-codex`,`gpt-5.2-codex`]},{provider:Je,id:`gpt-5.3-codex-spark`,templateIds:[`gpt-5.3-codex`]}];function Ze(e){let t=(t,n)=>e.find(e=>e.provider.toLowerCase()===t.toLowerCase()&&e.id.toLowerCase()===n.toLowerCase());for(let n of Xe){if(t(n.provider,n.id))continue;let r=n.templateIds.map(e=>t(n.provider,e)).find(e=>e!==void 0);r&&e.push({...r,id:n.id,name:n.id})}}function Qe(e){if(!Array.isArray(e))return;let t=e.filter(e=>e===`text`||e===`image`||e===`document`);return t.length>0?t:void 0}function $e(e){let t=e.models?.providers;if(!t||typeof t!=`object`)return[];let n=[];for(let[e,r]of Object.entries(t)){let t=e.toLowerCase().trim();if(!Ye.has(t)||!r||typeof r!=`object`)continue;let i=r.models;if(Array.isArray(i))for(let e of i){if(!e||typeof e!=`object`)continue;let r=e.id;if(typeof r!=`string`)continue;let i=r.trim();if(!i)continue;let a=e.name,o=(typeof a==`string`?a:i).trim()||i,s=e.contextWindow,c=typeof s==`number`&&s>0?s:void 0,l=e.reasoning,u=typeof l==`boolean`?l:void 0,d=Qe(e.input);n.push({id:i,name:o,provider:t,contextWindow:c,reasoning:u,input:d})}}return n}function et(e){let t=$e(e.config);if(t.length===0)return;let n=new Set(e.models.map(e=>`${e.provider.toLowerCase().trim()}::${e.id.toLowerCase().trim()}`));for(let r of t){let t=`${r.provider.toLowerCase().trim()}::${r.id.toLowerCase().trim()}`;n.has(t)||(e.models.push(r),n.add(t))}}async function tt(t){return t?.useCache===!1&&(E=null),E||(E=(async()=>{let n=[],r=e=>e.sort((e,t)=>{let n=e.provider.localeCompare(t.provider);return n===0?e.name.localeCompare(t.name):n});try{let i=t?.config??e.I();await Ge(i);let a=await qe(),o=e.G(),{join:s}=await import(`node:path`),c=a.discoverAuthStorage(o),l=new a.ModelRegistry(c,s(o,`models.json`)),u=Array.isArray(l)?l:l.getAll();for(let e of u){let t=String(e?.id??``).trim();if(!t)continue;let r=String(e?.provider??``).trim();if(!r)continue;let i=String(e?.name??t).trim()||t,a=typeof e?.contextWindow==`number`&&e.contextWindow>0?e.contextWindow:void 0,o=typeof e?.reasoning==`boolean`?e.reasoning:void 0,s=Array.isArray(e?.input)?e.input:void 0;n.push({id:t,name:i,provider:r,contextWindow:a,reasoning:o,input:s})}return et({config:i,models:n}),Ze(n),n.length===0&&(E=null),r(n)}catch(e){return D||(D=!0,Ke.warn(`Failed to load model catalog: ${String(e)}`)),E=null,n.length>0?r(n):[]}})(),E)}async function nt(t,n){let r=e.i({cfg:t,agentId:n}),i=e.t({cfg:t,catalog:await tt({config:t}),defaultProvider:r.provider,defaultModel:r.model}),a=e.n({cfg:t,defaultProvider:r.provider}),o=new Map,s=(t,n)=>{let r=e.r(t),i=o.get(r)??new Set;i.add(n),o.set(r,i)},c=t=>{let n=t?.trim();if(!n)return;let i=e.a({raw:n,defaultProvider:r.provider,aliasIndex:a});i&&s(i.ref.provider,i.ref.model)},l=()=>{let e=t.agents?.defaults?.model;if(typeof e==`string`)c(e);else if(e&&typeof e==`object`){c(e.primary);for(let t of e.fallbacks??[])c(t)}let n=t.agents?.defaults?.imageModel;if(typeof n==`string`)c(n);else if(n&&typeof n==`object`){c(n.primary);for(let e of n.fallbacks??[])c(e)}};for(let e of i.allowedCatalog)s(e.provider,e.id);for(let e of Object.keys(t.agents?.defaults?.models??{}))c(e);return s(r.provider,r.model),l(),{byProvider:o,providers:[...o.keys()].toSorted(),resolvedDefault:r}}function rt(e,t){let n=e.initialMs*e.factor**Math.max(t-1,0),r=n*e.jitter*Math.random();return Math.min(e.maxMs,Math.round(n+r))}const it={initialMs:1e3,maxMs:6e4,factor:2,jitter:0};function at(e){for(let t of e.models){if(!t?.id)continue;let n=typeof t.contextWindow==`number`?Math.trunc(t.contextWindow):void 0;if(!n||n<=0)continue;let r=e.cache.get(t.id);(r===void 0||n<r)&&e.cache.set(t.id,n)}}function k(e){let t=e.modelsConfig?.providers;if(!(!t||typeof t!=`object`)){for(let n of Object.values(t))if(Array.isArray(n?.models))for(let t of n.models){let n=typeof t?.id==`string`?t.id:void 0,r=typeof t?.contextWindow==`number`?t.contextWindow:void 0;!n||!r||r<=0||e.cache.set(n,r)}}}const A=new Map;let j=null,M,N=0,P=0;function ot(t){let n=t.slice(2),r=[];for(let t=0;t<n.length;t+=1){let i=n[t];if(!i||i===`--`)break;let a=e.At(n,t);if(a>0){t+=a-1;continue}if(!i.startsWith(`-`)&&(r.push(i),r.length>=2))break}return r}function st(e=process.argv){let[t,n]=ot(e);return t===`config`&&n===`validate`}function ct(){if(M)return M;if(!(Date.now()<P))try{let t=e.I();return k({cache:A,modelsConfig:t.models}),M=t,N=0,P=0,t}catch{N+=1;let e=rt(it,N);P=Date.now()+e;return}}function lt(){if(j)return j;let t=ct();return t?(j=(async()=>{try{await Ge(t)}catch{}try{let{discoverAuthStorage:t,discoverModels:n}=await Promise.resolve().then(()=>require(`./pi-model-discovery-DWMAAhA-.cjs`)),r=e.G(),i=n(t(r),r);at({cache:A,models:typeof i.getAvailable==`function`?i.getAvailable():i.getAll()})}catch{}k({cache:A,modelsConfig:t.models})})().catch(()=>{}),j):Promise.resolve()}st()||lt();function ut(e){let t=e?.modelOverride?.trim();return t?{provider:e?.providerOverride?.trim()||void 0,model:t}:null}function dt(t){let n=t.parentSessionKey?.trim();if(n&&n!==t.sessionKey)return n;let r=e.Tt(t.sessionKey);return r&&r!==t.sessionKey?r:null}function ft(e){let t=ut(e.sessionEntry);if(t)return{...t,source:`session`};let n=dt({sessionKey:e.sessionKey,parentSessionKey:e.parentSessionKey});if(!n||!e.sessionStore)return null;let r=e.sessionStore[n],i=ut(r);return i?{...i,source:`parent`}:null}const pt=s.z.union([s.z.string(),s.z.number()]);s.z.array(pt).optional();function mt(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const F=1024*1024;function ht(t){let n=e.wt(t.accountId),r=t.resolveChannelLimitMb({cfg:t.cfg,accountId:n});if(r)return r*F;if(t.cfg.agents?.defaults?.mediaMaxMb)return t.cfg.agents.defaults.mediaMaxMb*F}const I={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},gt=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],_t=[...new Set(Object.values(I).flatMap(e=>e))];[...new Set([..._t,...gt])];function vt(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function yt(e){return I[e]?.find(e=>e.trim().length>0)}function bt(t){return`/providers/${e.N(t)}/apiKey`}async function xt(t){let n=t.preferredEnvVar??yt(t.provider)??``,r=bt(t.provider),i=`env`;for(;;){let a=await t.prompter.select({message:t.copy?.sourceMessage??`Where is this API key stored?`,initialValue:i,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(i=a,a===`env`){let r=await t.prompter.text({message:t.copy?.envVarMessage??`Environment variable name`,initialValue:n||void 0,placeholder:t.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:n=>{let r=n.trim();if(!e.dt(r))return t.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[r]?.trim())return t.copy?.envVarMissingError?.(r)??`Environment variable "${r}" is missing or empty in this session.`}}),i=String(r??``).trim(),a=i&&e.dt(i)?i:n;if(!a)throw Error(`No valid environment variable name provided for provider "${t.provider}".`);let o={source:`env`,provider:e.et(t.config,`env`,{preferFirstProviderForSource:!0}),id:a},s=await e.M(o,{config:t.config,env:process.env});return await t.prompter.note(t.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:o,resolvedValue:s}}let o=Object.entries(t.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(o.length===0){await t.prompter.note(t.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let s=e.et(t.config,`file`,{preferFirstProviderForSource:!0}),c=await t.prompter.select({message:`Select secret provider`,initialValue:o.find(([e])=>e===s)?.[0]??o[0]?.[0],options:o.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),l=t.config.secrets?.providers?.[c];if(!l||l.source!==`file`&&l.source!==`exec`){await t.prompter.note(`Provider "${c}" is not a file/exec provider.`,`Invalid provider`);continue}let u=l.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,d=l.source===`file`?l.mode===`singleValue`?`value`:r:`${t.provider}/apiKey`,f=await t.prompter.text({message:u,initialValue:d,placeholder:l.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:t=>{let n=t.trim();if(!n)return`Secret id cannot be empty.`;if(l.source===`file`&&l.mode!==`singleValue`&&!e.$(n))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(l.source===`file`&&l.mode===`singleValue`&&n!==`value`)return`singleValue mode expects id "value".`;if(l.source===`exec`&&!e.Q(n))return e.Z()}}),p=String(f??``).trim()||d,m={source:l.source,provider:c,id:p};try{let n=await e.M(m,{config:t.config,env:process.env});return await t.prompter.note(t.copy?.providerValidatedMessage?.(c,p,l.source)??`Validated ${l.source} reference ${c}:${p}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:m,resolvedValue:n}}catch(e){await t.prompter.note([`Could not validate provider reference ${c}:${p}.`,vt(e),`Check your provider configuration and try again.`].join(`
|
|
12
|
-
`),`Reference check failed`)}}}async function St(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}async function Ct(t){let n=t.listAccountIds(t.cfg),r=t.currentId?.trim()||t.defaultAccountId||`default`,i=await t.prompter.select({message:`${t.label} account`,options:[...n.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:r});if(i!==`__new__`)return e.wt(i);let a=await t.prompter.text({message:`New ${t.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),o=e.wt(String(a));return String(a).trim()!==o&&await t.prompter.note(`Normalized account id to "${o}".`,`${t.label} account`),o}function wt(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function Tt(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:wt(e.cfg,e.channelKey)}function Et(t){let n=t.name?.trim();if(!n)return t.cfg;let r=e.wt(t.accountId),i=t.cfg.channels?.[t.channelKey],a=typeof i==`object`&&i?i:void 0;if(!Tt({cfg:t.cfg,channelKey:t.channelKey,accountId:r,alwaysUseAccounts:t.alwaysUseAccounts})&&r===`default`){let e=a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...e,name:n}}}}let o=a?.accounts??{},s=o[r]??{},c=r===`default`?(({name:e,...t})=>t)(a??{}):a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...c,accounts:{...o,[r]:{...s,name:n}}}}}}function Dt(t){if(t.alwaysUseAccounts)return t.cfg;let n=t.cfg.channels?.[t.channelKey],r=n?.name?.trim();if(!r)return t.cfg;let i={...n?.accounts},a=i.default??{};a.name||(i[e.Ct]={...a,name:r});let{name:o,...s}=n??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...s,accounts:i}}}}function Ot(e){return kt({cfg:e.cfg,channelKey:e.channelKey,accountId:e.accountId,patch:e.patch})}function kt(t){let n=e.wt(t.accountId),r=t.cfg.channels?.[t.channelKey],i=typeof r==`object`&&r?r:void 0,a=t.ensureChannelEnabled??!0,o=t.ensureAccountEnabled??a,s=t.patch,c=t.accountPatch??s;if(n===`default`)return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...i,...a?{enabled:!0}:{},...s}}};let l=i?.accounts??{},u=l[n]??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...i,...a?{enabled:!0}:{},accounts:{...l,[n]:{...u,...o?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...c}}}}}}const L=async e=>await Ct(e);async function At(t){let n=t.accountOverride?.trim(),r=n?e.wt(n):t.defaultAccountId;return t.shouldPromptAccountIds&&!n&&(r=await L({cfg:t.cfg,prompter:t.prompter,label:t.label,currentId:r,listAccountIds:t.listAccountIds,defaultAccountId:t.defaultAccountId})),r}function R(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function jt(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function Mt(e){let t=R({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await z({cfg:e.cfg,prompter:e.prompter,providerHint:e.providerHint,credentialLabel:e.credentialLabel,secretInputMode:e.secretInputMode,accountConfigured:t.accountConfigured,canUseEnv:t.canUseEnv,hasConfigToken:t.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt,preferredEnvVar:e.preferredEnvVar});return n.action===`use-env`?{cfg:e.applyUseEnv?await e.applyUseEnv(e.cfg):e.cfg,action:n.action,resolvedValue:e.envValue?.trim()||void 0}:n.action===`set`?{cfg:e.applySet?await e.applySet(e.cfg,n.value,n.resolvedValue):e.cfg,action:n.action,resolvedValue:n.resolvedValue}:{cfg:e.cfg,action:n.action}}async function z(e){if(await St({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await jt({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await xt({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}function Nt(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function Pt(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...It({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function Ft(e){let{accountId:t,name:n,enabled:r,configured:i,runtime:a,probe:o}=e;return Pt({account:{accountId:t,name:n,enabled:r,configured:i},runtime:a,probe:o})}function It(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}function B(t,n){return e.ht(t,n)?.identity}function V(e,t){let n=B(e,t)?.name?.trim();if(n)return`[${n}]`}function Lt(e,t){return B(e,t)?.name?.trim()||void 0}function Rt(e,t,n){let r=n?.configured??e.messages?.messagePrefix;return r===void 0?n?.hasAllowFrom===!0?``:V(e,t)??n?.fallback??`[openclaw]`:r}function H(e,t){let n=e.channels?.[t];return typeof n==`object`&&n?n:void 0}function zt(e,t,n){if(n?.channel&&n?.accountId){let r=(H(e,n.channel)?.accounts)?.[n.accountId]?.responsePrefix;if(r!==void 0)return r===`auto`?V(e,t):r}if(n?.channel){let r=H(e,n.channel)?.responsePrefix;if(r!==void 0)return r===`auto`?V(e,t):r}let r=e.messages?.responsePrefix;if(r!==void 0)return r===`auto`?V(e,t):r}function Bt(e,t,n){return{messagePrefix:Rt(e,t,{hasAllowFrom:n?.hasAllowFrom,fallback:n?.fallbackMessagePrefix}),responsePrefix:zt(e,t,{channel:n?.channel,accountId:n?.accountId})}}function Vt(e){let t=e.lastIndexOf(`/`);return(t>=0?e.slice(t+1):e).replace(/-\d{8}$/,``).replace(/-latest$/,``)}function Ht(e){let{cfg:t,agentId:n}=e,r={identityName:Lt(t,n)};return{prefixContext:r,responsePrefix:Bt(t,n,{channel:e.channel,accountId:e.accountId}).responsePrefix,responsePrefixContextProvider:()=>r,onModelSelected:e=>{r.provider=e.provider,r.model=Vt(e.model),r.modelFull=`${e.provider}/${e.model}`,r.thinkingLevel=e.thinkLevel??`off`}}}function Ut(e){let{responsePrefix:t,responsePrefixContextProvider:n,onModelSelected:r}=Ht(e);return{responsePrefix:t,responsePrefixContextProvider:n,onModelSelected:r}}function Wt(e){let t,n=!1,r=async()=>{if(!n){n=!0;try{await e.onTick()}finally{n=!1}}};return{tick:r,start:()=>{e.intervalMs<=0||t||(t=setInterval(()=>{r()},e.intervalMs))},stop:()=>{t&&(clearInterval(t),t=void 0,n=!1)},isRunning:()=>t!==void 0}}function Gt(e){let t=typeof e.maxConsecutiveFailures==`number`&&e.maxConsecutiveFailures>0?Math.floor(e.maxConsecutiveFailures):void 0,n=0,r=!1,i=()=>e.isSealed()||r?!0:e.shouldBlock?.()===!0;return{run:async a=>{if(i())return`skipped`;try{return await a(),n=0,`started`}catch(i){if(n+=1,e.onStartError?.(i),e.rethrowOnError)throw i;return t&&n>=t?(r=!0,e.onTrip?.(),`tripped`):`failed`}},reset:()=>{n=0,r=!1},isTripped:()=>r}}function Kt(e){let t=e.stop,n=e.keepaliveIntervalMs??3e3,r=Math.max(1,e.maxConsecutiveFailures??2),i=e.maxDurationMs??6e4,a=!1,o=!1,s,c=Gt({isSealed:()=>o,onStartError:e.onStartError,maxConsecutiveFailures:r,onTrip:()=>{u.stop()}}),l=async()=>{await c.run(()=>e.start())},u=Wt({intervalMs:n,onTick:l}),d=()=>{i<=0||(f(),s=setTimeout(()=>{o||(console.warn(`[typing] TTL exceeded (${i}ms), auto-stopping typing indicator`),m())},i))},f=()=>{s&&=(clearTimeout(s),void 0)},p=async()=>{o||(a=!1,c.reset(),u.stop(),f(),await l(),!c.isTripped()&&(u.start(),d()))},m=()=>{o=!0,u.stop(),f(),!(!t||a)&&(a=!0,t().catch(t=>(e.onStopError??e.onStartError)(t)))};return{onReplyStart:p,onIdle:m,onCleanup:m}}function qt(e){return e?.dangerouslyAllowNameMatching===!0}function Jt(e){let t=e.configuredFallbackPolicy??`open`,n=e.missingProviderFallbackPolicy??`allowlist`;return{groupPolicy:e.providerConfigPresent?e.groupPolicy??e.defaultGroupPolicy??t:e.groupPolicy??n,providerMissingFallbackApplied:!e.providerConfigPresent&&e.groupPolicy===void 0}}function Yt(e){return e.channels?.defaults?.groupPolicy}function Xt(e){return Jt({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy,configuredFallbackPolicy:`allowlist`,missingProviderFallbackPolicy:`allowlist`})}const U=new Set;function Zt(e){if(!e.providerMissingFallbackApplied)return!1;let t=`${e.providerKey}:${e.accountId??`*`}`;if(U.has(t))return!1;U.add(t);let n=e.blockedLabel?.trim()||`group messages`;return e.log(`${e.providerKey}: channels.${e.providerKey} is missing; defaulting groupPolicy to "allowlist" (${n} blocked until explicitly configured).`),!0}function Qt(){let t=s.z.string().regex(e.X,`Secret reference provider must match /^[a-z][a-z0-9_-]{0,63}$/ (example: "default").`);return s.z.union([s.z.string(),s.z.discriminatedUnion(`source`,[s.z.object({source:s.z.literal(`env`),provider:t,id:s.z.string().regex(e.lt,`Env secret reference id must match /^[A-Z][A-Z0-9_]{0,127}$/ (example: "OPENAI_API_KEY").`)}),s.z.object({source:s.z.literal(`file`),provider:t,id:s.z.string().refine(e.$,`File secret reference id must be an absolute JSON pointer (example: "/providers/openai/apiKey"), or "value" for singleValue mode.`)}),s.z.object({source:s.z.literal(`exec`),provider:t,id:s.z.string().refine(e.Q,e.Z())})])])}function $t(e,t){let n=Math.max(0,Math.floor(t));if(n<=0){e.clear();return}for(;e.size>n;){let t=e.keys().next();if(t.done)break;e.delete(t.value)}}function en(e){let t=Math.max(0,e.ttlMs),n=Math.max(0,Math.floor(e.maxSize)),r=new Map,i=(e,t)=>{r.delete(e),r.set(e,t)},a=e=>{let i=t>0?e-t:void 0;if(i!==void 0)for(let[e,t]of r)t<i&&r.delete(e);if(n<=0){r.clear();return}$t(r,n)},o=(e,n,a)=>{let o=r.get(e);return o===void 0?!1:t>0&&n-o>=t?(r.delete(e),!1):(a&&i(e,n),!0)};return{check:(e,t=Date.now())=>e?o(e,t,!0)?!0:(i(e,t),a(t),!1):!1,peek:(e,t=Date.now())=>e?o(e,t,!1):!1,clear:()=>{r.clear()},size:()=>r.size}}function tn(t){let n=t.registry??e.nt(),r=n.httpRoutes??[];n.httpRoutes=r;let i=e.it(t.path,t.fallbackPath),a=t.accountId?` for account "${t.accountId}"`:``;if(!i)return t.log?.(`plugin: webhook path missing${a}`),()=>{};let o=t.match??`exact`,s=e.rt(r,{path:i,match:o});if(s&&s.auth!==t.auth)return t.log?.(`plugin: route overlap denied at ${i} (${o}, ${t.auth})${a}; overlaps ${s.path} (${s.match}, ${s.auth}) owned by ${s.pluginId??`unknown-plugin`} (${s.source??`unknown-source`})`),()=>{};let c=r.findIndex(e=>e.path===i&&e.match===o);if(c>=0){let e=r[c];if(!e)return()=>{};if(!t.replaceExisting)return t.log?.(`plugin: route conflict at ${i} (${o})${a}; owned by ${e.pluginId??`unknown-plugin`} (${e.source??`unknown-source`})`),()=>{};if(e.pluginId&&t.pluginId&&e.pluginId!==t.pluginId)return t.log?.(`plugin: route replacement denied for ${i} (${o})${a}; owned by ${e.pluginId}`),()=>{};let n=t.pluginId?` (${t.pluginId})`:``;t.log?.(`plugin: replacing stale webhook path ${i} (${o})${a}${n}`),r.splice(c,1)}let l={path:i,handler:t.handler,auth:t.auth,match:o,pluginId:t.pluginId,source:t.source};return r.push(l),()=>{let e=r.indexOf(l);e>=0&&r.splice(e,1)}}function W(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function nn(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?W(`expected config object`):Object.keys(e).length>0?W(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function rn(e){let t=e.dmPolicy===`allowlist`?[]:e.storeAllowFrom??[];return[...e.allowFrom??[],...t].map(e=>String(e).trim()).filter(Boolean)}function an(e){return((Array.isArray(e.groupAllowFrom)&&e.groupAllowFrom.length>0?e.groupAllowFrom:void 0)||(e.fallbackToAllowFrom===!1?[]:e.allowFrom??[])).map(e=>String(e).trim()).filter(Boolean)}function on(t){return e.J(t)?.pairing??null}async function sn(n,r){try{let i=e.xt(await t.default.promises.readFile(n,`utf-8`));return i==null?{value:r,exists:!0}:{value:i,exists:!0}}catch(e){return e.code,{value:r,exists:!1}}}const G=new Map;function K(t=process.env){return e.jt(t,e.Mt(t,()=>e.Nt(t,r.default.homedir)))}function cn(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing channel`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing channel`);return n}function ln(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing account id`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing account id`);return n}function q(e,t=process.env,r){let i=cn(e),a=typeof r==`string`?r.trim():``;return a?n.default.join(K(t),`${i}-${ln(a)}-allowFrom.json`):n.default.join(K(t),`${i}-allowFrom.json`)}async function un(e,t){return await sn(e,t)}function dn(e){return e?.trim().toLowerCase()||``}function fn(e){return!e||e===`default`}function pn(e){return dn(e)||`default`}function mn(e,t){let n=t.trim();if(!n||n===`*`)return``;let r=on(e),i=r?.normalizeAllowEntry?r.normalizeAllowEntry(n):n;return String(i).trim()}function hn(e,t){return gn((Array.isArray(t.allowFrom)?t.allowFrom:[]).map(t=>mn(e,String(t))).filter(Boolean))}function gn(e){let t=new Set,n=[];for(let r of e){let e=String(r).trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}async function J(e,t){return(await xn(e,t)).entries}function _n(e){return{exists:e.exists,mtimeMs:e.mtimeMs,size:e.size,entries:e.entries.slice()}}function vn(e,t){G.set(e,_n(t))}function yn(e){let t=G.get(e.filePath);return!t||t.exists!==e.exists||e.exists&&(t.mtimeMs!==e.mtimeMs||t.size!==e.size)?null:_n(t)}function bn(e,t){let n=yn({filePath:e,exists:!!t,mtimeMs:t?.mtimeMs??null,size:t?.size??null});return n?{entries:n.entries,exists:n.exists}:t?null:(vn(e,{exists:!1,mtimeMs:null,size:null,entries:[]}),{entries:[],exists:!1})}async function xn(e,n){let r=null;try{r=await t.default.promises.stat(n)}catch(e){if(e.code!==`ENOENT`)throw e}let i=bn(n,r);if(i)return i;if(!r)return{entries:[],exists:!1};let{value:a,exists:o}=await un(n,{version:1,allowFrom:[]}),s=hn(e,a);return vn(n,{exists:o,mtimeMs:r.mtimeMs,size:r.size,entries:s}),{entries:s,exists:o}}async function Sn(e){let t=q(e.channel,e.env,e.accountId);return await J(e.channel,t)}async function Cn(e,t=process.env,n){let r=pn(n);if(!fn(r))return await Sn({channel:e,env:t,accountId:r});let i=await J(e,q(e,t,r)),a=await J(e,q(e,t));return gn([...i,...a])}function wn(e){if(e.groupPolicy===`disabled`)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`disabled`};if(e.groupPolicy===`allowlist`){if(e.requireMatchInput&&!e.hasMatchInput)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`missing_match_input`};if(!e.allowlistConfigured)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`empty_allowlist`};if(!e.allowlistMatched)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`not_allowlisted`}}return{allowed:!0,groupPolicy:e.groupPolicy,reason:`allowed`}}function Tn(e){if(e.groupPolicy===`disabled`)return{allowed:!1,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`disabled`};if(e.groupPolicy===`allowlist`){if(e.groupAllowFrom.length===0)return{allowed:!1,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`empty_allowlist`};if(!e.isSenderAllowed(e.senderId,e.groupAllowFrom))return{allowed:!1,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`sender_not_allowlisted`}}return{allowed:!0,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`allowed`}}function En(t){let n=Array.isArray(t.allowFrom)?t.allowFrom:void 0,r=Array.isArray(t.groupAllowFrom)?t.groupAllowFrom:void 0;return{effectiveAllowFrom:e.vt(rn({allowFrom:n,storeAllowFrom:Array.isArray(t.storeAllowFrom)?t.storeAllowFrom:void 0,dmPolicy:t.dmPolicy??void 0})),effectiveGroupAllowFrom:e.vt(an({allowFrom:n,groupAllowFrom:r,fallbackToAllowFrom:t.groupAllowFromFallbackToAllowFrom??void 0}))}}const Y={GROUP_POLICY_ALLOWED:`group_policy_allowed`,GROUP_POLICY_DISABLED:`group_policy_disabled`,GROUP_POLICY_EMPTY_ALLOWLIST:`group_policy_empty_allowlist`,GROUP_POLICY_NOT_ALLOWLISTED:`group_policy_not_allowlisted`,DM_POLICY_OPEN:`dm_policy_open`,DM_POLICY_DISABLED:`dm_policy_disabled`,DM_POLICY_ALLOWLISTED:`dm_policy_allowlisted`,DM_POLICY_PAIRING_REQUIRED:`dm_policy_pairing_required`,DM_POLICY_NOT_ALLOWLISTED:`dm_policy_not_allowlisted`};async function Dn(e){return e.shouldRead===!1||e.dmPolicy===`allowlist`?[]:await(e.readStore??((e,t)=>Cn(e,process.env,t)))(e.provider,e.accountId).catch(()=>[])}function On(t){let n=t.dmPolicy??`pairing`,r=t.groupPolicy===`open`||t.groupPolicy===`disabled`?t.groupPolicy:`allowlist`,i=e.vt(t.effectiveAllowFrom),a=e.vt(t.effectiveGroupAllowFrom);if(t.isGroup){let e=wn({groupPolicy:r,allowlistConfigured:a.length>0,allowlistMatched:t.isSenderAllowed(a)});if(!e.allowed){if(e.reason===`disabled`)return{decision:`block`,reasonCode:Y.GROUP_POLICY_DISABLED,reason:`groupPolicy=disabled`};if(e.reason===`empty_allowlist`)return{decision:`block`,reasonCode:Y.GROUP_POLICY_EMPTY_ALLOWLIST,reason:`groupPolicy=allowlist (empty allowlist)`};if(e.reason===`not_allowlisted`)return{decision:`block`,reasonCode:Y.GROUP_POLICY_NOT_ALLOWLISTED,reason:`groupPolicy=allowlist (not allowlisted)`}}return{decision:`allow`,reasonCode:Y.GROUP_POLICY_ALLOWED,reason:`groupPolicy=${r}`}}return n===`disabled`?{decision:`block`,reasonCode:Y.DM_POLICY_DISABLED,reason:`dmPolicy=disabled`}:n===`open`?{decision:`allow`,reasonCode:Y.DM_POLICY_OPEN,reason:`dmPolicy=open`}:t.isSenderAllowed(i)?{decision:`allow`,reasonCode:Y.DM_POLICY_ALLOWLISTED,reason:`dmPolicy=${n} (allowlisted)`}:n===`pairing`?{decision:`pairing`,reasonCode:Y.DM_POLICY_PAIRING_REQUIRED,reason:`dmPolicy=pairing (not allowlisted)`}:{decision:`block`,reasonCode:Y.DM_POLICY_NOT_ALLOWLISTED,reason:`dmPolicy=${n} (not allowlisted)`}}function kn(e){let{effectiveAllowFrom:t,effectiveGroupAllowFrom:n}=En({allowFrom:e.allowFrom,groupAllowFrom:e.groupAllowFrom,storeAllowFrom:e.storeAllowFrom,dmPolicy:e.dmPolicy,groupAllowFromFallbackToAllowFrom:e.groupAllowFromFallbackToAllowFrom});return{...On({isGroup:e.isGroup,dmPolicy:e.dmPolicy,groupPolicy:e.groupPolicy,effectiveAllowFrom:t,effectiveGroupAllowFrom:n,isSenderAllowed:e.isSenderAllowed}),effectiveAllowFrom:t,effectiveGroupAllowFrom:n}}function An(e){let t=e[0],n=e.map(e=>e.path),r=e.map(e=>e.contentType).filter(Boolean);return{MediaPath:t?.path,MediaType:t?.contentType??void 0,MediaUrl:t?.path,MediaPaths:n.length>0?n:void 0,MediaUrls:n.length>0?n:void 0,MediaTypes:r.length>0?r:void 0}}function jn(){this.abort()}function Mn(e){return jn.bind(e)}const X={STRICT:`strict`,TRUSTED_ENV_PROXY:`trusted_env_proxy`},Nn=new Set([`accept`,`accept-encoding`,`accept-language`,`cache-control`,`content-language`,`content-type`,`if-match`,`if-modified-since`,`if-none-match`,`if-unmodified-since`,`pragma`,`range`,`user-agent`]);function Pn(e){return{...e,mode:X.STRICT}}function Fn(e){return e.mode?e.mode:e.proxy===`env`&&e.dangerouslyAllowEnvProxyWithoutPinnedDns===!0?X.TRUSTED_ENV_PROXY:X.STRICT}function In(e){return e===301||e===302||e===303||e===307||e===308}function Ln(e){if(!e?.headers)return e;let t=new Headers(e.headers),n=new Headers;for(let[e,r]of t.entries())Nn.has(e.toLowerCase())&&n.set(e,r);return{...e,headers:n}}function Rn(e){let{timeoutMs:t,signal:n}=e;if(!t&&!n)return{signal:void 0,cleanup:()=>{}};if(!t)return{signal:n,cleanup:()=>{}};let r=new AbortController,i=setTimeout(r.abort.bind(r),t),a=Mn(r);return n&&(n.aborted?r.abort():n.addEventListener(`abort`,a,{once:!0})),{signal:r.signal,cleanup:()=>{clearTimeout(i),n&&n.removeEventListener(`abort`,a)}}}async function zn(t){let n=t.fetchImpl??globalThis.fetch;if(!n)throw Error(`fetch is not available`);let r=typeof t.maxRedirects==`number`&&Number.isFinite(t.maxRedirects)?Math.max(0,Math.floor(t.maxRedirects)):3,i=Fn(t),{signal:a,cleanup:o}=Rn({timeoutMs:t.timeoutMs,signal:t.signal}),s=!1,l=async t=>{s||(s=!0,o(),await e.E(t??void 0))},u=new Set,d=t.url,f=t.init?{...t.init}:void 0,p=0;for(;;){let o;try{o=new URL(d)}catch{throw await l(),Error(`Invalid URL: must be http or https`)}if(![`http:`,`https:`].includes(o.protocol))throw await l(),Error(`Invalid URL: must be http or https`);let s=null;try{let m=await e.O(o.hostname,{lookupFn:t.lookupFn,policy:t.policy});i===X.TRUSTED_ENV_PROXY&&e.w()?s=new c.EnvHttpProxyAgent:t.pinDns!==!1&&(s=e.D(m));let h={...f?{...f}:{},redirect:`manual`,...s?{dispatcher:s}:{},...a?{signal:a}:{}},g=await n(o.toString(),h);if(In(g.status)){let t=g.headers.get(`location`);if(!t)throw await l(s),Error(`Redirect missing location header (${g.status})`);if(p+=1,p>r)throw await l(s),Error(`Too many redirects (limit: ${r})`);let n=new URL(t,o),i=n.toString();if(u.has(i))throw await l(s),Error(`Redirect loop detected`);n.origin!==o.origin&&(f=Ln(f)),u.add(i),g.body?.cancel(),await e.E(s),d=i;continue}return{response:g,finalUrl:d,release:async()=>l(s)}}catch(n){throw n instanceof e.T&&e.P(`security: blocked URL fetch (${t.auditContext??`url-fetch`}) target=${o.origin}${o.pathname} reason=${n.message}`),await l(s),n}}}async function Bn(e,t){let n,r=!1;return await new Promise((i,a)=>{let o=()=>{n!==void 0&&(clearTimeout(n),n=void 0)};n=setTimeout(()=>{r=!0,o(),e.cancel().catch(()=>void 0),a(Error(`Media download stalled: no data received for ${t}ms`))},t),e.read().then(e=>{o(),r||i(e)},e=>{o(),r||a(e)})})}async function Vn(e,t,n){let r=n?.onOverflow??(e=>Error(`Content too large: ${e.size} bytes (limit: ${e.maxBytes} bytes)`)),i=n?.chunkTimeoutMs,a=e.body;if(!a||typeof a.getReader!=`function`){let n=Buffer.from(await e.arrayBuffer());if(n.length>t)throw r({size:n.length,maxBytes:t,res:e});return n}let o=a.getReader(),s=[],c=0;try{for(;;){let{done:n,value:a}=i?await Bn(o,i):await o.read();if(n)break;if(a?.length){if(c+=a.length,c>t){try{await o.cancel()}catch{}throw r({size:c,maxBytes:t,res:e})}s.push(a)}}}finally{try{o.releaseLock()}catch{}}return Buffer.concat(s.map(e=>Buffer.from(e)),c)}var Z=class extends Error{constructor(e,t){super(t),this.code=e,this.name=`MediaFetchError`}};function Hn(e){return e.replace(/^["']|["']$/g,``)}function Un(e){if(!e)return;let t=/filename\*\s*=\s*([^;]+)/i.exec(e);if(t?.[1]){let e=Hn(t[1].trim()),r=e.split(`''`).slice(1).join(`''`)||e;try{return n.default.basename(decodeURIComponent(r))}catch{return n.default.basename(r)}}let r=/filename\s*=\s*([^;]+)/i.exec(e);if(r?.[1])return n.default.basename(Hn(r[1].trim()))}async function Wn(e,t=200){try{let n=await e.text();if(!n)return;let r=n.replace(/\s+/g,` `).trim();return r?r.length<=t?r:`${r.slice(0,t)}…`:void 0}catch{return}}async function Gn(t){let{url:r,fetchImpl:i,requestInit:a,filePathHint:o,maxBytes:s,maxRedirects:c,readIdleTimeoutMs:l,ssrfPolicy:u,lookupFn:d}=t,f,p=r,m=null;try{let e=await zn(Pn({url:r,fetchImpl:i,init:a,maxRedirects:c,policy:u,lookupFn:d}));f=e.response,p=e.finalUrl,m=e.release}catch(e){throw new Z(`fetch_failed`,`Failed to fetch media from ${r}: ${String(e)}`)}try{if(!f.ok){let e=f.statusText?` ${f.statusText}`:``,t=p===r?``:` (redirected to ${p})`,n=`HTTP ${f.status}${e}`;if(!f.body)n=`HTTP ${f.status}${e}; empty response body`;else{let e=await Wn(f);e&&(n+=`; body: ${e}`)}throw new Z(`http_error`,`Failed to fetch media from ${r}${t}: ${n}`)}let t=f.headers.get(`content-length`);if(s&&t){let e=Number(t);if(Number.isFinite(e)&&e>s)throw new Z(`max_bytes`,`Failed to fetch media from ${r}: content length ${e} exceeds maxBytes ${s}`)}let i;try{i=s?await Vn(f,s,{onOverflow:({maxBytes:e,res:t})=>new Z(`max_bytes`,`Failed to fetch media from ${t.url||r}: payload exceeds maxBytes ${e}`),chunkTimeoutMs:l}):Buffer.from(await f.arrayBuffer())}catch(e){throw e instanceof Z?e:new Z(`fetch_failed`,`Failed to fetch media from ${f.url||r}: ${String(e)}`)}let a;try{let e=new URL(p);a=n.default.basename(e.pathname)||void 0}catch{}let c=Un(f.headers.get(`content-disposition`)),u=c||a||(o?n.default.basename(o):void 0),d=c&&n.default.extname(c)?c:o??p,m=await e.v({buffer:i,headerMime:f.headers.get(`content-type`),filePath:d});if(u&&!n.default.extname(u)&&m){let t=e.y(m);t&&(u=`${u}${t}`)}return{buffer:i,contentType:m??void 0,fileName:u}}finally{m&&await m()}}let Kn;function qn(){return Kn||=e.kt(),Kn}function Jn(e,t={}){let r=n.default.resolve(e);return[t.preferredTmpDir??qn(),n.default.join(r,`media`),n.default.join(r,`agents`),n.default.join(r,`workspace`),n.default.join(r,`sandboxes`)]}function Yn(){return Jn(e.Mt())}function Xn(e){return typeof e.maxBytesOrOptions==`number`||e.maxBytesOrOptions===void 0?{maxBytes:e.maxBytesOrOptions,optimizeImages:e.optimizeImages,ssrfPolicy:e.options?.ssrfPolicy,localRoots:e.options?.localRoots}:{...e.maxBytesOrOptions,optimizeImages:e.optimizeImages?e.maxBytesOrOptions.optimizeImages??!0:!1}}var Q=class extends Error{constructor(e,t,n){super(t,n),this.code=e,this.name=`LocalMediaAccessError`}};function Zn(){return Yn()}async function Qn(e,t){if(t===`any`)return;let r=t??Zn(),a;try{a=await i.default.realpath(e)}catch{a=n.default.resolve(e)}if(t===void 0){let t=r.find(e=>n.default.basename(e)===`workspace`);if(t){let r=n.default.dirname(t),i=n.default.relative(r,a);if(i&&!i.startsWith(`..`)&&!n.default.isAbsolute(i)&&(i.split(n.default.sep)[0]??``).startsWith(`workspace-`))throw new Q(`path-not-allowed`,`Local media path is not under an allowed directory: ${e}`)}}for(let e of r){let t;try{t=await i.default.realpath(e)}catch{t=n.default.resolve(e)}if(t===n.default.parse(t).root)throw new Q(`invalid-root`,`Invalid localRoots entry (refuses filesystem root): ${e}. Pass a narrower directory.`);if(a===t||a.startsWith(t+n.default.sep))return}throw new Q(`path-not-allowed`,`Local media path is not under an allowed directory: ${e}`)}const $n=/^image\/hei[cf]$/i,er=/\.(heic|heif)$/i;function $(e,t=2){return(e/1048576).toFixed(t)}function tr(e,t,n){return`${e} exceeds ${$(t,0)}MB limit (got ${$(n)}MB)`}function nr(e,t,n){return`${e} could not be reduced below ${$(t,0)}MB (got ${$(n)}MB)`}function rr(e){return!!(e.contentType&&$n.test(e.contentType.trim())||e.fileName&&er.test(e.fileName.trim()))}function ir(e){if(!e)return;let t=e.trim();if(!t)return e;let r=n.default.parse(t);return!r.ext||er.test(r.ext)?n.default.format({dir:r.dir,name:r.name||t,ext:`.jpg`}):n.default.format({dir:r.dir,name:r.name,ext:`.jpg`})}function ar(t){if(e.Ot()&&!(t.optimized.optimizedSize>=t.originalSize)){if(t.optimized.format===`png`){e.Dt(`Optimized PNG (preserving alpha) from ${$(t.originalSize)}MB to ${$(t.optimized.optimizedSize)}MB (side≤${t.optimized.resizeSide}px)`);return}e.Dt(`Optimized media from ${$(t.originalSize)}MB to ${$(t.optimized.optimizedSize)}MB (side≤${t.optimized.resizeSide}px, q=${t.optimized.quality})`)}}async function or(t){let{buffer:n,cap:r,meta:i}=t;if((i?.contentType===`image/png`||i?.fileName?.toLowerCase().endsWith(`.png`))&&await e.m(n)){let t=await e.h(n,r);if(t.buffer.length<=r)return{...t,format:`png`};e.Ot()&&e.Dt(`PNG with alpha still exceeds ${$(r,0)}MB after optimization; falling back to JPEG`)}return{...await lr(n,r,i),format:`jpeg`}}async function sr(t,r={}){let{maxBytes:i,optimizeImages:o=!0,ssrfPolicy:s,localRoots:c,sandboxValidated:l=!1,readFile:u}=r;if(t=t.replace(/^\s*MEDIA\s*:\s*/i,``),t.startsWith(`file://`))try{t=(0,a.fileURLToPath)(t)}catch{throw new Q(`invalid-file-url`,`Invalid file:// URL: ${t}`)}let d=async(e,t,n)=>{let r=e.length,i=await or({buffer:e,cap:t,meta:n});if(ar({originalSize:r,optimized:i}),i.buffer.length>t)throw Error(nr(`Media`,t,i.buffer.length));let a=i.format===`png`?`image/png`:`image/jpeg`,o=i.format===`jpeg`&&n&&rr(n)?ir(n.fileName):n?.fileName;return{buffer:i.buffer,contentType:a,kind:`image`,fileName:o}},f=async t=>{let n=i===void 0?e.x(t.kind??`document`):i;if(t.kind===`image`){let e=t.contentType===`image/gif`;if(e||!o){if(t.buffer.length>n)throw Error(tr(e?`GIF`:`Media`,n,t.buffer.length));return{buffer:t.buffer,contentType:t.contentType,kind:t.kind,fileName:t.fileName}}return{...await d(t.buffer,n,{contentType:t.contentType,fileName:t.fileName})}}if(t.buffer.length>n)throw Error(tr(`Media`,n,t.buffer.length));return{buffer:t.buffer,contentType:t.contentType??void 0,kind:t.kind,fileName:t.fileName}};if(/^https?:\/\//i.test(t)){let n=e.x(`document`),{buffer:r,contentType:a,fileName:c}=await Gn({url:t,maxBytes:i===void 0?n:o?Math.max(i,n):i,ssrfPolicy:s});return await f({buffer:r,contentType:a,kind:e.b(a),fileName:c})}if(t.startsWith(`~`)&&(t=e.bt(t)),(l||c===`any`)&&!u)throw new Q(`unsafe-bypass`,`Refusing localRoots bypass without readFile override. Use sandboxValidated with readFile, or pass explicit localRoots.`);l||c===`any`||await Qn(t,c);let p;if(u)p=await u(t);else try{p=(await e.C({filePath:t})).buffer}catch(n){throw n instanceof e.S?n.code===`not-found`?new Q(`not-found`,`Local media file not found: ${t}`,{cause:n}):n.code===`not-file`?new Q(`not-file`,`Local media path is not a file: ${t}`,{cause:n}):new Q(`invalid-path`,`Local media path is not safe to read: ${t}`,{cause:n}):n}let m=await e.v({buffer:p,filePath:t}),h=e.b(m),g=n.default.basename(t)||void 0;if(g&&!n.default.extname(g)&&m){let t=e.y(m);t&&(g=`${g}${t}`)}return await f({buffer:p,contentType:m,kind:h,fileName:g})}async function cr(e,t,n){return await sr(e,Xn({maxBytesOrOptions:t,options:n,optimizeImages:!0}))}async function lr(t,n,r={}){let i=t;if(rr(r))try{i=await e.p(t)}catch(e){throw Error(`HEIC image conversion failed: ${String(e)}`,{cause:e})}let a=[2048,1536,1280,1024,800],o=[80,70,60,50,40],s=null;for(let t of a)for(let r of o)try{let a=await e.g({buffer:i,maxSide:t,quality:r,withoutEnlargement:!0}),o=a.length;if((!s||o<s.size)&&(s={buffer:a,size:o,resizeSide:t,quality:r}),o<=n)return{buffer:a,optimizedSize:o,resizeSide:t,quality:r}}catch{}if(s)return{buffer:s.buffer,optimizedSize:s.size,resizeSide:s.resizeSide,quality:s.quality};throw Error(`Failed to optimize image`)}async function ur(e,t={}){return await cr(e,{maxBytes:t.maxBytes,localRoots:t.mediaLocalRoots})}function dr(t){let n=e.wt(t.accountId);return{accountId:n,readAllowFromStore:()=>t.core.channel.pairing.readAllowFromStore({channel:t.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>t.core.channel.pairing.readAllowFromStore({channel:n,accountId:e.wt(r)}),upsertPairingRequest:e=>t.core.channel.pairing.upsertPairingRequest({channel:t.channel,accountId:n,...e})}}exports.BlockStreamingCoalesceSchema=e.R,exports.DEFAULT_ACCOUNT_ID=e.Ct,exports.DEFAULT_GROUP_HISTORY_LIMIT=50,exports.DM_GROUP_ACCESS_REASON=Y,exports.DmPolicySchema=e.z,exports.GroupPolicySchema=e.B,exports.MarkdownConfigSchema=e.V,exports.applyAccountNameToChannelSection=Et,exports.applySetupAccountConfigPatch=Ot,exports.buildAgentMediaPayload=An,exports.buildChannelConfigSchema=mt,exports.buildComputedAccountStatusSnapshot=Ft,exports.buildModelsProviderData=nt,exports.buildPendingHistoryContextFromMap=ne,exports.buildSecretInputSchema=Qt,exports.buildSingleChannelSecretPromptState=R,exports.clearHistoryEntriesIfEnabled=ie,exports.createAccountListHelpers=e.ct,exports.createAccountStatusSink=Nt,exports.createDedupeCache=en,exports.createReplyPrefixOptions=Ut,exports.createScopedPairingAccess=dr,exports.createTypingCallbacks=Kt,exports.deleteAccountFromConfigSection=e.ot,exports.emptyPluginConfigSchema=nn,exports.evaluateSenderGroupAccessForPolicy=Tn,exports.formatInboundFromLabel=l,exports.formatPairingApproveHint=e.at,exports.hasConfiguredSecretInput=e.ut,exports.isDangerousNameMatchingEnabled=qt,exports.isLoopbackHost=e.k,exports.isTrustedProxyAddress=e.A,exports.listSkillCommandsForAgents=Ce,exports.loadOutboundMediaFromUrl=ur,exports.loadSessionStore=e.u,exports.logInboundDrop=Ee,exports.logTypingFailure=De,exports.migrateBaseNameToDefaultAccount=Dt,exports.normalizeAccountId=e.wt,exports.normalizeProviderId=e.r,exports.normalizeResolvedSecretInputString=e.ft,exports.normalizeSecretInputString=e.pt,exports.parseStrictPositiveInteger=e.d,exports.promptAccountId=L,exports.promptSingleChannelSecretInput=z,exports.rawDataToString=e._,exports.readStoreAllowFromForDmPolicy=Dn,exports.recordPendingHistoryEntryIfEnabled=te,exports.registerPluginHttpRoute=tn,exports.requireOpenAllowFrom=e.H,exports.resolveAccountIdForConfigure=At,exports.resolveAllowlistMatchSimple=p,exports.resolveAllowlistProviderRuntimeGroupPolicy=Xt,exports.resolveChannelMediaMaxBytes=ht,exports.resolveClientIp=e.j,exports.resolveControlCommandGate=Te,exports.resolveDefaultGroupPolicy=Yt,exports.resolveDmGroupAccessWithLists=kn,exports.resolveEffectiveAllowFromLists=En,exports.resolveStorePath=e.f,exports.resolveStoredModelOverride=ft,exports.resolveThreadSessionKeys=e.St,exports.runSingleChannelSecretStep=Mt,exports.setAccountEnabledInConfigSection=e.st,exports.warnMissingProviderGroupPolicyFallbackOnce=Zt;
|
|
12
|
+
`),`Reference check failed`)}}}async function St(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}async function Ct(t){let n=t.listAccountIds(t.cfg),r=t.currentId?.trim()||t.defaultAccountId||`default`,i=await t.prompter.select({message:`${t.label} account`,options:[...n.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:r});if(i!==`__new__`)return e.wt(i);let a=await t.prompter.text({message:`New ${t.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),o=e.wt(String(a));return String(a).trim()!==o&&await t.prompter.note(`Normalized account id to "${o}".`,`${t.label} account`),o}function wt(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function Tt(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:wt(e.cfg,e.channelKey)}function Et(t){let n=t.name?.trim();if(!n)return t.cfg;let r=e.wt(t.accountId),i=t.cfg.channels?.[t.channelKey],a=typeof i==`object`&&i?i:void 0;if(!Tt({cfg:t.cfg,channelKey:t.channelKey,accountId:r,alwaysUseAccounts:t.alwaysUseAccounts})&&r===`default`){let e=a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...e,name:n}}}}let o=a?.accounts??{},s=o[r]??{},c=r===`default`?(({name:e,...t})=>t)(a??{}):a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...c,accounts:{...o,[r]:{...s,name:n}}}}}}function Dt(t){if(t.alwaysUseAccounts)return t.cfg;let n=t.cfg.channels?.[t.channelKey],r=n?.name?.trim();if(!r)return t.cfg;let i={...n?.accounts},a=i.default??{};a.name||(i[e.Ct]={...a,name:r});let{name:o,...s}=n??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...s,accounts:i}}}}function Ot(e){return kt({cfg:e.cfg,channelKey:e.channelKey,accountId:e.accountId,patch:e.patch})}function kt(t){let n=e.wt(t.accountId),r=t.cfg.channels?.[t.channelKey],i=typeof r==`object`&&r?r:void 0,a=t.ensureChannelEnabled??!0,o=t.ensureAccountEnabled??a,s=t.patch,c=t.accountPatch??s;if(n===`default`)return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...i,...a?{enabled:!0}:{},...s}}};let l=i?.accounts??{},u=l[n]??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...i,...a?{enabled:!0}:{},accounts:{...l,[n]:{...u,...o?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...c}}}}}}const L=async e=>await Ct(e);async function At(t){let n=t.accountOverride?.trim(),r=n?e.wt(n):t.defaultAccountId;return t.shouldPromptAccountIds&&!n&&(r=await L({cfg:t.cfg,prompter:t.prompter,label:t.label,currentId:r,listAccountIds:t.listAccountIds,defaultAccountId:t.defaultAccountId})),r}function R(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function jt(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function Mt(e){let t=R({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await z({cfg:e.cfg,prompter:e.prompter,providerHint:e.providerHint,credentialLabel:e.credentialLabel,secretInputMode:e.secretInputMode,accountConfigured:t.accountConfigured,canUseEnv:t.canUseEnv,hasConfigToken:t.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt,preferredEnvVar:e.preferredEnvVar});return n.action===`use-env`?{cfg:e.applyUseEnv?await e.applyUseEnv(e.cfg):e.cfg,action:n.action,resolvedValue:e.envValue?.trim()||void 0}:n.action===`set`?{cfg:e.applySet?await e.applySet(e.cfg,n.value,n.resolvedValue):e.cfg,action:n.action,resolvedValue:n.resolvedValue}:{cfg:e.cfg,action:n.action}}async function z(e){if(await St({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await jt({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await xt({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}function Nt(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function Pt(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...It({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function Ft(e){let{accountId:t,name:n,enabled:r,configured:i,runtime:a,probe:o}=e;return Pt({account:{accountId:t,name:n,enabled:r,configured:i},runtime:a,probe:o})}function It(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}function B(t,n){return e.ht(t,n)?.identity}function V(e,t){let n=B(e,t)?.name?.trim();if(n)return`[${n}]`}function Lt(e,t){return B(e,t)?.name?.trim()||void 0}function Rt(e,t,n){let r=n?.configured??e.messages?.messagePrefix;return r===void 0?n?.hasAllowFrom===!0?``:V(e,t)??n?.fallback??`[openclaw]`:r}function H(e,t){let n=e.channels?.[t];return typeof n==`object`&&n?n:void 0}function zt(e,t,n){if(n?.channel&&n?.accountId){let r=(H(e,n.channel)?.accounts)?.[n.accountId]?.responsePrefix;if(r!==void 0)return r===`auto`?V(e,t):r}if(n?.channel){let r=H(e,n.channel)?.responsePrefix;if(r!==void 0)return r===`auto`?V(e,t):r}let r=e.messages?.responsePrefix;if(r!==void 0)return r===`auto`?V(e,t):r}function Bt(e,t,n){return{messagePrefix:Rt(e,t,{hasAllowFrom:n?.hasAllowFrom,fallback:n?.fallbackMessagePrefix}),responsePrefix:zt(e,t,{channel:n?.channel,accountId:n?.accountId})}}function Vt(e){let t=e.lastIndexOf(`/`);return(t>=0?e.slice(t+1):e).replace(/-\d{8}$/,``).replace(/-latest$/,``)}function Ht(e){let{cfg:t,agentId:n}=e,r={identityName:Lt(t,n)};return{prefixContext:r,responsePrefix:Bt(t,n,{channel:e.channel,accountId:e.accountId}).responsePrefix,responsePrefixContextProvider:()=>r,onModelSelected:e=>{r.provider=e.provider,r.model=Vt(e.model),r.modelFull=`${e.provider}/${e.model}`,r.thinkingLevel=e.thinkLevel??`off`}}}function Ut(e){let{responsePrefix:t,responsePrefixContextProvider:n,onModelSelected:r}=Ht(e);return{responsePrefix:t,responsePrefixContextProvider:n,onModelSelected:r}}function Wt(e){let t,n=!1,r=async()=>{if(!n){n=!0;try{await e.onTick()}finally{n=!1}}};return{tick:r,start:()=>{e.intervalMs<=0||t||(t=setInterval(()=>{r()},e.intervalMs))},stop:()=>{t&&(clearInterval(t),t=void 0,n=!1)},isRunning:()=>t!==void 0}}function Gt(e){let t=typeof e.maxConsecutiveFailures==`number`&&e.maxConsecutiveFailures>0?Math.floor(e.maxConsecutiveFailures):void 0,n=0,r=!1,i=()=>e.isSealed()||r?!0:e.shouldBlock?.()===!0;return{run:async a=>{if(i())return`skipped`;try{return await a(),n=0,`started`}catch(i){if(n+=1,e.onStartError?.(i),e.rethrowOnError)throw i;return t&&n>=t?(r=!0,e.onTrip?.(),`tripped`):`failed`}},reset:()=>{n=0,r=!1},isTripped:()=>r}}function Kt(e){let t=e.stop,n=e.keepaliveIntervalMs??3e3,r=Math.max(1,e.maxConsecutiveFailures??2),i=e.maxDurationMs??6e4,a=!1,o=!1,s,c=Gt({isSealed:()=>o,onStartError:e.onStartError,maxConsecutiveFailures:r,onTrip:()=>{u.stop()}}),l=async()=>{await c.run(()=>e.start())},u=Wt({intervalMs:n,onTick:l}),d=()=>{i<=0||(f(),s=setTimeout(()=>{o||(console.warn(`[typing] TTL exceeded (${i}ms), auto-stopping typing indicator`),m())},i))},f=()=>{s&&=(clearTimeout(s),void 0)},p=async()=>{o||(a=!1,c.reset(),u.stop(),f(),await l(),!c.isTripped()&&(u.start(),d()))},m=()=>{o=!0,u.stop(),f(),!(!t||a)&&(a=!0,t().catch(t=>(e.onStopError??e.onStartError)(t)))};return{onReplyStart:p,onIdle:m,onCleanup:m}}function qt(e){return e?.dangerouslyAllowNameMatching===!0}function Jt(e){let t=e.configuredFallbackPolicy??`open`,n=e.missingProviderFallbackPolicy??`allowlist`;return{groupPolicy:e.providerConfigPresent?e.groupPolicy??e.defaultGroupPolicy??t:e.groupPolicy??n,providerMissingFallbackApplied:!e.providerConfigPresent&&e.groupPolicy===void 0}}function Yt(e){return e.channels?.defaults?.groupPolicy}function Xt(e){return Jt({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy,configuredFallbackPolicy:`allowlist`,missingProviderFallbackPolicy:`allowlist`})}const U=new Set;function Zt(e){if(!e.providerMissingFallbackApplied)return!1;let t=`${e.providerKey}:${e.accountId??`*`}`;if(U.has(t))return!1;U.add(t);let n=e.blockedLabel?.trim()||`group messages`;return e.log(`${e.providerKey}: channels.${e.providerKey} is missing; defaulting groupPolicy to "allowlist" (${n} blocked until explicitly configured).`),!0}function Qt(){let t=s.z.string().regex(e.X,`Secret reference provider must match /^[a-z][a-z0-9_-]{0,63}$/ (example: "default").`);return s.z.union([s.z.string(),s.z.discriminatedUnion(`source`,[s.z.object({source:s.z.literal(`env`),provider:t,id:s.z.string().regex(e.lt,`Env secret reference id must match /^[A-Z][A-Z0-9_]{0,127}$/ (example: "OPENAI_API_KEY").`)}),s.z.object({source:s.z.literal(`file`),provider:t,id:s.z.string().refine(e.$,`File secret reference id must be an absolute JSON pointer (example: "/providers/openai/apiKey"), or "value" for singleValue mode.`)}),s.z.object({source:s.z.literal(`exec`),provider:t,id:s.z.string().refine(e.Q,e.Z())})])])}function $t(e,t){let n=Math.max(0,Math.floor(t));if(n<=0){e.clear();return}for(;e.size>n;){let t=e.keys().next();if(t.done)break;e.delete(t.value)}}function en(e){let t=Math.max(0,e.ttlMs),n=Math.max(0,Math.floor(e.maxSize)),r=new Map,i=(e,t)=>{r.delete(e),r.set(e,t)},a=e=>{let i=t>0?e-t:void 0;if(i!==void 0)for(let[e,t]of r)t<i&&r.delete(e);if(n<=0){r.clear();return}$t(r,n)},o=(e,n,a)=>{let o=r.get(e);return o===void 0?!1:t>0&&n-o>=t?(r.delete(e),!1):(a&&i(e,n),!0)};return{check:(e,t=Date.now())=>e?o(e,t,!0)?!0:(i(e,t),a(t),!1):!1,peek:(e,t=Date.now())=>e?o(e,t,!1):!1,clear:()=>{r.clear()},size:()=>r.size}}function tn(t){let n=t.registry??e.nt(),r=n.httpRoutes??[];n.httpRoutes=r;let i=e.it(t.path,t.fallbackPath),a=t.accountId?` for account "${t.accountId}"`:``;if(!i)return t.log?.(`plugin: webhook path missing${a}`),()=>{};let o=t.match??`exact`,s=e.rt(r,{path:i,match:o});if(s&&s.auth!==t.auth)return t.log?.(`plugin: route overlap denied at ${i} (${o}, ${t.auth})${a}; overlaps ${s.path} (${s.match}, ${s.auth}) owned by ${s.pluginId??`unknown-plugin`} (${s.source??`unknown-source`})`),()=>{};let c=r.findIndex(e=>e.path===i&&e.match===o);if(c>=0){let e=r[c];if(!e)return()=>{};if(!t.replaceExisting)return t.log?.(`plugin: route conflict at ${i} (${o})${a}; owned by ${e.pluginId??`unknown-plugin`} (${e.source??`unknown-source`})`),()=>{};if(e.pluginId&&t.pluginId&&e.pluginId!==t.pluginId)return t.log?.(`plugin: route replacement denied for ${i} (${o})${a}; owned by ${e.pluginId}`),()=>{};let n=t.pluginId?` (${t.pluginId})`:``;t.log?.(`plugin: replacing stale webhook path ${i} (${o})${a}${n}`),r.splice(c,1)}let l={path:i,handler:t.handler,auth:t.auth,match:o,pluginId:t.pluginId,source:t.source};return r.push(l),()=>{let e=r.indexOf(l);e>=0&&r.splice(e,1)}}function W(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function nn(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?W(`expected config object`):Object.keys(e).length>0?W(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function rn(e){let t=e.dmPolicy===`allowlist`?[]:e.storeAllowFrom??[];return[...e.allowFrom??[],...t].map(e=>String(e).trim()).filter(Boolean)}function an(e){return((Array.isArray(e.groupAllowFrom)&&e.groupAllowFrom.length>0?e.groupAllowFrom:void 0)||(e.fallbackToAllowFrom===!1?[]:e.allowFrom??[])).map(e=>String(e).trim()).filter(Boolean)}function on(t){return e.J(t)?.pairing??null}async function sn(n,r){try{let i=e.xt(await t.default.promises.readFile(n,`utf-8`));return i==null?{value:r,exists:!0}:{value:i,exists:!0}}catch(e){return e.code,{value:r,exists:!1}}}const G=new Map;function K(t=process.env){return e.jt(t,e.Mt(t,()=>e.Nt(t,r.default.homedir)))}function cn(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing channel`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing channel`);return n}function ln(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing account id`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing account id`);return n}function q(e,t=process.env,r){let i=cn(e),a=typeof r==`string`?r.trim():``;return a?n.default.join(K(t),`${i}-${ln(a)}-allowFrom.json`):n.default.join(K(t),`${i}-allowFrom.json`)}async function un(e,t){return await sn(e,t)}function dn(e){return e?.trim().toLowerCase()||``}function fn(e){return!e||e===`default`}function pn(e){return dn(e)||`default`}function mn(e,t){let n=t.trim();if(!n||n===`*`)return``;let r=on(e),i=r?.normalizeAllowEntry?r.normalizeAllowEntry(n):n;return String(i).trim()}function hn(e,t){return gn((Array.isArray(t.allowFrom)?t.allowFrom:[]).map(t=>mn(e,String(t))).filter(Boolean))}function gn(e){let t=new Set,n=[];for(let r of e){let e=String(r).trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}async function J(e,t){return(await xn(e,t)).entries}function _n(e){return{exists:e.exists,mtimeMs:e.mtimeMs,size:e.size,entries:e.entries.slice()}}function vn(e,t){G.set(e,_n(t))}function yn(e){let t=G.get(e.filePath);return!t||t.exists!==e.exists||e.exists&&(t.mtimeMs!==e.mtimeMs||t.size!==e.size)?null:_n(t)}function bn(e,t){let n=yn({filePath:e,exists:!!t,mtimeMs:t?.mtimeMs??null,size:t?.size??null});return n?{entries:n.entries,exists:n.exists}:t?null:(vn(e,{exists:!1,mtimeMs:null,size:null,entries:[]}),{entries:[],exists:!1})}async function xn(e,n){let r=null;try{r=await t.default.promises.stat(n)}catch(e){if(e.code!==`ENOENT`)throw e}let i=bn(n,r);if(i)return i;if(!r)return{entries:[],exists:!1};let{value:a,exists:o}=await un(n,{version:1,allowFrom:[]}),s=hn(e,a);return vn(n,{exists:o,mtimeMs:r.mtimeMs,size:r.size,entries:s}),{entries:s,exists:o}}async function Sn(e){let t=q(e.channel,e.env,e.accountId);return await J(e.channel,t)}async function Cn(e,t=process.env,n){let r=pn(n);if(!fn(r))return await Sn({channel:e,env:t,accountId:r});let i=await J(e,q(e,t,r)),a=await J(e,q(e,t));return gn([...i,...a])}function wn(e){if(e.groupPolicy===`disabled`)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`disabled`};if(e.groupPolicy===`allowlist`){if(e.requireMatchInput&&!e.hasMatchInput)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`missing_match_input`};if(!e.allowlistConfigured)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`empty_allowlist`};if(!e.allowlistMatched)return{allowed:!1,groupPolicy:e.groupPolicy,reason:`not_allowlisted`}}return{allowed:!0,groupPolicy:e.groupPolicy,reason:`allowed`}}function Tn(e){if(e.groupPolicy===`disabled`)return{allowed:!1,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`disabled`};if(e.groupPolicy===`allowlist`){if(e.groupAllowFrom.length===0)return{allowed:!1,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`empty_allowlist`};if(!e.isSenderAllowed(e.senderId,e.groupAllowFrom))return{allowed:!1,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`sender_not_allowlisted`}}return{allowed:!0,groupPolicy:e.groupPolicy,providerMissingFallbackApplied:!!e.providerMissingFallbackApplied,reason:`allowed`}}function En(t){let n=Array.isArray(t.allowFrom)?t.allowFrom:void 0,r=Array.isArray(t.groupAllowFrom)?t.groupAllowFrom:void 0;return{effectiveAllowFrom:e.vt(rn({allowFrom:n,storeAllowFrom:Array.isArray(t.storeAllowFrom)?t.storeAllowFrom:void 0,dmPolicy:t.dmPolicy??void 0})),effectiveGroupAllowFrom:e.vt(an({allowFrom:n,groupAllowFrom:r,fallbackToAllowFrom:t.groupAllowFromFallbackToAllowFrom??void 0}))}}const Y={GROUP_POLICY_ALLOWED:`group_policy_allowed`,GROUP_POLICY_DISABLED:`group_policy_disabled`,GROUP_POLICY_EMPTY_ALLOWLIST:`group_policy_empty_allowlist`,GROUP_POLICY_NOT_ALLOWLISTED:`group_policy_not_allowlisted`,DM_POLICY_OPEN:`dm_policy_open`,DM_POLICY_DISABLED:`dm_policy_disabled`,DM_POLICY_ALLOWLISTED:`dm_policy_allowlisted`,DM_POLICY_PAIRING_REQUIRED:`dm_policy_pairing_required`,DM_POLICY_NOT_ALLOWLISTED:`dm_policy_not_allowlisted`};async function Dn(e){return e.shouldRead===!1||e.dmPolicy===`allowlist`?[]:await(e.readStore??((e,t)=>Cn(e,process.env,t)))(e.provider,e.accountId).catch(()=>[])}function On(t){let n=t.dmPolicy??`pairing`,r=t.groupPolicy===`open`||t.groupPolicy===`disabled`?t.groupPolicy:`allowlist`,i=e.vt(t.effectiveAllowFrom),a=e.vt(t.effectiveGroupAllowFrom);if(t.isGroup){let e=wn({groupPolicy:r,allowlistConfigured:a.length>0,allowlistMatched:t.isSenderAllowed(a)});if(!e.allowed){if(e.reason===`disabled`)return{decision:`block`,reasonCode:Y.GROUP_POLICY_DISABLED,reason:`groupPolicy=disabled`};if(e.reason===`empty_allowlist`)return{decision:`block`,reasonCode:Y.GROUP_POLICY_EMPTY_ALLOWLIST,reason:`groupPolicy=allowlist (empty allowlist)`};if(e.reason===`not_allowlisted`)return{decision:`block`,reasonCode:Y.GROUP_POLICY_NOT_ALLOWLISTED,reason:`groupPolicy=allowlist (not allowlisted)`}}return{decision:`allow`,reasonCode:Y.GROUP_POLICY_ALLOWED,reason:`groupPolicy=${r}`}}return n===`disabled`?{decision:`block`,reasonCode:Y.DM_POLICY_DISABLED,reason:`dmPolicy=disabled`}:n===`open`?{decision:`allow`,reasonCode:Y.DM_POLICY_OPEN,reason:`dmPolicy=open`}:t.isSenderAllowed(i)?{decision:`allow`,reasonCode:Y.DM_POLICY_ALLOWLISTED,reason:`dmPolicy=${n} (allowlisted)`}:n===`pairing`?{decision:`pairing`,reasonCode:Y.DM_POLICY_PAIRING_REQUIRED,reason:`dmPolicy=pairing (not allowlisted)`}:{decision:`block`,reasonCode:Y.DM_POLICY_NOT_ALLOWLISTED,reason:`dmPolicy=${n} (not allowlisted)`}}function kn(e){let{effectiveAllowFrom:t,effectiveGroupAllowFrom:n}=En({allowFrom:e.allowFrom,groupAllowFrom:e.groupAllowFrom,storeAllowFrom:e.storeAllowFrom,dmPolicy:e.dmPolicy,groupAllowFromFallbackToAllowFrom:e.groupAllowFromFallbackToAllowFrom});return{...On({isGroup:e.isGroup,dmPolicy:e.dmPolicy,groupPolicy:e.groupPolicy,effectiveAllowFrom:t,effectiveGroupAllowFrom:n,isSenderAllowed:e.isSenderAllowed}),effectiveAllowFrom:t,effectiveGroupAllowFrom:n}}function An(e){let t=e[0],n=e.map(e=>e.path),r=e.map(e=>e.contentType).filter(Boolean);return{MediaPath:t?.path,MediaType:t?.contentType??void 0,MediaUrl:t?.path,MediaPaths:n.length>0?n:void 0,MediaUrls:n.length>0?n:void 0,MediaTypes:r.length>0?r:void 0}}function jn(){this.abort()}function Mn(e){return jn.bind(e)}const X={STRICT:`strict`,TRUSTED_ENV_PROXY:`trusted_env_proxy`},Nn=new Set([`accept`,`accept-encoding`,`accept-language`,`cache-control`,`content-language`,`content-type`,`if-match`,`if-modified-since`,`if-none-match`,`if-unmodified-since`,`pragma`,`range`,`user-agent`]);function Pn(e){return{...e,mode:X.STRICT}}function Fn(e){return e.mode?e.mode:e.proxy===`env`&&e.dangerouslyAllowEnvProxyWithoutPinnedDns===!0?X.TRUSTED_ENV_PROXY:X.STRICT}function In(e){return e===301||e===302||e===303||e===307||e===308}function Ln(e){if(!e?.headers)return e;let t=new Headers(e.headers),n=new Headers;for(let[e,r]of t.entries())Nn.has(e.toLowerCase())&&n.set(e,r);return{...e,headers:n}}function Rn(e){let{timeoutMs:t,signal:n}=e;if(!t&&!n)return{signal:void 0,cleanup:()=>{}};if(!t)return{signal:n,cleanup:()=>{}};let r=new AbortController,i=setTimeout(r.abort.bind(r),t),a=Mn(r);return n&&(n.aborted?r.abort():n.addEventListener(`abort`,a,{once:!0})),{signal:r.signal,cleanup:()=>{clearTimeout(i),n&&n.removeEventListener(`abort`,a)}}}async function zn(t){let n=t.fetchImpl??globalThis.fetch;if(!n)throw Error(`fetch is not available`);let r=typeof t.maxRedirects==`number`&&Number.isFinite(t.maxRedirects)?Math.max(0,Math.floor(t.maxRedirects)):3,i=Fn(t),{signal:a,cleanup:o}=Rn({timeoutMs:t.timeoutMs,signal:t.signal}),s=!1,l=async t=>{s||(s=!0,o(),await e.E(t??void 0))},u=new Set,d=t.url,f=t.init?{...t.init}:void 0,p=0;for(;;){let o;try{o=new URL(d)}catch{throw await l(),Error(`Invalid URL: must be http or https`)}if(![`http:`,`https:`].includes(o.protocol))throw await l(),Error(`Invalid URL: must be http or https`);let s=null;try{let m=await e.O(o.hostname,{lookupFn:t.lookupFn,policy:t.policy});i===X.TRUSTED_ENV_PROXY&&e.w()?s=new c.EnvHttpProxyAgent:t.pinDns!==!1&&(s=e.D(m));let h={...f?{...f}:{},redirect:`manual`,...s?{dispatcher:s}:{},...a?{signal:a}:{}},g=await n(o.toString(),h);if(In(g.status)){let t=g.headers.get(`location`);if(!t)throw await l(s),Error(`Redirect missing location header (${g.status})`);if(p+=1,p>r)throw await l(s),Error(`Too many redirects (limit: ${r})`);let n=new URL(t,o),i=n.toString();if(u.has(i))throw await l(s),Error(`Redirect loop detected`);n.origin!==o.origin&&(f=Ln(f)),u.add(i),g.body?.cancel(),await e.E(s),d=i;continue}return{response:g,finalUrl:d,release:async()=>l(s)}}catch(n){throw n instanceof e.T&&e.P(`security: blocked URL fetch (${t.auditContext??`url-fetch`}) target=${o.origin}${o.pathname} reason=${n.message}`),await l(s),n}}}async function Bn(e,t){let n,r=!1;return await new Promise((i,a)=>{let o=()=>{n!==void 0&&(clearTimeout(n),n=void 0)};n=setTimeout(()=>{r=!0,o(),e.cancel().catch(()=>void 0),a(Error(`Media download stalled: no data received for ${t}ms`))},t),e.read().then(e=>{o(),r||i(e)},e=>{o(),r||a(e)})})}async function Vn(e,t,n){let r=n?.onOverflow??(e=>Error(`Content too large: ${e.size} bytes (limit: ${e.maxBytes} bytes)`)),i=n?.chunkTimeoutMs,a=e.body;if(!a||typeof a.getReader!=`function`){let n=Buffer.from(await e.arrayBuffer());if(n.length>t)throw r({size:n.length,maxBytes:t,res:e});return n}let o=a.getReader(),s=[],c=0;try{for(;;){let{done:n,value:a}=i?await Bn(o,i):await o.read();if(n)break;if(a?.length){if(c+=a.length,c>t){try{await o.cancel()}catch{}throw r({size:c,maxBytes:t,res:e})}s.push(a)}}}finally{try{o.releaseLock()}catch{}}return Buffer.concat(s.map(e=>Buffer.from(e)),c)}var Z=class extends Error{constructor(e,t){super(t),this.code=e,this.name=`MediaFetchError`}};function Hn(e){return e.replace(/^["']|["']$/g,``)}function Un(e){if(!e)return;let t=/filename\*\s*=\s*([^;]+)/i.exec(e);if(t?.[1]){let e=Hn(t[1].trim()),r=e.split(`''`).slice(1).join(`''`)||e;try{return n.default.basename(decodeURIComponent(r))}catch{return n.default.basename(r)}}let r=/filename\s*=\s*([^;]+)/i.exec(e);if(r?.[1])return n.default.basename(Hn(r[1].trim()))}async function Wn(e,t=200){try{let n=await e.text();if(!n)return;let r=n.replace(/\s+/g,` `).trim();return r?r.length<=t?r:`${r.slice(0,t)}…`:void 0}catch{return}}async function Gn(t){let{url:r,fetchImpl:i,requestInit:a,filePathHint:o,maxBytes:s,maxRedirects:c,readIdleTimeoutMs:l,ssrfPolicy:u,lookupFn:d}=t,f,p=r,m=null;try{let e=await zn(Pn({url:r,fetchImpl:i,init:a,maxRedirects:c,policy:u,lookupFn:d}));f=e.response,p=e.finalUrl,m=e.release}catch(e){throw new Z(`fetch_failed`,`Failed to fetch media from ${r}: ${String(e)}`)}try{if(!f.ok){let e=f.statusText?` ${f.statusText}`:``,t=p===r?``:` (redirected to ${p})`,n=`HTTP ${f.status}${e}`;if(!f.body)n=`HTTP ${f.status}${e}; empty response body`;else{let e=await Wn(f);e&&(n+=`; body: ${e}`)}throw new Z(`http_error`,`Failed to fetch media from ${r}${t}: ${n}`)}let t=f.headers.get(`content-length`);if(s&&t){let e=Number(t);if(Number.isFinite(e)&&e>s)throw new Z(`max_bytes`,`Failed to fetch media from ${r}: content length ${e} exceeds maxBytes ${s}`)}let i;try{i=s?await Vn(f,s,{onOverflow:({maxBytes:e,res:t})=>new Z(`max_bytes`,`Failed to fetch media from ${t.url||r}: payload exceeds maxBytes ${e}`),chunkTimeoutMs:l}):Buffer.from(await f.arrayBuffer())}catch(e){throw e instanceof Z?e:new Z(`fetch_failed`,`Failed to fetch media from ${f.url||r}: ${String(e)}`)}let a;try{let e=new URL(p);a=n.default.basename(e.pathname)||void 0}catch{}let c=Un(f.headers.get(`content-disposition`)),u=c||a||(o?n.default.basename(o):void 0),d=c&&n.default.extname(c)?c:o??p,m=await e.v({buffer:i,headerMime:f.headers.get(`content-type`),filePath:d});if(u&&!n.default.extname(u)&&m){let t=e.y(m);t&&(u=`${u}${t}`)}return{buffer:i,contentType:m??void 0,fileName:u}}finally{m&&await m()}}let Kn;function qn(){return Kn||=e.kt(),Kn}function Jn(e,t={}){let r=n.default.resolve(e);return[t.preferredTmpDir??qn(),n.default.join(r,`media`),n.default.join(r,`agents`),n.default.join(r,`workspace`),n.default.join(r,`sandboxes`)]}function Yn(){return Jn(e.Mt())}function Xn(e){return typeof e.maxBytesOrOptions==`number`||e.maxBytesOrOptions===void 0?{maxBytes:e.maxBytesOrOptions,optimizeImages:e.optimizeImages,ssrfPolicy:e.options?.ssrfPolicy,localRoots:e.options?.localRoots}:{...e.maxBytesOrOptions,optimizeImages:e.optimizeImages?e.maxBytesOrOptions.optimizeImages??!0:!1}}var Q=class extends Error{constructor(e,t,n){super(t,n),this.code=e,this.name=`LocalMediaAccessError`}};function Zn(){return Yn()}async function Qn(e,t){if(t===`any`)return;let r=t??Zn(),a;try{a=await i.default.realpath(e)}catch{a=n.default.resolve(e)}if(t===void 0){let t=r.find(e=>n.default.basename(e)===`workspace`);if(t){let r=n.default.dirname(t),i=n.default.relative(r,a);if(i&&!i.startsWith(`..`)&&!n.default.isAbsolute(i)&&(i.split(n.default.sep)[0]??``).startsWith(`workspace-`))throw new Q(`path-not-allowed`,`Local media path is not under an allowed directory: ${e}`)}}for(let e of r){let t;try{t=await i.default.realpath(e)}catch{t=n.default.resolve(e)}if(t===n.default.parse(t).root)throw new Q(`invalid-root`,`Invalid localRoots entry (refuses filesystem root): ${e}. Pass a narrower directory.`);if(a===t||a.startsWith(t+n.default.sep))return}throw new Q(`path-not-allowed`,`Local media path is not under an allowed directory: ${e}`)}const $n=/^image\/hei[cf]$/i,er=/\.(heic|heif)$/i;function $(e,t=2){return(e/1048576).toFixed(t)}function tr(e,t,n){return`${e} exceeds ${$(t,0)}MB limit (got ${$(n)}MB)`}function nr(e,t,n){return`${e} could not be reduced below ${$(t,0)}MB (got ${$(n)}MB)`}function rr(e){return!!(e.contentType&&$n.test(e.contentType.trim())||e.fileName&&er.test(e.fileName.trim()))}function ir(e){if(!e)return;let t=e.trim();if(!t)return e;let r=n.default.parse(t);return!r.ext||er.test(r.ext)?n.default.format({dir:r.dir,name:r.name||t,ext:`.jpg`}):n.default.format({dir:r.dir,name:r.name,ext:`.jpg`})}function ar(t){if(e.Ot()&&!(t.optimized.optimizedSize>=t.originalSize)){if(t.optimized.format===`png`){e.Dt(`Optimized PNG (preserving alpha) from ${$(t.originalSize)}MB to ${$(t.optimized.optimizedSize)}MB (side≤${t.optimized.resizeSide}px)`);return}e.Dt(`Optimized media from ${$(t.originalSize)}MB to ${$(t.optimized.optimizedSize)}MB (side≤${t.optimized.resizeSide}px, q=${t.optimized.quality})`)}}async function or(t){let{buffer:n,cap:r,meta:i}=t;if((i?.contentType===`image/png`||i?.fileName?.toLowerCase().endsWith(`.png`))&&await e.m(n)){let t=await e.h(n,r);if(t.buffer.length<=r)return{...t,format:`png`};e.Ot()&&e.Dt(`PNG with alpha still exceeds ${$(r,0)}MB after optimization; falling back to JPEG`)}return{...await lr(n,r,i),format:`jpeg`}}async function sr(t,r={}){let{maxBytes:i,optimizeImages:o=!0,ssrfPolicy:s,localRoots:c,sandboxValidated:l=!1,readFile:u}=r;if(t=t.replace(/^\s*MEDIA\s*:\s*/i,``),t.startsWith(`file://`))try{t=(0,a.fileURLToPath)(t)}catch{throw new Q(`invalid-file-url`,`Invalid file:// URL: ${t}`)}let d=async(e,t,n)=>{let r=e.length,i=await or({buffer:e,cap:t,meta:n});if(ar({originalSize:r,optimized:i}),i.buffer.length>t)throw Error(nr(`Media`,t,i.buffer.length));let a=i.format===`png`?`image/png`:`image/jpeg`,o=i.format===`jpeg`&&n&&rr(n)?ir(n.fileName):n?.fileName;return{buffer:i.buffer,contentType:a,kind:`image`,fileName:o}},f=async t=>{let n=i===void 0?e.x(t.kind??`document`):i;if(t.kind===`image`){let e=t.contentType===`image/gif`;if(e||!o){if(t.buffer.length>n)throw Error(tr(e?`GIF`:`Media`,n,t.buffer.length));return{buffer:t.buffer,contentType:t.contentType,kind:t.kind,fileName:t.fileName}}return{...await d(t.buffer,n,{contentType:t.contentType,fileName:t.fileName})}}if(t.buffer.length>n)throw Error(tr(`Media`,n,t.buffer.length));return{buffer:t.buffer,contentType:t.contentType??void 0,kind:t.kind,fileName:t.fileName}};if(/^https?:\/\//i.test(t)){let n=e.x(`document`),{buffer:r,contentType:a,fileName:c}=await Gn({url:t,maxBytes:i===void 0?n:o?Math.max(i,n):i,ssrfPolicy:s});return await f({buffer:r,contentType:a,kind:e.b(a),fileName:c})}if(t.startsWith(`~`)&&(t=e.bt(t)),(l||c===`any`)&&!u)throw new Q(`unsafe-bypass`,`Refusing localRoots bypass without readFile override. Use sandboxValidated with readFile, or pass explicit localRoots.`);l||c===`any`||await Qn(t,c);let p;if(u)p=await u(t);else try{p=(await e.C({filePath:t})).buffer}catch(n){throw n instanceof e.S?n.code===`not-found`?new Q(`not-found`,`Local media file not found: ${t}`,{cause:n}):n.code===`not-file`?new Q(`not-file`,`Local media path is not a file: ${t}`,{cause:n}):new Q(`invalid-path`,`Local media path is not safe to read: ${t}`,{cause:n}):n}let m=await e.v({buffer:p,filePath:t}),h=e.b(m),g=n.default.basename(t)||void 0;if(g&&!n.default.extname(g)&&m){let t=e.y(m);t&&(g=`${g}${t}`)}return await f({buffer:p,contentType:m,kind:h,fileName:g})}async function cr(e,t,n){return await sr(e,Xn({maxBytesOrOptions:t,options:n,optimizeImages:!0}))}async function lr(t,n,r={}){let i=t;if(rr(r))try{i=await e.p(t)}catch(e){throw Error(`HEIC image conversion failed: ${String(e)}`,{cause:e})}let a=[2048,1536,1280,1024,800],o=[80,70,60,50,40],s=null;for(let t of a)for(let r of o)try{let a=await e.g({buffer:i,maxSide:t,quality:r,withoutEnlargement:!0}),o=a.length;if((!s||o<s.size)&&(s={buffer:a,size:o,resizeSide:t,quality:r}),o<=n)return{buffer:a,optimizedSize:o,resizeSide:t,quality:r}}catch{}if(s)return{buffer:s.buffer,optimizedSize:s.size,resizeSide:s.resizeSide,quality:s.quality};throw Error(`Failed to optimize image`)}async function ur(e,t={}){return await cr(e,{maxBytes:t.maxBytes,localRoots:t.mediaLocalRoots})}function dr(t){let n=e.wt(t.accountId);return{accountId:n,readAllowFromStore:()=>t.core.channel.pairing.readAllowFromStore({channel:t.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>t.core.channel.pairing.readAllowFromStore({channel:n,accountId:e.wt(r)}),upsertPairingRequest:e=>t.core.channel.pairing.upsertPairingRequest({channel:t.channel,accountId:n,...e})}}exports.BlockStreamingCoalesceSchema=e.R,exports.DEFAULT_ACCOUNT_ID=e.Ct,exports.DEFAULT_GROUP_HISTORY_LIMIT=50,exports.DM_GROUP_ACCESS_REASON=Y,exports.DmPolicySchema=e.z,exports.GroupPolicySchema=e.B,exports.MarkdownConfigSchema=e.V,exports.applyAccountNameToChannelSection=Et,exports.applySetupAccountConfigPatch=Ot,exports.buildAgentMediaPayload=An,exports.buildChannelConfigSchema=mt,exports.buildComputedAccountStatusSnapshot=Ft,exports.buildModelsProviderData=nt,exports.buildPendingHistoryContextFromMap=ne,exports.buildSecretInputSchema=Qt,exports.buildSingleChannelSecretPromptState=R,exports.clearHistoryEntriesIfEnabled=ie,exports.createAccountListHelpers=e.ct,exports.createAccountStatusSink=Nt,exports.createDedupeCache=en,exports.createReplyPrefixOptions=Ut,exports.createScopedPairingAccess=dr,exports.createTypingCallbacks=Kt,exports.deleteAccountFromConfigSection=e.ot,exports.emptyPluginConfigSchema=nn,exports.evaluateSenderGroupAccessForPolicy=Tn,exports.formatInboundFromLabel=l,exports.formatPairingApproveHint=e.at,exports.hasConfiguredSecretInput=e.ut,exports.isDangerousNameMatchingEnabled=qt,exports.isLoopbackHost=e.k,exports.isTrustedProxyAddress=e.A,exports.listSkillCommandsForAgents=Ce,exports.loadOutboundMediaFromUrl=ur,exports.loadSessionStore=e.u,exports.logInboundDrop=Ee,exports.logTypingFailure=De,exports.migrateBaseNameToDefaultAccount=Dt,exports.normalizeAccountId=e.wt,exports.normalizeProviderId=e.r,exports.normalizeResolvedSecretInputString=e.ft,exports.normalizeSecretInputString=e.pt,exports.parseStrictPositiveInteger=e.d,exports.promptAccountId=L,exports.promptSingleChannelSecretInput=z,exports.rawDataToString=e._,exports.readStoreAllowFromForDmPolicy=Dn,exports.recordPendingHistoryEntryIfEnabled=te,exports.registerPluginHttpRoute=tn,exports.requireOpenAllowFrom=e.H,exports.resolveAccountIdForConfigure=At,exports.resolveAllowlistMatchSimple=p,exports.resolveAllowlistProviderRuntimeGroupPolicy=Xt,exports.resolveChannelMediaMaxBytes=ht,exports.resolveClientIp=e.j,exports.resolveControlCommandGate=Te,exports.resolveDefaultGroupPolicy=Yt,exports.resolveDmGroupAccessWithLists=kn,exports.resolveEffectiveAllowFromLists=En,exports.resolveStorePath=e.f,exports.resolveStoredModelOverride=ft,exports.resolveThreadSessionKeys=e.St,exports.runSingleChannelSecretStep=Mt,exports.setAccountEnabledInConfigSection=e.st,exports.warnMissingProviderGroupPolicyFallbackOnce=Zt;
|