@symerian/symi 3.5.24 → 3.5.26
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-DgVWcnlD.js → agent-CB5yb-7V.js} +1 -1
- package/dist/{agent-CBfp75J4.js → agent-CoHzNs_e.js} +18 -18
- package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
- package/dist/{agents-Dlcpc1K3.js → agents-DtRd3yEb.js} +3 -3
- package/dist/{agents.config-B7sNDvhz.js → agents.config-DA0ISLi7.js} +1 -1
- package/dist/{audit-Ce-u6aaR.js → audit-CuwXq_EA.js} +20 -20
- package/dist/{audit-CPloCzEZ.js → audit-DyncRBKq.js} +2 -2
- package/dist/{auth-choice--DymOp5O.js → auth-choice-5SLfZiQ7.js} +2 -2
- package/dist/{auth-choice-CUvx59kv.js → auth-choice-DKRHawfp.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-CY_9VW7E.js → banner-B_P_FrmA.js} +1 -1
- package/dist/{browser-cli-Ibgld3mA.js → browser-cli-BI81RlI8.js} +9 -9
- package/dist/{browser-cli-C5VVk6C9.js → browser-cli-CcCYZtag.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/{call-C2urR5Fj.js → call-DTshgdlW.js} +1 -1
- package/dist/{call-xdEE97oU.js → call-xUpyZDH4.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-rFgJaKzJ.js → channel-options-8NGYZjfd.js} +1 -1
- package/dist/{channel-options-DCmWOAc0.js → channel-options-vjcKi2yl.js} +1 -1
- package/dist/{channels-cli-QMHCRAb5.js → channels-cli-Bx90nSmB.js} +9 -9
- package/dist/{channels-cli-Cs1Z0dn8.js → channels-cli-CfBFa-VO.js} +57 -57
- package/dist/{chrome-DJChpTwP.js → chrome-38OnGyuN.js} +2 -2
- package/dist/{cli-BafqEuaj.js → cli-DHG9iZJi.js} +6 -6
- package/dist/{cli-CadU09SC.js → cli-qf0qK7oi.js} +45 -45
- package/dist/{client-yVTJ5jx5.js → client-BOd5o3Kp.js} +9 -1
- package/dist/{client-Cs9Bh-G0.js → client-DiPa71im.js} +10 -2
- package/dist/{command-registry-CLm8TAH3.js → command-registry-DBbzZvh6.js} +11 -11
- package/dist/{commands-registry-Ca5hh7nh.js → commands-registry-CwXsDVuO.js} +1 -1
- package/dist/{completion-cli-Dd56ibFZ.js → completion-cli-Ddfrnilx.js} +12 -12
- package/dist/{completion-cli-DOBXkVwG.js → completion-cli-DoQrkCAd.js} +2 -2
- package/dist/{config-B4jkreCN.js → config-BngIfn5l.js} +2 -2
- package/dist/{config-cli-BgHYqFH1.js → config-cli-9a5qBcdo.js} +1 -1
- package/dist/{config-cli-GwUJEapt.js → config-cli-JVGYyfYA.js} +4 -4
- 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-5md67tCP.js → configure-Bqz2Hvnf.js} +14 -14
- package/dist/{configure-DmzM0S7L.js → configure-ryB8EvyP.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 +177 -9
- package/dist/control-ui/index.html +42 -0
- package/dist/control-ui/js/symframe-modes.js +65 -0
- package/dist/control-ui/js/symframe.js +139 -0
- 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-BNBs3zue.js → cron-cli-DsGkkt1s.js} +3 -3
- package/dist/{cron-cli-CE9bV9Et.js → cron-cli-pZ_7Wzhj.js} +7 -7
- package/dist/{daemon-cli-BYiG4GOU.js → daemon-cli-BDzcfcu_.js} +11 -11
- package/dist/{daemon-cli-DDqeG2nd.js → daemon-cli-dbAPTgGm.js} +2 -2
- package/dist/daemon-cli.js +9 -1
- package/dist/{daemon-runtime-DlQla_dA.js → daemon-runtime-CKn0wmCk.js} +10 -10
- package/dist/{deliver-lTZLIQqf.js → deliver-CWMFmMCv.js} +2 -2
- package/dist/{deps-Bf9dt2UO.js → deps-CdibsPMx.js} +1 -1
- package/dist/{devices-cli-Bhr6jGtH.js → devices-cli-BIZbo_Pt.js} +6 -6
- package/dist/{devices-cli-BJ3rVWOw.js → devices-cli-CIAuYH4P.js} +2 -2
- 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-k0HiL05o.js → doctor-completion-Bk55g4MP.js} +1 -1
- package/dist/{doctor-completion-BpUGRguQ.js → doctor-completion-eh7aImCx.js} +2 -2
- 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-CzvIqBUd.js → exec-approvals-cli-B2UY9dZC.js} +13 -13
- package/dist/{exec-approvals-cli-Cau1vPQI.js → exec-approvals-cli-BiXeyPPz.js} +4 -4
- package/dist/extensionAPI.js +2 -2
- 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-DgmGygc6.js → gateway-cli-BGMVOW2G.js} +16 -16
- package/dist/{gateway-cli-D1d5YAt0.js → gateway-cli-BwPy7u0B.js} +98 -98
- package/dist/{gateway-rpc-BTGT1SuZ.js → gateway-rpc-DmFOiGIJ.js} +1 -1
- package/dist/{gateway-rpc-Kv0-8W2E.js → gateway-rpc-DpRnrv_i.js} +1 -1
- package/dist/{glass-ui-ws-BH9WH_VN.js → glass-ui-ws-CwOiILiY.js} +67 -67
- package/dist/{glass-ui-ws-Dl45d7eU.js → glass-ui-ws-Z-W33_mF.js} +13 -13
- package/dist/{health-DpE9GWGn.js → health-Bc1wmAO5.js} +4 -4
- package/dist/{health-znS85U-F.js → health-Dkwuq8ta.js} +1 -1
- package/dist/{hooks-cli-Cb9BzCOY.js → hooks-cli-Bn6x6Jnj.js} +7 -7
- package/dist/{hooks-cli-D7xxbEwI.js → hooks-cli-DOjHV2fF.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 +2 -2
- package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
- package/dist/{logs-cli-LiAjkog2.js → logs-cli-CJLJ745C.js} +3 -3
- package/dist/{logs-cli-DvIVuW0d.js → logs-cli-CYFlhj51.js} +7 -7
- package/dist/{manager-V4UCf0Av.js → manager-BHddoe4T.js} +1 -1
- package/dist/{manager-CceVgXHV.js → manager-DH00nlW8.js} +1 -1
- package/dist/{manager-CoCX7L5u.js → manager-DuWp0CTD.js} +15 -15
- package/dist/{manager-DDynl084.js → manager-F0-SHT1B.js} +1 -1
- package/dist/{memory-A2D5e8dL.js → memory-C02Znuee.js} +2 -2
- package/dist/{memory-cli-1zjVJITN.js → memory-cli-083UJtVJ.js} +2 -2
- package/dist/{memory-cli-D8Z_5-Nz.js → memory-cli-BnBKckEk.js} +12 -12
- package/dist/{memory-B067LTL9.js → memory-fFc7GGPZ.js} +5 -5
- 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-BYev6YAG.js → models-Bh_frCup.js} +3 -3
- package/dist/{models-cli-Fa5r1QYP.js → models-cli-BhBu4Dwm.js} +9 -9
- package/dist/{models-cli-C979SN3Z.js → models-cli-DVdb_TUS.js} +55 -55
- package/dist/{models-config-B5Xxy-c-.js → models-config-DlXge3Sd.js} +8 -8
- package/dist/{node-cli-DGybtex_.js → node-cli-B0ePfMUr.js} +27 -27
- package/dist/{node-cli-Cv7x1gGu.js → node-cli-CBW_ECu_.js} +1 -1
- package/dist/{node-service-BH08wY5j.js → node-service-Cc18m-uk.js} +1 -1
- package/dist/{nodes-cli-DaHOBbd4.js → nodes-cli-CJ0gxF5n.js} +3 -3
- package/dist/{nodes-cli-C-mEw2av.js → nodes-cli-L0gy-26E.js} +10 -10
- 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-D-m6WTZl.js → onboard-BSxqEQfo.js} +3 -3
- package/dist/{onboard-CotuAZi6.js → onboard-D6GZ2t-L.js} +15 -15
- package/dist/{onboard-channels-Z-Jkrk5-.js → onboard-channels-BkR3MKMp.js} +1 -1
- package/dist/{onboard-channels-DSyynpou.js → onboard-channels-DVS9vciR.js} +4 -4
- package/dist/{onboard-custom-BcRYreNG.js → onboard-custom-DnDrvxSg.js} +3 -3
- package/dist/{onboard-helpers-CLXJ8zp0.js → onboard-helpers-CJlheOSJ.js} +8 -8
- package/dist/{onboard-helpers-Dhr98nj8.js → onboard-helpers-t7tI9KSA.js} +1 -1
- package/dist/{onboard-hooks-2SCajRKc.js → onboard-hooks-D9jHwImb.js} +1 -1
- package/dist/{onboard-remote-BYBai0w3.js → onboard-remote-CVZ8l58S.js} +1 -1
- package/dist/{onboard-remote-DZdMxd1Q.js → onboard-remote-DH3bPYbE.js} +1 -1
- package/dist/{onboard-skills-2SUv-W7i.js → onboard-skills-Bjf7kWvg.js} +1 -1
- package/dist/{onboard-skills-BxJlS1Bk.js → onboard-skills-MgcaLiE6.js} +3 -3
- package/dist/{onboarding-BckHLQMV.js → onboarding-CrCGoZ4H.js} +7 -7
- package/dist/{onboarding-BnoGiOh3.js → onboarding-D-mzwQ_f.js} +12 -12
- package/dist/{onboarding.finalize-CbH_ShIW.js → onboarding.finalize-BYzduVFA.js} +9 -9
- package/dist/{onboarding.finalize-g86Q4433.js → onboarding.finalize-DBFL76p0.js} +31 -31
- package/dist/{onboarding.gateway-config-CEXjbEM0.js → onboarding.gateway-config-BCDgsFl8.js} +8 -8
- package/dist/{onboarding.gateway-config-sNSeEykB.js → onboarding.gateway-config-xWUSbtoY.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-B9rtlNMc.js → pi-embedded-DGnpyHm-.js} +50 -7
- 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-CS4WgHbu.js → plugin-registry-B74FBx4U.js} +1 -1
- package/dist/{plugin-registry-AsC9gydF.js → plugin-registry-KP94aK4z.js} +3 -3
- package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
- package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +5 -1
- package/dist/plugin-sdk/index.js +6 -6
- package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +7 -2
- package/dist/{plugins-cli-CbByGz8z.js → plugins-cli-B4ljapU5.js} +54 -54
- package/dist/{plugins-cli-BY42hyHP.js → plugins-cli-Cmf3kRf5.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-P9F1DxBa.js → program-CGuYYumL.js} +12 -12
- package/dist/{program-context-CiyK6MfV.js → program-context-BzqGUxMS.js} +40 -40
- package/dist/{prompt-select-styled-DaNQ_GgB.js → prompt-select-styled-BVkRteee.js} +38 -38
- package/dist/{prompt-select-styled-B2ah467m.js → prompt-select-styled-b752FPLG.js} +7 -7
- package/dist/{provider-auth-helpers-Bgb_Bfp9.js → provider-auth-helpers-BKveYcEH.js} +1 -1
- package/dist/{provider-auth-helpers-D2FDvwT5.js → provider-auth-helpers-C6GjAO-s.js} +6 -6
- package/dist/{push-apns-va-DRu4U.js → push-apns-CbbWM63o.js} +4 -4
- package/dist/{push-apns-DnSCjFu7.js → push-apns-HNg0rTkI.js} +1 -1
- package/dist/{pw-ai-BiBvIJzd.js → pw-ai-CP5pn3eU.js} +7 -7
- 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-BuEcmVg0.js → register.agent-DbPYGG3u.js} +12 -12
- package/dist/{register.agent-BqdQ0s30.js → register.agent-DhS2lmWo.js} +67 -67
- package/dist/{register.configure-YDKJ-KQg.js → register.configure-B0M15y31.js} +14 -14
- package/dist/{register.configure-Dhwi-4FG.js → register.configure-ChjzXxh8.js} +70 -70
- package/dist/{register.maintenance-BiGvpEj-.js → register.maintenance-bzLNOqch.js} +13 -13
- package/dist/{register.maintenance-iMjNw9uy.js → register.maintenance-frHWf6Xs.js} +67 -67
- package/dist/{register.message-BIuLbESM.js → register.message-Bfukmte_.js} +7 -7
- package/dist/{register.message-Ao_b9s2g.js → register.message-DWB4eVII.js} +47 -47
- package/dist/{register.onboard-ymhSAezZ.js → register.onboard-4P8ud4Sw.js} +25 -25
- package/dist/{register.onboard-C4vIASed.js → register.onboard-CDsSVoFI.js} +6 -6
- package/dist/{register.setup-D-Jt2e1d.js → register.setup-Bp8rYeRx.js} +6 -6
- package/dist/{register.setup-CKs9mqtD.js → register.setup-D0I7sEGc.js} +28 -28
- package/dist/{register.status-health-sessions-U-azRmpb.js → register.status-health-sessions-69Gigo_H.js} +41 -41
- package/dist/{register.status-health-sessions-BY9hMD1s.js → register.status-health-sessions-DE2db_Uo.js} +8 -8
- package/dist/{register.subclis-Cibmeapc.js → register.subclis-QXO75pUm.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-BnAKPQDB.js → rpc-BBtNUyxN.js} +1 -1
- package/dist/{rpc-DjqFrbOc.js → rpc-DTqyJZKO.js} +1 -1
- package/dist/{run-main-BhEQjKtM.js → run-main-MD8Z8ydF.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-CS-ZT1LE.js → security-cli-DZ-6QDRB.js} +3 -3
- package/dist/{security-cli-JKsf9SIu.js → security-cli-iJpHPABF.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-B2tykucj.js → server-methods-DHWxmfIu.js} +67 -61
- package/dist/{server-methods-CWxr5b-w.js → server-methods-DTkVQH8Q.js} +18 -12
- package/dist/{server-node-events-ClDEcUTJ.js → server-node-events-C0smPxrR.js} +8 -8
- package/dist/{server-node-events-BKqszk_a.js → server-node-events-DHSiqnRS.js} +48 -48
- 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-ojZB_Lrf.js → status-BEZotN01.js} +5 -5
- package/dist/{status-DPGFZPpp.js → status-DUbs9rVu.js} +3 -3
- package/dist/{status-DHBVIMyL.js → status-ISN-LC9F.js} +23 -23
- package/dist/{status-K1k4g3Ai.js → status-OTYFx93W.js} +1 -1
- package/dist/{status.update-DGJi0OLl.js → status.update-CKfyV6zw.js} +3 -3
- package/dist/{subagent-registry-BOt7g9hn.js → subagent-registry-CVhLz4p3.js} +43 -8
- package/dist/{symframe-cli-CrUtJw_7.js → symframe-cli-BSAQ05fb.js} +22 -6
- package/dist/{symframe-cli-CX3dINPw.js → symframe-cli-CPE5nxuJ.js} +28 -12
- package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
- package/dist/{synthesis-Bc2QkGvt.js → synthesis-C1mZnGqD.js} +2 -2
- package/dist/{synthesis-D91XE0n4.js → synthesis-CDPVZw2P.js} +2 -2
- package/dist/{synthesis-DmqicCsT.js → synthesis-DkHCk0El.js} +45 -45
- package/dist/{synthesis-BIQLrbys.js → synthesis-RhT991Ni.js} +6 -6
- package/dist/{system-cli-CvN-Wq9U.js → system-cli-Dy6_0Qp7.js} +3 -3
- package/dist/{system-cli-DUHzCGfK.js → system-cli-nWJwLo85.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-DCqVZ6sC.js → tui-ZL7IGA7l.js} +7 -7
- package/dist/{tui-cli-DqvgN5ng.js → tui-cli-B-DKpOxE.js} +3 -3
- package/dist/{tui-cli-CI-P3sei.js → tui-cli-CEpMtmhP.js} +19 -19
- package/dist/{tui-BxgdImL_.js → tui-h57L-YTX.js} +2 -2
- package/dist/{unified-runner-CdJx7yN8.js → unified-runner-Cppo8O8z.js} +50 -7
- package/dist/{unified-runner-CznU7Ad0.js → unified-runner-CsadjpQa.js} +139 -104
- 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-DBoIBDNe.js → update-cli-48-Nah-Y.js} +77 -77
- package/dist/{update-cli-Dn6QQZLd.js → update-cli-D9g9s187.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-fFc7GGPZ.js";
|
|
56
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-DuWp0CTD.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-DiPa71im.js";
|
|
66
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-xUpyZDH4.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-BnBKckEk.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,
|
|
@@ -4695,6 +4695,12 @@ function buildAgentSystemPrompt(params) {
|
|
|
4695
4695
|
" - `recall` — re-summon a recently-released card (id optional → most-recent).",
|
|
4696
4696
|
" - `pin` — persist a card across reload + /new (user-curated; the user can also pin from the UI).",
|
|
4697
4697
|
" - `unpin` — remove the pin; does NOT drop the card.",
|
|
4698
|
+
"Panel modes (Stage D — `action: \"setMode\"` with `mode` and optional `focusedId`):",
|
|
4699
|
+
" - `ambient` (default) — substrate + cards + AWAITING all visible. Normal multi-task posture.",
|
|
4700
|
+
" - `focus` — one card centered, substrate dim, AWAITING hidden. Use when actively iterating on a single artifact (e.g. drafting an email). Pass `focusedId` to halo a specific card.",
|
|
4701
|
+
" - `awaiting` — footer prominent, cards collapsed to titles. Use when you've kicked off long-running work (subagents, scheduled tasks) and the user is waiting for results.",
|
|
4702
|
+
" - `quiet` — substrate only, cards + AWAITING hidden. Use when you're thinking and have nothing actionable to surface yet.",
|
|
4703
|
+
"Modes are sticky until you `setMode` again or the user overrides via the header chips. Default to `ambient`; pick `focus` only when you genuinely want a single card to dominate; pick `awaiting` only when waiting is the user's primary experience.",
|
|
4698
4704
|
"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.",
|
|
4699
4705
|
"",
|
|
4700
4706
|
...compactMode ? [] : [
|
|
@@ -5828,7 +5834,7 @@ async function routeReply(params) {
|
|
|
5828
5834
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
5829
5835
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
5830
5836
|
try {
|
|
5831
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
5837
|
+
const { deliverOutboundPayloads } = await import("./deliver-CWMFmMCv.js").then((n) => n.n);
|
|
5832
5838
|
return {
|
|
5833
5839
|
ok: true,
|
|
5834
5840
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -11669,7 +11675,7 @@ var MediaAttachmentCache = class {
|
|
|
11669
11675
|
const size = await this.ensureLocalStat(entry);
|
|
11670
11676
|
if (entry.resolvedPath) {
|
|
11671
11677
|
if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
|
|
11672
|
-
const buffer = await
|
|
11678
|
+
const buffer = await fsPromises.readFile(entry.resolvedPath);
|
|
11673
11679
|
entry.buffer = buffer;
|
|
11674
11680
|
entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
|
|
11675
11681
|
buffer,
|
|
@@ -11739,10 +11745,10 @@ var MediaAttachmentCache = class {
|
|
|
11739
11745
|
prefix: "symi-media",
|
|
11740
11746
|
extension: path.extname(bufferResult.fileName || "") || ""
|
|
11741
11747
|
});
|
|
11742
|
-
await
|
|
11748
|
+
await fsPromises.writeFile(tmpPath, bufferResult.buffer);
|
|
11743
11749
|
entry.tempPath = tmpPath;
|
|
11744
11750
|
entry.tempCleanup = async () => {
|
|
11745
|
-
await
|
|
11751
|
+
await fsPromises.unlink(tmpPath).catch(() => {});
|
|
11746
11752
|
};
|
|
11747
11753
|
return {
|
|
11748
11754
|
path: tmpPath,
|
|
@@ -11789,12 +11795,12 @@ var MediaAttachmentCache = class {
|
|
|
11789
11795
|
if (entry.statSize !== void 0) return entry.statSize;
|
|
11790
11796
|
try {
|
|
11791
11797
|
const currentPath = entry.resolvedPath;
|
|
11792
|
-
const stat = await
|
|
11798
|
+
const stat = await fsPromises.stat(currentPath);
|
|
11793
11799
|
if (!stat.isFile()) {
|
|
11794
11800
|
entry.resolvedPath = void 0;
|
|
11795
11801
|
return;
|
|
11796
11802
|
}
|
|
11797
|
-
const canonicalPath = await
|
|
11803
|
+
const canonicalPath = await fsPromises.realpath(currentPath).catch(() => currentPath);
|
|
11798
11804
|
if (!isInboundPathAllowed({
|
|
11799
11805
|
filePath: canonicalPath,
|
|
11800
11806
|
roots: await this.getCanonicalLocalPathRoots()
|
|
@@ -11816,7 +11822,7 @@ var MediaAttachmentCache = class {
|
|
|
11816
11822
|
if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
|
|
11817
11823
|
this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
|
|
11818
11824
|
if (root.includes("*")) return root;
|
|
11819
|
-
return await
|
|
11825
|
+
return await fsPromises.realpath(root).catch(() => root);
|
|
11820
11826
|
}))))();
|
|
11821
11827
|
return await this.canonicalLocalPathRoots;
|
|
11822
11828
|
}
|
|
@@ -11887,7 +11893,7 @@ function formatAudioTranscripts(outputs) {
|
|
|
11887
11893
|
async function fileExists(filePath) {
|
|
11888
11894
|
if (!filePath) return false;
|
|
11889
11895
|
try {
|
|
11890
|
-
await
|
|
11896
|
+
await fsPromises.stat(filePath);
|
|
11891
11897
|
return true;
|
|
11892
11898
|
} catch {
|
|
11893
11899
|
return false;
|
|
@@ -11987,7 +11993,7 @@ async function resolveCliOutput(params) {
|
|
|
11987
11993
|
const commandId = commandBase(params.command);
|
|
11988
11994
|
const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
|
|
11989
11995
|
if (fileOutput && await fileExists(fileOutput)) try {
|
|
11990
|
-
const content = await
|
|
11996
|
+
const content = await fsPromises.readFile(fileOutput, "utf8");
|
|
11991
11997
|
if (content.trim()) return content.trim();
|
|
11992
11998
|
} catch {}
|
|
11993
11999
|
if (commandId === "gemini") {
|
|
@@ -12278,7 +12284,7 @@ async function runCliEntry(params) {
|
|
|
12278
12284
|
maxBytes,
|
|
12279
12285
|
timeoutMs
|
|
12280
12286
|
});
|
|
12281
|
-
const outputDir = await
|
|
12287
|
+
const outputDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
|
|
12282
12288
|
const mediaPath = pathResult.path;
|
|
12283
12289
|
const outputBase = path.join(outputDir, path.parse(mediaPath).name);
|
|
12284
12290
|
const templCtx = {
|
|
@@ -12312,7 +12318,7 @@ async function runCliEntry(params) {
|
|
|
12312
12318
|
model: command
|
|
12313
12319
|
};
|
|
12314
12320
|
} finally {
|
|
12315
|
-
await
|
|
12321
|
+
await fsPromises.rm(outputDir, {
|
|
12316
12322
|
recursive: true,
|
|
12317
12323
|
force: true
|
|
12318
12324
|
}).catch(() => {});
|
|
@@ -12356,9 +12362,9 @@ function candidateBinaryNames(name) {
|
|
|
12356
12362
|
}
|
|
12357
12363
|
async function isExecutable$1(filePath) {
|
|
12358
12364
|
try {
|
|
12359
|
-
if (!(await
|
|
12365
|
+
if (!(await fsPromises.stat(filePath)).isFile()) return false;
|
|
12360
12366
|
if (process.platform === "win32") return true;
|
|
12361
|
-
await
|
|
12367
|
+
await fsPromises.access(filePath, constants.X_OK);
|
|
12362
12368
|
return true;
|
|
12363
12369
|
} catch {
|
|
12364
12370
|
return false;
|
|
@@ -14070,7 +14076,7 @@ async function createModelSelectionState(params) {
|
|
|
14070
14076
|
}
|
|
14071
14077
|
}
|
|
14072
14078
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14073
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14079
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-D5nYBj_Z.js").then((n) => n.t);
|
|
14074
14080
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14075
14081
|
const providerKey = normalizeProviderId(provider);
|
|
14076
14082
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -17214,7 +17220,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
17214
17220
|
cwd: process.cwd(),
|
|
17215
17221
|
root: params.sandbox.workspaceDir
|
|
17216
17222
|
});
|
|
17217
|
-
if (!(await
|
|
17223
|
+
if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
17218
17224
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
17219
17225
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
17220
17226
|
return {
|
|
@@ -18228,13 +18234,13 @@ async function validateScriptFileForShellBleed(params) {
|
|
|
18228
18234
|
cwd: params.workdir,
|
|
18229
18235
|
root: params.workdir
|
|
18230
18236
|
});
|
|
18231
|
-
stat = await
|
|
18237
|
+
stat = await fsPromises.stat(absPath);
|
|
18232
18238
|
} catch {
|
|
18233
18239
|
return;
|
|
18234
18240
|
}
|
|
18235
18241
|
if (!stat.isFile()) return;
|
|
18236
18242
|
if (stat.size > 512 * 1024) return;
|
|
18237
|
-
const content = await
|
|
18243
|
+
const content = await fsPromises.readFile(absPath, "utf-8");
|
|
18238
18244
|
const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
|
|
18239
18245
|
if (first) {
|
|
18240
18246
|
const idx = first.index;
|
|
@@ -22969,7 +22975,7 @@ async function handleCommands(params) {
|
|
|
22969
22975
|
try {
|
|
22970
22976
|
const messages = [];
|
|
22971
22977
|
if (sessionFile) {
|
|
22972
|
-
const content = await
|
|
22978
|
+
const content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
22973
22979
|
for (const line of content.split("\n")) {
|
|
22974
22980
|
if (!line.trim()) continue;
|
|
22975
22981
|
try {
|
|
@@ -25156,7 +25162,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25156
25162
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
|
|
25157
25163
|
throw new Error("jsonlPath outside allowed roots");
|
|
25158
25164
|
}
|
|
25159
|
-
const canonical = await
|
|
25165
|
+
const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
|
|
25160
25166
|
if (!isInboundPathAllowed({
|
|
25161
25167
|
filePath: canonical,
|
|
25162
25168
|
roots
|
|
@@ -25164,7 +25170,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25164
25170
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
|
|
25165
25171
|
throw new Error("jsonlPath outside allowed roots");
|
|
25166
25172
|
}
|
|
25167
|
-
return await
|
|
25173
|
+
return await fsPromises.readFile(canonical, "utf8");
|
|
25168
25174
|
}
|
|
25169
25175
|
const CanvasToolSchema = Type.Object({
|
|
25170
25176
|
action: stringEnum(CANVAS_ACTIONS),
|
|
@@ -25940,7 +25946,14 @@ const ARTIFACT_ACTIONS = [
|
|
|
25940
25946
|
"release",
|
|
25941
25947
|
"recall",
|
|
25942
25948
|
"pin",
|
|
25943
|
-
"unpin"
|
|
25949
|
+
"unpin",
|
|
25950
|
+
"setMode"
|
|
25951
|
+
];
|
|
25952
|
+
const PANEL_MODES = [
|
|
25953
|
+
"ambient",
|
|
25954
|
+
"focus",
|
|
25955
|
+
"awaiting",
|
|
25956
|
+
"quiet"
|
|
25944
25957
|
];
|
|
25945
25958
|
/**
|
|
25946
25959
|
* Stage A: intent vocabulary added as orthogonal metadata to renderer type.
|
|
@@ -25988,7 +26001,9 @@ const DisplayArtifactSchema = Type.Object({
|
|
|
25988
26001
|
email: Type.Optional(EmailFieldsSchema),
|
|
25989
26002
|
actions: Type.Optional(Type.Array(ActionSchema)),
|
|
25990
26003
|
sticky: Type.Optional(Type.Boolean()),
|
|
25991
|
-
force: Type.Optional(Type.Boolean())
|
|
26004
|
+
force: Type.Optional(Type.Boolean()),
|
|
26005
|
+
mode: Type.Optional(stringEnum(PANEL_MODES)),
|
|
26006
|
+
focusedId: Type.Optional(Type.String())
|
|
25992
26007
|
});
|
|
25993
26008
|
function genCardId() {
|
|
25994
26009
|
return `sf-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
@@ -25997,12 +26012,32 @@ function createDisplayArtifactTool() {
|
|
|
25997
26012
|
return {
|
|
25998
26013
|
label: "Display Artifact",
|
|
25999
26014
|
name: "display_artifact",
|
|
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.",
|
|
26015
|
+
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. Stage-D mode verb: action=setMode with mode=ambient|focus|awaiting|quiet (optional focusedId for focus) switches the panel's posture for the current task.",
|
|
26001
26016
|
parameters: DisplayArtifactSchema,
|
|
26002
26017
|
execute: async (_toolCallId, args) => {
|
|
26003
26018
|
const params = args;
|
|
26004
26019
|
const actionRaw = readStringParam(params, "action");
|
|
26005
26020
|
const action = ARTIFACT_ACTIONS.includes(actionRaw ?? "") ? actionRaw : "add";
|
|
26021
|
+
if (action === "setMode") {
|
|
26022
|
+
const modeRaw = readStringParam(params, "mode");
|
|
26023
|
+
if (!modeRaw || !PANEL_MODES.includes(modeRaw)) return jsonResult({
|
|
26024
|
+
ok: false,
|
|
26025
|
+
error: `setMode requires \`mode\` ∈ {${PANEL_MODES.join(" | ")}}`
|
|
26026
|
+
});
|
|
26027
|
+
const mode = modeRaw;
|
|
26028
|
+
const focusedId = readStringParam(params, "focusedId");
|
|
26029
|
+
emitSymframePush({
|
|
26030
|
+
action: "setMode",
|
|
26031
|
+
mode,
|
|
26032
|
+
focusedId: focusedId || void 0
|
|
26033
|
+
});
|
|
26034
|
+
return jsonResult({
|
|
26035
|
+
ok: true,
|
|
26036
|
+
action,
|
|
26037
|
+
mode,
|
|
26038
|
+
focusedId
|
|
26039
|
+
});
|
|
26040
|
+
}
|
|
26006
26041
|
const id = readStringParam(params, "id") || (action === "add" ? genCardId() : void 0);
|
|
26007
26042
|
if (action !== "add" && action !== "recall" && !id) return jsonResult({
|
|
26008
26043
|
ok: false,
|
|
@@ -26838,7 +26873,7 @@ async function hydrateAttachmentPayload(params) {
|
|
|
26838
26873
|
accountId: params.accountId
|
|
26839
26874
|
}),
|
|
26840
26875
|
sandboxValidated: true,
|
|
26841
|
-
readFile: (filePath) =>
|
|
26876
|
+
readFile: (filePath) => fsPromises.readFile(filePath)
|
|
26842
26877
|
});
|
|
26843
26878
|
params.args.buffer = media.buffer.toString("base64");
|
|
26844
26879
|
if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
|
|
@@ -33452,7 +33487,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
33452
33487
|
return;
|
|
33453
33488
|
}
|
|
33454
33489
|
try {
|
|
33455
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33490
|
+
const { deliverOutboundPayloads } = await import("./deliver-CWMFmMCv.js").then((n) => n.n);
|
|
33456
33491
|
await deliverOutboundPayloads({
|
|
33457
33492
|
cfg: params.cfg,
|
|
33458
33493
|
channel,
|
|
@@ -33857,7 +33892,7 @@ async function stageSandboxMedia(params) {
|
|
|
33857
33892
|
};
|
|
33858
33893
|
try {
|
|
33859
33894
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
33860
|
-
await
|
|
33895
|
+
await fsPromises.mkdir(destDir, { recursive: true });
|
|
33861
33896
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
33862
33897
|
cfg,
|
|
33863
33898
|
accountId: ctx.AccountId
|
|
@@ -33907,7 +33942,7 @@ async function stageSandboxMedia(params) {
|
|
|
33907
33942
|
usedNames.add(fileName);
|
|
33908
33943
|
const dest = path.join(destDir, fileName);
|
|
33909
33944
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
33910
|
-
else await
|
|
33945
|
+
else await fsPromises.copyFile(source, dest);
|
|
33911
33946
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
33912
33947
|
staged.set(source, stagedPath);
|
|
33913
33948
|
}
|
|
@@ -39238,7 +39273,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
39238
39273
|
}
|
|
39239
39274
|
let commandsRegistry;
|
|
39240
39275
|
async function getCommandsRegistry() {
|
|
39241
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
39276
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CwXsDVuO.js").then((n) => n.t);
|
|
39242
39277
|
return commandsRegistry;
|
|
39243
39278
|
}
|
|
39244
39279
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -39580,11 +39615,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39580
39615
|
const channelName = channelInfo?.name;
|
|
39581
39616
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
39582
39617
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
39583
|
-
import("./resolve-route-
|
|
39618
|
+
import("./resolve-route-Du0VftVs.js").then((n) => n.r),
|
|
39584
39619
|
import("./inbound-context-B7Rvs8pK.js").then((n) => n.n),
|
|
39585
39620
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
39586
39621
|
]);
|
|
39587
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-
|
|
39622
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-CtZtkTJK.js").then((n) => n.n)]);
|
|
39588
39623
|
const route = resolveAgentRoute({
|
|
39589
39624
|
cfg,
|
|
39590
39625
|
channel: "slack",
|
|
@@ -39641,7 +39676,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39641
39676
|
});
|
|
39642
39677
|
const deliverSlashPayloads = async (replies) => {
|
|
39643
39678
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
39644
|
-
import("./replies-
|
|
39679
|
+
import("./replies-B_3j7R_Q.js").then((n) => n.r),
|
|
39645
39680
|
import("./chunk-BxfKjCUx.js").then((n) => n.s),
|
|
39646
39681
|
import("./markdown-tables-CS1Tvb3z.js").then((n) => n.t)
|
|
39647
39682
|
]);
|
|
@@ -39696,7 +39731,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39696
39731
|
let nativeCommands = [];
|
|
39697
39732
|
if (nativeEnabled) {
|
|
39698
39733
|
reg = await getCommandsRegistry();
|
|
39699
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
39734
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DWvXs3lz.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
39700
39735
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
39701
39736
|
skillCommands,
|
|
39702
39737
|
provider: "slack"
|
|
@@ -40829,7 +40864,7 @@ function resolvePluginTools(params) {
|
|
|
40829
40864
|
//#endregion
|
|
40830
40865
|
//#region src/agents/apply-patch-update.ts
|
|
40831
40866
|
async function defaultReadFile(filePath) {
|
|
40832
|
-
return
|
|
40867
|
+
return fsPromises.readFile(filePath, "utf8");
|
|
40833
40868
|
}
|
|
40834
40869
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
40835
40870
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -41073,10 +41108,10 @@ function resolvePatchFileOps(options) {
|
|
|
41073
41108
|
};
|
|
41074
41109
|
}
|
|
41075
41110
|
return {
|
|
41076
|
-
readFile: (filePath) =>
|
|
41077
|
-
writeFile: (filePath, content) =>
|
|
41078
|
-
remove: (filePath) =>
|
|
41079
|
-
mkdirp: (dir) =>
|
|
41111
|
+
readFile: (filePath) => fsPromises.readFile(filePath, "utf8"),
|
|
41112
|
+
writeFile: (filePath, content) => fsPromises.writeFile(filePath, content, "utf8"),
|
|
41113
|
+
remove: (filePath) => fsPromises.rm(filePath),
|
|
41114
|
+
mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
|
|
41080
41115
|
};
|
|
41081
41116
|
}
|
|
41082
41117
|
async function ensureDir(filePath, ops) {
|
|
@@ -42281,7 +42316,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
42281
42316
|
};
|
|
42282
42317
|
let content;
|
|
42283
42318
|
try {
|
|
42284
|
-
content = await
|
|
42319
|
+
content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
42285
42320
|
} catch (err) {
|
|
42286
42321
|
if (err?.code === "ENOENT") return {
|
|
42287
42322
|
repaired: false,
|
|
@@ -42329,15 +42364,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
42329
42364
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
42330
42365
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
42331
42366
|
try {
|
|
42332
|
-
const stat = await
|
|
42333
|
-
await
|
|
42334
|
-
if (stat) await
|
|
42335
|
-
await
|
|
42336
|
-
if (stat) await
|
|
42337
|
-
await
|
|
42367
|
+
const stat = await fsPromises.stat(sessionFile).catch(() => null);
|
|
42368
|
+
await fsPromises.writeFile(backupPath, content, "utf-8");
|
|
42369
|
+
if (stat) await fsPromises.chmod(backupPath, stat.mode);
|
|
42370
|
+
await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
|
|
42371
|
+
if (stat) await fsPromises.chmod(tmpPath, stat.mode);
|
|
42372
|
+
await fsPromises.rename(tmpPath, sessionFile);
|
|
42338
42373
|
} catch (err) {
|
|
42339
42374
|
try {
|
|
42340
|
-
await
|
|
42375
|
+
await fsPromises.unlink(tmpPath);
|
|
42341
42376
|
} catch (cleanupErr) {
|
|
42342
42377
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
42343
42378
|
}
|
|
@@ -43610,7 +43645,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
43610
43645
|
if (!isSessionManagerCacheEnabled()) return;
|
|
43611
43646
|
if (isSessionManagerCached(sessionFile)) return;
|
|
43612
43647
|
try {
|
|
43613
|
-
const handle = await
|
|
43648
|
+
const handle = await fsPromises.open(sessionFile, "r");
|
|
43614
43649
|
try {
|
|
43615
43650
|
const buffer = Buffer$1.alloc(4096);
|
|
43616
43651
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -43750,7 +43785,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43750
43785
|
} catch (err) {
|
|
43751
43786
|
return fail(describeUnknownError(err));
|
|
43752
43787
|
}
|
|
43753
|
-
await
|
|
43788
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
43754
43789
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
43755
43790
|
const sandbox = await resolveSandboxContext({
|
|
43756
43791
|
config: params.config,
|
|
@@ -43758,7 +43793,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43758
43793
|
workspaceDir: resolvedWorkspace
|
|
43759
43794
|
});
|
|
43760
43795
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
43761
|
-
await
|
|
43796
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
43762
43797
|
await ensureSessionHeader({
|
|
43763
43798
|
sessionFile: params.sessionFile,
|
|
43764
43799
|
sessionId: params.sessionId,
|
|
@@ -44083,12 +44118,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
44083
44118
|
const existing = writers.get(filePath);
|
|
44084
44119
|
if (existing) return existing;
|
|
44085
44120
|
const dir = path.dirname(filePath);
|
|
44086
|
-
const ready =
|
|
44121
|
+
const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
44087
44122
|
let queue = Promise.resolve();
|
|
44088
44123
|
const writer = {
|
|
44089
44124
|
filePath,
|
|
44090
44125
|
write: (line) => {
|
|
44091
|
-
queue = queue.then(() => ready).then(() =>
|
|
44126
|
+
queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
44092
44127
|
}
|
|
44093
44128
|
};
|
|
44094
44129
|
writers.set(filePath, writer);
|
|
@@ -47179,7 +47214,7 @@ Use the message tool with buttons:
|
|
|
47179
47214
|
*/
|
|
47180
47215
|
async function readSessionFile(sessionFile) {
|
|
47181
47216
|
try {
|
|
47182
|
-
return await
|
|
47217
|
+
return await fsPromises.readFile(sessionFile, "utf-8");
|
|
47183
47218
|
} catch {
|
|
47184
47219
|
return null;
|
|
47185
47220
|
}
|
|
@@ -47188,8 +47223,8 @@ async function writeAtomically(sessionFile, text) {
|
|
|
47188
47223
|
const dir = path.dirname(sessionFile);
|
|
47189
47224
|
const base = path.basename(sessionFile);
|
|
47190
47225
|
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
47191
|
-
await
|
|
47192
|
-
await
|
|
47226
|
+
await fsPromises.writeFile(tmp, text, "utf-8");
|
|
47227
|
+
await fsPromises.rename(tmp, sessionFile);
|
|
47193
47228
|
}
|
|
47194
47229
|
/**
|
|
47195
47230
|
* Remove empty assistant JSONL entries from the session file.
|
|
@@ -47291,7 +47326,7 @@ function isInPoisonRange(version) {
|
|
|
47291
47326
|
*/
|
|
47292
47327
|
async function checkSessionPoison(sessionFile) {
|
|
47293
47328
|
try {
|
|
47294
|
-
const firstLine = (await
|
|
47329
|
+
const firstLine = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
47295
47330
|
if (!firstLine) return null;
|
|
47296
47331
|
const header = JSON.parse(firstLine);
|
|
47297
47332
|
if (header.type !== "session") return null;
|
|
@@ -47309,7 +47344,7 @@ async function checkSessionPoison(sessionFile) {
|
|
|
47309
47344
|
*/
|
|
47310
47345
|
async function archivePoisonedSession(sessionFile) {
|
|
47311
47346
|
const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
47312
|
-
await
|
|
47347
|
+
await fsPromises.rename(sessionFile, archiveName);
|
|
47313
47348
|
return archiveName;
|
|
47314
47349
|
}
|
|
47315
47350
|
/**
|
|
@@ -47318,14 +47353,14 @@ async function archivePoisonedSession(sessionFile) {
|
|
|
47318
47353
|
*/
|
|
47319
47354
|
async function stampSessionVersion(sessionFile) {
|
|
47320
47355
|
try {
|
|
47321
|
-
const lines = (await
|
|
47356
|
+
const lines = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n");
|
|
47322
47357
|
if (lines.length === 0) return;
|
|
47323
47358
|
const header = JSON.parse(lines[0]);
|
|
47324
47359
|
if (header.type !== "session") return;
|
|
47325
47360
|
if (header.symiVersion === VERSION) return;
|
|
47326
47361
|
header.symiVersion = VERSION;
|
|
47327
47362
|
lines[0] = JSON.stringify(header);
|
|
47328
|
-
await
|
|
47363
|
+
await fsPromises.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
47329
47364
|
} catch {}
|
|
47330
47365
|
}
|
|
47331
47366
|
/**
|
|
@@ -47554,7 +47589,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
47554
47589
|
return;
|
|
47555
47590
|
}
|
|
47556
47591
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
47557
|
-
await
|
|
47592
|
+
await fsPromises.writeFile(params.sessionFile, "", "utf-8");
|
|
47558
47593
|
sm.fileEntries = [header];
|
|
47559
47594
|
sm.byId?.clear?.();
|
|
47560
47595
|
sm.labelsById?.clear?.();
|
|
@@ -48112,7 +48147,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48112
48147
|
const prevCwd = process.cwd();
|
|
48113
48148
|
const runAbortController = new AbortController();
|
|
48114
48149
|
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"}`);
|
|
48115
|
-
await
|
|
48150
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
48116
48151
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
48117
48152
|
const sandbox = await resolveSandboxContext({
|
|
48118
48153
|
config: params.config,
|
|
@@ -48120,7 +48155,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48120
48155
|
workspaceDir: resolvedWorkspace
|
|
48121
48156
|
});
|
|
48122
48157
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
48123
|
-
await
|
|
48158
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
48124
48159
|
let restoreSkillEnv;
|
|
48125
48160
|
process.chdir(effectiveWorkspace);
|
|
48126
48161
|
try {
|
|
@@ -48329,7 +48364,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48329
48364
|
sessionFile: params.sessionFile,
|
|
48330
48365
|
warn: (message) => log$7.warn(message)
|
|
48331
48366
|
});
|
|
48332
|
-
const hadSessionFile = await
|
|
48367
|
+
const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
48333
48368
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
48334
48369
|
modelApi: params.model?.api,
|
|
48335
48370
|
provider: params.provider,
|
|
@@ -49421,7 +49456,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
49421
49456
|
}
|
|
49422
49457
|
runLoopIterations += 1;
|
|
49423
49458
|
attemptedThinking.add(thinkLevel);
|
|
49424
|
-
await
|
|
49459
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
49425
49460
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
49426
49461
|
const attempt = await runEmbeddedAttempt({
|
|
49427
49462
|
sessionId: params.sessionId,
|