@symerian/symi 2.3.3 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts-Cd816n6l.js → accounts-DDuIpcln.js} +7 -7
- package/dist/{accounts-mN_EcgxC.js → accounts-DyJN4_vR.js} +1 -1
- package/dist/{accounts-CokRskCl.js → accounts-bK-Yqdwx.js} +1 -1
- package/dist/{acp-cli-BgyJMtqt.js → acp-cli-Cu4icbJT.js} +6 -6
- package/dist/{agent-scope-BRwEc2pG.js → agent-scope-CgUHAtCo.js} +18 -18
- package/dist/{agents-DjLt6jc3.js → agents-E_Ere0qU.js} +4 -4
- package/dist/{agents.config-u_ibObha.js → agents.config-Cv_wsBXL.js} +2 -2
- package/dist/{agents.config-Dt7B_P5o.js → agents.config-DJTb7Jka.js} +1 -1
- package/dist/{api-key-rotation-CEr3lKih.js → api-key-rotation-CzuPlV2t.js} +1 -1
- package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
- package/dist/{audio-preflight-CjysqO8U.js → audio-preflight-CWnxkaac.js} +28 -28
- package/dist/{audio-preflight-D02HwB-I.js → audio-preflight-O3ASWbaG.js} +4 -4
- package/dist/{audit-BSB9NPSO.js → audit-CrITRV6w.js} +23 -23
- package/dist/{auth-choice-DUUu6Nhg.js → auth-choice-B3D_jLQw.js} +1 -1
- package/dist/{auth-choice-DmSG7c8J.js → auth-choice-D8ynWABO.js} +8 -8
- package/dist/{auth-token-DC5w1WoS.js → auth-token-BnOynwk4.js} +1 -1
- package/dist/{banner-BiAcdT2T.js → banner-ChYzCy5p.js} +1 -1
- package/dist/{bindings-ChzePa8q.js → bindings-DFaVVCsf.js} +1 -1
- package/dist/{browser-cli-C4D9Ql3c.js → browser-cli-BG4qPxpM.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +6 -6
- package/dist/bundled/session-memory/handler.js +6 -6
- package/dist/{call-Dd7-bkfG.js → call-CJaS1iRF.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-vQREpu-n.js → channel-options-BYUiEgev.js} +2 -2
- package/dist/{channel-options-ClfXE1B7.js → channel-options-CMNzHg4p.js} +1 -1
- package/dist/{channel-selection-DjfBv8kq.js → channel-selection-DuWs0Aak.js} +1 -1
- package/dist/{channel-web-y6pd_GHr.js → channel-web-C-HLPbLL.js} +17 -17
- package/dist/{channels-cli-CjYD1_OO.js → channels-cli-CcCmH-Tp.js} +75 -75
- package/dist/{channels-cli-suXRcyfF.js → channels-cli-CyhXPEWq.js} +4 -4
- package/dist/{channels-status-issues-BoH1ZJPN.js → channels-status-issues-B_kBkl_u.js} +1 -1
- package/dist/{chrome-EyvdASWt.js → chrome-BFekevcE.js} +7 -7
- package/dist/{chrome-D2SKJnR7.js → chrome-CDJYxX5a.js} +7 -7
- package/dist/{chrome-r4RThPxq.js → chrome-DtPkPq9T.js} +2 -2
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-B-911QZL.js → cli-Cp-NQ7yu.js} +62 -62
- package/dist/{cli-mbfUlFn3.js → cli-Gcuf3NTF.js} +1 -1
- package/dist/{client-BsrZnuSi.js → client-CQSyCS4M.js} +1 -1
- package/dist/{command-registry-y8CXSD5O.js → command-registry-Cvr_dlLY.js} +9 -9
- package/dist/{commands-CtocZ4Lg.js → commands-BNLCWX6e.js} +1 -1
- package/dist/{commands-registry-BZ0ZSQpM.js → commands-registry-BT0-zzs3.js} +3 -3
- package/dist/{completion-cli-2Mi5hts2.js → completion-cli-DDlYn0ya.js} +2 -2
- package/dist/{completion-cli-BLrwUAyo.js → completion-cli-DaOHSXM3.js} +12 -12
- package/dist/{config-CJMcIRQM.js → config-CHwyw6l5.js} +2 -2
- package/dist/{config-cli-tYZAnvgQ.js → config-cli-BcuAsDOu.js} +1 -1
- package/dist/{config-cli-CF-wdLkO.js → config-cli-CmUPAVUz.js} +4 -4
- package/dist/{config-guard-C1Rs8NZG.js → config-guard-BflmO0t7.js} +12 -12
- package/dist/{config-validation-ChQQVndI.js → config-validation-CmimHAES.js} +1 -1
- package/dist/{configure-si19m30s.js → configure-Ctwt1377.js} +3 -3
- package/dist/{configure-BHKdqhLb.js → configure-OxYdT2hU.js} +15 -15
- package/dist/{control-service-B8H3Bqpv.js → control-service-Bz7rxLWq.js} +4 -4
- package/dist/{control-ui-assets-DqGziq7x.js → control-ui-assets-Z947tKLt.js} +1 -1
- package/dist/{cron-cli-YrMWJCkm.js → cron-cli-DBIlCvp3.js} +10 -10
- package/dist/{daemon-cli-Dx4SXRyp.js → daemon-cli-DscwlsKW.js} +11 -11
- package/dist/{daemon-runtime--RiRUx_2.js → daemon-runtime-2mwX-jqj.js} +10 -10
- package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
- package/dist/{deliver-Um8yyhRA.js → deliver-CceEhg3d.js} +7 -7
- package/dist/{deliver-D1ZN6-fl.js → deliver-CvCK5Mm9.js} +1 -1
- package/dist/{devices-cli-DAJ84AOe.js → devices-cli-Dds-25Ve.js} +6 -6
- package/dist/{diagnostics-D2yUMZN1.js → diagnostics-BAMlsVVX.js} +5 -5
- package/dist/{directory-cli-C4h8KQLH.js → directory-cli-CpUByQew.js} +7 -7
- package/dist/{dm-policy-shared-BCSw0GJS.js → dm-policy-shared-Bh3TbexU.js} +2 -2
- package/dist/{dns-cli-s0ZWvTPm.js → dns-cli-Beyzdh3S.js} +3 -3
- package/dist/{dock-BYiRZSgZ.js → dock-BhS32F6E.js} +4 -4
- package/dist/{docs-cli-BfPfHTDs.js → docs-cli-BpnEOtJi.js} +1 -1
- package/dist/{doctor-completion-C19QYsQN.js → doctor-completion-D7ShsgUp.js} +2 -2
- package/dist/{doctor-completion-Dn_Kn4gz.js → doctor-completion-Dw78bQaQ.js} +1 -1
- package/dist/{doctor-config-flow-D05HlWdn.js → doctor-config-flow-QnaBd8kL.js} +10 -10
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Df1lyRyE.js → exec-approvals-cli-BliRl8VB.js} +13 -13
- package/dist/extensionAPI.js +6 -6
- package/dist/{fs-safe-CTDvb1DF.js → fs-safe-CUjO1ca2.js} +6 -6
- package/dist/{gateway-cli-B7khyAHs.js → gateway-cli-Bd7u0krH.js} +126 -121
- package/dist/{gateway-cli-DG_Mdw0H.js → gateway-cli-D7nxPtEc.js} +22 -17
- package/dist/{gateway-rpc-DFeD8pZh.js → gateway-rpc-BxkKeCZ0.js} +1 -1
- package/dist/{glass-ui-ws-BmQAULMj.js → glass-ui-ws-CzH0ikhI.js} +82 -82
- package/dist/{glass-ui-ws-BAub_JoN.js → glass-ui-ws-DBivjzVA.js} +7 -7
- package/dist/{health-CboWXJkq.js → health-BSOMI4B6.js} +1 -1
- package/dist/{health-DkKXiUEF.js → health-rR61mwm3.js} +13 -13
- package/dist/{hooks-cli-DLM_5caf.js → hooks-cli-BbiA-gGi.js} +2 -2
- package/dist/{hooks-cli-BrO_9pas.js → hooks-cli-dS4fMEKE.js} +76 -76
- package/dist/{image-Cp3JDEBB.js → image-B0wGflxA.js} +1 -1
- package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
- package/dist/{image-BiY-PfMh.js → image-D9uvDTrc.js} +3 -3
- package/dist/{image-ops-DYbDWaIA.js → image-ops-1OJMSAUX.js} +10 -10
- package/dist/index.js +72 -72
- package/dist/{inspect-ZJkNX0WL.js → inspect-CllGjsWo.js} +4 -4
- package/dist/{install-safe-path-Qqr_t_tH.js → install-safe-path-tCLiMpmO.js} +11 -11
- package/dist/{installs-O9KlRu9h.js → installs-C1Cebk97.js} +10 -10
- package/dist/{ir-Dt4hOzxG.js → ir-DZam9q5M.js} +6 -6
- package/dist/{lifecycle-core-BkPSoGM2.js → lifecycle-core-D6LYXpFj.js} +5 -5
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{local-roots-BBeKX7PX.js → local-roots-aAFLQGkY.js} +2 -2
- package/dist/{login-1sleXoB4.js → login-dIlDkG4X.js} +3 -3
- package/dist/{login-qr-wCWBOMwB.js → login-qr-pbXdFORv.js} +5 -5
- package/dist/{logs-cli-DVeEdUCU.js → logs-cli-xOzIPrHm.js} +7 -7
- package/dist/{manager-C1CfGzZ2.js → manager-D4LJSRyZ.js} +13 -13
- package/dist/{markdown-tables-ZwP14ydw.js → markdown-tables-CEbN0fEm.js} +1 -1
- package/dist/{memory-cli-lk6fRiwy.js → memory-cli-Ca5r9AUb.js} +14 -14
- package/dist/{model-catalog-C3NLvWC2.js → model-catalog-DvBJ8pMD.js} +4 -4
- package/dist/{model-picker-LKZLY2DL.js → model-picker-Ddo3jHe-.js} +3 -3
- package/dist/{model-selection-X1oLh3CE.js → model-selection-CyFvYcRt.js} +9 -9
- package/dist/{model-CeeOcylL.js → model-tWhwnFf8.js} +1 -1
- package/dist/{models-BmiRYEVd.js → models-DqE1s0YL.js} +2 -2
- package/dist/{models-cli-Tf61I97Q.js → models-cli-6v9jkDxp.js} +3 -3
- package/dist/{models-cli-4vQrbW6G.js → models-cli-BWC7jYp4.js} +72 -72
- package/dist/{models-config-CqDdkHJq.js → models-config-qyOXrOli.js} +7 -7
- package/dist/{node-cli-Jj2LTGzF.js → node-cli-C_G-Q3h-.js} +28 -28
- package/dist/{node-service-CJygtY5M.js → node-service-Cxz4e-Qd.js} +1 -1
- package/dist/{nodes-cli-C43ifECe.js → nodes-cli-BcnuJajV.js} +10 -10
- package/dist/{nodes-screen-C99kfE1u.js → nodes-screen-VBGXKdLk.js} +4 -4
- package/dist/{npm-registry-spec-DR_at_Hp.js → npm-registry-spec-C2JDdSZS.js} +9 -9
- package/dist/{onboard-D8uxVvMq.js → onboard-BUEYf2m9.js} +13 -13
- package/dist/{onboard-FpptSqHZ.js → onboard-Bxoibs4p.js} +2 -2
- package/dist/{onboard-channels-Q_xxgZ8O.js → onboard-channels-C3UYzZNC.js} +1 -1
- package/dist/{onboard-channels-DOKid2w1.js → onboard-channels-af6Cu6fT.js} +5 -5
- package/dist/{onboard-custom-DPJiy9aT.js → onboard-custom-C7O-zfQ1.js} +3 -3
- package/dist/{onboard-helpers-Dixh6cNh.js → onboard-helpers-ZmZYzlq3.js} +8 -8
- package/dist/{onboard-hooks-lsws7g2s.js → onboard-hooks-BAA8CoVv.js} +1 -1
- package/dist/{onboard-remote-B66ZWtkN.js → onboard-remote-zUjD7UtM.js} +1 -1
- package/dist/{onboard-skills-B0IA09ig.js → onboard-skills-BB0YhUmF.js} +4 -4
- package/dist/{onboarding-DhIEUmp5.js → onboarding-CDdMZbov.js} +3 -3
- package/dist/{onboarding-CdlGKa0U.js → onboarding-DW-7o6Ln.js} +13 -13
- package/dist/{onboarding.finalize-CEYLIXkq.js → onboarding.finalize-29jsMLO2.js} +6 -6
- package/dist/{onboarding.finalize-DyBsPxXJ.js → onboarding.finalize-BI70KOeI.js} +74 -74
- package/dist/{onboarding.gateway-config-CCJqI0kw.js → onboarding.gateway-config-CJUgDC6Y.js} +14 -14
- package/dist/{openai-model-default-BJ1IZ3TN.js → openai-model-default-DMjQRsb1.js} +2 -2
- package/dist/{outbound-NJCy0h4x.js → outbound-DB5Zus0-.js} +4 -4
- package/dist/{outbound-attachment-D62E0xDI.js → outbound-attachment-D_QuKi8U.js} +2 -2
- package/dist/{pairing-cli-CcW0ndhB.js → pairing-cli-CBLfGvqW.js} +8 -8
- package/dist/{pairing-labels-27SOKDzJ.js → pairing-labels-2S6x2UoV.js} +1 -1
- package/dist/{pairing-store-B8ktu-6j.js → pairing-store-CK726Dzq.js} +2 -2
- package/dist/{pairing-token-AV-MMfVE.js → pairing-token-CX3NN_qj.js} +7 -7
- package/dist/{paths-CT6jsi4E.js → paths-BBm9fwuG.js} +1 -1
- package/dist/{pi-auth-json-CCneTXUh.js → pi-auth-json-DayrlDg_.js} +3 -3
- package/dist/{pi-embedded-BThV36aG.js → pi-embedded-JXvD5-F-.js} +46 -19
- package/dist/{pi-embedded-wr4HXhzm.js → pi-embedded-PkSwAmVq.js} +46 -19
- package/dist/{pi-embedded-helpers-DO6u9K2t.js → pi-embedded-helpers-CNPyv_ax.js} +6 -6
- package/dist/{pi-embedded-helpers-ag2bosuj.js → pi-embedded-helpers-DLFjnVBb.js} +4 -4
- package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
- package/dist/{pi-tools.policy-juZV2uUv.js → pi-tools.policy-CIDBbw6x.js} +4 -4
- package/dist/{plugin-auto-enable-Bbm7MwFV.js → plugin-auto-enable-BzX1uAKy.js} +2 -2
- package/dist/{plugin-registry-DvWWctC9.js → plugin-registry-B7AdPXfF.js} +1 -1
- package/dist/{plugin-registry-lWWSu9UD.js → plugin-registry-Reem6P3K.js} +3 -3
- package/dist/plugin-sdk/agents/model-token-filter.d.ts +11 -0
- package/dist/plugin-sdk/{channel-web-BnrTC55Y.js → channel-web-CM7A3Y7G.js} +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-kuMxu6Q4.js → reply-CDloTGFF.js} +32 -5
- package/dist/plugin-sdk/{web-TMIhKQyF.js → web-CWNoMlnF.js} +2 -2
- package/dist/{plugins-BAyxWQSz.js → plugins-DKDeQZF0.js} +2 -2
- package/dist/{plugins-cli-wlWRx4Oj.js → plugins-cli-B-6wVg3A.js} +2 -2
- package/dist/{plugins-cli-BHfzYAq6.js → plugins-cli-V8mTTTnD.js} +71 -71
- package/dist/{ports-OZQlocB7.js → ports-BOmtxoTv.js} +2 -2
- package/dist/{ports-b36gHZbA.js → ports-BX0kKI0g.js} +1 -1
- package/dist/{program-CKy7s-bm.js → program-DBtlRiFS.js} +7 -7
- package/dist/{program-context-D4gbh6dg.js → program-context-BHPNVgg2.js} +39 -39
- package/dist/{prompt-select-styled-bh0GLMiQ.js → prompt-select-styled-Bh-zAqW1.js} +4 -4
- package/dist/{prompt-select-styled-DlGPNq9c.js → prompt-select-styled-Cup1c9RJ.js} +38 -38
- package/dist/{provider-auth-helpers-Bd5VVReu.js → provider-auth-helpers-BNmU48Ez.js} +5 -5
- package/dist/{provider-auth-helpers-B-YsKbwc.js → provider-auth-helpers-CiuLdUK3.js} +1 -1
- package/dist/{push-apns-ByyOJyDl.js → push-apns-8VJkVSdh.js} +1 -1
- package/dist/{push-apns-0et2AR44.js → push-apns-9zUNNHgy.js} +4 -4
- package/dist/{pw-ai-Ch7liUOW.js → pw-ai-BnAKvSuw.js} +1 -1
- package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
- package/dist/{pw-ai-MVzi113V.js → pw-ai-DqL87js3.js} +7 -7
- package/dist/{qmd-manager-BP2r8b1D.js → qmd-manager-D85GJrir.js} +18 -18
- package/dist/{qr-cli-17laLZm_.js → qr-cli-jd9LdZpq.js} +3 -3
- package/dist/{register.agent-oKma6YjU.js → register.agent-BtNmleKV.js} +6 -6
- package/dist/{register.agent-Dhijhxr5.js → register.agent-DnglG42G.js} +81 -81
- package/dist/{register.configure-BX8vQ2Np.js → register.configure-CLW9tdE4.js} +6 -6
- package/dist/register.configure-DfQOfV1W.js +147 -0
- package/dist/{register.maintenance-OJCduNdt.js → register.maintenance-BQfMsgo7.js} +8 -8
- package/dist/{register.maintenance-B3TPb969.js → register.maintenance-jFYcRLEN.js} +84 -84
- package/dist/{register.message-D0aswsGo.js → register.message-BhoZYcqM.js} +63 -63
- package/dist/{register.message-CX8C_Fds.js → register.message-DUsBvFSF.js} +2 -2
- package/dist/{register.onboard-CSepiSPt.js → register.onboard-BBwhoeoE.js} +4 -4
- package/dist/{register.onboard-BHTyEs6d.js → register.onboard-DQOkpYBY.js} +74 -74
- package/dist/{register.setup-lZSHKiGQ.js → register.setup-6jlL3L1h.js} +4 -4
- package/dist/{register.setup-uhpgkBjU.js → register.setup-Ca6khTSz.js} +77 -77
- package/dist/{register.status-health-sessions-Cbavf8do.js → register.status-health-sessions-DQDXZYI3.js} +3 -3
- package/dist/{register.status-health-sessions-v1KN3eEp.js → register.status-health-sessions-DsYNMl06.js} +75 -75
- package/dist/{register.subclis-DBEv5xOP.js → register.subclis-DJf3ihsW.js} +9 -9
- package/dist/{replies-BL7IBg12.js → replies-vgss3_QA.js} +1 -1
- package/dist/{reply-DVxU0AMq.js → reply-DSjeqLEz.js} +161 -134
- package/dist/{reply-prefix-BLOOs1aW.js → reply-prefix-CE2YmmsD.js} +1 -1
- package/dist/{resolve-route-BcnaXYvh.js → resolve-route-BMoTaVAH.js} +2 -2
- package/dist/{routes-CE-ohckF.js → routes-Ba9CUQ8M.js} +8 -8
- package/dist/{rpc-wovSCB5v.js → rpc-BfhojW8g.js} +1 -1
- package/dist/{run-main-DspjiCY1.js → run-main-B2coomPj.js} +14 -14
- package/dist/{runner-Cen70krW.js → runner-CUglpiFP.js} +20 -20
- package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
- package/dist/{runner-D0QUGA_X.js → runner-odEv83vv.js} +1 -1
- package/dist/{sandbox-BzNrUHpt.js → sandbox-C-T6hOMv.js} +18 -18
- package/dist/{sandbox-cli-CZrMO34w.js → sandbox-cli-BllVdQzR.js} +20 -20
- package/dist/{security-cli-CeBoEmeN.js → security-cli-BFLtWWHy.js} +36 -36
- package/dist/{send-dH0xroTu.js → send-CPF8hSFp.js} +4 -4
- package/dist/{send-C95ZRvja.js → send-CXxQ_f7L.js} +6 -6
- package/dist/{send-BnuIB59F.js → send-CZr1hVHY.js} +13 -13
- package/dist/{send-BEeuDXqy.js → send-Cutb0ZDY.js} +6 -6
- package/dist/{send-BjdAgYLu.js → send-tanEMpHN.js} +6 -6
- package/dist/{server-context-DUXqnh6l.js → server-context-CEpFjqSk.js} +5 -5
- package/dist/{server-methods-B9alalq5.js → server-methods-DHo5e8Gj.js} +7 -7
- package/dist/{server-methods-BgBq7KRL.js → server-methods-QNBQbsvr.js} +54 -54
- package/dist/{server-node-events-DWG81_Fo.js → server-node-events-CJOo8WcL.js} +2 -2
- package/dist/{server-node-events-BrBsrcCd.js → server-node-events-D_S0NRCQ.js} +63 -63
- package/dist/{service--qMN5DPm.js → service-Cl74hx8J.js} +15 -15
- package/dist/{session-CsIk0Sqq.js → session-DIBTkyvE.js} +2 -2
- package/dist/{sessions-D5a7H247.js → sessions-DgYpBvse.js} +13 -13
- package/dist/{shared-Jm_QdQJQ.js → shared-BJvwnR5z.js} +1 -1
- package/dist/{shared-Gi3l7nlY.js → shared-Knv1hy6h.js} +3 -3
- package/dist/{skill-commands-ZXbEITKi.js → skill-commands-Cxw-jNxU.js} +5 -5
- package/dist/{skill-scanner-CXg9eeyc.js → skill-scanner-CLs8u6vQ.js} +5 -5
- package/dist/{skills-DqQUtOph.js → skills-6jdJQ5ZL.js} +4 -4
- package/dist/{skills-cli-D1JL_utC.js → skills-cli-BZTBLQTt.js} +7 -7
- package/dist/{skills-install-DjcTy3CT.js → skills-install-D67isO1L.js} +3 -3
- package/dist/{skills-status-DS-NZQiq.js → skills-status-CURJKnyY.js} +1 -1
- package/dist/{sqlite-BV5ILFtC.js → sqlite-Dx3J_aSE.js} +12 -12
- package/dist/{status-DxodHhzX.js → status-4DaGE8j5.js} +2 -2
- package/dist/{status-CgPPKk09.js → status-B8yaGk2o.js} +25 -25
- package/dist/{status-DqMwkAnF.js → status-D_J6qcC1.js} +1 -1
- package/dist/{status-CkJV2sl6.js → status-kfEtYX22.js} +3 -3
- package/dist/{status.update-CmGpjKSr.js → status.update-DtwCUTf-.js} +3 -3
- package/dist/{store-DvtcmOKj.js → store-r1DJSDq-.js} +5 -5
- package/dist/{subagent-registry-CBklD0OL.js → subagent-registry-CyW0EDWw.js} +32 -5
- package/dist/{symi-root-MF6_6SCS.js → symi-root-CrGJbkzf.js} +2 -2
- package/dist/{system-cli-Buhvt_H5.js → system-cli-UMsMEurS.js} +11 -11
- package/dist/{systemd-hints-Db0oImvK.js → systemd-hints-BR6gChwm.js} +6 -6
- package/dist/{systemd-linger-BXwqn1jL.js → systemd-linger-aQ75ZlXY.js} +1 -1
- package/dist/{systemd-AhJEsmIk.js → systemd-riq8uNJQ.js} +5 -5
- package/dist/{tables-C38rzF6E.js → tables-BEzT0Da4.js} +1 -1
- package/dist/{target-errors-CCz79CmV.js → target-errors-7AvoVa10.js} +4 -4
- package/dist/{tool-images-B-pqX3nX.js → tool-images-DvUBlqjX.js} +1 -1
- package/dist/{tui-C0A9W969.js → tui-CriznorL.js} +7 -7
- package/dist/{tui-cli-tCnkNdSx.js → tui-cli-CSIdfCTR.js} +28 -28
- package/dist/{update-check-C0oYCI89.js → update-check-CtckACbb.js} +5 -5
- package/dist/{update-cli-BqdgQuYp.js → update-cli-C-ZGqknl.js} +8 -8
- package/dist/{update-cli-DYrpyu4a.js → update-cli-DJupxo-f.js} +94 -94
- package/dist/{update-runner-BgzyPjF5.js → update-runner-AiIhp7fw.js} +15 -15
- package/dist/{update-runner-CmZW3aeK.js → update-runner-BF5UULe-.js} +1 -1
- package/dist/{update-Df4sEKtI.js → update-rw7wJwHd.js} +3 -3
- package/dist/{web-GL_nqURg.js → web-6026eRzJ.js} +1 -1
- package/dist/{web-DNQzo8ao.js → web-6vYYN17n.js} +6 -6
- package/dist/{web-CfZp0Jv6.js → web-CryqKXT4.js} +6 -6
- package/dist/web-HeObJp6A.js +109 -0
- package/dist/{webhooks-cli-Bp-7Rs2Y.js → webhooks-cli-cD58DWAE.js} +4 -4
- package/dist/{whatsapp-actions-CFXNPLco.js → whatsapp-actions-DbcsdOH3.js} +15 -15
- package/dist/{with-timeout-Cs6_LnHB.js → with-timeout-gmK6RciS.js} +1 -1
- package/dist/{workspace-dirs-DKu48umx.js → workspace-dirs-GpkFi6Kw.js} +1 -1
- package/dist/{wsl-BbXxnokd.js → wsl-C4424szg.js} +2 -2
- package/package.json +1 -1
- package/dist/register.configure-BcZ-7Yir.js +0 -147
- package/dist/session-dirs-D3qlvucD.js +0 -18
- package/dist/web-DsCqmzyk.js +0 -109
|
@@ -3,101 +3,101 @@ import { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as res
|
|
|
3
3
|
import { B as theme, C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, F as shouldLogVerbose, J as normalizeLogLevel, L as warn, M as logVerbose, O as danger, S as shortenHomePath, V as getChildLogger, X as resolvePreferredSymiTmpDir, d as isRecord$1, i as clampInt, l as escapeRegExp, m as normalizeE164, t as CONFIG_DIR, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
4
4
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-EAliFiVK.js";
|
|
5
5
|
import { C as resolveThreadParentSessionKey, S as parseAgentSessionKey, _ as getSubagentDepth, b as isCronSessionKey, c as normalizeMainKey, d as sanitizeAgentId, h as normalizeAccountId$2, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isAcpSessionKey, x as isSubagentSessionKey, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
|
|
6
|
-
import { t as resolveSymiPackageRoot } from "./symi-root-
|
|
6
|
+
import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
7
7
|
import { C as createInternalHookEvent, T as triggerInternalHook, _ as clearPluginCommands, b as listPluginCommands, c as normalizeAnyChannelId, f as requireActivePluginRegistry, g as normalizePluginHttpPath, h as createPluginRegistry, l as normalizeChannelId, n as CHAT_CHANNEL_ORDER, p as setActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, v as executePluginCommand, x as matchPluginCommand, y as getPluginCommandSpecs } from "./registry-Cja8eT7G.js";
|
|
8
8
|
import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
9
9
|
import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
|
|
10
|
-
import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentModelPrimary, r as resolveAgentConfig, s as resolveAgentSkillsFilter, u as resolveEffectiveModelFallbacks, w as filterBootstrapFilesForSession } from "./agent-scope-
|
|
11
|
-
import { At as ensureAuthProfileStore, Bt as normalizeSecretInput, Et as markAuthProfileGood, Ft as resolveSymiAgentDir, G as getCustomProviderApiKey, Gt as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, It as withFileLock, K as requireApiKey, Kt as DEFAULT_PROVIDER, Pt as resolveAuthStorePathForDisplay, Q as getShellPathFromLoginShell, Tt as listProfilesForProvider, U as createOllamaStreamFn, Vt as resolveAuthProfileDisplayLabel, W as getApiKeyForModel, Wt as DEFAULT_CONTEXT_TOKENS, X as resolveModelAuthMode, Y as resolveEnvApiKey, c as normalizeModelRef$2, et as resolveShellEnvFallbackTimeoutMs, ft as resolveAuthProfileOrder, g as resolveModelRefFromString, gt as markAuthProfileUsed, ht as markAuthProfileFailure, i as findNormalizedProviderValue, l as normalizeProviderId, m as resolveDefaultModelForAgent, mt as isProfileInCooldown, n as buildConfiguredAllowlistKeys, o as isCliProvider, p as resolveConfiguredModelRef, pt as getSoonestCooldownExpiry, q as resolveApiKeyForProvider, r as buildModelAliasIndex, s as modelKey, t as buildAllowedModelSet, u as parseModelRef, v as resolveSubagentSpawnModelSelection, vt as resolveApiKeyForProfile, wt as dedupeProfileIds, y as resolveThinkingDefault } from "./model-selection-
|
|
10
|
+
import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentModelPrimary, r as resolveAgentConfig, s as resolveAgentSkillsFilter, u as resolveEffectiveModelFallbacks, w as filterBootstrapFilesForSession } from "./agent-scope-CgUHAtCo.js";
|
|
11
|
+
import { At as ensureAuthProfileStore, Bt as normalizeSecretInput, Et as markAuthProfileGood, Ft as resolveSymiAgentDir, G as getCustomProviderApiKey, Gt as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, It as withFileLock, K as requireApiKey, Kt as DEFAULT_PROVIDER, Pt as resolveAuthStorePathForDisplay, Q as getShellPathFromLoginShell, Tt as listProfilesForProvider, U as createOllamaStreamFn, Vt as resolveAuthProfileDisplayLabel, W as getApiKeyForModel, Wt as DEFAULT_CONTEXT_TOKENS, X as resolveModelAuthMode, Y as resolveEnvApiKey, c as normalizeModelRef$2, et as resolveShellEnvFallbackTimeoutMs, ft as resolveAuthProfileOrder, g as resolveModelRefFromString, gt as markAuthProfileUsed, ht as markAuthProfileFailure, i as findNormalizedProviderValue, l as normalizeProviderId, m as resolveDefaultModelForAgent, mt as isProfileInCooldown, n as buildConfiguredAllowlistKeys, o as isCliProvider, p as resolveConfiguredModelRef, pt as getSoonestCooldownExpiry, q as resolveApiKeyForProvider, r as buildModelAliasIndex, s as modelKey, t as buildAllowedModelSet, u as parseModelRef, v as resolveSubagentSpawnModelSelection, vt as resolveApiKeyForProfile, wt as dedupeProfileIds, y as resolveThinkingDefault } from "./model-selection-CyFvYcRt.js";
|
|
12
12
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DAu1a6BX.js";
|
|
13
13
|
import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
|
|
14
14
|
import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
|
|
15
15
|
import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
|
|
16
16
|
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-aT-I_DTX.js";
|
|
17
|
-
import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as createDiscordClient, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-
|
|
18
|
-
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
17
|
+
import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as createDiscordClient, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-CZr1hVHY.js";
|
|
18
|
+
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CHwyw6l5.js";
|
|
19
19
|
import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-C4BxOMWX.js";
|
|
20
20
|
import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
|
|
21
21
|
import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
|
|
22
22
|
import { n as resolveConversationLabel } from "./conversation-label-Bn5j3lUT.js";
|
|
23
23
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CmmmT8IP.js";
|
|
24
|
-
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-
|
|
25
|
-
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-
|
|
26
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
24
|
+
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-CUglpiFP.js";
|
|
25
|
+
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-D9uvDTrc.js";
|
|
26
|
+
import { t as ensureSymiModelsJson } from "./models-config-qyOXrOli.js";
|
|
27
27
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-4uUnLc3n.js";
|
|
28
|
-
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-
|
|
29
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
30
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
31
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
32
|
-
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-
|
|
28
|
+
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-CNPyv_ax.js";
|
|
29
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-C-T6hOMv.js";
|
|
30
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DtPkPq9T.js";
|
|
31
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-CEpFjqSk.js";
|
|
32
|
+
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-6jdJQ5ZL.js";
|
|
33
33
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BF3TeRH2.js";
|
|
34
|
-
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-
|
|
34
|
+
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BBm9fwuG.js";
|
|
35
35
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BCYMnxkM.js";
|
|
36
|
-
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-
|
|
37
|
-
import { n as getMediaDir, r as saveMediaBuffer } from "./store-
|
|
38
|
-
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-
|
|
39
|
-
import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-
|
|
40
|
-
import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-
|
|
41
|
-
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-
|
|
42
|
-
import { t as resolveIMessageAccount } from "./accounts-
|
|
43
|
-
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-
|
|
44
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
36
|
+
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-1OJMSAUX.js";
|
|
37
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./store-r1DJSDq-.js";
|
|
38
|
+
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-DgYpBvse.js";
|
|
39
|
+
import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-BhS32F6E.js";
|
|
40
|
+
import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-DKDeQZF0.js";
|
|
41
|
+
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-DDuIpcln.js";
|
|
42
|
+
import { t as resolveIMessageAccount } from "./accounts-bK-Yqdwx.js";
|
|
43
|
+
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DyJN4_vR.js";
|
|
44
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CPF8hSFp.js";
|
|
45
45
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CyhzMxFA.js";
|
|
46
46
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-BzbXHcaD.js";
|
|
47
47
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DdnTeoR1.js";
|
|
48
|
-
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-
|
|
48
|
+
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-DvUBlqjX.js";
|
|
49
49
|
import { n as resolveToolDisplay } from "./tool-display-D8N3rsYt.js";
|
|
50
50
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Db3da8yR.js";
|
|
51
51
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-DOPkVbh3.js";
|
|
52
|
-
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
53
|
-
import { v as runTasksWithConcurrency } from "./sqlite-
|
|
54
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
52
|
+
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
|
|
53
|
+
import { v as runTasksWithConcurrency } from "./sqlite-Dx3J_aSE.js";
|
|
54
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DvBJ8pMD.js";
|
|
55
55
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-BuceUQDl.js";
|
|
56
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-
|
|
57
|
-
import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-
|
|
56
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-gmK6RciS.js";
|
|
57
|
+
import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-CceEhg3d.js";
|
|
58
58
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DjBRPfu9.js";
|
|
59
59
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CUslJyKP.js";
|
|
60
|
-
import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-
|
|
61
|
-
import { a as buildModelAliasLines, n as resolveModel } from "./model-
|
|
62
|
-
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
63
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
64
|
-
import { i as resolveMemorySearchConfig } from "./manager-
|
|
60
|
+
import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-Cutb0ZDY.js";
|
|
61
|
+
import { a as buildModelAliasLines, n as resolveModel } from "./model-tWhwnFf8.js";
|
|
62
|
+
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
|
|
63
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-Ca5r9AUb.js";
|
|
64
|
+
import { i as resolveMemorySearchConfig } from "./manager-D4LJSRyZ.js";
|
|
65
65
|
import { n as retryAsync } from "./retry-BoS4e4X_.js";
|
|
66
|
-
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-
|
|
66
|
+
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-7AvoVa10.js";
|
|
67
67
|
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-1dhPX1NK.js";
|
|
68
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
69
|
-
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-
|
|
70
|
-
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-
|
|
71
|
-
import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-
|
|
72
|
-
import { Mt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-
|
|
73
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-
|
|
68
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-CEbN0fEm.js";
|
|
69
|
+
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DZam9q5M.js";
|
|
70
|
+
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-BNLCWX6e.js";
|
|
71
|
+
import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-BT0-zzs3.js";
|
|
72
|
+
import { Mt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CQSyCS4M.js";
|
|
73
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CJaS1iRF.js";
|
|
74
74
|
import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
|
|
75
75
|
import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
|
|
76
76
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
|
|
77
77
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DTNGXEzX.js";
|
|
78
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
79
|
-
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-
|
|
80
|
-
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-
|
|
78
|
+
import { t as convertMarkdownTables } from "./tables-BEzT0Da4.js";
|
|
79
|
+
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-tanEMpHN.js";
|
|
80
|
+
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-CK726Dzq.js";
|
|
81
81
|
import { t as makeProxyFetch } from "./proxy-DU7W9XSc.js";
|
|
82
82
|
import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-D0B0Uo-I.js";
|
|
83
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
84
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
85
|
-
import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-
|
|
83
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BMoTaVAH.js";
|
|
84
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-vgss3_QA.js";
|
|
85
|
+
import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-Cxw-jNxU.js";
|
|
86
86
|
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens } from "./session-cost-usage-BG4AXrGN.js";
|
|
87
|
-
import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-
|
|
88
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
89
|
-
import { t as resolvePairingIdLabel } from "./pairing-labels-
|
|
87
|
+
import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-CXxQ_f7L.js";
|
|
88
|
+
import { r as detectBinary } from "./onboard-helpers-ZmZYzlq3.js";
|
|
89
|
+
import { t as resolvePairingIdLabel } from "./pairing-labels-2S6x2UoV.js";
|
|
90
90
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-BzKEDn0q.js";
|
|
91
91
|
import { t as getActiveWebListener } from "./active-listener-kvXhlgwu.js";
|
|
92
92
|
import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExecApprovals, f as resolveExecApprovalsFromFile, g as resolveSafeBins, h as evaluateShellAllowlist, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval, y as buildSafeBinsShellCommand } from "./exec-approvals-Kn31mBcW.js";
|
|
93
|
-
import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-
|
|
93
|
+
import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-VBGXKdLk.js";
|
|
94
94
|
import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CN8o4Vi3.js";
|
|
95
95
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BiwOFDEK.js";
|
|
96
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
97
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
96
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-CIDBbw6x.js";
|
|
97
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Bz7rxLWq.js";
|
|
98
98
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BUClb97_.js";
|
|
99
99
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-C8_BLnaW.js";
|
|
100
|
-
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-
|
|
100
|
+
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-DuWs0Aak.js";
|
|
101
101
|
import { t as parseTimeoutMs } from "./parse-timeout-C385GCpE.js";
|
|
102
102
|
import { createRequire } from "node:module";
|
|
103
103
|
import { fileURLToPath } from "node:url";
|
|
@@ -105,7 +105,7 @@ import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSyn
|
|
|
105
105
|
import os, { homedir } from "node:os";
|
|
106
106
|
import path from "node:path";
|
|
107
107
|
import JSON5 from "json5";
|
|
108
|
-
import
|
|
108
|
+
import fs$1 from "node:fs/promises";
|
|
109
109
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
110
110
|
import { inspect } from "node:util";
|
|
111
111
|
import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
|
|
@@ -2893,7 +2893,7 @@ async function createModelSelectionState(params) {
|
|
|
2893
2893
|
}
|
|
2894
2894
|
}
|
|
2895
2895
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
2896
|
-
const { ensureAuthProfileStore } = await import("./model-selection-
|
|
2896
|
+
const { ensureAuthProfileStore } = await import("./model-selection-CyFvYcRt.js").then((n) => n.dt);
|
|
2897
2897
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
2898
2898
|
const providerKey = normalizeProviderId(provider);
|
|
2899
2899
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -10415,7 +10415,7 @@ async function routeReply(params) {
|
|
|
10415
10415
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10416
10416
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10417
10417
|
try {
|
|
10418
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10418
|
+
const { deliverOutboundPayloads } = await import("./deliver-CceEhg3d.js").then((n) => n.n);
|
|
10419
10419
|
return {
|
|
10420
10420
|
ok: true,
|
|
10421
10421
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12964,8 +12964,8 @@ async function describeStickerImage(params) {
|
|
|
12964
12964
|
const { provider, model } = resolved;
|
|
12965
12965
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
12966
12966
|
try {
|
|
12967
|
-
const buffer = await
|
|
12968
|
-
const { describeImageWithModel } = await import("./image-
|
|
12967
|
+
const buffer = await fs$1.readFile(imagePath);
|
|
12968
|
+
const { describeImageWithModel } = await import("./image-D9uvDTrc.js").then((n) => n.n);
|
|
12969
12969
|
return (await describeImageWithModel({
|
|
12970
12970
|
buffer,
|
|
12971
12971
|
fileName: "sticker.webp",
|
|
@@ -13388,7 +13388,7 @@ function createWhatsAppLoginTool() {
|
|
|
13388
13388
|
force: Type.Optional(Type.Boolean())
|
|
13389
13389
|
}),
|
|
13390
13390
|
execute: async (_toolCallId, args) => {
|
|
13391
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
13391
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-pbXdFORv.js");
|
|
13392
13392
|
if ((args?.action ?? "start") === "wait") {
|
|
13393
13393
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
13394
13394
|
return {
|
|
@@ -15604,7 +15604,7 @@ async function preflightDiscordMessage(params) {
|
|
|
15604
15604
|
let preflightTranscript;
|
|
15605
15605
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
15606
15606
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
15607
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
15607
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CWnxkaac.js");
|
|
15608
15608
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
15609
15609
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
15610
15610
|
ctx: {
|
|
@@ -21610,18 +21610,18 @@ function appendImagePathsToPrompt(prompt, paths) {
|
|
|
21610
21610
|
return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
|
|
21611
21611
|
}
|
|
21612
21612
|
async function writeCliImages(images) {
|
|
21613
|
-
const tempDir = await
|
|
21613
|
+
const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-cli-images-"));
|
|
21614
21614
|
const paths = [];
|
|
21615
21615
|
for (let i = 0; i < images.length; i += 1) {
|
|
21616
21616
|
const image = images[i];
|
|
21617
21617
|
const ext = resolveImageExtension(image.mimeType);
|
|
21618
21618
|
const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
|
|
21619
21619
|
const buffer = Buffer.from(image.data, "base64");
|
|
21620
|
-
await
|
|
21620
|
+
await fs$1.writeFile(filePath, buffer, { mode: 384 });
|
|
21621
21621
|
paths.push(filePath);
|
|
21622
21622
|
}
|
|
21623
21623
|
const cleanup = async () => {
|
|
21624
|
-
await
|
|
21624
|
+
await fs$1.rm(tempDir, {
|
|
21625
21625
|
recursive: true,
|
|
21626
21626
|
force: true
|
|
21627
21627
|
});
|
|
@@ -22374,27 +22374,27 @@ async function runWithImageModelFallback(params) {
|
|
|
22374
22374
|
function createDefaultDeps() {
|
|
22375
22375
|
return {
|
|
22376
22376
|
sendMessageWhatsApp: async (...args) => {
|
|
22377
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
22377
|
+
const { sendMessageWhatsApp } = await import("./web-HeObJp6A.js");
|
|
22378
22378
|
return await sendMessageWhatsApp(...args);
|
|
22379
22379
|
},
|
|
22380
22380
|
sendMessageTelegram: async (...args) => {
|
|
22381
|
-
const { sendMessageTelegram } = await import("./send-
|
|
22381
|
+
const { sendMessageTelegram } = await import("./send-Cutb0ZDY.js").then((n) => n.l);
|
|
22382
22382
|
return await sendMessageTelegram(...args);
|
|
22383
22383
|
},
|
|
22384
22384
|
sendMessageDiscord: async (...args) => {
|
|
22385
|
-
const { sendMessageDiscord } = await import("./send-
|
|
22385
|
+
const { sendMessageDiscord } = await import("./send-CZr1hVHY.js").then((n) => n.t);
|
|
22386
22386
|
return await sendMessageDiscord(...args);
|
|
22387
22387
|
},
|
|
22388
22388
|
sendMessageSlack: async (...args) => {
|
|
22389
|
-
const { sendMessageSlack } = await import("./send-
|
|
22389
|
+
const { sendMessageSlack } = await import("./send-CPF8hSFp.js").then((n) => n.n);
|
|
22390
22390
|
return await sendMessageSlack(...args);
|
|
22391
22391
|
},
|
|
22392
22392
|
sendMessageSignal: async (...args) => {
|
|
22393
|
-
const { sendMessageSignal } = await import("./send-
|
|
22393
|
+
const { sendMessageSignal } = await import("./send-tanEMpHN.js").then((n) => n.i);
|
|
22394
22394
|
return await sendMessageSignal(...args);
|
|
22395
22395
|
},
|
|
22396
22396
|
sendMessageIMessage: async (...args) => {
|
|
22397
|
-
const { sendMessageIMessage } = await import("./send-
|
|
22397
|
+
const { sendMessageIMessage } = await import("./send-CXxQ_f7L.js").then((n) => n.n);
|
|
22398
22398
|
return await sendMessageIMessage(...args);
|
|
22399
22399
|
}
|
|
22400
22400
|
};
|
|
@@ -23578,10 +23578,10 @@ function estimateDurationSeconds(pcm) {
|
|
|
23578
23578
|
return pcm.length / (bytesPerSample * SAMPLE_RATE);
|
|
23579
23579
|
}
|
|
23580
23580
|
async function writeWavFile(pcm) {
|
|
23581
|
-
const tempDir = await
|
|
23581
|
+
const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredSymiTmpDir(), "discord-voice-"));
|
|
23582
23582
|
const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
|
|
23583
23583
|
const wav = buildWavBuffer(pcm);
|
|
23584
|
-
await
|
|
23584
|
+
await fs$1.writeFile(filePath, wav);
|
|
23585
23585
|
scheduleTempCleanup(tempDir);
|
|
23586
23586
|
return {
|
|
23587
23587
|
path: filePath,
|
|
@@ -23590,7 +23590,7 @@ async function writeWavFile(pcm) {
|
|
|
23590
23590
|
}
|
|
23591
23591
|
function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
|
|
23592
23592
|
setTimeout(() => {
|
|
23593
|
-
|
|
23593
|
+
fs$1.rm(tempDir, {
|
|
23594
23594
|
recursive: true,
|
|
23595
23595
|
force: true
|
|
23596
23596
|
}).catch((err) => {
|
|
@@ -27329,7 +27329,7 @@ function normalizeAllowList$2(list) {
|
|
|
27329
27329
|
async function detectRemoteHostFromCliPath(cliPath) {
|
|
27330
27330
|
try {
|
|
27331
27331
|
const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
|
|
27332
|
-
const content = await
|
|
27332
|
+
const content = await fs$1.readFile(expanded, "utf8");
|
|
27333
27333
|
const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
|
|
27334
27334
|
if (userHostMatch) return userHostMatch[1];
|
|
27335
27335
|
return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
|
|
@@ -33544,7 +33544,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
33544
33544
|
}
|
|
33545
33545
|
let commandsRegistry;
|
|
33546
33546
|
async function getCommandsRegistry() {
|
|
33547
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
33547
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BT0-zzs3.js").then((n) => n.n);
|
|
33548
33548
|
return commandsRegistry;
|
|
33549
33549
|
}
|
|
33550
33550
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -33886,11 +33886,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
33886
33886
|
const channelName = channelInfo?.name;
|
|
33887
33887
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
33888
33888
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
33889
|
-
import("./resolve-route-
|
|
33889
|
+
import("./resolve-route-BMoTaVAH.js").then((n) => n.r),
|
|
33890
33890
|
import("./inbound-context-CmmmT8IP.js").then((n) => n.n),
|
|
33891
33891
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
33892
33892
|
]);
|
|
33893
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-Bn5j3lUT.js").then((n) => n.t), import("./reply-prefix-
|
|
33893
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-Bn5j3lUT.js").then((n) => n.t), import("./reply-prefix-CE2YmmsD.js").then((n) => n.n)]);
|
|
33894
33894
|
const route = resolveAgentRoute({
|
|
33895
33895
|
cfg,
|
|
33896
33896
|
channel: "slack",
|
|
@@ -33947,9 +33947,9 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
33947
33947
|
});
|
|
33948
33948
|
const deliverSlashPayloads = async (replies) => {
|
|
33949
33949
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
33950
|
-
import("./replies-
|
|
33950
|
+
import("./replies-vgss3_QA.js").then((n) => n.r),
|
|
33951
33951
|
import("./chunk-1dhPX1NK.js").then((n) => n.s),
|
|
33952
|
-
import("./markdown-tables-
|
|
33952
|
+
import("./markdown-tables-CEbN0fEm.js").then((n) => n.t)
|
|
33953
33953
|
]);
|
|
33954
33954
|
await deliverSlackSlashReplies({
|
|
33955
33955
|
replies,
|
|
@@ -34002,7 +34002,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
34002
34002
|
let nativeCommands = [];
|
|
34003
34003
|
if (nativeEnabled) {
|
|
34004
34004
|
reg = await getCommandsRegistry();
|
|
34005
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
34005
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Cxw-jNxU.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
34006
34006
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
34007
34007
|
skillCommands,
|
|
34008
34008
|
provider: "slack"
|
|
@@ -38771,7 +38771,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
38771
38771
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
38772
38772
|
let preflightTranscript;
|
|
38773
38773
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
38774
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
38774
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CWnxkaac.js");
|
|
38775
38775
|
preflightTranscript = await transcribeFirstAudio({
|
|
38776
38776
|
ctx: {
|
|
38777
38777
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -40539,7 +40539,7 @@ function safeParseState(raw) {
|
|
|
40539
40539
|
async function readTelegramUpdateOffset(params) {
|
|
40540
40540
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
40541
40541
|
try {
|
|
40542
|
-
return safeParseState(await
|
|
40542
|
+
return safeParseState(await fs$1.readFile(filePath, "utf-8"))?.lastUpdateId ?? null;
|
|
40543
40543
|
} catch (err) {
|
|
40544
40544
|
if (err.code === "ENOENT") return null;
|
|
40545
40545
|
return null;
|
|
@@ -40548,7 +40548,7 @@ async function readTelegramUpdateOffset(params) {
|
|
|
40548
40548
|
async function writeTelegramUpdateOffset(params) {
|
|
40549
40549
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
40550
40550
|
const dir = path.dirname(filePath);
|
|
40551
|
-
await
|
|
40551
|
+
await fs$1.mkdir(dir, {
|
|
40552
40552
|
recursive: true,
|
|
40553
40553
|
mode: 448
|
|
40554
40554
|
});
|
|
@@ -40557,14 +40557,14 @@ async function writeTelegramUpdateOffset(params) {
|
|
|
40557
40557
|
version: STORE_VERSION,
|
|
40558
40558
|
lastUpdateId: params.updateId
|
|
40559
40559
|
};
|
|
40560
|
-
await
|
|
40561
|
-
await
|
|
40562
|
-
await
|
|
40560
|
+
await fs$1.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
|
|
40561
|
+
await fs$1.chmod(tmp, 384);
|
|
40562
|
+
await fs$1.rename(tmp, filePath);
|
|
40563
40563
|
}
|
|
40564
40564
|
async function deleteTelegramUpdateOffset(params) {
|
|
40565
40565
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
40566
40566
|
try {
|
|
40567
|
-
await
|
|
40567
|
+
await fs$1.unlink(filePath);
|
|
40568
40568
|
} catch (err) {
|
|
40569
40569
|
if (err.code === "ENOENT") return;
|
|
40570
40570
|
throw err;
|
|
@@ -40925,23 +40925,23 @@ let webLoginQrPromise = null;
|
|
|
40925
40925
|
let webChannelPromise = null;
|
|
40926
40926
|
let whatsappActionsPromise = null;
|
|
40927
40927
|
function loadWebOutbound() {
|
|
40928
|
-
webOutboundPromise ??= import("./outbound-
|
|
40928
|
+
webOutboundPromise ??= import("./outbound-DB5Zus0-.js").then((n) => n.t);
|
|
40929
40929
|
return webOutboundPromise;
|
|
40930
40930
|
}
|
|
40931
40931
|
function loadWebLogin() {
|
|
40932
|
-
webLoginPromise ??= import("./login-
|
|
40932
|
+
webLoginPromise ??= import("./login-dIlDkG4X.js").then((n) => n.n);
|
|
40933
40933
|
return webLoginPromise;
|
|
40934
40934
|
}
|
|
40935
40935
|
function loadWebLoginQr() {
|
|
40936
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
40936
|
+
webLoginQrPromise ??= import("./login-qr-pbXdFORv.js");
|
|
40937
40937
|
return webLoginQrPromise;
|
|
40938
40938
|
}
|
|
40939
40939
|
function loadWebChannel() {
|
|
40940
|
-
webChannelPromise ??= import("./web-
|
|
40940
|
+
webChannelPromise ??= import("./web-HeObJp6A.js");
|
|
40941
40941
|
return webChannelPromise;
|
|
40942
40942
|
}
|
|
40943
40943
|
function loadWhatsAppActions() {
|
|
40944
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
40944
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-DbcsdOH3.js");
|
|
40945
40945
|
return whatsappActionsPromise;
|
|
40946
40946
|
}
|
|
40947
40947
|
function createPluginRuntime() {
|
|
@@ -41708,7 +41708,7 @@ function resolvePluginTools(params) {
|
|
|
41708
41708
|
//#endregion
|
|
41709
41709
|
//#region src/agents/apply-patch-update.ts
|
|
41710
41710
|
async function defaultReadFile(filePath) {
|
|
41711
|
-
return
|
|
41711
|
+
return fs$1.readFile(filePath, "utf8");
|
|
41712
41712
|
}
|
|
41713
41713
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
41714
41714
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -41952,10 +41952,10 @@ function resolvePatchFileOps(options) {
|
|
|
41952
41952
|
};
|
|
41953
41953
|
}
|
|
41954
41954
|
return {
|
|
41955
|
-
readFile: (filePath) =>
|
|
41956
|
-
writeFile: (filePath, content) =>
|
|
41957
|
-
remove: (filePath) =>
|
|
41958
|
-
mkdirp: (dir) =>
|
|
41955
|
+
readFile: (filePath) => fs$1.readFile(filePath, "utf8"),
|
|
41956
|
+
writeFile: (filePath, content) => fs$1.writeFile(filePath, content, "utf8"),
|
|
41957
|
+
remove: (filePath) => fs$1.rm(filePath),
|
|
41958
|
+
mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
|
|
41959
41959
|
};
|
|
41960
41960
|
}
|
|
41961
41961
|
async function ensureDir(filePath, ops) {
|
|
@@ -42676,7 +42676,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
42676
42676
|
cwd: process.cwd(),
|
|
42677
42677
|
root: params.sandbox.workspaceDir
|
|
42678
42678
|
});
|
|
42679
|
-
if (!(await
|
|
42679
|
+
if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
42680
42680
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
42681
42681
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
42682
42682
|
return {
|
|
@@ -43657,13 +43657,13 @@ async function validateScriptFileForShellBleed(params) {
|
|
|
43657
43657
|
cwd: params.workdir,
|
|
43658
43658
|
root: params.workdir
|
|
43659
43659
|
});
|
|
43660
|
-
stat = await
|
|
43660
|
+
stat = await fs$1.stat(absPath);
|
|
43661
43661
|
} catch {
|
|
43662
43662
|
return;
|
|
43663
43663
|
}
|
|
43664
43664
|
if (!stat.isFile()) return;
|
|
43665
43665
|
if (stat.size > 512 * 1024) return;
|
|
43666
|
-
const content = await
|
|
43666
|
+
const content = await fs$1.readFile(absPath, "utf-8");
|
|
43667
43667
|
const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
|
|
43668
43668
|
if (first) {
|
|
43669
43669
|
const idx = first.index;
|
|
@@ -44602,8 +44602,16 @@ const GEMMA_TOKEN_PATTERNS = [
|
|
|
44602
44602
|
/<start_of_turn>(?:model|user)?/g,
|
|
44603
44603
|
/<end_of_turn>/g,
|
|
44604
44604
|
/<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
|
|
44605
|
-
/^\s*<bos>\s*/gm
|
|
44605
|
+
/^\s*<bos>\s*/gm,
|
|
44606
|
+
/<\|[^|>]{0,30}\|>/g,
|
|
44607
|
+
/<\|[^>]{0,30}>/g
|
|
44606
44608
|
];
|
|
44609
|
+
/**
|
|
44610
|
+
* Aggressively strip all fragments of model control token corruption from
|
|
44611
|
+
* tool arguments. This catches cases where the model produces raw garbage
|
|
44612
|
+
* like `<|<|"|<|<|\'` that doesn't match any known token template.
|
|
44613
|
+
*/
|
|
44614
|
+
const AGGRESSIVE_TOKEN_FRAGMENTS = [/<\|/g, /\|>/g];
|
|
44607
44615
|
const GEMMA_MODEL_HINTS$1 = ["gemma", "redsand/"];
|
|
44608
44616
|
function isGemmaModel$1(modelId) {
|
|
44609
44617
|
const lower = modelId.toLowerCase();
|
|
@@ -44613,6 +44621,10 @@ function isGemmaModel$1(modelId) {
|
|
|
44613
44621
|
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
44614
44622
|
* other models pass through unchanged.
|
|
44615
44623
|
*/
|
|
44624
|
+
/**
|
|
44625
|
+
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
44626
|
+
* other models pass through unchanged. Used for streamed text output.
|
|
44627
|
+
*/
|
|
44616
44628
|
function stripModelTokens(text, modelId) {
|
|
44617
44629
|
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
44618
44630
|
let result = text;
|
|
@@ -44622,6 +44634,21 @@ function stripModelTokens(text, modelId) {
|
|
|
44622
44634
|
}
|
|
44623
44635
|
return result;
|
|
44624
44636
|
}
|
|
44637
|
+
/**
|
|
44638
|
+
* Aggressively strip ALL token-like fragments from a string. Used for tool
|
|
44639
|
+
* call arguments where any `<|` corruption causes downstream failures.
|
|
44640
|
+
* More aggressive than `stripModelTokens` — removes bare `<|` and `|>` fragments
|
|
44641
|
+
* that don't match any known token template.
|
|
44642
|
+
*/
|
|
44643
|
+
function stripModelTokensAggressive(text, modelId) {
|
|
44644
|
+
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
44645
|
+
let result = stripModelTokens(text, modelId);
|
|
44646
|
+
for (const re of AGGRESSIVE_TOKEN_FRAGMENTS) {
|
|
44647
|
+
re.lastIndex = 0;
|
|
44648
|
+
result = result.replace(re, "");
|
|
44649
|
+
}
|
|
44650
|
+
return result;
|
|
44651
|
+
}
|
|
44625
44652
|
|
|
44626
44653
|
//#endregion
|
|
44627
44654
|
//#region src/agents/pi-tools.abort.ts
|
|
@@ -46867,7 +46894,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
46867
46894
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
|
|
46868
46895
|
throw new Error("jsonlPath outside allowed roots");
|
|
46869
46896
|
}
|
|
46870
|
-
const canonical = await
|
|
46897
|
+
const canonical = await fs$1.realpath(resolved).catch(() => resolved);
|
|
46871
46898
|
if (!isInboundPathAllowed({
|
|
46872
46899
|
filePath: canonical,
|
|
46873
46900
|
roots
|
|
@@ -46875,7 +46902,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
46875
46902
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
|
|
46876
46903
|
throw new Error("jsonlPath outside allowed roots");
|
|
46877
46904
|
}
|
|
46878
|
-
return await
|
|
46905
|
+
return await fs$1.readFile(canonical, "utf8");
|
|
46879
46906
|
}
|
|
46880
46907
|
const CanvasToolSchema = Type.Object({
|
|
46881
46908
|
action: stringEnum(CANVAS_ACTIONS),
|
|
@@ -47655,27 +47682,27 @@ function resolveRestartSentinelPath(env = process.env) {
|
|
|
47655
47682
|
}
|
|
47656
47683
|
async function writeRestartSentinel(payload, env = process.env) {
|
|
47657
47684
|
const filePath = resolveRestartSentinelPath(env);
|
|
47658
|
-
await
|
|
47685
|
+
await fs$1.mkdir(path.dirname(filePath), { recursive: true });
|
|
47659
47686
|
const data = {
|
|
47660
47687
|
version: 1,
|
|
47661
47688
|
payload
|
|
47662
47689
|
};
|
|
47663
|
-
await
|
|
47690
|
+
await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
|
|
47664
47691
|
return filePath;
|
|
47665
47692
|
}
|
|
47666
47693
|
async function readRestartSentinel(env = process.env) {
|
|
47667
47694
|
const filePath = resolveRestartSentinelPath(env);
|
|
47668
47695
|
try {
|
|
47669
|
-
const raw = await
|
|
47696
|
+
const raw = await fs$1.readFile(filePath, "utf-8");
|
|
47670
47697
|
let parsed;
|
|
47671
47698
|
try {
|
|
47672
47699
|
parsed = JSON.parse(raw);
|
|
47673
47700
|
} catch {
|
|
47674
|
-
await
|
|
47701
|
+
await fs$1.unlink(filePath).catch(() => {});
|
|
47675
47702
|
return null;
|
|
47676
47703
|
}
|
|
47677
47704
|
if (!parsed || parsed.version !== 1 || !parsed.payload) {
|
|
47678
|
-
await
|
|
47705
|
+
await fs$1.unlink(filePath).catch(() => {});
|
|
47679
47706
|
return null;
|
|
47680
47707
|
}
|
|
47681
47708
|
return parsed;
|
|
@@ -47687,7 +47714,7 @@ async function consumeRestartSentinel(env = process.env) {
|
|
|
47687
47714
|
const filePath = resolveRestartSentinelPath(env);
|
|
47688
47715
|
const parsed = await readRestartSentinel(env);
|
|
47689
47716
|
if (!parsed) return null;
|
|
47690
|
-
await
|
|
47717
|
+
await fs$1.unlink(filePath).catch(() => {});
|
|
47691
47718
|
return parsed;
|
|
47692
47719
|
}
|
|
47693
47720
|
function formatRestartSentinelMessage(payload) {
|
|
@@ -48794,7 +48821,7 @@ async function hydrateAttachmentPayload(params) {
|
|
|
48794
48821
|
accountId: params.accountId
|
|
48795
48822
|
}),
|
|
48796
48823
|
sandboxValidated: true,
|
|
48797
|
-
readFile: (filePath) =>
|
|
48824
|
+
readFile: (filePath) => fs$1.readFile(filePath)
|
|
48798
48825
|
});
|
|
48799
48826
|
params.args.buffer = media.buffer.toString("base64");
|
|
48800
48827
|
if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
|
|
@@ -56022,10 +56049,10 @@ function wrapToolWithArgSanitization(tool, modelId) {
|
|
|
56022
56049
|
};
|
|
56023
56050
|
}
|
|
56024
56051
|
function sanitizeToolArgs(params, modelId) {
|
|
56025
|
-
if (!params || typeof params !== "object") return typeof params === "string" ?
|
|
56052
|
+
if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
|
|
56026
56053
|
if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
|
|
56027
56054
|
const result = {};
|
|
56028
|
-
for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] =
|
|
56055
|
+
for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
|
|
56029
56056
|
else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
|
|
56030
56057
|
else result[key] = value;
|
|
56031
56058
|
return result;
|
|
@@ -56276,7 +56303,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
56276
56303
|
};
|
|
56277
56304
|
let content;
|
|
56278
56305
|
try {
|
|
56279
|
-
content = await
|
|
56306
|
+
content = await fs$1.readFile(sessionFile, "utf-8");
|
|
56280
56307
|
} catch (err) {
|
|
56281
56308
|
if (err?.code === "ENOENT") return {
|
|
56282
56309
|
repaired: false,
|
|
@@ -56324,15 +56351,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
56324
56351
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
56325
56352
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
56326
56353
|
try {
|
|
56327
|
-
const stat = await
|
|
56328
|
-
await
|
|
56329
|
-
if (stat) await
|
|
56330
|
-
await
|
|
56331
|
-
if (stat) await
|
|
56332
|
-
await
|
|
56354
|
+
const stat = await fs$1.stat(sessionFile).catch(() => null);
|
|
56355
|
+
await fs$1.writeFile(backupPath, content, "utf-8");
|
|
56356
|
+
if (stat) await fs$1.chmod(backupPath, stat.mode);
|
|
56357
|
+
await fs$1.writeFile(tmpPath, cleaned, "utf-8");
|
|
56358
|
+
if (stat) await fs$1.chmod(tmpPath, stat.mode);
|
|
56359
|
+
await fs$1.rename(tmpPath, sessionFile);
|
|
56333
56360
|
} catch (err) {
|
|
56334
56361
|
try {
|
|
56335
|
-
await
|
|
56362
|
+
await fs$1.unlink(tmpPath);
|
|
56336
56363
|
} catch (cleanupErr) {
|
|
56337
56364
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
56338
56365
|
}
|
|
@@ -58437,7 +58464,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
58437
58464
|
if (!isSessionManagerCacheEnabled()) return;
|
|
58438
58465
|
if (isSessionManagerCached(sessionFile)) return;
|
|
58439
58466
|
try {
|
|
58440
|
-
const handle = await
|
|
58467
|
+
const handle = await fs$1.open(sessionFile, "r");
|
|
58441
58468
|
try {
|
|
58442
58469
|
const buffer = Buffer$1.alloc(4096);
|
|
58443
58470
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -58761,7 +58788,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
58761
58788
|
} catch (err) {
|
|
58762
58789
|
return fail(describeUnknownError(err));
|
|
58763
58790
|
}
|
|
58764
|
-
await
|
|
58791
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
58765
58792
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
58766
58793
|
const sandbox = await resolveSandboxContext({
|
|
58767
58794
|
config: params.config,
|
|
@@ -58769,7 +58796,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
58769
58796
|
workspaceDir: resolvedWorkspace
|
|
58770
58797
|
});
|
|
58771
58798
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
58772
|
-
await
|
|
58799
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
58773
58800
|
await ensureSessionHeader({
|
|
58774
58801
|
sessionFile: params.sessionFile,
|
|
58775
58802
|
sessionId: params.sessionId,
|
|
@@ -59559,12 +59586,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
59559
59586
|
const existing = writers.get(filePath);
|
|
59560
59587
|
if (existing) return existing;
|
|
59561
59588
|
const dir = path.dirname(filePath);
|
|
59562
|
-
const ready =
|
|
59589
|
+
const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
59563
59590
|
let queue = Promise.resolve();
|
|
59564
59591
|
const writer = {
|
|
59565
59592
|
filePath,
|
|
59566
59593
|
write: (line) => {
|
|
59567
|
-
queue = queue.then(() => ready).then(() =>
|
|
59594
|
+
queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
59568
59595
|
}
|
|
59569
59596
|
};
|
|
59570
59597
|
writers.set(filePath, writer);
|
|
@@ -61956,7 +61983,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
61956
61983
|
return;
|
|
61957
61984
|
}
|
|
61958
61985
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
61959
|
-
await
|
|
61986
|
+
await fs$1.writeFile(params.sessionFile, "", "utf-8");
|
|
61960
61987
|
sm.fileEntries = [header];
|
|
61961
61988
|
sm.byId?.clear?.();
|
|
61962
61989
|
sm.labelsById?.clear?.();
|
|
@@ -62514,7 +62541,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
62514
62541
|
const prevCwd = process.cwd();
|
|
62515
62542
|
const runAbortController = new AbortController();
|
|
62516
62543
|
log$2.debug(`embedded run start: runId=${params.runId} sessionId=${params.sessionId} provider=${params.provider} model=${params.modelId} thinking=${params.thinkLevel} messageChannel=${params.messageChannel ?? params.messageProvider ?? "unknown"}`);
|
|
62517
|
-
await
|
|
62544
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
62518
62545
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
62519
62546
|
const sandbox = await resolveSandboxContext({
|
|
62520
62547
|
config: params.config,
|
|
@@ -62522,7 +62549,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
62522
62549
|
workspaceDir: resolvedWorkspace
|
|
62523
62550
|
});
|
|
62524
62551
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
62525
|
-
await
|
|
62552
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
62526
62553
|
let restoreSkillEnv;
|
|
62527
62554
|
process.chdir(effectiveWorkspace);
|
|
62528
62555
|
try {
|
|
@@ -62750,7 +62777,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
62750
62777
|
sessionFile: params.sessionFile,
|
|
62751
62778
|
warn: (message) => log$2.warn(message)
|
|
62752
62779
|
});
|
|
62753
|
-
const hadSessionFile = await
|
|
62780
|
+
const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
62754
62781
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
62755
62782
|
modelApi: params.model?.api,
|
|
62756
62783
|
provider: params.provider,
|
|
@@ -63768,7 +63795,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
63768
63795
|
}
|
|
63769
63796
|
runLoopIterations += 1;
|
|
63770
63797
|
attemptedThinking.add(thinkLevel);
|
|
63771
|
-
await
|
|
63798
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
63772
63799
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
63773
63800
|
const attempt = await runEmbeddedAttempt({
|
|
63774
63801
|
sessionId: params.sessionId,
|
|
@@ -68110,7 +68137,7 @@ async function handleCommands(params) {
|
|
|
68110
68137
|
try {
|
|
68111
68138
|
const messages = [];
|
|
68112
68139
|
if (sessionFile) {
|
|
68113
|
-
const content = await
|
|
68140
|
+
const content = await fs$1.readFile(sessionFile, "utf-8");
|
|
68114
68141
|
for (const line of content.split("\n")) {
|
|
68115
68142
|
if (!line.trim()) continue;
|
|
68116
68143
|
try {
|
|
@@ -71768,7 +71795,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
71768
71795
|
return;
|
|
71769
71796
|
}
|
|
71770
71797
|
try {
|
|
71771
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
71798
|
+
const { deliverOutboundPayloads } = await import("./deliver-CceEhg3d.js").then((n) => n.n);
|
|
71772
71799
|
await deliverOutboundPayloads({
|
|
71773
71800
|
cfg: params.cfg,
|
|
71774
71801
|
channel,
|
|
@@ -72143,7 +72170,7 @@ async function stageSandboxMedia(params) {
|
|
|
72143
72170
|
};
|
|
72144
72171
|
try {
|
|
72145
72172
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
72146
|
-
await
|
|
72173
|
+
await fs$1.mkdir(destDir, { recursive: true });
|
|
72147
72174
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
72148
72175
|
cfg,
|
|
72149
72176
|
accountId: ctx.AccountId
|
|
@@ -72193,7 +72220,7 @@ async function stageSandboxMedia(params) {
|
|
|
72193
72220
|
usedNames.add(fileName);
|
|
72194
72221
|
const dest = path.join(destDir, fileName);
|
|
72195
72222
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
72196
|
-
else await
|
|
72223
|
+
else await fs$1.copyFile(source, dest);
|
|
72197
72224
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
72198
72225
|
staged.set(source, stagedPath);
|
|
72199
72226
|
}
|