@symerian/symi 3.4.25 → 3.4.27
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-N_J2cDO6.js → agent-CiqPWDUd.js} +18 -18
- package/dist/{agent-CQlyTNu-.js → agent-DOOj3Gzb.js} +1 -1
- package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
- package/dist/{agents-1xmRO246.js → agents-BBQfFoen.js} +2 -2
- package/dist/{agents.config-BJ9RIQlb.js → agents.config-Dm3oLpYK.js} +1 -1
- package/dist/{audit-DCwHws4M.js → audit-BSX7fMfc.js} +20 -20
- package/dist/{auth-choice-Ryx7oj6G.js → auth-choice-BYbTjWcs.js} +1 -1
- package/dist/{auth-choice-DwXdS4c2.js → auth-choice-rhBmet5i.js} +11 -11
- package/dist/{auth-profiles-Ce7R_25e.js → auth-profiles-D5nYBj_Z.js} +2 -2
- package/dist/{auth-token-DgRRSbEX.js → auth-token-CAV1oLQG.js} +3 -3
- package/dist/{banner-CxMQaUgh.js → banner-C1qG5Rm9.js} +1 -1
- package/dist/{browser-cli-C3hfJNZy.js → browser-cli-De8jg4-F.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +4 -4
- package/dist/bundled/session-memory/handler.js +4 -4
- package/dist/{call-BouPakqe.js → call-CW8U1BPq.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-n9C_ovb1.js → channel-options-BsXUgCMq.js} +1 -1
- package/dist/{channel-options-WR29vfWK.js → channel-options-CJD7jwYg.js} +1 -1
- package/dist/{channels-cli-DbFGI3vF.js → channels-cli-Bao4VNbH.js} +57 -57
- package/dist/{channels-cli-Cs-Uq67O.js → channels-cli-Dxn5n9e4.js} +7 -7
- package/dist/{chrome-B7-rO4i9.js → chrome-BKUACyeO.js} +7 -7
- package/dist/{chrome-C_I81hbq.js → chrome-DPjznJQ-.js} +7 -7
- package/dist/{chrome-rzK8edU7.js → chrome-pFBxO63W.js} +2 -2
- package/dist/{cli-D55pCJ8Q.js → cli-CrhLSz3t.js} +4 -4
- package/dist/{cli-7ceDvtPc.js → cli-WP38F9C5.js} +45 -45
- package/dist/{client-BzUAFrla.js → client-T5P9umyG.js} +1 -1
- package/dist/{command-registry-DAy62yhH.js → command-registry-DoXcG7FZ.js} +10 -10
- package/dist/{commands-registry-VfAQOVZO.js → commands-registry-BjcGLk4v.js} +1 -1
- package/dist/{completion-cli-Bc1jojml.js → completion-cli-C0SXi7ya.js} +12 -12
- package/dist/{completion-cli-Bh-Y2NVp.js → completion-cli-DaWi3_ux.js} +2 -2
- package/dist/{config-D7SS4vdk.js → config-D-PYSlE8.js} +2 -2
- package/dist/{config-cli-DupKETmw.js → config-cli-DS67KtKf.js} +4 -4
- package/dist/{config-cli-BxRcn2oD.js → config-cli-DXKm0pS5.js} +1 -1
- package/dist/{config-guard-BGAQzX2K.js → config-guard-xLTTFANi.js} +6 -6
- package/dist/{config-validation-COcIIMNe.js → config-validation-C4wGq3rz.js} +1 -1
- package/dist/{configure-0XYm59w7.js → configure-B99YJJb0.js} +14 -14
- package/dist/{configure-BilM_Fgn.js → configure-CzO4_jJJ.js} +2 -2
- package/dist/{consolidate-DI20-Wtn.js → consolidate-BB4BOQIN.js} +6 -6
- package/dist/{control-service-Ry7Le68N.js → control-service-y53w3Jzy.js} +4 -4
- package/dist/{control-ui-assets-DuDhl0co.js → control-ui-assets-Dryy7mCE.js} +1 -1
- package/dist/{cron-cli-DHFgjr_X.js → cron-cli-BMblAFRK.js} +7 -7
- package/dist/{daemon-cli-fC2R9YZd.js → daemon-cli-BJGNf5qV.js} +11 -11
- package/dist/{daemon-runtime-tZgIbDPz.js → daemon-runtime-u4p9jsEF.js} +10 -10
- package/dist/{deliver-DB4v0Tyl.js → deliver-C79-Umbk.js} +2 -2
- package/dist/{deliver-oWGJwzFf.js → deliver-Cjyb6h4g.js} +4 -4
- package/dist/{deliver-DyO3QD8O.js → deliver-DTRkeYm3.js} +4 -4
- package/dist/{deps-BlmO-MfQ.js → deps-UA1UBhl7.js} +1 -1
- package/dist/{devices-cli-DtkKN4l0.js → devices-cli-wsTs-nti.js} +6 -6
- package/dist/{diagnostics-tVJR9V0_.js → diagnostics-oW0LBW-t.js} +5 -5
- package/dist/{directory-cli-Bfy_ejW2.js → directory-cli-D8As6t8Z.js} +3 -3
- package/dist/{dm-policy-shared-CBlUyDSX.js → dm-policy-shared-DRJrFKqJ.js} +1 -1
- package/dist/{dns-cli-DzKaV6NZ.js → dns-cli-BKOTBn3n.js} +3 -3
- package/dist/{docs-cli-a90_8wuN.js → docs-cli-D5j7Nmz2.js} +1 -1
- package/dist/{doctor-completion-BZJWX3Dr.js → doctor-completion-B1YCzbvi.js} +1 -1
- package/dist/{doctor-completion-B6OPl_GZ.js → doctor-completion-mev5PRjN.js} +2 -2
- package/dist/{doctor-config-flow-30ZEvATb.js → doctor-config-flow-Uv41seME.js} +9 -9
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-C3gZAwV8.js → exec-approvals-cli-B4ry9s5r.js} +13 -13
- package/dist/extensionAPI.js +4 -4
- package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
- package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
- package/dist/{gateway-cli-CyhLb-zS.js → gateway-cli-B3JVj_dv.js} +98 -98
- package/dist/{gateway-cli-DQhYa6AL.js → gateway-cli-Chnp6icp.js} +10 -10
- package/dist/{gateway-rpc-DNq7EMhm.js → gateway-rpc-CLzM6ugo.js} +1 -1
- package/dist/{glass-ui-ws-SJVljtUx.js → glass-ui-ws--GjxFRyX.js} +67 -67
- package/dist/{glass-ui-ws-CLDbMDPk.js → glass-ui-ws-5o8dvEZO.js} +8 -8
- package/dist/{health-DZ0aipDZ.js → health-D2th0Ip6.js} +4 -4
- package/dist/{hooks-cli-BMRj13QU.js → hooks-cli-B4Nvp9AV.js} +59 -59
- package/dist/{hooks-cli-BVtdP5x7.js → hooks-cli-B_sZth4r.js} +5 -5
- package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
- package/dist/index.js +52 -52
- package/dist/{inspect-CXsOujVt.js → inspect-U3g9owQ8.js} +4 -4
- package/dist/{install-safe-path-D5gi-nfu.js → install-safe-path-BwMMOh9z.js} +11 -11
- package/dist/{installs-DF_LhGX6.js → installs-vdi1BESF.js} +10 -10
- package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
- package/dist/{lifecycle-core-Bvdl2ShM.js → lifecycle-core-BfmNlC-k.js} +5 -5
- package/dist/llm-slug-generator.js +4 -4
- package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
- package/dist/{logs-cli-mdSEYBKS.js → logs-cli-COZzdFu6.js} +7 -7
- package/dist/{manager-BhIaahpm.js → manager-BfbQb9qM.js} +1 -1
- package/dist/{manager-DhHNnMyK.js → manager-Bryhc0Ip.js} +1 -1
- package/dist/{manager-BIt2_nlu.js → manager-C5FGNRjL.js} +1 -1
- package/dist/{manager-BLg6zbeA.js → manager-DyYRwHZt.js} +15 -15
- package/dist/{memory-BENbCb4f.js → memory-Cypj1lBQ.js} +2 -2
- package/dist/{memory-B4DsKRSc.js → memory-DgDnTEcB.js} +5 -5
- package/dist/{memory-cli-DotHyA76.js → memory-cli-CfJkD7mO.js} +12 -12
- package/dist/{memory-cli-BIjwqjBx.js → memory-cli-DB7UIev4.js} +2 -2
- package/dist/{model-DsMHOvMn.js → model-DbILYCfo.js} +1 -1
- package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
- package/dist/{model-catalog-DQTmHZK7.js → model-catalog-CeqDEWGz.js} +3 -3
- package/dist/{model-picker-D4TY_tPx.js → model-picker-C_f6MALt.js} +5 -5
- package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
- package/dist/{models-CmToZKBp.js → models-Bpqeds64.js} +2 -2
- package/dist/{models-cli-CZgkOUZB.js → models-cli-BUWfj5iJ.js} +55 -55
- package/dist/{models-cli-Di7iKhD4.js → models-cli-Bc47WFhD.js} +6 -6
- package/dist/{models-config-CRnTzdFs.js → models-config-Dp5-tBqs.js} +8 -8
- package/dist/{node-cli-BXv9SEDG.js → node-cli-BdjmGI32.js} +27 -27
- package/dist/{node-service-CrDVFWQl.js → node-service-DphkTjBV.js} +1 -1
- package/dist/{nodes-cli-Cim3ANNU.js → nodes-cli-BChJzcKY.js} +10 -10
- package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
- package/dist/{npm-registry-spec-YMWTMnm_.js → npm-registry-spec-CqVgiBCf.js} +9 -9
- package/dist/{onboard-BXI02b3e.js → onboard-BbfERyKU.js} +1 -1
- package/dist/{onboard-CuLvp4Ds.js → onboard-C0nMMiiS.js} +15 -15
- package/dist/{onboard-channels-A6_QP7MR.js → onboard-channels-CMp9YXHC.js} +1 -1
- package/dist/{onboard-channels-E5NIYGJz.js → onboard-channels-CmsfVut5.js} +4 -4
- package/dist/{onboard-custom-BrtjWDlX.js → onboard-custom-BfHczxx0.js} +3 -3
- package/dist/{onboard-helpers---sZ9pdZ.js → onboard-helpers-OB_xKQze.js} +8 -8
- package/dist/{onboard-hooks-CtIRdncr.js → onboard-hooks-BA22KYCG.js} +1 -1
- package/dist/{onboard-remote-BUB3VPBP.js → onboard-remote-Dv2Uz8Ru.js} +1 -1
- package/dist/{onboard-skills-Cs3BZ4VJ.js → onboard-skills-BzxofI4T.js} +3 -3
- package/dist/{onboarding-BeYl1Egj.js → onboarding-DoYMfCjS.js} +3 -3
- package/dist/{onboarding-BWMBA6cP.js → onboarding-vgZFhH5N.js} +12 -12
- package/dist/{onboarding.finalize-CH8dBgA2.js → onboarding.finalize-BYHDzz2i.js} +31 -31
- package/dist/{onboarding.finalize-Bk-XW8b3.js → onboarding.finalize-Dj0xG8pk.js} +4 -4
- package/dist/{onboarding.gateway-config-arRNxrI9.js → onboarding.gateway-config-CDRLfIZM.js} +8 -8
- package/dist/{openai-model-default-XudD4Xik.js → openai-model-default-Dl21Ivjc.js} +2 -2
- package/dist/{pairing-cli-NDavTm1_.js → pairing-cli-C2_Zobhz.js} +5 -5
- package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
- package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
- package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
- package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
- package/dist/{pi-embedded-0I7WdtRz.js → pi-embedded-C7mJzGIf.js} +59 -13
- package/dist/{pi-embedded-helpers-B5cWV7_y.js → pi-embedded-helpers-y3vJmW6T.js} +6 -6
- package/dist/{pi-tools.policy-BdGVEMZn.js → pi-tools.policy-ji-L-Mpv.js} +3 -3
- package/dist/{plugin-auto-enable-B_lNp6yM.js → plugin-auto-enable-Ctbn2w4Q.js} +1 -1
- package/dist/{plugin-registry-DovNSdK0.js → plugin-registry-D2ZbwBU_.js} +3 -3
- package/dist/{plugin-registry-CAdIrLmG.js → plugin-registry-pKaJ4ltN.js} +1 -1
- package/dist/plugin-sdk/agents/pi-tools.types.d.ts +1 -2
- package/dist/plugin-sdk/agents/tools/availability-filter.d.ts +10 -0
- package/dist/plugin-sdk/agents/tools/common.d.ts +30 -0
- package/dist/{plugins-cli-ZG4PxNTC.js → plugins-cli-CoHiV4BX.js} +54 -54
- package/dist/{plugins-cli-JzKO-vmR.js → plugins-cli-uo8lcB7v.js} +5 -5
- package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
- package/dist/{ports-C3ZSkRGq.js → ports-ukrEAkOP.js} +1 -1
- package/dist/{program-context-ByiEP1Lk.js → program-context-B1ZbQmLL.js} +38 -38
- package/dist/{program-BbfU4idg.js → program-rzYjZKRz.js} +10 -10
- package/dist/{prompt-select-styled-DvrG_zWV.js → prompt-select-styled-CX0v66wx.js} +38 -38
- package/dist/{prompt-select-styled-CWH2Mcrb.js → prompt-select-styled-F6P-rvFI.js} +4 -4
- package/dist/{provider-auth-helpers-CMQexdSl.js → provider-auth-helpers-Ck98bkHV.js} +1 -1
- package/dist/{provider-auth-helpers-2x7YxT5F.js → provider-auth-helpers-_jn9PngO.js} +6 -6
- package/dist/{push-apns-CtWwPxRj.js → push-apns-BtMtpzEm.js} +1 -1
- package/dist/{push-apns-eGdGU3r7.js → push-apns-CmeoBcIQ.js} +4 -4
- package/dist/{pw-ai-BOOB8qoi.js → pw-ai-BFS9ezWe.js} +1 -1
- package/dist/{pw-ai-tgngV3iZ.js → pw-ai-CQJsGI1b.js} +7 -7
- package/dist/{pw-ai-Cx-Ko_FL.js → pw-ai-D2pEVS5n.js} +1 -1
- package/dist/{qmd-manager-qV_04VKG.js → qmd-manager-DawTY2mB.js} +19 -19
- package/dist/{qr-cli-Vo1XL6B2.js → qr-cli-DKowtQcM.js} +3 -3
- package/dist/{register.agent-Dwkya1rv.js → register.agent-0hWBZXD7.js} +67 -67
- package/dist/{register.agent-DZE9NBNx.js → register.agent-_UqSBmt5.js} +9 -9
- package/dist/{register.configure-DCpbCHR0.js → register.configure-CgQ6sqtQ.js} +70 -70
- package/dist/{register.configure-CD8WkXo8.js → register.configure-KrTtvKSp.js} +8 -8
- package/dist/{register.maintenance-CxVeo_7j.js → register.maintenance-DDSfzFoo.js} +9 -9
- package/dist/{register.maintenance-Bqjj77CZ.js → register.maintenance-DjZeknO6.js} +67 -67
- package/dist/{register.message-tcJN7-E3.js → register.message-DSwwDcGi.js} +5 -5
- package/dist/{register.message-uhAmNxoO.js → register.message-DTZJ5OiL.js} +47 -47
- package/dist/{register.onboard-F6d_Wrv1.js → register.onboard-B8k5phG7.js} +25 -25
- package/dist/{register.onboard-Rm5t0yxX.js → register.onboard-BToIZTIS.js} +2 -2
- package/dist/{register.setup-CcHxpsUT.js → register.setup-1fexz2oW.js} +28 -28
- package/dist/{register.setup-C2datfZK.js → register.setup-BdUewOo1.js} +2 -2
- package/dist/{register.status-health-sessions-DIUDRMqm.js → register.status-health-sessions-0RyA2cXf.js} +41 -41
- package/dist/{register.status-health-sessions-DFVjS9Hy.js → register.status-health-sessions-eBaeXIvo.js} +3 -3
- package/dist/{register.subclis-D9uGnVGm.js → register.subclis-tX3BslaT.js} +9 -9
- package/dist/{replies-DzsYQ8Md.js → replies-D3cffD5N.js} +1 -1
- package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
- package/dist/{resolve-route-Zww0Y-HJ.js → resolve-route-B0i_o4Fo.js} +1 -1
- package/dist/{routes-C-rIjd8Z.js → routes-zpAUwtCG.js} +10 -10
- package/dist/{rpc-BkFkeuJ6.js → rpc-DhsDKVo-.js} +1 -1
- package/dist/{run-main-HkbyvIDy.js → run-main-DIl_Kl0B.js} +17 -17
- package/dist/{sandbox-Dx8IMw-E.js → sandbox-DQCaejcD.js} +18 -18
- package/dist/{sandbox-cli-BFkLKdlk.js → sandbox-cli-CbvyZs1z.js} +13 -13
- package/dist/{security-cli-BEpQ_rO1.js → security-cli-CbJxNYZx.js} +29 -29
- package/dist/{send-Cxu1tl56.js → send-QscYkkNh.js} +7 -7
- package/dist/{server-context--mmXXEkE.js → server-context-CXVq7gZ7.js} +5 -5
- package/dist/{server-methods-DJ8eiTu1.js → server-methods-CpFBGxWI.js} +6 -6
- package/dist/{server-methods-RtjWUhkv.js → server-methods-DPxjPGr0.js} +58 -58
- package/dist/{server-node-events-CT8fFtBQ.js → server-node-events-2SUW10k3.js} +6 -6
- package/dist/{server-node-events-DQ1iCUgY.js → server-node-events-B_BPbi7z.js} +48 -48
- package/dist/{service-CyEDtYLq.js → service-Cm4-5AH9.js} +15 -15
- package/dist/{session-dirs-CXErIzZq.js → session-dirs-BypCYFN3.js} +2 -2
- package/dist/{session-utils-BZnPW904.js → session-utils-lXjJoBxe.js} +14 -14
- package/dist/{sessions-optZRB57.js → sessions-aSo5jsmg.js} +10 -10
- package/dist/{shared-DJFwvlUi.js → shared-BI-gOZsD.js} +3 -3
- package/dist/{shared-Ctok0Bcs.js → shared-DDX_4ypC.js} +1 -1
- package/dist/{skill-commands-yPirQFOb.js → skill-commands-C9WuAfb2.js} +4 -4
- package/dist/{skill-scanner-BBwesm0w.js → skill-scanner-CFqMkfZW.js} +5 -5
- package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
- package/dist/{skills-cli-gC5ETdly.js → skills-cli-BgyaAQoj.js} +7 -7
- package/dist/{skills-install-CLN_Ks5r.js → skills-install-MGsx6q5Z.js} +3 -3
- package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
- package/dist/{skills-status-iltfI_bO.js → skills-status-CbSdFlvm.js} +1 -1
- package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
- package/dist/{status-Cpz64Vy_.js → status-BVYDUlnp.js} +1 -1
- package/dist/{status-CuMBp54T.js → status-C-r9JpJf.js} +23 -23
- package/dist/{status-EAjzyREy.js → status-DIJvpgEm.js} +3 -3
- package/dist/{status-CoqGtHXq.js → status-DbNNmkNB.js} +1 -1
- package/dist/{status.update-F4CbQCxF.js → status.update-EyslEZkn.js} +3 -3
- package/dist/{subagent-registry-Dkif1XYO.js → subagent-registry-DWemyjbN.js} +52 -6
- package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
- package/dist/{synthesis-D3fpp3Vu.js → synthesis-BdTiornP.js} +4 -4
- package/dist/{synthesis-CpsURf9J.js → synthesis-BxYzOZUA.js} +4 -4
- package/dist/{synthesis-CKKZrrYd.js → synthesis-C7RlvHEs.js} +45 -45
- package/dist/{synthesis-B0PXRiiM.js → synthesis-DQ7Y6OE0.js} +4 -4
- package/dist/{system-cli-DMKzffe3.js → system-cli-DgOvK_kU.js} +7 -7
- package/dist/{systemd-DRpQb_L1.js → systemd-B2nTr3Y2.js} +5 -5
- package/dist/{systemd-hints-DR4u43WA.js → systemd-hints-DtOWJT_2.js} +6 -6
- package/dist/{systemd-linger-BQQl5RXN.js → systemd-linger-CWi5l8Nt.js} +1 -1
- package/dist/{tui-CqrM_Fj2.js → tui-D7ms_iQ4.js} +7 -7
- package/dist/{tui-cli-BsqRmqTX.js → tui-cli-DNvAqIYN.js} +19 -19
- package/dist/{unified-runner-DZAjU6aB.js → unified-runner-BIUJm_Iv.js} +150 -104
- package/dist/{unified-runner-DkPztkL8.js → unified-runner-DPWNhQQA.js} +59 -13
- package/dist/{update-check-CxBGAP1E.js → update-check-CduiCxPo.js} +5 -5
- package/dist/{update-cli-Bgk30eoA.js → update-cli-BM-A3cIZ.js} +9 -9
- package/dist/{update-cli-t7W6vcQY.js → update-cli-GKXF83cS.js} +77 -77
- package/dist/{update-CWEjB8uS.js → update-pddgyV7i.js} +3 -3
- package/dist/{update-runner-C4Uy75eP.js → update-runner-BMYqz1dl.js} +15 -15
- package/dist/{webhooks-cli-Dp-pp0Sf.js → webhooks-cli-BPPmnDCj.js} +4 -4
- package/dist/{with-timeout-B5zAsivw.js → with-timeout-D1qzvPE0.js} +1 -1
- package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
- package/dist/{wsl-DMA0sTvh.js → wsl-Sed675xh.js} +2 -2
- package/package.json +1 -1
|
@@ -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-D5nYBj_Z.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-DeCVdZB4.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-Bnsyyeci.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-CCTzD29o.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-y3vJmW6T.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-D-PYSlE8.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-DQCaejcD.js";
|
|
24
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-pFBxO63W.js";
|
|
25
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-CXVq7gZ7.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-CYcBtLGH.js";
|
|
28
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./routes-zpAUwtCG.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-BWqg8NZT.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-BzCBIakN.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-aSo5jsmg.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-QscYkkNh.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-C79-Umbk.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-_C07_3Yr.js";
|
|
49
|
+
import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSymiModelsJson, x as createOllamaStreamFn } from "./models-config-Dp5-tBqs.js";
|
|
50
|
+
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-D-vdh-nY.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-lXjJoBxe.js";
|
|
53
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-D1qzvPE0.js";
|
|
54
|
+
import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CtZtkTJK.js";
|
|
55
|
+
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-DgDnTEcB.js";
|
|
56
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-DyYRwHZt.js";
|
|
57
|
+
import { f as runTasksWithConcurrency } from "./internal-csqU78gW.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-2Jb79HZ8.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-BjcGLk4v.js";
|
|
65
|
+
import { zt as SESSION_LABEL_MAX_LENGTH } from "./client-T5P9umyG.js";
|
|
66
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-CW8U1BPq.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-BcRQTDsZ.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-CeqDEWGz.js";
|
|
73
|
+
import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-C9WuAfb2.js";
|
|
74
|
+
import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-Be-ZQK87.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-Cp5QP3ET.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-y53w3Jzy.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-B0i_o4Fo.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-CfJkD7mO.js";
|
|
88
|
+
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-D3cffD5N.js";
|
|
89
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-ji-L-Mpv.js";
|
|
90
|
+
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-DbILYCfo.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 fsPromises 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 fsPromises.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-C79-Umbk.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 fsPromises.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 fsPromises.writeFile(tmpPath, bufferResult.buffer);
|
|
11722
11722
|
entry.tempPath = tmpPath;
|
|
11723
11723
|
entry.tempCleanup = async () => {
|
|
11724
|
-
await
|
|
11724
|
+
await fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.stat(filePath)).isFile()) return false;
|
|
12339
12339
|
if (process.platform === "win32") return true;
|
|
12340
|
-
await
|
|
12340
|
+
await fsPromises.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-D5nYBj_Z.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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 fsPromises.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) => fsPromises.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,11 +32551,19 @@ 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
|
+
};
|
|
32554
32560
|
return {
|
|
32555
32561
|
label: "Web Search",
|
|
32556
32562
|
name: "web_search",
|
|
32557
|
-
description
|
|
32563
|
+
description,
|
|
32558
32564
|
parameters: WebSearchSchema,
|
|
32565
|
+
checkFn: () => Boolean(resolveActiveApiKey()),
|
|
32566
|
+
requiredEnv: provider === "perplexity" ? ["PERPLEXITY_API_KEY", "OPENROUTER_API_KEY"] : provider === "grok" ? ["XAI_API_KEY"] : ["BRAVE_API_KEY"],
|
|
32559
32567
|
execute: async (_toolCallId, args) => {
|
|
32560
32568
|
const perplexityAuth = provider === "perplexity" ? resolvePerplexityApiKey(perplexityConfig) : void 0;
|
|
32561
32569
|
const apiKey = provider === "perplexity" ? perplexityAuth?.apiKey : provider === "grok" ? resolveGrokApiKey(grokConfig) : resolveSearchApiKey(search);
|
|
@@ -33101,7 +33109,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
33101
33109
|
return;
|
|
33102
33110
|
}
|
|
33103
33111
|
try {
|
|
33104
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33112
|
+
const { deliverOutboundPayloads } = await import("./deliver-C79-Umbk.js").then((n) => n.n);
|
|
33105
33113
|
await deliverOutboundPayloads({
|
|
33106
33114
|
cfg: params.cfg,
|
|
33107
33115
|
channel,
|
|
@@ -33506,7 +33514,7 @@ async function stageSandboxMedia(params) {
|
|
|
33506
33514
|
};
|
|
33507
33515
|
try {
|
|
33508
33516
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
33509
|
-
await
|
|
33517
|
+
await fsPromises.mkdir(destDir, { recursive: true });
|
|
33510
33518
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
33511
33519
|
cfg,
|
|
33512
33520
|
accountId: ctx.AccountId
|
|
@@ -33556,7 +33564,7 @@ async function stageSandboxMedia(params) {
|
|
|
33556
33564
|
usedNames.add(fileName);
|
|
33557
33565
|
const dest = path.join(destDir, fileName);
|
|
33558
33566
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
33559
|
-
else await
|
|
33567
|
+
else await fsPromises.copyFile(source, dest);
|
|
33560
33568
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
33561
33569
|
staged.set(source, stagedPath);
|
|
33562
33570
|
}
|
|
@@ -38867,7 +38875,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
38867
38875
|
}
|
|
38868
38876
|
let commandsRegistry;
|
|
38869
38877
|
async function getCommandsRegistry() {
|
|
38870
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
38878
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BjcGLk4v.js").then((n) => n.t);
|
|
38871
38879
|
return commandsRegistry;
|
|
38872
38880
|
}
|
|
38873
38881
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -39209,11 +39217,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39209
39217
|
const channelName = channelInfo?.name;
|
|
39210
39218
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
39211
39219
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
39212
|
-
import("./resolve-route-
|
|
39220
|
+
import("./resolve-route-B0i_o4Fo.js").then((n) => n.r),
|
|
39213
39221
|
import("./inbound-context-B7Rvs8pK.js").then((n) => n.n),
|
|
39214
39222
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
39215
39223
|
]);
|
|
39216
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-
|
|
39224
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-CtZtkTJK.js").then((n) => n.n)]);
|
|
39217
39225
|
const route = resolveAgentRoute({
|
|
39218
39226
|
cfg,
|
|
39219
39227
|
channel: "slack",
|
|
@@ -39270,7 +39278,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39270
39278
|
});
|
|
39271
39279
|
const deliverSlashPayloads = async (replies) => {
|
|
39272
39280
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
39273
|
-
import("./replies-
|
|
39281
|
+
import("./replies-D3cffD5N.js").then((n) => n.r),
|
|
39274
39282
|
import("./chunk-BxfKjCUx.js").then((n) => n.s),
|
|
39275
39283
|
import("./markdown-tables-CS1Tvb3z.js").then((n) => n.t)
|
|
39276
39284
|
]);
|
|
@@ -39325,7 +39333,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39325
39333
|
let nativeCommands = [];
|
|
39326
39334
|
if (nativeEnabled) {
|
|
39327
39335
|
reg = await getCommandsRegistry();
|
|
39328
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
39336
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-C9WuAfb2.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
39329
39337
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
39330
39338
|
skillCommands,
|
|
39331
39339
|
provider: "slack"
|
|
@@ -40458,7 +40466,7 @@ function resolvePluginTools(params) {
|
|
|
40458
40466
|
//#endregion
|
|
40459
40467
|
//#region src/agents/apply-patch-update.ts
|
|
40460
40468
|
async function defaultReadFile(filePath) {
|
|
40461
|
-
return
|
|
40469
|
+
return fsPromises.readFile(filePath, "utf8");
|
|
40462
40470
|
}
|
|
40463
40471
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
40464
40472
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -40702,10 +40710,10 @@ function resolvePatchFileOps(options) {
|
|
|
40702
40710
|
};
|
|
40703
40711
|
}
|
|
40704
40712
|
return {
|
|
40705
|
-
readFile: (filePath) =>
|
|
40706
|
-
writeFile: (filePath, content) =>
|
|
40707
|
-
remove: (filePath) =>
|
|
40708
|
-
mkdirp: (dir) =>
|
|
40713
|
+
readFile: (filePath) => fsPromises.readFile(filePath, "utf8"),
|
|
40714
|
+
writeFile: (filePath, content) => fsPromises.writeFile(filePath, content, "utf8"),
|
|
40715
|
+
remove: (filePath) => fsPromises.rm(filePath),
|
|
40716
|
+
mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
|
|
40709
40717
|
};
|
|
40710
40718
|
}
|
|
40711
40719
|
async function ensureDir(filePath, ops) {
|
|
@@ -41554,6 +41562,44 @@ function applyToolPolicyPipeline(params) {
|
|
|
41554
41562
|
return filtered;
|
|
41555
41563
|
}
|
|
41556
41564
|
|
|
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
|
+
|
|
41557
41603
|
//#endregion
|
|
41558
41604
|
//#region src/agents/pi-tools.ts
|
|
41559
41605
|
function isOpenAIProvider(provider) {
|
|
@@ -41773,7 +41819,7 @@ function createSymiCodingTools(options) {
|
|
|
41773
41819
|
root: sandboxRoot,
|
|
41774
41820
|
bridge: sandboxFsBridge
|
|
41775
41821
|
}), readEditTracker) : null;
|
|
41776
|
-
const withHooks = applyToolPolicyPipeline({
|
|
41822
|
+
const withHooks = filterToolsByAvailability(applyToolPolicyPipeline({
|
|
41777
41823
|
tools: applyOwnerOnlyToolPolicy([
|
|
41778
41824
|
...base,
|
|
41779
41825
|
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
@@ -41845,7 +41891,7 @@ function createSymiCodingTools(options) {
|
|
|
41845
41891
|
label: "subagent tools.allow"
|
|
41846
41892
|
}
|
|
41847
41893
|
]
|
|
41848
|
-
}).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
|
|
41894
|
+
})).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
|
|
41849
41895
|
agentId,
|
|
41850
41896
|
sessionKey: options?.sessionKey,
|
|
41851
41897
|
loopDetection: resolveToolLoopDetectionConfig({
|
|
@@ -41872,7 +41918,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
41872
41918
|
};
|
|
41873
41919
|
let content;
|
|
41874
41920
|
try {
|
|
41875
|
-
content = await
|
|
41921
|
+
content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
41876
41922
|
} catch (err) {
|
|
41877
41923
|
if (err?.code === "ENOENT") return {
|
|
41878
41924
|
repaired: false,
|
|
@@ -41920,15 +41966,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
41920
41966
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
41921
41967
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
41922
41968
|
try {
|
|
41923
|
-
const stat = await
|
|
41924
|
-
await
|
|
41925
|
-
if (stat) await
|
|
41926
|
-
await
|
|
41927
|
-
if (stat) await
|
|
41928
|
-
await
|
|
41969
|
+
const stat = await fsPromises.stat(sessionFile).catch(() => null);
|
|
41970
|
+
await fsPromises.writeFile(backupPath, content, "utf-8");
|
|
41971
|
+
if (stat) await fsPromises.chmod(backupPath, stat.mode);
|
|
41972
|
+
await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
|
|
41973
|
+
if (stat) await fsPromises.chmod(tmpPath, stat.mode);
|
|
41974
|
+
await fsPromises.rename(tmpPath, sessionFile);
|
|
41929
41975
|
} catch (err) {
|
|
41930
41976
|
try {
|
|
41931
|
-
await
|
|
41977
|
+
await fsPromises.unlink(tmpPath);
|
|
41932
41978
|
} catch (cleanupErr) {
|
|
41933
41979
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
41934
41980
|
}
|
|
@@ -43201,7 +43247,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
43201
43247
|
if (!isSessionManagerCacheEnabled()) return;
|
|
43202
43248
|
if (isSessionManagerCached(sessionFile)) return;
|
|
43203
43249
|
try {
|
|
43204
|
-
const handle = await
|
|
43250
|
+
const handle = await fsPromises.open(sessionFile, "r");
|
|
43205
43251
|
try {
|
|
43206
43252
|
const buffer = Buffer$1.alloc(4096);
|
|
43207
43253
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -43341,7 +43387,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43341
43387
|
} catch (err) {
|
|
43342
43388
|
return fail(describeUnknownError(err));
|
|
43343
43389
|
}
|
|
43344
|
-
await
|
|
43390
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
43345
43391
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
43346
43392
|
const sandbox = await resolveSandboxContext({
|
|
43347
43393
|
config: params.config,
|
|
@@ -43349,7 +43395,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43349
43395
|
workspaceDir: resolvedWorkspace
|
|
43350
43396
|
});
|
|
43351
43397
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
43352
|
-
await
|
|
43398
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
43353
43399
|
await ensureSessionHeader({
|
|
43354
43400
|
sessionFile: params.sessionFile,
|
|
43355
43401
|
sessionId: params.sessionId,
|
|
@@ -43674,12 +43720,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
43674
43720
|
const existing = writers.get(filePath);
|
|
43675
43721
|
if (existing) return existing;
|
|
43676
43722
|
const dir = path.dirname(filePath);
|
|
43677
|
-
const ready =
|
|
43723
|
+
const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
43678
43724
|
let queue = Promise.resolve();
|
|
43679
43725
|
const writer = {
|
|
43680
43726
|
filePath,
|
|
43681
43727
|
write: (line) => {
|
|
43682
|
-
queue = queue.then(() => ready).then(() =>
|
|
43728
|
+
queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
43683
43729
|
}
|
|
43684
43730
|
};
|
|
43685
43731
|
writers.set(filePath, writer);
|
|
@@ -46859,7 +46905,7 @@ Use the message tool with buttons:
|
|
|
46859
46905
|
*/
|
|
46860
46906
|
async function readSessionFile(sessionFile) {
|
|
46861
46907
|
try {
|
|
46862
|
-
return await
|
|
46908
|
+
return await fsPromises.readFile(sessionFile, "utf-8");
|
|
46863
46909
|
} catch {
|
|
46864
46910
|
return null;
|
|
46865
46911
|
}
|
|
@@ -46868,8 +46914,8 @@ async function writeAtomically(sessionFile, text) {
|
|
|
46868
46914
|
const dir = path.dirname(sessionFile);
|
|
46869
46915
|
const base = path.basename(sessionFile);
|
|
46870
46916
|
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
46871
|
-
await
|
|
46872
|
-
await
|
|
46917
|
+
await fsPromises.writeFile(tmp, text, "utf-8");
|
|
46918
|
+
await fsPromises.rename(tmp, sessionFile);
|
|
46873
46919
|
}
|
|
46874
46920
|
/**
|
|
46875
46921
|
* Remove empty assistant JSONL entries from the session file.
|
|
@@ -46971,7 +47017,7 @@ function isInPoisonRange(version) {
|
|
|
46971
47017
|
*/
|
|
46972
47018
|
async function checkSessionPoison(sessionFile) {
|
|
46973
47019
|
try {
|
|
46974
|
-
const firstLine = (await
|
|
47020
|
+
const firstLine = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
46975
47021
|
if (!firstLine) return null;
|
|
46976
47022
|
const header = JSON.parse(firstLine);
|
|
46977
47023
|
if (header.type !== "session") return null;
|
|
@@ -46989,7 +47035,7 @@ async function checkSessionPoison(sessionFile) {
|
|
|
46989
47035
|
*/
|
|
46990
47036
|
async function archivePoisonedSession(sessionFile) {
|
|
46991
47037
|
const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
46992
|
-
await
|
|
47038
|
+
await fsPromises.rename(sessionFile, archiveName);
|
|
46993
47039
|
return archiveName;
|
|
46994
47040
|
}
|
|
46995
47041
|
/**
|
|
@@ -46998,14 +47044,14 @@ async function archivePoisonedSession(sessionFile) {
|
|
|
46998
47044
|
*/
|
|
46999
47045
|
async function stampSessionVersion(sessionFile) {
|
|
47000
47046
|
try {
|
|
47001
|
-
const lines = (await
|
|
47047
|
+
const lines = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n");
|
|
47002
47048
|
if (lines.length === 0) return;
|
|
47003
47049
|
const header = JSON.parse(lines[0]);
|
|
47004
47050
|
if (header.type !== "session") return;
|
|
47005
47051
|
if (header.symiVersion === VERSION) return;
|
|
47006
47052
|
header.symiVersion = VERSION;
|
|
47007
47053
|
lines[0] = JSON.stringify(header);
|
|
47008
|
-
await
|
|
47054
|
+
await fsPromises.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
47009
47055
|
} catch {}
|
|
47010
47056
|
}
|
|
47011
47057
|
/**
|
|
@@ -47234,7 +47280,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
47234
47280
|
return;
|
|
47235
47281
|
}
|
|
47236
47282
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
47237
|
-
await
|
|
47283
|
+
await fsPromises.writeFile(params.sessionFile, "", "utf-8");
|
|
47238
47284
|
sm.fileEntries = [header];
|
|
47239
47285
|
sm.byId?.clear?.();
|
|
47240
47286
|
sm.labelsById?.clear?.();
|
|
@@ -47792,7 +47838,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47792
47838
|
const prevCwd = process.cwd();
|
|
47793
47839
|
const runAbortController = new AbortController();
|
|
47794
47840
|
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"}`);
|
|
47795
|
-
await
|
|
47841
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
47796
47842
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
47797
47843
|
const sandbox = await resolveSandboxContext({
|
|
47798
47844
|
config: params.config,
|
|
@@ -47800,7 +47846,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47800
47846
|
workspaceDir: resolvedWorkspace
|
|
47801
47847
|
});
|
|
47802
47848
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
47803
|
-
await
|
|
47849
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
47804
47850
|
let restoreSkillEnv;
|
|
47805
47851
|
process.chdir(effectiveWorkspace);
|
|
47806
47852
|
try {
|
|
@@ -48009,7 +48055,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48009
48055
|
sessionFile: params.sessionFile,
|
|
48010
48056
|
warn: (message) => log$7.warn(message)
|
|
48011
48057
|
});
|
|
48012
|
-
const hadSessionFile = await
|
|
48058
|
+
const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
48013
48059
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
48014
48060
|
modelApi: params.model?.api,
|
|
48015
48061
|
provider: params.provider,
|
|
@@ -49101,7 +49147,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
49101
49147
|
}
|
|
49102
49148
|
runLoopIterations += 1;
|
|
49103
49149
|
attemptedThinking.add(thinkLevel);
|
|
49104
|
-
await
|
|
49150
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
49105
49151
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
49106
49152
|
const attempt = await runEmbeddedAttempt({
|
|
49107
49153
|
sessionId: params.sessionId,
|