@symerian/symi 3.3.0 → 3.3.2
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-B2IkIBj2.js → agent-BED0HDsS.js} +2 -5
- package/dist/{agent-BrIHHGnC.js → agent-pDOR_idq.js} +25 -28
- package/dist/{agent-scope-2la27US0.js → agent-scope-B_oqIiaD.js} +6 -6
- package/dist/{agents-B57SUSPt.js → agents-mZX2a3hp.js} +2 -2
- package/dist/{agents.config-COMcEDAk.js → agents.config-B_LFeRQS.js} +3 -3
- package/dist/{audit-B58SlbPa.js → audit-B_HL4UJ_.js} +26 -26
- package/dist/{auth-CC9_WXMi.js → auth-BbwD4lRX.js} +3 -3
- package/dist/{auth-choice-B6iYCDVN.js → auth-choice-BgCnInKE.js} +9 -9
- package/dist/{auth-choice-Z1qCZxwg.js → auth-choice-nKtOJ3wF.js} +1 -1
- package/dist/{auth-profiles-8vSEr9B4.js → auth-profiles-CPlXilKu.js} +9 -9
- package/dist/{auth-profiles-CZTGpbyT.js → auth-profiles-duUuQXeC.js} +2 -2
- package/dist/{auth-token-DpYUPTNG.js → auth-token-DTj2WrbV.js} +3 -3
- package/dist/{banner-QsnCDxXH.js → banner-C2jUZyMq.js} +1 -1
- package/dist/{bindings-CiRAK4tH.js → bindings-9LSA3Jr1.js} +2 -2
- package/dist/{bonjour-discovery-lp5P_YUR.js → bonjour-discovery-CU1mz7AC.js} +3 -3
- package/dist/{browser-cli-_9G3GBJS.js → browser-cli-C-Q0t9y_.js} +28 -28
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +28 -31
- package/dist/bundled/bootstrap-extra-files/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +27 -27
- package/dist/{call-DLBaLOHo.js → call-Du4CT1Hp.js} +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{catalog-CNZxYA15.js → catalog-BEREnWaa.js} +4 -4
- package/dist/{channel-options-DckWOMWG.js → channel-options-DBKd8H2k.js} +5 -5
- package/dist/{channel-options-Cj-xJAMD.js → channel-options-DRzIcaL1.js} +1 -1
- package/dist/{channel-selection-BGtIUbFL.js → channel-selection-BvIcXQLj.js} +2 -2
- package/dist/{channels-cli-Y8CGJ_qQ.js → channels-cli-CdfROBlW.js} +95 -95
- package/dist/{channels-cli-CIq4PFA0.js → channels-cli-CxUB3oX1.js} +10 -10
- package/dist/{channels-status-issues-rRBNHH7B.js → channels-status-issues-DC8vgOMo.js} +1 -1
- package/dist/{chrome-BgQbis3t.js → chrome-CejiigNy.js} +2 -2
- package/dist/{chrome-sQI2Ex5S.js → chrome-owBWinlj.js} +7 -7
- package/dist/{chunk-CKgSHf7u.js → chunk-DQGU0F8t.js} +2 -2
- package/dist/{clack-prompter-CR9tYooX.js → clack-prompter-CWQQn_CK.js} +5 -5
- package/dist/{cli--omJsLkl.js → cli-CzEP9cIM.js} +7 -7
- package/dist/cli-DWcoPSRG.js +128 -0
- package/dist/{client-D8iTVY4F.js → client-ZZqt0H0-.js} +7 -7
- package/dist/{clipboard-C9NQe8TV.js → clipboard-McRwF3r0.js} +1 -1
- package/dist/{command-registry-bozDt85D.js → command-registry-5O5dCHsD.js} +10 -10
- package/dist/{commands-sNCgvbpu.js → commands-B3UrgxIz.js} +2 -2
- package/dist/{commands-registry-CRkL6mTz.js → commands-registry-DaPrWQSe.js} +3 -3
- package/dist/{commands-registry-DXK4Ortm.js → commands-registry-W2GQIywv.js} +6 -6
- package/dist/{completion-cli-FXkVKM19.js → completion-cli-D4wYjxBG.js} +5 -5
- package/dist/{completion-cli-9qQYFUPk.js → completion-cli-DqrFJhG4.js} +2 -2
- package/dist/{config-fTqqDRAc.js → config-CphS_6eg.js} +9 -9
- package/dist/{config-cli-BexhS7Qb.js → config-cli-BE2vvf40.js} +15 -15
- package/dist/{config-cli-C3D7beGW.js → config-cli-CfA5xnD-.js} +1 -1
- package/dist/{config-guard-IteQa1rq.js → config-guard-B5BwQ-AP.js} +23 -23
- package/dist/{config-validation-B05t9fma.js → config-validation-A2rXGvVY.js} +2 -2
- package/dist/{configure-0e3ty1G9.js → configure-CPY4n9mx.js} +26 -26
- package/dist/{configure-BWXNd2TO.js → configure-DYDsHAWF.js} +2 -2
- package/dist/{consolidate-BaeR2tIX.js → consolidate-7Usm-b2g.js} +5 -5
- package/dist/{control-service-BDMq-0pg.js → control-service-CMVDL3Yl.js} +5 -5
- package/dist/{control-ui-assets-muBwnb6-.js → control-ui-assets-DUhvOLUL.js} +4 -4
- package/dist/{conversation-label-B4d5pKXr.js → conversation-label-CS5Zjc4w.js} +1 -1
- package/dist/{conversation-label-WjwKgn7n.js → conversation-label-tLwAlqLf.js} +1 -1
- package/dist/{cron-cli-DvDr2Uxo.js → cron-cli-DR4W075u.js} +21 -21
- package/dist/{daemon-cli-DiLogoCM.js → daemon-cli-B__05b-d.js} +21 -21
- package/dist/{daemon-runtime-C3dBpZhs.js → daemon-runtime-BD-3XS8R.js} +4 -4
- package/dist/{deliver-B_Fv-dS9.js → deliver-63FtOVMC.js} +8 -8
- package/dist/{deliver-B_jXI55b.js → deliver-BY0HHHHB.js} +18 -18
- package/dist/{deliver-CRqS1O8w.js → deliver-DcP6aVt4.js} +1 -1
- package/dist/{deliver-B_Gz2_tA.js → deliver-i5knkyHl.js} +1 -1
- package/dist/{delivery-queue-CeY346SK.js → delivery-queue-DDs84baU.js} +2 -2
- package/dist/{deps-Du8ZcRHN.js → deps-DD_ZCq3v.js} +1 -1
- package/dist/{devices-cli-BFPrh5bu.js → devices-cli-CJom2K8b.js} +19 -19
- package/dist/{diagnostic-oeL366QK.js → diagnostic-CwF3MnBL.js} +1 -1
- package/dist/{diagnostics-3x3usVgE.js → diagnostics-DxdqTfpW.js} +1 -1
- package/dist/{directory-cli-BUBucKQI.js → directory-cli-BwhEj1FE.js} +19 -19
- package/dist/{dm-policy-shared-BcXoqtVd.js → dm-policy-shared-C1TQOlkZ.js} +2 -2
- package/dist/{dns-cli-B6QTNBXV.js → dns-cli-DzQDEQM2.js} +17 -17
- package/dist/{dock-n_MeJBcj.js → dock-CnGWTXL4.js} +3 -3
- package/dist/{docs-cli-C2xEH6jC.js → docs-cli--T-77Ujn.js} +13 -13
- package/dist/{doctor-completion-K1dL1s3P.js → doctor-completion-C6M7eRb_.js} +4 -4
- package/dist/{doctor-completion-CcHk8myN.js → doctor-completion-DkwAZ_yS.js} +1 -1
- package/dist/{doctor-config-flow-Dl08K6Q3.js → doctor-config-flow-4UT3396o.js} +10 -10
- package/dist/entry.js +1 -1
- package/dist/{env-B7UUyzd_.js → env-B97Ms861.js} +2 -2
- package/dist/{errors-BgCjRT2k.js → errors-BkfLlDKo.js} +1 -1
- package/dist/{errors-CBVhQiQ9.js → errors-Z-WkF18Q.js} +1 -1
- package/dist/{exec-BcvUYCcV.js → exec-DKyLtSjm.js} +2 -2
- package/dist/{exec-approvals-BWtVKlN2.js → exec-approvals-CZOc8M5w.js} +3 -3
- package/dist/{exec-approvals-cli-SDF4LICf.js → exec-approvals-cli-D-MLmhzh.js} +25 -25
- package/dist/extensionAPI.js +5 -5
- package/dist/{fetch-guard-BWofyagX.js → fetch-guard-DG6T0ZdL.js} +2 -2
- package/dist/{frontmatter-B5iYTsZP.js → frontmatter-B6IdJ7UK.js} +2 -2
- package/dist/{frontmatter-vaw8OX7Y.js → frontmatter-BzAaXBfE.js} +3 -3
- package/dist/{fs-safe-CR_3Yr4x.js → fs-safe-B6nMaZqV.js} +1 -1
- package/dist/{gateway-cli-CAFWFnSX.js → gateway-cli-Dm5RZoKM.js} +433 -153
- package/dist/{gateway-cli-CzD6faIt.js → gateway-cli-K_XVNWQc.js} +315 -35
- package/dist/{gateway-rpc-o8CJkHuM.js → gateway-rpc-CUIXRk2t.js} +3 -3
- package/dist/{github-copilot-token-DTYkb2IC.js → github-copilot-token-BTNK6Tcd.js} +2 -2
- package/dist/{glass-ui-ws-Bbs2mIij.js → glass-ui-ws-B_7JgOGU.js} +11 -11
- package/dist/{glass-ui-ws-Dsez9bGF.js → glass-ui-ws-BbsrTxei.js} +105 -105
- package/dist/{gmail-setup-utils-CLvOQ6kY.js → gmail-setup-utils-D5G00y8h.js} +5 -5
- package/dist/{health-iJ9JzccO.js → health-BdxlhiXA.js} +13 -13
- package/dist/{health-format-CxAXRqzB.js → health-format-39e76m9p.js} +1 -1
- package/dist/{help-format-BWTv-lf6.js → help-format-BI_G2p1e.js} +1 -1
- package/dist/{helpers-BtwjKsDp.js → helpers-BBypnAYf.js} +1 -1
- package/dist/{hooks-cli-BEYoHsqh.js → hooks-cli-D5S_h70_.js} +87 -87
- package/dist/{hooks-cli-DNlmk6eB.js → hooks-cli-DyiztpNG.js} +8 -8
- package/dist/{hooks-status-D9SOPTTY.js → hooks-status-DLHEahg_.js} +3 -3
- package/dist/{image-ops-BkR5mVOY.js → image-ops-C-gIIp7Q.js} +2 -2
- package/dist/{inbound-context-CICDRKxY.js → inbound-context-CJj1VfzK.js} +2 -2
- package/dist/{inbound-context-B4B7i7oM.js → inbound-context-DqAyGDbE.js} +2 -2
- package/dist/index.js +90 -90
- package/dist/{inspect-XD55qAEL.js → inspect-BDzd6yBs.js} +1 -1
- package/dist/{install-safe-path-odQNUvjd.js → install-safe-path-CQXx3s9R.js} +1 -1
- package/dist/{installs-DLhIne1t.js → installs-CLp95gcX.js} +5 -5
- package/dist/{internal-CBKiu8Jv.js → internal-CHnZdvRy.js} +1 -1
- package/dist/{legacy-names-BVA_sKnb.js → legacy-names-C0hZiM-7.js} +1 -1
- package/dist/{lifecycle-core-CcinwCvM.js → lifecycle-core-_BlNODTH.js} +9 -9
- package/dist/{links-C6mXo5Yj.js → links-CSaUKNKm.js} +1 -1
- package/dist/llm-slug-generator.js +27 -27
- package/dist/{local-roots-C0G03E-R.js → local-roots-JhQs5w0I.js} +3 -3
- package/dist/{logging-CMolPIQB.js → logging-B96FQvnn.js} +2 -2
- package/dist/{logs-cli--Wek899G.js → logs-cli-BEWOyW5R.js} +20 -20
- package/dist/{manager-Bmh-pcUv.js → manager-BT2SbOdg.js} +6 -6
- package/dist/{manager-CS1vxold.js → manager-BTtaJXdu.js} +13 -13
- package/dist/{manager-9Rt8-xIT.js → manager-TrK63P2M.js} +1 -1
- package/dist/{manager-Do0-i7vp.js → manager-ue49bRVP.js} +1 -1
- package/dist/{manifest-registry-B4I9g0CL.js → manifest-registry-D7Qup2Vq.js} +3 -3
- package/dist/{manifest-registry-Cc80pffV.js → manifest-registry-DsTUFMvZ.js} +1 -1
- package/dist/{markdown-tables-jlJYpF1X.js → markdown-tables-GTLvbzuR.js} +2 -2
- package/dist/{markdown-tables-D0bwB4O7.js → markdown-tables-ptfgMe6b.js} +1 -1
- package/dist/{memory-ofHIUCzf.js → memory-Czxk_hJw.js} +7 -7
- package/dist/{memory-BduQaKuC.js → memory-DJN1Q1jq.js} +2 -2
- package/dist/{memory-cli-LXH0BNmI.js → memory-cli-B-nQp5HP.js} +16 -16
- package/dist/{memory-cli-BCz9iNCM.js → memory-cli-C9ZqpaaB.js} +2 -2
- package/dist/{message-channel-j44ChSJV.js → message-channel-C_V8IAYx.js} +1 -1
- package/dist/{model-BBL3doiY.js → model-BKtw-Bqs.js} +1 -1
- package/dist/{model-catalog-D8YRs6r8.js → model-catalog-DKBhNiWm.js} +4 -4
- package/dist/{model-picker-CdmjvvmL.js → model-picker-DKzvan7c.js} +3 -3
- package/dist/{models-cli-CdL5Tf5E.js → models-cli-CuHQFbs7.js} +9 -9
- package/dist/{models-cli-DrJsggrX.js → models-cli-D8rsqzuW.js} +91 -91
- package/dist/{models-config-BCa11tVc.js → models-config-CFUwiu4W.js} +3 -3
- package/dist/{models-DTHdIg0A.js → models-oqT-RVMM.js} +2 -2
- package/dist/{node-cli-Dl-lvH1N.js → node-cli-CgWAxe-K.js} +43 -43
- package/dist/{node-service-O5CpXu6c.js → node-service-tPO_yUk7.js} +1 -1
- package/dist/{nodes-cli-C9pjIduh.js → nodes-cli-CprJ5K63.js} +25 -25
- package/dist/{nodes-screen-B_D8bZhT.js → nodes-screen-JELuBMBi.js} +3 -3
- package/dist/{note-1QdZVD7W.js → note-CHrtEumO.js} +2 -2
- package/dist/{npm-registry-spec-BQ7yzKIT.js → npm-registry-spec-BXw_6vF6.js} +4 -4
- package/dist/{onboard-Cr1Rd93U.js → onboard-BICXrIV1.js} +20 -20
- package/dist/{onboard-3VcPRZV5.js → onboard-D-xPcbdk.js} +1 -1
- package/dist/{onboard-channels-CXqIlUcV.js → onboard-channels-CiLPgwMl.js} +13 -13
- package/dist/{onboard-channels-DmvTuYe_.js → onboard-channels-IZ52XV8A.js} +1 -1
- package/dist/{onboard-custom-DAD9D1fS.js → onboard-custom-Cla8O-Tv.js} +3 -3
- package/dist/{onboard-helpers-C5J9vSm2.js → onboard-helpers-D2mWJnFB.js} +11 -11
- package/dist/{onboard-hooks-D87tRcuX.js → onboard-hooks-DZD-nGLB.js} +11 -11
- package/dist/{onboard-remote-D3CWFQ0_.js → onboard-remote-Bi2BNRnh.js} +3 -3
- package/dist/{onboard-skills-CTv0hBJv.js → onboard-skills-C0XDXvWw.js} +5 -5
- package/dist/{onboarding-D_wPq7hv.js → onboarding-B-jxZvC2.js} +3 -3
- package/dist/{onboarding-Bop5peq2.js → onboarding-BmB9v20h.js} +19 -19
- package/dist/{onboarding.finalize-Pa0bEFjp.js → onboarding.finalize-BejpUEVe.js} +60 -60
- package/dist/{onboarding.finalize-DGwAMlRi.js → onboarding.finalize-DufFKTf4.js} +4 -4
- package/dist/{onboarding.gateway-config-aIrdqmcQ.js → onboarding.gateway-config-BmaAH8uo.js} +23 -23
- package/dist/{openai-model-default-BDH_OYY8.js → openai-model-default-BeRT9S75.js} +4 -4
- package/dist/{pairing-cli-PrIxvqnD.js → pairing-cli-DdtW6Nu-.js} +17 -17
- package/dist/{pairing-store-DmCi9E47.js → pairing-store-mmeniyUt.js} +5 -5
- package/dist/{pairing-token-BmIoXjHZ.js → pairing-token-CURbSHdi.js} +2 -2
- package/dist/{path-env-CRW1aXZp.js → path-env-DuQralyy.js} +3 -3
- package/dist/{paths-Cqn-zk3M.js → paths-BSzKwaxE.js} +1 -1
- package/dist/paths-BeAyfCRg.js +127 -0
- package/dist/{paths-CdGa1jlU.js → paths-CJcw9nbZ.js} +3 -3
- package/dist/{paths-DvXvD4Xu.js → paths-Dc6A9_vI.js} +2 -2
- package/dist/{pi-auth-json-DhbhmAvs.js → pi-auth-json-1Z1j1PDI.js} +1 -1
- package/dist/{pi-auth-json-ChKC--mV.js → pi-auth-json-D4Bl4hBw.js} +1 -1
- package/dist/{pi-embedded-hri4e4ie.js → pi-embedded-DoWU3tbW.js} +22 -239
- package/dist/{pi-embedded-helpers-VZo1D4Ck.js → pi-embedded-helpers-BRM8EM4P.js} +5 -5
- package/dist/{pi-tools.policy-DrRZdkk0.js → pi-tools.policy-BBHbN8Nh.js} +6 -6
- package/dist/{plugin-auto-enable-BV-thF8P.js → plugin-auto-enable-BCwyDNSP.js} +4 -4
- package/dist/{plugin-registry-CYEwOWqU.js → plugin-registry-BybhOEu2.js} +5 -5
- package/dist/{plugin-registry-q_UuFncy.js → plugin-registry-CFRFz2CF.js} +1 -1
- 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/get-reply-directives.d.ts +0 -1
- package/dist/plugin-sdk/auto-reply/reply/middleware-transcript-update.d.ts +1 -8
- package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +0 -3
- package/dist/plugin-sdk/auto-reply/reply/normalize-reply.d.ts +1 -3
- package/dist/plugin-sdk/auto-reply/reply/payload-middleware.d.ts +0 -2
- package/dist/plugin-sdk/auto-reply/reply/reply-dispatcher.d.ts +0 -1
- package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +5 -3
- package/dist/plugin-sdk/auto-reply/tokens.d.ts +0 -3
- package/dist/plugin-sdk/auto-reply/types.d.ts +0 -3
- package/dist/plugin-sdk/gateway/outbound-filter.d.ts +6 -11
- package/dist/plugin-sdk/index.js +6 -6
- package/dist/plugin-sdk/infra/agent-events.d.ts +0 -1
- package/dist/{plugins-BG2b7dR_.js → plugins-CcVzjOo_.js} +1 -1
- package/dist/{plugins-CYQOjCDt.js → plugins-DuuHorqi.js} +3 -3
- package/dist/{plugins-cli-DE_0PdqM.js → plugins-cli-D9jv4SGt.js} +8 -8
- package/dist/{plugins-cli-CR1PAkGv.js → plugins-cli-Dw_F4XTt.js} +86 -86
- package/dist/{ports-DfsXfAsq.js → ports-DRHSHvqY.js} +2 -2
- package/dist/{ports-LzI_-wEZ.js → ports-DqxP-bXz.js} +5 -5
- package/dist/{program-x8XxEZXE.js → program-BijlJds3.js} +13 -13
- package/dist/{program-context-CvgJOZ3Q.js → program-context-f_krhr6H.js} +39 -39
- package/dist/{progress-B6mhJhX6.js → progress-CyPyGCDn.js} +2 -2
- package/dist/{prompt-select-styled-CFeLUnsr.js → prompt-select-styled-D4Dl6PAx.js} +45 -45
- package/dist/{prompt-select-styled-BFV2QYJC.js → prompt-select-styled-wUs9hOXT.js} +4 -4
- package/dist/{prompt-style-DtQMGj0v.js → prompt-style-Cad0BDRS.js} +1 -1
- package/dist/{provider-auth-helpers-D2GLBV7U.js → provider-auth-helpers-B0LgxUJm.js} +1 -1
- package/dist/{provider-auth-helpers-C-Cv3SZA.js → provider-auth-helpers-Dqg9CSy6.js} +7 -7
- package/dist/{push-apns-9XQgEWxs.js → push-apns-C8U43QIp.js} +1 -1
- package/dist/{push-apns-DTqLWoEj.js → push-apns-DBG95KxK.js} +8 -8
- package/dist/{pw-ai-D5WlMgqy.js → pw-ai-BHSw4eGG.js} +8 -8
- package/dist/{pw-ai-Bb4P23-n.js → pw-ai-BW5obXRK.js} +18 -18
- package/dist/{qmd-manager-92cDmzSO.js → qmd-manager-C-J9Sfjk.js} +12 -12
- package/dist/{qmd-manager-D6ABQ2yd.js → qmd-manager-CTHJcHPq.js} +3 -3
- package/dist/{qr-cli-B_kge4ua.js → qr-cli-BIdgVMK1.js} +12 -12
- package/dist/{register.agent-C-p6kDhf.js → register.agent-B0UZREcL.js} +103 -103
- package/dist/{register.agent-D9FfFyh0.js → register.agent-BQa36aBT.js} +12 -12
- package/dist/register.configure-C2da871z.js +129 -0
- package/dist/{register.configure-CtbO9t7v.js → register.configure-DXxKMVFv.js} +11 -11
- package/dist/{register.maintenance-Dy8l8hKt.js → register.maintenance-CU2sJOVr.js} +106 -106
- package/dist/{register.maintenance-h-CVvMpP.js → register.maintenance-DUuHNER1.js} +12 -12
- package/dist/{register.message-CaOagrcp.js → register.message-DIDXm7JJ.js} +81 -81
- package/dist/{register.message-DFytf1Dr.js → register.message-zAQ9mzwS.js} +8 -8
- package/dist/{register.onboard-SunldfQB.js → register.onboard-BQrBlJMk.js} +45 -45
- package/dist/{register.onboard-BAQSWmTB.js → register.onboard-xApCQkav.js} +2 -2
- package/dist/{register.setup-D3uuohUQ.js → register.setup-C3DgnQee.js} +45 -45
- package/dist/{register.setup-BnuPTj2h.js → register.setup-CfJlyVIU.js} +2 -2
- package/dist/{register.status-health-sessions-CPcQpUNU.js → register.status-health-sessions-CZKtQH3R.js} +68 -68
- package/dist/{register.status-health-sessions-azKiEST-.js → register.status-health-sessions-D7eQHV4A.js} +3 -3
- package/dist/{register.subclis-Di2DRNVF.js → register.subclis-DBKLQ-vk.js} +9 -9
- package/dist/{registry-CtguoMhn.js → registry-DKJLAPDB.js} +4 -4
- package/dist/{replies-CgVOirGF.js → replies-BOy28KVL.js} +1 -1
- package/dist/{replies-pnMj7AtP.js → replies-BeK3uuQ8.js} +1 -1
- package/dist/{replies-BUaT9S6J.js → replies-C82xaXm3.js} +3 -3
- package/dist/{replies-CvuXRwhI.js → replies-P7jbK6Bo.js} +3 -3
- package/dist/{reply-prefix-ClUrRCRd.js → reply-prefix-xaWqfM9m.js} +1 -1
- package/dist/{resolve-route-BLDKso2x.js → resolve-route-CIS2tjpz.js} +1 -1
- package/dist/{resolve-route-C0EHjIMD.js → resolve-route-DKhx5C-P.js} +6 -6
- package/dist/{routes-BFfAPz_0.js → routes-BJ2iXVJF.js} +9 -9
- package/dist/{rpc-CQUsmQ6_.js → rpc-CSI4uFgj.js} +3 -3
- package/dist/{run-main-BhJ6M7oy.js → run-main-C_9MD69x.js} +20 -20
- package/dist/{runtime-guard-Btd35-OG.js → runtime-guard-BZ3_1QqS.js} +1 -1
- package/dist/{sandbox-sayuve7z.js → sandbox-CQU7Gcb9.js} +16 -16
- package/dist/{sandbox-cli-Dyh_eqHp.js → sandbox-cli-Ci90LP_X.js} +37 -37
- package/dist/{security-cli-B5XGCe-n.js → security-cli-BfOZ_cJN.js} +47 -47
- package/dist/{send-B-tsyoRw.js → send-BAKkoPOy.js} +10 -10
- package/dist/{send-dfhV1QIV.js → send-DulXmWcG.js} +5 -5
- package/dist/{server-context-hxl_K7eY.js → server-context-BsMQBnUG.js} +11 -11
- package/dist/{server-methods-MUFuMWc_.js → server-methods-B4kcazJq.js} +49 -381
- package/dist/{server-methods-3uA_KwN4.js → server-methods-BLH71I9g.js} +9 -341
- package/dist/{server-node-events-FUPulMjB.js → server-node-events-BercSdmp.js} +82 -82
- package/dist/{server-node-events-DkbyHj1T.js → server-node-events-DO4ug_A0.js} +9 -9
- package/dist/{service-B5aOZmQH.js → service-AP9pR9R5.js} +1 -1
- package/dist/{session-cost-usage-DQjHUno0.js → session-cost-usage-DYcv40ss.js} +3 -3
- package/dist/{session-utils-C6O0Db39.js → session-utils-0F9pB5d6.js} +15 -15
- package/dist/{sessions-oPVoK2gW.js → sessions-DQMaURzb.js} +16 -16
- package/dist/{shared-BJxR-kzm.js → shared-4Z8Ut8Cs.js} +5 -5
- package/dist/{shared-E4KDN3LG.js → shared-DmYHvtn2.js} +3 -3
- package/dist/{skill-commands-CfGPouRa.js → skill-commands-Cwrebyvj.js} +2 -2
- package/dist/{skill-commands-4afIEM1a.js → skill-commands-DP1fshwh.js} +4 -4
- package/dist/{skill-scanner-BGtq5jZi.js → skill-scanner-qMQf6-FN.js} +2 -2
- package/dist/{skills-Kt1PL_Um.js → skills-D0k4o0Ez.js} +2 -2
- package/dist/{skills-BF_e-fYt.js → skills-DL8DjveU.js} +6 -6
- package/dist/{skills-cli-BlFM1U3r.js → skills-cli-BkIH3HKr.js} +19 -19
- package/dist/{skills-install-miTQGOBQ.js → skills-install-C9uT4MR2.js} +9 -9
- package/dist/{skills-remote-Ch1B-1aN.js → skills-remote-Db5Wwr4s.js} +6 -6
- package/dist/{skills-status-CFVFYR-o.js → skills-status-Dx3Lf5iU.js} +4 -4
- package/dist/{sqlite-BKMdYqso.js → sqlite--aBEq1-J.js} +2 -2
- package/dist/{sqlite-CfMLToLW.js → sqlite-DBEvS-Ne.js} +4 -4
- package/dist/{ssrf-LaudpmHD.js → ssrf-Dcgaqg3U.js} +2 -2
- package/dist/{status-BNH-f3PA.js → status-3CIcz22o.js} +4 -4
- package/dist/{status-C7F7r-qN.js → status-BdrH4P1l.js} +1 -1
- package/dist/{status-B-XD80Yl.js → status-DA_sl7Yp.js} +32 -32
- package/dist/{status-CCgqMBwp.js → status-uVc7h7PN.js} +1 -1
- package/dist/{status.update-B9WCVHPy.js → status.update-CQ1vKrEg.js} +4 -4
- package/dist/{subagent-registry-z08a8MUS.js → subagent-registry-CgZDo35C.js} +24 -243
- package/dist/{subsystem-CgepNOk5.js → subsystem-CtH6J8AV.js} +1 -1
- package/dist/{symi-root-7ei1lwo0.js → symi-root-DueRHNOE.js} +1 -1
- package/dist/{synthesis-Dlweuq0p.js → synthesis-B_K7BSX3.js} +27 -27
- package/dist/{synthesis-ByjLMHMS.js → synthesis-DmdaBp-J.js} +5 -5
- package/dist/{synthesis-D4iCZvKx.js → synthesis-DwfzSD3_.js} +7 -7
- package/dist/{synthesis-CjFmYp54.js → synthesis-w1oM0_-6.js} +78 -78
- package/dist/{system-cli-Ccu9utFt.js → system-cli-5_JOcUt0.js} +19 -19
- package/dist/{systemd-ChKNxGyT.js → systemd-9LEEqibe.js} +3 -3
- package/dist/{systemd-hints-hoofHqb7.js → systemd-hints-CeavseQh.js} +4 -4
- package/dist/{systemd-linger-DLgi3jd0.js → systemd-linger-PqG8iGCt.js} +2 -2
- package/dist/{table-Cyd0-LaL.js → table-DkAQzCOR.js} +2 -2
- package/dist/{tailscale-D3KwzQUZ.js → tailscale-D7dC-5EX.js} +3 -3
- package/dist/{thinking-nf5YVDrR.js → thinking-CMIo8E_E.js} +1 -1
- package/dist/{tokens-B24nv23l.js → tokens-BBh6tlmO.js} +1 -4
- package/dist/{tokens-DfB8vBa4.js → tokens-BKbemuIk.js} +2 -5
- package/dist/{tokens-CGqnWNmv.js → tokens-CJgPtOxz.js} +1 -4
- package/dist/{tokens-DJQ4rO24.js → tokens-K3kGchJA.js} +1 -4
- package/dist/{tool-display-D1Hh5TqL.js → tool-display-Dr6VaTg5.js} +2 -2
- package/dist/{tool-loop-detection-BxrJfVQU.js → tool-loop-detection-CSSq5kkt.js} +4 -4
- package/dist/transcript-events-JGGQViao.js +17 -0
- package/dist/{trash-oWw0M_xA.js → trash-BjVrPcAx.js} +2 -2
- package/dist/{tui-DqMRn1zF.js → tui-Bnusp3Vd.js} +12 -12
- package/dist/{tui-cli-sRKxOjmC.js → tui-cli-BY8W9Yjm.js} +43 -43
- package/dist/{unified-runner-CBVGL54b.js → unified-runner-BPgxfuKU.js} +98 -316
- package/dist/{unified-runner-Uyw1gZOm.js → unified-runner-DzycRpag.js} +146 -365
- package/dist/{update-rop24lF7.js → update-BvDXKE6K.js} +3 -3
- package/dist/{update-check-CC111uwU.js → update-check-CZxZhEXr.js} +2 -2
- package/dist/{update-cli-CH7SLjSd.js → update-cli-C4I2k2u9.js} +12 -12
- package/dist/{update-cli-BbtFbkK5.js → update-cli-DYYKfrbM.js} +116 -116
- package/dist/{update-runner-B0L2a2rW.js → update-runner-C8L4XRQb.js} +6 -6
- package/dist/{utils-AQWIWjGu.js → utils-BU8jVQFM.js} +2 -2
- package/dist/{webhooks-cli-CFMpDwWL.js → webhooks-cli-CXbv4eB6.js} +17 -17
- package/dist/{widearea-dns-DxpPXWPv.js → widearea-dns-C5NqCQ3L.js} +2 -2
- package/dist/{with-timeout-Bxn0qVBQ.js → with-timeout-C0UtpXBj.js} +2 -2
- package/dist/{workspace-StbmAqYj.js → workspace-B_xyjOdv.js} +4 -4
- package/dist/{workspace-dirs-B5axjz_-.js → workspace-dirs-gn_0yzFP.js} +1 -1
- package/dist/{ws-FAiTi9-v.js → ws-CahTJvD6.js} +1 -1
- package/package.json +1 -1
- package/dist/cli-iz9sMJ9d.js +0 -128
- 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
- package/dist/plugin-sdk/gateway/server-chat.d.ts +0 -49
- package/dist/register.configure-D69HXLo4.js +0 -129
- package/dist/{boolean-B8-BqKGQ.js → boolean-Wzu0-e0P.js} +0 -0
- package/dist/{boolean-BgXe2hyu.js → boolean-mcn6kL0s.js} +0 -0
- package/dist/{brew-ip7v32wW.js → brew-BoKmB5x9.js} +1 -1
- /package/dist/{chat-type-B2TfTsnW.js → chat-type-B7XD_ESN.js} +0 -0
- /package/dist/{chat-type-BoBpxitL.js → chat-type-BPBtOjer.js} +0 -0
- /package/dist/{chunk-Ds8SZRkS.js → chunk-5H33X8qU.js} +0 -0
- /package/dist/{command-format-CyXZlazG.js → command-format-BvAkTjTI.js} +0 -0
- /package/dist/{github-copilot-token-BUd9oA8x.js → github-copilot-token-B31ugq7R.js} +0 -0
- /package/dist/{input-provenance-iBlnbS1d.js → input-provenance-DsLesw6T.js} +0 -0
- /package/dist/{legacy-names-BlIw4lsD.js → legacy-names-sghWmXe3.js} +0 -0
- /package/dist/{local-roots-DtvYChMM.js → local-roots-WWcVq0Ma.js} +0 -0
- /package/dist/{redact-CozCe54d.js → redact-CSc_2Nka.js} +0 -0
- /package/dist/{redact-DPnDWsnT.js → redact-Dd8jrogi.js} +0 -0
- /package/dist/{secret-equal-DjTAoH50.js → secret-equal-D1BCVB1D.js} +0 -0
- /package/dist/{session-key-DUSb7CCb.js → session-key-B_ZVH1kE.js} +0 -0
- /package/dist/{ssrf-Cirmgays.js → ssrf-CC9kEPCT.js} +0 -0
- /package/dist/{tailnet-BruyvjMC.js → tailnet-LYvn9g3I.js} +0 -0
- /package/dist/{thinking-BTh3b5vY.js → thinking-177f26eg.js} +0 -0
- /package/dist/{transcript-events-BOK6eOU8.js → transcript-events-Ch7wLX-j.js} +0 -0
- /package/dist/{transcript-tools--a2pL_yH.js → transcript-tools-CrMLYORt.js} +0 -0
|
@@ -1,95 +1,95 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { g as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { t as
|
|
9
|
-
import {
|
|
10
|
-
import { n as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { t as
|
|
15
|
-
import { t as
|
|
16
|
-
import { A as
|
|
17
|
-
import {
|
|
18
|
-
import { a as
|
|
19
|
-
import { a as
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import { l as
|
|
24
|
-
import {
|
|
25
|
-
import { n as
|
|
26
|
-
import {
|
|
27
|
-
import { i as
|
|
28
|
-
import { i as
|
|
29
|
-
import { _ as
|
|
30
|
-
import {
|
|
31
|
-
import { c as
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import { n as
|
|
35
|
-
import { a as
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import { t as
|
|
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-
|
|
42
|
-
import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-
|
|
2
|
+
import { D as shouldLogVerbose, H as createInternalHookEvent, M as getChildLogger, O as warn, R as normalizeLogLevel, W as triggerInternalHook, _ as executePluginCommand, b as danger, c as normalizeAnyChannelId, g as clearPluginCommands, h as createPluginRegistry, l as normalizeChannelId, n as CHAT_CHANNEL_ORDER, p as setActivePluginRegistry, v as listPluginCommands, w as logVerbose, y as matchPluginCommand } from "./registry-DKJLAPDB.js";
|
|
3
|
+
import { g as resolveStateDir, u as resolveGatewayPort } from "./paths-BSzKwaxE.js";
|
|
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
|
+
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-CPlXilKu.js";
|
|
7
|
+
import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
|
|
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-DueRHNOE.js";
|
|
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-B_oqIiaD.js";
|
|
12
|
+
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BTNK6Tcd.js";
|
|
13
|
+
import { t as parseBooleanValue } from "./boolean-Wzu0-e0P.js";
|
|
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-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
|
+
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
|
+
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-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
|
+
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-DL8DjveU.js";
|
|
24
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./routes-BJ2iXVJF.js";
|
|
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-Dc6A9_vI.js";
|
|
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-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
|
+
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
|
+
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
|
+
import { t as normalizeChatType } from "./chat-type-B7XD_ESN.js";
|
|
33
|
+
import { n as resolveConversationLabel } from "./conversation-label-CS5Zjc4w.js";
|
|
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-BAKkoPOy.js";
|
|
36
|
+
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CJcw9nbZ.js";
|
|
37
|
+
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-DsLesw6T.js";
|
|
38
|
+
import { t as emitSessionTranscriptUpdate } from "./transcript-events-Ch7wLX-j.js";
|
|
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 { 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
|
+
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-
|
|
46
|
-
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-
|
|
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-
|
|
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-
|
|
54
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
44
|
+
import { t as ensureSymiModelsJson } from "./models-config-CFUwiu4W.js";
|
|
45
|
+
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-1Z1j1PDI.js";
|
|
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-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-Czxk_hJw.js";
|
|
51
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-BTtaJXdu.js";
|
|
52
|
+
import { f as runTasksWithConcurrency } from "./internal-CHnZdvRy.js";
|
|
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
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-GTLvbzuR.js";
|
|
55
55
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CgmRK282.js";
|
|
56
|
-
import { t as fetchWithSsrFGuard } from "./fetch-guard-
|
|
57
|
-
import { n as getDefaultMediaLocalRoots } from "./local-roots-
|
|
58
|
-
import { i as resolveNativeSkillsEnabled, n as isRestartEnabled, r as resolveNativeCommandsEnabled, t as isCommandFlagEnabled } from "./commands-
|
|
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-
|
|
62
|
-
import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-
|
|
56
|
+
import { t as fetchWithSsrFGuard } from "./fetch-guard-DG6T0ZdL.js";
|
|
57
|
+
import { n as getDefaultMediaLocalRoots } from "./local-roots-JhQs5w0I.js";
|
|
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-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
|
+
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
|
-
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-
|
|
65
|
-
import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-
|
|
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-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-
|
|
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-
|
|
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-
|
|
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
|
+
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-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
|
-
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-
|
|
80
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
79
|
+
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BvIcXQLj.js";
|
|
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-B-nQp5HP.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";
|
|
89
89
|
import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
|
|
90
|
+
import path from "node:path";
|
|
90
91
|
import fs, { constants, existsSync, statSync } from "node:fs";
|
|
91
92
|
import os, { homedir } from "node:os";
|
|
92
|
-
import path from "node:path";
|
|
93
93
|
import JSON5 from "json5";
|
|
94
94
|
import fs$1 from "node:fs/promises";
|
|
95
95
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
@@ -101,97 +101,6 @@ import { Type } from "@sinclair/typebox";
|
|
|
101
101
|
import { EventEmitter } from "node:events";
|
|
102
102
|
import SlackBolt from "@slack/bolt";
|
|
103
103
|
|
|
104
|
-
//#region src/auto-reply/heartbeat.ts
|
|
105
|
-
const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
|
|
106
|
-
function stripTokenAtEdges(raw) {
|
|
107
|
-
let text = raw.trim();
|
|
108
|
-
if (!text) return {
|
|
109
|
-
text: "",
|
|
110
|
-
didStrip: false
|
|
111
|
-
};
|
|
112
|
-
const token = SYMIPULSE_TOKEN;
|
|
113
|
-
const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
|
|
114
|
-
if (!text.includes(token)) return {
|
|
115
|
-
text,
|
|
116
|
-
didStrip: false
|
|
117
|
-
};
|
|
118
|
-
let didStrip = false;
|
|
119
|
-
let changed = true;
|
|
120
|
-
while (changed) {
|
|
121
|
-
changed = false;
|
|
122
|
-
const next = text.trim();
|
|
123
|
-
if (next.startsWith(token)) {
|
|
124
|
-
text = next.slice(token.length).trimStart();
|
|
125
|
-
didStrip = true;
|
|
126
|
-
changed = true;
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
|
|
130
|
-
const idx = next.lastIndexOf(token);
|
|
131
|
-
const before = next.slice(0, idx).trimEnd();
|
|
132
|
-
if (!before) text = "";
|
|
133
|
-
else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
|
|
134
|
-
didStrip = true;
|
|
135
|
-
changed = true;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return {
|
|
139
|
-
text: text.replace(/\s+/g, " ").trim(),
|
|
140
|
-
didStrip
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
function stripHeartbeatToken(raw, opts = {}) {
|
|
144
|
-
if (!raw) return {
|
|
145
|
-
shouldSkip: true,
|
|
146
|
-
text: "",
|
|
147
|
-
didStrip: false
|
|
148
|
-
};
|
|
149
|
-
const trimmed = raw.trim();
|
|
150
|
-
if (!trimmed) return {
|
|
151
|
-
shouldSkip: true,
|
|
152
|
-
text: "",
|
|
153
|
-
didStrip: false
|
|
154
|
-
};
|
|
155
|
-
const mode = opts.mode ?? "message";
|
|
156
|
-
const maxAckCharsRaw = opts.maxAckChars;
|
|
157
|
-
const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
|
|
158
|
-
const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
|
|
159
|
-
const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/ /gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
|
|
160
|
-
const trimmedNormalized = stripMarkup(trimmed);
|
|
161
|
-
if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
|
|
162
|
-
shouldSkip: false,
|
|
163
|
-
text: trimmed,
|
|
164
|
-
didStrip: false
|
|
165
|
-
};
|
|
166
|
-
const strippedOriginal = stripTokenAtEdges(trimmed);
|
|
167
|
-
const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
|
|
168
|
-
const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
|
|
169
|
-
if (!picked.didStrip) return {
|
|
170
|
-
shouldSkip: false,
|
|
171
|
-
text: trimmed,
|
|
172
|
-
didStrip: false
|
|
173
|
-
};
|
|
174
|
-
if (!picked.text) return {
|
|
175
|
-
shouldSkip: true,
|
|
176
|
-
text: "",
|
|
177
|
-
didStrip: true
|
|
178
|
-
};
|
|
179
|
-
const rest = picked.text.trim();
|
|
180
|
-
if (mode === "heartbeat") {
|
|
181
|
-
if (rest.length <= maxAckChars) return {
|
|
182
|
-
shouldSkip: true,
|
|
183
|
-
text: "",
|
|
184
|
-
didStrip: true
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
shouldSkip: false,
|
|
189
|
-
text: rest,
|
|
190
|
-
didStrip: true
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
//#endregion
|
|
195
104
|
//#region src/auto-reply/reply/middleware-circuit-breaker.ts
|
|
196
105
|
/**
|
|
197
106
|
* Default recovery prompt — tells the model the previous turn aborted on
|
|
@@ -1148,56 +1057,24 @@ function resolveModelProfile(modelId, userProfiles) {
|
|
|
1148
1057
|
//#endregion
|
|
1149
1058
|
//#region src/gateway/outbound-filter.ts
|
|
1150
1059
|
const SILENT_REPLY_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SILENT_REPLY_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
|
|
1151
|
-
const SYMIPULSE_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SYMIPULSE_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
|
|
1152
1060
|
/** Strict-match check for the bare NO_REPLY token. */
|
|
1153
1061
|
function isBareSilentReply(text) {
|
|
1154
1062
|
if (!text) return false;
|
|
1155
1063
|
return SILENT_REPLY_BARE_RE.test(text);
|
|
1156
1064
|
}
|
|
1157
|
-
/** Strict-match check for the bare SYMIPULSE_OK token. */
|
|
1158
|
-
function isBareSymipulseAck(text) {
|
|
1159
|
-
if (!text) return false;
|
|
1160
|
-
return SYMIPULSE_BARE_RE.test(text);
|
|
1161
|
-
}
|
|
1162
1065
|
/**
|
|
1163
1066
|
* Classify an outbound assistant message at the gateway boundary.
|
|
1164
1067
|
*
|
|
1165
1068
|
* Returns a structured verdict the caller uses to decide whether to
|
|
1166
1069
|
* broadcast / persist a payload. Pure function — no side effects.
|
|
1167
1070
|
*/
|
|
1168
|
-
function classifyOutboundMessage(rawText,
|
|
1071
|
+
function classifyOutboundMessage(rawText, _opts) {
|
|
1169
1072
|
const text = typeof rawText === "string" ? rawText : "";
|
|
1170
1073
|
if (isBareSilentReply(text)) return {
|
|
1171
1074
|
action: "drop",
|
|
1172
1075
|
output: "",
|
|
1173
1076
|
reason: "silent-reply-bare"
|
|
1174
1077
|
};
|
|
1175
|
-
if (opts.isHeartbeat) {
|
|
1176
|
-
const stripped = stripHeartbeatToken(text, {
|
|
1177
|
-
mode: "heartbeat",
|
|
1178
|
-
maxAckChars: opts.heartbeatAckMaxChars
|
|
1179
|
-
});
|
|
1180
|
-
if (stripped.shouldSkip) return {
|
|
1181
|
-
action: "drop",
|
|
1182
|
-
output: "",
|
|
1183
|
-
reason: stripped.didStrip ? "symipulse-heartbeat-ack" : "silent-reply-bare"
|
|
1184
|
-
};
|
|
1185
|
-
if (stripped.didStrip) return {
|
|
1186
|
-
action: "deliver-stripped",
|
|
1187
|
-
output: stripped.text,
|
|
1188
|
-
reason: "symipulse-heartbeat-stripped"
|
|
1189
|
-
};
|
|
1190
|
-
return {
|
|
1191
|
-
action: "deliver",
|
|
1192
|
-
output: text,
|
|
1193
|
-
reason: "deliver"
|
|
1194
|
-
};
|
|
1195
|
-
}
|
|
1196
|
-
if (isBareSymipulseAck(text)) return {
|
|
1197
|
-
action: "drop",
|
|
1198
|
-
output: "",
|
|
1199
|
-
reason: "symipulse-non-heartbeat-bare"
|
|
1200
|
-
};
|
|
1201
1078
|
return {
|
|
1202
1079
|
action: "deliver",
|
|
1203
1080
|
output: text,
|
|
@@ -1205,48 +1082,6 @@ function classifyOutboundMessage(rawText, opts) {
|
|
|
1205
1082
|
};
|
|
1206
1083
|
}
|
|
1207
1084
|
|
|
1208
|
-
//#endregion
|
|
1209
|
-
//#region src/infra/agent-events.ts
|
|
1210
|
-
const seqByRun = /* @__PURE__ */ new Map();
|
|
1211
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
1212
|
-
const runContextById = /* @__PURE__ */ new Map();
|
|
1213
|
-
function registerAgentRunContext(runId, context) {
|
|
1214
|
-
if (!runId) return;
|
|
1215
|
-
const existing = runContextById.get(runId);
|
|
1216
|
-
if (!existing) {
|
|
1217
|
-
runContextById.set(runId, { ...context });
|
|
1218
|
-
return;
|
|
1219
|
-
}
|
|
1220
|
-
if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
|
|
1221
|
-
if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
|
|
1222
|
-
if (context.isHeartbeat !== void 0 && existing.isHeartbeat !== context.isHeartbeat) existing.isHeartbeat = context.isHeartbeat;
|
|
1223
|
-
}
|
|
1224
|
-
function getAgentRunContext(runId) {
|
|
1225
|
-
return runContextById.get(runId);
|
|
1226
|
-
}
|
|
1227
|
-
function clearAgentRunContext(runId) {
|
|
1228
|
-
runContextById.delete(runId);
|
|
1229
|
-
}
|
|
1230
|
-
function emitAgentEvent(event) {
|
|
1231
|
-
const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
|
|
1232
|
-
seqByRun.set(event.runId, nextSeq);
|
|
1233
|
-
const context = runContextById.get(event.runId);
|
|
1234
|
-
const sessionKey = typeof event.sessionKey === "string" && event.sessionKey.trim() ? event.sessionKey : context?.sessionKey;
|
|
1235
|
-
const enriched = {
|
|
1236
|
-
...event,
|
|
1237
|
-
sessionKey,
|
|
1238
|
-
seq: nextSeq,
|
|
1239
|
-
ts: Date.now()
|
|
1240
|
-
};
|
|
1241
|
-
for (const listener of listeners) try {
|
|
1242
|
-
listener(enriched);
|
|
1243
|
-
} catch {}
|
|
1244
|
-
}
|
|
1245
|
-
function onAgentEvent(listener) {
|
|
1246
|
-
listeners.add(listener);
|
|
1247
|
-
return () => listeners.delete(listener);
|
|
1248
|
-
}
|
|
1249
|
-
|
|
1250
1085
|
//#endregion
|
|
1251
1086
|
//#region src/process/lanes.ts
|
|
1252
1087
|
let CommandLane = /* @__PURE__ */ function(CommandLane) {
|
|
@@ -4757,8 +4592,6 @@ function buildAgentSystemPrompt(params) {
|
|
|
4757
4592
|
const reasoningLevel = params.reasoningLevel ?? "off";
|
|
4758
4593
|
const userTimezone = params.userTimezone?.trim();
|
|
4759
4594
|
const skillsPrompt = params.skillsPrompt?.trim();
|
|
4760
|
-
const heartbeatPrompt = params.heartbeatPrompt?.trim();
|
|
4761
|
-
const heartbeatPromptLine = heartbeatPrompt ? `Heartbeat prompt: ${heartbeatPrompt}` : "Heartbeat prompt: (configured)";
|
|
4762
4595
|
const runtimeInfo = params.runtimeInfo;
|
|
4763
4596
|
const runtimeChannel = runtimeInfo?.channel?.trim().toLowerCase();
|
|
4764
4597
|
const runtimeCapabilities = (runtimeInfo?.capabilities ?? []).map((cap) => String(cap).trim()).filter(Boolean);
|
|
@@ -4971,7 +4804,6 @@ function buildAgentSystemPrompt(params) {
|
|
|
4971
4804
|
for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
|
|
4972
4805
|
}
|
|
4973
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}`, "");
|
|
4974
|
-
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.", "");
|
|
4975
4807
|
lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
|
|
4976
4808
|
return lines.filter(Boolean).join("\n");
|
|
4977
4809
|
}
|
|
@@ -5015,10 +4847,8 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
5015
4847
|
ownerDisplay: params.ownerDisplay,
|
|
5016
4848
|
ownerDisplaySecret: params.ownerDisplaySecret,
|
|
5017
4849
|
reasoningTagHint: params.reasoningTagHint,
|
|
5018
|
-
heartbeatPrompt: params.heartbeatPrompt,
|
|
5019
4850
|
skillsPrompt: params.skillsPrompt,
|
|
5020
4851
|
docsPath: params.docsPath,
|
|
5021
|
-
ttsHint: params.ttsHint,
|
|
5022
4852
|
workspaceNotes: params.workspaceNotes,
|
|
5023
4853
|
reactionGuidance: params.reactionGuidance,
|
|
5024
4854
|
promptMode: params.promptMode,
|
|
@@ -5085,7 +4915,7 @@ async function recordLoopOutcome(args) {
|
|
|
5085
4915
|
if (!args.ctx?.sessionKey) return;
|
|
5086
4916
|
try {
|
|
5087
4917
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-I4x9gPY4.js").then((n) => n.n);
|
|
5088
|
-
const { recordToolCallOutcome } = await import("./tool-loop-detection-
|
|
4918
|
+
const { recordToolCallOutcome } = await import("./tool-loop-detection-CSSq5kkt.js");
|
|
5089
4919
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
5090
4920
|
sessionKey: args.ctx.sessionKey,
|
|
5091
4921
|
sessionId: args.ctx?.agentId
|
|
@@ -5106,8 +4936,8 @@ async function runBeforeToolCallHook(args) {
|
|
|
5106
4936
|
const params = args.params;
|
|
5107
4937
|
if (args.ctx?.sessionKey) {
|
|
5108
4938
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-I4x9gPY4.js").then((n) => n.n);
|
|
5109
|
-
const { logToolLoopAction } = await import("./diagnostic-
|
|
5110
|
-
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-
|
|
4939
|
+
const { logToolLoopAction } = await import("./diagnostic-CwF3MnBL.js").then((n) => n.n);
|
|
4940
|
+
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CSSq5kkt.js");
|
|
5111
4941
|
const sessionState = getDiagnosticSessionState({
|
|
5112
4942
|
sessionKey: args.ctx.sessionKey,
|
|
5113
4943
|
sessionId: args.ctx?.agentId
|
|
@@ -5388,6 +5218,47 @@ function splitSdkTools(options) {
|
|
|
5388
5218
|
};
|
|
5389
5219
|
}
|
|
5390
5220
|
|
|
5221
|
+
//#endregion
|
|
5222
|
+
//#region src/infra/agent-events.ts
|
|
5223
|
+
const seqByRun = /* @__PURE__ */ new Map();
|
|
5224
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
5225
|
+
const runContextById = /* @__PURE__ */ new Map();
|
|
5226
|
+
function registerAgentRunContext(runId, context) {
|
|
5227
|
+
if (!runId) return;
|
|
5228
|
+
const existing = runContextById.get(runId);
|
|
5229
|
+
if (!existing) {
|
|
5230
|
+
runContextById.set(runId, { ...context });
|
|
5231
|
+
return;
|
|
5232
|
+
}
|
|
5233
|
+
if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
|
|
5234
|
+
if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
|
|
5235
|
+
}
|
|
5236
|
+
function getAgentRunContext(runId) {
|
|
5237
|
+
return runContextById.get(runId);
|
|
5238
|
+
}
|
|
5239
|
+
function clearAgentRunContext(runId) {
|
|
5240
|
+
runContextById.delete(runId);
|
|
5241
|
+
}
|
|
5242
|
+
function emitAgentEvent(event) {
|
|
5243
|
+
const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
|
|
5244
|
+
seqByRun.set(event.runId, nextSeq);
|
|
5245
|
+
const context = runContextById.get(event.runId);
|
|
5246
|
+
const sessionKey = typeof event.sessionKey === "string" && event.sessionKey.trim() ? event.sessionKey : context?.sessionKey;
|
|
5247
|
+
const enriched = {
|
|
5248
|
+
...event,
|
|
5249
|
+
sessionKey,
|
|
5250
|
+
seq: nextSeq,
|
|
5251
|
+
ts: Date.now()
|
|
5252
|
+
};
|
|
5253
|
+
for (const listener of listeners) try {
|
|
5254
|
+
listener(enriched);
|
|
5255
|
+
} catch {}
|
|
5256
|
+
}
|
|
5257
|
+
function onAgentEvent(listener) {
|
|
5258
|
+
listeners.add(listener);
|
|
5259
|
+
return () => listeners.delete(listener);
|
|
5260
|
+
}
|
|
5261
|
+
|
|
5391
5262
|
//#endregion
|
|
5392
5263
|
//#region src/utils/queue-helpers.ts
|
|
5393
5264
|
function clearQueueSummaryState(state) {
|
|
@@ -5863,15 +5734,6 @@ function normalizeReplyPayload(payload, opts = {}) {
|
|
|
5863
5734
|
text = "";
|
|
5864
5735
|
}
|
|
5865
5736
|
if (text && !trimmed) text = "";
|
|
5866
|
-
if ((opts.stripHeartbeat ?? true) && text?.includes(HEARTBEAT_TOKEN)) {
|
|
5867
|
-
const stripped = stripHeartbeatToken(text, { mode: "message" });
|
|
5868
|
-
if (stripped.didStrip) opts.onHeartbeatStrip?.();
|
|
5869
|
-
if (stripped.shouldSkip && !hasMedia && !hasChannelData) {
|
|
5870
|
-
opts.onSkip?.("heartbeat");
|
|
5871
|
-
return null;
|
|
5872
|
-
}
|
|
5873
|
-
text = stripped.text;
|
|
5874
|
-
}
|
|
5875
5737
|
if (text) text = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
|
|
5876
5738
|
if (!text?.trim() && !hasMedia && !hasChannelData) {
|
|
5877
5739
|
opts.onSkip?.("empty");
|
|
@@ -5882,7 +5744,7 @@ function normalizeReplyPayload(payload, opts = {}) {
|
|
|
5882
5744
|
text
|
|
5883
5745
|
};
|
|
5884
5746
|
const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix;
|
|
5885
|
-
if (effectivePrefix && text &&
|
|
5747
|
+
if (effectivePrefix && text && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
|
|
5886
5748
|
return {
|
|
5887
5749
|
...enrichedPayload,
|
|
5888
5750
|
text
|
|
@@ -5939,7 +5801,7 @@ async function routeReply(params) {
|
|
|
5939
5801
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
5940
5802
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
5941
5803
|
try {
|
|
5942
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
5804
|
+
const { deliverOutboundPayloads } = await import("./deliver-63FtOVMC.js").then((n) => n.n);
|
|
5943
5805
|
return {
|
|
5944
5806
|
ok: true,
|
|
5945
5807
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -10060,8 +9922,7 @@ async function incrementCompactionCount(params) {
|
|
|
10060
9922
|
//#endregion
|
|
10061
9923
|
//#region src/auto-reply/reply/typing-mode.ts
|
|
10062
9924
|
const DEFAULT_GROUP_TYPING_MODE = "message";
|
|
10063
|
-
function resolveTypingMode({ configured, isGroupChat, wasMentioned
|
|
10064
|
-
if (isHeartbeat) return "never";
|
|
9925
|
+
function resolveTypingMode({ configured, isGroupChat, wasMentioned }) {
|
|
10065
9926
|
if (configured) return configured;
|
|
10066
9927
|
if (!isGroupChat || wasMentioned) return "instant";
|
|
10067
9928
|
return DEFAULT_GROUP_TYPING_MODE;
|
|
@@ -10095,12 +9956,11 @@ async function prepareAgentRun(params) {
|
|
|
10095
9956
|
const isFirstTurnInSession = isNewSession || !currentSystemSent;
|
|
10096
9957
|
const isGroupChat = sessionCtx.ChatType === "group";
|
|
10097
9958
|
const wasMentioned = ctx.WasMentioned === true;
|
|
10098
|
-
const isHeartbeat = opts?.isHeartbeat === true;
|
|
10099
9959
|
const typingMode = resolveTypingMode({
|
|
10100
9960
|
configured: sessionCfg?.typingMode ?? agentCfg?.typingMode,
|
|
10101
9961
|
isGroupChat,
|
|
10102
9962
|
wasMentioned,
|
|
10103
|
-
isHeartbeat
|
|
9963
|
+
isHeartbeat: false
|
|
10104
9964
|
});
|
|
10105
9965
|
const shouldInjectGroupIntro = Boolean(isGroupChat && (isFirstTurnInSession || sessionEntry?.groupActivationNeedsSystemIntro));
|
|
10106
9966
|
const groupChatContext = isGroupChat ? buildGroupChatContext({ sessionCtx }) : "";
|
|
@@ -14170,8 +14030,7 @@ async function createModelSelectionState(params) {
|
|
|
14170
14030
|
sessionKey,
|
|
14171
14031
|
parentSessionKey
|
|
14172
14032
|
});
|
|
14173
|
-
|
|
14174
|
-
if (storedOverride?.model && !skipStoredOverride) {
|
|
14033
|
+
if (storedOverride?.model) {
|
|
14175
14034
|
const candidateProvider = storedOverride.provider || defaultProvider;
|
|
14176
14035
|
const key = modelKey(candidateProvider, storedOverride.model);
|
|
14177
14036
|
if (allowedModelKeys.size === 0 || allowedModelKeys.has(key)) {
|
|
@@ -14180,7 +14039,7 @@ async function createModelSelectionState(params) {
|
|
|
14180
14039
|
}
|
|
14181
14040
|
}
|
|
14182
14041
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
14183
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
14042
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-CPlXilKu.js").then((n) => n.t);
|
|
14184
14043
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
14185
14044
|
const providerKey = normalizeProviderId(provider);
|
|
14186
14045
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -20780,7 +20639,6 @@ async function resolveCommandsSystemPromptBundle(params) {
|
|
|
20780
20639
|
userTimeFormat,
|
|
20781
20640
|
contextFiles: injectedFiles,
|
|
20782
20641
|
skillsPrompt,
|
|
20783
|
-
heartbeatPrompt: void 0,
|
|
20784
20642
|
runtimeInfo,
|
|
20785
20643
|
sandboxInfo,
|
|
20786
20644
|
memoryCitationsMode: params.cfg?.memory?.citations
|
|
@@ -23476,7 +23334,7 @@ function resolveExecOverrides(params) {
|
|
|
23476
23334
|
};
|
|
23477
23335
|
}
|
|
23478
23336
|
async function resolveReplyDirectives(params) {
|
|
23479
|
-
const { ctx, cfg, agentId, agentCfg, agentDir, workspaceDir, sessionCtx, sessionEntry, sessionStore, sessionKey, storePath, sessionScope, groupResolution, isGroup, triggerBodyNormalized, commandAuthorized, defaultProvider, defaultModel, provider: initialProvider, model: initialModel,
|
|
23337
|
+
const { ctx, cfg, agentId, agentCfg, agentDir, workspaceDir, sessionCtx, sessionEntry, sessionStore, sessionKey, storePath, sessionScope, groupResolution, isGroup, triggerBodyNormalized, commandAuthorized, defaultProvider, defaultModel, provider: initialProvider, model: initialModel, typing, opts, skillFilter } = params;
|
|
23480
23338
|
let provider = initialProvider;
|
|
23481
23339
|
let model = initialModel;
|
|
23482
23340
|
const commandSource = sessionCtx.BodyForCommands ?? sessionCtx.CommandBody ?? sessionCtx.RawBody ?? sessionCtx.Transcript ?? sessionCtx.BodyStripped ?? sessionCtx.Body ?? ctx.BodyForCommands ?? ctx.CommandBody ?? ctx.RawBody ?? "";
|
|
@@ -23617,8 +23475,7 @@ async function resolveReplyDirectives(params) {
|
|
|
23617
23475
|
defaultModel,
|
|
23618
23476
|
provider,
|
|
23619
23477
|
model,
|
|
23620
|
-
hasModelDirective: directives.hasModelDirective
|
|
23621
|
-
hasResolvedHeartbeatModelOverride
|
|
23478
|
+
hasModelDirective: directives.hasModelDirective
|
|
23622
23479
|
});
|
|
23623
23480
|
provider = modelState.provider;
|
|
23624
23481
|
model = modelState.model;
|
|
@@ -33254,7 +33111,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
33254
33111
|
return;
|
|
33255
33112
|
}
|
|
33256
33113
|
try {
|
|
33257
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33114
|
+
const { deliverOutboundPayloads } = await import("./deliver-63FtOVMC.js").then((n) => n.n);
|
|
33258
33115
|
await deliverOutboundPayloads({
|
|
33259
33116
|
cfg: params.cfg,
|
|
33260
33117
|
channel,
|
|
@@ -33928,20 +33785,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
|
|
|
33928
33785
|
});
|
|
33929
33786
|
let provider = defaultProvider;
|
|
33930
33787
|
let model = defaultModel;
|
|
33931
|
-
let hasResolvedHeartbeatModelOverride = false;
|
|
33932
|
-
if (opts?.isHeartbeat) {
|
|
33933
|
-
const heartbeatRaw = opts.heartbeatModelOverride?.trim() ?? agentCfg?.heartbeat?.model?.trim() ?? "";
|
|
33934
|
-
const heartbeatRef = heartbeatRaw ? resolveModelRefFromString({
|
|
33935
|
-
raw: heartbeatRaw,
|
|
33936
|
-
defaultProvider,
|
|
33937
|
-
aliasIndex
|
|
33938
|
-
}) : null;
|
|
33939
|
-
if (heartbeatRef) {
|
|
33940
|
-
provider = heartbeatRef.ref.provider;
|
|
33941
|
-
model = heartbeatRef.ref.model;
|
|
33942
|
-
hasResolvedHeartbeatModelOverride = true;
|
|
33943
|
-
}
|
|
33944
|
-
}
|
|
33945
33788
|
const workspaceDir = (await ensureAgentWorkspace({
|
|
33946
33789
|
dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
|
|
33947
33790
|
ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
|
|
@@ -34020,8 +33863,7 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
|
|
|
34020
33863
|
groupSubject: sessionEntry.subject ?? sessionCtx.GroupSubject ?? finalized.GroupSubject,
|
|
34021
33864
|
parentSessionKey: sessionCtx.ParentSessionKey
|
|
34022
33865
|
});
|
|
34023
|
-
|
|
34024
|
-
if (!hasResolvedHeartbeatModelOverride && !hasSessionModelOverride && channelModelOverride) {
|
|
33866
|
+
if (!Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim()) && channelModelOverride) {
|
|
34025
33867
|
const resolved = resolveModelRefFromString({
|
|
34026
33868
|
raw: channelModelOverride.model,
|
|
34027
33869
|
defaultProvider,
|
|
@@ -34054,7 +33896,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
|
|
|
34054
33896
|
aliasIndex,
|
|
34055
33897
|
provider,
|
|
34056
33898
|
model,
|
|
34057
|
-
hasResolvedHeartbeatModelOverride,
|
|
34058
33899
|
typing,
|
|
34059
33900
|
opts: resolvedOpts,
|
|
34060
33901
|
skillFilter: mergedSkillFilter
|
|
@@ -34778,54 +34619,6 @@ function withFastAbort(opts) {
|
|
|
34778
34619
|
};
|
|
34779
34620
|
}
|
|
34780
34621
|
|
|
34781
|
-
//#endregion
|
|
34782
|
-
//#region src/auto-reply/reply/middleware-heartbeat-strip.ts
|
|
34783
|
-
/**
|
|
34784
|
-
* Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
|
|
34785
|
-
* replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
|
|
34786
|
-
* decide whether to strip; reads `payload.isError` to give the sanitizer
|
|
34787
|
-
* the right context flag.
|
|
34788
|
-
*
|
|
34789
|
-
* Equivalence claim (proven by tests): for every input shape the chain's
|
|
34790
|
-
* `normalizeStreamingText({text})` would have produced `{ skip, text }`,
|
|
34791
|
-
* this middleware produces the corresponding `PayloadDelivery`:
|
|
34792
|
-
*
|
|
34793
|
-
* skip=true → delivered=false (drop)
|
|
34794
|
-
* skip=false, text=undefined → delivered=true with payload.text undefined
|
|
34795
|
-
* (media-only carry-through case)
|
|
34796
|
-
* skip=false, text=string → delivered=true with payload.text=sanitized
|
|
34797
|
-
*/
|
|
34798
|
-
function withHeartbeatStrip(opts) {
|
|
34799
|
-
let didLogStrip = false;
|
|
34800
|
-
return (next) => async (payload, ctx) => {
|
|
34801
|
-
let text = payload.text;
|
|
34802
|
-
const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
|
|
34803
|
-
if (!ctx.isHeartbeat && typeof text === "string" && text.includes("SYMIPULSE_OK")) {
|
|
34804
|
-
const stripped = stripHeartbeatToken(text, { mode: "message" });
|
|
34805
|
-
if (stripped.didStrip && !didLogStrip) {
|
|
34806
|
-
didLogStrip = true;
|
|
34807
|
-
opts?.onStrip?.();
|
|
34808
|
-
}
|
|
34809
|
-
if (stripped.shouldSkip && !hasMedia) return PayloadDelivery.drop(payload, "drop:heartbeat-token-bare");
|
|
34810
|
-
text = stripped.text;
|
|
34811
|
-
}
|
|
34812
|
-
if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return PayloadDelivery.drop(payload, "drop:silent-reply");
|
|
34813
|
-
if (!text) {
|
|
34814
|
-
if (hasMedia) return next({
|
|
34815
|
-
...payload,
|
|
34816
|
-
text: void 0
|
|
34817
|
-
}, ctx);
|
|
34818
|
-
return PayloadDelivery.drop(payload, "drop:empty");
|
|
34819
|
-
}
|
|
34820
|
-
const sanitized = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
|
|
34821
|
-
if (!sanitized.trim()) return PayloadDelivery.drop(payload, "drop:empty-after-sanitize");
|
|
34822
|
-
return next({
|
|
34823
|
-
...payload,
|
|
34824
|
-
text: sanitized
|
|
34825
|
-
}, ctx);
|
|
34826
|
-
};
|
|
34827
|
-
}
|
|
34828
|
-
|
|
34829
34622
|
//#endregion
|
|
34830
34623
|
//#region src/infra/map-size.ts
|
|
34831
34624
|
function pruneMapToMaxSize(map, maxSize) {
|
|
@@ -35101,25 +34894,22 @@ function withToolResultSerialization(opts) {
|
|
|
35101
34894
|
* session transcript after the inner runner completes.
|
|
35102
34895
|
*
|
|
35103
34896
|
* Skip conditions:
|
|
35104
|
-
* - outbound.action === "drop" (NO_REPLY
|
|
34897
|
+
* - outbound.action === "drop" (NO_REPLY — no message)
|
|
35105
34898
|
* - empty / whitespace-only text
|
|
35106
|
-
* - outbound.action === "deliver-stripped" AND includeStripped=false
|
|
35107
34899
|
*
|
|
35108
34900
|
* The middleware does NOT mutate the turn result — the append is a
|
|
35109
34901
|
* post-turn side effect. The result is returned unchanged regardless of
|
|
35110
34902
|
* append success/failure.
|
|
35111
34903
|
*/
|
|
35112
34904
|
function withTranscriptUpdate(opts) {
|
|
35113
|
-
const includeStripped = opts.includeStripped !== false;
|
|
35114
34905
|
return (next) => async (params) => {
|
|
35115
34906
|
const result = await next(params);
|
|
35116
|
-
if (shouldAppend(result
|
|
34907
|
+
if (shouldAppend(result)) await runAppend(opts, params, result);
|
|
35117
34908
|
return result;
|
|
35118
34909
|
};
|
|
35119
34910
|
}
|
|
35120
|
-
function shouldAppend(result
|
|
34911
|
+
function shouldAppend(result) {
|
|
35121
34912
|
if (result.outbound.action === "drop") return false;
|
|
35122
|
-
if (result.outbound.action === "deliver-stripped" && !includeStripped) return false;
|
|
35123
34913
|
return (typeof result.text === "string" ? result.text.trim() : "").length > 0;
|
|
35124
34914
|
}
|
|
35125
34915
|
async function runAppend(opts, params, result) {
|
|
@@ -35203,7 +34993,6 @@ function buildChannelProfile(opts) {
|
|
|
35203
34993
|
],
|
|
35204
34994
|
payloadMiddlewares: [
|
|
35205
34995
|
withPayloadDropOnEmpty(),
|
|
35206
|
-
withHeartbeatStrip(),
|
|
35207
34996
|
...opts.typingSignaler ? [withTypingSignals({ signaler: opts.typingSignaler })] : [],
|
|
35208
34997
|
withToolResultSerialization(),
|
|
35209
34998
|
withChannelRouting({
|
|
@@ -35232,11 +35021,7 @@ function buildGlassUiProfile(opts) {
|
|
|
35232
35021
|
withModelFallback(),
|
|
35233
35022
|
...opts.transcriptAppender ? [withTranscriptUpdate({ appender: opts.transcriptAppender })] : []
|
|
35234
35023
|
],
|
|
35235
|
-
payloadMiddlewares: [
|
|
35236
|
-
withPayloadDropOnEmpty(),
|
|
35237
|
-
withHeartbeatStrip(),
|
|
35238
|
-
withToolResultSerialization()
|
|
35239
|
-
],
|
|
35024
|
+
payloadMiddlewares: [withPayloadDropOnEmpty(), withToolResultSerialization()],
|
|
35240
35025
|
payloadHandler: createReplyDispatcherHandler(opts.dispatcher)
|
|
35241
35026
|
};
|
|
35242
35027
|
}
|
|
@@ -35377,7 +35162,6 @@ function normalizeReplyPayloadInternal(payload, opts) {
|
|
|
35377
35162
|
return normalizeReplyPayload(payload, {
|
|
35378
35163
|
responsePrefix: opts.responsePrefix,
|
|
35379
35164
|
responsePrefixContext: prefixContext,
|
|
35380
|
-
onHeartbeatStrip: opts.onHeartbeatStrip,
|
|
35381
35165
|
onSkip: opts.onSkip
|
|
35382
35166
|
});
|
|
35383
35167
|
}
|
|
@@ -35400,7 +35184,6 @@ function createReplyDispatcher(options) {
|
|
|
35400
35184
|
responsePrefix: options.responsePrefix,
|
|
35401
35185
|
responsePrefixContext: options.responsePrefixContext,
|
|
35402
35186
|
responsePrefixContextProvider: options.responsePrefixContextProvider,
|
|
35403
|
-
onHeartbeatStrip: options.onHeartbeatStrip,
|
|
35404
35187
|
onSkip: (reason) => options.onSkip?.(payload, {
|
|
35405
35188
|
kind,
|
|
35406
35189
|
reason
|
|
@@ -39094,7 +38877,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
39094
38877
|
}
|
|
39095
38878
|
let commandsRegistry;
|
|
39096
38879
|
async function getCommandsRegistry() {
|
|
39097
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
38880
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-W2GQIywv.js").then((n) => n.t);
|
|
39098
38881
|
return commandsRegistry;
|
|
39099
38882
|
}
|
|
39100
38883
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -39436,11 +39219,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39436
39219
|
const channelName = channelInfo?.name;
|
|
39437
39220
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
39438
39221
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
39439
|
-
import("./resolve-route-
|
|
39440
|
-
import("./inbound-context-
|
|
39222
|
+
import("./resolve-route-DKhx5C-P.js").then((n) => n.r),
|
|
39223
|
+
import("./inbound-context-DqAyGDbE.js").then((n) => n.n),
|
|
39441
39224
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
39442
39225
|
]);
|
|
39443
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-
|
|
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)]);
|
|
39444
39227
|
const route = resolveAgentRoute({
|
|
39445
39228
|
cfg,
|
|
39446
39229
|
channel: "slack",
|
|
@@ -39497,9 +39280,9 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39497
39280
|
});
|
|
39498
39281
|
const deliverSlashPayloads = async (replies) => {
|
|
39499
39282
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
39500
|
-
import("./replies-
|
|
39501
|
-
import("./chunk-
|
|
39502
|
-
import("./markdown-tables-
|
|
39283
|
+
import("./replies-P7jbK6Bo.js").then((n) => n.r),
|
|
39284
|
+
import("./chunk-DQGU0F8t.js").then((n) => n.s),
|
|
39285
|
+
import("./markdown-tables-GTLvbzuR.js").then((n) => n.t)
|
|
39503
39286
|
]);
|
|
39504
39287
|
await deliverSlackSlashReplies({
|
|
39505
39288
|
replies,
|
|
@@ -39552,7 +39335,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39552
39335
|
let nativeCommands = [];
|
|
39553
39336
|
if (nativeEnabled) {
|
|
39554
39337
|
reg = await getCommandsRegistry();
|
|
39555
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
39338
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DP1fshwh.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
39556
39339
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
39557
39340
|
skillCommands,
|
|
39558
39341
|
provider: "slack"
|
|
@@ -43561,7 +43344,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43561
43344
|
if (!apiKeyInfo.apiKey) {
|
|
43562
43345
|
if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
|
|
43563
43346
|
} else if (model.provider === "github-copilot") {
|
|
43564
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
43347
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-BTNK6Tcd.js").then((n) => n.n);
|
|
43565
43348
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
43566
43349
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
43567
43350
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|
|
@@ -43692,7 +43475,6 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
43692
43475
|
ownerDisplay: params.config?.commands?.ownerDisplay,
|
|
43693
43476
|
ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
|
|
43694
43477
|
reasoningTagHint,
|
|
43695
|
-
heartbeatPrompt: void 0,
|
|
43696
43478
|
skillsPrompt,
|
|
43697
43479
|
docsPath: docsPath ?? void 0,
|
|
43698
43480
|
promptMode,
|
|
@@ -48166,7 +47948,6 @@ async function runEmbeddedAttempt(params) {
|
|
|
48166
47948
|
ownerDisplay: params.config?.commands?.ownerDisplay,
|
|
48167
47949
|
ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
|
|
48168
47950
|
reasoningTagHint,
|
|
48169
|
-
heartbeatPrompt: void 0,
|
|
48170
47951
|
skillsPrompt,
|
|
48171
47952
|
docsPath: docsPath ?? void 0,
|
|
48172
47953
|
workspaceNotes,
|
|
@@ -49245,7 +49026,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
49245
49026
|
return;
|
|
49246
49027
|
}
|
|
49247
49028
|
if (model.provider === "github-copilot") {
|
|
49248
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
49029
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-BTNK6Tcd.js").then((n) => n.n);
|
|
49249
49030
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
49250
49031
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
49251
49032
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|
|
@@ -49994,8 +49775,8 @@ async function runAgentTurnImpl(params) {
|
|
|
49994
49775
|
const result = await runEmbeddedPiAgent(buildInternalParams());
|
|
49995
49776
|
const rawText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
|
|
49996
49777
|
const outboundResult = classifyOutboundMessage(rawText, {
|
|
49997
|
-
isHeartbeat:
|
|
49998
|
-
heartbeatAckMaxChars:
|
|
49778
|
+
isHeartbeat: false,
|
|
49779
|
+
heartbeatAckMaxChars: 0
|
|
49999
49780
|
});
|
|
50000
49781
|
const filteredText = outboundResult.output.trim();
|
|
50001
49782
|
const resolvedProvider = result.meta.agentMeta?.provider ?? params.provider ?? "";
|
|
@@ -50052,4 +49833,4 @@ async function runAgentTurn(params) {
|
|
|
50052
49833
|
}
|
|
50053
49834
|
|
|
50054
49835
|
//#endregion
|
|
50055
|
-
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 };
|