@symerian/symi 3.3.1 → 3.3.3
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-BI1-UXxQ.js → agent-9zPi5Bip.js} +2 -5
- package/dist/{agent-DeLysRUa.js → agent-M9EC02CI.js} +17 -20
- package/dist/{agent-scope-BjEBQhs0.js → agent-scope-B_oqIiaD.js} +18 -18
- package/dist/{agent-scope-DE5eEsvh.js → agent-scope-D_MtsuXX.js} +2 -2
- package/dist/{agents-BMRZpxNt.js → agents-CW9uf_n0.js} +2 -2
- package/dist/{agents.config-BFKM-a83.js → agents.config-B_LFeRQS.js} +1 -1
- package/dist/{audit-DQ_p2Pbq.js → audit-B_HL4UJ_.js} +20 -20
- package/dist/{auth-choice-BGZsmh6a.js → auth-choice-Bio1-QUP.js} +8 -8
- package/dist/{auth-choice-T77Ymi34.js → auth-choice-DS5oaUTz.js} +1 -1
- package/dist/{auth-profiles-BVtpxYtY.js → auth-profiles-CPlXilKu.js} +9 -9
- package/dist/{auth-profiles-B6ISm3Th.js → auth-profiles-duUuQXeC.js} +3 -3
- package/dist/{auth-token-CPluo60n.js → auth-token-DTj2WrbV.js} +1 -1
- package/dist/{banner-BJHky-bq.js → banner-0vT1O9w2.js} +1 -1
- package/dist/{browser-cli-O7Ic8DI3.js → browser-cli-C-Q0t9y_.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +29 -32
- package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
- package/dist/bundled/session-memory/handler.js +28 -28
- package/dist/{call-CdXXPXpo.js → call-Du4CT1Hp.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BrDTgiiV.js → channel-options-CcGtiy0Q.js} +1 -1
- package/dist/{channel-options-C1yi5h7A.js → channel-options-DZ17japQ.js} +1 -1
- package/dist/{channels-cli-BYeGzy-G.js → channels-cli-BSvEpjOV.js} +10 -10
- package/dist/{channels-cli-Pxe1OINS.js → channels-cli-DxSXTCCh.js} +55 -55
- package/dist/{chrome-FAf5DZL2.js → chrome-C9mX2mtt.js} +3 -3
- package/dist/{chrome-NUKborg3.js → chrome-owBWinlj.js} +2 -2
- package/dist/{chunk-DX6VtywY.js → chunk-5H33X8qU.js} +1 -1
- package/dist/{cli-Dt-wfm_7.js → cli-CHk4wR-F.js} +7 -7
- package/dist/{cli-DFNOC2Ad.js → cli-Dn9ylBb2.js} +43 -43
- package/dist/{client-Bs2zB0rY.js → client-ZZqt0H0-.js} +1 -1
- package/dist/{command-registry-BwbT4ll7.js → command-registry-UxY6jjeo.js} +10 -10
- package/dist/{commands-registry-C5IdtVVy.js → commands-registry-DaPrWQSe.js} +4 -4
- package/dist/{commands-registry-DYk02tmt.js → commands-registry-W2GQIywv.js} +1 -1
- package/dist/{completion-cli-DiNUqrNY.js → completion-cli-DebZ6nSb.js} +12 -12
- package/dist/{completion-cli-CyOSA5xZ.js → completion-cli-m9L2Gv9t.js} +2 -2
- package/dist/{config-CW8aDVM0.js → config-CphS_6eg.js} +2 -2
- package/dist/{config-cli-DBU_S417.js → config-cli-D4_gO3Pd.js} +4 -4
- package/dist/{config-cli-DfG0nukz.js → config-cli-D9YdRiN2.js} +1 -1
- package/dist/{config-guard-CNmD3-IC.js → config-guard-B5BwQ-AP.js} +6 -6
- package/dist/{config-validation-Bz5CV181.js → config-validation-A2rXGvVY.js} +1 -1
- package/dist/{configure-BkH4ueot.js → configure-BXjJQG1p.js} +14 -14
- package/dist/{configure-BYu2DI_6.js → configure-D9NeIMjP.js} +2 -2
- package/dist/{consolidate-Cx7qF5Ht.js → consolidate-7Usm-b2g.js} +6 -6
- package/dist/{consolidate-dh1m3X1s.js → consolidate-C-HKdAJo.js} +2 -2
- package/dist/{control-service-Drd2sr2o.js → control-service-CMVDL3Yl.js} +4 -4
- package/dist/{control-ui-assets-D22DSxhv.js → control-ui-assets-DUhvOLUL.js} +1 -1
- package/dist/{cron-cli-BTAdnRhX.js → cron-cli-DR4W075u.js} +7 -7
- package/dist/{daemon-cli-BY9BFNuw.js → daemon-cli-B__05b-d.js} +11 -11
- package/dist/{daemon-runtime-BH3ZBZXS.js → daemon-runtime-BD-3XS8R.js} +10 -10
- package/dist/{deliver-DZ7ynJYH.js → deliver-63FtOVMC.js} +3 -3
- package/dist/{deliver-Dlq2X0K5.js → deliver-DSMNXd9k.js} +1 -1
- package/dist/{deliver-kmnOOp9j.js → deliver-DSv-Z24A.js} +16 -16
- package/dist/{deliver-CRqS1O8w.js → deliver-DcP6aVt4.js} +1 -1
- package/dist/{deps-i1g0Zpz4.js → deps-DD_ZCq3v.js} +1 -1
- package/dist/{devices-cli-Cqi6L8PH.js → devices-cli-CJom2K8b.js} +6 -6
- package/dist/{diagnostic-CQLyE7_n.js → diagnostic-D7z6O7v0.js} +1 -1
- package/dist/{diagnostics-nLP2i_BY.js → diagnostics-DxdqTfpW.js} +5 -5
- package/dist/{directory-cli-B0XsBWso.js → directory-cli-BwhEj1FE.js} +3 -3
- package/dist/{dm-policy-shared-CnKffdt_.js → dm-policy-shared-C1TQOlkZ.js} +1 -1
- package/dist/{dns-cli-BHWlCG31.js → dns-cli-DzQDEQM2.js} +3 -3
- package/dist/{docs-cli-DASNErN-.js → docs-cli--T-77Ujn.js} +1 -1
- package/dist/{doctor-completion-DqvmZZEo.js → doctor-completion--AgLv0kV.js} +1 -1
- package/dist/{doctor-completion-D_cwpDAq.js → doctor-completion-D1ImH_eM.js} +2 -2
- package/dist/{doctor-config-flow-BvHSaiFy.js → doctor-config-flow-4UT3396o.js} +9 -9
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-CyHTywue.js → exec-approvals-cli-D-MLmhzh.js} +13 -13
- package/dist/extensionAPI.js +5 -5
- package/dist/{frontmatter-BW7tVmn4.js → frontmatter-BzAaXBfE.js} +2 -2
- package/dist/{fs-safe-DjAKGGJ8.js → fs-safe-B6nMaZqV.js} +6 -6
- package/dist/{gateway-cli-BBqSqFGV.js → gateway-cli-5KVJJGFm.js} +97 -117
- package/dist/{gateway-cli-BYGA5ex3.js → gateway-cli-BjGvnfU3.js} +15 -35
- package/dist/{gateway-rpc-BJF1iDnx.js → gateway-rpc-CUIXRk2t.js} +1 -1
- package/dist/{glass-ui-ws-NJNiRFL3.js → glass-ui-ws-CwJdwqn6.js} +65 -65
- package/dist/{glass-ui-ws-DJnV8nJK.js → glass-ui-ws-f_OPXcN2.js} +11 -11
- package/dist/{health-D59E1VfO.js → health-BdxlhiXA.js} +4 -4
- package/dist/{hooks-cli-Bidz8ACz.js → hooks-cli-BfVq5C1p.js} +57 -57
- package/dist/{hooks-cli-CyjEjDSY.js → hooks-cli-CQ6rF_LQ.js} +8 -8
- package/dist/{image-ops-c7_of0HT.js → image-ops-C-gIIp7Q.js} +10 -10
- package/dist/index.js +50 -50
- package/dist/{inspect-op0Ov-v4.js → inspect-BDzd6yBs.js} +4 -4
- package/dist/{install-safe-path-B73BkVO3.js → install-safe-path-CQXx3s9R.js} +11 -11
- package/dist/{installs-ZXEjR9Sp.js → installs-CLp95gcX.js} +10 -10
- package/dist/{internal-C3o_xyzP.js → internal-CHnZdvRy.js} +9 -9
- package/dist/{lifecycle-core-zhQYm_ni.js → lifecycle-core-_BlNODTH.js} +5 -5
- package/dist/llm-slug-generator.js +28 -28
- package/dist/{local-roots-CTriU02e.js → local-roots-JhQs5w0I.js} +1 -1
- package/dist/{local-roots-Dm8-ErgQ.js → local-roots-WWcVq0Ma.js} +3 -3
- package/dist/{logs-cli-B7RJ57Dc.js → logs-cli-BEWOyW5R.js} +7 -7
- package/dist/{manager-CpBl-VGg.js → manager-BI8o6AGu.js} +1 -1
- package/dist/{manager-9dNT9kNF.js → manager-BQ5Wl5r-.js} +14 -14
- package/dist/{manager-t4GthPGw.js → manager-BUS2wGkQ.js} +1 -1
- package/dist/{manager-Dsdh0rGn.js → manager-D_AVoLu8.js} +6 -6
- package/dist/{manifest-registry-B2vClvK5.js → manifest-registry-DsTUFMvZ.js} +1 -1
- package/dist/{markdown-tables-BaWa2kOe.js → markdown-tables-ptfgMe6b.js} +1 -1
- package/dist/{memory-DcWXMzOH.js → memory-2OKjMT7V.js} +5 -5
- package/dist/{memory-B7TJXpqS.js → memory-CMKSFx1T.js} +2 -2
- package/dist/{memory-cli-xBZPEOeL.js → memory-cli-CmPcKzGZ.js} +12 -12
- package/dist/{memory-cli-C0WA_nRS.js → memory-cli-rdfaJrCS.js} +2 -2
- package/dist/{model-BXWgh5eZ.js → model-BKtw-Bqs.js} +1 -1
- package/dist/{model-catalog-BGVslwAT.js → model-catalog-DKBhNiWm.js} +4 -4
- package/dist/{model-picker-aTfyp_mP.js → model-picker-DKzvan7c.js} +3 -3
- package/dist/{models-IfAFy9bK.js → models-DRtgYyTB.js} +2 -2
- package/dist/{models-cli-h8h_qu3F.js → models-cli-183sPHZO.js} +53 -53
- package/dist/{models-cli-DiB4JqF2.js → models-cli-DN2zTFw9.js} +9 -9
- package/dist/{models-config-DRgHv7Ss.js → models-config-CFUwiu4W.js} +7 -7
- package/dist/{node-cli-BPkbqgRt.js → node-cli-CgWAxe-K.js} +27 -27
- package/dist/{node-service-DuN9eBL6.js → node-service-tPO_yUk7.js} +1 -1
- package/dist/{nodes-cli-C09c6nCf.js → nodes-cli-CprJ5K63.js} +10 -10
- package/dist/{nodes-screen-CT94yu_w.js → nodes-screen-JELuBMBi.js} +4 -4
- package/dist/{npm-registry-spec-B8X06AqB.js → npm-registry-spec-BXw_6vF6.js} +9 -9
- package/dist/{onboard-sMgEOBjV.js → onboard-CPHA8CdV.js} +13 -13
- package/dist/{onboard-iL7Z0wKJ.js → onboard-bTgNnEHK.js} +1 -1
- package/dist/{onboard-channels-Deq8QGnM.js → onboard-channels-B_iyN1qL.js} +4 -4
- package/dist/{onboard-channels-BfzW-9vo.js → onboard-channels-D5ugcgBE.js} +1 -1
- package/dist/{onboard-custom-DEdRdzNq.js → onboard-custom-Cla8O-Tv.js} +3 -3
- package/dist/{onboard-helpers-DZKHFY2J.js → onboard-helpers-D2mWJnFB.js} +8 -8
- package/dist/{onboard-hooks-DZZM8goM.js → onboard-hooks-DZD-nGLB.js} +1 -1
- package/dist/{onboard-remote-dn4L5WdE.js → onboard-remote-Bi2BNRnh.js} +1 -1
- package/dist/{onboard-skills-DGHye9Q3.js → onboard-skills-C0XDXvWw.js} +4 -4
- package/dist/{onboarding-BjXYbWlg.js → onboarding-D2SLzcWH.js} +12 -12
- package/dist/{onboarding-70YKbZi6.js → onboarding-ii3ok0Ih.js} +3 -3
- package/dist/{onboarding.finalize-dU_CtL43.js → onboarding.finalize-DOHv_Xe8.js} +31 -31
- package/dist/{onboarding.finalize-Ch3V08eY.js → onboarding.finalize-g-_d-wVY.js} +4 -4
- package/dist/{onboarding.gateway-config-DfF8Rxvn.js → onboarding.gateway-config-BmaAH8uo.js} +8 -8
- package/dist/{openai-model-default-D1NFHFF_.js → openai-model-default-BeRT9S75.js} +2 -2
- package/dist/{pairing-cli-CJv8LQfb.js → pairing-cli-DdtW6Nu-.js} +4 -4
- package/dist/{pairing-store-CxT0UGxd.js → pairing-store-mmeniyUt.js} +1 -1
- package/dist/{pairing-token-DorpwP8O.js → pairing-token-CURbSHdi.js} +7 -7
- package/dist/{paths-DaQrPPet.js → paths-Dc6A9_vI.js} +1 -1
- package/dist/{pi-auth-json-DGZH6URT.js → pi-auth-json-1Z1j1PDI.js} +5 -5
- package/dist/{pi-auth-json-BzuhVcKu.js → pi-auth-json-D4Bl4hBw.js} +1 -1
- package/dist/{pi-embedded-DOCVZrmx.js → pi-embedded-CvGL6bij.js} +39 -212
- package/dist/{pi-embedded-helpers-Be-EeyzH.js → pi-embedded-helpers-BRM8EM4P.js} +6 -6
- package/dist/{pi-tools.policy-qwS9SXOa.js → pi-tools.policy-BBHbN8Nh.js} +3 -3
- package/dist/{plugin-auto-enable-zDUaiaf2.js → plugin-auto-enable-BCwyDNSP.js} +1 -1
- package/dist/{plugin-registry-BgGVB3kW.js → plugin-registry-DSG-0min.js} +3 -3
- package/dist/{plugin-registry-CP2mbhwk.js → plugin-registry-Dl3HqI5J.js} +1 -1
- package/dist/plugin-sdk/agents/{symipulse-timeout.d.ts → idle-timeout.d.ts} +3 -3
- package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +0 -2
- package/dist/plugin-sdk/agents/system-prompt.d.ts +1 -2
- package/dist/plugin-sdk/auto-reply/reply/middleware-transcript-update.d.ts +1 -8
- package/dist/plugin-sdk/auto-reply/reply/normalize-reply.d.ts +1 -3
- package/dist/plugin-sdk/auto-reply/reply/reply-dispatcher.d.ts +0 -1
- package/dist/plugin-sdk/auto-reply/tokens.d.ts +0 -3
- package/dist/plugin-sdk/gateway/outbound-filter.d.ts +2 -4
- package/dist/{plugins-yymezpEd.js → plugins-CcVzjOo_.js} +1 -1
- package/dist/{plugins-cli-1wkCRsFe.js → plugins-cli-CEj-qNus.js} +8 -8
- package/dist/{plugins-cli-B_Gtx3LU.js → plugins-cli-CUTyMzoz.js} +52 -52
- package/dist/{ports-ChuJYhEL.js → ports-DRHSHvqY.js} +1 -1
- package/dist/{ports-EAVAOFyK.js → ports-DqxP-bXz.js} +2 -2
- package/dist/{program-UyCr49qs.js → program-CjZ65fN4.js} +13 -13
- package/dist/{program-context-C7uCS8z7.js → program-context-GaV454D6.js} +38 -38
- package/dist/{prompt-select-styled-DcMra8CK.js → prompt-select-styled-BkowcFQR.js} +36 -36
- package/dist/{prompt-select-styled-BRcRFLzB.js → prompt-select-styled-CwXc8EFB.js} +4 -4
- package/dist/{provider-auth-helpers-Xn1TAPPY.js → provider-auth-helpers-Bo1_RSEb.js} +5 -5
- package/dist/{provider-auth-helpers-BJTb9xI0.js → provider-auth-helpers-CRobCJR_.js} +1 -1
- package/dist/{push-apns-Aaqf9WKI.js → push-apns-BBym2pAw.js} +4 -4
- package/dist/{push-apns-Bfqnchj6.js → push-apns-Bv16DYOL.js} +1 -1
- package/dist/{pw-ai-C-ddUgTA.js → pw-ai-BW5obXRK.js} +7 -7
- package/dist/{pw-ai-DJrnU1ja.js → pw-ai-GICi0s74.js} +8 -8
- package/dist/{qmd-manager-D5kqCz-Y.js → qmd-manager-C-J9Sfjk.js} +19 -19
- package/dist/{qmd-manager-DrM6m9z1.js → qmd-manager-CTHJcHPq.js} +5 -5
- package/dist/{qr-cli-B_mw4i0R.js → qr-cli-BIdgVMK1.js} +3 -3
- package/dist/{register.agent-vAJ0_4m0.js → register.agent-QXqsCc-q.js} +12 -12
- package/dist/{register.agent-BqKNzdaW.js → register.agent-z4GJgPr-.js} +65 -65
- package/dist/{register.configure-BzgavjpU.js → register.configure-CYXErdjF.js} +11 -11
- package/dist/{register.configure-7TmTqCgU.js → register.configure-DaMmDTaj.js} +68 -68
- package/dist/{register.maintenance-BJO0RCk9.js → register.maintenance-CBGhJ5R9.js} +12 -12
- package/dist/{register.maintenance-6Wz4HXlm.js → register.maintenance-CcWTycM4.js} +65 -65
- package/dist/{register.message-XYivyrQJ.js → register.message-Bcvdcd3v.js} +45 -45
- package/dist/{register.message-CW9PahRi.js → register.message-EMkIi8Ga.js} +8 -8
- package/dist/{register.onboard-BgwkmP4D.js → register.onboard-CtcLKgR4.js} +22 -22
- package/dist/{register.onboard-MWRC29wD.js → register.onboard-lmLaYYZl.js} +2 -2
- package/dist/{register.setup-V-arsKvb.js → register.setup-Cu8R_HaH.js} +2 -2
- package/dist/{register.setup-7OoAqQG_.js → register.setup-D47FYXH2.js} +25 -25
- package/dist/{register.status-health-sessions-1VnuXhGM.js → register.status-health-sessions--q6ddHX9.js} +3 -3
- package/dist/{register.status-health-sessions-Bgg1sdY_.js → register.status-health-sessions-B9CINBWm.js} +38 -38
- package/dist/{register.subclis-DpPYIqkP.js → register.subclis-CHTY5PYx.js} +9 -9
- package/dist/{registry-9AaJQms1.js → registry-C-JddWwo.js} +2 -2
- package/dist/{replies-CgVOirGF.js → replies-BOy28KVL.js} +1 -1
- package/dist/{replies-pnMj7AtP.js → replies-BeK3uuQ8.js} +1 -1
- package/dist/{replies-BZN1LuJP.js → replies-C82xaXm3.js} +3 -3
- package/dist/{replies-Dqft-42v.js → replies-P7jbK6Bo.js} +2 -2
- package/dist/{reply-prefix-DkDTGwTs.js → reply-prefix-ChIeKp-P.js} +1 -1
- package/dist/{reply-prefix-CyLplifX.js → reply-prefix-xaWqfM9m.js} +1 -1
- package/dist/{resolve-route-CIA0TSsF.js → resolve-route-CIS2tjpz.js} +3 -3
- package/dist/{resolve-route-xpyI3enn.js → resolve-route-DKhx5C-P.js} +1 -1
- package/dist/{routes-xZZ99jJJ.js → routes-BJ2iXVJF.js} +10 -10
- package/dist/{rpc-BzR2wLkc.js → rpc-CSI4uFgj.js} +1 -1
- package/dist/{run-main-n0fjk-o5.js → run-main-Bzub4qvZ.js} +20 -20
- package/dist/{sandbox-DGG12SGo.js → sandbox-CQU7Gcb9.js} +18 -18
- package/dist/{sandbox-cli--d2MJPM2.js → sandbox-cli-Ci90LP_X.js} +13 -13
- package/dist/{security-cli-CeP9ss1g.js → security-cli-BfOZ_cJN.js} +28 -28
- package/dist/{send-BzUWmgQ9.js → send-BAKkoPOy.js} +7 -7
- package/dist/{send-BQJKg0bU.js → send-DulXmWcG.js} +7 -7
- package/dist/{server-context-BNbx1tUD.js → server-context-BsMQBnUG.js} +5 -5
- package/dist/{server-methods-BHg4GltA.js → server-methods-C2UnIkWU.js} +57 -57
- package/dist/{server-methods-DkZ2XtEo.js → server-methods-THO5vDXZ.js} +7 -7
- package/dist/{server-node-events-BXviL2UH.js → server-node-events-j4AWHS1m.js} +9 -9
- package/dist/{server-node-events-6dZ22EGj.js → server-node-events-mBi614x_.js} +46 -46
- package/dist/{service-9ItKCWWS.js → service-AP9pR9R5.js} +15 -15
- package/dist/{session-dirs-B6PWqKEf.js → session-dirs-Chh7bBGo.js} +2 -2
- package/dist/{session-utils-BVC8mmBv.js → session-utils-0F9pB5d6.js} +12 -12
- package/dist/{sessions-BaFVKzC2.js → sessions-DQMaURzb.js} +11 -11
- package/dist/{shared-DUmy8R4n.js → shared-4Z8Ut8Cs.js} +3 -3
- package/dist/{shared-ot5_jkpP.js → shared-DmYHvtn2.js} +1 -1
- package/dist/{skill-commands-DaNhP2Jb.js → skill-commands-Cwrebyvj.js} +5 -5
- package/dist/{skill-commands-X3T9Y9lT.js → skill-commands-DP1fshwh.js} +4 -4
- package/dist/{skill-scanner-DVq7ZopF.js → skill-scanner-qMQf6-FN.js} +5 -5
- package/dist/{skills-BMTJ2Tiq.js → skills-D0k4o0Ez.js} +6 -6
- package/dist/{skills-C_KgxpBD.js → skills-DL8DjveU.js} +4 -4
- package/dist/{skills-cli-DwYoPwkG.js → skills-cli-BkIH3HKr.js} +7 -7
- package/dist/{skills-install-U4FmCP8u.js → skills-install-C9uT4MR2.js} +3 -3
- package/dist/{skills-remote-C0gcKYWX.js → skills-remote-Db5Wwr4s.js} +3 -3
- package/dist/{skills-status-CdfQvU1h.js → skills-status-Dx3Lf5iU.js} +1 -1
- package/dist/{sqlite-C6MZhX4c.js → sqlite--aBEq1-J.js} +1 -1
- package/dist/{sqlite-BUXBg2yu.js → sqlite-DBEvS-Ne.js} +5 -5
- package/dist/{ssrf-BvjSIOlZ.js → ssrf-Dcgaqg3U.js} +9 -9
- package/dist/{status-CmoBgZ99.js → status-BtAHzMLu.js} +1 -1
- package/dist/{status-BK-ZK7SP.js → status-BuHx0FXI.js} +23 -23
- package/dist/{status-J_gR_zbh.js → status-FKqnkO3K.js} +1 -1
- package/dist/{status-BAnT_4qI.js → status-MkJRgsTJ.js} +3 -3
- package/dist/{status.update-Cvj7y384.js → status.update-CQ1vKrEg.js} +3 -3
- package/dist/{subagent-registry-CWolsN8K.js → subagent-registry-B1RgR3-0.js} +41 -218
- package/dist/{subsystem-DhOo2FZn.js → subsystem-DzRUKS9f.js} +1 -1
- package/dist/{symi-root-0MUhiNlM.js → symi-root-DueRHNOE.js} +2 -2
- package/dist/{synthesis-DTZGPpj5.js → synthesis-BEaISjwW.js} +5 -5
- package/dist/{synthesis-BSKiS446.js → synthesis-BSUjIY0v.js} +7 -7
- package/dist/{synthesis-CRQp5mTx.js → synthesis-BtlmxJ7w.js} +43 -43
- package/dist/{synthesis-D3wZX5g3.js → synthesis-DsYfiC2s.js} +28 -28
- package/dist/{system-cli-CUGyogmP.js → system-cli-5_JOcUt0.js} +7 -7
- package/dist/{systemd-8KKQdTO_.js → systemd-9LEEqibe.js} +5 -5
- package/dist/{systemd-hints-_ghBqtKo.js → systemd-hints-CeavseQh.js} +6 -6
- package/dist/{systemd-linger-CnKJZBUr.js → systemd-linger-PqG8iGCt.js} +1 -1
- package/dist/{thinking-BYtE7_UC.js → thinking-CMIo8E_E.js} +2 -2
- package/dist/{tokens-wW7opugV.js → tokens-BBh6tlmO.js} +2 -5
- package/dist/{tokens-DvvjOTxN.js → tokens-BKbemuIk.js} +1 -4
- package/dist/{tokens-CGqnWNmv.js → tokens-CJgPtOxz.js} +1 -4
- package/dist/{tokens-DJQ4rO24.js → tokens-K3kGchJA.js} +1 -4
- package/dist/{tool-loop-detection-DyZ0TWGh.js → tool-loop-detection-BR52lwOt.js} +2 -2
- package/dist/{tui-fKWqWqeq.js → tui-Bnusp3Vd.js} +7 -7
- package/dist/{tui-cli-BPOcMJ-f.js → tui-cli-BY8W9Yjm.js} +19 -19
- package/dist/{unified-runner-DftrstdI.js → unified-runner-BPyxPZv9.js} +75 -248
- package/dist/{unified-runner-Cdj1nLUh.js → unified-runner-Bn9vq7Zy.js} +132 -309
- package/dist/{update-XJWQZpV7.js → update-BvDXKE6K.js} +3 -3
- package/dist/{update-check-BdSIMYWq.js → update-check-CZxZhEXr.js} +5 -5
- package/dist/{update-cli-jQo-vg6S.js → update-cli-BXtHo0ox.js} +12 -12
- package/dist/{update-cli-D_MLjj6j.js → update-cli-DLx7LNVB.js} +75 -75
- package/dist/{update-runner-D_UHlPN0.js → update-runner-C8L4XRQb.js} +15 -15
- package/dist/{webhooks-cli-DgRLVVrD.js → webhooks-cli-CXbv4eB6.js} +4 -4
- package/dist/{with-timeout-DwVWQ2sN.js → with-timeout-C0UtpXBj.js} +1 -1
- package/dist/{workspace-OBnI5mKu.js → workspace-CsaDUuDn.js} +2 -2
- package/dist/{workspace-dirs-DStsDXra.js → workspace-dirs-gn_0yzFP.js} +1 -1
- package/dist/{wsl-DO9usEVV.js → wsl-ZWGwnnKI.js} +2 -2
- package/package.json +1 -1
- package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +0 -26
- package/dist/plugin-sdk/auto-reply/reply/middleware-heartbeat-strip.d.ts +0 -25
|
@@ -3,86 +3,86 @@ import { D as shouldLogVerbose, H as createInternalHookEvent, M as getChildLogge
|
|
|
3
3
|
import { g as resolveStateDir, u as resolveGatewayPort } from "./paths-BSzKwaxE.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-BU8jVQFM.js";
|
|
5
5
|
import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
|
|
6
|
-
import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$1, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, et as normalizeGoogleModelId, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-
|
|
6
|
+
import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$1, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, et as normalizeGoogleModelId, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-CPlXilKu.js";
|
|
7
7
|
import { t as formatCliCommand } from "./command-format-BvAkTjTI.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-B_ZVH1kE.js";
|
|
9
|
-
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-
|
|
9
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DueRHNOE.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-DKyLtSjm.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-
|
|
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-B_oqIiaD.js";
|
|
12
12
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BTNK6Tcd.js";
|
|
13
13
|
import { t as parseBooleanValue } from "./boolean-Wzu0-e0P.js";
|
|
14
14
|
import { t as isTruthyEnvValue } from "./env-B97Ms861.js";
|
|
15
|
-
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-
|
|
16
|
-
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, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, m as parseDurationMs, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-
|
|
15
|
+
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-BRM8EM4P.js";
|
|
16
|
+
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, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, m as parseDurationMs, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-CphS_6eg.js";
|
|
17
17
|
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-D7Qup2Vq.js";
|
|
18
18
|
import { a as isPathInsideWithRealpath } from "./legacy-names-C0hZiM-7.js";
|
|
19
|
-
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-
|
|
20
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
21
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
19
|
+
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-CQU7Gcb9.js";
|
|
20
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-owBWinlj.js";
|
|
21
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-BsMQBnUG.js";
|
|
22
22
|
import { l as parseFrontmatterBlock } from "./frontmatter-B6IdJ7UK.js";
|
|
23
|
-
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-
|
|
24
|
-
import { n as getMediaDir, r as saveMediaBuffer } from "./routes-
|
|
23
|
+
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-DL8DjveU.js";
|
|
24
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./routes-BJ2iXVJF.js";
|
|
25
25
|
import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-Z-WkF18Q.js";
|
|
26
|
-
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-
|
|
26
|
+
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-Dc6A9_vI.js";
|
|
27
27
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CC9kEPCT.js";
|
|
28
|
-
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-
|
|
29
|
-
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-
|
|
28
|
+
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-C-gIIp7Q.js";
|
|
29
|
+
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-DQMaURzb.js";
|
|
30
30
|
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-CnGWTXL4.js";
|
|
31
31
|
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-C_V8IAYx.js";
|
|
32
32
|
import { t as normalizeChatType } from "./chat-type-B7XD_ESN.js";
|
|
33
33
|
import { n as resolveConversationLabel } from "./conversation-label-CS5Zjc4w.js";
|
|
34
34
|
import { a as resolveSlackAccount, c as resolveSlackBotToken, n as listChannelPlugins, r as normalizeChannelId$1, s as resolveSlackAppToken, t as getChannelPlugin } from "./plugins-DuuHorqi.js";
|
|
35
|
-
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-
|
|
35
|
+
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-BAKkoPOy.js";
|
|
36
36
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CJcw9nbZ.js";
|
|
37
37
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-DsLesw6T.js";
|
|
38
38
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-Ch7wLX-j.js";
|
|
39
39
|
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-177f26eg.js";
|
|
40
|
-
import {
|
|
41
|
-
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-
|
|
40
|
+
import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-BKbemuIk.js";
|
|
41
|
+
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-63FtOVMC.js";
|
|
42
42
|
import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-CwF3MnBL.js";
|
|
43
43
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-I4x9gPY4.js";
|
|
44
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
45
|
-
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-
|
|
44
|
+
import { t as ensureSymiModelsJson } from "./models-config-CFUwiu4W.js";
|
|
45
|
+
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-1Z1j1PDI.js";
|
|
46
46
|
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-DYcv40ss.js";
|
|
47
|
-
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-
|
|
48
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-
|
|
49
|
-
import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
50
|
-
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-
|
|
51
|
-
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-
|
|
52
|
-
import { f as runTasksWithConcurrency } from "./internal-
|
|
47
|
+
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-0F9pB5d6.js";
|
|
48
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-C0UtpXBj.js";
|
|
49
|
+
import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-xaWqfM9m.js";
|
|
50
|
+
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-2OKjMT7V.js";
|
|
51
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-BQ5Wl5r-.js";
|
|
52
|
+
import { f as runTasksWithConcurrency } from "./internal-CHnZdvRy.js";
|
|
53
53
|
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-DQGU0F8t.js";
|
|
54
54
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-GTLvbzuR.js";
|
|
55
55
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CgmRK282.js";
|
|
56
56
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-DG6T0ZdL.js";
|
|
57
|
-
import { n as getDefaultMediaLocalRoots } from "./local-roots-
|
|
57
|
+
import { n as getDefaultMediaLocalRoots } from "./local-roots-JhQs5w0I.js";
|
|
58
58
|
import { i as resolveNativeSkillsEnabled, n as isRestartEnabled, r as resolveNativeCommandsEnabled, t as isCommandFlagEnabled } from "./commands-B3UrgxIz.js";
|
|
59
|
-
import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-
|
|
60
|
-
import { Rt as SESSION_LABEL_MAX_LENGTH } from "./client-
|
|
61
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-
|
|
59
|
+
import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-W2GQIywv.js";
|
|
60
|
+
import { Rt as SESSION_LABEL_MAX_LENGTH } from "./client-ZZqt0H0-.js";
|
|
61
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-Du4CT1Hp.js";
|
|
62
62
|
import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-Dr6VaTg5.js";
|
|
63
63
|
import { n as formatTimeAgo } from "./format-relative-Vm-Tqk0h.js";
|
|
64
64
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DqAyGDbE.js";
|
|
65
|
-
import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-
|
|
65
|
+
import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-Db5Wwr4s.js";
|
|
66
66
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DdkUSfiI.js";
|
|
67
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
68
|
-
import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-
|
|
69
|
-
import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-
|
|
67
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DKBhNiWm.js";
|
|
68
|
+
import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-DP1fshwh.js";
|
|
69
|
+
import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-mmeniyUt.js";
|
|
70
70
|
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-CZOc8M5w.js";
|
|
71
|
-
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-
|
|
71
|
+
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-JELuBMBi.js";
|
|
72
72
|
import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-dNgkVIEe.js";
|
|
73
73
|
import { t as formatDurationCompact$1 } from "./format-duration-DbZRICyO.js";
|
|
74
74
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-2_Os41y-.js";
|
|
75
75
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-Ca9K30TH.js";
|
|
76
76
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-DsZw7bas.js";
|
|
77
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
77
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CMVDL3Yl.js";
|
|
78
78
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BhvnarfO.js";
|
|
79
79
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BvIcXQLj.js";
|
|
80
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
80
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DKhx5C-P.js";
|
|
81
81
|
import { t as parseTimeoutMs } from "./parse-timeout-CpgyC-LD.js";
|
|
82
|
-
import { n as registerMemoryCli } from "./memory-cli-
|
|
83
|
-
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
84
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
85
|
-
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-
|
|
82
|
+
import { n as registerMemoryCli } from "./memory-cli-CmPcKzGZ.js";
|
|
83
|
+
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-P7jbK6Bo.js";
|
|
84
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BBHbN8Nh.js";
|
|
85
|
+
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-BKtw-Bqs.js";
|
|
86
86
|
import { createRequire } from "node:module";
|
|
87
87
|
import process$1 from "node:process";
|
|
88
88
|
import { fileURLToPath } from "node:url";
|
|
@@ -91,7 +91,7 @@ import path from "node:path";
|
|
|
91
91
|
import fs, { constants, existsSync, statSync } from "node:fs";
|
|
92
92
|
import os, { homedir } from "node:os";
|
|
93
93
|
import JSON5 from "json5";
|
|
94
|
-
import
|
|
94
|
+
import fs$1 from "node:fs/promises";
|
|
95
95
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
96
96
|
import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
|
|
97
97
|
import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
|
|
@@ -1057,17 +1057,11 @@ function resolveModelProfile(modelId, userProfiles) {
|
|
|
1057
1057
|
//#endregion
|
|
1058
1058
|
//#region src/gateway/outbound-filter.ts
|
|
1059
1059
|
const SILENT_REPLY_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SILENT_REPLY_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
|
|
1060
|
-
const SYMIPULSE_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SYMIPULSE_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
|
|
1061
1060
|
/** Strict-match check for the bare NO_REPLY token. */
|
|
1062
1061
|
function isBareSilentReply(text) {
|
|
1063
1062
|
if (!text) return false;
|
|
1064
1063
|
return SILENT_REPLY_BARE_RE.test(text);
|
|
1065
1064
|
}
|
|
1066
|
-
/** Strict-match check for the bare SYMIPULSE_OK token. */
|
|
1067
|
-
function isBareSymipulseAck(text) {
|
|
1068
|
-
if (!text) return false;
|
|
1069
|
-
return SYMIPULSE_BARE_RE.test(text);
|
|
1070
|
-
}
|
|
1071
1065
|
/**
|
|
1072
1066
|
* Classify an outbound assistant message at the gateway boundary.
|
|
1073
1067
|
*
|
|
@@ -1081,11 +1075,6 @@ function classifyOutboundMessage(rawText, _opts) {
|
|
|
1081
1075
|
output: "",
|
|
1082
1076
|
reason: "silent-reply-bare"
|
|
1083
1077
|
};
|
|
1084
|
-
if (isBareSymipulseAck(text)) return {
|
|
1085
|
-
action: "drop",
|
|
1086
|
-
output: "",
|
|
1087
|
-
reason: "symipulse-non-heartbeat-bare"
|
|
1088
|
-
};
|
|
1089
1078
|
return {
|
|
1090
1079
|
action: "deliver",
|
|
1091
1080
|
output: text,
|
|
@@ -1852,7 +1841,7 @@ async function imageResult(params) {
|
|
|
1852
1841
|
}, params.label, params.imageSanitization);
|
|
1853
1842
|
}
|
|
1854
1843
|
async function imageResultFromFile(params) {
|
|
1855
|
-
const buf = await
|
|
1844
|
+
const buf = await fs$1.readFile(params.path);
|
|
1856
1845
|
const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
|
|
1857
1846
|
return await imageResult({
|
|
1858
1847
|
label: params.label,
|
|
@@ -4603,8 +4592,6 @@ function buildAgentSystemPrompt(params) {
|
|
|
4603
4592
|
const reasoningLevel = params.reasoningLevel ?? "off";
|
|
4604
4593
|
const userTimezone = params.userTimezone?.trim();
|
|
4605
4594
|
const skillsPrompt = params.skillsPrompt?.trim();
|
|
4606
|
-
const heartbeatPrompt = params.heartbeatPrompt?.trim();
|
|
4607
|
-
const heartbeatPromptLine = heartbeatPrompt ? `Heartbeat prompt: ${heartbeatPrompt}` : "Heartbeat prompt: (configured)";
|
|
4608
4595
|
const runtimeInfo = params.runtimeInfo;
|
|
4609
4596
|
const runtimeChannel = runtimeInfo?.channel?.trim().toLowerCase();
|
|
4610
4597
|
const runtimeCapabilities = (runtimeInfo?.capabilities ?? []).map((cap) => String(cap).trim()).filter(Boolean);
|
|
@@ -4817,7 +4804,6 @@ function buildAgentSystemPrompt(params) {
|
|
|
4817
4804
|
for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
|
|
4818
4805
|
}
|
|
4819
4806
|
if (!isMinimal && !isCoding) lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
|
|
4820
|
-
if (!isMinimal && !isCoding) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
|
|
4821
4807
|
lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
|
|
4822
4808
|
return lines.filter(Boolean).join("\n");
|
|
4823
4809
|
}
|
|
@@ -4861,10 +4847,8 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
4861
4847
|
ownerDisplay: params.ownerDisplay,
|
|
4862
4848
|
ownerDisplaySecret: params.ownerDisplaySecret,
|
|
4863
4849
|
reasoningTagHint: params.reasoningTagHint,
|
|
4864
|
-
heartbeatPrompt: params.heartbeatPrompt,
|
|
4865
4850
|
skillsPrompt: params.skillsPrompt,
|
|
4866
4851
|
docsPath: params.docsPath,
|
|
4867
|
-
ttsHint: params.ttsHint,
|
|
4868
4852
|
workspaceNotes: params.workspaceNotes,
|
|
4869
4853
|
reactionGuidance: params.reactionGuidance,
|
|
4870
4854
|
promptMode: params.promptMode,
|
|
@@ -5730,97 +5714,6 @@ function clearSessionQueues(keys) {
|
|
|
5730
5714
|
};
|
|
5731
5715
|
}
|
|
5732
5716
|
|
|
5733
|
-
//#endregion
|
|
5734
|
-
//#region src/auto-reply/heartbeat.ts
|
|
5735
|
-
const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
|
|
5736
|
-
function stripTokenAtEdges(raw) {
|
|
5737
|
-
let text = raw.trim();
|
|
5738
|
-
if (!text) return {
|
|
5739
|
-
text: "",
|
|
5740
|
-
didStrip: false
|
|
5741
|
-
};
|
|
5742
|
-
const token = SYMIPULSE_TOKEN;
|
|
5743
|
-
const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
|
|
5744
|
-
if (!text.includes(token)) return {
|
|
5745
|
-
text,
|
|
5746
|
-
didStrip: false
|
|
5747
|
-
};
|
|
5748
|
-
let didStrip = false;
|
|
5749
|
-
let changed = true;
|
|
5750
|
-
while (changed) {
|
|
5751
|
-
changed = false;
|
|
5752
|
-
const next = text.trim();
|
|
5753
|
-
if (next.startsWith(token)) {
|
|
5754
|
-
text = next.slice(token.length).trimStart();
|
|
5755
|
-
didStrip = true;
|
|
5756
|
-
changed = true;
|
|
5757
|
-
continue;
|
|
5758
|
-
}
|
|
5759
|
-
if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
|
|
5760
|
-
const idx = next.lastIndexOf(token);
|
|
5761
|
-
const before = next.slice(0, idx).trimEnd();
|
|
5762
|
-
if (!before) text = "";
|
|
5763
|
-
else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
|
|
5764
|
-
didStrip = true;
|
|
5765
|
-
changed = true;
|
|
5766
|
-
}
|
|
5767
|
-
}
|
|
5768
|
-
return {
|
|
5769
|
-
text: text.replace(/\s+/g, " ").trim(),
|
|
5770
|
-
didStrip
|
|
5771
|
-
};
|
|
5772
|
-
}
|
|
5773
|
-
function stripHeartbeatToken(raw, opts = {}) {
|
|
5774
|
-
if (!raw) return {
|
|
5775
|
-
shouldSkip: true,
|
|
5776
|
-
text: "",
|
|
5777
|
-
didStrip: false
|
|
5778
|
-
};
|
|
5779
|
-
const trimmed = raw.trim();
|
|
5780
|
-
if (!trimmed) return {
|
|
5781
|
-
shouldSkip: true,
|
|
5782
|
-
text: "",
|
|
5783
|
-
didStrip: false
|
|
5784
|
-
};
|
|
5785
|
-
const mode = opts.mode ?? "message";
|
|
5786
|
-
const maxAckCharsRaw = opts.maxAckChars;
|
|
5787
|
-
const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
|
|
5788
|
-
const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
|
|
5789
|
-
const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/ /gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
|
|
5790
|
-
const trimmedNormalized = stripMarkup(trimmed);
|
|
5791
|
-
if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
|
|
5792
|
-
shouldSkip: false,
|
|
5793
|
-
text: trimmed,
|
|
5794
|
-
didStrip: false
|
|
5795
|
-
};
|
|
5796
|
-
const strippedOriginal = stripTokenAtEdges(trimmed);
|
|
5797
|
-
const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
|
|
5798
|
-
const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
|
|
5799
|
-
if (!picked.didStrip) return {
|
|
5800
|
-
shouldSkip: false,
|
|
5801
|
-
text: trimmed,
|
|
5802
|
-
didStrip: false
|
|
5803
|
-
};
|
|
5804
|
-
if (!picked.text) return {
|
|
5805
|
-
shouldSkip: true,
|
|
5806
|
-
text: "",
|
|
5807
|
-
didStrip: true
|
|
5808
|
-
};
|
|
5809
|
-
const rest = picked.text.trim();
|
|
5810
|
-
if (mode === "heartbeat") {
|
|
5811
|
-
if (rest.length <= maxAckChars) return {
|
|
5812
|
-
shouldSkip: true,
|
|
5813
|
-
text: "",
|
|
5814
|
-
didStrip: true
|
|
5815
|
-
};
|
|
5816
|
-
}
|
|
5817
|
-
return {
|
|
5818
|
-
shouldSkip: false,
|
|
5819
|
-
text: rest,
|
|
5820
|
-
didStrip: true
|
|
5821
|
-
};
|
|
5822
|
-
}
|
|
5823
|
-
|
|
5824
5717
|
//#endregion
|
|
5825
5718
|
//#region src/auto-reply/reply/normalize-reply.ts
|
|
5826
5719
|
function normalizeReplyPayload(payload, opts = {}) {
|
|
@@ -5841,15 +5734,6 @@ function normalizeReplyPayload(payload, opts = {}) {
|
|
|
5841
5734
|
text = "";
|
|
5842
5735
|
}
|
|
5843
5736
|
if (text && !trimmed) text = "";
|
|
5844
|
-
if ((opts.stripHeartbeat ?? true) && text?.includes(HEARTBEAT_TOKEN)) {
|
|
5845
|
-
const stripped = stripHeartbeatToken(text, { mode: "message" });
|
|
5846
|
-
if (stripped.didStrip) opts.onHeartbeatStrip?.();
|
|
5847
|
-
if (stripped.shouldSkip && !hasMedia && !hasChannelData) {
|
|
5848
|
-
opts.onSkip?.("heartbeat");
|
|
5849
|
-
return null;
|
|
5850
|
-
}
|
|
5851
|
-
text = stripped.text;
|
|
5852
|
-
}
|
|
5853
5737
|
if (text) text = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
|
|
5854
5738
|
if (!text?.trim() && !hasMedia && !hasChannelData) {
|
|
5855
5739
|
opts.onSkip?.("empty");
|
|
@@ -5860,7 +5744,7 @@ function normalizeReplyPayload(payload, opts = {}) {
|
|
|
5860
5744
|
text
|
|
5861
5745
|
};
|
|
5862
5746
|
const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix;
|
|
5863
|
-
if (effectivePrefix && text &&
|
|
5747
|
+
if (effectivePrefix && text && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
|
|
5864
5748
|
return {
|
|
5865
5749
|
...enrichedPayload,
|
|
5866
5750
|
text
|
|
@@ -5917,7 +5801,7 @@ async function routeReply(params) {
|
|
|
5917
5801
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
5918
5802
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
5919
5803
|
try {
|
|
5920
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
5804
|
+
const { deliverOutboundPayloads } = await import("./deliver-63FtOVMC.js").then((n) => n.n);
|
|
5921
5805
|
return {
|
|
5922
5806
|
ok: true,
|
|
5923
5807
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -11762,7 +11646,7 @@ var MediaAttachmentCache = class {
|
|
|
11762
11646
|
const size = await this.ensureLocalStat(entry);
|
|
11763
11647
|
if (entry.resolvedPath) {
|
|
11764
11648
|
if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
|
|
11765
|
-
const buffer = await
|
|
11649
|
+
const buffer = await fs$1.readFile(entry.resolvedPath);
|
|
11766
11650
|
entry.buffer = buffer;
|
|
11767
11651
|
entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
|
|
11768
11652
|
buffer,
|
|
@@ -11832,10 +11716,10 @@ var MediaAttachmentCache = class {
|
|
|
11832
11716
|
prefix: "symi-media",
|
|
11833
11717
|
extension: path.extname(bufferResult.fileName || "") || ""
|
|
11834
11718
|
});
|
|
11835
|
-
await
|
|
11719
|
+
await fs$1.writeFile(tmpPath, bufferResult.buffer);
|
|
11836
11720
|
entry.tempPath = tmpPath;
|
|
11837
11721
|
entry.tempCleanup = async () => {
|
|
11838
|
-
await
|
|
11722
|
+
await fs$1.unlink(tmpPath).catch(() => {});
|
|
11839
11723
|
};
|
|
11840
11724
|
return {
|
|
11841
11725
|
path: tmpPath,
|
|
@@ -11882,12 +11766,12 @@ var MediaAttachmentCache = class {
|
|
|
11882
11766
|
if (entry.statSize !== void 0) return entry.statSize;
|
|
11883
11767
|
try {
|
|
11884
11768
|
const currentPath = entry.resolvedPath;
|
|
11885
|
-
const stat = await
|
|
11769
|
+
const stat = await fs$1.stat(currentPath);
|
|
11886
11770
|
if (!stat.isFile()) {
|
|
11887
11771
|
entry.resolvedPath = void 0;
|
|
11888
11772
|
return;
|
|
11889
11773
|
}
|
|
11890
|
-
const canonicalPath = await
|
|
11774
|
+
const canonicalPath = await fs$1.realpath(currentPath).catch(() => currentPath);
|
|
11891
11775
|
if (!isInboundPathAllowed({
|
|
11892
11776
|
filePath: canonicalPath,
|
|
11893
11777
|
roots: await this.getCanonicalLocalPathRoots()
|
|
@@ -11909,7 +11793,7 @@ var MediaAttachmentCache = class {
|
|
|
11909
11793
|
if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
|
|
11910
11794
|
this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
|
|
11911
11795
|
if (root.includes("*")) return root;
|
|
11912
|
-
return await
|
|
11796
|
+
return await fs$1.realpath(root).catch(() => root);
|
|
11913
11797
|
}))))();
|
|
11914
11798
|
return await this.canonicalLocalPathRoots;
|
|
11915
11799
|
}
|
|
@@ -11980,7 +11864,7 @@ function formatAudioTranscripts(outputs) {
|
|
|
11980
11864
|
async function fileExists(filePath) {
|
|
11981
11865
|
if (!filePath) return false;
|
|
11982
11866
|
try {
|
|
11983
|
-
await
|
|
11867
|
+
await fs$1.stat(filePath);
|
|
11984
11868
|
return true;
|
|
11985
11869
|
} catch {
|
|
11986
11870
|
return false;
|
|
@@ -12080,7 +11964,7 @@ async function resolveCliOutput(params) {
|
|
|
12080
11964
|
const commandId = commandBase(params.command);
|
|
12081
11965
|
const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
|
|
12082
11966
|
if (fileOutput && await fileExists(fileOutput)) try {
|
|
12083
|
-
const content = await
|
|
11967
|
+
const content = await fs$1.readFile(fileOutput, "utf8");
|
|
12084
11968
|
if (content.trim()) return content.trim();
|
|
12085
11969
|
} catch {}
|
|
12086
11970
|
if (commandId === "gemini") {
|
|
@@ -12371,7 +12255,7 @@ async function runCliEntry(params) {
|
|
|
12371
12255
|
maxBytes,
|
|
12372
12256
|
timeoutMs
|
|
12373
12257
|
});
|
|
12374
|
-
const outputDir = await
|
|
12258
|
+
const outputDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
|
|
12375
12259
|
const mediaPath = pathResult.path;
|
|
12376
12260
|
const outputBase = path.join(outputDir, path.parse(mediaPath).name);
|
|
12377
12261
|
const templCtx = {
|
|
@@ -12405,7 +12289,7 @@ async function runCliEntry(params) {
|
|
|
12405
12289
|
model: command
|
|
12406
12290
|
};
|
|
12407
12291
|
} finally {
|
|
12408
|
-
await
|
|
12292
|
+
await fs$1.rm(outputDir, {
|
|
12409
12293
|
recursive: true,
|
|
12410
12294
|
force: true
|
|
12411
12295
|
}).catch(() => {});
|
|
@@ -12449,9 +12333,9 @@ function candidateBinaryNames(name) {
|
|
|
12449
12333
|
}
|
|
12450
12334
|
async function isExecutable$1(filePath) {
|
|
12451
12335
|
try {
|
|
12452
|
-
if (!(await
|
|
12336
|
+
if (!(await fs$1.stat(filePath)).isFile()) return false;
|
|
12453
12337
|
if (process.platform === "win32") return true;
|
|
12454
|
-
await
|
|
12338
|
+
await fs$1.access(filePath, constants.X_OK);
|
|
12455
12339
|
return true;
|
|
12456
12340
|
} catch {
|
|
12457
12341
|
return false;
|
|
@@ -14155,7 +14039,7 @@ async function createModelSelectionState(params) {
|
|
|
14155
14039
|
}
|
|
14156
14040
|
}
|
|
14157
14041
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14158
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14042
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-CPlXilKu.js").then((n) => n.t);
|
|
14159
14043
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14160
14044
|
const providerKey = normalizeProviderId(provider);
|
|
14161
14045
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -17299,7 +17183,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
17299
17183
|
cwd: process.cwd(),
|
|
17300
17184
|
root: params.sandbox.workspaceDir
|
|
17301
17185
|
});
|
|
17302
|
-
if (!(await
|
|
17186
|
+
if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
17303
17187
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
17304
17188
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
17305
17189
|
return {
|
|
@@ -18313,13 +18197,13 @@ async function validateScriptFileForShellBleed(params) {
|
|
|
18313
18197
|
cwd: params.workdir,
|
|
18314
18198
|
root: params.workdir
|
|
18315
18199
|
});
|
|
18316
|
-
stat = await
|
|
18200
|
+
stat = await fs$1.stat(absPath);
|
|
18317
18201
|
} catch {
|
|
18318
18202
|
return;
|
|
18319
18203
|
}
|
|
18320
18204
|
if (!stat.isFile()) return;
|
|
18321
18205
|
if (stat.size > 512 * 1024) return;
|
|
18322
|
-
const content = await
|
|
18206
|
+
const content = await fs$1.readFile(absPath, "utf-8");
|
|
18323
18207
|
const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
|
|
18324
18208
|
if (first) {
|
|
18325
18209
|
const idx = first.index;
|
|
@@ -20755,7 +20639,6 @@ async function resolveCommandsSystemPromptBundle(params) {
|
|
|
20755
20639
|
userTimeFormat,
|
|
20756
20640
|
contextFiles: injectedFiles,
|
|
20757
20641
|
skillsPrompt,
|
|
20758
|
-
heartbeatPrompt: void 0,
|
|
20759
20642
|
runtimeInfo,
|
|
20760
20643
|
sandboxInfo,
|
|
20761
20644
|
memoryCitationsMode: params.cfg?.memory?.citations
|
|
@@ -22996,7 +22879,7 @@ async function handleCommands(params) {
|
|
|
22996
22879
|
try {
|
|
22997
22880
|
const messages = [];
|
|
22998
22881
|
if (sessionFile) {
|
|
22999
|
-
const content = await
|
|
22882
|
+
const content = await fs$1.readFile(sessionFile, "utf-8");
|
|
23000
22883
|
for (const line of content.split("\n")) {
|
|
23001
22884
|
if (!line.trim()) continue;
|
|
23002
22885
|
try {
|
|
@@ -25183,7 +25066,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25183
25066
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
|
|
25184
25067
|
throw new Error("jsonlPath outside allowed roots");
|
|
25185
25068
|
}
|
|
25186
|
-
const canonical = await
|
|
25069
|
+
const canonical = await fs$1.realpath(resolved).catch(() => resolved);
|
|
25187
25070
|
if (!isInboundPathAllowed({
|
|
25188
25071
|
filePath: canonical,
|
|
25189
25072
|
roots
|
|
@@ -25191,7 +25074,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
25191
25074
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
|
|
25192
25075
|
throw new Error("jsonlPath outside allowed roots");
|
|
25193
25076
|
}
|
|
25194
|
-
return await
|
|
25077
|
+
return await fs$1.readFile(canonical, "utf8");
|
|
25195
25078
|
}
|
|
25196
25079
|
const CanvasToolSchema = Type.Object({
|
|
25197
25080
|
action: stringEnum(CANVAS_ACTIONS),
|
|
@@ -26734,7 +26617,7 @@ async function hydrateAttachmentPayload(params) {
|
|
|
26734
26617
|
accountId: params.accountId
|
|
26735
26618
|
}),
|
|
26736
26619
|
sandboxValidated: true,
|
|
26737
|
-
readFile: (filePath) =>
|
|
26620
|
+
readFile: (filePath) => fs$1.readFile(filePath)
|
|
26738
26621
|
});
|
|
26739
26622
|
params.args.buffer = media.buffer.toString("base64");
|
|
26740
26623
|
if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
|
|
@@ -33228,7 +33111,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
33228
33111
|
return;
|
|
33229
33112
|
}
|
|
33230
33113
|
try {
|
|
33231
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33114
|
+
const { deliverOutboundPayloads } = await import("./deliver-63FtOVMC.js").then((n) => n.n);
|
|
33232
33115
|
await deliverOutboundPayloads({
|
|
33233
33116
|
cfg: params.cfg,
|
|
33234
33117
|
channel,
|
|
@@ -33633,7 +33516,7 @@ async function stageSandboxMedia(params) {
|
|
|
33633
33516
|
};
|
|
33634
33517
|
try {
|
|
33635
33518
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
33636
|
-
await
|
|
33519
|
+
await fs$1.mkdir(destDir, { recursive: true });
|
|
33637
33520
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
33638
33521
|
cfg,
|
|
33639
33522
|
accountId: ctx.AccountId
|
|
@@ -33683,7 +33566,7 @@ async function stageSandboxMedia(params) {
|
|
|
33683
33566
|
usedNames.add(fileName);
|
|
33684
33567
|
const dest = path.join(destDir, fileName);
|
|
33685
33568
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
33686
|
-
else await
|
|
33569
|
+
else await fs$1.copyFile(source, dest);
|
|
33687
33570
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
33688
33571
|
staged.set(source, stagedPath);
|
|
33689
33572
|
}
|
|
@@ -34736,54 +34619,6 @@ function withFastAbort(opts) {
|
|
|
34736
34619
|
};
|
|
34737
34620
|
}
|
|
34738
34621
|
|
|
34739
|
-
//#endregion
|
|
34740
|
-
//#region src/auto-reply/reply/middleware-heartbeat-strip.ts
|
|
34741
|
-
/**
|
|
34742
|
-
* Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
|
|
34743
|
-
* replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
|
|
34744
|
-
* decide whether to strip; reads `payload.isError` to give the sanitizer
|
|
34745
|
-
* the right context flag.
|
|
34746
|
-
*
|
|
34747
|
-
* Equivalence claim (proven by tests): for every input shape the chain's
|
|
34748
|
-
* `normalizeStreamingText({text})` would have produced `{ skip, text }`,
|
|
34749
|
-
* this middleware produces the corresponding `PayloadDelivery`:
|
|
34750
|
-
*
|
|
34751
|
-
* skip=true → delivered=false (drop)
|
|
34752
|
-
* skip=false, text=undefined → delivered=true with payload.text undefined
|
|
34753
|
-
* (media-only carry-through case)
|
|
34754
|
-
* skip=false, text=string → delivered=true with payload.text=sanitized
|
|
34755
|
-
*/
|
|
34756
|
-
function withHeartbeatStrip(opts) {
|
|
34757
|
-
let didLogStrip = false;
|
|
34758
|
-
return (next) => async (payload, ctx) => {
|
|
34759
|
-
let text = payload.text;
|
|
34760
|
-
const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
|
|
34761
|
-
if (typeof text === "string" && text.includes("SYMIPULSE_OK")) {
|
|
34762
|
-
const stripped = stripHeartbeatToken(text, { mode: "message" });
|
|
34763
|
-
if (stripped.didStrip && !didLogStrip) {
|
|
34764
|
-
didLogStrip = true;
|
|
34765
|
-
opts?.onStrip?.();
|
|
34766
|
-
}
|
|
34767
|
-
if (stripped.shouldSkip && !hasMedia) return PayloadDelivery.drop(payload, "drop:heartbeat-token-bare");
|
|
34768
|
-
text = stripped.text;
|
|
34769
|
-
}
|
|
34770
|
-
if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return PayloadDelivery.drop(payload, "drop:silent-reply");
|
|
34771
|
-
if (!text) {
|
|
34772
|
-
if (hasMedia) return next({
|
|
34773
|
-
...payload,
|
|
34774
|
-
text: void 0
|
|
34775
|
-
}, ctx);
|
|
34776
|
-
return PayloadDelivery.drop(payload, "drop:empty");
|
|
34777
|
-
}
|
|
34778
|
-
const sanitized = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
|
|
34779
|
-
if (!sanitized.trim()) return PayloadDelivery.drop(payload, "drop:empty-after-sanitize");
|
|
34780
|
-
return next({
|
|
34781
|
-
...payload,
|
|
34782
|
-
text: sanitized
|
|
34783
|
-
}, ctx);
|
|
34784
|
-
};
|
|
34785
|
-
}
|
|
34786
|
-
|
|
34787
34622
|
//#endregion
|
|
34788
34623
|
//#region src/infra/map-size.ts
|
|
34789
34624
|
function pruneMapToMaxSize(map, maxSize) {
|
|
@@ -35059,25 +34894,22 @@ function withToolResultSerialization(opts) {
|
|
|
35059
34894
|
* session transcript after the inner runner completes.
|
|
35060
34895
|
*
|
|
35061
34896
|
* Skip conditions:
|
|
35062
|
-
* - outbound.action === "drop" (NO_REPLY
|
|
34897
|
+
* - outbound.action === "drop" (NO_REPLY — no message)
|
|
35063
34898
|
* - empty / whitespace-only text
|
|
35064
|
-
* - outbound.action === "deliver-stripped" AND includeStripped=false
|
|
35065
34899
|
*
|
|
35066
34900
|
* The middleware does NOT mutate the turn result — the append is a
|
|
35067
34901
|
* post-turn side effect. The result is returned unchanged regardless of
|
|
35068
34902
|
* append success/failure.
|
|
35069
34903
|
*/
|
|
35070
34904
|
function withTranscriptUpdate(opts) {
|
|
35071
|
-
const includeStripped = opts.includeStripped !== false;
|
|
35072
34905
|
return (next) => async (params) => {
|
|
35073
34906
|
const result = await next(params);
|
|
35074
|
-
if (shouldAppend(result
|
|
34907
|
+
if (shouldAppend(result)) await runAppend(opts, params, result);
|
|
35075
34908
|
return result;
|
|
35076
34909
|
};
|
|
35077
34910
|
}
|
|
35078
|
-
function shouldAppend(result
|
|
34911
|
+
function shouldAppend(result) {
|
|
35079
34912
|
if (result.outbound.action === "drop") return false;
|
|
35080
|
-
if (result.outbound.action === "deliver-stripped" && !includeStripped) return false;
|
|
35081
34913
|
return (typeof result.text === "string" ? result.text.trim() : "").length > 0;
|
|
35082
34914
|
}
|
|
35083
34915
|
async function runAppend(opts, params, result) {
|
|
@@ -35161,7 +34993,6 @@ function buildChannelProfile(opts) {
|
|
|
35161
34993
|
],
|
|
35162
34994
|
payloadMiddlewares: [
|
|
35163
34995
|
withPayloadDropOnEmpty(),
|
|
35164
|
-
withHeartbeatStrip(),
|
|
35165
34996
|
...opts.typingSignaler ? [withTypingSignals({ signaler: opts.typingSignaler })] : [],
|
|
35166
34997
|
withToolResultSerialization(),
|
|
35167
34998
|
withChannelRouting({
|
|
@@ -35190,11 +35021,7 @@ function buildGlassUiProfile(opts) {
|
|
|
35190
35021
|
withModelFallback(),
|
|
35191
35022
|
...opts.transcriptAppender ? [withTranscriptUpdate({ appender: opts.transcriptAppender })] : []
|
|
35192
35023
|
],
|
|
35193
|
-
payloadMiddlewares: [
|
|
35194
|
-
withPayloadDropOnEmpty(),
|
|
35195
|
-
withHeartbeatStrip(),
|
|
35196
|
-
withToolResultSerialization()
|
|
35197
|
-
],
|
|
35024
|
+
payloadMiddlewares: [withPayloadDropOnEmpty(), withToolResultSerialization()],
|
|
35198
35025
|
payloadHandler: createReplyDispatcherHandler(opts.dispatcher)
|
|
35199
35026
|
};
|
|
35200
35027
|
}
|
|
@@ -35335,7 +35162,6 @@ function normalizeReplyPayloadInternal(payload, opts) {
|
|
|
35335
35162
|
return normalizeReplyPayload(payload, {
|
|
35336
35163
|
responsePrefix: opts.responsePrefix,
|
|
35337
35164
|
responsePrefixContext: prefixContext,
|
|
35338
|
-
onHeartbeatStrip: opts.onHeartbeatStrip,
|
|
35339
35165
|
onSkip: opts.onSkip
|
|
35340
35166
|
});
|
|
35341
35167
|
}
|
|
@@ -35358,7 +35184,6 @@ function createReplyDispatcher(options) {
|
|
|
35358
35184
|
responsePrefix: options.responsePrefix,
|
|
35359
35185
|
responsePrefixContext: options.responsePrefixContext,
|
|
35360
35186
|
responsePrefixContextProvider: options.responsePrefixContextProvider,
|
|
35361
|
-
onHeartbeatStrip: options.onHeartbeatStrip,
|
|
35362
35187
|
onSkip: (reason) => options.onSkip?.(payload, {
|
|
35363
35188
|
kind,
|
|
35364
35189
|
reason
|
|
@@ -39052,7 +38877,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
39052
38877
|
}
|
|
39053
38878
|
let commandsRegistry;
|
|
39054
38879
|
async function getCommandsRegistry() {
|
|
39055
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
38880
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-W2GQIywv.js").then((n) => n.t);
|
|
39056
38881
|
return commandsRegistry;
|
|
39057
38882
|
}
|
|
39058
38883
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -39394,11 +39219,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39394
39219
|
const channelName = channelInfo?.name;
|
|
39395
39220
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
39396
39221
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
39397
|
-
import("./resolve-route-
|
|
39222
|
+
import("./resolve-route-DKhx5C-P.js").then((n) => n.r),
|
|
39398
39223
|
import("./inbound-context-DqAyGDbE.js").then((n) => n.n),
|
|
39399
39224
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
39400
39225
|
]);
|
|
39401
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CS5Zjc4w.js").then((n) => n.t), import("./reply-prefix-
|
|
39226
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CS5Zjc4w.js").then((n) => n.t), import("./reply-prefix-xaWqfM9m.js").then((n) => n.n)]);
|
|
39402
39227
|
const route = resolveAgentRoute({
|
|
39403
39228
|
cfg,
|
|
39404
39229
|
channel: "slack",
|
|
@@ -39455,7 +39280,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39455
39280
|
});
|
|
39456
39281
|
const deliverSlashPayloads = async (replies) => {
|
|
39457
39282
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
39458
|
-
import("./replies-
|
|
39283
|
+
import("./replies-P7jbK6Bo.js").then((n) => n.r),
|
|
39459
39284
|
import("./chunk-DQGU0F8t.js").then((n) => n.s),
|
|
39460
39285
|
import("./markdown-tables-GTLvbzuR.js").then((n) => n.t)
|
|
39461
39286
|
]);
|
|
@@ -39510,7 +39335,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39510
39335
|
let nativeCommands = [];
|
|
39511
39336
|
if (nativeEnabled) {
|
|
39512
39337
|
reg = await getCommandsRegistry();
|
|
39513
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
39338
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DP1fshwh.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
39514
39339
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
39515
39340
|
skillCommands,
|
|
39516
39341
|
provider: "slack"
|
|
@@ -40643,7 +40468,7 @@ function resolvePluginTools(params) {
|
|
|
40643
40468
|
//#endregion
|
|
40644
40469
|
//#region src/agents/apply-patch-update.ts
|
|
40645
40470
|
async function defaultReadFile(filePath) {
|
|
40646
|
-
return
|
|
40471
|
+
return fs$1.readFile(filePath, "utf8");
|
|
40647
40472
|
}
|
|
40648
40473
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
40649
40474
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -40887,10 +40712,10 @@ function resolvePatchFileOps(options) {
|
|
|
40887
40712
|
};
|
|
40888
40713
|
}
|
|
40889
40714
|
return {
|
|
40890
|
-
readFile: (filePath) =>
|
|
40891
|
-
writeFile: (filePath, content) =>
|
|
40892
|
-
remove: (filePath) =>
|
|
40893
|
-
mkdirp: (dir) =>
|
|
40715
|
+
readFile: (filePath) => fs$1.readFile(filePath, "utf8"),
|
|
40716
|
+
writeFile: (filePath, content) => fs$1.writeFile(filePath, content, "utf8"),
|
|
40717
|
+
remove: (filePath) => fs$1.rm(filePath),
|
|
40718
|
+
mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
|
|
40894
40719
|
};
|
|
40895
40720
|
}
|
|
40896
40721
|
async function ensureDir(filePath, ops) {
|
|
@@ -42057,7 +41882,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
42057
41882
|
};
|
|
42058
41883
|
let content;
|
|
42059
41884
|
try {
|
|
42060
|
-
content = await
|
|
41885
|
+
content = await fs$1.readFile(sessionFile, "utf-8");
|
|
42061
41886
|
} catch (err) {
|
|
42062
41887
|
if (err?.code === "ENOENT") return {
|
|
42063
41888
|
repaired: false,
|
|
@@ -42105,15 +41930,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
42105
41930
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
42106
41931
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
42107
41932
|
try {
|
|
42108
|
-
const stat = await
|
|
42109
|
-
await
|
|
42110
|
-
if (stat) await
|
|
42111
|
-
await
|
|
42112
|
-
if (stat) await
|
|
42113
|
-
await
|
|
41933
|
+
const stat = await fs$1.stat(sessionFile).catch(() => null);
|
|
41934
|
+
await fs$1.writeFile(backupPath, content, "utf-8");
|
|
41935
|
+
if (stat) await fs$1.chmod(backupPath, stat.mode);
|
|
41936
|
+
await fs$1.writeFile(tmpPath, cleaned, "utf-8");
|
|
41937
|
+
if (stat) await fs$1.chmod(tmpPath, stat.mode);
|
|
41938
|
+
await fs$1.rename(tmpPath, sessionFile);
|
|
42114
41939
|
} catch (err) {
|
|
42115
41940
|
try {
|
|
42116
|
-
await
|
|
41941
|
+
await fs$1.unlink(tmpPath);
|
|
42117
41942
|
} catch (cleanupErr) {
|
|
42118
41943
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
42119
41944
|
}
|
|
@@ -43386,7 +43211,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
43386
43211
|
if (!isSessionManagerCacheEnabled()) return;
|
|
43387
43212
|
if (isSessionManagerCached(sessionFile)) return;
|
|
43388
43213
|
try {
|
|
43389
|
-
const handle = await
|
|
43214
|
+
const handle = await fs$1.open(sessionFile, "r");
|
|
43390
43215
|
try {
|
|
43391
43216
|
const buffer = Buffer$1.alloc(4096);
|
|
43392
43217
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -43526,7 +43351,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43526
43351
|
} catch (err) {
|
|
43527
43352
|
return fail(describeUnknownError(err));
|
|
43528
43353
|
}
|
|
43529
|
-
await
|
|
43354
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
43530
43355
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
43531
43356
|
const sandbox = await resolveSandboxContext({
|
|
43532
43357
|
config: params.config,
|
|
@@ -43534,7 +43359,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43534
43359
|
workspaceDir: resolvedWorkspace
|
|
43535
43360
|
});
|
|
43536
43361
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
43537
|
-
await
|
|
43362
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
43538
43363
|
await ensureSessionHeader({
|
|
43539
43364
|
sessionFile: params.sessionFile,
|
|
43540
43365
|
sessionId: params.sessionId,
|
|
@@ -43650,7 +43475,6 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43650
43475
|
ownerDisplay: params.config?.commands?.ownerDisplay,
|
|
43651
43476
|
ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
|
|
43652
43477
|
reasoningTagHint,
|
|
43653
|
-
heartbeatPrompt: void 0,
|
|
43654
43478
|
skillsPrompt,
|
|
43655
43479
|
docsPath: docsPath ?? void 0,
|
|
43656
43480
|
promptMode,
|
|
@@ -43860,12 +43684,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
43860
43684
|
const existing = writers.get(filePath);
|
|
43861
43685
|
if (existing) return existing;
|
|
43862
43686
|
const dir = path.dirname(filePath);
|
|
43863
|
-
const ready =
|
|
43687
|
+
const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
43864
43688
|
let queue = Promise.resolve();
|
|
43865
43689
|
const writer = {
|
|
43866
43690
|
filePath,
|
|
43867
43691
|
write: (line) => {
|
|
43868
|
-
queue = queue.then(() => ready).then(() =>
|
|
43692
|
+
queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
43869
43693
|
}
|
|
43870
43694
|
};
|
|
43871
43695
|
writers.set(filePath, writer);
|
|
@@ -44106,6 +43930,31 @@ function createCacheTrace(params) {
|
|
|
44106
43930
|
};
|
|
44107
43931
|
}
|
|
44108
43932
|
|
|
43933
|
+
//#endregion
|
|
43934
|
+
//#region src/agents/idle-timeout.ts
|
|
43935
|
+
/**
|
|
43936
|
+
* Per-run idle timeout resolution.
|
|
43937
|
+
*
|
|
43938
|
+
* The idle timer resets on every model/tool activity signal (streaming
|
|
43939
|
+
* chunk, tool execution, compaction, etc.). It fires only when the run is
|
|
43940
|
+
* truly idle — distinguishing "model working slowly on large context" from
|
|
43941
|
+
* "model stuck / connection lost".
|
|
43942
|
+
*/
|
|
43943
|
+
const DEFAULT_IDLE_RATIO = .5;
|
|
43944
|
+
const MIN_IDLE_MS = 12e4;
|
|
43945
|
+
const MAX_IDLE_MS = 9e5;
|
|
43946
|
+
const ABSOLUTE_MIN_IDLE_MS = 3e4;
|
|
43947
|
+
const normalizeNumber = (value) => typeof value === "number" && Number.isFinite(value) ? Math.floor(value) : void 0;
|
|
43948
|
+
function resolveIdleTimeoutMs(opts) {
|
|
43949
|
+
const cap = Math.max(ABSOLUTE_MIN_IDLE_MS, opts.runTimeoutMs - 1e3);
|
|
43950
|
+
const modelMs = normalizeNumber(opts.modelSeconds != null ? opts.modelSeconds * 1e3 : void 0);
|
|
43951
|
+
if (modelMs !== void 0 && modelMs > 0) return Math.min(Math.max(modelMs, ABSOLUTE_MIN_IDLE_MS), cap);
|
|
43952
|
+
const configMs = normalizeNumber(opts.configSeconds != null ? opts.configSeconds * 1e3 : void 0);
|
|
43953
|
+
if (configMs !== void 0 && configMs > 0) return Math.min(Math.max(configMs, ABSOLUTE_MIN_IDLE_MS), cap);
|
|
43954
|
+
const computed = Math.floor(opts.runTimeoutMs * DEFAULT_IDLE_RATIO);
|
|
43955
|
+
return Math.min(Math.max(computed, MIN_IDLE_MS), Math.min(MAX_IDLE_MS, cap));
|
|
43956
|
+
}
|
|
43957
|
+
|
|
44109
43958
|
//#endregion
|
|
44110
43959
|
//#region src/agents/model-token-filter.ts
|
|
44111
43960
|
/**
|
|
@@ -47020,7 +46869,7 @@ Use the message tool with buttons:
|
|
|
47020
46869
|
*/
|
|
47021
46870
|
async function readSessionFile(sessionFile) {
|
|
47022
46871
|
try {
|
|
47023
|
-
return await
|
|
46872
|
+
return await fs$1.readFile(sessionFile, "utf-8");
|
|
47024
46873
|
} catch {
|
|
47025
46874
|
return null;
|
|
47026
46875
|
}
|
|
@@ -47029,8 +46878,8 @@ async function writeAtomically(sessionFile, text) {
|
|
|
47029
46878
|
const dir = path.dirname(sessionFile);
|
|
47030
46879
|
const base = path.basename(sessionFile);
|
|
47031
46880
|
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
47032
|
-
await
|
|
47033
|
-
await
|
|
46881
|
+
await fs$1.writeFile(tmp, text, "utf-8");
|
|
46882
|
+
await fs$1.rename(tmp, sessionFile);
|
|
47034
46883
|
}
|
|
47035
46884
|
/**
|
|
47036
46885
|
* Remove empty assistant JSONL entries from the session file.
|
|
@@ -47132,7 +46981,7 @@ function isInPoisonRange(version) {
|
|
|
47132
46981
|
*/
|
|
47133
46982
|
async function checkSessionPoison(sessionFile) {
|
|
47134
46983
|
try {
|
|
47135
|
-
const firstLine = (await
|
|
46984
|
+
const firstLine = (await fs$1.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
47136
46985
|
if (!firstLine) return null;
|
|
47137
46986
|
const header = JSON.parse(firstLine);
|
|
47138
46987
|
if (header.type !== "session") return null;
|
|
@@ -47150,7 +46999,7 @@ async function checkSessionPoison(sessionFile) {
|
|
|
47150
46999
|
*/
|
|
47151
47000
|
async function archivePoisonedSession(sessionFile) {
|
|
47152
47001
|
const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
47153
|
-
await
|
|
47002
|
+
await fs$1.rename(sessionFile, archiveName);
|
|
47154
47003
|
return archiveName;
|
|
47155
47004
|
}
|
|
47156
47005
|
/**
|
|
@@ -47159,14 +47008,14 @@ async function archivePoisonedSession(sessionFile) {
|
|
|
47159
47008
|
*/
|
|
47160
47009
|
async function stampSessionVersion(sessionFile) {
|
|
47161
47010
|
try {
|
|
47162
|
-
const lines = (await
|
|
47011
|
+
const lines = (await fs$1.readFile(sessionFile, "utf-8")).split("\n");
|
|
47163
47012
|
if (lines.length === 0) return;
|
|
47164
47013
|
const header = JSON.parse(lines[0]);
|
|
47165
47014
|
if (header.type !== "session") return;
|
|
47166
47015
|
if (header.symiVersion === VERSION) return;
|
|
47167
47016
|
header.symiVersion = VERSION;
|
|
47168
47017
|
lines[0] = JSON.stringify(header);
|
|
47169
|
-
await
|
|
47018
|
+
await fs$1.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
47170
47019
|
} catch {}
|
|
47171
47020
|
}
|
|
47172
47021
|
/**
|
|
@@ -47268,31 +47117,6 @@ function hasRepetition(text, minBlockSize) {
|
|
|
47268
47117
|
return text.indexOf(sample, searchStart) >= 0;
|
|
47269
47118
|
}
|
|
47270
47119
|
|
|
47271
|
-
//#endregion
|
|
47272
|
-
//#region src/agents/symipulse-timeout.ts
|
|
47273
|
-
/**
|
|
47274
|
-
* Symipulse inactivity timeout resolution.
|
|
47275
|
-
*
|
|
47276
|
-
* The symipulse timer resets on every model/tool activity signal (streaming
|
|
47277
|
-
* chunk, tool execution, compaction, etc.). It fires only when the run is
|
|
47278
|
-
* truly idle — distinguishing "model working slowly on large context" from
|
|
47279
|
-
* "model stuck / connection lost".
|
|
47280
|
-
*/
|
|
47281
|
-
const DEFAULT_SYMIPULSE_RATIO = .5;
|
|
47282
|
-
const MIN_SYMIPULSE_MS = 12e4;
|
|
47283
|
-
const MAX_SYMIPULSE_MS = 9e5;
|
|
47284
|
-
const SYMIPULSE_MIN_TIMEOUT_MS = 3e4;
|
|
47285
|
-
const normalizeNumber = (value) => typeof value === "number" && Number.isFinite(value) ? Math.floor(value) : void 0;
|
|
47286
|
-
function resolveSymipulseMs(opts) {
|
|
47287
|
-
const cap = Math.max(SYMIPULSE_MIN_TIMEOUT_MS, opts.runTimeoutMs - 1e3);
|
|
47288
|
-
const modelMs = normalizeNumber(opts.modelSeconds != null ? opts.modelSeconds * 1e3 : void 0);
|
|
47289
|
-
if (modelMs !== void 0 && modelMs > 0) return Math.min(Math.max(modelMs, SYMIPULSE_MIN_TIMEOUT_MS), cap);
|
|
47290
|
-
const configMs = normalizeNumber(opts.configSeconds != null ? opts.configSeconds * 1e3 : void 0);
|
|
47291
|
-
if (configMs !== void 0 && configMs > 0) return Math.min(Math.max(configMs, SYMIPULSE_MIN_TIMEOUT_MS), cap);
|
|
47292
|
-
const computed = Math.floor(opts.runTimeoutMs * DEFAULT_SYMIPULSE_RATIO);
|
|
47293
|
-
return Math.min(Math.max(computed, MIN_SYMIPULSE_MS), Math.min(MAX_SYMIPULSE_MS, cap));
|
|
47294
|
-
}
|
|
47295
|
-
|
|
47296
47120
|
//#endregion
|
|
47297
47121
|
//#region src/agents/pi-embedded-runner/abort.ts
|
|
47298
47122
|
/**
|
|
@@ -47420,7 +47244,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
47420
47244
|
return;
|
|
47421
47245
|
}
|
|
47422
47246
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
47423
|
-
await
|
|
47247
|
+
await fs$1.writeFile(params.sessionFile, "", "utf-8");
|
|
47424
47248
|
sm.fileEntries = [header];
|
|
47425
47249
|
sm.byId?.clear?.();
|
|
47426
47250
|
sm.labelsById?.clear?.();
|
|
@@ -47978,7 +47802,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47978
47802
|
const prevCwd = process.cwd();
|
|
47979
47803
|
const runAbortController = new AbortController();
|
|
47980
47804
|
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"}`);
|
|
47981
|
-
await
|
|
47805
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
47982
47806
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
47983
47807
|
const sandbox = await resolveSandboxContext({
|
|
47984
47808
|
config: params.config,
|
|
@@ -47986,7 +47810,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47986
47810
|
workspaceDir: resolvedWorkspace
|
|
47987
47811
|
});
|
|
47988
47812
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
47989
|
-
await
|
|
47813
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
47990
47814
|
let restoreSkillEnv;
|
|
47991
47815
|
process.chdir(effectiveWorkspace);
|
|
47992
47816
|
try {
|
|
@@ -48124,7 +47948,6 @@ async function runEmbeddedAttempt(params) {
|
|
|
48124
47948
|
ownerDisplay: params.config?.commands?.ownerDisplay,
|
|
48125
47949
|
ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
|
|
48126
47950
|
reasoningTagHint,
|
|
48127
|
-
heartbeatPrompt: void 0,
|
|
48128
47951
|
skillsPrompt,
|
|
48129
47952
|
docsPath: docsPath ?? void 0,
|
|
48130
47953
|
workspaceNotes,
|
|
@@ -48196,7 +48019,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48196
48019
|
sessionFile: params.sessionFile,
|
|
48197
48020
|
warn: (message) => log$7.warn(message)
|
|
48198
48021
|
});
|
|
48199
|
-
const hadSessionFile = await
|
|
48022
|
+
const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
48200
48023
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
48201
48024
|
modelApi: params.model?.api,
|
|
48202
48025
|
provider: params.provider,
|
|
@@ -48431,7 +48254,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48431
48254
|
if (!key) return null;
|
|
48432
48255
|
return (params.config?.agents?.defaults?.models)?.[key]?.symipulseSeconds ?? null;
|
|
48433
48256
|
};
|
|
48434
|
-
const symipulseMs = params.symipulseMs ??
|
|
48257
|
+
const symipulseMs = params.symipulseMs ?? resolveIdleTimeoutMs({
|
|
48435
48258
|
runTimeoutMs: params.timeoutMs,
|
|
48436
48259
|
configSeconds: params.config?.agents?.defaults?.symipulseSeconds,
|
|
48437
48260
|
modelSeconds: resolveModelSymipulseSeconds()
|
|
@@ -49288,7 +49111,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
49288
49111
|
}
|
|
49289
49112
|
runLoopIterations += 1;
|
|
49290
49113
|
attemptedThinking.add(thinkLevel);
|
|
49291
|
-
await
|
|
49114
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
49292
49115
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
49293
49116
|
const attempt = await runEmbeddedAttempt({
|
|
49294
49117
|
sessionId: params.sessionId,
|
|
@@ -50010,4 +49833,4 @@ async function runAgentTurn(params) {
|
|
|
50010
49833
|
}
|
|
50011
49834
|
|
|
50012
49835
|
//#endregion
|
|
50013
|
-
export { applyBrowserProxyPaths as $,
|
|
49836
|
+
export { applyBrowserProxyPaths as $, getAgentRunContext as $t, normalizePollInput as A, estimateBase64DecodedBytes as At, normalizeOptionalText as B, countActiveRunsForSession as Bt, listTasksInWorkdir as C, classifyOutboundMessage as Cn, DEFAULT_INPUT_IMAGE_MIMES as Ct, resolveOutboundSessionRoute as D, FailoverError as Dn, extractImageContentFromSource as Dt, ensureOutboundSessionEntry as E, runWithModelFallback as En, extractFileContentFromSource as Et, normalizeCronJobCreate as F, clearSessionAuthProfileOverride as Ft, hasLegacyDeliveryHints as G, resolveAgentTimeoutMs as Gt, normalizeRequiredName as H, listDescendantRunsForRequester as Ht, normalizeCronJobPatch as I, formatZonedTimestamp as It, CHANNEL_TARGET_DESCRIPTION as J, AGENT_LANE_NESTED as Jt, stripLegacyDeliveryFields as K, runSubagentAnnounceFlow as Kt, inferLegacyName as L, isAbortTrigger as Lt, resetDirectoryCache as M, prepareAgentRun as Mt, CHANNEL_MESSAGE_ACTION_NAMES as N, BARE_SESSION_RESET_PROMPT as Nt, resolveOutboundTarget as O, describeFailoverError as On, normalizeMimeList as Ot, normalizeHttpWebhookUrl as P, normalizeGroupActivation as Pt, isExternalHookSession as Q, emitAgentEvent as Qt, normalizeOptionalAgentId as R, stopSubagentsForRequester as Rt, createSymiTools as S, CommandLane as Sn, DEFAULT_INPUT_IMAGE_MAX_BYTES as St, runMessageAction as T, composeTurnMiddleware as Tn, DEFAULT_INPUT_TIMEOUT_MS as Tt, migrateLegacyCronPayload as U, listSubagentRunsForRequester as Ut, normalizePayloadToSystemText as V, initSubagentRegistry as Vt, buildDeliveryFromLegacyPayload as W, subagent_registry_exports as Wt, detectSuspiciousPatterns as X, clearSessionQueues as Xt, buildSafeExternalPrompt as Y, AGENT_LANE_SUBAGENT as Yt, getHookType as Z, clearAgentRunContext as Zt, withContextUsageWarning as _, getActiveTaskCount as _n, buildAuthHealthSummary as _t, getPluginToolMeta as a, waitForEmbeddedPiRunEnd as an, markGatewaySigusr1RestartHandled as at, buildAgentTurnParams as b, setCommandLaneConcurrency as bn, applyVerboseOverride as bt, handleSlackHttpRequest as c, ToolInputError as cn, setPreRestartDeferralCheck as ct, buildHistoryContextFromEntries as d, resolveUserTimeFormat as dn, getProcessSupervisor as dt, onAgentEvent as en, persistBrowserProxyFiles as et, getChannelActivity as f, resolveUserTimezone as fn, detectRuntimeShell as ft, buildGlassUiProfile as g, resolveRunWorkspaceDir as gn, DEFAULT_OAUTH_WARN_MS as gt, getTotalPendingReplies as h, redactRunIdentifier as hn, maskApiKey as ht, sniffMimeFromBase64 as i, getActiveEmbeddedRunCount as in, isGatewaySigusr1RestartExternallyAllowed as it, formatTargetDisplay as j, applyTemplate as jt, resolveSessionDeliveryTarget as k, resolveFailoverStatus as kn, resolveInputFileLimits as kt, readJsonBodyWithLimit as l, resolveSymiDocsPath as ln, buildSystemPromptParams as lt, createReplyDispatcher as m, resolveBootstrapContextForRun as mn, resolveSendPolicy as mt, applyToolPolicyPipeline as n, buildAgentSystemPrompt as nn, deferGatewayRestartUntilIdle as nt, createPluginLoaderLogger as o, installUnhandledRejectionHandler as on, scheduleGatewaySigusr1Restart as ot, provider_dispatcher_exports as p, makeBootstrapWarn as pn, normalizeSendPolicy as pt, CHANNEL_TARGETS_DESCRIPTION as q, readLatestAssistantReply as qt, buildDefaultToolPolicyPipelineSteps as r, abortEmbeddedPiRun as rn, emitGatewayRestart as rt, loadSymiPlugins as s, registerUnhandledRejectionHandler as sn, setGatewaySigusr1RestartPolicy as st, runAgentTurn as t, registerAgentRunContext as tn, consumeGatewaySigusr1RestartAuthorization as tt, requestBodyErrorToText as u, formatUserTime as un, resolveCommitHash as ut, withContextOverflowRecovery as v, getTotalQueueSize as vn, formatRemainingShort as vt, resolveAnnounceTargetFromKey as w, resolveModelProfile as wn, DEFAULT_INPUT_MAX_REDIRECTS as wt, prepareReplyTurn as x, waitForActiveTasks as xn, parseVerboseOverride as xt, runUnifiedTurn as y, resetAllLanes as yn, applyModelOverrideToSessionEntry as yt, normalizeOptionalSessionKey as z, countActiveDescendantRuns as zt };
|