@symerian/symi 2.6.7 → 2.6.8
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/{agents-DPdRUY_O.js → agents-DUCHzmZ7.js} +4 -4
- package/dist/{agents.config-Cr6DcdaD.js → agents.config-CHQebF9q.js} +1 -1
- package/dist/{agents.config-DIumfxnN.js → agents.config-CwoBiqZ_.js} +1 -1
- package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
- package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-DHTaS5U1.js} +4 -4
- package/dist/{auth-choice-C5etRQcH.js → auth-choice-B1zaWakt.js} +1 -1
- package/dist/{auth-choice-z3-Baeyd.js → auth-choice-DGzjLihE.js} +1 -1
- package/dist/{banner-om7BRUIc.js → banner-Dy01rdll.js} +1 -1
- 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/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BqnokE7_.js → channel-options-Ba5tfq9-.js} +1 -1
- package/dist/{channel-options-Cb1PgfNV.js → channel-options-Cte5qJHT.js} +1 -1
- package/dist/{channel-web-DztB2W6w.js → channel-web-NGDI-tJN.js} +1 -1
- package/dist/{channels-cli-xlZ2mjBu.js → channels-cli-BDlDCL3R.js} +4 -4
- package/dist/{channels-cli-R2PHQWVd.js → channels-cli-CgNtcB-z.js} +4 -4
- package/dist/{chrome-DkaXoP36.js → chrome-CDJYxX5a.js} +5 -5
- package/dist/{chrome-D2SKJnR7.js → chrome-DYZwl5Gv.js} +5 -5
- package/dist/{cli-DLly6H0w.js → cli-C2ZGBmO9.js} +1 -1
- package/dist/{cli-DNGrFH7L.js → cli-Da_Dnvvp.js} +1 -1
- package/dist/{command-registry-DJbyskBr.js → command-registry-CLcFUFJs.js} +9 -9
- package/dist/{completion-cli-Dfw9JhkN.js → completion-cli-BzXhONEe.js} +2 -2
- package/dist/{completion-cli-DosOadUD.js → completion-cli-MbaQCbTj.js} +1 -1
- package/dist/{config-cli-CbdeNt0M.js → config-cli-BHHGJx1I.js} +1 -1
- package/dist/{config-cli-BaH8OVQ-.js → config-cli-CT6Q4rhy.js} +1 -1
- package/dist/{configure-BmNOfGox.js → configure-BOLt9A-A.js} +3 -3
- package/dist/{configure-D5dSJprr.js → configure-CVcHuLVe.js} +3 -3
- package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
- package/dist/{deliver-C46-vyqg.js → deliver-dODxSv3b.js} +1 -1
- package/dist/{doctor-completion-DRucwWSo.js → doctor-completion-BZ-FYLu9.js} +1 -1
- package/dist/{doctor-completion-Xx92Sz9s.js → doctor-completion-CislKWHy.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{gateway-cli-D3kGHw5M.js → gateway-cli-2yQf_hKZ.js} +9 -9
- package/dist/{gateway-cli-SlbXm0f7.js → gateway-cli-Bzz6Rduw.js} +9 -9
- package/dist/{glass-ui-ws-Cj9wbO1L.js → glass-ui-ws-ibSNo7RU.js} +7 -7
- package/dist/{glass-ui-ws-B7V2wHEu.js → glass-ui-ws-uRv3KH-0.js} +7 -7
- package/dist/{health-DUKLANXu.js → health-CBwxQHlQ.js} +1 -1
- package/dist/{health-BPOuBmYt.js → health-D4ySlvOE.js} +1 -1
- package/dist/{hooks-cli-BF0mbqlZ.js → hooks-cli-BFN2xMj8.js} +2 -2
- package/dist/{hooks-cli-BpfIySkB.js → hooks-cli-CreZeBlG.js} +2 -2
- package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
- package/dist/{image-CuzFLQWC.js → image-CXu8W39c.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{models-Bt8lm_nD.js → models-Dk7Q5cSF.js} +2 -2
- package/dist/{models-cli-bHYoiL5x.js → models-cli-C9Y-HfLg.js} +2 -2
- package/dist/{models-cli-BmBmBUgl.js → models-cli-DzSb3Scm.js} +3 -3
- package/dist/{onboard-DlY7trcj.js → onboard-D_PsLQiw.js} +2 -2
- package/dist/{onboard-DFkXqe5P.js → onboard-N-KB8jvT.js} +2 -2
- package/dist/{onboard-channels-DEFF3Rjo.js → onboard-channels-Bp74i8iG.js} +1 -1
- package/dist/{onboard-channels-D0RHtaJE.js → onboard-channels-VuJyK9g-.js} +1 -1
- package/dist/{onboarding-BEDqTyYQ.js → onboarding-CRAQ2s_3.js} +3 -3
- package/dist/{onboarding-mXPGwLNG.js → onboarding-D1AsOvXd.js} +3 -3
- package/dist/{onboarding.finalize-Ca-aQ6eE.js → onboarding.finalize-DLUoLFNl.js} +6 -6
- package/dist/{onboarding.finalize-DmeEphAd.js → onboarding.finalize-ZYLgVmdn.js} +5 -5
- package/dist/{pi-embedded-DPXbVwW0.js → pi-embedded-BSoqm4lP.js} +61 -66
- package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
- package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-pubKo8HQ.js} +4 -4
- package/dist/{plugin-registry-C1ghjhOE.js → plugin-registry-CTu9B9S3.js} +1 -1
- package/dist/{plugin-registry-CDIOKK_i.js → plugin-registry-DDIcHkNU.js} +1 -1
- package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
- package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
- package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
- package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
- package/dist/plugin-sdk/agents/pi-tools.validate-wrapper.d.ts +8 -8
- package/dist/plugin-sdk/{api-key-rotation-CVBMpnPc.js → api-key-rotation-D_sMvI5W.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-DoQQKlxa.js → audio-preflight-VpItkiy3.js} +24 -24
- package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
- package/dist/plugin-sdk/{channel-web-CxwLjrWk.js → channel-web-BmV3Tuy0.js} +22 -22
- package/dist/plugin-sdk/{chrome-C7c_0I5M.js → chrome-B7RdxmJ0.js} +3 -3
- package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
- package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-CQFbmUMs.js → commands-registry-COIaslGl.js} +4 -4
- package/dist/plugin-sdk/{config-DDkdiUOR.js → config-KlTNfkFF.js} +9 -9
- package/dist/plugin-sdk/{deliver-BZ6iNLl7.js → deliver-BZ99UKQq.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
- package/dist/plugin-sdk/{image-BOYy0Ump.js → image-CLOPx7yW.js} +4 -4
- package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
- package/dist/plugin-sdk/index.js +53 -53
- package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
- package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
- package/dist/plugin-sdk/{login-Bh3DZPam.js → login-DQMXuxOk.js} +7 -7
- package/dist/plugin-sdk/{login-qr-DbR7odSr.js → login-qr-BjVZSoCi.js} +9 -9
- package/dist/plugin-sdk/{manager-DckktAQ3.js → manager-CBSBFuFz.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
- package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
- package/dist/plugin-sdk/{model-selection-OpU8HN50.js → model-selection-CsbEfrS0.js} +4 -4
- package/dist/plugin-sdk/{outbound-rF6G8Xpr.js → outbound-B0e8KdaR.js} +7 -7
- package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
- package/dist/plugin-sdk/{pi-auth-json-CJk8t14T.js → pi-auth-json-qWi7ZIYV.js} +5 -5
- package/dist/plugin-sdk/{pi-embedded-helpers-BveUP4hk.js → pi-embedded-helpers-CW630epe.js} +17 -17
- package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-DjGUsee-.js → pw-ai-CnbPIPY9.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
- package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
- package/dist/plugin-sdk/{replies-fI39rPGa.js → replies-LLcQL3w6.js} +3 -3
- package/dist/plugin-sdk/{reply-CyZfsjrl.js → reply-LQcs9anV.js} +123 -128
- package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
- package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
- package/dist/plugin-sdk/{runner-BVqnEfNe.js → runner-CGBT7tgF.js} +9 -9
- package/dist/plugin-sdk/{send-BtANzsAo.js → send-B2CEnVLL.js} +6 -6
- package/dist/plugin-sdk/{send-BHbXh8Ly.js → send-C5h_YxNb.js} +7 -7
- package/dist/plugin-sdk/{send-D6LMZJ_h.js → send-CRsR8-vO.js} +10 -10
- package/dist/plugin-sdk/{send-Bxdu6ZZy.js → send-CjOBB3Vo.js} +10 -10
- package/dist/plugin-sdk/{send-BMfJIhCk.js → send-pYqe432l.js} +6 -6
- package/dist/plugin-sdk/{session-kI0tzViQ.js → session-BsOrxiMj.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-DCNXVERE.js → skill-commands-ff_01_r3.js} +5 -5
- package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
- package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
- package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
- package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
- package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
- package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
- package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
- package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
- package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-DU5sTIKg.js → tool-loop-detection-at_K42K7.js} +2 -2
- package/dist/plugin-sdk/web-DvzecOyx.js +65 -0
- package/dist/plugin-sdk/{whatsapp-actions-CcBzDuL-.js → whatsapp-actions-DfseosPO.js} +21 -21
- package/dist/{plugins-cli-BFCJyRBX.js → plugins-cli-DJUkvonf.js} +2 -2
- package/dist/{plugins-cli-jv-Bqq1t.js → plugins-cli-DdfBwKlP.js} +2 -2
- package/dist/{program-T144qFaw.js → program-DyPb-tj_.js} +7 -7
- package/dist/{program-context-xpDrT9eG.js → program-context-Bz_GuT_l.js} +17 -17
- package/dist/{prompt-select-styled-BN0aOmtR.js → prompt-select-styled-BKnaBZhj.js} +4 -4
- package/dist/{prompt-select-styled-Bn4zyJmn.js → prompt-select-styled-CghdSf8F.js} +4 -4
- package/dist/{provider-auth-helpers-CqDTEFnD.js → provider-auth-helpers-BdNgfdWd.js} +1 -1
- package/dist/{provider-auth-helpers-CfBPNN7J.js → provider-auth-helpers-CXKXgdFl.js} +1 -1
- package/dist/{push-apns-CVRC-O3Q.js → push-apns-A--Taj2b.js} +1 -1
- package/dist/{push-apns-CHIVwHRD.js → push-apns-Cdjd6L8R.js} +1 -1
- package/dist/{pw-ai-m0mj2KWK.js → pw-ai-B5asscAD.js} +1 -1
- package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
- package/dist/{register.agent-B0ExzmtM.js → register.agent-BLWVTdIg.js} +6 -6
- package/dist/{register.agent-DD2QErXm.js → register.agent-C4tjED3B.js} +5 -5
- package/dist/{register.configure-ByNKeAo7.js → register.configure-De6KxZc8.js} +6 -6
- package/dist/{register.configure-DpHCcS5d.js → register.configure-DkNQpMco.js} +6 -6
- package/dist/{register.maintenance-C9K829tk.js → register.maintenance-B7dlUmZQ.js} +7 -7
- package/dist/{register.maintenance-Ck1jwY_N.js → register.maintenance-el_O34pN.js} +8 -8
- package/dist/{register.message-DZ45n1GX.js → register.message-Bg38q7xU.js} +2 -2
- package/dist/{register.message-BveFb6IW.js → register.message-CNub6pDr.js} +2 -2
- package/dist/{register.onboard-Byt2S-D0.js → register.onboard-DUIvvhd3.js} +4 -4
- package/dist/{register.onboard-BHUh0Xk1.js → register.onboard-OXQpAbIU.js} +4 -4
- package/dist/{register.setup-DCG9bst7.js → register.setup-BAZ3txi6.js} +4 -4
- package/dist/{register.setup-BvB9oNh3.js → register.setup-BQLAOnSQ.js} +4 -4
- package/dist/{register.status-health-sessions-DgNzHYE-.js → register.status-health-sessions-BU25Fv8p.js} +3 -3
- package/dist/{register.status-health-sessions-CMJ_l4rs.js → register.status-health-sessions-bw_2svPd.js} +3 -3
- package/dist/{register.subclis-DnWR9l5V.js → register.subclis-Bop-tTBx.js} +9 -9
- package/dist/{reply-DcyKvFor.js → reply-BR3MMmPE.js} +47 -52
- package/dist/{run-main-B1aB8I5W.js → run-main-DFp18fyd.js} +14 -14
- package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
- package/dist/{runner-CU9l0uJh.js → runner-WAG0M5s9.js} +1 -1
- package/dist/{server-methods-D1W-tViM.js → server-methods-B7KrCq1B.js} +7 -7
- package/dist/{server-methods-BdXCfO_O.js → server-methods-BMrgMa55.js} +7 -7
- package/dist/{server-node-events-BwGehjys.js → server-node-events-DcIWSJrb.js} +2 -2
- package/dist/{server-node-events-DqVmWjof.js → server-node-events-tKdBKitQ.js} +2 -2
- package/dist/{status-CfLq5R5j.js → status-CChK9DsL.js} +2 -2
- package/dist/{status-BY4CnB2O.js → status-DAeh7JKa.js} +2 -2
- package/dist/{status-kPaSg3RB.js → status-DkAuXji3.js} +1 -1
- package/dist/{status-BvnWSBQl.js → status-Ta_hiT2w.js} +1 -1
- package/dist/{subagent-registry-CVQOC9Jw.js → subagent-registry-DovA8Baf.js} +47 -52
- package/dist/{unified-runner-CxscxYKm.js → unified-runner-OplgmcEq.js} +61 -66
- package/dist/{update-cli-Bgrhor0g.js → update-cli-DPewzEht.js} +8 -8
- package/dist/{update-cli-D5QWigS0.js → update-cli-hfO-LduQ.js} +7 -7
- package/dist/{update-runner-DdPdhkw5.js → update-runner-DvkWGO1t.js} +1 -1
- package/dist/{update-runner-CPOm0f_6.js → update-runner-WFWqzZw8.js} +1 -1
- package/dist/{web-DShKO-0L.js → web-BbEzqR_T.js} +6 -6
- package/dist/{web-DqjNQqGK.js → web-CEP_xmdJ.js} +2 -2
- package/dist/{web-ZnFT5LP9.js → web-DMBrhq3h.js} +1 -1
- package/dist/{web-DGLeD0Lo.js → web-WfZujXg4.js} +6 -6
- package/package.json +1 -1
- package/dist/plugin-sdk/web-C2OyRvIo.js +0 -65
|
@@ -35609,25 +35609,10 @@ function validateShellCommand(command) {
|
|
|
35609
35609
|
//#region src/agents/pi-tools.validate-wrapper.ts
|
|
35610
35610
|
const log$1 = createSubsystemLogger("agents/tool-validate");
|
|
35611
35611
|
const EXEC_TOOL_NAMES = new Set(["exec", "bash"]);
|
|
35612
|
-
const
|
|
35613
|
-
"write",
|
|
35614
|
-
"read",
|
|
35615
|
-
"edit",
|
|
35616
|
-
"patch",
|
|
35617
|
-
"file_write",
|
|
35618
|
-
"file_edit",
|
|
35619
|
-
"write_file",
|
|
35620
|
-
"edit_file",
|
|
35621
|
-
"create_file"
|
|
35622
|
-
]);
|
|
35623
|
-
const FILE_PATH_KEYS = [
|
|
35624
|
-
"file_path",
|
|
35625
|
-
"path",
|
|
35626
|
-
"filePath"
|
|
35627
|
-
];
|
|
35612
|
+
const GEMMA_MODEL_ID = "gemma";
|
|
35628
35613
|
/**
|
|
35629
|
-
* Wrap tools with argument
|
|
35630
|
-
*
|
|
35614
|
+
* Wrap ALL tools with universal string argument sanitization.
|
|
35615
|
+
* Exec/bash tools get additional structural command validation.
|
|
35631
35616
|
*
|
|
35632
35617
|
* Call this AFTER tools are created and the model profile is resolved.
|
|
35633
35618
|
*/
|
|
@@ -35637,44 +35622,64 @@ function wrapToolsWithArgValidation(tools, profile) {
|
|
|
35637
35622
|
return tools;
|
|
35638
35623
|
}
|
|
35639
35624
|
const wrapped = tools.map((tool) => wrapToolWithArgValidation(tool));
|
|
35640
|
-
|
|
35641
|
-
log$1.debug(`[validate] applied to ${wrappedNames.length} tools: ${wrappedNames.join(",") || "(none matched)"}`);
|
|
35625
|
+
log$1.debug(`[validate] universal sanitizer applied to ${wrapped.length} tools`);
|
|
35642
35626
|
return wrapped;
|
|
35643
35627
|
}
|
|
35644
35628
|
/**
|
|
35645
|
-
*
|
|
35646
|
-
* Returns
|
|
35629
|
+
* Sanitize a single string value: strip control tokens + residual fragments.
|
|
35630
|
+
* Returns the cleaned string, or the original if no changes needed.
|
|
35647
35631
|
*/
|
|
35648
|
-
function
|
|
35649
|
-
|
|
35650
|
-
|
|
35651
|
-
|
|
35652
|
-
|
|
35653
|
-
|
|
35654
|
-
|
|
35655
|
-
|
|
35632
|
+
function sanitizeString(value) {
|
|
35633
|
+
return cleanResidualTokenFragments(stripModelTokensAggressive(value, GEMMA_MODEL_ID));
|
|
35634
|
+
}
|
|
35635
|
+
/**
|
|
35636
|
+
* Check if a string contains control token patterns that need sanitization.
|
|
35637
|
+
* Fast check to avoid unnecessary work on clean strings.
|
|
35638
|
+
*/
|
|
35639
|
+
function needsSanitization(value) {
|
|
35640
|
+
return value.includes("<|") || value.includes("|>") || /^[<"|]/.test(value);
|
|
35641
|
+
}
|
|
35642
|
+
/**
|
|
35643
|
+
* Recursively sanitize all string values in a params object.
|
|
35644
|
+
* Returns a new object if any values were changed, or the original if clean.
|
|
35645
|
+
*/
|
|
35646
|
+
function sanitizeParams(params) {
|
|
35647
|
+
let changed = false;
|
|
35648
|
+
const cleaned = {};
|
|
35649
|
+
for (const [key, value] of Object.entries(params)) {
|
|
35650
|
+
if (typeof value === "string" && needsSanitization(value)) {
|
|
35651
|
+
const sanitized = sanitizeString(value);
|
|
35652
|
+
if (sanitized !== value) {
|
|
35653
|
+
cleaned[key] = sanitized;
|
|
35654
|
+
changed = true;
|
|
35655
|
+
continue;
|
|
35656
|
+
}
|
|
35657
|
+
}
|
|
35658
|
+
cleaned[key] = value;
|
|
35659
|
+
}
|
|
35656
35660
|
return {
|
|
35657
|
-
|
|
35658
|
-
|
|
35661
|
+
cleaned,
|
|
35662
|
+
changed
|
|
35659
35663
|
};
|
|
35660
35664
|
}
|
|
35661
35665
|
/**
|
|
35662
|
-
* Wrap a single tool with argument
|
|
35666
|
+
* Wrap a single tool with universal argument sanitization.
|
|
35663
35667
|
*/
|
|
35664
35668
|
function wrapToolWithArgValidation(tool) {
|
|
35665
35669
|
const toolName = (tool.name ?? "").toLowerCase().trim();
|
|
35666
35670
|
const isExecTool = EXEC_TOOL_NAMES.has(toolName);
|
|
35667
|
-
const isFileTool = FILE_TOOL_NAMES.has(toolName);
|
|
35668
|
-
if (!isExecTool && !isFileTool) return tool;
|
|
35669
35671
|
const originalExecute = tool.execute;
|
|
35670
35672
|
return {
|
|
35671
35673
|
...tool,
|
|
35672
35674
|
execute(toolCallId, params, ...rest) {
|
|
35675
|
+
const { cleaned, changed } = sanitizeParams(params);
|
|
35676
|
+
if (changed) log$1.debug(`[validate] sanitized args for ${toolName}: ${Object.keys(params).filter((k) => cleaned[k] !== params[k]).join(",")}`);
|
|
35677
|
+
const effectiveParams = changed ? cleaned : params;
|
|
35673
35678
|
if (isExecTool) {
|
|
35674
|
-
const command =
|
|
35679
|
+
const command = effectiveParams.command ?? effectiveParams.cmd;
|
|
35675
35680
|
if (typeof command !== "string") {
|
|
35676
|
-
log$1.debug(`[validate] exec called without string command: keys=${Object.keys(
|
|
35677
|
-
return originalExecute.call(tool, toolCallId,
|
|
35681
|
+
log$1.debug(`[validate] exec called without string command: keys=${Object.keys(effectiveParams).join(",")}`);
|
|
35682
|
+
return originalExecute.call(tool, toolCallId, effectiveParams, ...rest);
|
|
35678
35683
|
}
|
|
35679
35684
|
const result = validateShellCommand(command);
|
|
35680
35685
|
if (!result.valid) {
|
|
@@ -35684,22 +35689,12 @@ function wrapToolWithArgValidation(tool) {
|
|
|
35684
35689
|
if (result.cleaned !== command) {
|
|
35685
35690
|
log$1.debug(`[validate] exec command cleaned: raw=${command.slice(0, 80)} → cleaned=${result.cleaned.slice(0, 80)}`);
|
|
35686
35691
|
return originalExecute.call(tool, toolCallId, {
|
|
35687
|
-
...
|
|
35692
|
+
...effectiveParams,
|
|
35688
35693
|
command: result.cleaned
|
|
35689
35694
|
}, ...rest);
|
|
35690
35695
|
}
|
|
35691
|
-
return originalExecute.call(tool, toolCallId, params, ...rest);
|
|
35692
35696
|
}
|
|
35693
|
-
|
|
35694
|
-
if (!pathKey) return originalExecute.call(tool, toolCallId, params, ...rest);
|
|
35695
|
-
const rawPath = params[pathKey];
|
|
35696
|
-
if (!rawPath.includes("<|") && !rawPath.includes("|>") && !/^[<"|]/.test(rawPath)) return originalExecute.call(tool, toolCallId, params, ...rest);
|
|
35697
|
-
const pathResult = cleanFilePath(rawPath);
|
|
35698
|
-
if (!pathResult.valid) return Promise.resolve({ output: `Error: file path "${rawPath}" contains model control tokens and could not be cleaned. Please provide a clean file path without any <|, |>, or XML-like tags.` });
|
|
35699
|
-
return originalExecute.call(tool, toolCallId, {
|
|
35700
|
-
...params,
|
|
35701
|
-
[pathKey]: pathResult.cleaned
|
|
35702
|
-
}, ...rest);
|
|
35697
|
+
return originalExecute.call(tool, toolCallId, effectiveParams, ...rest);
|
|
35703
35698
|
}
|
|
35704
35699
|
};
|
|
35705
35700
|
}
|
|
@@ -53025,7 +53020,7 @@ function isVoiceChannelType(type) {
|
|
|
53025
53020
|
function createDefaultDeps() {
|
|
53026
53021
|
return {
|
|
53027
53022
|
sendMessageWhatsApp: async (...args) => {
|
|
53028
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
53023
|
+
const { sendMessageWhatsApp } = await import("./web-DMBrhq3h.js");
|
|
53029
53024
|
return await sendMessageWhatsApp(...args);
|
|
53030
53025
|
},
|
|
53031
53026
|
sendMessageTelegram: async (...args) => {
|
|
@@ -68339,7 +68334,7 @@ function loadWebLoginQr() {
|
|
|
68339
68334
|
return webLoginQrPromise;
|
|
68340
68335
|
}
|
|
68341
68336
|
function loadWebChannel() {
|
|
68342
|
-
webChannelPromise ??= import("./web-
|
|
68337
|
+
webChannelPromise ??= import("./web-DMBrhq3h.js");
|
|
68343
68338
|
return webChannelPromise;
|
|
68344
68339
|
}
|
|
68345
68340
|
function loadWhatsAppActions() {
|
|
@@ -10,10 +10,10 @@ import { $ as resolveSymiAgentDir, B as resolveApiKeyForProvider, C as normalize
|
|
|
10
10
|
import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
|
|
11
11
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
|
|
13
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
13
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-pubKo8HQ.js";
|
|
14
14
|
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-5SdHIcHU.js";
|
|
15
15
|
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-yb7sAlu4.js";
|
|
16
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
16
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DYZwl5Gv.js";
|
|
17
17
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Bs0AW1g3.js";
|
|
18
18
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
|
|
19
19
|
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-C7CauEK8.js";
|
|
@@ -31,10 +31,10 @@ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i
|
|
|
31
31
|
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, 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 resolveDiscordSystemLocation, 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 resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CvhXrdgS.js";
|
|
32
32
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
|
|
33
33
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
|
|
34
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, 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 throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
34
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, 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 throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-dODxSv3b.js";
|
|
35
35
|
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-rPhsBoZz.js";
|
|
36
36
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
37
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CXu8W39c.js";
|
|
38
38
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Bux9Y_xD.js";
|
|
39
39
|
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DYj_o4_F.js";
|
|
40
40
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Bv5YDJc8.js";
|
|
@@ -49,7 +49,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DL3f
|
|
|
49
49
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-DhZz0Ybs.js";
|
|
50
50
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-CTiz95Vb.js";
|
|
51
51
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-Bfc7Uz0o.js";
|
|
52
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-
|
|
52
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-WAG0M5s9.js";
|
|
53
53
|
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-DcVwOafC.js";
|
|
54
54
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DSDTl6Kj.js";
|
|
55
55
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bso4i15F.js";
|
|
@@ -80,7 +80,7 @@ import AjvPkg from "ajv";
|
|
|
80
80
|
import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
|
|
81
81
|
import { createServer } from "node:http";
|
|
82
82
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
83
|
-
import WebSocket
|
|
83
|
+
import WebSocket, { WebSocket as WebSocket$1 } from "ws";
|
|
84
84
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
85
85
|
import { EdgeTTS } from "node-edge-tts";
|
|
86
86
|
import { createJiti } from "jiti";
|
|
@@ -8636,7 +8636,7 @@ var GatewayClient = class {
|
|
|
8636
8636
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
8637
8637
|
});
|
|
8638
8638
|
}
|
|
8639
|
-
this.ws = new WebSocket(url, wsOptions);
|
|
8639
|
+
this.ws = new WebSocket$1(url, wsOptions);
|
|
8640
8640
|
this.ws.on("open", () => {
|
|
8641
8641
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
8642
8642
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -8855,7 +8855,7 @@ var GatewayClient = class {
|
|
|
8855
8855
|
return null;
|
|
8856
8856
|
}
|
|
8857
8857
|
async request(method, params, opts) {
|
|
8858
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
8858
|
+
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
8859
8859
|
const id = randomUUID();
|
|
8860
8860
|
const frame = {
|
|
8861
8861
|
type: "req",
|
|
@@ -10121,7 +10121,7 @@ async function routeReply(params) {
|
|
|
10121
10121
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10122
10122
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10123
10123
|
try {
|
|
10124
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10124
|
+
const { deliverOutboundPayloads } = await import("./deliver-dODxSv3b.js").then((n) => n.n);
|
|
10125
10125
|
return {
|
|
10126
10126
|
ok: true,
|
|
10127
10127
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -43560,7 +43560,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
43560
43560
|
return;
|
|
43561
43561
|
}
|
|
43562
43562
|
try {
|
|
43563
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
43563
|
+
const { deliverOutboundPayloads } = await import("./deliver-dODxSv3b.js").then((n) => n.n);
|
|
43564
43564
|
await deliverOutboundPayloads({
|
|
43565
43565
|
cfg: params.cfg,
|
|
43566
43566
|
channel,
|
|
@@ -47006,7 +47006,7 @@ async function describeStickerImage(params) {
|
|
|
47006
47006
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
47007
47007
|
try {
|
|
47008
47008
|
const buffer = await fs$1.readFile(imagePath);
|
|
47009
|
-
const { describeImageWithModel } = await import("./image-
|
|
47009
|
+
const { describeImageWithModel } = await import("./image-CXu8W39c.js").then((n) => n.n);
|
|
47010
47010
|
return (await describeImageWithModel({
|
|
47011
47011
|
buffer,
|
|
47012
47012
|
fileName: "sticker.webp",
|
|
@@ -49668,7 +49668,7 @@ async function preflightDiscordMessage(params) {
|
|
|
49668
49668
|
let preflightTranscript;
|
|
49669
49669
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
49670
49670
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
49671
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
49671
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DHTaS5U1.js");
|
|
49672
49672
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
49673
49673
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
49674
49674
|
ctx: {
|
|
@@ -53674,7 +53674,7 @@ function isVoiceChannelType(type) {
|
|
|
53674
53674
|
function createDefaultDeps() {
|
|
53675
53675
|
return {
|
|
53676
53676
|
sendMessageWhatsApp: async (...args) => {
|
|
53677
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
53677
|
+
const { sendMessageWhatsApp } = await import("./web-BbEzqR_T.js");
|
|
53678
53678
|
return await sendMessageWhatsApp(...args);
|
|
53679
53679
|
},
|
|
53680
53680
|
sendMessageTelegram: async (...args) => {
|
|
@@ -56579,7 +56579,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
56579
56579
|
super(options);
|
|
56580
56580
|
}
|
|
56581
56581
|
createWebSocket(url) {
|
|
56582
|
-
return new WebSocket
|
|
56582
|
+
return new WebSocket(url, { agent });
|
|
56583
56583
|
}
|
|
56584
56584
|
}
|
|
56585
56585
|
return new ProxyGatewayPlugin();
|
|
@@ -66797,7 +66797,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
66797
66797
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
66798
66798
|
let preflightTranscript;
|
|
66799
66799
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
66800
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
66800
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DHTaS5U1.js");
|
|
66801
66801
|
preflightTranscript = await transcribeFirstAudio({
|
|
66802
66802
|
ctx: {
|
|
66803
66803
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -68954,7 +68954,7 @@ function loadWebLoginQr() {
|
|
|
68954
68954
|
return webLoginQrPromise;
|
|
68955
68955
|
}
|
|
68956
68956
|
function loadWebChannel() {
|
|
68957
|
-
webChannelPromise ??= import("./web-
|
|
68957
|
+
webChannelPromise ??= import("./web-BbEzqR_T.js");
|
|
68958
68958
|
return webChannelPromise;
|
|
68959
68959
|
}
|
|
68960
68960
|
function loadWhatsAppActions() {
|
|
@@ -75527,25 +75527,10 @@ function validateShellCommand(command) {
|
|
|
75527
75527
|
//#region src/agents/pi-tools.validate-wrapper.ts
|
|
75528
75528
|
const log = createSubsystemLogger("agents/tool-validate");
|
|
75529
75529
|
const EXEC_TOOL_NAMES = new Set(["exec", "bash"]);
|
|
75530
|
-
const
|
|
75531
|
-
"write",
|
|
75532
|
-
"read",
|
|
75533
|
-
"edit",
|
|
75534
|
-
"patch",
|
|
75535
|
-
"file_write",
|
|
75536
|
-
"file_edit",
|
|
75537
|
-
"write_file",
|
|
75538
|
-
"edit_file",
|
|
75539
|
-
"create_file"
|
|
75540
|
-
]);
|
|
75541
|
-
const FILE_PATH_KEYS = [
|
|
75542
|
-
"file_path",
|
|
75543
|
-
"path",
|
|
75544
|
-
"filePath"
|
|
75545
|
-
];
|
|
75530
|
+
const GEMMA_MODEL_ID = "gemma";
|
|
75546
75531
|
/**
|
|
75547
|
-
* Wrap tools with argument
|
|
75548
|
-
*
|
|
75532
|
+
* Wrap ALL tools with universal string argument sanitization.
|
|
75533
|
+
* Exec/bash tools get additional structural command validation.
|
|
75549
75534
|
*
|
|
75550
75535
|
* Call this AFTER tools are created and the model profile is resolved.
|
|
75551
75536
|
*/
|
|
@@ -75555,44 +75540,64 @@ function wrapToolsWithArgValidation(tools, profile) {
|
|
|
75555
75540
|
return tools;
|
|
75556
75541
|
}
|
|
75557
75542
|
const wrapped = tools.map((tool) => wrapToolWithArgValidation(tool));
|
|
75558
|
-
|
|
75559
|
-
log.debug(`[validate] applied to ${wrappedNames.length} tools: ${wrappedNames.join(",") || "(none matched)"}`);
|
|
75543
|
+
log.debug(`[validate] universal sanitizer applied to ${wrapped.length} tools`);
|
|
75560
75544
|
return wrapped;
|
|
75561
75545
|
}
|
|
75562
75546
|
/**
|
|
75563
|
-
*
|
|
75564
|
-
* Returns
|
|
75547
|
+
* Sanitize a single string value: strip control tokens + residual fragments.
|
|
75548
|
+
* Returns the cleaned string, or the original if no changes needed.
|
|
75565
75549
|
*/
|
|
75566
|
-
function
|
|
75567
|
-
|
|
75568
|
-
|
|
75569
|
-
|
|
75570
|
-
|
|
75571
|
-
|
|
75572
|
-
|
|
75573
|
-
|
|
75550
|
+
function sanitizeString(value) {
|
|
75551
|
+
return cleanResidualTokenFragments(stripModelTokensAggressive(value, GEMMA_MODEL_ID));
|
|
75552
|
+
}
|
|
75553
|
+
/**
|
|
75554
|
+
* Check if a string contains control token patterns that need sanitization.
|
|
75555
|
+
* Fast check to avoid unnecessary work on clean strings.
|
|
75556
|
+
*/
|
|
75557
|
+
function needsSanitization(value) {
|
|
75558
|
+
return value.includes("<|") || value.includes("|>") || /^[<"|]/.test(value);
|
|
75559
|
+
}
|
|
75560
|
+
/**
|
|
75561
|
+
* Recursively sanitize all string values in a params object.
|
|
75562
|
+
* Returns a new object if any values were changed, or the original if clean.
|
|
75563
|
+
*/
|
|
75564
|
+
function sanitizeParams(params) {
|
|
75565
|
+
let changed = false;
|
|
75566
|
+
const cleaned = {};
|
|
75567
|
+
for (const [key, value] of Object.entries(params)) {
|
|
75568
|
+
if (typeof value === "string" && needsSanitization(value)) {
|
|
75569
|
+
const sanitized = sanitizeString(value);
|
|
75570
|
+
if (sanitized !== value) {
|
|
75571
|
+
cleaned[key] = sanitized;
|
|
75572
|
+
changed = true;
|
|
75573
|
+
continue;
|
|
75574
|
+
}
|
|
75575
|
+
}
|
|
75576
|
+
cleaned[key] = value;
|
|
75577
|
+
}
|
|
75574
75578
|
return {
|
|
75575
|
-
|
|
75576
|
-
|
|
75579
|
+
cleaned,
|
|
75580
|
+
changed
|
|
75577
75581
|
};
|
|
75578
75582
|
}
|
|
75579
75583
|
/**
|
|
75580
|
-
* Wrap a single tool with argument
|
|
75584
|
+
* Wrap a single tool with universal argument sanitization.
|
|
75581
75585
|
*/
|
|
75582
75586
|
function wrapToolWithArgValidation(tool) {
|
|
75583
75587
|
const toolName = (tool.name ?? "").toLowerCase().trim();
|
|
75584
75588
|
const isExecTool = EXEC_TOOL_NAMES.has(toolName);
|
|
75585
|
-
const isFileTool = FILE_TOOL_NAMES.has(toolName);
|
|
75586
|
-
if (!isExecTool && !isFileTool) return tool;
|
|
75587
75589
|
const originalExecute = tool.execute;
|
|
75588
75590
|
return {
|
|
75589
75591
|
...tool,
|
|
75590
75592
|
execute(toolCallId, params, ...rest) {
|
|
75593
|
+
const { cleaned, changed } = sanitizeParams(params);
|
|
75594
|
+
if (changed) log.debug(`[validate] sanitized args for ${toolName}: ${Object.keys(params).filter((k) => cleaned[k] !== params[k]).join(",")}`);
|
|
75595
|
+
const effectiveParams = changed ? cleaned : params;
|
|
75591
75596
|
if (isExecTool) {
|
|
75592
|
-
const command =
|
|
75597
|
+
const command = effectiveParams.command ?? effectiveParams.cmd;
|
|
75593
75598
|
if (typeof command !== "string") {
|
|
75594
|
-
log.debug(`[validate] exec called without string command: keys=${Object.keys(
|
|
75595
|
-
return originalExecute.call(tool, toolCallId,
|
|
75599
|
+
log.debug(`[validate] exec called without string command: keys=${Object.keys(effectiveParams).join(",")}`);
|
|
75600
|
+
return originalExecute.call(tool, toolCallId, effectiveParams, ...rest);
|
|
75596
75601
|
}
|
|
75597
75602
|
const result = validateShellCommand(command);
|
|
75598
75603
|
if (!result.valid) {
|
|
@@ -75602,22 +75607,12 @@ function wrapToolWithArgValidation(tool) {
|
|
|
75602
75607
|
if (result.cleaned !== command) {
|
|
75603
75608
|
log.debug(`[validate] exec command cleaned: raw=${command.slice(0, 80)} → cleaned=${result.cleaned.slice(0, 80)}`);
|
|
75604
75609
|
return originalExecute.call(tool, toolCallId, {
|
|
75605
|
-
...
|
|
75610
|
+
...effectiveParams,
|
|
75606
75611
|
command: result.cleaned
|
|
75607
75612
|
}, ...rest);
|
|
75608
75613
|
}
|
|
75609
|
-
return originalExecute.call(tool, toolCallId, params, ...rest);
|
|
75610
75614
|
}
|
|
75611
|
-
|
|
75612
|
-
if (!pathKey) return originalExecute.call(tool, toolCallId, params, ...rest);
|
|
75613
|
-
const rawPath = params[pathKey];
|
|
75614
|
-
if (!rawPath.includes("<|") && !rawPath.includes("|>") && !/^[<"|]/.test(rawPath)) return originalExecute.call(tool, toolCallId, params, ...rest);
|
|
75615
|
-
const pathResult = cleanFilePath(rawPath);
|
|
75616
|
-
if (!pathResult.valid) return Promise.resolve({ output: `Error: file path "${rawPath}" contains model control tokens and could not be cleaned. Please provide a clean file path without any <|, |>, or XML-like tags.` });
|
|
75617
|
-
return originalExecute.call(tool, toolCallId, {
|
|
75618
|
-
...params,
|
|
75619
|
-
[pathKey]: pathResult.cleaned
|
|
75620
|
-
}, ...rest);
|
|
75615
|
+
return originalExecute.call(tool, toolCallId, effectiveParams, ...rest);
|
|
75621
75616
|
}
|
|
75622
75617
|
};
|
|
75623
75618
|
}
|
|
@@ -16,7 +16,7 @@ import "./client-DMBZpU6X.js";
|
|
|
16
16
|
import "./call-BcE47FtD.js";
|
|
17
17
|
import "./message-channel-C9dERklz.js";
|
|
18
18
|
import "./pairing-token-Byh6drgn.js";
|
|
19
|
-
import { Ct as trimLogTail } from "./subagent-registry-
|
|
19
|
+
import { Ct as trimLogTail } from "./subagent-registry-DovA8Baf.js";
|
|
20
20
|
import "./sessions-CJXnZVjR.js";
|
|
21
21
|
import "./tokens-Csntmwwn.js";
|
|
22
22
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -111,10 +111,10 @@ import "./npm-registry-spec-DkaZNHAW.js";
|
|
|
111
111
|
import "./skill-scanner-BGWOBqLY.js";
|
|
112
112
|
import "./installs-CgQpVncj.js";
|
|
113
113
|
import "./channels-status-issues-c7qZbYG5.js";
|
|
114
|
-
import "./register.subclis-
|
|
115
|
-
import "./command-registry-
|
|
114
|
+
import "./register.subclis-Bop-tTBx.js";
|
|
115
|
+
import "./command-registry-CLcFUFJs.js";
|
|
116
116
|
import "./program-context-CqzR_m-7.js";
|
|
117
|
-
import { r as installCompletion } from "./completion-cli-
|
|
117
|
+
import { r as installCompletion } from "./completion-cli-BzXhONEe.js";
|
|
118
118
|
import "./daemon-runtime-CfRwa6qh.js";
|
|
119
119
|
import { r as parseSemver } from "./runtime-guard-D7waq_Ho.js";
|
|
120
120
|
import "./systemd-DlMdyFDY.js";
|
|
@@ -124,19 +124,19 @@ import "./systemd-hints-sQipWGd1.js";
|
|
|
124
124
|
import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-wWnBIQtk.js";
|
|
125
125
|
import "./diagnostics-CS1ov_hH.js";
|
|
126
126
|
import { t as renderTable } from "./table-D01d2GuY.js";
|
|
127
|
-
import "./health-
|
|
127
|
+
import "./health-CBwxQHlQ.js";
|
|
128
128
|
import "./control-ui-assets-BseSWee1.js";
|
|
129
129
|
import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-ZdimP1aU.js";
|
|
130
130
|
import "./dm-policy-shared-DJ-61hCT.js";
|
|
131
131
|
import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-DbmZz0Aq.js";
|
|
132
|
-
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-
|
|
132
|
+
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-DvkWGO1t.js";
|
|
133
133
|
import "./logging-BGewRZy0.js";
|
|
134
134
|
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DEMKx4eC.js";
|
|
135
135
|
import "./doctor-config-flow-CA3eiKhd.js";
|
|
136
136
|
import "./systemd-linger-DA_LW52P.js";
|
|
137
137
|
import "./health-format-CzgUHmmX.js";
|
|
138
|
-
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-
|
|
139
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
138
|
+
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CghdSf8F.js";
|
|
139
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CislKWHy.js";
|
|
140
140
|
import { spawn, spawnSync } from "node:child_process";
|
|
141
141
|
import os from "node:os";
|
|
142
142
|
import path from "node:path";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { B as theme, h as pathExists } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import { V as trimLogTail } from "./reply-
|
|
4
|
+
import { V as trimLogTail } from "./reply-BR3MMmPE.js";
|
|
5
5
|
import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
6
6
|
import "./registry-Cja8eT7G.js";
|
|
7
7
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
@@ -106,7 +106,7 @@ import "./stagger-BUClb97_.js";
|
|
|
106
106
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-C8_BLnaW.js";
|
|
107
107
|
import "./channel-selection-DuWs0Aak.js";
|
|
108
108
|
import { r as parseSemver } from "./runtime-guard-B37eizu-.js";
|
|
109
|
-
import "./program-context-
|
|
109
|
+
import "./program-context-Bz_GuT_l.js";
|
|
110
110
|
import "./catalog-RiADx7MA.js";
|
|
111
111
|
import "./skills-status-CURJKnyY.js";
|
|
112
112
|
import { n as inheritOptionFromParent } from "./command-options-BtDai3oC.js";
|
|
@@ -117,7 +117,7 @@ import "./npm-registry-spec-C2JDdSZS.js";
|
|
|
117
117
|
import "./skill-scanner-CLs8u6vQ.js";
|
|
118
118
|
import "./installs-C1Cebk97.js";
|
|
119
119
|
import "./channels-status-issues-B_kBkl_u.js";
|
|
120
|
-
import { r as installCompletion } from "./completion-cli-
|
|
120
|
+
import { r as installCompletion } from "./completion-cli-MbaQCbTj.js";
|
|
121
121
|
import "./daemon-runtime-2mwX-jqj.js";
|
|
122
122
|
import "./systemd-riq8uNJQ.js";
|
|
123
123
|
import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
|
|
@@ -126,19 +126,19 @@ import "./systemd-hints-BR6gChwm.js";
|
|
|
126
126
|
import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-DscwlsKW.js";
|
|
127
127
|
import "./diagnostics-BAMlsVVX.js";
|
|
128
128
|
import { t as renderTable } from "./table-BTgkRafz.js";
|
|
129
|
-
import "./health-
|
|
129
|
+
import "./health-D4ySlvOE.js";
|
|
130
130
|
import "./control-ui-assets-Z947tKLt.js";
|
|
131
131
|
import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-CtckACbb.js";
|
|
132
132
|
import "./dm-policy-shared-Bh3TbexU.js";
|
|
133
133
|
import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-DtwCUTf-.js";
|
|
134
|
-
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-
|
|
134
|
+
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-WFWqzZw8.js";
|
|
135
135
|
import "./logging-BzzwiKjv.js";
|
|
136
136
|
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-rw7wJwHd.js";
|
|
137
137
|
import "./doctor-config-flow-QnaBd8kL.js";
|
|
138
138
|
import "./systemd-linger-aQ75ZlXY.js";
|
|
139
139
|
import "./health-format-DSwnXZPU.js";
|
|
140
|
-
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-
|
|
141
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
140
|
+
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-BKnaBZhj.js";
|
|
141
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BZ-FYLu9.js";
|
|
142
142
|
import os from "node:os";
|
|
143
143
|
import path from "node:path";
|
|
144
144
|
import fs from "node:fs/promises";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { nt as pathExists } from "./entry.js";
|
|
2
2
|
import { t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
|
|
3
|
-
import { Ct as trimLogTail } from "./subagent-registry-
|
|
3
|
+
import { Ct as trimLogTail } from "./subagent-registry-DovA8Baf.js";
|
|
4
4
|
import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-BseSWee1.js";
|
|
5
5
|
import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-ZdimP1aU.js";
|
|
6
6
|
import os from "node:os";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h as pathExists } from "./utils-B-0b9bGM.js";
|
|
2
|
-
import { V as trimLogTail } from "./reply-
|
|
2
|
+
import { V as trimLogTail } from "./reply-BR3MMmPE.js";
|
|
3
3
|
import { t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
|
|
4
4
|
import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-Z947tKLt.js";
|
|
5
5
|
import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-CtckACbb.js";
|
|
@@ -4,16 +4,16 @@ import { A as isSelfChatMode, B as sleep, C as clamp, F as resolveJidToE164, H a
|
|
|
4
4
|
import "./agent-scope-CpEJ0B88.js";
|
|
5
5
|
import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
|
|
6
6
|
import "./workspace-DscDraUb.js";
|
|
7
|
-
import { C as resolveEnvelopeFormatOptions, D as normalizeMentionText, E as buildMentionRegexes, S as formatInboundEnvelope, T as shouldComputeCommandAuthorized, _ as parseActivationCommand, b as createInboundDebouncer, c as DEFAULT_GROUP_HISTORY_LIMIT, d as shouldAckReactionForWhatsApp, f as dispatchReplyWithBufferedBlockDispatcher, g as normalizeGroupActivation, h as getReplyFromConfig, l as buildHistoryContextFromEntries, m as createDedupeCache, n as computeBackoff, o as buildPairingReply, r as sleepWithAbort, s as resolveMentionGating, u as recordPendingHistoryEntryIfEnabled, v as formatDurationPrecise, w as hasControlCommand, x as resolveInboundDebounceMs, y as enqueueSystemEvent } from "./unified-runner-
|
|
7
|
+
import { C as resolveEnvelopeFormatOptions, D as normalizeMentionText, E as buildMentionRegexes, S as formatInboundEnvelope, T as shouldComputeCommandAuthorized, _ as parseActivationCommand, b as createInboundDebouncer, c as DEFAULT_GROUP_HISTORY_LIMIT, d as shouldAckReactionForWhatsApp, f as dispatchReplyWithBufferedBlockDispatcher, g as normalizeGroupActivation, h as getReplyFromConfig, l as buildHistoryContextFromEntries, m as createDedupeCache, n as computeBackoff, o as buildPairingReply, r as sleepWithAbort, s as resolveMentionGating, u as recordPendingHistoryEntryIfEnabled, v as formatDurationPrecise, w as hasControlCommand, x as resolveInboundDebounceMs, y as enqueueSystemEvent } from "./unified-runner-OplgmcEq.js";
|
|
8
8
|
import { s as resolveStorePath } from "./paths-CbQV9WEg.js";
|
|
9
9
|
import "./auth-profiles-DdK1Hxaa.js";
|
|
10
10
|
import { n as formatCliCommand } from "./env-BDXYbTKj.js";
|
|
11
11
|
import "./github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import "./boolean-CE7i9tBR.js";
|
|
13
|
-
import { Ct as resolveGroupSessionKey, G as updateLastRoute, H as loadSessionStore, U as readSessionUpdatedAt, W as recordSessionMetaFromInbound } from "./pi-embedded-helpers-
|
|
13
|
+
import { Ct as resolveGroupSessionKey, G as updateLastRoute, H as loadSessionStore, U as readSessionUpdatedAt, W as recordSessionMetaFromInbound } from "./pi-embedded-helpers-pubKo8HQ.js";
|
|
14
14
|
import { n as loadConfig } from "./config-5SdHIcHU.js";
|
|
15
15
|
import "./manifest-registry-yb7sAlu4.js";
|
|
16
|
-
import "./chrome-
|
|
16
|
+
import "./chrome-DYZwl5Gv.js";
|
|
17
17
|
import "./frontmatter-CTR5f_Ez.js";
|
|
18
18
|
import "./skills-Bs0AW1g3.js";
|
|
19
19
|
import "./redact-BDMXB06K.js";
|
|
@@ -31,10 +31,10 @@ import "./bindings-BsHoBLIE.js";
|
|
|
31
31
|
import "./send-CVMyYPQw.js";
|
|
32
32
|
import "./send-CvhXrdgS.js";
|
|
33
33
|
import "./tool-images-SqqWIT22.js";
|
|
34
|
-
import "./deliver-
|
|
34
|
+
import "./deliver-dODxSv3b.js";
|
|
35
35
|
import "./diagnostic-rPhsBoZz.js";
|
|
36
36
|
import "./diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import "./image-
|
|
37
|
+
import "./image-CXu8W39c.js";
|
|
38
38
|
import "./tokens-Bux9Y_xD.js";
|
|
39
39
|
import { G as formatLocationText, J as readChannelAllowFromStore, K as toLocationContext, X as upsertChannelPairingRequest } from "./send-DYj_o4_F.js";
|
|
40
40
|
import "./pi-model-discovery-Bv5YDJc8.js";
|
|
@@ -50,7 +50,7 @@ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-DhZz0Ybs.js";
|
|
|
50
50
|
import { a as loadWebMedia } from "./ir-CTiz95Vb.js";
|
|
51
51
|
import "./render-CDCvpfhh.js";
|
|
52
52
|
import "./commands-registry-Bfc7Uz0o.js";
|
|
53
|
-
import { y as registerUnhandledRejectionHandler } from "./runner-
|
|
53
|
+
import { y as registerUnhandledRejectionHandler } from "./runner-WAG0M5s9.js";
|
|
54
54
|
import "./skill-commands-DcVwOafC.js";
|
|
55
55
|
import { t as finalizeInboundContext } from "./inbound-context-DSDTl6Kj.js";
|
|
56
56
|
import "./fetch-Bso4i15F.js";
|