@symerian/symi 3.3.0 → 3.3.1
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-BI1-UXxQ.js} +1 -1
- package/dist/{agent-BrIHHGnC.js → agent-DeLysRUa.js} +29 -29
- package/dist/{agent-scope-2la27US0.js → agent-scope-BjEBQhs0.js} +23 -23
- package/dist/{agent-scope-D_MtsuXX.js → agent-scope-DE5eEsvh.js} +2 -2
- package/dist/{agents-B57SUSPt.js → agents-BMRZpxNt.js} +2 -2
- package/dist/{agents.config-COMcEDAk.js → agents.config-BFKM-a83.js} +3 -3
- package/dist/{audit-B58SlbPa.js → audit-DQ_p2Pbq.js} +34 -34
- package/dist/{auth-CC9_WXMi.js → auth-BbwD4lRX.js} +3 -3
- package/dist/{auth-choice-B6iYCDVN.js → auth-choice-BGZsmh6a.js} +9 -9
- package/dist/{auth-choice-Z1qCZxwg.js → auth-choice-T77Ymi34.js} +1 -1
- package/dist/{auth-profiles-CZTGpbyT.js → auth-profiles-B6ISm3Th.js} +5 -5
- package/dist/{auth-profiles-8vSEr9B4.js → auth-profiles-BVtpxYtY.js} +17 -17
- package/dist/{auth-token-DpYUPTNG.js → auth-token-CPluo60n.js} +3 -3
- package/dist/{banner-QsnCDxXH.js → banner-BJHky-bq.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-O7Ic8DI3.js} +28 -28
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +34 -34
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/session-memory/handler.js +33 -33
- package/dist/{call-DLBaLOHo.js → call-CdXXPXpo.js} +13 -13
- 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-BrDTgiiV.js} +5 -5
- package/dist/{channel-options-Cj-xJAMD.js → channel-options-C1yi5h7A.js} +1 -1
- package/dist/{channel-selection-BGtIUbFL.js → channel-selection-BvIcXQLj.js} +2 -2
- package/dist/{channels-cli-CIq4PFA0.js → channels-cli-BYeGzy-G.js} +7 -7
- package/dist/{channels-cli-Y8CGJ_qQ.js → channels-cli-Pxe1OINS.js} +98 -98
- package/dist/{channels-status-issues-rRBNHH7B.js → channels-status-issues-DC8vgOMo.js} +1 -1
- package/dist/{chrome-b556dOQ6.js → chrome-CQnRgvJz.js} +7 -7
- package/dist/{chrome-BgQbis3t.js → chrome-FAf5DZL2.js} +11 -11
- package/dist/{chrome-sQI2Ex5S.js → chrome-NUKborg3.js} +7 -7
- package/dist/{chunk-CKgSHf7u.js → chunk-DQGU0F8t.js} +2 -2
- package/dist/{chunk-Ds8SZRkS.js → chunk-DX6VtywY.js} +1 -1
- package/dist/{clack-prompter-CR9tYooX.js → clack-prompter-CWQQn_CK.js} +5 -5
- package/dist/cli-DFNOC2Ad.js +128 -0
- package/dist/{cli--omJsLkl.js → cli-Dt-wfm_7.js} +4 -4
- package/dist/{client-D8iTVY4F.js → client-Bs2zB0rY.js} +7 -7
- package/dist/{clipboard-C9NQe8TV.js → clipboard-McRwF3r0.js} +1 -1
- package/dist/{command-registry-bozDt85D.js → command-registry-BwbT4ll7.js} +10 -10
- package/dist/{commands-sNCgvbpu.js → commands-B3UrgxIz.js} +2 -2
- package/dist/{commands-registry-CRkL6mTz.js → commands-registry-C5IdtVVy.js} +4 -4
- package/dist/{commands-registry-DXK4Ortm.js → commands-registry-DYk02tmt.js} +6 -6
- package/dist/{completion-cli-9qQYFUPk.js → completion-cli-CyOSA5xZ.js} +2 -2
- package/dist/{completion-cli-FXkVKM19.js → completion-cli-DiNUqrNY.js} +16 -16
- package/dist/{config-fTqqDRAc.js → config-CW8aDVM0.js} +9 -9
- package/dist/{config-cli-BexhS7Qb.js → config-cli-DBU_S417.js} +15 -15
- package/dist/{config-cli-C3D7beGW.js → config-cli-DfG0nukz.js} +1 -1
- package/dist/{config-guard-IteQa1rq.js → config-guard-CNmD3-IC.js} +23 -23
- package/dist/{config-validation-B05t9fma.js → config-validation-Bz5CV181.js} +2 -2
- package/dist/{configure-BWXNd2TO.js → configure-BYu2DI_6.js} +2 -2
- package/dist/{configure-0e3ty1G9.js → configure-BkH4ueot.js} +26 -26
- package/dist/{consolidate-BaeR2tIX.js → consolidate-Cx7qF5Ht.js} +10 -10
- package/dist/{consolidate-C-HKdAJo.js → consolidate-dh1m3X1s.js} +2 -2
- package/dist/{control-service-BDMq-0pg.js → control-service-Drd2sr2o.js} +5 -5
- package/dist/{control-ui-assets-muBwnb6-.js → control-ui-assets-D22DSxhv.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-BTAdnRhX.js} +21 -21
- package/dist/{daemon-cli-DiLogoCM.js → daemon-cli-BY9BFNuw.js} +22 -22
- package/dist/{daemon-runtime-C3dBpZhs.js → daemon-runtime-BH3ZBZXS.js} +13 -13
- package/dist/{deliver-B_Fv-dS9.js → deliver-DZ7ynJYH.js} +8 -8
- package/dist/{deliver-B_Gz2_tA.js → deliver-Dlq2X0K5.js} +4 -4
- package/dist/{deliver-B_jXI55b.js → deliver-kmnOOp9j.js} +22 -22
- package/dist/{delivery-queue-CeY346SK.js → delivery-queue-DDs84baU.js} +2 -2
- package/dist/{deps-Du8ZcRHN.js → deps-i1g0Zpz4.js} +1 -1
- package/dist/{devices-cli-BFPrh5bu.js → devices-cli-Cqi6L8PH.js} +19 -19
- package/dist/{diagnostic-D7z6O7v0.js → diagnostic-CQLyE7_n.js} +1 -1
- package/dist/{diagnostic-oeL366QK.js → diagnostic-CwF3MnBL.js} +1 -1
- package/dist/{diagnostics-3x3usVgE.js → diagnostics-nLP2i_BY.js} +5 -5
- package/dist/{directory-cli-BUBucKQI.js → directory-cli-B0XsBWso.js} +19 -19
- package/dist/{dm-policy-shared-BcXoqtVd.js → dm-policy-shared-CnKffdt_.js} +2 -2
- package/dist/{dns-cli-B6QTNBXV.js → dns-cli-BHWlCG31.js} +17 -17
- package/dist/{dock-n_MeJBcj.js → dock-CnGWTXL4.js} +3 -3
- package/dist/{docs-cli-C2xEH6jC.js → docs-cli-DASNErN-.js} +13 -13
- package/dist/{doctor-completion-K1dL1s3P.js → doctor-completion-D_cwpDAq.js} +4 -4
- package/dist/{doctor-completion-CcHk8myN.js → doctor-completion-DqvmZZEo.js} +1 -1
- package/dist/{doctor-config-flow-Dl08K6Q3.js → doctor-config-flow-BvHSaiFy.js} +15 -15
- 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-CyHTywue.js} +27 -27
- package/dist/extensionAPI.js +4 -4
- 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-BW7tVmn4.js} +5 -5
- package/dist/{fs-safe-CR_3Yr4x.js → fs-safe-DjAKGGJ8.js} +7 -7
- package/dist/{gateway-cli-CAFWFnSX.js → gateway-cli-BBqSqFGV.js} +451 -151
- package/dist/{gateway-cli-CzD6faIt.js → gateway-cli-BYGA5ex3.js} +311 -11
- package/dist/{gateway-rpc-o8CJkHuM.js → gateway-rpc-BJF1iDnx.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-DJnV8nJK.js} +8 -8
- package/dist/{glass-ui-ws-Dsez9bGF.js → glass-ui-ws-NJNiRFL3.js} +105 -105
- package/dist/{gmail-setup-utils-CLvOQ6kY.js → gmail-setup-utils-D5G00y8h.js} +5 -5
- package/dist/{health-iJ9JzccO.js → health-D59E1VfO.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-Bidz8ACz.js} +98 -98
- package/dist/{hooks-cli-DNlmk6eB.js → hooks-cli-CyjEjDSY.js} +5 -5
- package/dist/{hooks-status-D9SOPTTY.js → hooks-status-DLHEahg_.js} +3 -3
- package/dist/{image-ops-BkR5mVOY.js → image-ops-c7_of0HT.js} +12 -12
- 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-op0Ov-v4.js} +4 -4
- package/dist/{install-safe-path-odQNUvjd.js → install-safe-path-B73BkVO3.js} +12 -12
- package/dist/{installs-DLhIne1t.js → installs-ZXEjR9Sp.js} +12 -12
- package/dist/{internal-CBKiu8Jv.js → internal-C3o_xyzP.js} +10 -10
- package/dist/{legacy-names-BVA_sKnb.js → legacy-names-C0hZiM-7.js} +1 -1
- package/dist/{lifecycle-core-CcinwCvM.js → lifecycle-core-zhQYm_ni.js} +10 -10
- package/dist/{links-C6mXo5Yj.js → links-CSaUKNKm.js} +1 -1
- package/dist/llm-slug-generator.js +33 -33
- package/dist/{local-roots-C0G03E-R.js → local-roots-CTriU02e.js} +3 -3
- package/dist/{local-roots-DtvYChMM.js → local-roots-Dm8-ErgQ.js} +3 -3
- package/dist/{logging-CMolPIQB.js → logging-B96FQvnn.js} +2 -2
- package/dist/{logs-cli--Wek899G.js → logs-cli-B7RJ57Dc.js} +20 -20
- package/dist/{manager-CS1vxold.js → manager-9dNT9kNF.js} +22 -22
- package/dist/{manager-9Rt8-xIT.js → manager-CpBl-VGg.js} +1 -1
- package/dist/{manager-Bmh-pcUv.js → manager-Dsdh0rGn.js} +9 -9
- package/dist/{manager-Do0-i7vp.js → manager-t4GthPGw.js} +1 -1
- package/dist/{manifest-registry-Cc80pffV.js → manifest-registry-B2vClvK5.js} +2 -2
- package/dist/{manifest-registry-B4I9g0CL.js → manifest-registry-D7Qup2Vq.js} +3 -3
- package/dist/{markdown-tables-D0bwB4O7.js → markdown-tables-BaWa2kOe.js} +1 -1
- package/dist/{markdown-tables-jlJYpF1X.js → markdown-tables-GTLvbzuR.js} +2 -2
- package/dist/{memory-BduQaKuC.js → memory-B7TJXpqS.js} +2 -2
- package/dist/{memory-ofHIUCzf.js → memory-DcWXMzOH.js} +7 -7
- package/dist/{memory-cli-BCz9iNCM.js → memory-cli-C0WA_nRS.js} +2 -2
- package/dist/{memory-cli-LXH0BNmI.js → memory-cli-xBZPEOeL.js} +22 -22
- package/dist/{message-channel-j44ChSJV.js → message-channel-C_V8IAYx.js} +1 -1
- package/dist/{model-BBL3doiY.js → model-BXWgh5eZ.js} +1 -1
- package/dist/{model-catalog-D8YRs6r8.js → model-catalog-BGVslwAT.js} +4 -4
- package/dist/{model-picker-CdmjvvmL.js → model-picker-aTfyp_mP.js} +3 -3
- package/dist/{models-DTHdIg0A.js → models-IfAFy9bK.js} +2 -2
- package/dist/{models-cli-CdL5Tf5E.js → models-cli-DiB4JqF2.js} +6 -6
- package/dist/{models-cli-DrJsggrX.js → models-cli-h8h_qu3F.js} +94 -94
- package/dist/{models-config-BCa11tVc.js → models-config-DRgHv7Ss.js} +8 -8
- package/dist/{node-cli-Dl-lvH1N.js → node-cli-BPkbqgRt.js} +50 -50
- package/dist/{node-service-O5CpXu6c.js → node-service-DuN9eBL6.js} +1 -1
- package/dist/{nodes-cli-C9pjIduh.js → nodes-cli-C09c6nCf.js} +27 -27
- package/dist/{nodes-screen-B_D8bZhT.js → nodes-screen-CT94yu_w.js} +7 -7
- package/dist/{note-1QdZVD7W.js → note-CHrtEumO.js} +2 -2
- package/dist/{npm-registry-spec-BQ7yzKIT.js → npm-registry-spec-B8X06AqB.js} +12 -12
- package/dist/{onboard-channels-DmvTuYe_.js → onboard-channels-BfzW-9vo.js} +1 -1
- package/dist/{onboard-channels-CXqIlUcV.js → onboard-channels-Deq8QGnM.js} +13 -13
- package/dist/{onboard-custom-DAD9D1fS.js → onboard-custom-DEdRdzNq.js} +3 -3
- package/dist/{onboard-helpers-C5J9vSm2.js → onboard-helpers-DZKHFY2J.js} +16 -16
- package/dist/{onboard-hooks-D87tRcuX.js → onboard-hooks-DZZM8goM.js} +11 -11
- package/dist/{onboard-3VcPRZV5.js → onboard-iL7Z0wKJ.js} +1 -1
- package/dist/{onboard-remote-D3CWFQ0_.js → onboard-remote-dn4L5WdE.js} +3 -3
- package/dist/{onboard-Cr1Rd93U.js → onboard-sMgEOBjV.js} +20 -20
- package/dist/{onboard-skills-CTv0hBJv.js → onboard-skills-DGHye9Q3.js} +5 -5
- package/dist/{onboarding-D_wPq7hv.js → onboarding-70YKbZi6.js} +3 -3
- package/dist/{onboarding-Bop5peq2.js → onboarding-BjXYbWlg.js} +19 -19
- package/dist/{onboarding.finalize-DGwAMlRi.js → onboarding.finalize-Ch3V08eY.js} +4 -4
- package/dist/{onboarding.finalize-Pa0bEFjp.js → onboarding.finalize-dU_CtL43.js} +62 -62
- package/dist/{onboarding.gateway-config-aIrdqmcQ.js → onboarding.gateway-config-DfF8Rxvn.js} +23 -23
- package/dist/{openai-model-default-BDH_OYY8.js → openai-model-default-D1NFHFF_.js} +4 -4
- package/dist/{pairing-cli-PrIxvqnD.js → pairing-cli-CJv8LQfb.js} +17 -17
- package/dist/{pairing-store-DmCi9E47.js → pairing-store-CxT0UGxd.js} +5 -5
- package/dist/{pairing-token-BmIoXjHZ.js → pairing-token-DorpwP8O.js} +9 -9
- 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-DaQrPPet.js} +2 -2
- package/dist/{pi-auth-json-ChKC--mV.js → pi-auth-json-BzuhVcKu.js} +1 -1
- package/dist/{pi-auth-json-DhbhmAvs.js → pi-auth-json-DGZH6URT.js} +5 -5
- package/dist/{pi-embedded-hri4e4ie.js → pi-embedded-DOCVZrmx.js} +20 -64
- package/dist/{pi-embedded-helpers-VZo1D4Ck.js → pi-embedded-helpers-Be-EeyzH.js} +9 -9
- package/dist/{pi-tools.policy-DrRZdkk0.js → pi-tools.policy-qwS9SXOa.js} +6 -6
- package/dist/{plugin-auto-enable-BV-thF8P.js → plugin-auto-enable-zDUaiaf2.js} +4 -4
- package/dist/{plugin-registry-CYEwOWqU.js → plugin-registry-BgGVB3kW.js} +5 -5
- package/dist/{plugin-registry-q_UuFncy.js → plugin-registry-CP2mbhwk.js} +1 -1
- package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +0 -1
- package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +0 -3
- package/dist/plugin-sdk/auto-reply/reply/payload-middleware.d.ts +0 -2
- package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +5 -3
- package/dist/plugin-sdk/auto-reply/types.d.ts +0 -3
- package/dist/plugin-sdk/gateway/outbound-filter.d.ts +4 -7
- package/dist/plugin-sdk/infra/agent-events.d.ts +0 -1
- package/dist/{plugins-CYQOjCDt.js → plugins-DuuHorqi.js} +3 -3
- package/dist/{plugins-cli-DE_0PdqM.js → plugins-cli-1wkCRsFe.js} +5 -5
- package/dist/{plugins-cli-CR1PAkGv.js → plugins-cli-B_Gtx3LU.js} +89 -89
- package/dist/{plugins-BG2b7dR_.js → plugins-yymezpEd.js} +2 -2
- package/dist/{ports-DfsXfAsq.js → ports-ChuJYhEL.js} +2 -2
- package/dist/{ports-LzI_-wEZ.js → ports-EAVAOFyK.js} +7 -7
- package/dist/{program-x8XxEZXE.js → program-UyCr49qs.js} +10 -10
- package/dist/{program-context-CvgJOZ3Q.js → program-context-C7uCS8z7.js} +39 -39
- package/dist/{progress-B6mhJhX6.js → progress-CyPyGCDn.js} +2 -2
- package/dist/{prompt-select-styled-BFV2QYJC.js → prompt-select-styled-BRcRFLzB.js} +4 -4
- package/dist/{prompt-select-styled-CFeLUnsr.js → prompt-select-styled-DcMra8CK.js} +54 -54
- package/dist/{prompt-style-DtQMGj0v.js → prompt-style-Cad0BDRS.js} +1 -1
- package/dist/{provider-auth-helpers-D2GLBV7U.js → provider-auth-helpers-BJTb9xI0.js} +1 -1
- package/dist/{provider-auth-helpers-C-Cv3SZA.js → provider-auth-helpers-Xn1TAPPY.js} +8 -8
- package/dist/{push-apns-DTqLWoEj.js → push-apns-Aaqf9WKI.js} +10 -10
- package/dist/{push-apns-9XQgEWxs.js → push-apns-Bfqnchj6.js} +1 -1
- package/dist/{pw-ai-BFZrohva.js → pw-ai-B3qisJP1.js} +1 -1
- package/dist/{pw-ai-Bb4P23-n.js → pw-ai-C-ddUgTA.js} +20 -20
- package/dist/{pw-ai-D5WlMgqy.js → pw-ai-DJrnU1ja.js} +12 -12
- package/dist/{qmd-manager-92cDmzSO.js → qmd-manager-D5kqCz-Y.js} +28 -28
- package/dist/{qmd-manager-D6ABQ2yd.js → qmd-manager-DrM6m9z1.js} +7 -7
- package/dist/{qr-cli-B_kge4ua.js → qr-cli-B_mw4i0R.js} +12 -12
- package/dist/{register.agent-C-p6kDhf.js → register.agent-BqKNzdaW.js} +108 -108
- package/dist/{register.agent-D9FfFyh0.js → register.agent-vAJ0_4m0.js} +9 -9
- package/dist/register.configure-7TmTqCgU.js +129 -0
- package/dist/{register.configure-CtbO9t7v.js → register.configure-BzgavjpU.js} +8 -8
- package/dist/{register.maintenance-Dy8l8hKt.js → register.maintenance-6Wz4HXlm.js} +109 -109
- package/dist/{register.maintenance-h-CVvMpP.js → register.maintenance-BJO0RCk9.js} +9 -9
- package/dist/{register.message-DFytf1Dr.js → register.message-CW9PahRi.js} +5 -5
- package/dist/{register.message-CaOagrcp.js → register.message-XYivyrQJ.js} +81 -81
- package/dist/{register.onboard-SunldfQB.js → register.onboard-BgwkmP4D.js} +45 -45
- package/dist/{register.onboard-BAQSWmTB.js → register.onboard-MWRC29wD.js} +2 -2
- package/dist/{register.setup-D3uuohUQ.js → register.setup-7OoAqQG_.js} +48 -48
- package/dist/{register.setup-BnuPTj2h.js → register.setup-V-arsKvb.js} +2 -2
- package/dist/{register.status-health-sessions-azKiEST-.js → register.status-health-sessions-1VnuXhGM.js} +3 -3
- package/dist/{register.status-health-sessions-CPcQpUNU.js → register.status-health-sessions-Bgg1sdY_.js} +68 -68
- package/dist/{register.subclis-Di2DRNVF.js → register.subclis-DpPYIqkP.js} +9 -9
- package/dist/{registry-C-JddWwo.js → registry-9AaJQms1.js} +2 -2
- package/dist/{registry-CtguoMhn.js → registry-DKJLAPDB.js} +4 -4
- package/dist/{replies-CvuXRwhI.js → replies-BZN1LuJP.js} +3 -3
- package/dist/{replies-BUaT9S6J.js → replies-Dqft-42v.js} +3 -3
- package/dist/{reply-prefix-ClUrRCRd.js → reply-prefix-CyLplifX.js} +1 -1
- package/dist/{reply-prefix-ChIeKp-P.js → reply-prefix-DkDTGwTs.js} +1 -1
- package/dist/{resolve-route-BLDKso2x.js → resolve-route-CIA0TSsF.js} +4 -4
- package/dist/{resolve-route-C0EHjIMD.js → resolve-route-xpyI3enn.js} +6 -6
- package/dist/{routes-BFfAPz_0.js → routes-xZZ99jJJ.js} +14 -14
- package/dist/{rpc-CQUsmQ6_.js → rpc-BzR2wLkc.js} +3 -3
- package/dist/{run-main-BhJ6M7oy.js → run-main-n0fjk-o5.js} +17 -17
- package/dist/{runtime-guard-Btd35-OG.js → runtime-guard-BZ3_1QqS.js} +1 -1
- package/dist/{sandbox-sayuve7z.js → sandbox-DGG12SGo.js} +27 -27
- package/dist/{sandbox-cli-Dyh_eqHp.js → sandbox-cli--d2MJPM2.js} +37 -37
- package/dist/{security-cli-B5XGCe-n.js → security-cli-CeP9ss1g.js} +53 -53
- package/dist/{send-dfhV1QIV.js → send-BQJKg0bU.js} +7 -7
- package/dist/{send-B-tsyoRw.js → send-BzUWmgQ9.js} +13 -13
- package/dist/{server-context-hxl_K7eY.js → server-context-BNbx1tUD.js} +11 -11
- package/dist/{server-methods-MUFuMWc_.js → server-methods-BHg4GltA.js} +76 -408
- package/dist/{server-methods-3uA_KwN4.js → server-methods-DkZ2XtEo.js} +8 -340
- package/dist/{server-node-events-FUPulMjB.js → server-node-events-6dZ22EGj.js} +82 -82
- package/dist/{server-node-events-DkbyHj1T.js → server-node-events-BXviL2UH.js} +6 -6
- package/dist/{service-B5aOZmQH.js → service-9ItKCWWS.js} +15 -15
- package/dist/{session-cost-usage-DQjHUno0.js → session-cost-usage-DYcv40ss.js} +3 -3
- package/dist/{session-dirs-Chh7bBGo.js → session-dirs-B6PWqKEf.js} +2 -2
- package/dist/{session-utils-C6O0Db39.js → session-utils-BVC8mmBv.js} +22 -22
- package/dist/{sessions-oPVoK2gW.js → sessions-BaFVKzC2.js} +25 -25
- package/dist/{shared-BJxR-kzm.js → shared-DUmy8R4n.js} +5 -5
- package/dist/{shared-E4KDN3LG.js → shared-ot5_jkpP.js} +3 -3
- package/dist/{skill-commands-CfGPouRa.js → skill-commands-DaNhP2Jb.js} +5 -5
- package/dist/{skill-commands-4afIEM1a.js → skill-commands-X3T9Y9lT.js} +4 -4
- package/dist/{skill-scanner-BGtq5jZi.js → skill-scanner-DVq7ZopF.js} +7 -7
- package/dist/{skills-Kt1PL_Um.js → skills-BMTJ2Tiq.js} +6 -6
- package/dist/{skills-BF_e-fYt.js → skills-C_KgxpBD.js} +9 -9
- package/dist/{skills-cli-BlFM1U3r.js → skills-cli-DwYoPwkG.js} +19 -19
- package/dist/{skills-install-miTQGOBQ.js → skills-install-U4FmCP8u.js} +9 -9
- package/dist/{skills-remote-Ch1B-1aN.js → skills-remote-C0gcKYWX.js} +6 -6
- package/dist/{skills-status-CFVFYR-o.js → skills-status-CdfQvU1h.js} +4 -4
- package/dist/{sqlite-CfMLToLW.js → sqlite-BUXBg2yu.js} +8 -8
- package/dist/{sqlite-BKMdYqso.js → sqlite-C6MZhX4c.js} +3 -3
- package/dist/{ssrf-LaudpmHD.js → ssrf-BvjSIOlZ.js} +9 -9
- package/dist/{status-BNH-f3PA.js → status-BAnT_4qI.js} +4 -4
- package/dist/{status-B-XD80Yl.js → status-BK-ZK7SP.js} +36 -36
- package/dist/{status-CCgqMBwp.js → status-CmoBgZ99.js} +1 -1
- package/dist/{status-C7F7r-qN.js → status-J_gR_zbh.js} +1 -1
- package/dist/{status.update-B9WCVHPy.js → status.update-Cvj7y384.js} +4 -4
- package/dist/{subagent-registry-z08a8MUS.js → subagent-registry-CWolsN8K.js} +13 -55
- package/dist/{subsystem-CgepNOk5.js → subsystem-CtH6J8AV.js} +1 -1
- package/dist/{subsystem-DzRUKS9f.js → subsystem-DhOo2FZn.js} +1 -1
- package/dist/{symi-root-7ei1lwo0.js → symi-root-0MUhiNlM.js} +3 -3
- package/dist/{synthesis-D4iCZvKx.js → synthesis-BSKiS446.js} +4 -4
- package/dist/{synthesis-CjFmYp54.js → synthesis-CRQp5mTx.js} +78 -78
- package/dist/{synthesis-Dlweuq0p.js → synthesis-D3wZX5g3.js} +33 -33
- package/dist/{synthesis-ByjLMHMS.js → synthesis-DTZGPpj5.js} +4 -4
- package/dist/{system-cli-Ccu9utFt.js → system-cli-CUGyogmP.js} +19 -19
- package/dist/{systemd-ChKNxGyT.js → systemd-8KKQdTO_.js} +8 -8
- package/dist/{systemd-hints-hoofHqb7.js → systemd-hints-_ghBqtKo.js} +7 -7
- package/dist/{systemd-linger-DLgi3jd0.js → systemd-linger-CnKJZBUr.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-BYtE7_UC.js} +2 -2
- package/dist/{tokens-DfB8vBa4.js → tokens-DvvjOTxN.js} +1 -1
- package/dist/{tokens-B24nv23l.js → tokens-wW7opugV.js} +1 -1
- 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/{tool-loop-detection-BR52lwOt.js → tool-loop-detection-DyZ0TWGh.js} +2 -2
- package/dist/transcript-events-JGGQViao.js +17 -0
- package/dist/{trash-oWw0M_xA.js → trash-BjVrPcAx.js} +2 -2
- package/dist/{tui-cli-sRKxOjmC.js → tui-cli-BPOcMJ-f.js} +43 -43
- package/dist/{tui-DqMRn1zF.js → tui-fKWqWqeq.js} +12 -12
- package/dist/{unified-runner-Uyw1gZOm.js → unified-runner-Cdj1nLUh.js} +286 -328
- package/dist/{unified-runner-CBVGL54b.js → unified-runner-DftrstdI.js} +200 -245
- package/dist/{update-rop24lF7.js → update-XJWQZpV7.js} +5 -5
- package/dist/{update-check-CC111uwU.js → update-check-BdSIMYWq.js} +7 -7
- package/dist/{update-cli-BbtFbkK5.js → update-cli-D_MLjj6j.js} +120 -120
- package/dist/{update-cli-CH7SLjSd.js → update-cli-jQo-vg6S.js} +9 -9
- package/dist/{update-runner-B0L2a2rW.js → update-runner-D_UHlPN0.js} +18 -18
- package/dist/{utils-AQWIWjGu.js → utils-BU8jVQFM.js} +2 -2
- package/dist/{webhooks-cli-CFMpDwWL.js → webhooks-cli-DgRLVVrD.js} +17 -17
- package/dist/{widearea-dns-DxpPXWPv.js → widearea-dns-C5NqCQ3L.js} +2 -2
- package/dist/{with-timeout-Bxn0qVBQ.js → with-timeout-DwVWQ2sN.js} +2 -2
- package/dist/{workspace-StbmAqYj.js → workspace-B_xyjOdv.js} +4 -4
- package/dist/{workspace-CsaDUuDn.js → workspace-OBnI5mKu.js} +2 -2
- package/dist/{workspace-dirs-B5axjz_-.js → workspace-dirs-DStsDXra.js} +1 -1
- package/dist/{ws-FAiTi9-v.js → ws-CahTJvD6.js} +1 -1
- package/dist/{wsl-ZWGwnnKI.js → wsl-DO9usEVV.js} +2 -2
- package/package.json +1 -1
- package/dist/cli-iz9sMJ9d.js +0 -128
- 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/{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/{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,60 +1,59 @@
|
|
|
1
|
-
import { g as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { t as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { t as
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { n as
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import { i as
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import { c as
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BDMq-0pg.js";
|
|
1
|
+
import { $ as applyBrowserProxyPaths, A as normalizePollInput, C as listTasksInWorkdir, D as resolveOutboundSessionRoute, E as ensureOutboundSessionEntry, F as normalizeCronJobCreate, Gt as resolveAgentTimeoutMs, Ht as listDescendantRunsForRequester, I as normalizeCronJobPatch, It as formatZonedTimestamp, Lt as isAbortTrigger, Mt as prepareAgentRun, Nt as BARE_SESSION_RESET_PROMPT, O as resolveOutboundTarget, Pt as normalizeGroupActivation, Qt as clearSessionQueues, Rt as stopSubagentsForRequester, Ut as listSubagentRunsForRequester, an as abortEmbeddedPiRun, b as buildAgentTurnParams, bt as applyVerboseOverride, et as persistBrowserProxyFiles, f as getChannelActivity, g as buildGlassUiProfile, m as createReplyDispatcher, mn as resolveUserTimezone, mt as resolveSendPolicy, nn as onAgentEvent, ot as scheduleGatewaySigusr1Restart, pt as normalizeSendPolicy, rn as registerAgentRunContext, s as loadSymiPlugins, sn as waitForEmbeddedPiRunEnd, x as prepareReplyTurn, xt as parseVerboseOverride, y as runUnifiedTurn, yt as applyModelOverrideToSessionEntry } from "./unified-runner-Cdj1nLUh.js";
|
|
2
|
+
import { H as createInternalHookEvent, P as getResolvedLoggerSettings, W as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-DKJLAPDB.js";
|
|
3
|
+
import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-BSzKwaxE.js";
|
|
4
|
+
import { S as isPlainObject, h as resolveUserPath, n as clamp } from "./utils-BU8jVQFM.js";
|
|
5
|
+
import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
|
|
6
|
+
import { Et as normalizeSecretInput, G as resolveSubagentConfiguredModelSelection, H as resolveDefaultModelForAgent, q as resolveThinkingDefault, z as resolveAllowedModelRef } from "./auth-profiles-BVtpxYtY.js";
|
|
7
|
+
import { a as classifySessionKeyShape, b as isSubagentSessionKey, c as resolveAgentIdFromSessionKey, o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, t as DEFAULT_AGENT_ID, x as parseAgentSessionKey } from "./session-key-B_ZVH1kE.js";
|
|
8
|
+
import { t as resolveSymiPackageRoot } from "./symi-root-0MUhiNlM.js";
|
|
9
|
+
import { C as ensureAgentWorkspace, S as DEFAULT_USER_FILENAME, T as isWorkspaceOnboardingCompleted, _ as DEFAULT_MEMORY_ALT_FILENAME, b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as DEFAULT_AGENTS_FILENAME, t as listAgentEntries, v as DEFAULT_MEMORY_FILENAME, x as DEFAULT_TOOLS_FILENAME, y as DEFAULT_SYMICORE_FILENAME } from "./agent-scope-BjEBQhs0.js";
|
|
10
|
+
import { N as VERSION, P as resolveRuntimeServiceVersion, T as applyLegacyMigrations, a as parseConfigJson5, c as resolveConfigSnapshotHash, d as SymiSchema, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, p as sensitive, s as readConfigFileSnapshotForWrite, u as validateConfigObjectWithPlugins, w as applyMergePatch } from "./config-CW8aDVM0.js";
|
|
11
|
+
import { c as pickPrimaryLanIPv4 } from "./ws-CahTJvD6.js";
|
|
12
|
+
import { i as loadWorkspaceSkillEntries } from "./skills-C_KgxpBD.js";
|
|
13
|
+
import { t as movePathToTrash } from "./trash-BjVrPcAx.js";
|
|
14
|
+
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, G as snapshotSessionOrigin, H as resolveMainSessionKey, O as stripEnvelopeFromMessages, S as archiveSessionTranscripts, T as readSessionPreviewItemsFromTranscript, U as resolveMainSessionKeyFromConfig, V as resolveExplicitAgentSessionKey, d as updateSessionStore, o as loadSessionStore, t as extractDeliveryInfo, w as readSessionMessages, x as archiveFileOnDisk, y as normalizeSessionDeliveryFields } from "./sessions-BaFVKzC2.js";
|
|
15
|
+
import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-C_V8IAYx.js";
|
|
16
|
+
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DuuHorqi.js";
|
|
17
|
+
import { c as resolveStorePath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-CJcw9nbZ.js";
|
|
18
|
+
import { i as normalizeInputProvenance } from "./input-provenance-DsLesw6T.js";
|
|
19
|
+
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-177f26eg.js";
|
|
20
|
+
import { h as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-DZ7ynJYH.js";
|
|
21
|
+
import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-DYcv40ss.js";
|
|
22
|
+
import { C as enqueueSystemEvent, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, w as isSystemEventContextChanged } from "./session-utils-BVC8mmBv.js";
|
|
23
|
+
import { n as createBrowserRouteDispatcher } from "./with-timeout-DwVWQ2sN.js";
|
|
24
|
+
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-CyLplifX.js";
|
|
25
|
+
import { t as getMemorySearchManager } from "./memory-DcWXMzOH.js";
|
|
26
|
+
import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as validateWebLoginWaitParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateSkillsUpdateParams, D as validateCronRemoveParams, Dt as validateUpdateRunParams, E as validateCronListParams, Et as validateTasksListParams, F as validateDevicePairRemoveParams, G as validateModelsListParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, I as validateDeviceTokenRevokeParams, It as ErrorCodes, J as validateNodeInvokeParams, Jt as revokeDeviceToken, K as validateNodeDescribeParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as errorShape, M as validateDevicePairApproveParams, Mt as validateWizardNextParams, N as validateDevicePairListParams, Nt as validateWizardStartParams, O as validateCronRunParams, Ot as validateWakeParams, P as validateDevicePairRejectParams, Pt as validateWizardStatusParams, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateSkillsStatusParams, T as validateCronAddParams, Tt as validateTalkModeParams, U as validateExecApprovalsSetParams, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeListParams, Xt as summarizeDeviceTokens, Y as validateNodeInvokeResultParams, Yt as rotateDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSessionsRestoreParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateSkillsBinsParams, c as validateAgentsFilesGetParams, ct as validateSessionsCompactParams, d as validateAgentsListParams, dt as validateSessionsFavoriteFileParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsListParams, g as validateChatHistoryParams, gt as validateSessionsResolveParams, h as validateChatAbortParams, ht as validateSessionsResetParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as validateWizardCancelParams, k as validateCronRunsParams, kt as validateWebLoginStartParams, l as validateAgentsFilesListParams, lt as validateSessionsDeleteFileParams, m as validateChannelsStatusParams, mt as validateSessionsPreviewParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsPatchParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsAdoptFileParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSessionsSearchParams, wt as validateTalkConfigParams, x as validateConfigPatchParams, xt as validateSkillsInstallParams, y as validateConfigApplyParams, yt as validateSessionsUsageParams, zt as parseSessionLabel } from "./client-Bs2zB0rY.js";
|
|
27
|
+
import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-CdXXPXpo.js";
|
|
28
|
+
import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-DorpwP8O.js";
|
|
29
|
+
import { c as approveNodePairing, d as renamePairedNode, f as requestNodePairing, l as listNodePairing, m as verifyNodeToken, t as getRemoteSkillEligibility, u as rejectNodePairing } from "./skills-remote-C0gcKYWX.js";
|
|
30
|
+
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-DStsDXra.js";
|
|
31
|
+
import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals } from "./exec-approvals-CZOc8M5w.js";
|
|
32
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Drd2sr2o.js";
|
|
34
33
|
import { i as parseAbsoluteTimeMs } from "./stagger-BhvnarfO.js";
|
|
35
|
-
import { n as createOutboundSendDeps } from "./deps-
|
|
36
|
-
import { t as buildChannelUiCatalog } from "./catalog-
|
|
37
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
34
|
+
import { n as createOutboundSendDeps } from "./deps-i1g0Zpz4.js";
|
|
35
|
+
import { t as buildChannelUiCatalog } from "./catalog-BEREnWaa.js";
|
|
36
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-CdfQvU1h.js";
|
|
38
37
|
import { t as WizardCancelledError } from "./prompts-CPtDKw-j.js";
|
|
39
|
-
import { t as resolveChannelDefaultAccountId } from "./helpers-
|
|
38
|
+
import { t as resolveChannelDefaultAccountId } from "./helpers-BBypnAYf.js";
|
|
40
39
|
import { t as buildChannelAccountSnapshot } from "./status-DvTRhxOu.js";
|
|
41
|
-
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-
|
|
42
|
-
import { c as resolveNodeCommandAllowlist, s as isNodeCommandAllowed } from "./audit-
|
|
43
|
-
import { n as getStatusSummary } from "./status-
|
|
44
|
-
import { m as normalizeUpdateChannel } from "./update-check-
|
|
45
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-
|
|
46
|
-
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-
|
|
47
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
40
|
+
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-DZKHFY2J.js";
|
|
41
|
+
import { c as resolveNodeCommandAllowlist, s as isNodeCommandAllowed } from "./audit-DQ_p2Pbq.js";
|
|
42
|
+
import { n as getStatusSummary } from "./status-BK-ZK7SP.js";
|
|
43
|
+
import { m as normalizeUpdateChannel } from "./update-check-BdSIMYWq.js";
|
|
44
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-Aaqf9WKI.js";
|
|
45
|
+
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-DeLysRUa.js";
|
|
46
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BFKM-a83.js";
|
|
48
47
|
import { t as resolveSystemRunCommand } from "./system-run-command-QikSIqYG.js";
|
|
49
|
-
import { t as installSkill } from "./skills-install-
|
|
50
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
48
|
+
import { t as installSkill } from "./skills-install-U4FmCP8u.js";
|
|
49
|
+
import { t as runGatewayUpdate } from "./update-runner-D_UHlPN0.js";
|
|
51
50
|
import crypto, { randomUUID } from "node:crypto";
|
|
52
|
-
import
|
|
51
|
+
import path from "node:path";
|
|
52
|
+
import * as fs$1 from "node:fs";
|
|
53
53
|
import fs from "node:fs";
|
|
54
54
|
import * as os$1 from "node:os";
|
|
55
55
|
import os from "node:os";
|
|
56
|
-
import
|
|
57
|
-
import fs$1 from "node:fs/promises";
|
|
56
|
+
import fsPromises from "node:fs/promises";
|
|
58
57
|
import { spawnSync } from "node:child_process";
|
|
59
58
|
import { z } from "zod";
|
|
60
59
|
import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
@@ -406,331 +405,6 @@ function startGatewayConfigReloader(opts) {
|
|
|
406
405
|
} };
|
|
407
406
|
}
|
|
408
407
|
|
|
409
|
-
//#endregion
|
|
410
|
-
//#region src/gateway/server-chat.ts
|
|
411
|
-
function resolveHeartbeatContext(_runId, _sourceRunId) {}
|
|
412
|
-
function shouldHideHeartbeatChatOutput(_runId, _sourceRunId) {
|
|
413
|
-
return false;
|
|
414
|
-
}
|
|
415
|
-
function resolveHeartbeatAckMaxChars() {
|
|
416
|
-
return 0;
|
|
417
|
-
}
|
|
418
|
-
function createChatRunRegistry() {
|
|
419
|
-
const chatRunSessions = /* @__PURE__ */ new Map();
|
|
420
|
-
const add = (sessionId, entry) => {
|
|
421
|
-
const queue = chatRunSessions.get(sessionId);
|
|
422
|
-
if (queue) queue.push(entry);
|
|
423
|
-
else chatRunSessions.set(sessionId, [entry]);
|
|
424
|
-
};
|
|
425
|
-
const peek = (sessionId) => chatRunSessions.get(sessionId)?.[0];
|
|
426
|
-
const shift = (sessionId) => {
|
|
427
|
-
const queue = chatRunSessions.get(sessionId);
|
|
428
|
-
if (!queue || queue.length === 0) return;
|
|
429
|
-
const entry = queue.shift();
|
|
430
|
-
if (!queue.length) chatRunSessions.delete(sessionId);
|
|
431
|
-
return entry;
|
|
432
|
-
};
|
|
433
|
-
const remove = (sessionId, clientRunId, sessionKey) => {
|
|
434
|
-
const queue = chatRunSessions.get(sessionId);
|
|
435
|
-
if (!queue || queue.length === 0) return;
|
|
436
|
-
const idx = queue.findIndex((entry) => entry.clientRunId === clientRunId && (sessionKey ? entry.sessionKey === sessionKey : true));
|
|
437
|
-
if (idx < 0) return;
|
|
438
|
-
const [entry] = queue.splice(idx, 1);
|
|
439
|
-
if (!queue.length) chatRunSessions.delete(sessionId);
|
|
440
|
-
return entry;
|
|
441
|
-
};
|
|
442
|
-
const clear = () => {
|
|
443
|
-
chatRunSessions.clear();
|
|
444
|
-
};
|
|
445
|
-
return {
|
|
446
|
-
add,
|
|
447
|
-
peek,
|
|
448
|
-
shift,
|
|
449
|
-
remove,
|
|
450
|
-
clear
|
|
451
|
-
};
|
|
452
|
-
}
|
|
453
|
-
function createChatRunState() {
|
|
454
|
-
const registry = createChatRunRegistry();
|
|
455
|
-
const buffers = /* @__PURE__ */ new Map();
|
|
456
|
-
const deltaSentAt = /* @__PURE__ */ new Map();
|
|
457
|
-
const pendingDeltaText = /* @__PURE__ */ new Map();
|
|
458
|
-
const abortedRuns = /* @__PURE__ */ new Map();
|
|
459
|
-
const clear = () => {
|
|
460
|
-
registry.clear();
|
|
461
|
-
buffers.clear();
|
|
462
|
-
deltaSentAt.clear();
|
|
463
|
-
pendingDeltaText.clear();
|
|
464
|
-
abortedRuns.clear();
|
|
465
|
-
};
|
|
466
|
-
return {
|
|
467
|
-
registry,
|
|
468
|
-
buffers,
|
|
469
|
-
deltaSentAt,
|
|
470
|
-
pendingDeltaText,
|
|
471
|
-
abortedRuns,
|
|
472
|
-
clear
|
|
473
|
-
};
|
|
474
|
-
}
|
|
475
|
-
const TOOL_EVENT_RECIPIENT_TTL_MS = 600 * 1e3;
|
|
476
|
-
const TOOL_EVENT_RECIPIENT_FINAL_GRACE_MS = 30 * 1e3;
|
|
477
|
-
function createToolEventRecipientRegistry() {
|
|
478
|
-
const recipients = /* @__PURE__ */ new Map();
|
|
479
|
-
const prune = () => {
|
|
480
|
-
if (recipients.size === 0) return;
|
|
481
|
-
const now = Date.now();
|
|
482
|
-
for (const [runId, entry] of recipients) if (now >= (entry.finalizedAt ? entry.finalizedAt + TOOL_EVENT_RECIPIENT_FINAL_GRACE_MS : entry.updatedAt + TOOL_EVENT_RECIPIENT_TTL_MS)) recipients.delete(runId);
|
|
483
|
-
};
|
|
484
|
-
const add = (runId, connId) => {
|
|
485
|
-
if (!runId || !connId) return;
|
|
486
|
-
const now = Date.now();
|
|
487
|
-
const existing = recipients.get(runId);
|
|
488
|
-
if (existing) {
|
|
489
|
-
existing.connIds.add(connId);
|
|
490
|
-
existing.updatedAt = now;
|
|
491
|
-
} else recipients.set(runId, {
|
|
492
|
-
connIds: new Set([connId]),
|
|
493
|
-
updatedAt: now
|
|
494
|
-
});
|
|
495
|
-
prune();
|
|
496
|
-
};
|
|
497
|
-
const get = (runId) => {
|
|
498
|
-
const entry = recipients.get(runId);
|
|
499
|
-
if (!entry) return;
|
|
500
|
-
entry.updatedAt = Date.now();
|
|
501
|
-
prune();
|
|
502
|
-
return entry.connIds;
|
|
503
|
-
};
|
|
504
|
-
const markFinal = (runId) => {
|
|
505
|
-
const entry = recipients.get(runId);
|
|
506
|
-
if (!entry) return;
|
|
507
|
-
entry.finalizedAt = Date.now();
|
|
508
|
-
prune();
|
|
509
|
-
};
|
|
510
|
-
return {
|
|
511
|
-
add,
|
|
512
|
-
get,
|
|
513
|
-
markFinal
|
|
514
|
-
};
|
|
515
|
-
}
|
|
516
|
-
function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSession, agentRunSeq, chatRunState, resolveSessionKeyForRun, clearAgentRunContext, toolEventRecipients }) {
|
|
517
|
-
const emitChatDelta = (sessionKey, clientRunId, sourceRunId, seq, text) => {
|
|
518
|
-
if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return;
|
|
519
|
-
const prev = chatRunState.buffers.get(clientRunId) ?? "";
|
|
520
|
-
chatRunState.buffers.set(clientRunId, prev + text);
|
|
521
|
-
if (shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) return;
|
|
522
|
-
const now = Date.now();
|
|
523
|
-
if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) {
|
|
524
|
-
chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + text);
|
|
525
|
-
return;
|
|
526
|
-
}
|
|
527
|
-
const buffered = chatRunState.pendingDeltaText.get(clientRunId) ?? "";
|
|
528
|
-
chatRunState.pendingDeltaText.delete(clientRunId);
|
|
529
|
-
const fullText = buffered + text;
|
|
530
|
-
chatRunState.deltaSentAt.set(clientRunId, now);
|
|
531
|
-
const payload = {
|
|
532
|
-
runId: clientRunId,
|
|
533
|
-
sessionKey,
|
|
534
|
-
seq,
|
|
535
|
-
state: "delta",
|
|
536
|
-
...(/* @__PURE__ */ resolveHeartbeatContext(clientRunId, sourceRunId))?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
537
|
-
message: {
|
|
538
|
-
role: "assistant",
|
|
539
|
-
content: [{
|
|
540
|
-
type: "text",
|
|
541
|
-
text: fullText
|
|
542
|
-
}],
|
|
543
|
-
timestamp: now
|
|
544
|
-
}
|
|
545
|
-
};
|
|
546
|
-
broadcast("chat", payload, { dropIfSlow: true });
|
|
547
|
-
nodeSendToSession(sessionKey, "chat", payload);
|
|
548
|
-
};
|
|
549
|
-
const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
|
|
550
|
-
const remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
|
|
551
|
-
if (remainingDelta && !shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) {
|
|
552
|
-
const flushPayload = {
|
|
553
|
-
runId: clientRunId,
|
|
554
|
-
sessionKey,
|
|
555
|
-
seq,
|
|
556
|
-
state: "delta",
|
|
557
|
-
...(/* @__PURE__ */ resolveHeartbeatContext(clientRunId, sourceRunId))?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
558
|
-
message: {
|
|
559
|
-
role: "assistant",
|
|
560
|
-
content: [{
|
|
561
|
-
type: "text",
|
|
562
|
-
text: remainingDelta
|
|
563
|
-
}],
|
|
564
|
-
timestamp: Date.now()
|
|
565
|
-
}
|
|
566
|
-
};
|
|
567
|
-
broadcast("chat", flushPayload);
|
|
568
|
-
nodeSendToSession(sessionKey, "chat", flushPayload);
|
|
569
|
-
}
|
|
570
|
-
chatRunState.pendingDeltaText.delete(clientRunId);
|
|
571
|
-
const bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
|
|
572
|
-
const heartbeatCtx = /* @__PURE__ */ resolveHeartbeatContext(clientRunId, sourceRunId);
|
|
573
|
-
const isHeartbeatRun = !!heartbeatCtx?.isHeartbeat;
|
|
574
|
-
const heartbeatHidden = isHeartbeatRun && shouldHideHeartbeatChatOutput(clientRunId, sourceRunId);
|
|
575
|
-
const filterResult = isHeartbeatRun && !heartbeatHidden ? {
|
|
576
|
-
action: "deliver",
|
|
577
|
-
output: bufferedText,
|
|
578
|
-
reason: "deliver"
|
|
579
|
-
} : classifyOutboundMessage(bufferedText, {
|
|
580
|
-
isHeartbeat: heartbeatHidden,
|
|
581
|
-
heartbeatAckMaxChars: resolveHeartbeatAckMaxChars()
|
|
582
|
-
});
|
|
583
|
-
const text = filterResult.output.trim();
|
|
584
|
-
const shouldSuppressSilent = filterResult.action === "drop";
|
|
585
|
-
chatRunState.buffers.delete(clientRunId);
|
|
586
|
-
chatRunState.deltaSentAt.delete(clientRunId);
|
|
587
|
-
if (jobState === "done") {
|
|
588
|
-
const payload = {
|
|
589
|
-
runId: clientRunId,
|
|
590
|
-
sessionKey,
|
|
591
|
-
seq,
|
|
592
|
-
state: "final",
|
|
593
|
-
activeSubagentCount: countActiveRunsForSession(sessionKey),
|
|
594
|
-
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
595
|
-
message: text && !shouldSuppressSilent ? {
|
|
596
|
-
role: "assistant",
|
|
597
|
-
content: [{
|
|
598
|
-
type: "text",
|
|
599
|
-
text
|
|
600
|
-
}],
|
|
601
|
-
timestamp: Date.now()
|
|
602
|
-
} : void 0
|
|
603
|
-
};
|
|
604
|
-
broadcast("chat", payload);
|
|
605
|
-
nodeSendToSession(sessionKey, "chat", payload);
|
|
606
|
-
return;
|
|
607
|
-
}
|
|
608
|
-
const payload = {
|
|
609
|
-
runId: clientRunId,
|
|
610
|
-
sessionKey,
|
|
611
|
-
seq,
|
|
612
|
-
state: "error",
|
|
613
|
-
errorMessage: error ? formatForLog(error) : void 0,
|
|
614
|
-
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {}
|
|
615
|
-
};
|
|
616
|
-
broadcast("chat", payload);
|
|
617
|
-
nodeSendToSession(sessionKey, "chat", payload);
|
|
618
|
-
};
|
|
619
|
-
const resolveToolVerboseLevel = (runId, sessionKey) => {
|
|
620
|
-
const runVerbose = normalizeVerboseLevel(getAgentRunContext(runId)?.verboseLevel);
|
|
621
|
-
if (runVerbose) return runVerbose;
|
|
622
|
-
if (!sessionKey) return "off";
|
|
623
|
-
try {
|
|
624
|
-
const { cfg, entry } = loadSessionEntry(sessionKey);
|
|
625
|
-
const sessionVerbose = normalizeVerboseLevel(entry?.verboseLevel);
|
|
626
|
-
if (sessionVerbose) return sessionVerbose;
|
|
627
|
-
return normalizeVerboseLevel(cfg.agents?.defaults?.verboseDefault) ?? "off";
|
|
628
|
-
} catch {
|
|
629
|
-
return "off";
|
|
630
|
-
}
|
|
631
|
-
};
|
|
632
|
-
return (evt) => {
|
|
633
|
-
const chatLink = chatRunState.registry.peek(evt.runId);
|
|
634
|
-
const eventSessionKey = typeof evt.sessionKey === "string" && evt.sessionKey.trim() ? evt.sessionKey : void 0;
|
|
635
|
-
const sessionKey = chatLink?.sessionKey ?? eventSessionKey ?? resolveSessionKeyForRun(evt.runId);
|
|
636
|
-
if (sessionKey?.startsWith("temp:")) return;
|
|
637
|
-
const clientRunId = chatLink?.clientRunId ?? evt.runId;
|
|
638
|
-
const eventRunId = chatLink?.clientRunId ?? evt.runId;
|
|
639
|
-
const eventForClients = chatLink ? {
|
|
640
|
-
...evt,
|
|
641
|
-
runId: eventRunId
|
|
642
|
-
} : evt;
|
|
643
|
-
const isAborted = chatRunState.abortedRuns.has(clientRunId) || chatRunState.abortedRuns.has(evt.runId);
|
|
644
|
-
const heartbeatAgentCtx = /* @__PURE__ */ resolveHeartbeatContext(clientRunId, evt.runId);
|
|
645
|
-
const agentPayload = {
|
|
646
|
-
...eventForClients,
|
|
647
|
-
...sessionKey ? { sessionKey } : {},
|
|
648
|
-
...heartbeatAgentCtx?.isHeartbeat ? { isHeartbeat: true } : {}
|
|
649
|
-
};
|
|
650
|
-
const last = agentRunSeq.get(evt.runId) ?? 0;
|
|
651
|
-
const isToolEvent = evt.stream === "tool";
|
|
652
|
-
const toolVerbose = isToolEvent ? resolveToolVerboseLevel(evt.runId, sessionKey) : "off";
|
|
653
|
-
const toolPayload = isToolEvent && toolVerbose !== "full" ? (() => {
|
|
654
|
-
const data = evt.data ? { ...evt.data } : {};
|
|
655
|
-
delete data.result;
|
|
656
|
-
delete data.partialResult;
|
|
657
|
-
return sessionKey ? {
|
|
658
|
-
...eventForClients,
|
|
659
|
-
sessionKey,
|
|
660
|
-
data
|
|
661
|
-
} : {
|
|
662
|
-
...eventForClients,
|
|
663
|
-
data
|
|
664
|
-
};
|
|
665
|
-
})() : agentPayload;
|
|
666
|
-
if (evt.seq !== last + 1) broadcast("agent", {
|
|
667
|
-
runId: eventRunId,
|
|
668
|
-
stream: "error",
|
|
669
|
-
ts: Date.now(),
|
|
670
|
-
sessionKey,
|
|
671
|
-
...heartbeatAgentCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
672
|
-
data: {
|
|
673
|
-
reason: "seq gap",
|
|
674
|
-
expected: last + 1,
|
|
675
|
-
received: evt.seq
|
|
676
|
-
}
|
|
677
|
-
});
|
|
678
|
-
agentRunSeq.set(evt.runId, evt.seq);
|
|
679
|
-
if (isToolEvent) {
|
|
680
|
-
const recipients = toolEventRecipients.get(evt.runId);
|
|
681
|
-
if (recipients && recipients.size > 0) broadcastToConnIds("agent", toolPayload, recipients);
|
|
682
|
-
} else broadcast("agent", agentPayload);
|
|
683
|
-
const lifecyclePhase = evt.stream === "lifecycle" && typeof evt.data?.phase === "string" ? evt.data.phase : null;
|
|
684
|
-
if (lifecyclePhase === "start" && sessionKey && !isAborted) {
|
|
685
|
-
if (!(/* @__PURE__ */ resolveHeartbeatContext(clientRunId, evt.runId))?.isHeartbeat) broadcast("chat", {
|
|
686
|
-
runId: clientRunId,
|
|
687
|
-
sessionKey,
|
|
688
|
-
seq: evt.seq,
|
|
689
|
-
state: "thinking"
|
|
690
|
-
});
|
|
691
|
-
}
|
|
692
|
-
if (lifecyclePhase && sessionKey && sessionKey.includes(":subagent:")) {
|
|
693
|
-
if (lifecyclePhase === "start") broadcast("subagent", {
|
|
694
|
-
phase: "started",
|
|
695
|
-
sessionKey,
|
|
696
|
-
runId: clientRunId
|
|
697
|
-
});
|
|
698
|
-
else if (lifecyclePhase === "end" || lifecyclePhase === "error") broadcast("subagent", {
|
|
699
|
-
phase: "completed",
|
|
700
|
-
sessionKey,
|
|
701
|
-
runId: clientRunId
|
|
702
|
-
});
|
|
703
|
-
}
|
|
704
|
-
if (sessionKey) {
|
|
705
|
-
if (!isToolEvent || toolVerbose !== "off") nodeSendToSession(sessionKey, "agent", isToolEvent ? toolPayload : agentPayload);
|
|
706
|
-
if (!isAborted && evt.stream === "assistant" && typeof evt.data?.text === "string") {
|
|
707
|
-
const deltaText = typeof evt.data?.delta === "string" && evt.data.delta ? evt.data.delta : evt.data.text;
|
|
708
|
-
emitChatDelta(sessionKey, clientRunId, evt.runId, evt.seq, deltaText);
|
|
709
|
-
} else if (!isAborted && (lifecyclePhase === "end" || lifecyclePhase === "error")) if (chatLink) {
|
|
710
|
-
const finished = chatRunState.registry.shift(evt.runId);
|
|
711
|
-
if (!finished) {
|
|
712
|
-
clearAgentRunContext(evt.runId);
|
|
713
|
-
return;
|
|
714
|
-
}
|
|
715
|
-
emitChatFinal(finished.sessionKey, finished.clientRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
|
|
716
|
-
} else emitChatFinal(sessionKey, eventRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
|
|
717
|
-
else if (isAborted && (lifecyclePhase === "end" || lifecyclePhase === "error")) {
|
|
718
|
-
chatRunState.abortedRuns.delete(clientRunId);
|
|
719
|
-
chatRunState.abortedRuns.delete(evt.runId);
|
|
720
|
-
chatRunState.buffers.delete(clientRunId);
|
|
721
|
-
chatRunState.deltaSentAt.delete(clientRunId);
|
|
722
|
-
if (chatLink) chatRunState.registry.remove(evt.runId, clientRunId, sessionKey);
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
if (lifecyclePhase === "end" || lifecyclePhase === "error") {
|
|
726
|
-
toolEventRecipients.markFinal(evt.runId);
|
|
727
|
-
clearAgentRunContext(evt.runId);
|
|
728
|
-
agentRunSeq.delete(evt.runId);
|
|
729
|
-
agentRunSeq.delete(clientRunId);
|
|
730
|
-
}
|
|
731
|
-
};
|
|
732
|
-
}
|
|
733
|
-
|
|
734
408
|
//#endregion
|
|
735
409
|
//#region src/cron/run-log.ts
|
|
736
410
|
function resolveCronRunLogPath(params) {
|
|
@@ -740,20 +414,20 @@ function resolveCronRunLogPath(params) {
|
|
|
740
414
|
}
|
|
741
415
|
const writesByPath = /* @__PURE__ */ new Map();
|
|
742
416
|
async function pruneIfNeeded(filePath, opts) {
|
|
743
|
-
const stat = await
|
|
417
|
+
const stat = await fsPromises.stat(filePath).catch(() => null);
|
|
744
418
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
745
|
-
const lines = (await
|
|
419
|
+
const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
|
|
746
420
|
const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
|
|
747
421
|
const { randomBytes } = await import("node:crypto");
|
|
748
422
|
const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
749
|
-
await
|
|
750
|
-
await
|
|
423
|
+
await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
|
|
424
|
+
await fsPromises.rename(tmp, filePath);
|
|
751
425
|
}
|
|
752
426
|
async function appendCronRunLog(filePath, entry, opts) {
|
|
753
427
|
const resolved = path.resolve(filePath);
|
|
754
428
|
const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
|
|
755
|
-
await
|
|
756
|
-
await
|
|
429
|
+
await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
|
|
430
|
+
await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
757
431
|
await pruneIfNeeded(resolved, {
|
|
758
432
|
maxBytes: opts?.maxBytes ?? 2e6,
|
|
759
433
|
keepLines: opts?.keepLines ?? 2e3
|
|
@@ -765,7 +439,7 @@ async function appendCronRunLog(filePath, entry, opts) {
|
|
|
765
439
|
async function readCronRunLogEntries(filePath, opts) {
|
|
766
440
|
const limit = Math.max(1, Math.min(5e3, Math.floor(opts?.limit ?? 200)));
|
|
767
441
|
const jobId = opts?.jobId?.trim() || void 0;
|
|
768
|
-
const raw = await
|
|
442
|
+
const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
|
|
769
443
|
if (!raw.trim()) return [];
|
|
770
444
|
const parsed = [];
|
|
771
445
|
const lines = raw.split("\n");
|
|
@@ -824,14 +498,12 @@ function resolveChatRunExpiresAtMs(params) {
|
|
|
824
498
|
}
|
|
825
499
|
function broadcastChatAborted(ops, params) {
|
|
826
500
|
const { runId, sessionKey, stopReason, partialText } = params;
|
|
827
|
-
const heartbeatCtx = /* @__PURE__ */ resolveHeartbeatContext(runId);
|
|
828
501
|
const payload = {
|
|
829
502
|
runId,
|
|
830
503
|
sessionKey,
|
|
831
504
|
seq: (ops.agentRunSeq.get(runId) ?? 0) + 1,
|
|
832
505
|
state: "aborted",
|
|
833
506
|
stopReason,
|
|
834
|
-
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
835
507
|
message: partialText ? {
|
|
836
508
|
role: "assistant",
|
|
837
509
|
content: [{
|
|
@@ -3279,7 +2951,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
|
|
|
3279
2951
|
}
|
|
3280
2952
|
async function statFile(filePath) {
|
|
3281
2953
|
try {
|
|
3282
|
-
const stat = await
|
|
2954
|
+
const stat = await fsPromises.stat(filePath);
|
|
3283
2955
|
if (!stat.isFile()) return null;
|
|
3284
2956
|
return {
|
|
3285
2957
|
size: stat.size,
|
|
@@ -3349,7 +3021,7 @@ function resolveOptionalStringParam(value) {
|
|
|
3349
3021
|
async function moveToTrashBestEffort(pathname) {
|
|
3350
3022
|
if (!pathname) return;
|
|
3351
3023
|
try {
|
|
3352
|
-
await
|
|
3024
|
+
await fsPromises.access(pathname);
|
|
3353
3025
|
} catch {
|
|
3354
3026
|
return;
|
|
3355
3027
|
}
|
|
@@ -3396,7 +3068,7 @@ const agentsHandlers = {
|
|
|
3396
3068
|
dir: workspaceDir,
|
|
3397
3069
|
ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
|
|
3398
3070
|
});
|
|
3399
|
-
await
|
|
3071
|
+
await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
|
|
3400
3072
|
await writeConfigFile(nextConfig);
|
|
3401
3073
|
const safeName = sanitizeIdentityLine(rawName);
|
|
3402
3074
|
const emoji = resolveOptionalStringParam(params.emoji);
|
|
@@ -3409,7 +3081,7 @@ const agentsHandlers = {
|
|
|
3409
3081
|
...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
|
|
3410
3082
|
""
|
|
3411
3083
|
];
|
|
3412
|
-
await
|
|
3084
|
+
await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
|
|
3413
3085
|
respond(true, {
|
|
3414
3086
|
ok: true,
|
|
3415
3087
|
agentId,
|
|
@@ -3444,9 +3116,9 @@ const agentsHandlers = {
|
|
|
3444
3116
|
});
|
|
3445
3117
|
if (avatar) {
|
|
3446
3118
|
const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
|
|
3447
|
-
await
|
|
3119
|
+
await fsPromises.mkdir(workspace, { recursive: true });
|
|
3448
3120
|
const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
|
|
3449
|
-
await
|
|
3121
|
+
await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
|
|
3450
3122
|
}
|
|
3451
3123
|
respond(true, {
|
|
3452
3124
|
ok: true,
|
|
@@ -3529,7 +3201,7 @@ const agentsHandlers = {
|
|
|
3529
3201
|
}, void 0);
|
|
3530
3202
|
return;
|
|
3531
3203
|
}
|
|
3532
|
-
const content = await
|
|
3204
|
+
const content = await fsPromises.readFile(filePath, "utf-8");
|
|
3533
3205
|
respond(true, {
|
|
3534
3206
|
agentId,
|
|
3535
3207
|
workspace: workspaceDir,
|
|
@@ -3551,10 +3223,10 @@ const agentsHandlers = {
|
|
|
3551
3223
|
const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
|
|
3552
3224
|
if (!resolved) return;
|
|
3553
3225
|
const { agentId, workspaceDir, name } = resolved;
|
|
3554
|
-
await
|
|
3226
|
+
await fsPromises.mkdir(workspaceDir, { recursive: true });
|
|
3555
3227
|
const filePath = path.join(workspaceDir, name);
|
|
3556
3228
|
const content = String(params.content ?? "");
|
|
3557
|
-
await
|
|
3229
|
+
await fsPromises.writeFile(filePath, content, "utf-8");
|
|
3558
3230
|
const meta = await statFile(filePath);
|
|
3559
3231
|
respond(true, {
|
|
3560
3232
|
ok: true,
|
|
@@ -4440,13 +4112,11 @@ function nextChatSeq(context, runId) {
|
|
|
4440
4112
|
}
|
|
4441
4113
|
function broadcastChatFinal(params) {
|
|
4442
4114
|
const seq = nextChatSeq({ agentRunSeq: params.context.agentRunSeq }, params.runId);
|
|
4443
|
-
const heartbeatCtx = /* @__PURE__ */ resolveHeartbeatContext(params.runId);
|
|
4444
4115
|
const payload = {
|
|
4445
4116
|
runId: params.runId,
|
|
4446
4117
|
sessionKey: params.sessionKey,
|
|
4447
4118
|
seq,
|
|
4448
4119
|
state: "final",
|
|
4449
|
-
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
4450
4120
|
message: params.message
|
|
4451
4121
|
};
|
|
4452
4122
|
params.context.broadcast("chat", payload);
|
|
@@ -4455,13 +4125,11 @@ function broadcastChatFinal(params) {
|
|
|
4455
4125
|
}
|
|
4456
4126
|
function broadcastChatError(params) {
|
|
4457
4127
|
const seq = nextChatSeq({ agentRunSeq: params.context.agentRunSeq }, params.runId);
|
|
4458
|
-
const heartbeatCtx = /* @__PURE__ */ resolveHeartbeatContext(params.runId);
|
|
4459
4128
|
const payload = {
|
|
4460
4129
|
runId: params.runId,
|
|
4461
4130
|
sessionKey: params.sessionKey,
|
|
4462
4131
|
seq,
|
|
4463
4132
|
state: "error",
|
|
4464
|
-
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
4465
4133
|
errorMessage: params.errorMessage
|
|
4466
4134
|
};
|
|
4467
4135
|
params.context.broadcast("chat", payload);
|
|
@@ -6818,7 +6486,7 @@ const docsHandlers = { "docs.get": async ({ params, respond }) => {
|
|
|
6818
6486
|
const fullPath = path.join(packageRoot, relPath);
|
|
6819
6487
|
let markdown;
|
|
6820
6488
|
try {
|
|
6821
|
-
markdown = await
|
|
6489
|
+
markdown = await fsPromises.readFile(fullPath, "utf-8");
|
|
6822
6490
|
} catch (err) {
|
|
6823
6491
|
if (err?.code === "ENOENT") {
|
|
6824
6492
|
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `docs file not bundled in this Symi install: ${relPath}`));
|
|
@@ -6969,14 +6637,14 @@ function isRollingLogFile(file) {
|
|
|
6969
6637
|
return ROLLING_LOG_RE.test(path.basename(file));
|
|
6970
6638
|
}
|
|
6971
6639
|
async function resolveLogFile(file) {
|
|
6972
|
-
if (await
|
|
6640
|
+
if (await fsPromises.stat(file).catch(() => null)) return file;
|
|
6973
6641
|
if (!isRollingLogFile(file)) return file;
|
|
6974
6642
|
const dir = path.dirname(file);
|
|
6975
|
-
const entries = await
|
|
6643
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
|
|
6976
6644
|
if (!entries) return file;
|
|
6977
6645
|
return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
|
|
6978
6646
|
const fullPath = path.join(dir, entry.name);
|
|
6979
|
-
const fileStat = await
|
|
6647
|
+
const fileStat = await fsPromises.stat(fullPath).catch(() => null);
|
|
6980
6648
|
return fileStat ? {
|
|
6981
6649
|
path: fullPath,
|
|
6982
6650
|
mtimeMs: fileStat.mtimeMs
|
|
@@ -6984,7 +6652,7 @@ async function resolveLogFile(file) {
|
|
|
6984
6652
|
}))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
|
|
6985
6653
|
}
|
|
6986
6654
|
async function readLogSlice(params) {
|
|
6987
|
-
const stat = await
|
|
6655
|
+
const stat = await fsPromises.stat(params.file).catch(() => null);
|
|
6988
6656
|
if (!stat) return {
|
|
6989
6657
|
cursor: 0,
|
|
6990
6658
|
size: 0,
|
|
@@ -7022,7 +6690,7 @@ async function readLogSlice(params) {
|
|
|
7022
6690
|
truncated,
|
|
7023
6691
|
reset
|
|
7024
6692
|
};
|
|
7025
|
-
const handle = await
|
|
6693
|
+
const handle = await fsPromises.open(params.file, "r");
|
|
7026
6694
|
try {
|
|
7027
6695
|
let prefix = "";
|
|
7028
6696
|
if (start > 0) {
|
|
@@ -7823,7 +7491,7 @@ const nodeHandlers = {
|
|
|
7823
7491
|
const p = params;
|
|
7824
7492
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
7825
7493
|
await respondUnavailableOnThrow(respond, async () => {
|
|
7826
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
7494
|
+
const { handleNodeEvent } = await import("./server-node-events-6dZ22EGj.js");
|
|
7827
7495
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
7828
7496
|
await handleNodeEvent({
|
|
7829
7497
|
deps: context.deps,
|
|
@@ -8342,7 +8010,7 @@ function broadcastPresenceSnapshot(params) {
|
|
|
8342
8010
|
let _prevCpu = null;
|
|
8343
8011
|
function getCpuPercent() {
|
|
8344
8012
|
try {
|
|
8345
|
-
const parts = fs$
|
|
8013
|
+
const parts = fs$1.readFileSync("/proc/stat", "utf8").split("\n")[0].trim().split(/\s+/).slice(1).map(Number);
|
|
8346
8014
|
const [, , , idle, iowait] = parts;
|
|
8347
8015
|
const total = parts.reduce((a, b) => a + b, 0);
|
|
8348
8016
|
const active = total - idle - (iowait || 0);
|
|
@@ -8366,7 +8034,7 @@ function getCpuPercent() {
|
|
|
8366
8034
|
}
|
|
8367
8035
|
function getMemInfo() {
|
|
8368
8036
|
try {
|
|
8369
|
-
const text = fs$
|
|
8037
|
+
const text = fs$1.readFileSync("/proc/meminfo", "utf8");
|
|
8370
8038
|
const get = (key) => parseInt(text.match(new RegExp(`${key}:\\s+(\\d+)`))?.[1] ?? "0", 10) * 1024;
|
|
8371
8039
|
const total = get("MemTotal");
|
|
8372
8040
|
const used = total - get("MemAvailable");
|
|
@@ -8385,7 +8053,7 @@ function getMemInfo() {
|
|
|
8385
8053
|
}
|
|
8386
8054
|
function getDiskInfo() {
|
|
8387
8055
|
try {
|
|
8388
|
-
const stats = fs$
|
|
8056
|
+
const stats = fs$1.statfsSync("/");
|
|
8389
8057
|
const total = stats.blocks * stats.bsize;
|
|
8390
8058
|
const used = total - stats.bfree * stats.bsize;
|
|
8391
8059
|
return {
|
|
@@ -9311,7 +8979,7 @@ const usageHandlers = {
|
|
|
9311
8979
|
const resolved = resolveSessionUsageFileOrRespond(key, respond);
|
|
9312
8980
|
if (!resolved) return;
|
|
9313
8981
|
const { config, entry, agentId, sessionId, sessionFile } = resolved;
|
|
9314
|
-
const { loadSessionLogs } = await import("./session-cost-usage-
|
|
8982
|
+
const { loadSessionLogs } = await import("./session-cost-usage-DYcv40ss.js").then((n) => n.a);
|
|
9315
8983
|
respond(true, { logs: await loadSessionLogs({
|
|
9316
8984
|
sessionId,
|
|
9317
8985
|
sessionEntry: entry,
|
|
@@ -9796,4 +9464,4 @@ async function handleGatewayRequest(opts) {
|
|
|
9796
9464
|
}
|
|
9797
9465
|
|
|
9798
9466
|
//#endregion
|
|
9799
|
-
export {
|
|
9467
|
+
export { startGatewayConfigReloader as C, resolveCronRunLogPath as S, MAX_PAYLOAD_BYTES as _, loadFavoritesSet as a, abortChatRunById as b, resolveAssistantIdentity as c, formatError as d, loadVoiceWakeConfig as f, MAX_BUFFERED_BYTES as g, HEALTH_REFRESH_INTERVAL_MS as h, safeParseJson as i, listSystemPresence as l, DEDUPE_TTL_MS as m, handleGatewayRequest as n, reconcileFavorites as o, DEDUPE_MAX as p, broadcastPresenceSnapshot as r, DEFAULT_ASSISTANT_IDENTITY as s, coreGatewayHandlers as t, upsertPresence as u, TICK_INTERVAL_MS as v, appendCronRunLog as x, getHandshakeTimeoutMs as y };
|