@symerian/symi 2.6.42 → 2.7.0
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-DDuIpcln.js → accounts-Cd816n6l.js} +7 -7
- package/dist/{accounts-bK-Yqdwx.js → accounts-CokRskCl.js} +1 -1
- package/dist/{accounts-DyJN4_vR.js → accounts-mN_EcgxC.js} +1 -1
- package/dist/{acp-cli-CrEIx-c7.js → acp-cli-COzlJi3B.js} +6 -6
- package/dist/{agent-scope-CgUHAtCo.js → agent-scope-BRwEc2pG.js} +18 -18
- package/dist/{agents-DDRDszOI.js → agents-Cu2bthAX.js} +4 -4
- package/dist/{agents.config-BKCY6F2A.js → agents.config-5PTwsijs.js} +1 -1
- package/dist/{agents.config-BEVb1Pyx.js → agents.config-Dib8Uo2P.js} +2 -2
- package/dist/{api-key-rotation-CzuPlV2t.js → api-key-rotation-CEr3lKih.js} +1 -1
- package/dist/{audio-preflight-CIiS5cfP.js → audio-preflight-mj-z_vQ6.js} +28 -28
- package/dist/{audit-DB9YkTVX.js → audit-Djfdh06o.js} +23 -23
- package/dist/{auth-choice-BbzReh6k.js → auth-choice-5gul6jy2.js} +1 -1
- package/dist/{auth-choice-D2xXwBeN.js → auth-choice-CmSUU3t8.js} +8 -8
- package/dist/{auth-token-Cay2jwzn.js → auth-token-83A2btbE.js} +1 -1
- package/dist/{banner-DqqRwplt.js → banner-B4vQpMIJ.js} +1 -1
- package/dist/{bindings-DFaVVCsf.js → bindings-ChzePa8q.js} +1 -1
- package/dist/{browser-cli-Ctn9do4z.js → browser-cli-BTD0NlrA.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/{call-DwpGquzW.js → call-tmHtVCkn.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-DQcpDVCx.js → channel-options-DVf4CJIu.js} +1 -1
- package/dist/{channel-options-DcazVJQf.js → channel-options-DsWGc55A.js} +2 -2
- package/dist/{channel-selection-V2xDgw16.js → channel-selection-DaJDux-Q.js} +1 -1
- package/dist/{channel-web-u5yMYO4j.js → channel-web-vGC-WJXi.js} +17 -17
- package/dist/{channels-cli-Bog4Kn3X.js → channels-cli-COayA28A.js} +76 -76
- package/dist/{channels-cli-C3iJE8eg.js → channels-cli-CSv05N3q.js} +4 -4
- package/dist/{channels-status-issues-CJ0Vb_9z.js → channels-status-issues-B_PI3nEE.js} +1 -1
- package/dist/{chrome-DU2ZysN3.js → chrome-CSJzpT9Z.js} +2 -2
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-eBtEEHLK.js → cli-B-g79xPe.js} +1 -1
- package/dist/{cli-QybdZdE7.js → cli-DJjOxip6.js} +63 -63
- package/dist/{client-jI1oE0_k.js → client-Bj_vTpri.js} +1 -1
- package/dist/{command-registry-BWnZSpbL.js → command-registry-BvpLfzl7.js} +9 -9
- package/dist/{commands-BNLCWX6e.js → commands-CtocZ4Lg.js} +1 -1
- package/dist/{commands-registry-BT0-zzs3.js → commands-registry-BZ0ZSQpM.js} +3 -3
- package/dist/{completion-cli-CUKm7Hb6.js → completion-cli-CfRZ-7QF.js} +2 -2
- package/dist/{completion-cli-BhJFXaVU.js → completion-cli-DtQcXg1N.js} +12 -12
- package/dist/{config-cli-CjnQyv45.js → config-cli-D9Z78raJ.js} +4 -4
- package/dist/{config-cli-B796xZBe.js → config-cli-DL2RdfLM.js} +1 -1
- package/dist/{config-guard-CEkSg4hl.js → config-guard-4oRmpR0a.js} +12 -12
- package/dist/{config-Dz95lSBW.js → config-tNauHpdq.js} +2 -2
- package/dist/{config-validation-HDVDlMSV.js → config-validation-BoDWiwe3.js} +1 -1
- package/dist/{configure-DUqT7Dyn.js → configure-Dq4f8WPa.js} +3 -3
- package/dist/{configure-D3wIQ0yI.js → configure-jDpF8lmx.js} +15 -15
- package/dist/{control-service-BYKXzY4f.js → control-service-BBnhN7aZ.js} +4 -4
- package/dist/control-ui/css/style.css +51 -0
- package/dist/control-ui/js/app.js +39 -0
- package/dist/control-ui/js/gateway.js +2 -0
- package/dist/control-ui/js/settings.js +71 -8
- package/dist/{control-ui-assets-B7moDVHX.js → control-ui-assets-6n-YayeS.js} +1 -1
- package/dist/{cron-cli-DCpsXkrw.js → cron-cli-D165ecaj.js} +10 -10
- package/dist/{daemon-cli-DSDcmWOi.js → daemon-cli-BccZzUb0.js} +11 -11
- package/dist/{daemon-runtime-mE1b-Q48.js → daemon-runtime-u01h46bE.js} +10 -10
- package/dist/{deliver-B4KZ6-oZ.js → deliver-BYdNAEqj.js} +7 -7
- package/dist/{devices-cli-x3jIP4Ih.js → devices-cli-D0N71nqX.js} +6 -6
- package/dist/{diagnostics-BRwihzJG.js → diagnostics-BrUo0gqs.js} +5 -5
- package/dist/{directory-cli-KgsAVTA0.js → directory-cli-aj7aXIBM.js} +7 -7
- package/dist/{dm-policy-shared-DlDAGtZL.js → dm-policy-shared-epgkayyq.js} +2 -2
- package/dist/{dns-cli-Cwr92Aiq.js → dns-cli-Dit09wbu.js} +3 -3
- package/dist/{dock-BhS32F6E.js → dock-BYiRZSgZ.js} +4 -4
- package/dist/{docs-cli-qE-blOLC.js → docs-cli-CyWGMA-e.js} +1 -1
- package/dist/{doctor-completion-D3oUNFQM.js → doctor-completion-Ccb83Wl5.js} +2 -2
- package/dist/{doctor-completion-DBE1IVKj.js → doctor-completion-oQemZItC.js} +1 -1
- package/dist/{doctor-config-flow-iIzSEQxb.js → doctor-config-flow-BXmHd2bb.js} +10 -10
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-BSgxsdMt.js → exec-approvals-cli-CZ-iTtNO.js} +13 -13
- package/dist/extensionAPI.js +1 -1
- package/dist/{fs-safe-CUjO1ca2.js → fs-safe-CTDvb1DF.js} +6 -6
- package/dist/{gateway-cli-BguO9yV4.js → gateway-cli-C1zPKZ7B.js} +135 -120
- package/dist/{gateway-cli-Dc1RT_b9.js → gateway-cli-zbVm1MBQ.js} +30 -15
- package/dist/{gateway-rpc-5fREQe9Q.js → gateway-rpc-B1Wzoj99.js} +1 -1
- package/dist/{glass-ui-ws-D0UYleBF.js → glass-ui-ws-CvUFd4C6.js} +28 -9
- package/dist/{glass-ui-ws-DoIZyE9O.js → glass-ui-ws-D3tAmqKX.js} +104 -85
- package/dist/{health-cVvZdeDu.js → health-DQEqLYg1.js} +1 -1
- package/dist/{health-D3w4YMlC.js → health-o847FIt1.js} +13 -13
- package/dist/{hooks-cli-DZIbjfOA.js → hooks-cli-D_UW9fc8.js} +2 -2
- package/dist/{hooks-cli-te5hzOAB.js → hooks-cli-sYjbF4I6.js} +77 -77
- package/dist/{image-BWmcNF8N.js → image-lCS3o9xj.js} +3 -3
- package/dist/{image-ops-1OJMSAUX.js → image-ops-DYbDWaIA.js} +10 -10
- package/dist/index.js +73 -73
- package/dist/{inspect-CvbbCuoa.js → inspect-CNYyHVfH.js} +4 -4
- package/dist/{install-safe-path-D3Uz77u7.js → install-safe-path-D3mg1DMG.js} +11 -11
- package/dist/{installs-DQcRVF1U.js → installs-CYTVYWH_.js} +10 -10
- package/dist/{ir-DZam9q5M.js → ir-Dt4hOzxG.js} +6 -6
- package/dist/{lifecycle-core-C4HzGXA1.js → lifecycle-core-DxmxQdhS.js} +5 -5
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{local-roots-aAFLQGkY.js → local-roots-BBeKX7PX.js} +2 -2
- package/dist/{login-DODfJ3Dn.js → login-CnjdNmGD.js} +3 -3
- package/dist/{login-qr-CBRxijIg.js → login-qr-DUf6CM0M.js} +5 -5
- package/dist/{logs-cli-CfGj-dOg.js → logs-cli-BVd6h2-Q.js} +7 -7
- package/dist/{manager-D4LJSRyZ.js → manager-C1CfGzZ2.js} +13 -13
- package/dist/{markdown-tables-CEbN0fEm.js → markdown-tables-ZwP14ydw.js} +1 -1
- package/dist/{memory-cli-DDumUksr.js → memory-cli-DhkRAIdT.js} +14 -14
- package/dist/{model-tWhwnFf8.js → model-CeeOcylL.js} +1 -1
- package/dist/{model-catalog-8Son0J4O.js → model-catalog-CvbwxWuC.js} +4 -4
- package/dist/{model-picker-CAm2Bftd.js → model-picker-C2MqloOs.js} +3 -3
- package/dist/{model-selection-CyFvYcRt.js → model-selection-X1oLh3CE.js} +9 -9
- package/dist/{models-BCfPhQ4m.js → models-Zol34e73.js} +2 -2
- package/dist/{models-cli-Cj2CwbPw.js → models-cli-BzcEA9oa.js} +3 -3
- package/dist/{models-cli-BFAtjNIF.js → models-cli-DnMUzr15.js} +72 -72
- package/dist/{models-config-CFFjJPe7.js → models-config-CEMioDUi.js} +7 -7
- package/dist/{node-cli-DnfDOh1d.js → node-cli-BVJid4L_.js} +28 -28
- package/dist/{node-service-CD47Qpf1.js → node-service-CXzMs782.js} +1 -1
- package/dist/{nodes-cli-Ci3oxw8k.js → nodes-cli-BN2Nslim.js} +10 -10
- package/dist/{nodes-screen-8Bq7DiSa.js → nodes-screen-Cd49cSPb.js} +4 -4
- package/dist/{npm-registry-spec-C0CPT3vr.js → npm-registry-spec-DchndI6P.js} +9 -9
- package/dist/{onboard-VcdBF5TB.js → onboard-CSseK0Co.js} +13 -13
- package/dist/{onboard-BMq8qc1m.js → onboard-CxOT_xD4.js} +2 -2
- package/dist/{onboard-channels-CiOun4k1.js → onboard-channels-CUlITipG.js} +5 -5
- package/dist/{onboard-channels-B5wgcffj.js → onboard-channels-D-lh_Vh1.js} +1 -1
- package/dist/{onboard-custom-XiomtQr7.js → onboard-custom-DTcLdtA9.js} +3 -3
- package/dist/{onboard-helpers-DFvWPFhU.js → onboard-helpers-CdPNw25E.js} +8 -8
- package/dist/{onboard-hooks-C3ok8kqB.js → onboard-hooks-C_2_jpWg.js} +1 -1
- package/dist/{onboard-remote-BURDxwoE.js → onboard-remote-v6QMnyJD.js} +1 -1
- package/dist/{onboard-skills-CbzgBT1W.js → onboard-skills-CQtkRP20.js} +4 -4
- package/dist/{onboarding-Dp7p6zKa.js → onboarding-DktESmTv.js} +3 -3
- package/dist/{onboarding-CGNpTyg2.js → onboarding-Dn5agNG_.js} +13 -13
- package/dist/{onboarding.finalize-CrsE5P43.js → onboarding.finalize-Bm-1Kdnh.js} +6 -6
- package/dist/{onboarding.finalize-B6DOu8vp.js → onboarding.finalize-CTIZ1zvV.js} +75 -75
- package/dist/{onboarding.gateway-config-DKwJ5bWd.js → onboarding.gateway-config-CwnQkyO0.js} +14 -14
- package/dist/{openai-model-default-WqcGxyFM.js → openai-model-default-4kBA1_78.js} +2 -2
- package/dist/{outbound-wnv03tb3.js → outbound-_Ir3M05f.js} +4 -4
- package/dist/{outbound-attachment-Bw-c5Cdp.js → outbound-attachment-Qfh5dlsg.js} +2 -2
- package/dist/{pairing-cli-DSM82gJG.js → pairing-cli-C8UXBJ_A.js} +8 -8
- package/dist/{pairing-labels-DyXoD1DS.js → pairing-labels-Dxb898X5.js} +1 -1
- package/dist/{pairing-store-CK726Dzq.js → pairing-store-B8ktu-6j.js} +2 -2
- package/dist/{pairing-token-CX3NN_qj.js → pairing-token-AV-MMfVE.js} +7 -7
- package/dist/{paths-BBm9fwuG.js → paths-CT6jsi4E.js} +1 -1
- package/dist/{pi-auth-json-zHckislA.js → pi-auth-json-FpfHyEcu.js} +5 -5
- package/dist/{pi-embedded-DQe8vBwU.js → pi-embedded-CYDMb5q0.js} +46 -7
- package/dist/{pi-embedded-helpers-BgdB5kvy.js → pi-embedded-helpers-Bs4eMaNo.js} +6 -6
- package/dist/{pi-tools.policy-DRWb_Cax.js → pi-tools.policy-BBxnqCay.js} +4 -4
- package/dist/{plugin-auto-enable-CP0nONRL.js → plugin-auto-enable-DwIrzVOA.js} +2 -2
- package/dist/{plugin-registry-BzIbwU3K.js → plugin-registry-CJGPW1-k.js} +1 -1
- package/dist/{plugin-registry-D3TUplW8.js → plugin-registry-d0oZLl6y.js} +3 -3
- package/dist/plugin-sdk/{channel-web-B6m8UOCl.js → channel-web-Dm-CzA1O.js} +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-CGoJQT_s.js → reply-4HEU7aDS.js} +46 -7
- package/dist/plugin-sdk/{web-CJjSOTnI.js → web-Cclb7FTq.js} +2 -2
- package/dist/{plugins-DKDeQZF0.js → plugins-BAyxWQSz.js} +2 -2
- package/dist/{plugins-cli-DFyRjAtJ.js → plugins-cli-BWgjIJQL.js} +72 -72
- package/dist/{plugins-cli-BD1Jb2Ml.js → plugins-cli-CL0tzkMo.js} +2 -2
- package/dist/{ports-BOmtxoTv.js → ports-OZQlocB7.js} +2 -2
- package/dist/{ports-DtW62rqS.js → ports-u9lWy2Jt.js} +1 -1
- package/dist/{program-qGm2M9PG.js → program-BHjH97Q_.js} +7 -7
- package/dist/{program-context-45vPEw2G.js → program-context-CXZHSZ4D.js} +39 -39
- package/dist/{prompt-select-styled-DRIS9jSv.js → prompt-select-styled-BUFEoSlM.js} +38 -38
- package/dist/{prompt-select-styled-DRraJGwA.js → prompt-select-styled-D8LXSUR7.js} +4 -4
- package/dist/{provider-auth-helpers-BNOWsjW5.js → provider-auth-helpers-BFHctF2f.js} +1 -1
- package/dist/{provider-auth-helpers-BREVjR7R.js → provider-auth-helpers-CeAbh3lv.js} +5 -5
- package/dist/{push-apns-CYC70eKy.js → push-apns-BylbQyP9.js} +1 -1
- package/dist/{push-apns-CObVeJLC.js → push-apns-DqFdzIkc.js} +4 -4
- package/dist/{pw-ai-DQohWnzT.js → pw-ai-CfrnAHwA.js} +7 -7
- package/dist/{qmd-manager-CCUK1xoc.js → qmd-manager-DUNbG4Qr.js} +18 -18
- package/dist/{qr-cli-CejYwqsj.js → qr-cli-BZYa2gvF.js} +3 -3
- package/dist/{register.agent-DzzY8jON.js → register.agent-DxAqRAt3.js} +6 -6
- package/dist/{register.agent-DRrHvYcz.js → register.agent-bzSGKS-l.js} +82 -82
- package/dist/register.configure-Boyfir72.js +148 -0
- package/dist/{register.configure-DlXkwkNR.js → register.configure-WS1nlSp8.js} +6 -6
- package/dist/{register.maintenance-CXLXouZV.js → register.maintenance-B1QcUr38.js} +85 -85
- package/dist/{register.maintenance-LEf8Q_5p.js → register.maintenance-D_qMTrgD.js} +8 -8
- package/dist/{register.message-C4ifV9vG.js → register.message-CJF8gLAN.js} +64 -64
- package/dist/{register.message-DsPa-xHV.js → register.message-zu3HGGff.js} +2 -2
- package/dist/{register.onboard-DLRPa_4B.js → register.onboard-9dwNqCe6.js} +4 -4
- package/dist/{register.onboard-CrY4PxLP.js → register.onboard-CswoaT7q.js} +75 -75
- package/dist/{register.setup-fBG_dJfi.js → register.setup-CvomtGGu.js} +78 -78
- package/dist/{register.setup-By37g1vN.js → register.setup-TcjUu6HC.js} +4 -4
- package/dist/{register.status-health-sessions-DG7KGnD0.js → register.status-health-sessions-CM1SX81r.js} +3 -3
- package/dist/{register.status-health-sessions-Ckw86-gn.js → register.status-health-sessions-CQMvbwr6.js} +76 -76
- package/dist/{register.subclis-C_xKLugM.js → register.subclis-CVQASXaL.js} +9 -9
- package/dist/{replies-BMqtgBhh.js → replies-Dy92jzrz.js} +1 -1
- package/dist/{reply-DyjXROKp.js → reply-CpNWtuU4.js} +183 -144
- package/dist/{reply-prefix-CE2YmmsD.js → reply-prefix-BLOOs1aW.js} +1 -1
- package/dist/{resolve-route-BMoTaVAH.js → resolve-route-BcnaXYvh.js} +2 -2
- package/dist/{routes-BAZTZNuQ.js → routes-CVwRcA9D.js} +8 -8
- package/dist/{rpc-Co5PQ3IJ.js → rpc-CZFfee1J.js} +1 -1
- package/dist/{run-main-Cg3ecTbO.js → run-main-Dq6tfDry.js} +14 -14
- package/dist/{runner-DRv0uCK_.js → runner-BAVs-p6Z.js} +20 -20
- package/dist/{sandbox-B6N8cV4d.js → sandbox-HZ_uilsn.js} +18 -18
- package/dist/{sandbox-cli-DwzaNjIJ.js → sandbox-cli-wZtiyo8g.js} +20 -20
- package/dist/{security-cli-D5BWzqEJ.js → security-cli-BESmRIrl.js} +36 -36
- package/dist/{send-CQVnyJyF.js → send-BVBCh27_.js} +13 -13
- package/dist/{send-DVm0du0_.js → send-CXFTeD_J.js} +4 -4
- package/dist/{send-B3RdXvjC.js → send-DT-5buW5.js} +6 -6
- package/dist/{send-9SapUCg7.js → send-DsSI8z3F.js} +6 -6
- package/dist/{send-Bm4ULEzh.js → send-JWV62VbW.js} +6 -6
- package/dist/{server-context-CCBZN8a0.js → server-context-VlF1_hYj.js} +5 -5
- package/dist/{server-methods-CWcLut3F.js → server-methods-B0pdetGJ.js} +130 -64
- package/dist/{server-methods-CW8eFTGD.js → server-methods-IBEaQXPX.js} +177 -111
- package/dist/{server-node-events-CDB0u8PP.js → server-node-events-BACmfyjo.js} +64 -64
- package/dist/{server-node-events-C2h9OPo7.js → server-node-events-CyDj7Txd.js} +2 -2
- package/dist/{service-osK70kTZ.js → service-D80PyJxB.js} +15 -15
- package/dist/{session-DsJGtM7g.js → session-6Qyc4cBQ.js} +2 -2
- package/dist/{session-dirs-Dgz7kkUM.js → session-dirs-DPzjjra2.js} +2 -2
- package/dist/{sessions-Cpgnq0pA.js → sessions-jTAGYjWl.js} +13 -13
- package/dist/{shared-DnmJ0ABB.js → shared-BV7WhIkY.js} +1 -1
- package/dist/{shared-73T9fyuK.js → shared-BfhtOZAz.js} +3 -3
- package/dist/{skill-commands-Cxw-jNxU.js → skill-commands-ZXbEITKi.js} +5 -5
- package/dist/{skill-scanner-hMtQbWPV.js → skill-scanner-w3DJvw1Q.js} +5 -5
- package/dist/{skills-6jdJQ5ZL.js → skills-DqQUtOph.js} +4 -4
- package/dist/{skills-cli-DXkx4vNV.js → skills-cli-D3lePXkf.js} +7 -7
- package/dist/{skills-install-CWVdJkLn.js → skills-install-HGYidhrv.js} +3 -3
- package/dist/{skills-status-C3ptXwnh.js → skills-status-Cjsh8we0.js} +1 -1
- package/dist/{sqlite-Dx3J_aSE.js → sqlite-BV5ILFtC.js} +12 -12
- package/dist/{status-DfPfMVNZ.js → status-BJtbD-cG.js} +2 -2
- package/dist/{status-CMx3GAax.js → status-DUeTrQSz.js} +1 -1
- package/dist/{status-B2Qt-5kL.js → status-DzHL-eVu.js} +3 -3
- package/dist/{status-ZPW5EACm.js → status-nzJEZmNT.js} +25 -25
- package/dist/{status.update-CG0ciGaf.js → status.update-TlYwuzTa.js} +3 -3
- package/dist/{store-r1DJSDq-.js → store-DvtcmOKj.js} +5 -5
- package/dist/{subagent-registry-DQHg3jUV.js → subagent-registry-CzS4CfnV.js} +46 -7
- package/dist/{symi-root-CrGJbkzf.js → symi-root-MF6_6SCS.js} +2 -2
- package/dist/{system-cli-DFZNGx0i.js → system-cli-C2yhGP4C.js} +7 -7
- package/dist/{systemd-DT6SbCim.js → systemd-CevHlgD4.js} +5 -5
- package/dist/{systemd-hints-xYZbFny_.js → systemd-hints-DmgRnw1L.js} +6 -6
- package/dist/{systemd-linger-DCskIKcx.js → systemd-linger-ScxQ1_H4.js} +1 -1
- package/dist/{tables-BEzT0Da4.js → tables-C38rzF6E.js} +1 -1
- package/dist/{target-errors-7AvoVa10.js → target-errors-CCz79CmV.js} +4 -4
- package/dist/{tool-images-DvUBlqjX.js → tool-images-B-pqX3nX.js} +1 -1
- package/dist/{tui-DjPsMdL6.js → tui-D2MOx3Kx.js} +7 -7
- package/dist/{tui-cli-pWD_NrUR.js → tui-cli-B2ii7u23.js} +28 -28
- package/dist/{unified-runner-DvOFqcrw.js → unified-runner-BtO3UQSd.js} +46 -7
- package/dist/{update-Ya0e-JnM.js → update-Don6XTH9.js} +3 -3
- package/dist/{update-check-7EzEjSzb.js → update-check-DCo5RtKp.js} +5 -5
- package/dist/{update-cli-DBasZeVl.js → update-cli-DRODEMSI.js} +8 -8
- package/dist/{update-cli-Df9rh_aN.js → update-cli-gKtjyXlD.js} +95 -95
- package/dist/{update-runner-BRKFzAwV.js → update-runner-AsKAxe31.js} +15 -15
- package/dist/{update-runner-DVa6cMqp.js → update-runner-JcdOHr71.js} +1 -1
- package/dist/{web-Dd05xbUr.js → web-BIzWZFiN.js} +1 -1
- package/dist/{web-Cw3bFAiP.js → web-DGo16lWn.js} +1 -1
- package/dist/{web-CGh5tw__.js → web-DKwOxo8E.js} +1 -1
- package/dist/web-sefqR11J.js +110 -0
- package/dist/{webhooks-cli-BRxe4uCg.js → webhooks-cli-DbnQ2BVE.js} +4 -4
- package/dist/{whatsapp-actions-ChO_shrk.js → whatsapp-actions-CqXxtCoj.js} +15 -15
- package/dist/{with-timeout-CtVdu_1U.js → with-timeout-Cm5EhxG_.js} +1 -1
- package/dist/{workspace-dirs-GpkFi6Kw.js → workspace-dirs-DKu48umx.js} +1 -1
- package/dist/{wsl-q8spwrME.js → wsl-xNOi_Ch8.js} +2 -2
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/skills/long-task/scripts/detach-task.sh +91 -14
- package/dist/register.configure-BxtTIFTa.js +0 -148
- package/dist/web-KiuDkd0x.js +0 -110
|
@@ -3,102 +3,102 @@ 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-MF6_6SCS.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-BRwEc2pG.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-X1oLh3CE.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-BVBCh27_.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-tNauHpdq.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-BAVs-p6Z.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-lCS3o9xj.js";
|
|
26
|
+
import { t as ensureSymiModelsJson } from "./models-config-CEMioDUi.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-Bs4eMaNo.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-HZ_uilsn.js";
|
|
30
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CSJzpT9Z.js";
|
|
31
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-VlF1_hYj.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-DqQUtOph.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-CT6jsi4E.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-DYbDWaIA.js";
|
|
37
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./store-DvtcmOKj.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-jTAGYjWl.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-BYiRZSgZ.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-BAyxWQSz.js";
|
|
41
|
+
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-Cd816n6l.js";
|
|
42
|
+
import { t as resolveIMessageAccount } from "./accounts-CokRskCl.js";
|
|
43
|
+
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-mN_EcgxC.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-CXFTeD_J.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-B-pqX3nX.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-BBeKX7PX.js";
|
|
53
|
+
import { v as runTasksWithConcurrency } from "./sqlite-BV5ILFtC.js";
|
|
54
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-CvbwxWuC.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 parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
56
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-Cm5EhxG_.js";
|
|
57
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-BYdNAEqj.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-CH0skkp6.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-DT-5buW5.js";
|
|
61
|
+
import { a as buildModelAliasLines, n as resolveModel } from "./model-CeeOcylL.js";
|
|
62
|
+
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BLOOs1aW.js";
|
|
63
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-DhkRAIdT.js";
|
|
64
|
+
import { i as resolveMemorySearchConfig } from "./manager-C1CfGzZ2.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-CCz79CmV.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 { Nt 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-ZwP14ydw.js";
|
|
69
|
+
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-Dt4hOzxG.js";
|
|
70
|
+
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-CtocZ4Lg.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-BZ0ZSQpM.js";
|
|
72
|
+
import { Nt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-Bj_vTpri.js";
|
|
73
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-tmHtVCkn.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-C38rzF6E.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-JWV62VbW.js";
|
|
80
|
+
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-B8ktu-6j.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-
|
|
86
|
-
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-
|
|
83
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BcnaXYvh.js";
|
|
84
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Dy92jzrz.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-ZXbEITKi.js";
|
|
86
|
+
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-FpfHyEcu.js";
|
|
87
87
|
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens } from "./session-cost-usage-BXAI7CNH.js";
|
|
88
|
-
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-
|
|
89
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
90
|
-
import { t as resolvePairingIdLabel } from "./pairing-labels-
|
|
88
|
+
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-DsSI8z3F.js";
|
|
89
|
+
import { r as detectBinary } from "./onboard-helpers-CdPNw25E.js";
|
|
90
|
+
import { t as resolvePairingIdLabel } from "./pairing-labels-Dxb898X5.js";
|
|
91
91
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-BgUx3Bm4.js";
|
|
92
92
|
import { t as getActiveWebListener } from "./active-listener-SKkHHqlN.js";
|
|
93
93
|
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-DXM2pQYL.js";
|
|
94
|
-
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-
|
|
94
|
+
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-Cd49cSPb.js";
|
|
95
95
|
import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CdUiymRU.js";
|
|
96
96
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CaTOIqVn.js";
|
|
97
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
98
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
97
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BBxnqCay.js";
|
|
98
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BBnhN7aZ.js";
|
|
99
99
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CvFURHzt.js";
|
|
100
100
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CafH8-8D.js";
|
|
101
|
-
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-
|
|
101
|
+
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-DaJDux-Q.js";
|
|
102
102
|
import { t as parseTimeoutMs } from "./parse-timeout-2S5vp0-9.js";
|
|
103
103
|
import { createRequire } from "node:module";
|
|
104
104
|
import { fileURLToPath } from "node:url";
|
|
@@ -106,7 +106,7 @@ import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSyn
|
|
|
106
106
|
import os, { homedir } from "node:os";
|
|
107
107
|
import path from "node:path";
|
|
108
108
|
import JSON5 from "json5";
|
|
109
|
-
import
|
|
109
|
+
import fsPromises from "node:fs/promises";
|
|
110
110
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
111
111
|
import { inspect } from "node:util";
|
|
112
112
|
import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
|
|
@@ -2894,7 +2894,7 @@ async function createModelSelectionState(params) {
|
|
|
2894
2894
|
}
|
|
2895
2895
|
}
|
|
2896
2896
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
2897
|
-
const { ensureAuthProfileStore } = await import("./model-selection-
|
|
2897
|
+
const { ensureAuthProfileStore } = await import("./model-selection-X1oLh3CE.js").then((n) => n.dt);
|
|
2898
2898
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
2899
2899
|
const providerKey = normalizeProviderId(provider);
|
|
2900
2900
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -10416,7 +10416,7 @@ async function routeReply(params) {
|
|
|
10416
10416
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10417
10417
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10418
10418
|
try {
|
|
10419
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10419
|
+
const { deliverOutboundPayloads } = await import("./deliver-BYdNAEqj.js").then((n) => n.n);
|
|
10420
10420
|
return {
|
|
10421
10421
|
ok: true,
|
|
10422
10422
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12965,8 +12965,8 @@ async function describeStickerImage(params) {
|
|
|
12965
12965
|
const { provider, model } = resolved;
|
|
12966
12966
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
12967
12967
|
try {
|
|
12968
|
-
const buffer = await
|
|
12969
|
-
const { describeImageWithModel } = await import("./image-
|
|
12968
|
+
const buffer = await fsPromises.readFile(imagePath);
|
|
12969
|
+
const { describeImageWithModel } = await import("./image-lCS3o9xj.js").then((n) => n.n);
|
|
12970
12970
|
return (await describeImageWithModel({
|
|
12971
12971
|
buffer,
|
|
12972
12972
|
fileName: "sticker.webp",
|
|
@@ -13389,7 +13389,7 @@ function createWhatsAppLoginTool() {
|
|
|
13389
13389
|
force: Type.Optional(Type.Boolean())
|
|
13390
13390
|
}),
|
|
13391
13391
|
execute: async (_toolCallId, args) => {
|
|
13392
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
13392
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DUf6CM0M.js");
|
|
13393
13393
|
if ((args?.action ?? "start") === "wait") {
|
|
13394
13394
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
13395
13395
|
return {
|
|
@@ -15605,7 +15605,7 @@ async function preflightDiscordMessage(params) {
|
|
|
15605
15605
|
let preflightTranscript;
|
|
15606
15606
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
15607
15607
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
15608
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
15608
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-mj-z_vQ6.js");
|
|
15609
15609
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
15610
15610
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
15611
15611
|
ctx: {
|
|
@@ -21611,18 +21611,18 @@ function appendImagePathsToPrompt(prompt, paths) {
|
|
|
21611
21611
|
return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
|
|
21612
21612
|
}
|
|
21613
21613
|
async function writeCliImages(images) {
|
|
21614
|
-
const tempDir = await
|
|
21614
|
+
const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-cli-images-"));
|
|
21615
21615
|
const paths = [];
|
|
21616
21616
|
for (let i = 0; i < images.length; i += 1) {
|
|
21617
21617
|
const image = images[i];
|
|
21618
21618
|
const ext = resolveImageExtension(image.mimeType);
|
|
21619
21619
|
const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
|
|
21620
21620
|
const buffer = Buffer.from(image.data, "base64");
|
|
21621
|
-
await
|
|
21621
|
+
await fsPromises.writeFile(filePath, buffer, { mode: 384 });
|
|
21622
21622
|
paths.push(filePath);
|
|
21623
21623
|
}
|
|
21624
21624
|
const cleanup = async () => {
|
|
21625
|
-
await
|
|
21625
|
+
await fsPromises.rm(tempDir, {
|
|
21626
21626
|
recursive: true,
|
|
21627
21627
|
force: true
|
|
21628
21628
|
});
|
|
@@ -22745,12 +22745,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
22745
22745
|
const existing = writers.get(filePath);
|
|
22746
22746
|
if (existing) return existing;
|
|
22747
22747
|
const dir = path.dirname(filePath);
|
|
22748
|
-
const ready =
|
|
22748
|
+
const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
22749
22749
|
let queue = Promise.resolve();
|
|
22750
22750
|
const writer = {
|
|
22751
22751
|
filePath,
|
|
22752
22752
|
write: (line) => {
|
|
22753
|
-
queue = queue.then(() => ready).then(() =>
|
|
22753
|
+
queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
22754
22754
|
}
|
|
22755
22755
|
};
|
|
22756
22756
|
writers.set(filePath, writer);
|
|
@@ -26166,7 +26166,7 @@ function repairToolUseResultPairing(messages) {
|
|
|
26166
26166
|
*/
|
|
26167
26167
|
async function readSessionFile(sessionFile) {
|
|
26168
26168
|
try {
|
|
26169
|
-
return await
|
|
26169
|
+
return await fsPromises.readFile(sessionFile, "utf-8");
|
|
26170
26170
|
} catch {
|
|
26171
26171
|
return null;
|
|
26172
26172
|
}
|
|
@@ -26175,8 +26175,8 @@ async function writeAtomically(sessionFile, text) {
|
|
|
26175
26175
|
const dir = path.dirname(sessionFile);
|
|
26176
26176
|
const base = path.basename(sessionFile);
|
|
26177
26177
|
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
26178
|
-
await
|
|
26179
|
-
await
|
|
26178
|
+
await fsPromises.writeFile(tmp, text, "utf-8");
|
|
26179
|
+
await fsPromises.rename(tmp, sessionFile);
|
|
26180
26180
|
}
|
|
26181
26181
|
/**
|
|
26182
26182
|
* Remove empty assistant JSONL entries from the session file.
|
|
@@ -26244,7 +26244,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
26244
26244
|
};
|
|
26245
26245
|
let content;
|
|
26246
26246
|
try {
|
|
26247
|
-
content = await
|
|
26247
|
+
content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
26248
26248
|
} catch (err) {
|
|
26249
26249
|
if (err?.code === "ENOENT") return {
|
|
26250
26250
|
repaired: false,
|
|
@@ -26292,15 +26292,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
26292
26292
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
26293
26293
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
26294
26294
|
try {
|
|
26295
|
-
const stat = await
|
|
26296
|
-
await
|
|
26297
|
-
if (stat) await
|
|
26298
|
-
await
|
|
26299
|
-
if (stat) await
|
|
26300
|
-
await
|
|
26295
|
+
const stat = await fsPromises.stat(sessionFile).catch(() => null);
|
|
26296
|
+
await fsPromises.writeFile(backupPath, content, "utf-8");
|
|
26297
|
+
if (stat) await fsPromises.chmod(backupPath, stat.mode);
|
|
26298
|
+
await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
|
|
26299
|
+
if (stat) await fsPromises.chmod(tmpPath, stat.mode);
|
|
26300
|
+
await fsPromises.rename(tmpPath, sessionFile);
|
|
26301
26301
|
} catch (err) {
|
|
26302
26302
|
try {
|
|
26303
|
-
await
|
|
26303
|
+
await fsPromises.unlink(tmpPath);
|
|
26304
26304
|
} catch (cleanupErr) {
|
|
26305
26305
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
26306
26306
|
}
|
|
@@ -26711,7 +26711,7 @@ function isInPoisonRange(version) {
|
|
|
26711
26711
|
*/
|
|
26712
26712
|
async function checkSessionPoison(sessionFile) {
|
|
26713
26713
|
try {
|
|
26714
|
-
const firstLine = (await
|
|
26714
|
+
const firstLine = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
26715
26715
|
if (!firstLine) return null;
|
|
26716
26716
|
const header = JSON.parse(firstLine);
|
|
26717
26717
|
if (header.type !== "session") return null;
|
|
@@ -26729,7 +26729,7 @@ async function checkSessionPoison(sessionFile) {
|
|
|
26729
26729
|
*/
|
|
26730
26730
|
async function archivePoisonedSession(sessionFile) {
|
|
26731
26731
|
const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
26732
|
-
await
|
|
26732
|
+
await fsPromises.rename(sessionFile, archiveName);
|
|
26733
26733
|
return archiveName;
|
|
26734
26734
|
}
|
|
26735
26735
|
/**
|
|
@@ -26738,14 +26738,14 @@ async function archivePoisonedSession(sessionFile) {
|
|
|
26738
26738
|
*/
|
|
26739
26739
|
async function stampSessionVersion(sessionFile) {
|
|
26740
26740
|
try {
|
|
26741
|
-
const lines = (await
|
|
26741
|
+
const lines = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n");
|
|
26742
26742
|
if (lines.length === 0) return;
|
|
26743
26743
|
const header = JSON.parse(lines[0]);
|
|
26744
26744
|
if (header.type !== "session") return;
|
|
26745
26745
|
if (header.symiVersion === VERSION) return;
|
|
26746
26746
|
header.symiVersion = VERSION;
|
|
26747
26747
|
lines[0] = JSON.stringify(header);
|
|
26748
|
-
await
|
|
26748
|
+
await fsPromises.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
26749
26749
|
} catch {}
|
|
26750
26750
|
}
|
|
26751
26751
|
/**
|
|
@@ -28834,6 +28834,21 @@ const getDmHistoryLimitFromSessionKey = getHistoryLimitFromSessionKey;
|
|
|
28834
28834
|
//#region src/agents/pi-embedded-runner/long-task-prompt.ts
|
|
28835
28835
|
const SCRIPT_REL_PATH = "skills/long-task/scripts/detach-task.sh";
|
|
28836
28836
|
let cachedScriptPath;
|
|
28837
|
+
function isExecutable(candidatePath) {
|
|
28838
|
+
try {
|
|
28839
|
+
fs.accessSync(candidatePath, fs.constants.X_OK);
|
|
28840
|
+
return true;
|
|
28841
|
+
} catch {
|
|
28842
|
+
return false;
|
|
28843
|
+
}
|
|
28844
|
+
}
|
|
28845
|
+
/**
|
|
28846
|
+
* Ensure the script is present AND has the exec bit. npm usually preserves
|
|
28847
|
+
* mode 100755 on pack/install, but a subset of filesystems (FAT32, some
|
|
28848
|
+
* container mounts) silently drop it. If the bit is missing, we try to set
|
|
28849
|
+
* it; on failure we return null rather than emit a prompt that would break
|
|
28850
|
+
* when the model tries to exec the script.
|
|
28851
|
+
*/
|
|
28837
28852
|
async function resolveDetachScriptPath(params) {
|
|
28838
28853
|
if (cachedScriptPath !== void 0) return cachedScriptPath;
|
|
28839
28854
|
const packageRoot = await resolveSymiPackageRoot({
|
|
@@ -28846,7 +28861,17 @@ async function resolveDetachScriptPath(params) {
|
|
|
28846
28861
|
return null;
|
|
28847
28862
|
}
|
|
28848
28863
|
const candidate = path.join(packageRoot, SCRIPT_REL_PATH);
|
|
28849
|
-
|
|
28864
|
+
if (!fs.existsSync(candidate)) {
|
|
28865
|
+
cachedScriptPath = null;
|
|
28866
|
+
return null;
|
|
28867
|
+
}
|
|
28868
|
+
if (!isExecutable(candidate)) try {
|
|
28869
|
+
fs.chmodSync(candidate, 493);
|
|
28870
|
+
} catch {
|
|
28871
|
+
cachedScriptPath = null;
|
|
28872
|
+
return null;
|
|
28873
|
+
}
|
|
28874
|
+
cachedScriptPath = candidate;
|
|
28850
28875
|
return cachedScriptPath;
|
|
28851
28876
|
}
|
|
28852
28877
|
async function buildLongTaskPromptSuffix(params) {
|
|
@@ -28854,11 +28879,25 @@ async function buildLongTaskPromptSuffix(params) {
|
|
|
28854
28879
|
if (!scriptPath) return "";
|
|
28855
28880
|
return "\n\n" + [
|
|
28856
28881
|
"LONG-RUNNING TASK PATTERN:",
|
|
28857
|
-
"-
|
|
28858
|
-
|
|
28882
|
+
"- Applies ONLY when a command is expected to take longer than about 15 minutes (deep nmap scans of /24 or larger, full brute-force sweeps, long builds, exhaustive enumeration). For anything shorter, use the normal exec tool — detaching short tasks creates pointless cron noise.",
|
|
28883
|
+
"- Foreground-blocking the exec tool for the full duration will fail: the agent turn will hit its timeout and the process will be SIGTERMed mid-run. Detach instead.",
|
|
28884
|
+
`- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`.`,
|
|
28885
|
+
" • task-id: alphanumeric + dot/dash/underscore, 1–60 chars, must not start with '.' or '-'.",
|
|
28886
|
+
" • workdir: absolute path you own (e.g. the agent workspace).",
|
|
28887
|
+
" • Script spawns under setsid+nohup+disown, writes task-<id>.{pid,cmd,started,log,status} files.",
|
|
28859
28888
|
"- Immediately after detaching, respond to the user with: task id, PID, log file path, your ETA estimate, and that a cron monitor has been scheduled.",
|
|
28860
|
-
"- Register a cron monitor using the `cron` tool with action=add.
|
|
28861
|
-
"
|
|
28889
|
+
"- Register a cron monitor using the `cron` tool with action=add. Required fields:",
|
|
28890
|
+
" • schedule: { kind: \"interval\", ms: 180000 } (every 3 minutes; minimum 60000)",
|
|
28891
|
+
" • payload: { kind: \"agent\", sessionTarget: \"isolated\", text: <job prompt> }",
|
|
28892
|
+
" The job prompt must literally contain the task-id, PID, log path, and status path so the future turn has enough context without re-deriving them.",
|
|
28893
|
+
"- Safe status read (inside the monitor turn):",
|
|
28894
|
+
" `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
|
|
28895
|
+
" Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, or `missing` if the file was cleaned up.",
|
|
28896
|
+
"- Monitor responsibilities each tick:",
|
|
28897
|
+
" • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
|
|
28898
|
+
" • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
|
|
28899
|
+
" • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
|
|
28900
|
+
" • Never leave stale monitors running after the task finishes."
|
|
28862
28901
|
].join("\n");
|
|
28863
28902
|
}
|
|
28864
28903
|
|
|
@@ -29023,7 +29062,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
29023
29062
|
if (!isSessionManagerCacheEnabled()) return;
|
|
29024
29063
|
if (isSessionManagerCached(sessionFile)) return;
|
|
29025
29064
|
try {
|
|
29026
|
-
const handle = await
|
|
29065
|
+
const handle = await fsPromises.open(sessionFile, "r");
|
|
29027
29066
|
try {
|
|
29028
29067
|
const buffer = Buffer$1.alloc(4096);
|
|
29029
29068
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -29057,7 +29096,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
29057
29096
|
return;
|
|
29058
29097
|
}
|
|
29059
29098
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
29060
|
-
await
|
|
29099
|
+
await fsPromises.writeFile(params.sessionFile, "", "utf-8");
|
|
29061
29100
|
sm.fileEntries = [header];
|
|
29062
29101
|
sm.byId?.clear?.();
|
|
29063
29102
|
sm.labelsById?.clear?.();
|
|
@@ -29702,7 +29741,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
29702
29741
|
const prevCwd = process.cwd();
|
|
29703
29742
|
const runAbortController = new AbortController();
|
|
29704
29743
|
log$7.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"}`);
|
|
29705
|
-
await
|
|
29744
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
29706
29745
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
29707
29746
|
const sandbox = await resolveSandboxContext({
|
|
29708
29747
|
config: params.config,
|
|
@@ -29710,7 +29749,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
29710
29749
|
workspaceDir: resolvedWorkspace
|
|
29711
29750
|
});
|
|
29712
29751
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
29713
|
-
await
|
|
29752
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
29714
29753
|
let restoreSkillEnv;
|
|
29715
29754
|
process.chdir(effectiveWorkspace);
|
|
29716
29755
|
try {
|
|
@@ -29945,7 +29984,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
29945
29984
|
sessionFile: params.sessionFile,
|
|
29946
29985
|
warn: (message) => log$7.warn(message)
|
|
29947
29986
|
});
|
|
29948
|
-
const hadSessionFile = await
|
|
29987
|
+
const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
29949
29988
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
29950
29989
|
modelApi: params.model?.api,
|
|
29951
29990
|
provider: params.provider,
|
|
@@ -31017,7 +31056,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
31017
31056
|
}
|
|
31018
31057
|
runLoopIterations += 1;
|
|
31019
31058
|
attemptedThinking.add(thinkLevel);
|
|
31020
|
-
await
|
|
31059
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
31021
31060
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
31022
31061
|
const attempt = await runEmbeddedAttempt({
|
|
31023
31062
|
sessionId: params.sessionId,
|
|
@@ -31741,27 +31780,27 @@ async function runAgentTurn(params) {
|
|
|
31741
31780
|
function createDefaultDeps() {
|
|
31742
31781
|
return {
|
|
31743
31782
|
sendMessageWhatsApp: async (...args) => {
|
|
31744
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
31783
|
+
const { sendMessageWhatsApp } = await import("./web-sefqR11J.js");
|
|
31745
31784
|
return await sendMessageWhatsApp(...args);
|
|
31746
31785
|
},
|
|
31747
31786
|
sendMessageTelegram: async (...args) => {
|
|
31748
|
-
const { sendMessageTelegram } = await import("./send-
|
|
31787
|
+
const { sendMessageTelegram } = await import("./send-DT-5buW5.js").then((n) => n.l);
|
|
31749
31788
|
return await sendMessageTelegram(...args);
|
|
31750
31789
|
},
|
|
31751
31790
|
sendMessageDiscord: async (...args) => {
|
|
31752
|
-
const { sendMessageDiscord } = await import("./send-
|
|
31791
|
+
const { sendMessageDiscord } = await import("./send-BVBCh27_.js").then((n) => n.t);
|
|
31753
31792
|
return await sendMessageDiscord(...args);
|
|
31754
31793
|
},
|
|
31755
31794
|
sendMessageSlack: async (...args) => {
|
|
31756
|
-
const { sendMessageSlack } = await import("./send-
|
|
31795
|
+
const { sendMessageSlack } = await import("./send-CXFTeD_J.js").then((n) => n.n);
|
|
31757
31796
|
return await sendMessageSlack(...args);
|
|
31758
31797
|
},
|
|
31759
31798
|
sendMessageSignal: async (...args) => {
|
|
31760
|
-
const { sendMessageSignal } = await import("./send-
|
|
31799
|
+
const { sendMessageSignal } = await import("./send-JWV62VbW.js").then((n) => n.i);
|
|
31761
31800
|
return await sendMessageSignal(...args);
|
|
31762
31801
|
},
|
|
31763
31802
|
sendMessageIMessage: async (...args) => {
|
|
31764
|
-
const { sendMessageIMessage } = await import("./send-
|
|
31803
|
+
const { sendMessageIMessage } = await import("./send-DsSI8z3F.js").then((n) => n.n);
|
|
31765
31804
|
return await sendMessageIMessage(...args);
|
|
31766
31805
|
}
|
|
31767
31806
|
};
|
|
@@ -32943,10 +32982,10 @@ function estimateDurationSeconds(pcm) {
|
|
|
32943
32982
|
return pcm.length / (bytesPerSample * SAMPLE_RATE);
|
|
32944
32983
|
}
|
|
32945
32984
|
async function writeWavFile(pcm) {
|
|
32946
|
-
const tempDir = await
|
|
32985
|
+
const tempDir = await fsPromises.mkdtemp(path.join(resolvePreferredSymiTmpDir(), "discord-voice-"));
|
|
32947
32986
|
const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
|
|
32948
32987
|
const wav = buildWavBuffer(pcm);
|
|
32949
|
-
await
|
|
32988
|
+
await fsPromises.writeFile(filePath, wav);
|
|
32950
32989
|
scheduleTempCleanup(tempDir);
|
|
32951
32990
|
return {
|
|
32952
32991
|
path: filePath,
|
|
@@ -32955,7 +32994,7 @@ async function writeWavFile(pcm) {
|
|
|
32955
32994
|
}
|
|
32956
32995
|
function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
|
|
32957
32996
|
setTimeout(() => {
|
|
32958
|
-
|
|
32997
|
+
fsPromises.rm(tempDir, {
|
|
32959
32998
|
recursive: true,
|
|
32960
32999
|
force: true
|
|
32961
33000
|
}).catch((err) => {
|
|
@@ -36694,7 +36733,7 @@ function normalizeAllowList$2(list) {
|
|
|
36694
36733
|
async function detectRemoteHostFromCliPath(cliPath) {
|
|
36695
36734
|
try {
|
|
36696
36735
|
const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
|
|
36697
|
-
const content = await
|
|
36736
|
+
const content = await fsPromises.readFile(expanded, "utf8");
|
|
36698
36737
|
const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
|
|
36699
36738
|
if (userHostMatch) return userHostMatch[1];
|
|
36700
36739
|
return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
|
|
@@ -42909,7 +42948,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
42909
42948
|
}
|
|
42910
42949
|
let commandsRegistry;
|
|
42911
42950
|
async function getCommandsRegistry() {
|
|
42912
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
42951
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BZ0ZSQpM.js").then((n) => n.n);
|
|
42913
42952
|
return commandsRegistry;
|
|
42914
42953
|
}
|
|
42915
42954
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -43251,11 +43290,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
43251
43290
|
const channelName = channelInfo?.name;
|
|
43252
43291
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
43253
43292
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
43254
|
-
import("./resolve-route-
|
|
43293
|
+
import("./resolve-route-BcnaXYvh.js").then((n) => n.r),
|
|
43255
43294
|
import("./inbound-context-CmmmT8IP.js").then((n) => n.n),
|
|
43256
43295
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
43257
43296
|
]);
|
|
43258
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-Bn5j3lUT.js").then((n) => n.t), import("./reply-prefix-
|
|
43297
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-Bn5j3lUT.js").then((n) => n.t), import("./reply-prefix-BLOOs1aW.js").then((n) => n.n)]);
|
|
43259
43298
|
const route = resolveAgentRoute({
|
|
43260
43299
|
cfg,
|
|
43261
43300
|
channel: "slack",
|
|
@@ -43312,9 +43351,9 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
43312
43351
|
});
|
|
43313
43352
|
const deliverSlashPayloads = async (replies) => {
|
|
43314
43353
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
43315
|
-
import("./replies-
|
|
43354
|
+
import("./replies-Dy92jzrz.js").then((n) => n.r),
|
|
43316
43355
|
import("./chunk-1dhPX1NK.js").then((n) => n.s),
|
|
43317
|
-
import("./markdown-tables-
|
|
43356
|
+
import("./markdown-tables-ZwP14ydw.js").then((n) => n.t)
|
|
43318
43357
|
]);
|
|
43319
43358
|
await deliverSlackSlashReplies({
|
|
43320
43359
|
replies,
|
|
@@ -43367,7 +43406,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
43367
43406
|
let nativeCommands = [];
|
|
43368
43407
|
if (nativeEnabled) {
|
|
43369
43408
|
reg = await getCommandsRegistry();
|
|
43370
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
43409
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-ZXbEITKi.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
43371
43410
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
43372
43411
|
skillCommands,
|
|
43373
43412
|
provider: "slack"
|
|
@@ -48006,7 +48045,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
48006
48045
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
48007
48046
|
let preflightTranscript;
|
|
48008
48047
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
48009
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
48048
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-mj-z_vQ6.js");
|
|
48010
48049
|
preflightTranscript = await transcribeFirstAudio({
|
|
48011
48050
|
ctx: {
|
|
48012
48051
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -49774,7 +49813,7 @@ function safeParseState(raw) {
|
|
|
49774
49813
|
async function readTelegramUpdateOffset(params) {
|
|
49775
49814
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
49776
49815
|
try {
|
|
49777
|
-
return safeParseState(await
|
|
49816
|
+
return safeParseState(await fsPromises.readFile(filePath, "utf-8"))?.lastUpdateId ?? null;
|
|
49778
49817
|
} catch (err) {
|
|
49779
49818
|
if (err.code === "ENOENT") return null;
|
|
49780
49819
|
return null;
|
|
@@ -49783,7 +49822,7 @@ async function readTelegramUpdateOffset(params) {
|
|
|
49783
49822
|
async function writeTelegramUpdateOffset(params) {
|
|
49784
49823
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
49785
49824
|
const dir = path.dirname(filePath);
|
|
49786
|
-
await
|
|
49825
|
+
await fsPromises.mkdir(dir, {
|
|
49787
49826
|
recursive: true,
|
|
49788
49827
|
mode: 448
|
|
49789
49828
|
});
|
|
@@ -49792,14 +49831,14 @@ async function writeTelegramUpdateOffset(params) {
|
|
|
49792
49831
|
version: STORE_VERSION,
|
|
49793
49832
|
lastUpdateId: params.updateId
|
|
49794
49833
|
};
|
|
49795
|
-
await
|
|
49796
|
-
await
|
|
49797
|
-
await
|
|
49834
|
+
await fsPromises.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
|
|
49835
|
+
await fsPromises.chmod(tmp, 384);
|
|
49836
|
+
await fsPromises.rename(tmp, filePath);
|
|
49798
49837
|
}
|
|
49799
49838
|
async function deleteTelegramUpdateOffset(params) {
|
|
49800
49839
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
49801
49840
|
try {
|
|
49802
|
-
await
|
|
49841
|
+
await fsPromises.unlink(filePath);
|
|
49803
49842
|
} catch (err) {
|
|
49804
49843
|
if (err.code === "ENOENT") return;
|
|
49805
49844
|
throw err;
|
|
@@ -50160,23 +50199,23 @@ let webLoginQrPromise = null;
|
|
|
50160
50199
|
let webChannelPromise = null;
|
|
50161
50200
|
let whatsappActionsPromise = null;
|
|
50162
50201
|
function loadWebOutbound() {
|
|
50163
|
-
webOutboundPromise ??= import("./outbound-
|
|
50202
|
+
webOutboundPromise ??= import("./outbound-_Ir3M05f.js").then((n) => n.t);
|
|
50164
50203
|
return webOutboundPromise;
|
|
50165
50204
|
}
|
|
50166
50205
|
function loadWebLogin() {
|
|
50167
|
-
webLoginPromise ??= import("./login-
|
|
50206
|
+
webLoginPromise ??= import("./login-CnjdNmGD.js").then((n) => n.n);
|
|
50168
50207
|
return webLoginPromise;
|
|
50169
50208
|
}
|
|
50170
50209
|
function loadWebLoginQr() {
|
|
50171
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
50210
|
+
webLoginQrPromise ??= import("./login-qr-DUf6CM0M.js");
|
|
50172
50211
|
return webLoginQrPromise;
|
|
50173
50212
|
}
|
|
50174
50213
|
function loadWebChannel() {
|
|
50175
|
-
webChannelPromise ??= import("./web-
|
|
50214
|
+
webChannelPromise ??= import("./web-sefqR11J.js");
|
|
50176
50215
|
return webChannelPromise;
|
|
50177
50216
|
}
|
|
50178
50217
|
function loadWhatsAppActions() {
|
|
50179
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
50218
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-CqXxtCoj.js");
|
|
50180
50219
|
return whatsappActionsPromise;
|
|
50181
50220
|
}
|
|
50182
50221
|
function createPluginRuntime() {
|
|
@@ -50943,7 +50982,7 @@ function resolvePluginTools(params) {
|
|
|
50943
50982
|
//#endregion
|
|
50944
50983
|
//#region src/agents/apply-patch-update.ts
|
|
50945
50984
|
async function defaultReadFile(filePath) {
|
|
50946
|
-
return
|
|
50985
|
+
return fsPromises.readFile(filePath, "utf8");
|
|
50947
50986
|
}
|
|
50948
50987
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
50949
50988
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -51187,10 +51226,10 @@ function resolvePatchFileOps(options) {
|
|
|
51187
51226
|
};
|
|
51188
51227
|
}
|
|
51189
51228
|
return {
|
|
51190
|
-
readFile: (filePath) =>
|
|
51191
|
-
writeFile: (filePath, content) =>
|
|
51192
|
-
remove: (filePath) =>
|
|
51193
|
-
mkdirp: (dir) =>
|
|
51229
|
+
readFile: (filePath) => fsPromises.readFile(filePath, "utf8"),
|
|
51230
|
+
writeFile: (filePath, content) => fsPromises.writeFile(filePath, content, "utf8"),
|
|
51231
|
+
remove: (filePath) => fsPromises.rm(filePath),
|
|
51232
|
+
mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
|
|
51194
51233
|
};
|
|
51195
51234
|
}
|
|
51196
51235
|
async function ensureDir(filePath, ops) {
|
|
@@ -51911,7 +51950,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
51911
51950
|
cwd: process.cwd(),
|
|
51912
51951
|
root: params.sandbox.workspaceDir
|
|
51913
51952
|
});
|
|
51914
|
-
if (!(await
|
|
51953
|
+
if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
51915
51954
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
51916
51955
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
51917
51956
|
return {
|
|
@@ -52892,13 +52931,13 @@ async function validateScriptFileForShellBleed(params) {
|
|
|
52892
52931
|
cwd: params.workdir,
|
|
52893
52932
|
root: params.workdir
|
|
52894
52933
|
});
|
|
52895
|
-
stat = await
|
|
52934
|
+
stat = await fsPromises.stat(absPath);
|
|
52896
52935
|
} catch {
|
|
52897
52936
|
return;
|
|
52898
52937
|
}
|
|
52899
52938
|
if (!stat.isFile()) return;
|
|
52900
52939
|
if (stat.size > 512 * 1024) return;
|
|
52901
|
-
const content = await
|
|
52940
|
+
const content = await fsPromises.readFile(absPath, "utf-8");
|
|
52902
52941
|
const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
|
|
52903
52942
|
if (first) {
|
|
52904
52943
|
const idx = first.index;
|
|
@@ -55572,7 +55611,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
55572
55611
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
|
|
55573
55612
|
throw new Error("jsonlPath outside allowed roots");
|
|
55574
55613
|
}
|
|
55575
|
-
const canonical = await
|
|
55614
|
+
const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
|
|
55576
55615
|
if (!isInboundPathAllowed({
|
|
55577
55616
|
filePath: canonical,
|
|
55578
55617
|
roots
|
|
@@ -55580,7 +55619,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
55580
55619
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
|
|
55581
55620
|
throw new Error("jsonlPath outside allowed roots");
|
|
55582
55621
|
}
|
|
55583
|
-
return await
|
|
55622
|
+
return await fsPromises.readFile(canonical, "utf8");
|
|
55584
55623
|
}
|
|
55585
55624
|
const CanvasToolSchema = Type.Object({
|
|
55586
55625
|
action: stringEnum(CANVAS_ACTIONS),
|
|
@@ -56360,27 +56399,27 @@ function resolveRestartSentinelPath(env = process.env) {
|
|
|
56360
56399
|
}
|
|
56361
56400
|
async function writeRestartSentinel(payload, env = process.env) {
|
|
56362
56401
|
const filePath = resolveRestartSentinelPath(env);
|
|
56363
|
-
await
|
|
56402
|
+
await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
|
|
56364
56403
|
const data = {
|
|
56365
56404
|
version: 1,
|
|
56366
56405
|
payload
|
|
56367
56406
|
};
|
|
56368
|
-
await
|
|
56407
|
+
await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
|
|
56369
56408
|
return filePath;
|
|
56370
56409
|
}
|
|
56371
56410
|
async function readRestartSentinel(env = process.env) {
|
|
56372
56411
|
const filePath = resolveRestartSentinelPath(env);
|
|
56373
56412
|
try {
|
|
56374
|
-
const raw = await
|
|
56413
|
+
const raw = await fsPromises.readFile(filePath, "utf-8");
|
|
56375
56414
|
let parsed;
|
|
56376
56415
|
try {
|
|
56377
56416
|
parsed = JSON.parse(raw);
|
|
56378
56417
|
} catch {
|
|
56379
|
-
await
|
|
56418
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
56380
56419
|
return null;
|
|
56381
56420
|
}
|
|
56382
56421
|
if (!parsed || parsed.version !== 1 || !parsed.payload) {
|
|
56383
|
-
await
|
|
56422
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
56384
56423
|
return null;
|
|
56385
56424
|
}
|
|
56386
56425
|
return parsed;
|
|
@@ -56392,7 +56431,7 @@ async function consumeRestartSentinel(env = process.env) {
|
|
|
56392
56431
|
const filePath = resolveRestartSentinelPath(env);
|
|
56393
56432
|
const parsed = await readRestartSentinel(env);
|
|
56394
56433
|
if (!parsed) return null;
|
|
56395
|
-
await
|
|
56434
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
56396
56435
|
return parsed;
|
|
56397
56436
|
}
|
|
56398
56437
|
function formatRestartSentinelMessage(payload) {
|
|
@@ -57499,7 +57538,7 @@ async function hydrateAttachmentPayload(params) {
|
|
|
57499
57538
|
accountId: params.accountId
|
|
57500
57539
|
}),
|
|
57501
57540
|
sandboxValidated: true,
|
|
57502
|
-
readFile: (filePath) =>
|
|
57541
|
+
readFile: (filePath) => fsPromises.readFile(filePath)
|
|
57503
57542
|
});
|
|
57504
57543
|
params.args.buffer = media.buffer.toString("base64");
|
|
57505
57544
|
if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
|
|
@@ -65051,7 +65090,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
65051
65090
|
} catch (err) {
|
|
65052
65091
|
return fail(describeUnknownError(err));
|
|
65053
65092
|
}
|
|
65054
|
-
await
|
|
65093
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
65055
65094
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
65056
65095
|
const sandbox = await resolveSandboxContext({
|
|
65057
65096
|
config: params.config,
|
|
@@ -65059,7 +65098,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
65059
65098
|
workspaceDir: resolvedWorkspace
|
|
65060
65099
|
});
|
|
65061
65100
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
65062
|
-
await
|
|
65101
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
65063
65102
|
await ensureSessionHeader({
|
|
65064
65103
|
sessionFile: params.sessionFile,
|
|
65065
65104
|
sessionId: params.sessionId,
|
|
@@ -69214,7 +69253,7 @@ async function handleCommands(params) {
|
|
|
69214
69253
|
try {
|
|
69215
69254
|
const messages = [];
|
|
69216
69255
|
if (sessionFile) {
|
|
69217
|
-
const content = await
|
|
69256
|
+
const content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
69218
69257
|
for (const line of content.split("\n")) {
|
|
69219
69258
|
if (!line.trim()) continue;
|
|
69220
69259
|
try {
|
|
@@ -72875,7 +72914,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
72875
72914
|
return;
|
|
72876
72915
|
}
|
|
72877
72916
|
try {
|
|
72878
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
72917
|
+
const { deliverOutboundPayloads } = await import("./deliver-BYdNAEqj.js").then((n) => n.n);
|
|
72879
72918
|
await deliverOutboundPayloads({
|
|
72880
72919
|
cfg: params.cfg,
|
|
72881
72920
|
channel,
|
|
@@ -73250,7 +73289,7 @@ async function stageSandboxMedia(params) {
|
|
|
73250
73289
|
};
|
|
73251
73290
|
try {
|
|
73252
73291
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
73253
|
-
await
|
|
73292
|
+
await fsPromises.mkdir(destDir, { recursive: true });
|
|
73254
73293
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
73255
73294
|
cfg,
|
|
73256
73295
|
accountId: ctx.AccountId
|
|
@@ -73300,7 +73339,7 @@ async function stageSandboxMedia(params) {
|
|
|
73300
73339
|
usedNames.add(fileName);
|
|
73301
73340
|
const dest = path.join(destDir, fileName);
|
|
73302
73341
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
73303
|
-
else await
|
|
73342
|
+
else await fsPromises.copyFile(source, dest);
|
|
73304
73343
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
73305
73344
|
staged.set(source, stagedPath);
|
|
73306
73345
|
}
|