@symerian/symi 3.5.19 → 3.5.21
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-D0Z4r5fr.js → agent-DgVWcnlD.js} +1 -1
- package/dist/{agent-DCDT-MPE.js → agent-NT0EKnK_.js} +18 -18
- package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
- package/dist/{agents-CdkBeP0d.js → agents-Dlcpc1K3.js} +3 -3
- package/dist/{agents.config-B7sNDvhz.js → agents.config-DA0ISLi7.js} +1 -1
- package/dist/{audit-B7deV4Lp.js → audit-CPloCzEZ.js} +2 -2
- package/dist/{audit-BCStg-Hv.js → audit-CXIXYDRx.js} +20 -20
- package/dist/{auth-choice-BIGcxSzP.js → auth-choice--DymOp5O.js} +2 -2
- package/dist/{auth-choice-B3DU-aBr.js → auth-choice-BtXIQPTU.js} +11 -11
- package/dist/{auth-profiles-Ce7R_25e.js → auth-profiles-D5nYBj_Z.js} +2 -2
- package/dist/{auth-token-Cr28IDKY.js → auth-token-fgnCQEHT.js} +3 -3
- package/dist/{banner-ChNdzPjD.js → banner-CY_9VW7E.js} +1 -1
- package/dist/{browser-cli-C9xaKW8l.js → browser-cli-C5VVk6C9.js} +3 -3
- package/dist/{browser-cli-BTg8SVs-.js → browser-cli-DOTM7UBC.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-BccaLPi8.js → call-Bpjj5p7I.js} +9 -9
- package/dist/{call-DZg43vv8.js → call-C2urR5Fj.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CUptVX8c.js → channel-options-XRJiHUm5.js} +1 -1
- package/dist/{channel-options-LLmAnD_L.js → channel-options-rFgJaKzJ.js} +1 -1
- package/dist/{channels-cli-xoromnio.js → channels-cli-CQ4M05oy.js} +57 -57
- package/dist/{channels-cli-B0OQvVUL.js → channels-cli-QMHCRAb5.js} +9 -9
- package/dist/{chrome-DJChpTwP.js → chrome-38OnGyuN.js} +2 -2
- package/dist/{chrome-CmQwGAuL.js → chrome-3jl2ulOE.js} +4 -4
- package/dist/{chrome-DNssqQJs.js → chrome-OTJg3QKn.js} +4 -4
- package/dist/{cli-C7v-sID8.js → cli-B-uoiYP2.js} +45 -45
- package/dist/{cli-CMNR7ULk.js → cli-BafqEuaj.js} +6 -6
- package/dist/{client-k0MT6NBw.js → client-CTrfpKT3.js} +7 -2
- package/dist/{client-DCxeV1bw.js → client-yVTJ5jx5.js} +6 -1
- package/dist/{command-registry-CXcvXjUR.js → command-registry-CLm8TAH3.js} +11 -11
- package/dist/{commands-registry-Ca5hh7nh.js → commands-registry-CwXsDVuO.js} +1 -1
- package/dist/{completion-cli-DJ1YCeSg.js → completion-cli-Cn_81QBb.js} +12 -12
- package/dist/{completion-cli-B1Fg6Lmg.js → completion-cli-DOBXkVwG.js} +2 -2
- package/dist/{config-B4jkreCN.js → config-BngIfn5l.js} +2 -2
- package/dist/{config-cli-D5DlWt6T.js → config-cli-B1cPkJ4p.js} +4 -4
- package/dist/{config-cli-CQ1FAvY_.js → config-cli-BgHYqFH1.js} +1 -1
- package/dist/{config-guard-BRm3RiOi.js → config-guard-DStz4_V2.js} +6 -6
- package/dist/{config-validation-Cdyg1BZB.js → config-validation-Dxj9LRzr.js} +1 -1
- package/dist/{configure-bhJB2Dti.js → configure-C7zmSgvC.js} +14 -14
- package/dist/{configure-DG1lf0Ld.js → configure-DmzM0S7L.js} +6 -6
- package/dist/{consolidate-DymnvvYm.js → consolidate-CO32_TEx.js} +6 -6
- package/dist/{control-service-D8kKOts5.js → control-service-CUreKVeY.js} +4 -4
- package/dist/control-ui/css/style.css +478 -80
- package/dist/control-ui/index.html +54 -127
- package/dist/control-ui/js/render.js +11 -227
- package/dist/control-ui/js/scheduling.js +85 -224
- package/dist/control-ui/js/subagents.js +78 -394
- package/dist/control-ui/js/symframe-awaiting.js +301 -0
- package/dist/control-ui/js/symframe-pin-store.js +104 -0
- package/dist/control-ui/js/symframe-substrate.js +395 -0
- package/dist/control-ui/js/symframe.js +244 -6
- package/dist/{control-ui-assets-CJQ97d4u.js → control-ui-assets-B8B9z_Ll.js} +1 -1
- package/dist/{cost-cli-DWiVCOCx.js → cost-cli-D-ssjcRF.js} +3 -3
- package/dist/{cron-cli-8RaBr1CM.js → cron-cli-BNBs3zue.js} +3 -3
- package/dist/{cron-cli-fW3wtftG.js → cron-cli-otPeKxmi.js} +7 -7
- package/dist/{daemon-cli-Y6clFgva.js → daemon-cli-DDqeG2nd.js} +2 -2
- package/dist/{daemon-cli-0EiZTQ2A.js → daemon-cli-qDdMg615.js} +11 -11
- package/dist/daemon-cli.js +6 -1
- package/dist/{daemon-runtime-DlQla_dA.js → daemon-runtime-CKn0wmCk.js} +10 -10
- package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
- package/dist/{deliver-lTZLIQqf.js → deliver-CWMFmMCv.js} +2 -2
- package/dist/{deliver-q23ar_Pm.js → deliver-f3cIWxXT.js} +4 -4
- package/dist/{deps-Bf9dt2UO.js → deps-CdibsPMx.js} +1 -1
- package/dist/{devices-cli-C2gQTsB0.js → devices-cli-BJ3rVWOw.js} +2 -2
- package/dist/{devices-cli-DfiSkZ7k.js → devices-cli-DDPwF2Nx.js} +6 -6
- package/dist/{diagnostics-DlZODdRf.js → diagnostics-CYkqD5lP.js} +5 -5
- package/dist/{directory-cli-Bm5QYEo-.js → directory-cli-giqTe8Yg.js} +3 -3
- package/dist/{dm-policy-shared-CeFt0nch.js → dm-policy-shared-B61_yf6G.js} +1 -1
- package/dist/{dns-cli-CubLq4j9.js → dns-cli-Dssz4RqF.js} +3 -3
- package/dist/{docs-cli-PS8m1er7.js → docs-cli-Ct1STieY.js} +1 -1
- package/dist/{doctor-completion-CfF0J8fs.js → doctor-completion-CL7MyXlo.js} +2 -2
- package/dist/{doctor-completion-ScxFfN93.js → doctor-completion-k0HiL05o.js} +1 -1
- package/dist/{doctor-config-flow-C52W1uUK.js → doctor-config-flow-ljVnQJjo.js} +9 -9
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Cl-vWA1q.js → exec-approvals-cli-Cau1vPQI.js} +4 -4
- package/dist/{exec-approvals-cli-BaKWIf56.js → exec-approvals-cli-DsBoQu5H.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-kq5EWlnF.js → gateway-cli-DG_2YZ8B.js} +98 -98
- package/dist/{gateway-cli-CK-5nguV.js → gateway-cli-DgmGygc6.js} +16 -16
- package/dist/{gateway-rpc-Bzg_TTKP.js → gateway-rpc-Kv0-8W2E.js} +1 -1
- package/dist/{gateway-rpc-D12UaJS5.js → gateway-rpc-gaoD882s.js} +1 -1
- package/dist/{glass-ui-ws-B6p0iPsO.js → glass-ui-ws-Bof7krDJ.js} +67 -67
- package/dist/{glass-ui-ws-CVr0_1gT.js → glass-ui-ws-Dl45d7eU.js} +13 -13
- package/dist/{health-CPU9rQGj.js → health-CMbUI4aN.js} +4 -4
- package/dist/{health-CJb2CYtg.js → health-znS85U-F.js} +1 -1
- package/dist/{hooks-cli-DbgVZaP4.js → hooks-cli-Cb9BzCOY.js} +7 -7
- package/dist/{hooks-cli-13HCu5Xs.js → hooks-cli-Cgjor7F-.js} +59 -59
- package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
- package/dist/index.js +52 -52
- package/dist/{inspect-CGKsaVZ4.js → inspect-DzYUb_Dl.js} +4 -4
- package/dist/{install-safe-path-B2JrFspY.js → install-safe-path-BrpA09f2.js} +11 -11
- package/dist/{installs-D890uIIW.js → installs-bnDlOSq2.js} +10 -10
- package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
- package/dist/{lifecycle-core-wFwnK_mD.js → lifecycle-core-cSR_xiIO.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-R16VTptK.js → logs-cli-Kr145PO_.js} +7 -7
- package/dist/{logs-cli-CQeK5fn7.js → logs-cli-LiAjkog2.js} +3 -3
- package/dist/{manager-CxFs8Z_F.js → manager-CceVgXHV.js} +1 -1
- package/dist/{manager-B2SWSuad.js → manager-Cv4xI8sP.js} +1 -1
- package/dist/{manager-CHLdCC6u.js → manager-DG6PODgu.js} +15 -15
- package/dist/{manager-BhEbaYDa.js → manager-V4UCf0Av.js} +1 -1
- package/dist/{memory-DFpqcIst.js → memory-A2D5e8dL.js} +2 -2
- package/dist/{memory-DavRjdTi.js → memory-BFnx3v3_.js} +5 -5
- package/dist/{memory-cli-DZnq3S6s.js → memory-cli-1zjVJITN.js} +2 -2
- package/dist/{memory-cli-B-Cp1Sb1.js → memory-cli-CHNghdrm.js} +12 -12
- package/dist/{model-MUMSB_7d.js → model-Cwbcw-km.js} +1 -1
- package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
- package/dist/{model-catalog-IWi6-nY9.js → model-catalog-BWurV7gl.js} +3 -3
- package/dist/{model-picker-Cf6UgQEh.js → model-picker-Dpkr5xBW.js} +5 -5
- package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
- package/dist/{models-Cht7Mzvs.js → models-BYev6YAG.js} +3 -3
- package/dist/{models-cli-B_motPDX.js → models-cli-BbK8HMKa.js} +55 -55
- package/dist/{models-cli-DXswzgUR.js → models-cli-Fa5r1QYP.js} +9 -9
- package/dist/{models-config-B5Xxy-c-.js → models-config-DlXge3Sd.js} +8 -8
- package/dist/{node-cli-D-gsjRXY.js → node-cli-BPnBosC4.js} +27 -27
- package/dist/{node-cli-VmKhIXuP.js → node-cli-Cv7x1gGu.js} +1 -1
- package/dist/{node-service-BH08wY5j.js → node-service-Cc18m-uk.js} +1 -1
- package/dist/{nodes-cli-BMvxQGCp.js → nodes-cli-CN_m6PO5.js} +10 -10
- package/dist/{nodes-cli-D199d74o.js → nodes-cli-DaHOBbd4.js} +3 -3
- package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
- package/dist/{npm-registry-spec-DTqn-NXZ.js → npm-registry-spec-C-muP97-.js} +9 -9
- package/dist/{onboard-DFJcbABp.js → onboard-B2IcTMv-.js} +15 -15
- package/dist/{onboard-CdRA8BRG.js → onboard-D-m6WTZl.js} +3 -3
- package/dist/{onboard-channels-fadyQGBK.js → onboard-channels-Z-Jkrk5-.js} +1 -1
- package/dist/{onboard-channels-Ca7ZFQ2Y.js → onboard-channels-wfGO5Zlh.js} +4 -4
- package/dist/{onboard-custom-BcRYreNG.js → onboard-custom-DnDrvxSg.js} +3 -3
- package/dist/{onboard-helpers-CQBpac8h.js → onboard-helpers-BKejzolA.js} +8 -8
- package/dist/{onboard-helpers-BcLPSb5N.js → onboard-helpers-Dhr98nj8.js} +1 -1
- package/dist/{onboard-hooks-2SCajRKc.js → onboard-hooks-D9jHwImb.js} +1 -1
- package/dist/{onboard-remote-Bo3tpC9N.js → onboard-remote-DZdMxd1Q.js} +1 -1
- package/dist/{onboard-remote-BWK5Ths4.js → onboard-remote-y3ZmP90U.js} +1 -1
- package/dist/{onboard-skills-BLl8HPJO.js → onboard-skills-2SUv-W7i.js} +1 -1
- package/dist/{onboard-skills-DvacccqZ.js → onboard-skills-BFhHfrt9.js} +3 -3
- package/dist/{onboarding-ojb2rFkA.js → onboarding-BckHLQMV.js} +7 -7
- package/dist/{onboarding-BywueA1d.js → onboarding-DqlPV372.js} +12 -12
- package/dist/{onboarding.finalize-DdxBQpUU.js → onboarding.finalize-Bwjv3jew.js} +31 -31
- package/dist/{onboarding.finalize-DHvlZi9G.js → onboarding.finalize-CbH_ShIW.js} +9 -9
- package/dist/{onboarding.gateway-config-DPBNWNV6.js → onboarding.gateway-config-CiRo9EMt.js} +8 -8
- package/dist/{onboarding.gateway-config-ZK9517uR.js → onboarding.gateway-config-sNSeEykB.js} +3 -3
- package/dist/{openai-model-default-BkuuK-Di.js → openai-model-default-De-UAjwg.js} +2 -2
- package/dist/{pairing-cli-Rsae0KnN.js → pairing-cli-CBMMCNnx.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-DJE9TMwq.js → pi-embedded-B9rtlNMc.js} +32 -16
- package/dist/{pi-embedded-helpers-D-OFjhdI.js → pi-embedded-helpers-j1JrlsI0.js} +6 -6
- package/dist/{pi-tools.policy-H2t-Xkfc.js → pi-tools.policy-CvAqjEH9.js} +3 -3
- package/dist/{plugin-auto-enable-DJBhDIMq.js → plugin-auto-enable-BXSJTxI7.js} +1 -1
- package/dist/{plugin-registry-tG7NXc3Y.js → plugin-registry-B43UosQh.js} +3 -3
- package/dist/{plugin-registry-Tlmjr-LX.js → plugin-registry-CS4WgHbu.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -1
- package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +18 -6
- package/dist/{plugins-cli-CRKD8aho.js → plugins-cli-BV2wbjfI.js} +54 -54
- package/dist/{plugins-cli-Cm0G_-Y5.js → plugins-cli-BY42hyHP.js} +7 -7
- package/dist/{ports-r7LBic2V.js → ports-Bi3V_3n9.js} +1 -1
- package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
- package/dist/{program-DEmAlwmD.js → program-P9F1DxBa.js} +12 -12
- package/dist/{program-context-DRCRbDpu.js → program-context-BmXxHUKe.js} +40 -40
- package/dist/{prompt-select-styled-pomsR-zf.js → prompt-select-styled-B2ah467m.js} +7 -7
- package/dist/{prompt-select-styled-B41Tx9aC.js → prompt-select-styled-BlQZX6pK.js} +38 -38
- package/dist/{provider-auth-helpers-rKWs_r7a.js → provider-auth-helpers-Bgb_Bfp9.js} +1 -1
- package/dist/{provider-auth-helpers-CdQwOam7.js → provider-auth-helpers-WLwb6tL4.js} +6 -6
- package/dist/{push-apns-eCM0qmrY.js → push-apns-CBGvXev_.js} +4 -4
- package/dist/{push-apns-CZPUHftn.js → push-apns-DnSCjFu7.js} +1 -1
- package/dist/{pw-ai-BiBvIJzd.js → pw-ai-CP5pn3eU.js} +7 -7
- package/dist/{pw-ai-v__CyAlM.js → pw-ai-DOAsQ5NX.js} +1 -1
- package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
- package/dist/{qmd-manager-C8-M4Pru.js → qmd-manager-Dxyue7B1.js} +19 -19
- package/dist/{qr-cli-1sCVaPcF.js → qr-cli-DHw6muwK.js} +3 -3
- package/dist/{register.agent-BQPvYYdn.js → register.agent-BuEcmVg0.js} +12 -12
- package/dist/{register.agent-N1hoqMFR.js → register.agent-CXdTiqyP.js} +67 -67
- package/dist/{register.configure-BHHZ44xB.js → register.configure-DVcn-gCO.js} +70 -70
- package/dist/{register.configure-BAc3P4Z-.js → register.configure-YDKJ-KQg.js} +14 -14
- package/dist/{register.maintenance-lX0a3Hzl.js → register.maintenance-BiGvpEj-.js} +13 -13
- package/dist/{register.maintenance-DDgy5Iyy.js → register.maintenance-cpspl8D6.js} +67 -67
- package/dist/{register.message-Br-IH_0z.js → register.message-BIuLbESM.js} +7 -7
- package/dist/{register.message-B4lDhHpE.js → register.message-BjcYy5UG.js} +47 -47
- package/dist/{register.onboard-B-GoYJIc.js → register.onboard-C4vIASed.js} +6 -6
- package/dist/{register.onboard-Bv0s2_KV.js → register.onboard-D4RN92s2.js} +25 -25
- package/dist/{register.setup-DQ6KLkAI.js → register.setup-BvoXF0xl.js} +28 -28
- package/dist/{register.setup-4lNdC98i.js → register.setup-D-Jt2e1d.js} +6 -6
- package/dist/{register.status-health-sessions-Cg7bK5K2.js → register.status-health-sessions-BY9hMD1s.js} +8 -8
- package/dist/{register.status-health-sessions-ByGn71_M.js → register.status-health-sessions-DjDvCXBn.js} +41 -41
- package/dist/{register.subclis-FMlcLBX0.js → register.subclis-Cibmeapc.js} +20 -20
- package/dist/{replies-CbXXjn9X.js → replies-B_3j7R_Q.js} +1 -1
- package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
- package/dist/{resolve-route-C1IIA6kH.js → resolve-route-Du0VftVs.js} +1 -1
- package/dist/{routes-ivqbutvM.js → routes-BwTUoI5h.js} +10 -10
- package/dist/{rpc-Dk1Az_d8.js → rpc-BnAKPQDB.js} +1 -1
- package/dist/{rpc-JAmDaTYt.js → rpc-CwxSZZOx.js} +1 -1
- package/dist/{run-main-DSyeVDsT.js → run-main-BhEQjKtM.js} +20 -20
- package/dist/{sandbox-BkznAPKO.js → sandbox-CZGTCone.js} +18 -18
- package/dist/{sandbox-cli-Bb9cBtBH.js → sandbox-cli-DEtGT_4y.js} +13 -13
- package/dist/{security-cli-DmgGLP83.js → security-cli-CS-ZT1LE.js} +3 -3
- package/dist/{security-cli-D47LQbpf.js → security-cli-DJd7Fcdy.js} +29 -29
- package/dist/{send-B0jHSNMF.js → send-CxjvucMO.js} +7 -7
- package/dist/{server-context-ChcbJgNo.js → server-context-DXdk410X.js} +5 -5
- package/dist/{server-methods-DGBBt49x.js → server-methods-CWxr5b-w.js} +19 -13
- package/dist/{server-methods-BkHB2MOW.js → server-methods-DfVfzYqq.js} +68 -62
- package/dist/{server-node-events-C186LRm0.js → server-node-events-B0yC6hi1.js} +48 -48
- package/dist/{server-node-events-D-Akk3uq.js → server-node-events-ClDEcUTJ.js} +8 -8
- package/dist/{service-e6MzlLCd.js → service-CRZoXO_n.js} +15 -15
- package/dist/{session-dirs-C9E2G0yZ.js → session-dirs-a00Ad2SO.js} +2 -2
- package/dist/{session-utils-Cs1jlD-q.js → session-utils-CJhcRx3E.js} +14 -14
- package/dist/{sessions-Dxf5Kjig.js → sessions-BCc3THTm.js} +10 -10
- package/dist/{shared-1xPo9ygd.js → shared-C39SiDDJ.js} +1 -1
- package/dist/{shared-COtpr3Ad.js → shared-Dh-O8nRd.js} +3 -3
- package/dist/{skill-commands-DDGGlq68.js → skill-commands-DWvXs3lz.js} +4 -4
- package/dist/{skill-scanner-BCgVcIwi.js → skill-scanner-CIlHPszT.js} +5 -5
- package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
- package/dist/{skills-cli-B-7TY-vS.js → skills-cli-CD9s3cgm.js} +7 -7
- package/dist/{skills-install-Dwzsjoc8.js → skills-install-BTa9IuQ6.js} +3 -3
- package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
- package/dist/{skills-status-BKX1PjCc.js → skills-status-DLnCHUZ2.js} +1 -1
- package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
- package/dist/{status-CFgCSaDq.js → status-BWxLtb3D.js} +23 -23
- package/dist/{status-poPDyC8O.js → status-Doq8T1zj.js} +3 -3
- package/dist/{status-Bahhq7OQ.js → status-K1k4g3Ai.js} +1 -1
- package/dist/{status-D9LC5P_Y.js → status-ojZB_Lrf.js} +5 -5
- package/dist/{status.update-DGJi0OLl.js → status.update-CKfyV6zw.js} +3 -3
- package/dist/{subagent-registry-V2o45tIn.js → subagent-registry-BOt7g9hn.js} +21 -10
- package/dist/{symframe-cli-bxdpivve.js → symframe-cli-CrUtJw_7.js} +31 -7
- package/dist/{symframe-cli-ppdMo15M.js → symframe-cli-D1CtN3pf.js} +37 -13
- package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
- package/dist/{synthesis-B2EyHFXy.js → synthesis-BIQLrbys.js} +6 -6
- package/dist/{synthesis-BlJyO1E_.js → synthesis-Bc2QkGvt.js} +4 -4
- package/dist/{synthesis-CPSq83PP.js → synthesis-VZNnlUTf.js} +45 -45
- package/dist/{synthesis-C2WbvLOI.js → synthesis-yl24Ovw4.js} +4 -4
- package/dist/{system-cli-nPyjUPBH.js → system-cli-CvN-Wq9U.js} +3 -3
- package/dist/{system-cli-BroqLjZ6.js → system-cli-r7WJj0Xh.js} +7 -7
- package/dist/{systemd-CUIM0n5P.js → systemd-CsoVnIbM.js} +5 -5
- package/dist/{systemd-hints-CsrzMCTD.js → systemd-hints-QISwLlFU.js} +6 -6
- package/dist/{systemd-linger-BzYk7A6M.js → systemd-linger-BnhuRdbt.js} +1 -1
- package/dist/{tui-Bp9k5skv.js → tui-BxgdImL_.js} +2 -2
- package/dist/{tui-DzROrE20.js → tui-J7Jxp-FF.js} +7 -7
- package/dist/{tui-cli-BHBF8O-3.js → tui-cli-DR48dU_C.js} +19 -19
- package/dist/{tui-cli-Dv4hBFdc.js → tui-cli-DqvgN5ng.js} +3 -3
- package/dist/{unified-runner-CIQIkbvi.js → unified-runner-BV5TdNFv.js} +32 -16
- package/dist/{unified-runner-CduaBH_0.js → unified-runner-DXjH-prv.js} +117 -106
- package/dist/{update-yYduAjKd.js → update-Cb0Fmxic.js} +3 -3
- package/dist/{update-check-BCL_K7kx.js → update-check-u6Jgr1cz.js} +5 -5
- package/dist/{update-cli-WcLxjBiY.js → update-cli-CKpjWtlv.js} +77 -77
- package/dist/{update-cli-BKnHBe8a.js → update-cli-Dn6QQZLd.js} +14 -14
- package/dist/{update-runner-BLV8SI96.js → update-runner-G2YgEATs.js} +15 -15
- package/dist/{webhooks-cli-D5k-Y2A8.js → webhooks-cli-DjUITimx.js} +4 -4
- package/dist/{with-timeout-DPR4A2dx.js → with-timeout-CLrF-Yr_.js} +1 -1
- package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
- package/dist/{wsl-CglTdtlb.js → wsl-DTi7eX-V.js} +2 -2
- package/extensions/memory-core/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/package.json +1 -1
|
@@ -3,93 +3,93 @@ 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-j1JrlsI0.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-BngIfn5l.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-CZGTCone.js";
|
|
24
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-38OnGyuN.js";
|
|
25
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DXdk410X.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-BwTUoI5h.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-BCc3THTm.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-CxjvucMO.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-CWMFmMCv.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-DlXge3Sd.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-D3mgssM_.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-CJhcRx3E.js";
|
|
53
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-CLrF-Yr_.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-BFnx3v3_.js";
|
|
56
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-DG6PODgu.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 { Ht 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-CwXsDVuO.js";
|
|
65
|
+
import { Ht as SESSION_LABEL_MAX_LENGTH } from "./client-CTrfpKT3.js";
|
|
66
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-Bpjj5p7I.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-BWurV7gl.js";
|
|
73
|
+
import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-DWvXs3lz.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-DeczTGI-.js";
|
|
81
81
|
import { i as resolveWindow, n as formatSummaryReport, r as loadCostBenchmarkSummary, t as buildCostBreakdown } from "./breakdown-B_Dhhm3K.js";
|
|
82
82
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
|
|
83
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
83
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CUreKVeY.js";
|
|
84
84
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-DQs772BN.js";
|
|
85
85
|
import { t as emitSymframePush } from "./symframe-broadcast-CXo2qoxy.js";
|
|
86
86
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-H1qOf0q-.js";
|
|
87
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
87
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Du0VftVs.js";
|
|
88
88
|
import { t as parseTimeoutMs } from "./parse-timeout-DmEcHIsV.js";
|
|
89
|
-
import { n as registerMemoryCli } from "./memory-cli-
|
|
90
|
-
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
91
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
92
|
-
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-
|
|
89
|
+
import { n as registerMemoryCli } from "./memory-cli-CHNghdrm.js";
|
|
90
|
+
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-B_3j7R_Q.js";
|
|
91
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-CvAqjEH9.js";
|
|
92
|
+
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-Cwbcw-km.js";
|
|
93
93
|
import { createRequire } from "node:module";
|
|
94
94
|
import process$1 from "node:process";
|
|
95
95
|
import { fileURLToPath } from "node:url";
|
|
@@ -98,7 +98,7 @@ import path from "node:path";
|
|
|
98
98
|
import fs, { constants, existsSync, statSync } from "node:fs";
|
|
99
99
|
import os, { homedir } from "node:os";
|
|
100
100
|
import JSON5 from "json5";
|
|
101
|
-
import
|
|
101
|
+
import fsPromises from "node:fs/promises";
|
|
102
102
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
103
103
|
import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
|
|
104
104
|
import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
|
|
@@ -1848,7 +1848,7 @@ async function imageResult(params) {
|
|
|
1848
1848
|
}, params.label, params.imageSanitization);
|
|
1849
1849
|
}
|
|
1850
1850
|
async function imageResultFromFile(params) {
|
|
1851
|
-
const buf = await
|
|
1851
|
+
const buf = await fsPromises.readFile(params.path);
|
|
1852
1852
|
const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
|
|
1853
1853
|
return await imageResult({
|
|
1854
1854
|
label: params.label,
|
|
@@ -4689,6 +4689,12 @@ function buildAgentSystemPrompt(params) {
|
|
|
4689
4689
|
" - `awaiting` — deferred/scheduled/in-flight work (sub-agent output, scheduled task)",
|
|
4690
4690
|
"Renderer `type`: `text` · `markdown` · `code` (with `language` hljs hint) · `email-draft` (with `email: { from?, to, cc?, bcc?, subject, body }`) · `pdf` · `audio` · `video` (`url` + optional `mimeType`).",
|
|
4691
4691
|
"Use `action: \"update\"` with the same `id` to revise a card you pushed earlier (e.g. iterate a draft across turns). `action: \"remove\"` to dismiss. Set `force: true` only when overriding a sticky card — sticky cards represent the user's pinned context and shouldn't be clobbered by routine pushes.",
|
|
4692
|
+
"Attention verbs (Stage C — id-only, no card body):",
|
|
4693
|
+
" - `dwell` — pull a card to the top with a brief highlight pulse. Use when the user's next message references something you pushed earlier and you want to draw their eye to it.",
|
|
4694
|
+
" - `release` — soft-dismiss a card with a fade-out. Recoverable via `recall` for ~10 most-recent. Prefer this over `remove` when letting a thought go gracefully (e.g. a weighing option just decided against).",
|
|
4695
|
+
" - `recall` — re-summon a recently-released card (id optional → most-recent).",
|
|
4696
|
+
" - `pin` — persist a card across reload + /new (user-curated; the user can also pin from the UI).",
|
|
4697
|
+
" - `unpin` — remove the pin; does NOT drop the card.",
|
|
4692
4698
|
"After pushing, briefly tell the user what's in the panel (e.g. \"Drafted the email — shown in your panel.\"). Don't repeat the full content in chat.",
|
|
4693
4699
|
"",
|
|
4694
4700
|
...compactMode ? [] : [
|
|
@@ -5822,7 +5828,7 @@ async function routeReply(params) {
|
|
|
5822
5828
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
5823
5829
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
5824
5830
|
try {
|
|
5825
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
5831
|
+
const { deliverOutboundPayloads } = await import("./deliver-CWMFmMCv.js").then((n) => n.n);
|
|
5826
5832
|
return {
|
|
5827
5833
|
ok: true,
|
|
5828
5834
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -11663,7 +11669,7 @@ var MediaAttachmentCache = class {
|
|
|
11663
11669
|
const size = await this.ensureLocalStat(entry);
|
|
11664
11670
|
if (entry.resolvedPath) {
|
|
11665
11671
|
if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
|
|
11666
|
-
const buffer = await
|
|
11672
|
+
const buffer = await fsPromises.readFile(entry.resolvedPath);
|
|
11667
11673
|
entry.buffer = buffer;
|
|
11668
11674
|
entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
|
|
11669
11675
|
buffer,
|
|
@@ -11733,10 +11739,10 @@ var MediaAttachmentCache = class {
|
|
|
11733
11739
|
prefix: "symi-media",
|
|
11734
11740
|
extension: path.extname(bufferResult.fileName || "") || ""
|
|
11735
11741
|
});
|
|
11736
|
-
await
|
|
11742
|
+
await fsPromises.writeFile(tmpPath, bufferResult.buffer);
|
|
11737
11743
|
entry.tempPath = tmpPath;
|
|
11738
11744
|
entry.tempCleanup = async () => {
|
|
11739
|
-
await
|
|
11745
|
+
await fsPromises.unlink(tmpPath).catch(() => {});
|
|
11740
11746
|
};
|
|
11741
11747
|
return {
|
|
11742
11748
|
path: tmpPath,
|
|
@@ -11783,12 +11789,12 @@ var MediaAttachmentCache = class {
|
|
|
11783
11789
|
if (entry.statSize !== void 0) return entry.statSize;
|
|
11784
11790
|
try {
|
|
11785
11791
|
const currentPath = entry.resolvedPath;
|
|
11786
|
-
const stat = await
|
|
11792
|
+
const stat = await fsPromises.stat(currentPath);
|
|
11787
11793
|
if (!stat.isFile()) {
|
|
11788
11794
|
entry.resolvedPath = void 0;
|
|
11789
11795
|
return;
|
|
11790
11796
|
}
|
|
11791
|
-
const canonicalPath = await
|
|
11797
|
+
const canonicalPath = await fsPromises.realpath(currentPath).catch(() => currentPath);
|
|
11792
11798
|
if (!isInboundPathAllowed({
|
|
11793
11799
|
filePath: canonicalPath,
|
|
11794
11800
|
roots: await this.getCanonicalLocalPathRoots()
|
|
@@ -11810,7 +11816,7 @@ var MediaAttachmentCache = class {
|
|
|
11810
11816
|
if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
|
|
11811
11817
|
this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
|
|
11812
11818
|
if (root.includes("*")) return root;
|
|
11813
|
-
return await
|
|
11819
|
+
return await fsPromises.realpath(root).catch(() => root);
|
|
11814
11820
|
}))))();
|
|
11815
11821
|
return await this.canonicalLocalPathRoots;
|
|
11816
11822
|
}
|
|
@@ -11881,7 +11887,7 @@ function formatAudioTranscripts(outputs) {
|
|
|
11881
11887
|
async function fileExists(filePath) {
|
|
11882
11888
|
if (!filePath) return false;
|
|
11883
11889
|
try {
|
|
11884
|
-
await
|
|
11890
|
+
await fsPromises.stat(filePath);
|
|
11885
11891
|
return true;
|
|
11886
11892
|
} catch {
|
|
11887
11893
|
return false;
|
|
@@ -11981,7 +11987,7 @@ async function resolveCliOutput(params) {
|
|
|
11981
11987
|
const commandId = commandBase(params.command);
|
|
11982
11988
|
const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
|
|
11983
11989
|
if (fileOutput && await fileExists(fileOutput)) try {
|
|
11984
|
-
const content = await
|
|
11990
|
+
const content = await fsPromises.readFile(fileOutput, "utf8");
|
|
11985
11991
|
if (content.trim()) return content.trim();
|
|
11986
11992
|
} catch {}
|
|
11987
11993
|
if (commandId === "gemini") {
|
|
@@ -12272,7 +12278,7 @@ async function runCliEntry(params) {
|
|
|
12272
12278
|
maxBytes,
|
|
12273
12279
|
timeoutMs
|
|
12274
12280
|
});
|
|
12275
|
-
const outputDir = await
|
|
12281
|
+
const outputDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
|
|
12276
12282
|
const mediaPath = pathResult.path;
|
|
12277
12283
|
const outputBase = path.join(outputDir, path.parse(mediaPath).name);
|
|
12278
12284
|
const templCtx = {
|
|
@@ -12306,7 +12312,7 @@ async function runCliEntry(params) {
|
|
|
12306
12312
|
model: command
|
|
12307
12313
|
};
|
|
12308
12314
|
} finally {
|
|
12309
|
-
await
|
|
12315
|
+
await fsPromises.rm(outputDir, {
|
|
12310
12316
|
recursive: true,
|
|
12311
12317
|
force: true
|
|
12312
12318
|
}).catch(() => {});
|
|
@@ -12350,9 +12356,9 @@ function candidateBinaryNames(name) {
|
|
|
12350
12356
|
}
|
|
12351
12357
|
async function isExecutable$1(filePath) {
|
|
12352
12358
|
try {
|
|
12353
|
-
if (!(await
|
|
12359
|
+
if (!(await fsPromises.stat(filePath)).isFile()) return false;
|
|
12354
12360
|
if (process.platform === "win32") return true;
|
|
12355
|
-
await
|
|
12361
|
+
await fsPromises.access(filePath, constants.X_OK);
|
|
12356
12362
|
return true;
|
|
12357
12363
|
} catch {
|
|
12358
12364
|
return false;
|
|
@@ -14064,7 +14070,7 @@ async function createModelSelectionState(params) {
|
|
|
14064
14070
|
}
|
|
14065
14071
|
}
|
|
14066
14072
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14067
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14073
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-D5nYBj_Z.js").then((n) => n.t);
|
|
14068
14074
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14069
14075
|
const providerKey = normalizeProviderId(provider);
|
|
14070
14076
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -17208,7 +17214,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
17208
17214
|
cwd: process.cwd(),
|
|
17209
17215
|
root: params.sandbox.workspaceDir
|
|
17210
17216
|
});
|
|
17211
|
-
if (!(await
|
|
17217
|
+
if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
17212
17218
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
17213
17219
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
17214
17220
|
return {
|
|
@@ -18222,13 +18228,13 @@ async function validateScriptFileForShellBleed(params) {
|
|
|
18222
18228
|
cwd: params.workdir,
|
|
18223
18229
|
root: params.workdir
|
|
18224
18230
|
});
|
|
18225
|
-
stat = await
|
|
18231
|
+
stat = await fsPromises.stat(absPath);
|
|
18226
18232
|
} catch {
|
|
18227
18233
|
return;
|
|
18228
18234
|
}
|
|
18229
18235
|
if (!stat.isFile()) return;
|
|
18230
18236
|
if (stat.size > 512 * 1024) return;
|
|
18231
|
-
const content = await
|
|
18237
|
+
const content = await fsPromises.readFile(absPath, "utf-8");
|
|
18232
18238
|
const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
|
|
18233
18239
|
if (first) {
|
|
18234
18240
|
const idx = first.index;
|
|
@@ -22963,7 +22969,7 @@ async function handleCommands(params) {
|
|
|
22963
22969
|
try {
|
|
22964
22970
|
const messages = [];
|
|
22965
22971
|
if (sessionFile) {
|
|
22966
|
-
const content = await
|
|
22972
|
+
const content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
22967
22973
|
for (const line of content.split("\n")) {
|
|
22968
22974
|
if (!line.trim()) continue;
|
|
22969
22975
|
try {
|
|
@@ -25150,7 +25156,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25150
25156
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
|
|
25151
25157
|
throw new Error("jsonlPath outside allowed roots");
|
|
25152
25158
|
}
|
|
25153
|
-
const canonical = await
|
|
25159
|
+
const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
|
|
25154
25160
|
if (!isInboundPathAllowed({
|
|
25155
25161
|
filePath: canonical,
|
|
25156
25162
|
roots
|
|
@@ -25158,7 +25164,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25158
25164
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
|
|
25159
25165
|
throw new Error("jsonlPath outside allowed roots");
|
|
25160
25166
|
}
|
|
25161
|
-
return await
|
|
25167
|
+
return await fsPromises.readFile(canonical, "utf8");
|
|
25162
25168
|
}
|
|
25163
25169
|
const CanvasToolSchema = Type.Object({
|
|
25164
25170
|
action: stringEnum(CANVAS_ACTIONS),
|
|
@@ -25929,7 +25935,12 @@ const ARTIFACT_TYPES = [
|
|
|
25929
25935
|
const ARTIFACT_ACTIONS = [
|
|
25930
25936
|
"add",
|
|
25931
25937
|
"update",
|
|
25932
|
-
"remove"
|
|
25938
|
+
"remove",
|
|
25939
|
+
"dwell",
|
|
25940
|
+
"release",
|
|
25941
|
+
"recall",
|
|
25942
|
+
"pin",
|
|
25943
|
+
"unpin"
|
|
25933
25944
|
];
|
|
25934
25945
|
/**
|
|
25935
25946
|
* Stage A: intent vocabulary added as orthogonal metadata to renderer type.
|
|
@@ -25986,19 +25997,19 @@ function createDisplayArtifactTool() {
|
|
|
25986
25997
|
return {
|
|
25987
25998
|
label: "Display Artifact",
|
|
25988
25999
|
name: "display_artifact",
|
|
25989
|
-
description: "Push a card into the Glass UI symframe — the right-column window into your mind. Use for content that represents what you're thinking about, holding, considering, or producing — drafts, references you're keeping in view, options being weighed, generated artifacts. Always set `intent` (holding | weighing | producing | drafted | reference | awaiting). Renderer `type`: text | markdown | code | email-draft | pdf | audio | video. Returns the card id; pass action=update with the same id to revise (set force:true to update a sticky card),
|
|
26000
|
+
description: "Push a card into the Glass UI symframe — the right-column window into your mind. Use for content that represents what you're thinking about, holding, considering, or producing — drafts, references you're keeping in view, options being weighed, generated artifacts. Always set `intent` (holding | weighing | producing | drafted | reference | awaiting). Renderer `type`: text | markdown | code | email-draft | pdf | audio | video. Returns the card id; pass action=update with the same id to revise (set force:true to update a sticky card), action=remove to dismiss. Stage-C attention verbs (id-only, no card body): action=dwell pulls a card to the top with a brief highlight, action=release softly fades a card out (recoverable via recall), action=recall re-summons a recently-released card (id optional → most recent), action=pin persists across reload, action=unpin removes the pin.",
|
|
25990
26001
|
parameters: DisplayArtifactSchema,
|
|
25991
26002
|
execute: async (_toolCallId, args) => {
|
|
25992
26003
|
const params = args;
|
|
25993
26004
|
const actionRaw = readStringParam(params, "action");
|
|
25994
|
-
const action = actionRaw
|
|
26005
|
+
const action = ARTIFACT_ACTIONS.includes(actionRaw ?? "") ? actionRaw : "add";
|
|
25995
26006
|
const id = readStringParam(params, "id") || (action === "add" ? genCardId() : void 0);
|
|
25996
|
-
if (action !== "add" && !id) return jsonResult({
|
|
26007
|
+
if (action !== "add" && action !== "recall" && !id) return jsonResult({
|
|
25997
26008
|
ok: false,
|
|
25998
26009
|
error: `${action} requires an id`
|
|
25999
26010
|
});
|
|
26000
26011
|
const force = params.force === true;
|
|
26001
|
-
if (action === "remove") {
|
|
26012
|
+
if (action === "remove" || action === "dwell" || action === "release" || action === "recall" || action === "pin" || action === "unpin") {
|
|
26002
26013
|
emitSymframePush({
|
|
26003
26014
|
action,
|
|
26004
26015
|
id,
|
|
@@ -26827,7 +26838,7 @@ async function hydrateAttachmentPayload(params) {
|
|
|
26827
26838
|
accountId: params.accountId
|
|
26828
26839
|
}),
|
|
26829
26840
|
sandboxValidated: true,
|
|
26830
|
-
readFile: (filePath) =>
|
|
26841
|
+
readFile: (filePath) => fsPromises.readFile(filePath)
|
|
26831
26842
|
});
|
|
26832
26843
|
params.args.buffer = media.buffer.toString("base64");
|
|
26833
26844
|
if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
|
|
@@ -33441,7 +33452,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
33441
33452
|
return;
|
|
33442
33453
|
}
|
|
33443
33454
|
try {
|
|
33444
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33455
|
+
const { deliverOutboundPayloads } = await import("./deliver-CWMFmMCv.js").then((n) => n.n);
|
|
33445
33456
|
await deliverOutboundPayloads({
|
|
33446
33457
|
cfg: params.cfg,
|
|
33447
33458
|
channel,
|
|
@@ -33846,7 +33857,7 @@ async function stageSandboxMedia(params) {
|
|
|
33846
33857
|
};
|
|
33847
33858
|
try {
|
|
33848
33859
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
33849
|
-
await
|
|
33860
|
+
await fsPromises.mkdir(destDir, { recursive: true });
|
|
33850
33861
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
33851
33862
|
cfg,
|
|
33852
33863
|
accountId: ctx.AccountId
|
|
@@ -33896,7 +33907,7 @@ async function stageSandboxMedia(params) {
|
|
|
33896
33907
|
usedNames.add(fileName);
|
|
33897
33908
|
const dest = path.join(destDir, fileName);
|
|
33898
33909
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
33899
|
-
else await
|
|
33910
|
+
else await fsPromises.copyFile(source, dest);
|
|
33900
33911
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
33901
33912
|
staged.set(source, stagedPath);
|
|
33902
33913
|
}
|
|
@@ -39227,7 +39238,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
39227
39238
|
}
|
|
39228
39239
|
let commandsRegistry;
|
|
39229
39240
|
async function getCommandsRegistry() {
|
|
39230
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
39241
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CwXsDVuO.js").then((n) => n.t);
|
|
39231
39242
|
return commandsRegistry;
|
|
39232
39243
|
}
|
|
39233
39244
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -39569,11 +39580,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39569
39580
|
const channelName = channelInfo?.name;
|
|
39570
39581
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
39571
39582
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
39572
|
-
import("./resolve-route-
|
|
39583
|
+
import("./resolve-route-Du0VftVs.js").then((n) => n.r),
|
|
39573
39584
|
import("./inbound-context-B7Rvs8pK.js").then((n) => n.n),
|
|
39574
39585
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
39575
39586
|
]);
|
|
39576
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-
|
|
39587
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-CtZtkTJK.js").then((n) => n.n)]);
|
|
39577
39588
|
const route = resolveAgentRoute({
|
|
39578
39589
|
cfg,
|
|
39579
39590
|
channel: "slack",
|
|
@@ -39630,7 +39641,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39630
39641
|
});
|
|
39631
39642
|
const deliverSlashPayloads = async (replies) => {
|
|
39632
39643
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
39633
|
-
import("./replies-
|
|
39644
|
+
import("./replies-B_3j7R_Q.js").then((n) => n.r),
|
|
39634
39645
|
import("./chunk-BxfKjCUx.js").then((n) => n.s),
|
|
39635
39646
|
import("./markdown-tables-CS1Tvb3z.js").then((n) => n.t)
|
|
39636
39647
|
]);
|
|
@@ -39685,7 +39696,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39685
39696
|
let nativeCommands = [];
|
|
39686
39697
|
if (nativeEnabled) {
|
|
39687
39698
|
reg = await getCommandsRegistry();
|
|
39688
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
39699
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DWvXs3lz.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
39689
39700
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
39690
39701
|
skillCommands,
|
|
39691
39702
|
provider: "slack"
|
|
@@ -40818,7 +40829,7 @@ function resolvePluginTools(params) {
|
|
|
40818
40829
|
//#endregion
|
|
40819
40830
|
//#region src/agents/apply-patch-update.ts
|
|
40820
40831
|
async function defaultReadFile(filePath) {
|
|
40821
|
-
return
|
|
40832
|
+
return fsPromises.readFile(filePath, "utf8");
|
|
40822
40833
|
}
|
|
40823
40834
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
40824
40835
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -41062,10 +41073,10 @@ function resolvePatchFileOps(options) {
|
|
|
41062
41073
|
};
|
|
41063
41074
|
}
|
|
41064
41075
|
return {
|
|
41065
|
-
readFile: (filePath) =>
|
|
41066
|
-
writeFile: (filePath, content) =>
|
|
41067
|
-
remove: (filePath) =>
|
|
41068
|
-
mkdirp: (dir) =>
|
|
41076
|
+
readFile: (filePath) => fsPromises.readFile(filePath, "utf8"),
|
|
41077
|
+
writeFile: (filePath, content) => fsPromises.writeFile(filePath, content, "utf8"),
|
|
41078
|
+
remove: (filePath) => fsPromises.rm(filePath),
|
|
41079
|
+
mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
|
|
41069
41080
|
};
|
|
41070
41081
|
}
|
|
41071
41082
|
async function ensureDir(filePath, ops) {
|
|
@@ -42270,7 +42281,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
42270
42281
|
};
|
|
42271
42282
|
let content;
|
|
42272
42283
|
try {
|
|
42273
|
-
content = await
|
|
42284
|
+
content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
42274
42285
|
} catch (err) {
|
|
42275
42286
|
if (err?.code === "ENOENT") return {
|
|
42276
42287
|
repaired: false,
|
|
@@ -42318,15 +42329,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
42318
42329
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
42319
42330
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
42320
42331
|
try {
|
|
42321
|
-
const stat = await
|
|
42322
|
-
await
|
|
42323
|
-
if (stat) await
|
|
42324
|
-
await
|
|
42325
|
-
if (stat) await
|
|
42326
|
-
await
|
|
42332
|
+
const stat = await fsPromises.stat(sessionFile).catch(() => null);
|
|
42333
|
+
await fsPromises.writeFile(backupPath, content, "utf-8");
|
|
42334
|
+
if (stat) await fsPromises.chmod(backupPath, stat.mode);
|
|
42335
|
+
await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
|
|
42336
|
+
if (stat) await fsPromises.chmod(tmpPath, stat.mode);
|
|
42337
|
+
await fsPromises.rename(tmpPath, sessionFile);
|
|
42327
42338
|
} catch (err) {
|
|
42328
42339
|
try {
|
|
42329
|
-
await
|
|
42340
|
+
await fsPromises.unlink(tmpPath);
|
|
42330
42341
|
} catch (cleanupErr) {
|
|
42331
42342
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
42332
42343
|
}
|
|
@@ -43599,7 +43610,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
43599
43610
|
if (!isSessionManagerCacheEnabled()) return;
|
|
43600
43611
|
if (isSessionManagerCached(sessionFile)) return;
|
|
43601
43612
|
try {
|
|
43602
|
-
const handle = await
|
|
43613
|
+
const handle = await fsPromises.open(sessionFile, "r");
|
|
43603
43614
|
try {
|
|
43604
43615
|
const buffer = Buffer$1.alloc(4096);
|
|
43605
43616
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -43739,7 +43750,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43739
43750
|
} catch (err) {
|
|
43740
43751
|
return fail(describeUnknownError(err));
|
|
43741
43752
|
}
|
|
43742
|
-
await
|
|
43753
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
43743
43754
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
43744
43755
|
const sandbox = await resolveSandboxContext({
|
|
43745
43756
|
config: params.config,
|
|
@@ -43747,7 +43758,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43747
43758
|
workspaceDir: resolvedWorkspace
|
|
43748
43759
|
});
|
|
43749
43760
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
43750
|
-
await
|
|
43761
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
43751
43762
|
await ensureSessionHeader({
|
|
43752
43763
|
sessionFile: params.sessionFile,
|
|
43753
43764
|
sessionId: params.sessionId,
|
|
@@ -44072,12 +44083,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
44072
44083
|
const existing = writers.get(filePath);
|
|
44073
44084
|
if (existing) return existing;
|
|
44074
44085
|
const dir = path.dirname(filePath);
|
|
44075
|
-
const ready =
|
|
44086
|
+
const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
44076
44087
|
let queue = Promise.resolve();
|
|
44077
44088
|
const writer = {
|
|
44078
44089
|
filePath,
|
|
44079
44090
|
write: (line) => {
|
|
44080
|
-
queue = queue.then(() => ready).then(() =>
|
|
44091
|
+
queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
44081
44092
|
}
|
|
44082
44093
|
};
|
|
44083
44094
|
writers.set(filePath, writer);
|
|
@@ -47168,7 +47179,7 @@ Use the message tool with buttons:
|
|
|
47168
47179
|
*/
|
|
47169
47180
|
async function readSessionFile(sessionFile) {
|
|
47170
47181
|
try {
|
|
47171
|
-
return await
|
|
47182
|
+
return await fsPromises.readFile(sessionFile, "utf-8");
|
|
47172
47183
|
} catch {
|
|
47173
47184
|
return null;
|
|
47174
47185
|
}
|
|
@@ -47177,8 +47188,8 @@ async function writeAtomically(sessionFile, text) {
|
|
|
47177
47188
|
const dir = path.dirname(sessionFile);
|
|
47178
47189
|
const base = path.basename(sessionFile);
|
|
47179
47190
|
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
47180
|
-
await
|
|
47181
|
-
await
|
|
47191
|
+
await fsPromises.writeFile(tmp, text, "utf-8");
|
|
47192
|
+
await fsPromises.rename(tmp, sessionFile);
|
|
47182
47193
|
}
|
|
47183
47194
|
/**
|
|
47184
47195
|
* Remove empty assistant JSONL entries from the session file.
|
|
@@ -47280,7 +47291,7 @@ function isInPoisonRange(version) {
|
|
|
47280
47291
|
*/
|
|
47281
47292
|
async function checkSessionPoison(sessionFile) {
|
|
47282
47293
|
try {
|
|
47283
|
-
const firstLine = (await
|
|
47294
|
+
const firstLine = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
47284
47295
|
if (!firstLine) return null;
|
|
47285
47296
|
const header = JSON.parse(firstLine);
|
|
47286
47297
|
if (header.type !== "session") return null;
|
|
@@ -47298,7 +47309,7 @@ async function checkSessionPoison(sessionFile) {
|
|
|
47298
47309
|
*/
|
|
47299
47310
|
async function archivePoisonedSession(sessionFile) {
|
|
47300
47311
|
const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
47301
|
-
await
|
|
47312
|
+
await fsPromises.rename(sessionFile, archiveName);
|
|
47302
47313
|
return archiveName;
|
|
47303
47314
|
}
|
|
47304
47315
|
/**
|
|
@@ -47307,14 +47318,14 @@ async function archivePoisonedSession(sessionFile) {
|
|
|
47307
47318
|
*/
|
|
47308
47319
|
async function stampSessionVersion(sessionFile) {
|
|
47309
47320
|
try {
|
|
47310
|
-
const lines = (await
|
|
47321
|
+
const lines = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n");
|
|
47311
47322
|
if (lines.length === 0) return;
|
|
47312
47323
|
const header = JSON.parse(lines[0]);
|
|
47313
47324
|
if (header.type !== "session") return;
|
|
47314
47325
|
if (header.symiVersion === VERSION) return;
|
|
47315
47326
|
header.symiVersion = VERSION;
|
|
47316
47327
|
lines[0] = JSON.stringify(header);
|
|
47317
|
-
await
|
|
47328
|
+
await fsPromises.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
47318
47329
|
} catch {}
|
|
47319
47330
|
}
|
|
47320
47331
|
/**
|
|
@@ -47543,7 +47554,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
47543
47554
|
return;
|
|
47544
47555
|
}
|
|
47545
47556
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
47546
|
-
await
|
|
47557
|
+
await fsPromises.writeFile(params.sessionFile, "", "utf-8");
|
|
47547
47558
|
sm.fileEntries = [header];
|
|
47548
47559
|
sm.byId?.clear?.();
|
|
47549
47560
|
sm.labelsById?.clear?.();
|
|
@@ -48101,7 +48112,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48101
48112
|
const prevCwd = process.cwd();
|
|
48102
48113
|
const runAbortController = new AbortController();
|
|
48103
48114
|
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"}`);
|
|
48104
|
-
await
|
|
48115
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
48105
48116
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
48106
48117
|
const sandbox = await resolveSandboxContext({
|
|
48107
48118
|
config: params.config,
|
|
@@ -48109,7 +48120,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48109
48120
|
workspaceDir: resolvedWorkspace
|
|
48110
48121
|
});
|
|
48111
48122
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
48112
|
-
await
|
|
48123
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
48113
48124
|
let restoreSkillEnv;
|
|
48114
48125
|
process.chdir(effectiveWorkspace);
|
|
48115
48126
|
try {
|
|
@@ -48318,7 +48329,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48318
48329
|
sessionFile: params.sessionFile,
|
|
48319
48330
|
warn: (message) => log$7.warn(message)
|
|
48320
48331
|
});
|
|
48321
|
-
const hadSessionFile = await
|
|
48332
|
+
const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
48322
48333
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
48323
48334
|
modelApi: params.model?.api,
|
|
48324
48335
|
provider: params.provider,
|
|
@@ -49410,7 +49421,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
49410
49421
|
}
|
|
49411
49422
|
runLoopIterations += 1;
|
|
49412
49423
|
attemptedThinking.add(thinkLevel);
|
|
49413
|
-
await
|
|
49424
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
49414
49425
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
49415
49426
|
const attempt = await runEmbeddedAttempt({
|
|
49416
49427
|
sessionId: params.sessionId,
|