@symerian/symi 3.4.27 → 3.4.29
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/{agent-DOOj3Gzb.js → agent-CQlyTNu-.js} +1 -1
- package/dist/{agent-CiqPWDUd.js → agent-N_J2cDO6.js} +18 -18
- package/dist/{agent-scope-Bnsyyeci.js → agent-scope-DOrZjOnW.js} +18 -18
- package/dist/{agents-BBQfFoen.js → agents-1xmRO246.js} +2 -2
- package/dist/{agents.config-Dm3oLpYK.js → agents.config-BJ9RIQlb.js} +1 -1
- package/dist/{audit-BSX7fMfc.js → audit-DCwHws4M.js} +20 -20
- package/dist/{auth-choice-rhBmet5i.js → auth-choice-DwXdS4c2.js} +11 -11
- package/dist/{auth-choice-BYbTjWcs.js → auth-choice-Ryx7oj6G.js} +1 -1
- package/dist/{auth-profiles-D5nYBj_Z.js → auth-profiles-Ce7R_25e.js} +2 -2
- package/dist/{auth-token-CAV1oLQG.js → auth-token-DgRRSbEX.js} +3 -3
- package/dist/{banner-C1qG5Rm9.js → banner-CxMQaUgh.js} +1 -1
- package/dist/{browser-cli-De8jg4-F.js → browser-cli-C3hfJNZy.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/{call-CW8U1BPq.js → call-BouPakqe.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CJD7jwYg.js → channel-options-WR29vfWK.js} +1 -1
- package/dist/{channel-options-BsXUgCMq.js → channel-options-n9C_ovb1.js} +1 -1
- package/dist/{channels-cli-Dxn5n9e4.js → channels-cli-Cs-Uq67O.js} +7 -7
- package/dist/{channels-cli-Bao4VNbH.js → channels-cli-DbFGI3vF.js} +57 -57
- package/dist/{chrome-pFBxO63W.js → chrome-rzK8edU7.js} +2 -2
- package/dist/{cli-WP38F9C5.js → cli-7ceDvtPc.js} +45 -45
- package/dist/{cli-CrhLSz3t.js → cli-D55pCJ8Q.js} +4 -4
- package/dist/{client-T5P9umyG.js → client-BzUAFrla.js} +1 -1
- package/dist/{command-registry-DoXcG7FZ.js → command-registry-DAy62yhH.js} +10 -10
- package/dist/{commands-registry-BjcGLk4v.js → commands-registry-VfAQOVZO.js} +1 -1
- package/dist/{completion-cli-C0SXi7ya.js → completion-cli-Bc1jojml.js} +12 -12
- package/dist/{completion-cli-DaWi3_ux.js → completion-cli-Bh-Y2NVp.js} +2 -2
- package/dist/{config-D-PYSlE8.js → config-D7SS4vdk.js} +2 -2
- package/dist/{config-cli-DXKm0pS5.js → config-cli-BxRcn2oD.js} +1 -1
- package/dist/{config-cli-DS67KtKf.js → config-cli-DupKETmw.js} +4 -4
- package/dist/{config-guard-xLTTFANi.js → config-guard-BGAQzX2K.js} +6 -6
- package/dist/{config-validation-C4wGq3rz.js → config-validation-COcIIMNe.js} +1 -1
- package/dist/{configure-B99YJJb0.js → configure-0XYm59w7.js} +14 -14
- package/dist/{configure-CzO4_jJJ.js → configure-BilM_Fgn.js} +2 -2
- package/dist/{consolidate-BB4BOQIN.js → consolidate-DI20-Wtn.js} +6 -6
- package/dist/{control-service-y53w3Jzy.js → control-service-Ry7Le68N.js} +4 -4
- package/dist/{control-ui-assets-Dryy7mCE.js → control-ui-assets-DuDhl0co.js} +1 -1
- package/dist/{cron-cli-BMblAFRK.js → cron-cli-DHFgjr_X.js} +7 -7
- package/dist/{daemon-cli-BJGNf5qV.js → daemon-cli-fC2R9YZd.js} +11 -11
- package/dist/{daemon-runtime-u4p9jsEF.js → daemon-runtime-tZgIbDPz.js} +10 -10
- package/dist/{deliver-C79-Umbk.js → deliver-DB4v0Tyl.js} +2 -2
- package/dist/{deps-UA1UBhl7.js → deps-BlmO-MfQ.js} +1 -1
- package/dist/{devices-cli-wsTs-nti.js → devices-cli-DtkKN4l0.js} +6 -6
- package/dist/{diagnostics-oW0LBW-t.js → diagnostics-tVJR9V0_.js} +5 -5
- package/dist/{directory-cli-D8As6t8Z.js → directory-cli-Bfy_ejW2.js} +3 -3
- package/dist/{dm-policy-shared-DRJrFKqJ.js → dm-policy-shared-CBlUyDSX.js} +1 -1
- package/dist/{dns-cli-BKOTBn3n.js → dns-cli-DzKaV6NZ.js} +3 -3
- package/dist/{docs-cli-D5j7Nmz2.js → docs-cli-a90_8wuN.js} +1 -1
- package/dist/{doctor-completion-mev5PRjN.js → doctor-completion-B6OPl_GZ.js} +2 -2
- package/dist/{doctor-completion-B1YCzbvi.js → doctor-completion-BZJWX3Dr.js} +1 -1
- package/dist/{doctor-config-flow-Uv41seME.js → doctor-config-flow-30ZEvATb.js} +9 -9
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-B4ry9s5r.js → exec-approvals-cli-C3gZAwV8.js} +13 -13
- package/dist/extensionAPI.js +2 -2
- package/dist/{file-lock-2AecMjCa.js → file-lock-BVUYnlQv.js} +8 -8
- package/dist/{fs-safe-B0Is-oLk.js → fs-safe-BdejYjW8.js} +6 -6
- package/dist/{gateway-cli-B3JVj_dv.js → gateway-cli-CyhLb-zS.js} +98 -98
- package/dist/{gateway-cli-Chnp6icp.js → gateway-cli-DQhYa6AL.js} +10 -10
- package/dist/{gateway-rpc-CLzM6ugo.js → gateway-rpc-DNq7EMhm.js} +1 -1
- package/dist/{glass-ui-ws-5o8dvEZO.js → glass-ui-ws-CLDbMDPk.js} +8 -8
- package/dist/{glass-ui-ws--GjxFRyX.js → glass-ui-ws-SJVljtUx.js} +67 -67
- package/dist/{health-D2th0Ip6.js → health-DZ0aipDZ.js} +4 -4
- package/dist/{hooks-cli-B4Nvp9AV.js → hooks-cli-BMRj13QU.js} +59 -59
- package/dist/{hooks-cli-B_sZth4r.js → hooks-cli-BVtdP5x7.js} +5 -5
- package/dist/{image-ops-BzCBIakN.js → image-ops-L70xVnpG.js} +10 -10
- package/dist/index.js +52 -52
- package/dist/{inspect-U3g9owQ8.js → inspect-CXsOujVt.js} +4 -4
- package/dist/{install-safe-path-BwMMOh9z.js → install-safe-path-D5gi-nfu.js} +11 -11
- package/dist/{installs-vdi1BESF.js → installs-DF_LhGX6.js} +10 -10
- package/dist/{internal-csqU78gW.js → internal-DVCddhhN.js} +9 -9
- package/dist/{lifecycle-core-BfmNlC-k.js → lifecycle-core-Bvdl2ShM.js} +5 -5
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{local-roots-2Jb79HZ8.js → local-roots-CgDCgCuM.js} +1 -1
- package/dist/{logs-cli-COZzdFu6.js → logs-cli-mdSEYBKS.js} +7 -7
- package/dist/{manager-DyYRwHZt.js → manager-BLg6zbeA.js} +15 -15
- package/dist/{manager-BfbQb9qM.js → manager-BhIaahpm.js} +1 -1
- package/dist/{manager-Bryhc0Ip.js → manager-BsQIpjy1.js} +1 -1
- package/dist/{manager-C5FGNRjL.js → manager-CtDuNn2T.js} +1 -1
- package/dist/{memory-DgDnTEcB.js → memory-B4DsKRSc.js} +5 -5
- package/dist/{memory-Cypj1lBQ.js → memory-BENbCb4f.js} +2 -2
- package/dist/{memory-cli-DB7UIev4.js → memory-cli-BIjwqjBx.js} +2 -2
- package/dist/{memory-cli-CfJkD7mO.js → memory-cli-DotHyA76.js} +12 -12
- package/dist/{model-DbILYCfo.js → model-DsMHOvMn.js} +1 -1
- package/dist/{model-auth-_C07_3Yr.js → model-auth-1EAQvYRv.js} +2 -2
- package/dist/{model-catalog-CeqDEWGz.js → model-catalog-DQTmHZK7.js} +3 -3
- package/dist/{model-picker-C_f6MALt.js → model-picker-D4TY_tPx.js} +5 -5
- package/dist/{model-selection-CCTzD29o.js → model-selection-7wdmO-Iw.js} +1 -1
- package/dist/{models-Bpqeds64.js → models-CmToZKBp.js} +2 -2
- package/dist/{models-cli-BUWfj5iJ.js → models-cli-CZgkOUZB.js} +55 -55
- package/dist/{models-cli-Bc47WFhD.js → models-cli-Di7iKhD4.js} +6 -6
- package/dist/{models-config-Dp5-tBqs.js → models-config-CRnTzdFs.js} +8 -8
- package/dist/{node-cli-BdjmGI32.js → node-cli-BXv9SEDG.js} +27 -27
- package/dist/{node-service-DphkTjBV.js → node-service-CrDVFWQl.js} +1 -1
- package/dist/{nodes-cli-BChJzcKY.js → nodes-cli-Cim3ANNU.js} +10 -10
- package/dist/{nodes-screen-Cp5QP3ET.js → nodes-screen-De9ma6e1.js} +4 -4
- package/dist/{npm-registry-spec-CqVgiBCf.js → npm-registry-spec-YMWTMnm_.js} +9 -9
- package/dist/{onboard-BbfERyKU.js → onboard-BXI02b3e.js} +1 -1
- package/dist/{onboard-C0nMMiiS.js → onboard-CuLvp4Ds.js} +15 -15
- package/dist/{onboard-channels-CMp9YXHC.js → onboard-channels-A6_QP7MR.js} +1 -1
- package/dist/{onboard-channels-CmsfVut5.js → onboard-channels-E5NIYGJz.js} +4 -4
- package/dist/{onboard-custom-BfHczxx0.js → onboard-custom-BrtjWDlX.js} +3 -3
- package/dist/{onboard-helpers-OB_xKQze.js → onboard-helpers---sZ9pdZ.js} +8 -8
- package/dist/{onboard-hooks-BA22KYCG.js → onboard-hooks-CtIRdncr.js} +1 -1
- package/dist/{onboard-remote-Dv2Uz8Ru.js → onboard-remote-BUB3VPBP.js} +1 -1
- package/dist/{onboard-skills-BzxofI4T.js → onboard-skills-Cs3BZ4VJ.js} +3 -3
- package/dist/{onboarding-vgZFhH5N.js → onboarding-BWMBA6cP.js} +12 -12
- package/dist/{onboarding-DoYMfCjS.js → onboarding-BeYl1Egj.js} +3 -3
- package/dist/{onboarding.finalize-Dj0xG8pk.js → onboarding.finalize-Bk-XW8b3.js} +4 -4
- package/dist/{onboarding.finalize-BYHDzz2i.js → onboarding.finalize-CH8dBgA2.js} +31 -31
- package/dist/{onboarding.gateway-config-CDRLfIZM.js → onboarding.gateway-config-arRNxrI9.js} +8 -8
- package/dist/{openai-model-default-Dl21Ivjc.js → openai-model-default-XudD4Xik.js} +2 -2
- package/dist/{pairing-cli-C2_Zobhz.js → pairing-cli-NDavTm1_.js} +5 -5
- package/dist/{pairing-store-Be-ZQK87.js → pairing-store-BNhJOnWn.js} +1 -1
- package/dist/{pairing-token-B703A1U3.js → pairing-token-Dcy37-4s.js} +7 -7
- package/dist/{paths-BWqg8NZT.js → paths-DObzwe08.js} +1 -1
- package/dist/{pi-auth-json-D-vdh-nY.js → pi-auth-json-Db8XJVGL.js} +6 -6
- package/dist/{pi-embedded-C7mJzGIf.js → pi-embedded-BL3_b-H_.js} +6 -52
- package/dist/{pi-embedded-helpers-y3vJmW6T.js → pi-embedded-helpers-B5cWV7_y.js} +6 -6
- package/dist/{pi-tools.policy-ji-L-Mpv.js → pi-tools.policy-BdGVEMZn.js} +3 -3
- package/dist/{plugin-auto-enable-Ctbn2w4Q.js → plugin-auto-enable-B_lNp6yM.js} +1 -1
- package/dist/{plugin-registry-pKaJ4ltN.js → plugin-registry-CAdIrLmG.js} +1 -1
- package/dist/{plugin-registry-D2ZbwBU_.js → plugin-registry-DovNSdK0.js} +3 -3
- package/dist/plugin-sdk/agents/pi-tools.types.d.ts +2 -1
- package/dist/plugin-sdk/agents/tools/common.d.ts +0 -30
- package/dist/{plugins-cli-uo8lcB7v.js → plugins-cli-JzKO-vmR.js} +5 -5
- package/dist/{plugins-cli-CoHiV4BX.js → plugins-cli-ZG4PxNTC.js} +54 -54
- package/dist/{ports-ukrEAkOP.js → ports-C3ZSkRGq.js} +1 -1
- package/dist/{ports-CB_Iu83U.js → ports-gxLM5ahL.js} +2 -2
- package/dist/{program-rzYjZKRz.js → program-BbfU4idg.js} +10 -10
- package/dist/{program-context-B1ZbQmLL.js → program-context-ByiEP1Lk.js} +38 -38
- package/dist/{prompt-select-styled-F6P-rvFI.js → prompt-select-styled-CWH2Mcrb.js} +4 -4
- package/dist/{prompt-select-styled-CX0v66wx.js → prompt-select-styled-DvrG_zWV.js} +38 -38
- package/dist/{provider-auth-helpers-_jn9PngO.js → provider-auth-helpers-2x7YxT5F.js} +6 -6
- package/dist/{provider-auth-helpers-Ck98bkHV.js → provider-auth-helpers-CMQexdSl.js} +1 -1
- package/dist/{push-apns-BtMtpzEm.js → push-apns-CtWwPxRj.js} +1 -1
- package/dist/{push-apns-CmeoBcIQ.js → push-apns-eGdGU3r7.js} +4 -4
- package/dist/{pw-ai-CQJsGI1b.js → pw-ai-tgngV3iZ.js} +7 -7
- package/dist/{qmd-manager-DawTY2mB.js → qmd-manager-qV_04VKG.js} +19 -19
- package/dist/{qr-cli-DKowtQcM.js → qr-cli-Vo1XL6B2.js} +3 -3
- package/dist/{register.agent-_UqSBmt5.js → register.agent-DZE9NBNx.js} +9 -9
- package/dist/{register.agent-0hWBZXD7.js → register.agent-Dwkya1rv.js} +67 -67
- package/dist/{register.configure-KrTtvKSp.js → register.configure-CD8WkXo8.js} +8 -8
- package/dist/{register.configure-CgQ6sqtQ.js → register.configure-DCpbCHR0.js} +70 -70
- package/dist/{register.maintenance-DjZeknO6.js → register.maintenance-Bqjj77CZ.js} +67 -67
- package/dist/{register.maintenance-DDSfzFoo.js → register.maintenance-CxVeo_7j.js} +9 -9
- package/dist/{register.message-DSwwDcGi.js → register.message-tcJN7-E3.js} +5 -5
- package/dist/{register.message-DTZJ5OiL.js → register.message-uhAmNxoO.js} +47 -47
- package/dist/{register.onboard-B8k5phG7.js → register.onboard-F6d_Wrv1.js} +25 -25
- package/dist/{register.onboard-BToIZTIS.js → register.onboard-Rm5t0yxX.js} +2 -2
- package/dist/{register.setup-BdUewOo1.js → register.setup-C2datfZK.js} +2 -2
- package/dist/{register.setup-1fexz2oW.js → register.setup-CcHxpsUT.js} +28 -28
- package/dist/{register.status-health-sessions-eBaeXIvo.js → register.status-health-sessions-DFVjS9Hy.js} +3 -3
- package/dist/{register.status-health-sessions-0RyA2cXf.js → register.status-health-sessions-DIUDRMqm.js} +41 -41
- package/dist/{register.subclis-tX3BslaT.js → register.subclis-D9uGnVGm.js} +9 -9
- package/dist/{replies-D3cffD5N.js → replies-DzsYQ8Md.js} +1 -1
- package/dist/{reply-prefix-CtZtkTJK.js → reply-prefix-BFNeXT65.js} +1 -1
- package/dist/{resolve-route-B0i_o4Fo.js → resolve-route-Zww0Y-HJ.js} +1 -1
- package/dist/{routes-zpAUwtCG.js → routes-C-rIjd8Z.js} +10 -10
- package/dist/{rpc-DhsDKVo-.js → rpc-BkFkeuJ6.js} +1 -1
- package/dist/{run-main-DIl_Kl0B.js → run-main-HkbyvIDy.js} +17 -17
- package/dist/{sandbox-DQCaejcD.js → sandbox-Dx8IMw-E.js} +18 -18
- package/dist/{sandbox-cli-CbvyZs1z.js → sandbox-cli-BFkLKdlk.js} +13 -13
- package/dist/{security-cli-CbJxNYZx.js → security-cli-BEpQ_rO1.js} +29 -29
- package/dist/{send-QscYkkNh.js → send-Cxu1tl56.js} +7 -7
- package/dist/{server-context-CXVq7gZ7.js → server-context--mmXXEkE.js} +5 -5
- package/dist/{server-methods-CpFBGxWI.js → server-methods-DJ8eiTu1.js} +6 -6
- package/dist/{server-methods-DPxjPGr0.js → server-methods-RtjWUhkv.js} +58 -58
- package/dist/{server-node-events-2SUW10k3.js → server-node-events-CT8fFtBQ.js} +6 -6
- package/dist/{server-node-events-B_BPbi7z.js → server-node-events-DQ1iCUgY.js} +48 -48
- package/dist/{service-Cm4-5AH9.js → service-CyEDtYLq.js} +15 -15
- package/dist/{session-dirs-BypCYFN3.js → session-dirs-CXErIzZq.js} +2 -2
- package/dist/{session-utils-lXjJoBxe.js → session-utils-BZnPW904.js} +14 -14
- package/dist/{sessions-aSo5jsmg.js → sessions-optZRB57.js} +10 -10
- package/dist/{shared-DDX_4ypC.js → shared-Ctok0Bcs.js} +1 -1
- package/dist/{shared-BI-gOZsD.js → shared-DJFwvlUi.js} +3 -3
- package/dist/{skill-commands-C9WuAfb2.js → skill-commands-yPirQFOb.js} +4 -4
- package/dist/{skill-scanner-CFqMkfZW.js → skill-scanner-BBwesm0w.js} +5 -5
- package/dist/{skills-CYcBtLGH.js → skills-BwDmcZdt.js} +4 -4
- package/dist/{skills-cli-BgyaAQoj.js → skills-cli-gC5ETdly.js} +7 -7
- package/dist/{skills-install-MGsx6q5Z.js → skills-install-CLN_Ks5r.js} +3 -3
- package/dist/{skills-remote-BcRQTDsZ.js → skills-remote-bz71Bstn.js} +3 -3
- package/dist/{skills-status-CbSdFlvm.js → skills-status-iltfI_bO.js} +1 -1
- package/dist/{sqlite-BpogPlQW.js → sqlite-Cod7C5ba.js} +5 -5
- package/dist/{status-DbNNmkNB.js → status-CoqGtHXq.js} +1 -1
- package/dist/{status-BVYDUlnp.js → status-Cpz64Vy_.js} +1 -1
- package/dist/{status-C-r9JpJf.js → status-CuMBp54T.js} +23 -23
- package/dist/{status-DIJvpgEm.js → status-EAjzyREy.js} +3 -3
- package/dist/{status.update-EyslEZkn.js → status.update-F4CbQCxF.js} +3 -3
- package/dist/{subagent-registry-DWemyjbN.js → subagent-registry-Dkif1XYO.js} +6 -52
- package/dist/{symi-root-DeCVdZB4.js → symi-root-BQ0IpoW2.js} +2 -2
- package/dist/{synthesis-BdTiornP.js → synthesis-B6tq6-9G.js} +2 -2
- package/dist/{synthesis-C7RlvHEs.js → synthesis-CKKZrrYd.js} +45 -45
- package/dist/{synthesis-BxYzOZUA.js → synthesis-CpsURf9J.js} +4 -4
- package/dist/{synthesis-DQ7Y6OE0.js → synthesis-mgcCKSzl.js} +2 -2
- package/dist/{system-cli-DgOvK_kU.js → system-cli-DMKzffe3.js} +7 -7
- package/dist/{systemd-B2nTr3Y2.js → systemd-DRpQb_L1.js} +5 -5
- package/dist/{systemd-hints-DtOWJT_2.js → systemd-hints-DR4u43WA.js} +6 -6
- package/dist/{systemd-linger-CWi5l8Nt.js → systemd-linger-BQQl5RXN.js} +1 -1
- package/dist/{tui-D7ms_iQ4.js → tui-CqrM_Fj2.js} +7 -7
- package/dist/{tui-cli-DNvAqIYN.js → tui-cli-BsqRmqTX.js} +19 -19
- package/dist/{unified-runner-DPWNhQQA.js → unified-runner-DAWxqcS9.js} +6 -52
- package/dist/{unified-runner-BIUJm_Iv.js → unified-runner-DZAjU6aB.js} +104 -150
- package/dist/{update-pddgyV7i.js → update-CWEjB8uS.js} +3 -3
- package/dist/{update-check-CduiCxPo.js → update-check-CxBGAP1E.js} +5 -5
- package/dist/{update-cli-BM-A3cIZ.js → update-cli-Bgk30eoA.js} +9 -9
- package/dist/{update-cli-GKXF83cS.js → update-cli-t7W6vcQY.js} +77 -77
- package/dist/{update-runner-BMYqz1dl.js → update-runner-C4Uy75eP.js} +15 -15
- package/dist/{webhooks-cli-BPPmnDCj.js → webhooks-cli-Dp-pp0Sf.js} +4 -4
- package/dist/{with-timeout-D1qzvPE0.js → with-timeout-B5zAsivw.js} +1 -1
- package/dist/{workspace-dirs-DCICLTHx.js → workspace-dirs-jKFQf7of.js} +1 -1
- package/dist/{wsl-Sed675xh.js → wsl-DMA0sTvh.js} +2 -2
- package/package.json +1 -1
- package/dist/plugin-sdk/agents/tools/availability-filter.d.ts +0 -10
|
@@ -3,91 +3,91 @@ import { D as shouldLogVerbose, H as createInternalHookEvent, M as getChildLogge
|
|
|
3
3
|
import { _ as resolveStateDir, u as resolveGatewayPort } from "./paths-By0XjHBk.js";
|
|
4
4
|
import { S as isPlainObject, _ as shortenHomeInString, b as sliceUtf16Safe, c as escapeRegExp, h as resolveUserPath, r as clampInt, t as CONFIG_DIR, u as isRecord, v as shortenHomePath, x as truncateUtf16Safe, y as sleep } from "./utils-CTPsqyE_.js";
|
|
5
5
|
import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
6
|
-
import { T as resolveAuthProfileDisplayLabel, a as markAuthProfileFailure, b as ensureAuthProfileStore, g as markAuthProfileGood, h as listProfilesForProvider, i as isProfileInCooldown, n as resolveAuthProfileOrder, o as markAuthProfileUsed, r as getSoonestCooldownExpiry, w as resolveAuthStorePathForDisplay } from "./auth-profiles-
|
|
6
|
+
import { T as resolveAuthProfileDisplayLabel, a as markAuthProfileFailure, b as ensureAuthProfileStore, g as markAuthProfileGood, h as listProfilesForProvider, i as isProfileInCooldown, n as resolveAuthProfileOrder, o as markAuthProfileUsed, r as getSoonestCooldownExpiry, w as resolveAuthStorePathForDisplay } from "./auth-profiles-Ce7R_25e.js";
|
|
7
7
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
8
8
|
import { S as resolveThreadParentSessionKey, _ as isAcpSessionKey, a as classifySessionKeyShape, b as isSubagentSessionKey, c as resolveAgentIdFromSessionKey, g as getSubagentDepth, l as resolveThreadSessionKeys, m as normalizeAccountId, o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, r as buildAgentMainSessionKey, s as normalizeMainKey, t as DEFAULT_AGENT_ID, u as sanitizeAgentId, x as parseAgentSessionKey, y as isCronSessionKey } from "./session-key-DUSb7CCb.js";
|
|
9
|
-
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-
|
|
9
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
|
|
10
10
|
import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
|
|
11
|
-
import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentConfig, s as resolveAgentSkillsFilter, w as filterBootstrapFilesForSession } from "./agent-scope-
|
|
12
|
-
import { C as DEFAULT_MODEL, S as DEFAULT_CONTEXT_TOKENS, _ as resolveModelRefFromString, a as findNormalizedProviderValue, b as resolveThinkingDefault, c as modelKey, h as resolveDefaultModelForAgent, l as normalizeModelRef$1, m as resolveConfiguredModelRef, n as buildConfiguredAllowlistKeys, r as buildModelAliasIndex, t as buildAllowedModelSet, u as normalizeProviderId, w as DEFAULT_PROVIDER, x as getProviderAdapter, y as resolveSubagentSpawnModelSelection } from "./model-selection-
|
|
11
|
+
import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentConfig, s as resolveAgentSkillsFilter, w as filterBootstrapFilesForSession } from "./agent-scope-DOrZjOnW.js";
|
|
12
|
+
import { C as DEFAULT_MODEL, S as DEFAULT_CONTEXT_TOKENS, _ as resolveModelRefFromString, a as findNormalizedProviderValue, b as resolveThinkingDefault, c as modelKey, h as resolveDefaultModelForAgent, l as normalizeModelRef$1, m as resolveConfiguredModelRef, n as buildConfiguredAllowlistKeys, r as buildModelAliasIndex, t as buildAllowedModelSet, u as normalizeProviderId, w as DEFAULT_PROVIDER, x as getProviderAdapter, y as resolveSubagentSpawnModelSelection } from "./model-selection-7wdmO-Iw.js";
|
|
13
13
|
import { n as normalizeSecretInput } from "./normalize-secret-input-DjGU5EXe.js";
|
|
14
14
|
import { n as saveJsonFile, t as loadJsonFile } from "./json-file-CNp4GTiH.js";
|
|
15
15
|
import { t as resolveSymiAgentDir } from "./agent-paths-BbZSGrUA.js";
|
|
16
|
-
import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-
|
|
17
|
-
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, C as unsetConfigValueAtPath, N as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, f as parseDurationMs, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-
|
|
16
|
+
import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-B5cWV7_y.js";
|
|
17
|
+
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, C as unsetConfigValueAtPath, N as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, f as parseDurationMs, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-D7SS4vdk.js";
|
|
18
18
|
import { t as parseBooleanValue } from "./boolean-CbZoNRMn.js";
|
|
19
19
|
import { t as isTruthyEnvValue } from "./env-BRnPI9sO.js";
|
|
20
20
|
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell } from "./shell-env-Dc3iU7HK.js";
|
|
21
21
|
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-D1MLZEjS.js";
|
|
22
22
|
import { a as isPathInsideWithRealpath } from "./legacy-names-BQ9vKISY.js";
|
|
23
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
24
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
25
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context
|
|
23
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-Dx8IMw-E.js";
|
|
24
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-rzK8edU7.js";
|
|
25
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context--mmXXEkE.js";
|
|
26
26
|
import { l as parseFrontmatterBlock } from "./frontmatter-B_jqcova.js";
|
|
27
|
-
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 { n as getMediaDir, r as saveMediaBuffer } from "./routes-
|
|
27
|
+
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-BwDmcZdt.js";
|
|
28
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./routes-C-rIjd8Z.js";
|
|
29
29
|
import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-bI7Tdx75.js";
|
|
30
|
-
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-
|
|
30
|
+
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-DObzwe08.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DOZRI5XH.js";
|
|
32
|
-
import { _ as mediaKindFromMime, c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, h as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as normalizeMimeType$1, p as kindFromMime, s as resizeToJpeg, u as getFileExtension } from "./image-ops-
|
|
33
|
-
import { C as capArrayByJsonBytes, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, 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 } from "./sessions-
|
|
32
|
+
import { _ as mediaKindFromMime, c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, h as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as normalizeMimeType$1, p as kindFromMime, s as resizeToJpeg, u as getFileExtension } from "./image-ops-L70xVnpG.js";
|
|
33
|
+
import { C as capArrayByJsonBytes, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, 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 } from "./sessions-optZRB57.js";
|
|
34
34
|
import { c as normalizeStringEntries, i as resolveChannelGroupRequireMention, l as normalizeStringEntriesLower, n as listChannelDocks, o as normalizeAtHashSlug, r as resolveChannelGroupPolicy, s as normalizeHyphenSlug, t as getChannelDock } from "./dock-hF45sewN.js";
|
|
35
35
|
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, h as GATEWAY_CLIENT_NAMES, 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-DgjXWzf-.js";
|
|
36
36
|
import { t as normalizeChatType } from "./chat-type-CUJqUqwu.js";
|
|
37
37
|
import { n as resolveConversationLabel } from "./conversation-label-CffvEjpp.js";
|
|
38
38
|
import { a as resolveSlackAccount, c as resolveSlackBotToken, n as listChannelPlugins, r as normalizeChannelId$1, s as resolveSlackAppToken, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
|
|
39
|
-
import { _ as resolveSlackChannelId, a as markdownToIRWithMeta, c as MediaFetchError, d as createSlackWebClient, f as resolveSlackWebClientOptions, g as parseSlackTarget, h as buildSlackBlocksFallbackText, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as validateSlackBlocksArray, o as getDefaultLocalRoots, p as parseSlackBlocksInput, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit } from "./send-
|
|
39
|
+
import { _ as resolveSlackChannelId, a as markdownToIRWithMeta, c as MediaFetchError, d as createSlackWebClient, f as resolveSlackWebClientOptions, g as parseSlackTarget, h as buildSlackBlocksFallbackText, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as validateSlackBlocksArray, o as getDefaultLocalRoots, p as parseSlackBlocksInput, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit } from "./send-Cxu1tl56.js";
|
|
40
40
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-BtvQ7JvU.js";
|
|
41
41
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-Dfn-vEsu.js";
|
|
42
42
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
|
|
43
43
|
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-COroyVA5.js";
|
|
44
44
|
import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-0yh2UnJq.js";
|
|
45
|
-
import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-
|
|
45
|
+
import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-DB4v0Tyl.js";
|
|
46
46
|
import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-DbT9t0Sh.js";
|
|
47
47
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DnkpMfCl.js";
|
|
48
|
-
import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-
|
|
49
|
-
import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSymiModelsJson, x as createOllamaStreamFn } from "./models-config-
|
|
50
|
-
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-
|
|
48
|
+
import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-1EAQvYRv.js";
|
|
49
|
+
import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSymiModelsJson, x as createOllamaStreamFn } from "./models-config-CRnTzdFs.js";
|
|
50
|
+
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-Db8XJVGL.js";
|
|
51
51
|
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-D6Ocwmq1.js";
|
|
52
|
-
import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-
|
|
53
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-
|
|
54
|
-
import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
55
|
-
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-
|
|
56
|
-
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-
|
|
57
|
-
import { f as runTasksWithConcurrency } from "./internal-
|
|
52
|
+
import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-BZnPW904.js";
|
|
53
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-B5zAsivw.js";
|
|
54
|
+
import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BFNeXT65.js";
|
|
55
|
+
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-B4DsKRSc.js";
|
|
56
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-BLg6zbeA.js";
|
|
57
|
+
import { f as runTasksWithConcurrency } from "./internal-DVCddhhN.js";
|
|
58
58
|
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-BxfKjCUx.js";
|
|
59
59
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-CS1Tvb3z.js";
|
|
60
60
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BhdrdVp5.js";
|
|
61
61
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-JHxT9355.js";
|
|
62
|
-
import { n as getDefaultMediaLocalRoots } from "./local-roots-
|
|
62
|
+
import { n as getDefaultMediaLocalRoots } from "./local-roots-CgDCgCuM.js";
|
|
63
63
|
import { i as resolveNativeSkillsEnabled, n as isRestartEnabled, r as resolveNativeCommandsEnabled, t as isCommandFlagEnabled } from "./commands-DUzLGgEZ.js";
|
|
64
|
-
import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-
|
|
65
|
-
import { zt as SESSION_LABEL_MAX_LENGTH } from "./client-
|
|
66
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-
|
|
64
|
+
import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-VfAQOVZO.js";
|
|
65
|
+
import { zt as SESSION_LABEL_MAX_LENGTH } from "./client-BzUAFrla.js";
|
|
66
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-BouPakqe.js";
|
|
67
67
|
import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-DFOL6UQ9.js";
|
|
68
68
|
import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
|
|
69
69
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-B7Rvs8pK.js";
|
|
70
|
-
import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-
|
|
70
|
+
import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-bz71Bstn.js";
|
|
71
71
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-ClQLvlCW.js";
|
|
72
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
73
|
-
import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-
|
|
74
|
-
import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-
|
|
72
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DQTmHZK7.js";
|
|
73
|
+
import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-yPirQFOb.js";
|
|
74
|
+
import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-BNhJOnWn.js";
|
|
75
75
|
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-DioSaIeH.js";
|
|
76
|
-
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-
|
|
76
|
+
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-De9ma6e1.js";
|
|
77
77
|
import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-N7nsmfM6.js";
|
|
78
78
|
import { t as formatDurationCompact$1 } from "./format-duration-CIjmjQST.js";
|
|
79
79
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-9ygk6nTV.js";
|
|
80
80
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-_37Bn-Jb.js";
|
|
81
81
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-ChnKXZKi.js";
|
|
82
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
82
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Ry7Le68N.js";
|
|
83
83
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-DUVGiPYV.js";
|
|
84
84
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-DF4bza2Q.js";
|
|
85
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
85
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Zww0Y-HJ.js";
|
|
86
86
|
import { t as parseTimeoutMs } from "./parse-timeout-DUdeaMqF.js";
|
|
87
|
-
import { n as registerMemoryCli } from "./memory-cli-
|
|
88
|
-
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
89
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
90
|
-
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-
|
|
87
|
+
import { n as registerMemoryCli } from "./memory-cli-DotHyA76.js";
|
|
88
|
+
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-DzsYQ8Md.js";
|
|
89
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BdGVEMZn.js";
|
|
90
|
+
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-DsMHOvMn.js";
|
|
91
91
|
import { createRequire } from "node:module";
|
|
92
92
|
import process$1 from "node:process";
|
|
93
93
|
import { fileURLToPath } from "node:url";
|
|
@@ -96,7 +96,7 @@ import path from "node:path";
|
|
|
96
96
|
import fs, { constants, existsSync, statSync } from "node:fs";
|
|
97
97
|
import os, { homedir } from "node:os";
|
|
98
98
|
import JSON5 from "json5";
|
|
99
|
-
import
|
|
99
|
+
import fs$1 from "node:fs/promises";
|
|
100
100
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
101
101
|
import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
|
|
102
102
|
import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
|
|
@@ -1846,7 +1846,7 @@ async function imageResult(params) {
|
|
|
1846
1846
|
}, params.label, params.imageSanitization);
|
|
1847
1847
|
}
|
|
1848
1848
|
async function imageResultFromFile(params) {
|
|
1849
|
-
const buf = await
|
|
1849
|
+
const buf = await fs$1.readFile(params.path);
|
|
1850
1850
|
const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
|
|
1851
1851
|
return await imageResult({
|
|
1852
1852
|
label: params.label,
|
|
@@ -5807,7 +5807,7 @@ async function routeReply(params) {
|
|
|
5807
5807
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
5808
5808
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
5809
5809
|
try {
|
|
5810
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
5810
|
+
const { deliverOutboundPayloads } = await import("./deliver-DB4v0Tyl.js").then((n) => n.n);
|
|
5811
5811
|
return {
|
|
5812
5812
|
ok: true,
|
|
5813
5813
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -11648,7 +11648,7 @@ var MediaAttachmentCache = class {
|
|
|
11648
11648
|
const size = await this.ensureLocalStat(entry);
|
|
11649
11649
|
if (entry.resolvedPath) {
|
|
11650
11650
|
if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
|
|
11651
|
-
const buffer = await
|
|
11651
|
+
const buffer = await fs$1.readFile(entry.resolvedPath);
|
|
11652
11652
|
entry.buffer = buffer;
|
|
11653
11653
|
entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
|
|
11654
11654
|
buffer,
|
|
@@ -11718,10 +11718,10 @@ var MediaAttachmentCache = class {
|
|
|
11718
11718
|
prefix: "symi-media",
|
|
11719
11719
|
extension: path.extname(bufferResult.fileName || "") || ""
|
|
11720
11720
|
});
|
|
11721
|
-
await
|
|
11721
|
+
await fs$1.writeFile(tmpPath, bufferResult.buffer);
|
|
11722
11722
|
entry.tempPath = tmpPath;
|
|
11723
11723
|
entry.tempCleanup = async () => {
|
|
11724
|
-
await
|
|
11724
|
+
await fs$1.unlink(tmpPath).catch(() => {});
|
|
11725
11725
|
};
|
|
11726
11726
|
return {
|
|
11727
11727
|
path: tmpPath,
|
|
@@ -11768,12 +11768,12 @@ var MediaAttachmentCache = class {
|
|
|
11768
11768
|
if (entry.statSize !== void 0) return entry.statSize;
|
|
11769
11769
|
try {
|
|
11770
11770
|
const currentPath = entry.resolvedPath;
|
|
11771
|
-
const stat = await
|
|
11771
|
+
const stat = await fs$1.stat(currentPath);
|
|
11772
11772
|
if (!stat.isFile()) {
|
|
11773
11773
|
entry.resolvedPath = void 0;
|
|
11774
11774
|
return;
|
|
11775
11775
|
}
|
|
11776
|
-
const canonicalPath = await
|
|
11776
|
+
const canonicalPath = await fs$1.realpath(currentPath).catch(() => currentPath);
|
|
11777
11777
|
if (!isInboundPathAllowed({
|
|
11778
11778
|
filePath: canonicalPath,
|
|
11779
11779
|
roots: await this.getCanonicalLocalPathRoots()
|
|
@@ -11795,7 +11795,7 @@ var MediaAttachmentCache = class {
|
|
|
11795
11795
|
if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
|
|
11796
11796
|
this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
|
|
11797
11797
|
if (root.includes("*")) return root;
|
|
11798
|
-
return await
|
|
11798
|
+
return await fs$1.realpath(root).catch(() => root);
|
|
11799
11799
|
}))))();
|
|
11800
11800
|
return await this.canonicalLocalPathRoots;
|
|
11801
11801
|
}
|
|
@@ -11866,7 +11866,7 @@ function formatAudioTranscripts(outputs) {
|
|
|
11866
11866
|
async function fileExists(filePath) {
|
|
11867
11867
|
if (!filePath) return false;
|
|
11868
11868
|
try {
|
|
11869
|
-
await
|
|
11869
|
+
await fs$1.stat(filePath);
|
|
11870
11870
|
return true;
|
|
11871
11871
|
} catch {
|
|
11872
11872
|
return false;
|
|
@@ -11966,7 +11966,7 @@ async function resolveCliOutput(params) {
|
|
|
11966
11966
|
const commandId = commandBase(params.command);
|
|
11967
11967
|
const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
|
|
11968
11968
|
if (fileOutput && await fileExists(fileOutput)) try {
|
|
11969
|
-
const content = await
|
|
11969
|
+
const content = await fs$1.readFile(fileOutput, "utf8");
|
|
11970
11970
|
if (content.trim()) return content.trim();
|
|
11971
11971
|
} catch {}
|
|
11972
11972
|
if (commandId === "gemini") {
|
|
@@ -12257,7 +12257,7 @@ async function runCliEntry(params) {
|
|
|
12257
12257
|
maxBytes,
|
|
12258
12258
|
timeoutMs
|
|
12259
12259
|
});
|
|
12260
|
-
const outputDir = await
|
|
12260
|
+
const outputDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
|
|
12261
12261
|
const mediaPath = pathResult.path;
|
|
12262
12262
|
const outputBase = path.join(outputDir, path.parse(mediaPath).name);
|
|
12263
12263
|
const templCtx = {
|
|
@@ -12291,7 +12291,7 @@ async function runCliEntry(params) {
|
|
|
12291
12291
|
model: command
|
|
12292
12292
|
};
|
|
12293
12293
|
} finally {
|
|
12294
|
-
await
|
|
12294
|
+
await fs$1.rm(outputDir, {
|
|
12295
12295
|
recursive: true,
|
|
12296
12296
|
force: true
|
|
12297
12297
|
}).catch(() => {});
|
|
@@ -12335,9 +12335,9 @@ function candidateBinaryNames(name) {
|
|
|
12335
12335
|
}
|
|
12336
12336
|
async function isExecutable$1(filePath) {
|
|
12337
12337
|
try {
|
|
12338
|
-
if (!(await
|
|
12338
|
+
if (!(await fs$1.stat(filePath)).isFile()) return false;
|
|
12339
12339
|
if (process.platform === "win32") return true;
|
|
12340
|
-
await
|
|
12340
|
+
await fs$1.access(filePath, constants.X_OK);
|
|
12341
12341
|
return true;
|
|
12342
12342
|
} catch {
|
|
12343
12343
|
return false;
|
|
@@ -14041,7 +14041,7 @@ async function createModelSelectionState(params) {
|
|
|
14041
14041
|
}
|
|
14042
14042
|
}
|
|
14043
14043
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14044
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14044
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-Ce7R_25e.js").then((n) => n.t);
|
|
14045
14045
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14046
14046
|
const providerKey = normalizeProviderId(provider);
|
|
14047
14047
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -17185,7 +17185,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
17185
17185
|
cwd: process.cwd(),
|
|
17186
17186
|
root: params.sandbox.workspaceDir
|
|
17187
17187
|
});
|
|
17188
|
-
if (!(await
|
|
17188
|
+
if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
17189
17189
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
17190
17190
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
17191
17191
|
return {
|
|
@@ -18199,13 +18199,13 @@ async function validateScriptFileForShellBleed(params) {
|
|
|
18199
18199
|
cwd: params.workdir,
|
|
18200
18200
|
root: params.workdir
|
|
18201
18201
|
});
|
|
18202
|
-
stat = await
|
|
18202
|
+
stat = await fs$1.stat(absPath);
|
|
18203
18203
|
} catch {
|
|
18204
18204
|
return;
|
|
18205
18205
|
}
|
|
18206
18206
|
if (!stat.isFile()) return;
|
|
18207
18207
|
if (stat.size > 512 * 1024) return;
|
|
18208
|
-
const content = await
|
|
18208
|
+
const content = await fs$1.readFile(absPath, "utf-8");
|
|
18209
18209
|
const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
|
|
18210
18210
|
if (first) {
|
|
18211
18211
|
const idx = first.index;
|
|
@@ -22881,7 +22881,7 @@ async function handleCommands(params) {
|
|
|
22881
22881
|
try {
|
|
22882
22882
|
const messages = [];
|
|
22883
22883
|
if (sessionFile) {
|
|
22884
|
-
const content = await
|
|
22884
|
+
const content = await fs$1.readFile(sessionFile, "utf-8");
|
|
22885
22885
|
for (const line of content.split("\n")) {
|
|
22886
22886
|
if (!line.trim()) continue;
|
|
22887
22887
|
try {
|
|
@@ -25068,7 +25068,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25068
25068
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
|
|
25069
25069
|
throw new Error("jsonlPath outside allowed roots");
|
|
25070
25070
|
}
|
|
25071
|
-
const canonical = await
|
|
25071
|
+
const canonical = await fs$1.realpath(resolved).catch(() => resolved);
|
|
25072
25072
|
if (!isInboundPathAllowed({
|
|
25073
25073
|
filePath: canonical,
|
|
25074
25074
|
roots
|
|
@@ -25076,7 +25076,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25076
25076
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
|
|
25077
25077
|
throw new Error("jsonlPath outside allowed roots");
|
|
25078
25078
|
}
|
|
25079
|
-
return await
|
|
25079
|
+
return await fs$1.readFile(canonical, "utf8");
|
|
25080
25080
|
}
|
|
25081
25081
|
const CanvasToolSchema = Type.Object({
|
|
25082
25082
|
action: stringEnum(CANVAS_ACTIONS),
|
|
@@ -26607,7 +26607,7 @@ async function hydrateAttachmentPayload(params) {
|
|
|
26607
26607
|
accountId: params.accountId
|
|
26608
26608
|
}),
|
|
26609
26609
|
sandboxValidated: true,
|
|
26610
|
-
readFile: (filePath) =>
|
|
26610
|
+
readFile: (filePath) => fs$1.readFile(filePath)
|
|
26611
26611
|
});
|
|
26612
26612
|
params.args.buffer = media.buffer.toString("base64");
|
|
26613
26613
|
if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
|
|
@@ -32551,19 +32551,11 @@ function createWebSearchTool(options) {
|
|
|
32551
32551
|
const provider = resolveSearchProvider(search);
|
|
32552
32552
|
const perplexityConfig = resolvePerplexityConfig(search);
|
|
32553
32553
|
const grokConfig = resolveGrokConfig(search);
|
|
32554
|
-
const description = provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.";
|
|
32555
|
-
const resolveActiveApiKey = () => {
|
|
32556
|
-
if (provider === "perplexity") return resolvePerplexityApiKey(perplexityConfig)?.apiKey;
|
|
32557
|
-
if (provider === "grok") return resolveGrokApiKey(grokConfig);
|
|
32558
|
-
return resolveSearchApiKey(search);
|
|
32559
|
-
};
|
|
32560
32554
|
return {
|
|
32561
32555
|
label: "Web Search",
|
|
32562
32556
|
name: "web_search",
|
|
32563
|
-
description,
|
|
32557
|
+
description: provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.",
|
|
32564
32558
|
parameters: WebSearchSchema,
|
|
32565
|
-
checkFn: () => Boolean(resolveActiveApiKey()),
|
|
32566
|
-
requiredEnv: provider === "perplexity" ? ["PERPLEXITY_API_KEY", "OPENROUTER_API_KEY"] : provider === "grok" ? ["XAI_API_KEY"] : ["BRAVE_API_KEY"],
|
|
32567
32559
|
execute: async (_toolCallId, args) => {
|
|
32568
32560
|
const perplexityAuth = provider === "perplexity" ? resolvePerplexityApiKey(perplexityConfig) : void 0;
|
|
32569
32561
|
const apiKey = provider === "perplexity" ? perplexityAuth?.apiKey : provider === "grok" ? resolveGrokApiKey(grokConfig) : resolveSearchApiKey(search);
|
|
@@ -33109,7 +33101,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
33109
33101
|
return;
|
|
33110
33102
|
}
|
|
33111
33103
|
try {
|
|
33112
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33104
|
+
const { deliverOutboundPayloads } = await import("./deliver-DB4v0Tyl.js").then((n) => n.n);
|
|
33113
33105
|
await deliverOutboundPayloads({
|
|
33114
33106
|
cfg: params.cfg,
|
|
33115
33107
|
channel,
|
|
@@ -33514,7 +33506,7 @@ async function stageSandboxMedia(params) {
|
|
|
33514
33506
|
};
|
|
33515
33507
|
try {
|
|
33516
33508
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
33517
|
-
await
|
|
33509
|
+
await fs$1.mkdir(destDir, { recursive: true });
|
|
33518
33510
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
33519
33511
|
cfg,
|
|
33520
33512
|
accountId: ctx.AccountId
|
|
@@ -33564,7 +33556,7 @@ async function stageSandboxMedia(params) {
|
|
|
33564
33556
|
usedNames.add(fileName);
|
|
33565
33557
|
const dest = path.join(destDir, fileName);
|
|
33566
33558
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
33567
|
-
else await
|
|
33559
|
+
else await fs$1.copyFile(source, dest);
|
|
33568
33560
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
33569
33561
|
staged.set(source, stagedPath);
|
|
33570
33562
|
}
|
|
@@ -38875,7 +38867,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
38875
38867
|
}
|
|
38876
38868
|
let commandsRegistry;
|
|
38877
38869
|
async function getCommandsRegistry() {
|
|
38878
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
38870
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-VfAQOVZO.js").then((n) => n.t);
|
|
38879
38871
|
return commandsRegistry;
|
|
38880
38872
|
}
|
|
38881
38873
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -39217,11 +39209,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39217
39209
|
const channelName = channelInfo?.name;
|
|
39218
39210
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
39219
39211
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
39220
|
-
import("./resolve-route-
|
|
39212
|
+
import("./resolve-route-Zww0Y-HJ.js").then((n) => n.r),
|
|
39221
39213
|
import("./inbound-context-B7Rvs8pK.js").then((n) => n.n),
|
|
39222
39214
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
39223
39215
|
]);
|
|
39224
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-
|
|
39216
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-BFNeXT65.js").then((n) => n.n)]);
|
|
39225
39217
|
const route = resolveAgentRoute({
|
|
39226
39218
|
cfg,
|
|
39227
39219
|
channel: "slack",
|
|
@@ -39278,7 +39270,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39278
39270
|
});
|
|
39279
39271
|
const deliverSlashPayloads = async (replies) => {
|
|
39280
39272
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
39281
|
-
import("./replies-
|
|
39273
|
+
import("./replies-DzsYQ8Md.js").then((n) => n.r),
|
|
39282
39274
|
import("./chunk-BxfKjCUx.js").then((n) => n.s),
|
|
39283
39275
|
import("./markdown-tables-CS1Tvb3z.js").then((n) => n.t)
|
|
39284
39276
|
]);
|
|
@@ -39333,7 +39325,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39333
39325
|
let nativeCommands = [];
|
|
39334
39326
|
if (nativeEnabled) {
|
|
39335
39327
|
reg = await getCommandsRegistry();
|
|
39336
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
39328
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-yPirQFOb.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
39337
39329
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
39338
39330
|
skillCommands,
|
|
39339
39331
|
provider: "slack"
|
|
@@ -40466,7 +40458,7 @@ function resolvePluginTools(params) {
|
|
|
40466
40458
|
//#endregion
|
|
40467
40459
|
//#region src/agents/apply-patch-update.ts
|
|
40468
40460
|
async function defaultReadFile(filePath) {
|
|
40469
|
-
return
|
|
40461
|
+
return fs$1.readFile(filePath, "utf8");
|
|
40470
40462
|
}
|
|
40471
40463
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
40472
40464
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -40710,10 +40702,10 @@ function resolvePatchFileOps(options) {
|
|
|
40710
40702
|
};
|
|
40711
40703
|
}
|
|
40712
40704
|
return {
|
|
40713
|
-
readFile: (filePath) =>
|
|
40714
|
-
writeFile: (filePath, content) =>
|
|
40715
|
-
remove: (filePath) =>
|
|
40716
|
-
mkdirp: (dir) =>
|
|
40705
|
+
readFile: (filePath) => fs$1.readFile(filePath, "utf8"),
|
|
40706
|
+
writeFile: (filePath, content) => fs$1.writeFile(filePath, content, "utf8"),
|
|
40707
|
+
remove: (filePath) => fs$1.rm(filePath),
|
|
40708
|
+
mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
|
|
40717
40709
|
};
|
|
40718
40710
|
}
|
|
40719
40711
|
async function ensureDir(filePath, ops) {
|
|
@@ -41562,44 +41554,6 @@ function applyToolPolicyPipeline(params) {
|
|
|
41562
41554
|
return filtered;
|
|
41563
41555
|
}
|
|
41564
41556
|
|
|
41565
|
-
//#endregion
|
|
41566
|
-
//#region src/agents/tools/availability-filter.ts
|
|
41567
|
-
const FORCE_ALL_TOOLS_ENV = "SYMI_FORCE_ALL_TOOLS";
|
|
41568
|
-
/**
|
|
41569
|
-
* Filter the tool palette by each tool's `checkFn`. Tools without a
|
|
41570
|
-
* checkFn pass through unchanged. Throwing checkFns are treated as
|
|
41571
|
-
* available (defensive). The `SYMI_FORCE_ALL_TOOLS=1` env bypasses the
|
|
41572
|
-
* filter entirely.
|
|
41573
|
-
*
|
|
41574
|
-
* Pure function — does not mutate the input array.
|
|
41575
|
-
*/
|
|
41576
|
-
function filterToolsByAvailability(tools) {
|
|
41577
|
-
if (isTruthyEnvValue(process.env[FORCE_ALL_TOOLS_ENV])) return [...tools];
|
|
41578
|
-
const out = [];
|
|
41579
|
-
for (const tool of tools) {
|
|
41580
|
-
if (!tool.checkFn) {
|
|
41581
|
-
out.push(tool);
|
|
41582
|
-
continue;
|
|
41583
|
-
}
|
|
41584
|
-
let available;
|
|
41585
|
-
try {
|
|
41586
|
-
available = tool.checkFn();
|
|
41587
|
-
} catch (err) {
|
|
41588
|
-
logVerbose(`tool availability: checkFn for "${getToolName(tool)}" threw — including tool anyway. ${String(err)}`);
|
|
41589
|
-
out.push(tool);
|
|
41590
|
-
continue;
|
|
41591
|
-
}
|
|
41592
|
-
if (available) out.push(tool);
|
|
41593
|
-
else logVerbose(`tool availability: filtered out "${getToolName(tool)}" — checkFn returned false. Set ${FORCE_ALL_TOOLS_ENV}=1 to bypass this filter.`);
|
|
41594
|
-
}
|
|
41595
|
-
return out;
|
|
41596
|
-
}
|
|
41597
|
-
function getToolName(tool) {
|
|
41598
|
-
const definition = tool.definition;
|
|
41599
|
-
if (definition && typeof definition.name === "string") return definition.name;
|
|
41600
|
-
return "(unknown tool)";
|
|
41601
|
-
}
|
|
41602
|
-
|
|
41603
41557
|
//#endregion
|
|
41604
41558
|
//#region src/agents/pi-tools.ts
|
|
41605
41559
|
function isOpenAIProvider(provider) {
|
|
@@ -41819,7 +41773,7 @@ function createSymiCodingTools(options) {
|
|
|
41819
41773
|
root: sandboxRoot,
|
|
41820
41774
|
bridge: sandboxFsBridge
|
|
41821
41775
|
}), readEditTracker) : null;
|
|
41822
|
-
const withHooks =
|
|
41776
|
+
const withHooks = applyToolPolicyPipeline({
|
|
41823
41777
|
tools: applyOwnerOnlyToolPolicy([
|
|
41824
41778
|
...base,
|
|
41825
41779
|
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
@@ -41891,7 +41845,7 @@ function createSymiCodingTools(options) {
|
|
|
41891
41845
|
label: "subagent tools.allow"
|
|
41892
41846
|
}
|
|
41893
41847
|
]
|
|
41894
|
-
})
|
|
41848
|
+
}).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
|
|
41895
41849
|
agentId,
|
|
41896
41850
|
sessionKey: options?.sessionKey,
|
|
41897
41851
|
loopDetection: resolveToolLoopDetectionConfig({
|
|
@@ -41918,7 +41872,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
41918
41872
|
};
|
|
41919
41873
|
let content;
|
|
41920
41874
|
try {
|
|
41921
|
-
content = await
|
|
41875
|
+
content = await fs$1.readFile(sessionFile, "utf-8");
|
|
41922
41876
|
} catch (err) {
|
|
41923
41877
|
if (err?.code === "ENOENT") return {
|
|
41924
41878
|
repaired: false,
|
|
@@ -41966,15 +41920,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
41966
41920
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
41967
41921
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
41968
41922
|
try {
|
|
41969
|
-
const stat = await
|
|
41970
|
-
await
|
|
41971
|
-
if (stat) await
|
|
41972
|
-
await
|
|
41973
|
-
if (stat) await
|
|
41974
|
-
await
|
|
41923
|
+
const stat = await fs$1.stat(sessionFile).catch(() => null);
|
|
41924
|
+
await fs$1.writeFile(backupPath, content, "utf-8");
|
|
41925
|
+
if (stat) await fs$1.chmod(backupPath, stat.mode);
|
|
41926
|
+
await fs$1.writeFile(tmpPath, cleaned, "utf-8");
|
|
41927
|
+
if (stat) await fs$1.chmod(tmpPath, stat.mode);
|
|
41928
|
+
await fs$1.rename(tmpPath, sessionFile);
|
|
41975
41929
|
} catch (err) {
|
|
41976
41930
|
try {
|
|
41977
|
-
await
|
|
41931
|
+
await fs$1.unlink(tmpPath);
|
|
41978
41932
|
} catch (cleanupErr) {
|
|
41979
41933
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
41980
41934
|
}
|
|
@@ -43247,7 +43201,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
43247
43201
|
if (!isSessionManagerCacheEnabled()) return;
|
|
43248
43202
|
if (isSessionManagerCached(sessionFile)) return;
|
|
43249
43203
|
try {
|
|
43250
|
-
const handle = await
|
|
43204
|
+
const handle = await fs$1.open(sessionFile, "r");
|
|
43251
43205
|
try {
|
|
43252
43206
|
const buffer = Buffer$1.alloc(4096);
|
|
43253
43207
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -43387,7 +43341,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43387
43341
|
} catch (err) {
|
|
43388
43342
|
return fail(describeUnknownError(err));
|
|
43389
43343
|
}
|
|
43390
|
-
await
|
|
43344
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
43391
43345
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
43392
43346
|
const sandbox = await resolveSandboxContext({
|
|
43393
43347
|
config: params.config,
|
|
@@ -43395,7 +43349,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43395
43349
|
workspaceDir: resolvedWorkspace
|
|
43396
43350
|
});
|
|
43397
43351
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
43398
|
-
await
|
|
43352
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
43399
43353
|
await ensureSessionHeader({
|
|
43400
43354
|
sessionFile: params.sessionFile,
|
|
43401
43355
|
sessionId: params.sessionId,
|
|
@@ -43720,12 +43674,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
43720
43674
|
const existing = writers.get(filePath);
|
|
43721
43675
|
if (existing) return existing;
|
|
43722
43676
|
const dir = path.dirname(filePath);
|
|
43723
|
-
const ready =
|
|
43677
|
+
const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
43724
43678
|
let queue = Promise.resolve();
|
|
43725
43679
|
const writer = {
|
|
43726
43680
|
filePath,
|
|
43727
43681
|
write: (line) => {
|
|
43728
|
-
queue = queue.then(() => ready).then(() =>
|
|
43682
|
+
queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
43729
43683
|
}
|
|
43730
43684
|
};
|
|
43731
43685
|
writers.set(filePath, writer);
|
|
@@ -46905,7 +46859,7 @@ Use the message tool with buttons:
|
|
|
46905
46859
|
*/
|
|
46906
46860
|
async function readSessionFile(sessionFile) {
|
|
46907
46861
|
try {
|
|
46908
|
-
return await
|
|
46862
|
+
return await fs$1.readFile(sessionFile, "utf-8");
|
|
46909
46863
|
} catch {
|
|
46910
46864
|
return null;
|
|
46911
46865
|
}
|
|
@@ -46914,8 +46868,8 @@ async function writeAtomically(sessionFile, text) {
|
|
|
46914
46868
|
const dir = path.dirname(sessionFile);
|
|
46915
46869
|
const base = path.basename(sessionFile);
|
|
46916
46870
|
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
46917
|
-
await
|
|
46918
|
-
await
|
|
46871
|
+
await fs$1.writeFile(tmp, text, "utf-8");
|
|
46872
|
+
await fs$1.rename(tmp, sessionFile);
|
|
46919
46873
|
}
|
|
46920
46874
|
/**
|
|
46921
46875
|
* Remove empty assistant JSONL entries from the session file.
|
|
@@ -47017,7 +46971,7 @@ function isInPoisonRange(version) {
|
|
|
47017
46971
|
*/
|
|
47018
46972
|
async function checkSessionPoison(sessionFile) {
|
|
47019
46973
|
try {
|
|
47020
|
-
const firstLine = (await
|
|
46974
|
+
const firstLine = (await fs$1.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
47021
46975
|
if (!firstLine) return null;
|
|
47022
46976
|
const header = JSON.parse(firstLine);
|
|
47023
46977
|
if (header.type !== "session") return null;
|
|
@@ -47035,7 +46989,7 @@ async function checkSessionPoison(sessionFile) {
|
|
|
47035
46989
|
*/
|
|
47036
46990
|
async function archivePoisonedSession(sessionFile) {
|
|
47037
46991
|
const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
47038
|
-
await
|
|
46992
|
+
await fs$1.rename(sessionFile, archiveName);
|
|
47039
46993
|
return archiveName;
|
|
47040
46994
|
}
|
|
47041
46995
|
/**
|
|
@@ -47044,14 +46998,14 @@ async function archivePoisonedSession(sessionFile) {
|
|
|
47044
46998
|
*/
|
|
47045
46999
|
async function stampSessionVersion(sessionFile) {
|
|
47046
47000
|
try {
|
|
47047
|
-
const lines = (await
|
|
47001
|
+
const lines = (await fs$1.readFile(sessionFile, "utf-8")).split("\n");
|
|
47048
47002
|
if (lines.length === 0) return;
|
|
47049
47003
|
const header = JSON.parse(lines[0]);
|
|
47050
47004
|
if (header.type !== "session") return;
|
|
47051
47005
|
if (header.symiVersion === VERSION) return;
|
|
47052
47006
|
header.symiVersion = VERSION;
|
|
47053
47007
|
lines[0] = JSON.stringify(header);
|
|
47054
|
-
await
|
|
47008
|
+
await fs$1.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
47055
47009
|
} catch {}
|
|
47056
47010
|
}
|
|
47057
47011
|
/**
|
|
@@ -47280,7 +47234,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
47280
47234
|
return;
|
|
47281
47235
|
}
|
|
47282
47236
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
47283
|
-
await
|
|
47237
|
+
await fs$1.writeFile(params.sessionFile, "", "utf-8");
|
|
47284
47238
|
sm.fileEntries = [header];
|
|
47285
47239
|
sm.byId?.clear?.();
|
|
47286
47240
|
sm.labelsById?.clear?.();
|
|
@@ -47838,7 +47792,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47838
47792
|
const prevCwd = process.cwd();
|
|
47839
47793
|
const runAbortController = new AbortController();
|
|
47840
47794
|
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"}`);
|
|
47841
|
-
await
|
|
47795
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
47842
47796
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
47843
47797
|
const sandbox = await resolveSandboxContext({
|
|
47844
47798
|
config: params.config,
|
|
@@ -47846,7 +47800,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47846
47800
|
workspaceDir: resolvedWorkspace
|
|
47847
47801
|
});
|
|
47848
47802
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
47849
|
-
await
|
|
47803
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
47850
47804
|
let restoreSkillEnv;
|
|
47851
47805
|
process.chdir(effectiveWorkspace);
|
|
47852
47806
|
try {
|
|
@@ -48055,7 +48009,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48055
48009
|
sessionFile: params.sessionFile,
|
|
48056
48010
|
warn: (message) => log$7.warn(message)
|
|
48057
48011
|
});
|
|
48058
|
-
const hadSessionFile = await
|
|
48012
|
+
const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
48059
48013
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
48060
48014
|
modelApi: params.model?.api,
|
|
48061
48015
|
provider: params.provider,
|
|
@@ -49147,7 +49101,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
49147
49101
|
}
|
|
49148
49102
|
runLoopIterations += 1;
|
|
49149
49103
|
attemptedThinking.add(thinkLevel);
|
|
49150
|
-
await
|
|
49104
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
49151
49105
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
49152
49106
|
const attempt = await runEmbeddedAttempt({
|
|
49153
49107
|
sessionId: params.sessionId,
|