@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
|
@@ -9,8 +9,8 @@ import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as reso
|
|
|
9
9
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BbsJ0Qbo.js";
|
|
10
10
|
import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
|
|
11
11
|
import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-Cp39v6b_.js";
|
|
12
|
-
import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-
|
|
13
|
-
import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-
|
|
12
|
+
import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-BeK3uuQ8.js";
|
|
13
|
+
import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-DSMNXd9k.js";
|
|
14
14
|
import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BvZmqxYI.js";
|
|
15
15
|
import { n as getDiagnosticSessionState } from "./diagnostic-session-state-CWtaDOiK.js";
|
|
16
16
|
import { S as GATEWAY_CLIENT_NAMES, _ as listDeliverableMessageChannels, a as chunkText, b as GATEWAY_CLIENT_IDS, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isMarkdownCapableMessageChannel, h as isInternalMessageChannel, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt, v as normalizeMessageChannel, x as GATEWAY_CLIENT_MODES, y as resolveGatewayMessageChannel } from "./chunk-BjnT3w_x.js";
|
|
@@ -20,12 +20,12 @@ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecure
|
|
|
20
20
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-xmXjOnAV.js";
|
|
21
21
|
import { n as redactToolDetail } from "./redact-ojHFHOAb.js";
|
|
22
22
|
import { n as formatErrorMessage } from "./errors-C6sHIFo_.js";
|
|
23
|
-
import {
|
|
23
|
+
import { _ as kindFromMime, c as getImageMetadata, d as resizeToJpeg, f as detectMime, g as isAudioFileName, h as imageMimeFromFormat, i as getDefaultMediaLocalRoots, m as getFileExtension, n as isSilentReplyText, p as extensionForMime, t as SILENT_REPLY_TOKEN, v as normalizeMimeType$1, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./tokens-CJgPtOxz.js";
|
|
24
24
|
import { _ as normalizeHyphenSlug, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as normalizeAtHashSlug, h as resolveChannelGroupToolsPolicy, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupRequireMention, n as formatXHighModelHint, o as normalizeThinkLevel, p as resolveChannelGroupPolicy, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeStringEntries, y as normalizeStringEntriesLower } from "./thinking-BKsvyjWX.js";
|
|
25
25
|
import { n as resolveConversationLabel } from "./conversation-label-CPUfoQmh.js";
|
|
26
26
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-N698mtPE.js";
|
|
27
27
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-fUhPZcB5.js";
|
|
28
|
-
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-
|
|
28
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-BUS2wGkQ.js";
|
|
29
29
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DWs9CjHs.js";
|
|
30
30
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-BtWlyyt1.js";
|
|
31
31
|
import { a as shouldHandleTextCommands, c as resolveNativeCommandsEnabled, i as normalizeCommandBody, l as resolveNativeSkillsEnabled, n as listChatCommands, o as isCommandFlagEnabled, r as listChatCommandsForConfig, s as isRestartEnabled } from "./commands-registry-BO62ZyK2.js";
|
|
@@ -1028,7 +1028,7 @@ async function getMemorySearchManager(params) {
|
|
|
1028
1028
|
const wrapper = new FallbackMemoryManager({
|
|
1029
1029
|
primary,
|
|
1030
1030
|
fallbackFactory: async () => {
|
|
1031
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
1031
|
+
const { MemoryIndexManager } = await import("./manager-BUS2wGkQ.js").then((n) => n.t);
|
|
1032
1032
|
return await MemoryIndexManager.get(params);
|
|
1033
1033
|
}
|
|
1034
1034
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -1041,7 +1041,7 @@ async function getMemorySearchManager(params) {
|
|
|
1041
1041
|
}
|
|
1042
1042
|
}
|
|
1043
1043
|
try {
|
|
1044
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
1044
|
+
const { MemoryIndexManager } = await import("./manager-BUS2wGkQ.js").then((n) => n.t);
|
|
1045
1045
|
return { manager: await MemoryIndexManager.get(params) };
|
|
1046
1046
|
} catch (err) {
|
|
1047
1047
|
return {
|
|
@@ -4637,97 +4637,6 @@ function clearSessionQueues(keys) {
|
|
|
4637
4637
|
};
|
|
4638
4638
|
}
|
|
4639
4639
|
|
|
4640
|
-
//#endregion
|
|
4641
|
-
//#region src/auto-reply/heartbeat.ts
|
|
4642
|
-
const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
|
|
4643
|
-
function stripTokenAtEdges(raw) {
|
|
4644
|
-
let text = raw.trim();
|
|
4645
|
-
if (!text) return {
|
|
4646
|
-
text: "",
|
|
4647
|
-
didStrip: false
|
|
4648
|
-
};
|
|
4649
|
-
const token = SYMIPULSE_TOKEN;
|
|
4650
|
-
const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
|
|
4651
|
-
if (!text.includes(token)) return {
|
|
4652
|
-
text,
|
|
4653
|
-
didStrip: false
|
|
4654
|
-
};
|
|
4655
|
-
let didStrip = false;
|
|
4656
|
-
let changed = true;
|
|
4657
|
-
while (changed) {
|
|
4658
|
-
changed = false;
|
|
4659
|
-
const next = text.trim();
|
|
4660
|
-
if (next.startsWith(token)) {
|
|
4661
|
-
text = next.slice(token.length).trimStart();
|
|
4662
|
-
didStrip = true;
|
|
4663
|
-
changed = true;
|
|
4664
|
-
continue;
|
|
4665
|
-
}
|
|
4666
|
-
if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
|
|
4667
|
-
const idx = next.lastIndexOf(token);
|
|
4668
|
-
const before = next.slice(0, idx).trimEnd();
|
|
4669
|
-
if (!before) text = "";
|
|
4670
|
-
else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
|
|
4671
|
-
didStrip = true;
|
|
4672
|
-
changed = true;
|
|
4673
|
-
}
|
|
4674
|
-
}
|
|
4675
|
-
return {
|
|
4676
|
-
text: text.replace(/\s+/g, " ").trim(),
|
|
4677
|
-
didStrip
|
|
4678
|
-
};
|
|
4679
|
-
}
|
|
4680
|
-
function stripHeartbeatToken(raw, opts = {}) {
|
|
4681
|
-
if (!raw) return {
|
|
4682
|
-
shouldSkip: true,
|
|
4683
|
-
text: "",
|
|
4684
|
-
didStrip: false
|
|
4685
|
-
};
|
|
4686
|
-
const trimmed = raw.trim();
|
|
4687
|
-
if (!trimmed) return {
|
|
4688
|
-
shouldSkip: true,
|
|
4689
|
-
text: "",
|
|
4690
|
-
didStrip: false
|
|
4691
|
-
};
|
|
4692
|
-
const mode = opts.mode ?? "message";
|
|
4693
|
-
const maxAckCharsRaw = opts.maxAckChars;
|
|
4694
|
-
const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
|
|
4695
|
-
const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
|
|
4696
|
-
const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/ /gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
|
|
4697
|
-
const trimmedNormalized = stripMarkup(trimmed);
|
|
4698
|
-
if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
|
|
4699
|
-
shouldSkip: false,
|
|
4700
|
-
text: trimmed,
|
|
4701
|
-
didStrip: false
|
|
4702
|
-
};
|
|
4703
|
-
const strippedOriginal = stripTokenAtEdges(trimmed);
|
|
4704
|
-
const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
|
|
4705
|
-
const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
|
|
4706
|
-
if (!picked.didStrip) return {
|
|
4707
|
-
shouldSkip: false,
|
|
4708
|
-
text: trimmed,
|
|
4709
|
-
didStrip: false
|
|
4710
|
-
};
|
|
4711
|
-
if (!picked.text) return {
|
|
4712
|
-
shouldSkip: true,
|
|
4713
|
-
text: "",
|
|
4714
|
-
didStrip: true
|
|
4715
|
-
};
|
|
4716
|
-
const rest = picked.text.trim();
|
|
4717
|
-
if (mode === "heartbeat") {
|
|
4718
|
-
if (rest.length <= maxAckChars) return {
|
|
4719
|
-
shouldSkip: true,
|
|
4720
|
-
text: "",
|
|
4721
|
-
didStrip: true
|
|
4722
|
-
};
|
|
4723
|
-
}
|
|
4724
|
-
return {
|
|
4725
|
-
shouldSkip: false,
|
|
4726
|
-
text: rest,
|
|
4727
|
-
didStrip: true
|
|
4728
|
-
};
|
|
4729
|
-
}
|
|
4730
|
-
|
|
4731
4640
|
//#endregion
|
|
4732
4641
|
//#region src/auto-reply/reply/normalize-reply.ts
|
|
4733
4642
|
function normalizeReplyPayload(payload, opts = {}) {
|
|
@@ -4748,15 +4657,6 @@ function normalizeReplyPayload(payload, opts = {}) {
|
|
|
4748
4657
|
text = "";
|
|
4749
4658
|
}
|
|
4750
4659
|
if (text && !trimmed) text = "";
|
|
4751
|
-
if ((opts.stripHeartbeat ?? true) && text?.includes(HEARTBEAT_TOKEN)) {
|
|
4752
|
-
const stripped = stripHeartbeatToken(text, { mode: "message" });
|
|
4753
|
-
if (stripped.didStrip) opts.onHeartbeatStrip?.();
|
|
4754
|
-
if (stripped.shouldSkip && !hasMedia && !hasChannelData) {
|
|
4755
|
-
opts.onSkip?.("heartbeat");
|
|
4756
|
-
return null;
|
|
4757
|
-
}
|
|
4758
|
-
text = stripped.text;
|
|
4759
|
-
}
|
|
4760
4660
|
if (text) text = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
|
|
4761
4661
|
if (!text?.trim() && !hasMedia && !hasChannelData) {
|
|
4762
4662
|
opts.onSkip?.("empty");
|
|
@@ -4767,7 +4667,7 @@ function normalizeReplyPayload(payload, opts = {}) {
|
|
|
4767
4667
|
text
|
|
4768
4668
|
};
|
|
4769
4669
|
const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix;
|
|
4770
|
-
if (effectivePrefix && text &&
|
|
4670
|
+
if (effectivePrefix && text && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
|
|
4771
4671
|
return {
|
|
4772
4672
|
...enrichedPayload,
|
|
4773
4673
|
text
|
|
@@ -4824,7 +4724,7 @@ async function routeReply(params) {
|
|
|
4824
4724
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
4825
4725
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
4826
4726
|
try {
|
|
4827
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
4727
|
+
const { deliverOutboundPayloads } = await import("./deliver-DSMNXd9k.js").then((n) => n.n);
|
|
4828
4728
|
return {
|
|
4829
4729
|
ok: true,
|
|
4830
4730
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -23504,8 +23404,6 @@ function buildAgentSystemPrompt(params) {
|
|
|
23504
23404
|
const reasoningLevel = params.reasoningLevel ?? "off";
|
|
23505
23405
|
const userTimezone = params.userTimezone?.trim();
|
|
23506
23406
|
const skillsPrompt = params.skillsPrompt?.trim();
|
|
23507
|
-
const heartbeatPrompt = params.heartbeatPrompt?.trim();
|
|
23508
|
-
const heartbeatPromptLine = heartbeatPrompt ? `Heartbeat prompt: ${heartbeatPrompt}` : "Heartbeat prompt: (configured)";
|
|
23509
23407
|
const runtimeInfo = params.runtimeInfo;
|
|
23510
23408
|
const runtimeChannel = runtimeInfo?.channel?.trim().toLowerCase();
|
|
23511
23409
|
const runtimeCapabilities = (runtimeInfo?.capabilities ?? []).map((cap) => String(cap).trim()).filter(Boolean);
|
|
@@ -23718,7 +23616,6 @@ function buildAgentSystemPrompt(params) {
|
|
|
23718
23616
|
for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
|
|
23719
23617
|
}
|
|
23720
23618
|
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}`, "");
|
|
23721
|
-
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.", "");
|
|
23722
23619
|
lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
|
|
23723
23620
|
return lines.filter(Boolean).join("\n");
|
|
23724
23621
|
}
|
|
@@ -23848,7 +23745,6 @@ async function resolveCommandsSystemPromptBundle(params) {
|
|
|
23848
23745
|
userTimeFormat,
|
|
23849
23746
|
contextFiles: injectedFiles,
|
|
23850
23747
|
skillsPrompt,
|
|
23851
|
-
heartbeatPrompt: void 0,
|
|
23852
23748
|
runtimeInfo,
|
|
23853
23749
|
sandboxInfo,
|
|
23854
23750
|
memoryCitationsMode: params.cfg?.memory?.citations
|
|
@@ -38900,7 +38796,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
38900
38796
|
return;
|
|
38901
38797
|
}
|
|
38902
38798
|
try {
|
|
38903
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
38799
|
+
const { deliverOutboundPayloads } = await import("./deliver-DSMNXd9k.js").then((n) => n.n);
|
|
38904
38800
|
await deliverOutboundPayloads({
|
|
38905
38801
|
cfg: params.cfg,
|
|
38906
38802
|
channel,
|
|
@@ -40362,17 +40258,11 @@ function resolveModelProfile(modelId, userProfiles) {
|
|
|
40362
40258
|
//#endregion
|
|
40363
40259
|
//#region src/gateway/outbound-filter.ts
|
|
40364
40260
|
const SILENT_REPLY_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SILENT_REPLY_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
|
|
40365
|
-
const SYMIPULSE_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SYMIPULSE_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
|
|
40366
40261
|
/** Strict-match check for the bare NO_REPLY token. */
|
|
40367
40262
|
function isBareSilentReply(text) {
|
|
40368
40263
|
if (!text) return false;
|
|
40369
40264
|
return SILENT_REPLY_BARE_RE.test(text);
|
|
40370
40265
|
}
|
|
40371
|
-
/** Strict-match check for the bare SYMIPULSE_OK token. */
|
|
40372
|
-
function isBareSymipulseAck(text) {
|
|
40373
|
-
if (!text) return false;
|
|
40374
|
-
return SYMIPULSE_BARE_RE.test(text);
|
|
40375
|
-
}
|
|
40376
40266
|
/**
|
|
40377
40267
|
* Classify an outbound assistant message at the gateway boundary.
|
|
40378
40268
|
*
|
|
@@ -40386,11 +40276,6 @@ function classifyOutboundMessage(rawText, _opts) {
|
|
|
40386
40276
|
output: "",
|
|
40387
40277
|
reason: "silent-reply-bare"
|
|
40388
40278
|
};
|
|
40389
|
-
if (isBareSymipulseAck(text)) return {
|
|
40390
|
-
action: "drop",
|
|
40391
|
-
output: "",
|
|
40392
|
-
reason: "symipulse-non-heartbeat-bare"
|
|
40393
|
-
};
|
|
40394
40279
|
return {
|
|
40395
40280
|
action: "deliver",
|
|
40396
40281
|
output: text,
|
|
@@ -41098,6 +40983,31 @@ function createCacheTrace(params) {
|
|
|
41098
40983
|
};
|
|
41099
40984
|
}
|
|
41100
40985
|
|
|
40986
|
+
//#endregion
|
|
40987
|
+
//#region src/agents/idle-timeout.ts
|
|
40988
|
+
/**
|
|
40989
|
+
* Per-run idle timeout resolution.
|
|
40990
|
+
*
|
|
40991
|
+
* The idle timer resets on every model/tool activity signal (streaming
|
|
40992
|
+
* chunk, tool execution, compaction, etc.). It fires only when the run is
|
|
40993
|
+
* truly idle — distinguishing "model working slowly on large context" from
|
|
40994
|
+
* "model stuck / connection lost".
|
|
40995
|
+
*/
|
|
40996
|
+
const DEFAULT_IDLE_RATIO = .5;
|
|
40997
|
+
const MIN_IDLE_MS = 12e4;
|
|
40998
|
+
const MAX_IDLE_MS = 9e5;
|
|
40999
|
+
const ABSOLUTE_MIN_IDLE_MS = 3e4;
|
|
41000
|
+
const normalizeNumber = (value) => typeof value === "number" && Number.isFinite(value) ? Math.floor(value) : void 0;
|
|
41001
|
+
function resolveIdleTimeoutMs(opts) {
|
|
41002
|
+
const cap = Math.max(ABSOLUTE_MIN_IDLE_MS, opts.runTimeoutMs - 1e3);
|
|
41003
|
+
const modelMs = normalizeNumber(opts.modelSeconds != null ? opts.modelSeconds * 1e3 : void 0);
|
|
41004
|
+
if (modelMs !== void 0 && modelMs > 0) return Math.min(Math.max(modelMs, ABSOLUTE_MIN_IDLE_MS), cap);
|
|
41005
|
+
const configMs = normalizeNumber(opts.configSeconds != null ? opts.configSeconds * 1e3 : void 0);
|
|
41006
|
+
if (configMs !== void 0 && configMs > 0) return Math.min(Math.max(configMs, ABSOLUTE_MIN_IDLE_MS), cap);
|
|
41007
|
+
const computed = Math.floor(opts.runTimeoutMs * DEFAULT_IDLE_RATIO);
|
|
41008
|
+
return Math.min(Math.max(computed, MIN_IDLE_MS), Math.min(MAX_IDLE_MS, cap));
|
|
41009
|
+
}
|
|
41010
|
+
|
|
41101
41011
|
//#endregion
|
|
41102
41012
|
//#region src/agents/model-token-filter.ts
|
|
41103
41013
|
/**
|
|
@@ -45254,31 +45164,6 @@ function hasRepetition(text, minBlockSize) {
|
|
|
45254
45164
|
return text.indexOf(sample, searchStart) >= 0;
|
|
45255
45165
|
}
|
|
45256
45166
|
|
|
45257
|
-
//#endregion
|
|
45258
|
-
//#region src/agents/symipulse-timeout.ts
|
|
45259
|
-
/**
|
|
45260
|
-
* Symipulse inactivity timeout resolution.
|
|
45261
|
-
*
|
|
45262
|
-
* The symipulse timer resets on every model/tool activity signal (streaming
|
|
45263
|
-
* chunk, tool execution, compaction, etc.). It fires only when the run is
|
|
45264
|
-
* truly idle — distinguishing "model working slowly on large context" from
|
|
45265
|
-
* "model stuck / connection lost".
|
|
45266
|
-
*/
|
|
45267
|
-
const DEFAULT_SYMIPULSE_RATIO = .5;
|
|
45268
|
-
const MIN_SYMIPULSE_MS = 12e4;
|
|
45269
|
-
const MAX_SYMIPULSE_MS = 9e5;
|
|
45270
|
-
const SYMIPULSE_MIN_TIMEOUT_MS = 3e4;
|
|
45271
|
-
const normalizeNumber = (value) => typeof value === "number" && Number.isFinite(value) ? Math.floor(value) : void 0;
|
|
45272
|
-
function resolveSymipulseMs(opts) {
|
|
45273
|
-
const cap = Math.max(SYMIPULSE_MIN_TIMEOUT_MS, opts.runTimeoutMs - 1e3);
|
|
45274
|
-
const modelMs = normalizeNumber(opts.modelSeconds != null ? opts.modelSeconds * 1e3 : void 0);
|
|
45275
|
-
if (modelMs !== void 0 && modelMs > 0) return Math.min(Math.max(modelMs, SYMIPULSE_MIN_TIMEOUT_MS), cap);
|
|
45276
|
-
const configMs = normalizeNumber(opts.configSeconds != null ? opts.configSeconds * 1e3 : void 0);
|
|
45277
|
-
if (configMs !== void 0 && configMs > 0) return Math.min(Math.max(configMs, SYMIPULSE_MIN_TIMEOUT_MS), cap);
|
|
45278
|
-
const computed = Math.floor(opts.runTimeoutMs * DEFAULT_SYMIPULSE_RATIO);
|
|
45279
|
-
return Math.min(Math.max(computed, MIN_SYMIPULSE_MS), Math.min(MAX_SYMIPULSE_MS, cap));
|
|
45280
|
-
}
|
|
45281
|
-
|
|
45282
45167
|
//#endregion
|
|
45283
45168
|
//#region src/agents/transcript-policy.ts
|
|
45284
45169
|
const GEMMA_MODEL_HINTS = ["gemma", "redsand/"];
|
|
@@ -47551,10 +47436,8 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
47551
47436
|
ownerDisplay: params.ownerDisplay,
|
|
47552
47437
|
ownerDisplaySecret: params.ownerDisplaySecret,
|
|
47553
47438
|
reasoningTagHint: params.reasoningTagHint,
|
|
47554
|
-
heartbeatPrompt: params.heartbeatPrompt,
|
|
47555
47439
|
skillsPrompt: params.skillsPrompt,
|
|
47556
47440
|
docsPath: params.docsPath,
|
|
47557
|
-
ttsHint: params.ttsHint,
|
|
47558
47441
|
workspaceNotes: params.workspaceNotes,
|
|
47559
47442
|
reactionGuidance: params.reactionGuidance,
|
|
47560
47443
|
promptMode: params.promptMode,
|
|
@@ -48324,7 +48207,6 @@ async function runEmbeddedAttempt(params) {
|
|
|
48324
48207
|
ownerDisplay: params.config?.commands?.ownerDisplay,
|
|
48325
48208
|
ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
|
|
48326
48209
|
reasoningTagHint,
|
|
48327
|
-
heartbeatPrompt: void 0,
|
|
48328
48210
|
skillsPrompt,
|
|
48329
48211
|
docsPath: docsPath ?? void 0,
|
|
48330
48212
|
workspaceNotes,
|
|
@@ -48631,7 +48513,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
48631
48513
|
if (!key) return null;
|
|
48632
48514
|
return (params.config?.agents?.defaults?.models)?.[key]?.symipulseSeconds ?? null;
|
|
48633
48515
|
};
|
|
48634
|
-
const symipulseMs = params.symipulseMs ??
|
|
48516
|
+
const symipulseMs = params.symipulseMs ?? resolveIdleTimeoutMs({
|
|
48635
48517
|
runTimeoutMs: params.timeoutMs,
|
|
48636
48518
|
configSeconds: params.config?.agents?.defaults?.symipulseSeconds,
|
|
48637
48519
|
modelSeconds: resolveModelSymipulseSeconds()
|
|
@@ -50719,54 +50601,6 @@ function withFastAbort(opts) {
|
|
|
50719
50601
|
};
|
|
50720
50602
|
}
|
|
50721
50603
|
|
|
50722
|
-
//#endregion
|
|
50723
|
-
//#region src/auto-reply/reply/middleware-heartbeat-strip.ts
|
|
50724
|
-
/**
|
|
50725
|
-
* Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
|
|
50726
|
-
* replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
|
|
50727
|
-
* decide whether to strip; reads `payload.isError` to give the sanitizer
|
|
50728
|
-
* the right context flag.
|
|
50729
|
-
*
|
|
50730
|
-
* Equivalence claim (proven by tests): for every input shape the chain's
|
|
50731
|
-
* `normalizeStreamingText({text})` would have produced `{ skip, text }`,
|
|
50732
|
-
* this middleware produces the corresponding `PayloadDelivery`:
|
|
50733
|
-
*
|
|
50734
|
-
* skip=true → delivered=false (drop)
|
|
50735
|
-
* skip=false, text=undefined → delivered=true with payload.text undefined
|
|
50736
|
-
* (media-only carry-through case)
|
|
50737
|
-
* skip=false, text=string → delivered=true with payload.text=sanitized
|
|
50738
|
-
*/
|
|
50739
|
-
function withHeartbeatStrip(opts) {
|
|
50740
|
-
let didLogStrip = false;
|
|
50741
|
-
return (next) => async (payload, ctx) => {
|
|
50742
|
-
let text = payload.text;
|
|
50743
|
-
const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
|
|
50744
|
-
if (typeof text === "string" && text.includes("SYMIPULSE_OK")) {
|
|
50745
|
-
const stripped = stripHeartbeatToken(text, { mode: "message" });
|
|
50746
|
-
if (stripped.didStrip && !didLogStrip) {
|
|
50747
|
-
didLogStrip = true;
|
|
50748
|
-
opts?.onStrip?.();
|
|
50749
|
-
}
|
|
50750
|
-
if (stripped.shouldSkip && !hasMedia) return PayloadDelivery.drop(payload, "drop:heartbeat-token-bare");
|
|
50751
|
-
text = stripped.text;
|
|
50752
|
-
}
|
|
50753
|
-
if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return PayloadDelivery.drop(payload, "drop:silent-reply");
|
|
50754
|
-
if (!text) {
|
|
50755
|
-
if (hasMedia) return next({
|
|
50756
|
-
...payload,
|
|
50757
|
-
text: void 0
|
|
50758
|
-
}, ctx);
|
|
50759
|
-
return PayloadDelivery.drop(payload, "drop:empty");
|
|
50760
|
-
}
|
|
50761
|
-
const sanitized = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
|
|
50762
|
-
if (!sanitized.trim()) return PayloadDelivery.drop(payload, "drop:empty-after-sanitize");
|
|
50763
|
-
return next({
|
|
50764
|
-
...payload,
|
|
50765
|
-
text: sanitized
|
|
50766
|
-
}, ctx);
|
|
50767
|
-
};
|
|
50768
|
-
}
|
|
50769
|
-
|
|
50770
50604
|
//#endregion
|
|
50771
50605
|
//#region src/infra/map-size.ts
|
|
50772
50606
|
function pruneMapToMaxSize(map, maxSize) {
|
|
@@ -51042,25 +50876,22 @@ function withToolResultSerialization(opts) {
|
|
|
51042
50876
|
* session transcript after the inner runner completes.
|
|
51043
50877
|
*
|
|
51044
50878
|
* Skip conditions:
|
|
51045
|
-
* - outbound.action === "drop" (NO_REPLY
|
|
50879
|
+
* - outbound.action === "drop" (NO_REPLY — no message)
|
|
51046
50880
|
* - empty / whitespace-only text
|
|
51047
|
-
* - outbound.action === "deliver-stripped" AND includeStripped=false
|
|
51048
50881
|
*
|
|
51049
50882
|
* The middleware does NOT mutate the turn result — the append is a
|
|
51050
50883
|
* post-turn side effect. The result is returned unchanged regardless of
|
|
51051
50884
|
* append success/failure.
|
|
51052
50885
|
*/
|
|
51053
50886
|
function withTranscriptUpdate(opts) {
|
|
51054
|
-
const includeStripped = opts.includeStripped !== false;
|
|
51055
50887
|
return (next) => async (params) => {
|
|
51056
50888
|
const result = await next(params);
|
|
51057
|
-
if (shouldAppend(result
|
|
50889
|
+
if (shouldAppend(result)) await runAppend(opts, params, result);
|
|
51058
50890
|
return result;
|
|
51059
50891
|
};
|
|
51060
50892
|
}
|
|
51061
|
-
function shouldAppend(result
|
|
50893
|
+
function shouldAppend(result) {
|
|
51062
50894
|
if (result.outbound.action === "drop") return false;
|
|
51063
|
-
if (result.outbound.action === "deliver-stripped" && !includeStripped) return false;
|
|
51064
50895
|
return (typeof result.text === "string" ? result.text.trim() : "").length > 0;
|
|
51065
50896
|
}
|
|
51066
50897
|
async function runAppend(opts, params, result) {
|
|
@@ -51144,7 +50975,6 @@ function buildChannelProfile(opts) {
|
|
|
51144
50975
|
],
|
|
51145
50976
|
payloadMiddlewares: [
|
|
51146
50977
|
withPayloadDropOnEmpty(),
|
|
51147
|
-
withHeartbeatStrip(),
|
|
51148
50978
|
...opts.typingSignaler ? [withTypingSignals({ signaler: opts.typingSignaler })] : [],
|
|
51149
50979
|
withToolResultSerialization(),
|
|
51150
50980
|
withChannelRouting({
|
|
@@ -51289,7 +51119,6 @@ function normalizeReplyPayloadInternal(payload, opts) {
|
|
|
51289
51119
|
return normalizeReplyPayload(payload, {
|
|
51290
51120
|
responsePrefix: opts.responsePrefix,
|
|
51291
51121
|
responsePrefixContext: prefixContext,
|
|
51292
|
-
onHeartbeatStrip: opts.onHeartbeatStrip,
|
|
51293
51122
|
onSkip: opts.onSkip
|
|
51294
51123
|
});
|
|
51295
51124
|
}
|
|
@@ -51312,7 +51141,6 @@ function createReplyDispatcher(options) {
|
|
|
51312
51141
|
responsePrefix: options.responsePrefix,
|
|
51313
51142
|
responsePrefixContext: options.responsePrefixContext,
|
|
51314
51143
|
responsePrefixContextProvider: options.responsePrefixContextProvider,
|
|
51315
|
-
onHeartbeatStrip: options.onHeartbeatStrip,
|
|
51316
51144
|
onSkip: (reason) => options.onSkip?.(payload, {
|
|
51317
51145
|
kind,
|
|
51318
51146
|
reason
|
|
@@ -56242,7 +56070,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
56242
56070
|
});
|
|
56243
56071
|
const deliverSlashPayloads = async (replies) => {
|
|
56244
56072
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
56245
|
-
import("./replies-
|
|
56073
|
+
import("./replies-BeK3uuQ8.js").then((n) => n.r),
|
|
56246
56074
|
import("./chunk-BjnT3w_x.js").then((n) => n.s),
|
|
56247
56075
|
import("./markdown-tables-BtWlyyt1.js").then((n) => n.t)
|
|
56248
56076
|
]);
|
|
@@ -59296,7 +59124,6 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
59296
59124
|
ownerDisplay: params.config?.commands?.ownerDisplay,
|
|
59297
59125
|
ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
|
|
59298
59126
|
reasoningTagHint,
|
|
59299
|
-
heartbeatPrompt: void 0,
|
|
59300
59127
|
skillsPrompt,
|
|
59301
59128
|
docsPath: docsPath ?? void 0,
|
|
59302
59129
|
promptMode,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { x as truncateUtf16Safe } from "./utils-BU8jVQFM.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
|
|
3
|
-
import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-
|
|
4
|
-
import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-
|
|
3
|
+
import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-CQU7Gcb9.js";
|
|
4
|
+
import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-C-gIIp7Q.js";
|
|
5
5
|
import { s as normalizeThinkLevel } from "./thinking-177f26eg.js";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs/promises";
|
|
9
9
|
|
|
10
10
|
//#region src/agents/pi-embedded-helpers/bootstrap.ts
|
|
11
11
|
function isBase64Signature(value) {
|
|
@@ -102,10 +102,10 @@ function clampToBudget(content, budget) {
|
|
|
102
102
|
async function ensureSessionHeader(params) {
|
|
103
103
|
const file = params.sessionFile;
|
|
104
104
|
try {
|
|
105
|
-
await
|
|
105
|
+
await fs.stat(file);
|
|
106
106
|
return;
|
|
107
107
|
} catch {}
|
|
108
|
-
await
|
|
108
|
+
await fs.mkdir(path.dirname(file), { recursive: true });
|
|
109
109
|
const entry = {
|
|
110
110
|
type: "session",
|
|
111
111
|
version: 2,
|
|
@@ -113,7 +113,7 @@ async function ensureSessionHeader(params) {
|
|
|
113
113
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
114
114
|
cwd: params.cwd
|
|
115
115
|
};
|
|
116
|
-
await
|
|
116
|
+
await fs.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
117
117
|
}
|
|
118
118
|
function buildBootstrapContextFiles(files, opts) {
|
|
119
119
|
const maxChars = opts?.maxChars ?? DEFAULT_BOOTSTRAP_MAX_CHARS;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-B_ZVH1kE.js";
|
|
2
|
-
import { r as resolveAgentConfig } from "./agent-scope-
|
|
3
|
-
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
4
|
-
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-
|
|
2
|
+
import { r as resolveAgentConfig } from "./agent-scope-B_oqIiaD.js";
|
|
3
|
+
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CphS_6eg.js";
|
|
4
|
+
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-CQU7Gcb9.js";
|
|
5
5
|
import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-CnGWTXL4.js";
|
|
6
6
|
import { l as normalizeMessageChannel } from "./message-channel-C_V8IAYx.js";
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-DKJLAPDB.js";
|
|
2
2
|
import { u as isRecord } from "./utils-BU8jVQFM.js";
|
|
3
|
-
import { L as normalizeProviderId } from "./auth-profiles-
|
|
3
|
+
import { L as normalizeProviderId } from "./auth-profiles-CPlXilKu.js";
|
|
4
4
|
import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-BEREnWaa.js";
|
|
5
5
|
import { t as ensurePluginAllowlisted } from "./plugins-allowlist-D2tS9tcu.js";
|
|
6
6
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { s as loadSymiPlugins } from "./unified-runner-
|
|
2
|
+
import { s as loadSymiPlugins } from "./unified-runner-Bn9vq7Zy.js";
|
|
3
3
|
import { d as getActivePluginRegistry } from "./registry-DKJLAPDB.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
|
|
5
|
-
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-
|
|
6
|
-
import { i as loadConfig } from "./config-
|
|
5
|
+
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-B_oqIiaD.js";
|
|
6
|
+
import { i as loadConfig } from "./config-CphS_6eg.js";
|
|
7
7
|
|
|
8
8
|
//#region src/cli/plugin-registry.ts
|
|
9
9
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
|
|
3
3
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-8LjCKvga.js";
|
|
4
4
|
import { i as loadConfig } from "./config-B91360jE.js";
|
|
5
|
-
import { m as loadSymiPlugins } from "./subagent-registry-
|
|
5
|
+
import { m as loadSymiPlugins } from "./subagent-registry-B1RgR3-0.js";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/plugin-registry.ts
|
|
8
8
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Per-run idle timeout resolution.
|
|
3
3
|
*
|
|
4
|
-
* The
|
|
4
|
+
* The idle timer resets on every model/tool activity signal (streaming
|
|
5
5
|
* chunk, tool execution, compaction, etc.). It fires only when the run is
|
|
6
6
|
* truly idle — distinguishing "model working slowly on large context" from
|
|
7
7
|
* "model stuck / connection lost".
|
|
8
8
|
*/
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function resolveIdleTimeoutMs(opts: {
|
|
10
10
|
runTimeoutMs: number;
|
|
11
11
|
configSeconds?: number | null;
|
|
12
12
|
modelSeconds?: number | null;
|
|
@@ -16,10 +16,8 @@ export declare function buildEmbeddedSystemPrompt(params: {
|
|
|
16
16
|
ownerDisplay?: "raw" | "hash";
|
|
17
17
|
ownerDisplaySecret?: string;
|
|
18
18
|
reasoningTagHint: boolean;
|
|
19
|
-
heartbeatPrompt?: string;
|
|
20
19
|
skillsPrompt?: string;
|
|
21
20
|
docsPath?: string;
|
|
22
|
-
ttsHint?: string;
|
|
23
21
|
reactionGuidance?: {
|
|
24
22
|
level: "minimal" | "extensive";
|
|
25
23
|
channel: string;
|
|
@@ -28,7 +28,6 @@ export declare function buildAgentSystemPrompt(params: {
|
|
|
28
28
|
userTimeFormat?: ResolvedTimeFormat;
|
|
29
29
|
contextFiles?: EmbeddedContextFile[];
|
|
30
30
|
skillsPrompt?: string;
|
|
31
|
-
heartbeatPrompt?: string;
|
|
32
31
|
docsPath?: string;
|
|
33
32
|
workspaceNotes?: string[];
|
|
34
33
|
ttsHint?: string;
|
|
@@ -74,7 +73,7 @@ export declare function buildAgentSystemPrompt(params: {
|
|
|
74
73
|
* - tool descriptions (Edit Tool Best Practices → edit tool desc + safe-edit skill)
|
|
75
74
|
* - JIT skills loaded on-demand (Verify Your Work → verify-output skill)
|
|
76
75
|
* - auto-loaded skills (Tool Call Style → tool-narration; Reactions → reactions-{level}; Messaging → channel-routing)
|
|
77
|
-
* - runtime guards / outbound filters (Symi Self-Update → permission gate; NO_REPLY
|
|
76
|
+
* - runtime guards / outbound filters (Symi Self-Update → permission gate; NO_REPLY → outbound filter)
|
|
78
77
|
* Default false; opt in via prompt.compactMode in symi.json.
|
|
79
78
|
*/
|
|
80
79
|
compactMode?: boolean;
|
|
@@ -37,21 +37,14 @@ export interface WithTranscriptUpdateOptions {
|
|
|
37
37
|
error: string;
|
|
38
38
|
runId?: string;
|
|
39
39
|
}) => void;
|
|
40
|
-
/**
|
|
41
|
-
* If true, also append when outbound.action is "deliver-stripped"
|
|
42
|
-
* (heartbeat alert path). Defaults to true — the alert text is the
|
|
43
|
-
* user-visible content and should be transcript-recorded.
|
|
44
|
-
*/
|
|
45
|
-
includeStripped?: boolean;
|
|
46
40
|
}
|
|
47
41
|
/**
|
|
48
42
|
* Returns a TurnMiddleware that appends the AgentTurnResult.text to the
|
|
49
43
|
* session transcript after the inner runner completes.
|
|
50
44
|
*
|
|
51
45
|
* Skip conditions:
|
|
52
|
-
* - outbound.action === "drop" (NO_REPLY
|
|
46
|
+
* - outbound.action === "drop" (NO_REPLY — no message)
|
|
53
47
|
* - empty / whitespace-only text
|
|
54
|
-
* - outbound.action === "deliver-stripped" AND includeStripped=false
|
|
55
48
|
*
|
|
56
49
|
* The middleware does NOT mutate the turn result — the append is a
|
|
57
50
|
* post-turn side effect. The result is returned unchanged regardless of
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { ReplyPayload } from "../types.js";
|
|
2
2
|
import { type ResponsePrefixContext } from "./response-prefix-template.js";
|
|
3
|
-
export type NormalizeReplySkipReason = "empty" | "silent"
|
|
3
|
+
export type NormalizeReplySkipReason = "empty" | "silent";
|
|
4
4
|
export type NormalizeReplyOptions = {
|
|
5
5
|
responsePrefix?: string;
|
|
6
6
|
/** Context for template variable interpolation in responsePrefix */
|
|
7
7
|
responsePrefixContext?: ResponsePrefixContext;
|
|
8
|
-
onHeartbeatStrip?: () => void;
|
|
9
|
-
stripHeartbeat?: boolean;
|
|
10
8
|
silentToken?: string;
|
|
11
9
|
onSkip?: (reason: NormalizeReplySkipReason) => void;
|
|
12
10
|
};
|
|
@@ -21,7 +21,6 @@ export type ReplyDispatcherOptions = {
|
|
|
21
21
|
/** Dynamic context provider for response prefix template interpolation.
|
|
22
22
|
* Called at normalization time, after model selection is complete. */
|
|
23
23
|
responsePrefixContextProvider?: () => ResponsePrefixContext;
|
|
24
|
-
onHeartbeatStrip?: () => void;
|
|
25
24
|
onIdle?: () => void;
|
|
26
25
|
onError?: ReplyDispatchErrorHandler;
|
|
27
26
|
onSkip?: ReplyDispatchSkipHandler;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export declare const SYMIPULSE_TOKEN = "SYMIPULSE_OK";
|
|
2
|
-
/** @deprecated Use SYMIPULSE_TOKEN instead */
|
|
3
|
-
export declare const HEARTBEAT_TOKEN = "SYMIPULSE_OK";
|
|
4
1
|
export declare const SILENT_REPLY_TOKEN = "NO_REPLY";
|
|
5
2
|
export declare function isSilentReplyText(text: string | undefined, token?: string): boolean;
|
|
6
3
|
export declare function isSilentReplyPrefixText(text: string | undefined, token?: string): boolean;
|