@symerian/symi 3.5.4 → 3.5.5
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-Bl0Wfrd4.js → agent-8EuVoCbs.js} +11 -11
- package/dist/{agent-BsRlH9Ez.js → agent-B87OYNFx.js} +9 -9
- package/dist/{agents-Ch38fapn.js → agents-CNbjbSD0.js} +11 -11
- package/dist/{audit-CcxTZUi-.js → audit-Bk6kay2Z.js} +9 -9
- package/dist/{audit-CojL8qpM.js → audit-CtrXFZb5.js} +9 -9
- package/dist/{auth-choice-CQnJ5pRD.js → auth-choice-BL4lqaJL.js} +8 -8
- package/dist/{auth-choice-O55PGflm.js → auth-choice-CB0rQByJ.js} +8 -8
- package/dist/{auth-choice-options-DfT-D0Cb.js → auth-choice-options-DmXqtnP9.js} +1 -1
- package/dist/{auth-choice-options-osb2GMd4.js → auth-choice-options-od_KpHe8.js} +1 -1
- package/dist/{auth-choice-prompt-6_u7zS1M.js → auth-choice-prompt-BnvC700A.js} +1 -1
- package/dist/{auth-choice-prompt-SCWccuw0.js → auth-choice-prompt-kt2FcieM.js} +1 -1
- package/dist/{auth-token-Dvw-1mFR.js → auth-token-DyhvQgv4.js} +1 -1
- package/dist/{auth-token-t_CY5BPB.js → auth-token-lPWiklDD.js} +1 -1
- package/dist/{banner-TDzek44y.js → banner-D-ssxnQN.js} +1 -1
- package/dist/{bonjour-discovery-BjSUj2V6.js → bonjour-discovery-CyLfNUkJ.js} +1 -1
- package/dist/{bonjour-discovery-FJyieAXp.js → bonjour-discovery-DuObXMh2.js} +1 -1
- package/dist/breakdown-B_Dhhm3K.js +753 -0
- package/dist/breakdown-Cszrv-Lf.js +753 -0
- package/dist/{browser-cli-BXH0KbhG.js → browser-cli-DGjYBquX.js} +9 -9
- package/dist/{browser-cli-UZqxfaV_.js → browser-cli-rZb2WjFF.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +10 -10
- package/dist/bundled/session-memory/handler.js +9 -9
- package/dist/{call-CKm3T_ar.js → call-DKQC0JT1.js} +1 -1
- package/dist/{call-DrkOiHjS.js → call-ogggp9QZ.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BEM8ruys.js → channel-options-DLV6zIpW.js} +2 -2
- package/dist/{channel-options-zAbgRuGY.js → channel-options-_DJXj921.js} +2 -2
- package/dist/{channels-cli-cRWPvOQD.js → channels-cli-2OTAQPvZ.js} +54 -53
- package/dist/{channels-cli-DdKnAzW9.js → channels-cli-CUsX2v-1.js} +54 -53
- package/dist/{chrome-C_I81hbq.js → chrome-3jl2ulOE.js} +4 -4
- package/dist/{chrome-zElD4rpN.js → chrome-D1eO2jfe.js} +1 -1
- package/dist/{chrome-rzK8edU7.js → chrome-DJChpTwP.js} +1 -1
- package/dist/{chrome-BKUACyeO.js → chrome-OTJg3QKn.js} +4 -4
- package/dist/{clack-prompter-CuIw5vQW.js → clack-prompter-_kEnSVz4.js} +4 -4
- package/dist/{clack-prompter-Bc38EIYW.js → clack-prompter-v9MYo-5u.js} +4 -4
- package/dist/{cli--UhNWFtQ.js → cli-D4cMWhob.js} +36 -35
- package/dist/{cli-BJDlZfYi.js → cli-Qq7pr2SX.js} +36 -35
- package/dist/{command-registry-COpZWfkh.js → command-registry-Br9vlIL_.js} +11 -11
- package/dist/{commands-registry-DPZevjMh.js → commands-registry-BuOUfpmg.js} +31 -0
- package/dist/{commands-registry-VfAQOVZO.js → commands-registry-C2Hvwjym.js} +31 -0
- package/dist/{commands-registry-BisT2Fcd.js → commands-registry-CJPBJPlh.js} +31 -0
- package/dist/{commands-registry-DFYDtKr_.js → commands-registry-DG2kGyg5.js} +31 -0
- package/dist/{completion-cli-EltMSZer.js → completion-cli-CKLoZFMQ.js} +3 -3
- package/dist/{completion-cli-DVF5x7Kp.js → completion-cli-P5zBWNnc.js} +1 -1
- package/dist/{config-D7SS4vdk.js → config-B4jkreCN.js} +13 -2
- package/dist/{config-_DaupjQd.js → config-D7TcU4qN.js} +13 -2
- package/dist/{config-cli-kN07V9j6.js → config-cli-CcJOubCt.js} +3 -3
- package/dist/{config-cli-DaPePEIB.js → config-cli-NvqRZAqr.js} +3 -3
- package/dist/{config-guard-SNMCV6sc.js → config-guard-CLfXzB_z.js} +2 -2
- package/dist/{config-guard-CN1qhDyB.js → config-guard-D58THqAB.js} +8 -8
- package/dist/{config-validation-DS5Jr_iO.js → config-validation-DQ-lm2Qx.js} +1 -1
- package/dist/{config-validation-DGWvkKov.js → config-validation-DhsYEtLL.js} +1 -1
- package/dist/{configure-id9imsuH.js → configure-B1RJ6bi3.js} +22 -22
- package/dist/{configure-C9Z4clKW.js → configure-C7BfUqKR.js} +22 -22
- package/dist/{control-service-CJWzOFkK.js → control-service-DOGU9T2P.js} +4 -4
- package/dist/{control-service-DvK2HPC2.js → control-service-DPzhv357.js} +4 -4
- package/dist/cost-cli-C9LvOtGz.js +138 -0
- package/dist/cost-cli-CmfkZsmZ.js +133 -0
- package/dist/{cron-cli-BIIzbF-W.js → cron-cli-DtDqHIZn.js} +7 -7
- package/dist/{cron-cli-BNx0V18_.js → cron-cli-L4iwVTNV.js} +7 -7
- package/dist/{daemon-cli-CGfWQN7c.js → daemon-cli-39fFIU2G.js} +15 -15
- package/dist/{daemon-cli-DCbqVfyu.js → daemon-cli-B5TdtWCQ.js} +15 -15
- package/dist/daemon-cli.js +13 -2
- package/dist/{daemon-runtime-BD_EkuZP.js → daemon-runtime-7YBz5otm.js} +3 -3
- package/dist/{daemon-runtime-CAdn50ea.js → daemon-runtime-DaJ4Tf2a.js} +3 -3
- package/dist/{deliver-6fYMGY7T.js → deliver-0nDhDdKd.js} +2 -2
- package/dist/{deliver-DyO3QD8O.js → deliver-BiWlR84Y.js} +5 -5
- package/dist/{deliver-DB4v0Tyl.js → deliver-C81eqdrP.js} +2 -2
- package/dist/{deliver-Cjyb6h4g.js → deliver-f3cIWxXT.js} +5 -5
- package/dist/{deps-Bt6gnwqB.js → deps-D5me2CAW.js} +1 -1
- package/dist/{devices-cli-CK5iNr60.js → devices-cli-DuVhACtW.js} +4 -4
- package/dist/{devices-cli-Dg4sVTTI.js → devices-cli-Ec6d58OB.js} +4 -4
- package/dist/{diagnostics-Ee2qfR9V.js → diagnostics-BZH08r5U.js} +1 -1
- package/dist/{diagnostics-4PsqURzT.js → diagnostics-CdawaB0U.js} +1 -1
- package/dist/{directory-cli-CIX9qXWA.js → directory-cli-BQrGwwjf.js} +6 -6
- package/dist/{directory-cli-CR-4DW4i.js → directory-cli-FR_KoYon.js} +6 -6
- package/dist/{dns-cli-Cd3EpJKL.js → dns-cli-CH2QMf70.js} +4 -4
- package/dist/{dns-cli-DzE58v7c.js → dns-cli-Cua_RGWw.js} +4 -4
- package/dist/{docs-cli-DD59E5fQ.js → docs-cli-9yu6OeWj.js} +2 -2
- package/dist/{docs-cli-BcqjkjOA.js → docs-cli-DwrSCuWF.js} +2 -2
- package/dist/{doctor-completion-Dw70YhMd.js → doctor-completion-Be3Of_A2.js} +2 -2
- package/dist/{doctor-completion-Dv6aw9I2.js → doctor-completion-Dco2Lmvy.js} +2 -2
- package/dist/{doctor-config-flow-BOfsrB_o.js → doctor-config-flow-CKJlpwtv.js} +5 -5
- package/dist/{doctor-config-flow-dUAjyD2W.js → doctor-config-flow-CcwEh3WQ.js} +5 -5
- package/dist/{enable-avpl_Lwo.js → enable-BI6rQ1Fb.js} +1 -1
- package/dist/{enable-B5wvwTYB.js → enable-xfczksnk.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Cv9lE0Ov.js → exec-approvals-cli-1K1PMf0f.js} +10 -10
- package/dist/{exec-approvals-cli-CLD1HXqE.js → exec-approvals-cli-N45JsIvc.js} +10 -10
- package/dist/extensionAPI.js +8 -8
- package/dist/{gateway-cli-DF-S-bKo.js → gateway-cli-BQAh5DqM.js} +86 -85
- package/dist/{gateway-cli-C1yf0Kx4.js → gateway-cli-XV8T-ix8.js} +84 -83
- package/dist/{gateway-rpc-CBb3_pT9.js → gateway-rpc-c2_A2rwu.js} +2 -2
- package/dist/{gateway-rpc-DrcgCoEA.js → gateway-rpc-gDrdC_J6.js} +2 -2
- package/dist/{glass-ui-ws-CgTry9OG.js → glass-ui-ws-1FOCi0nn.js} +62 -61
- package/dist/{glass-ui-ws-BZJKBK5D.js → glass-ui-ws-CqGzDNV7.js} +63 -62
- package/dist/{health-B__mwl7J.js → health-B5BrlZ8G.js} +6 -6
- package/dist/{health-BJl_ZtRW.js → health-B7yvi1O9.js} +6 -6
- package/dist/{hooks-cli-B_d8Cv16.js → hooks-cli-BPa-ssdB.js} +42 -41
- package/dist/{hooks-cli-CpDJa8fo.js → hooks-cli-D7iTDry_.js} +42 -41
- package/dist/{hooks-status-CRdYwf7p.js → hooks-status-B5vDwm19.js} +1 -1
- package/dist/{hooks-status-i4MgV8tU.js → hooks-status-CQ33gaVT.js} +2 -2
- package/dist/index.js +47 -46
- package/dist/{inspect-BZEGJ1Wu.js → inspect-C3_zr-N9.js} +2 -2
- package/dist/{inspect-ChCXJY8c.js → inspect-D_lN8pwg.js} +2 -2
- package/dist/{install-safe-path-PVqsVjI9.js → install-safe-path-79R0iPyC.js} +2 -2
- package/dist/{install-safe-path-INk2Z_kc.js → install-safe-path-BBe6qFNr.js} +2 -2
- package/dist/{installs-lGgvyXAJ.js → installs-BVJQl3Tj.js} +3 -3
- package/dist/{installs-b6XWplET.js → installs-Bb1phV9x.js} +3 -3
- package/dist/{lifecycle-core-iiq9e4fE.js → lifecycle-core-DdbL6ELJ.js} +7 -7
- package/dist/{lifecycle-core-SWNKAc8k.js → lifecycle-core-O50xtu5c.js} +7 -7
- package/dist/llm-slug-generator.js +9 -9
- package/dist/{logs-cli-BGjeoamB.js → logs-cli-DvbMaSKU.js} +6 -6
- package/dist/{logs-cli-BEWpB_ac.js → logs-cli-T5v8efuM.js} +6 -6
- package/dist/{manager-rvtFoeFT.js → manager-Bt-1HGg9.js} +1 -1
- package/dist/{manager-DcZUW1bz.js → manager-CC13EPO9.js} +1 -1
- package/dist/{manager-PTSjHNVq.js → manager-Ck1YSfr6.js} +1 -1
- package/dist/{manager-xeIkDkmx.js → manager-DghM7T-b.js} +1 -1
- package/dist/{memory-D8JRYEYq.js → memory-CgWOtF4K.js} +4 -4
- package/dist/{memory-cli-DZtv3G9o.js → memory-cli-DGheAg5i.js} +7 -7
- package/dist/{memory-cli-rORHUdUV.js → memory-cli-vN3fGs79.js} +7 -7
- package/dist/{memory-CeB8eMPH.js → memory-d0YI5Lr0.js} +4 -4
- package/dist/{model-catalog-MHTLXFwi.js → model-catalog-CzKsiNZA.js} +2 -2
- package/dist/{model-catalog-DQTmHZK7.js → model-catalog-IWi6-nY9.js} +2 -2
- package/dist/{model-picker-BVNI6Imm.js → model-picker-CS_h9RHv.js} +2 -2
- package/dist/{model-picker-DHLA0BEe.js → model-picker-DN-co6Oy.js} +2 -2
- package/dist/{models-D3haEpaG.js → models-CBw1pGIq.js} +17 -17
- package/dist/{models-cli-DidUOdbx.js → models-cli-BBReZHNq.js} +46 -45
- package/dist/{models-cli-DiyNuQ5w.js → models-cli-Bmh1S3iG.js} +49 -48
- package/dist/{models-config-CRnTzdFs.js → models-config-B5Xxy-c-.js} +1 -1
- package/dist/{models-config-Br7EjqgG.js → models-config-CiR_RUxw.js} +1 -1
- package/dist/{node-cli-Yqf38Nio.js → node-cli-2HDdeLgi.js} +20 -20
- package/dist/{node-cli-DnwByBU2.js → node-cli-CH1yLZuO.js} +20 -20
- package/dist/{node-service-CRSkbk2b.js → node-service-CfHbECCi.js} +2 -2
- package/dist/{node-service-E8k7BOQV.js → node-service-D44noKnR.js} +2 -2
- package/dist/{nodes-cli-BY6HrZlh.js → nodes-cli-ARs9ZPma.js} +9 -9
- package/dist/{nodes-cli-OTk4gEj-.js → nodes-cli-DIm6cMS_.js} +9 -9
- package/dist/{note-Bn5K9itM.js → note-Cltpxj6i.js} +1 -1
- package/dist/{note-DtkOgLxt.js → note-ytwb4wwn.js} +1 -1
- package/dist/{npm-registry-spec-CZCkONwR.js → npm-registry-spec-CONWlhd6.js} +1 -1
- package/dist/{npm-registry-spec-L8BUQ0nu.js → npm-registry-spec-DPqOMFd9.js} +1 -1
- package/dist/{onboard-oIJ6OEGu.js → onboard-Csj4sOF5.js} +18 -18
- package/dist/{onboard-C1PSYsJY.js → onboard-LVUmCZhX.js} +18 -18
- package/dist/{onboard-channels-DvNWHvx3.js → onboard-channels-mrSIlZDB.js} +7 -7
- package/dist/{onboard-channels-BSt89ffO.js → onboard-channels-vDtX0e0w.js} +7 -7
- package/dist/{onboard-custom-y7PsUrmE.js → onboard-custom-BCcuL4Uq.js} +2 -2
- package/dist/{onboard-custom-TvRg0dYq.js → onboard-custom-C-wfNtOM.js} +2 -2
- package/dist/{onboard-helpers-CtpOchu0.js → onboard-helpers-BKfeJ1xj.js} +4 -4
- package/dist/{onboard-helpers-HjgAKoSl.js → onboard-helpers-CCI7SimM.js} +4 -4
- package/dist/{onboard-hooks-BU0EsBMH.js → onboard-hooks-CXRw9BJY.js} +2 -2
- package/dist/{onboard-hooks-Cmy0Qz0F.js → onboard-hooks-DfDF9AU4.js} +2 -2
- package/dist/{onboard-remote-B7bM-1-l.js → onboard-remote-D4R-Yq2Q.js} +3 -3
- package/dist/{onboard-remote-B5kHPh_e.js → onboard-remote-DKXBH_lQ.js} +3 -3
- package/dist/{onboard-skills-BsPcuuer.js → onboard-skills-BPmu8XLA.js} +2 -2
- package/dist/{onboard-skills-V7pX2pkl.js → onboard-skills-jVyIFojF.js} +3 -3
- package/dist/{onboarding-Ce0PyZFq.js → onboarding-D2VmoKU1.js} +16 -16
- package/dist/{onboarding-D4SGY_zG.js → onboarding-DojADc8N.js} +16 -16
- package/dist/{onboarding.finalize-TkbmJzg5.js → onboarding.finalize-Bi1wSEtw.js} +28 -28
- package/dist/{onboarding.finalize-BDPrr9CT.js → onboarding.finalize-C4BwVw6u.js} +26 -26
- package/dist/{onboarding.gateway-config-9dgVRLeb.js → onboarding.gateway-config-B301LxTx.js} +6 -6
- package/dist/{onboarding.gateway-config-DXQhxsQS.js → onboarding.gateway-config-ChCxv8dy.js} +6 -6
- package/dist/{openai-model-default-D_rz8Pew.js → openai-model-default-CKfNKTZD.js} +1 -1
- package/dist/{openai-model-default-BkGyzajy.js → openai-model-default-ChdgeMqX.js} +1 -1
- package/dist/{outbound-send-deps-PNzbuoSX.js → outbound-send-deps-JQjmNLPx.js} +1 -1
- package/dist/{pairing-cli-WQ1MKO2B.js → pairing-cli-D7_UlTsI.js} +3 -3
- package/dist/{pairing-cli-D2zvrKTM.js → pairing-cli-UgiAsygW.js} +3 -3
- package/dist/{path-env-BHRjFlqO.js → path-env-BAyW1s3c.js} +1 -1
- package/dist/{path-env-i-ZjtVbs.js → path-env-C1hgM8gP.js} +1 -1
- package/dist/{pi-embedded-helpers-nFK_hP2q.js → pi-embedded-helpers-BBiyNXkS.js} +1 -1
- package/dist/{pi-embedded-helpers-DVolpQ34.js → pi-embedded-helpers-CDzBxa-P.js} +1 -1
- package/dist/{pi-embedded-BPuUM-gD.js → pi-embedded-zSv7VKNQ.js} +1265 -428
- package/dist/{pi-tools.policy-uHgu_nx0.js → pi-tools.policy-CU8U7--z.js} +2 -2
- package/dist/{pi-tools.policy-CTzYYKRt.js → pi-tools.policy-WaLKhqJQ.js} +2 -2
- package/dist/{plugin-auto-enable-C4b23B35.js → plugin-auto-enable-Bt2sVz8w.js} +2 -2
- package/dist/{plugin-auto-enable-BkhVwtbW.js → plugin-auto-enable-PBDcVF_-.js} +2 -2
- package/dist/{plugin-registry-CxUYRmLh.js → plugin-registry-Dq6OJ45H.js} +2 -2
- package/dist/{plugin-registry-V5jShvbP.js → plugin-registry-L1h7mxjX.js} +2 -2
- package/dist/plugin-sdk/auto-reply/reply/commands-info.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/status.d.ts +13 -0
- package/dist/plugin-sdk/config/types.models.d.ts +5 -0
- package/dist/plugin-sdk/config/zod-schema.core.d.ts +11 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +5 -0
- package/dist/plugin-sdk/cost/benchmark.d.ts +36 -0
- package/dist/plugin-sdk/cost/breakdown.d.ts +63 -0
- package/dist/plugin-sdk/cost/gpu-inference.d.ts +52 -0
- package/dist/plugin-sdk/cost/rates.d.ts +32 -0
- package/dist/plugin-sdk/cost/serving-discovery.d.ts +54 -0
- package/dist/plugin-sdk/cost/summary.d.ts +40 -0
- package/dist/plugin-sdk/index.js +19 -8
- package/dist/{plugins-cli-BthQwo7n.js → plugins-cli-BEIKMoVH.js} +43 -42
- package/dist/{plugins-cli-CMAwepRk.js → plugins-cli-C9ehLXaT.js} +43 -42
- package/dist/{program-context-BVEz8AgF.js → program-context-Bh5wzWdC.js} +48 -40
- package/dist/{program-iw_XyVhs.js → program-iTd2Dei7.js} +46 -45
- package/dist/{prompt-select-styled-CF4qV0_M.js → prompt-select-styled-CNFytCD3.js} +32 -32
- package/dist/{prompt-select-styled-D3RAY7pg.js → prompt-select-styled-fXotfbCt.js} +31 -31
- package/dist/{provider-auth-helpers-BTBjOyhO.js → provider-auth-helpers-DBrH-cce.js} +6 -6
- package/dist/{provider-auth-helpers-Dxo0v0UO.js → provider-auth-helpers-Dho1n21x.js} +6 -6
- package/dist/{push-apns-DIIbGT1M.js → push-apns-DYYY9NOE.js} +1 -1
- package/dist/{push-apns-B8Wg3Hqw.js → push-apns-DpyCFRTu.js} +1 -1
- package/dist/{pw-ai-kkF0QaDF.js → pw-ai-DBAtSFTB.js} +2 -2
- package/dist/{pw-ai-BFS9ezWe.js → pw-ai-DOAsQ5NX.js} +2 -2
- package/dist/{pw-ai-_prsAw5O.js → pw-ai-DQZa9DUQ.js} +2 -2
- package/dist/{pw-ai-Cx-Ko_FL.js → pw-ai-DY_6l11g.js} +2 -2
- package/dist/{qr-cli-CcAzgz_N.js → qr-cli-D2A-IU0Y.js} +1 -1
- package/dist/{qr-cli-KmGkQDBF.js → qr-cli-DHpiebkG.js} +1 -1
- package/dist/{redact-identifier-CXvHJXk9.js → redact-identifier-BOxAUdff.js} +1 -1
- package/dist/{register.agent-8XsVRuWC.js → register.agent-BYpBNbHe.js} +61 -60
- package/dist/{register.agent-D-OIszeY.js → register.agent-DceNHGi_.js} +63 -62
- package/dist/register.configure-09lIIUvq.js +131 -0
- package/dist/register.configure-UUZqL0Ck.js +135 -0
- package/dist/{register.maintenance-CBYqsXkf.js → register.maintenance-CsoEyVyl.js} +63 -62
- package/dist/{register.maintenance-CjM8sJqH.js → register.maintenance-DdX8GZpv.js} +64 -63
- package/dist/{register.message-kSIASKVK.js → register.message-CAM62MaW.js} +41 -40
- package/dist/{register.message-DnljWvZP.js → register.message-RYn7LD6-.js} +40 -39
- package/dist/{register.onboard-Vj1-Ike1.js → register.onboard-CoRtNlNa.js} +28 -28
- package/dist/{register.onboard-eDNn1pdd.js → register.onboard-DhR5o8KO.js} +28 -28
- package/dist/{register.setup-CmhspsS8.js → register.setup-CEjhFwYz.js} +28 -28
- package/dist/{register.setup-DMaoMWRD.js → register.setup-CI_RT1Wa.js} +28 -28
- package/dist/{register.status-health-sessions-CJqCoqAi.js → register.status-health-sessions-8N1xEKl7.js} +35 -35
- package/dist/{register.status-health-sessions-r3F9H8b0.js → register.status-health-sessions-DNlsQ-xt.js} +36 -36
- package/dist/{register.subclis-RqX1a2aL.js → register.subclis-D1qkm3UK.js} +37 -29
- package/dist/{replies-BYF1gbJf.js → replies-0nzkXt6o.js} +1 -1
- package/dist/{replies-B91-OngF.js → replies-C5CBlnFS.js} +1 -1
- package/dist/{replies-DAYTg6Mb.js → replies-D0FYSIJg.js} +1 -1
- package/dist/{replies-UP2sglaR.js → replies-_DV8VSSj.js} +1 -1
- package/dist/{resolve-route-Zww0Y-HJ.js → resolve-route-CnTdHVgw.js} +1 -1
- package/dist/{resolve-route-CmZ7XjmB.js → resolve-route-D0NrCHnr.js} +1 -1
- package/dist/{routes-BfeVDhod.js → routes-CPMVuvoz.js} +3 -3
- package/dist/{routes-y2Ww0pum.js → routes-DIyAmLYR.js} +3 -3
- package/dist/{rpc-DZCrGGH5.js → rpc-B2BLRS45.js} +2 -2
- package/dist/{rpc-RIkh5F9v.js → rpc-gUsL9Mqf.js} +2 -2
- package/dist/{run-main-6pE2fYXT.js → run-main-hKg6FDt6.js} +61 -60
- package/dist/{sandbox-DQdjlC-w.js → sandbox-61-kshSF.js} +5 -5
- package/dist/{sandbox-BjQ6n3zl.js → sandbox-J92UBQK8.js} +5 -5
- package/dist/{sandbox-cli-CTYAHFyM.js → sandbox-cli-D9v0jhBb.js} +8 -8
- package/dist/{sandbox-cli-C0IVf8AS.js → sandbox-cli-DJgF-r8G.js} +8 -8
- package/dist/{security-cli-B8VyQJcl.js → security-cli-CZix5cXq.js} +13 -13
- package/dist/{security-cli-D0oErb9f.js → security-cli-J9J0qvDy.js} +13 -13
- package/dist/{send-Cxu1tl56.js → send-B0jHSNMF.js} +1 -1
- package/dist/{send-Cuk_Rjss.js → send-C75uSv6p.js} +1 -1
- package/dist/{send-BBfSp-8Q.js → send-Dq252-bi.js} +1 -1
- package/dist/{server-context-BFCh7pUb.js → server-context-D-82OTsT.js} +5 -5
- package/dist/{server-context-YlgRz1wC.js → server-context-SbbjNkPL.js} +5 -5
- package/dist/{server-methods-BWCAXrQJ.js → server-methods-CXoipzKe.js} +31 -31
- package/dist/{server-methods-BxsThjMp.js → server-methods-bIWvtXlT.js} +31 -31
- package/dist/{server-node-events-AZFI44cm.js → server-node-events-BD8wnswX.js} +40 -39
- package/dist/{server-node-events-C10Bhdag.js → server-node-events-nQkNuQOx.js} +39 -38
- package/dist/{service-vsb7_8MA.js → service-BF50XyKr.js} +2 -2
- package/dist/{service-BBw78ATM.js → service-Ccv3Zi5_.js} +2 -2
- package/dist/{session-cost-usage-CqLUlh7S.js → session-cost-usage-CJWHHY-C.js} +1 -1
- package/dist/{session-cost-usage-D6Ocwmq1.js → session-cost-usage-D3mgssM_.js} +1 -1
- package/dist/{session-utils-BZnPW904.js → session-utils-Cs1jlD-q.js} +3 -3
- package/dist/{session-utils-BGw_xwXK.js → session-utils-Zpe3t68b.js} +3 -3
- package/dist/{sessions-uS7rV-lI.js → sessions-BSmT7vGX.js} +3 -3
- package/dist/{sessions-DHPf5TzB.js → sessions-Dn6VXn4p.js} +1 -1
- package/dist/{sessions-optZRB57.js → sessions-Dxf5Kjig.js} +1 -1
- package/dist/{shared-CfBMF1VB.js → shared-BJRsBGGr.js} +2 -2
- package/dist/{shared-CVXZtpIq.js → shared-BmjlTHYU.js} +2 -2
- package/dist/{shared-BucaCyaw.js → shared-Ck6cf10x.js} +1 -1
- package/dist/{shared-k1QjV3ys.js → shared-Crfo8y70.js} +1 -1
- package/dist/{skill-commands-CKm7eCw6.js → skill-commands-D0xAWG0l.js} +1 -1
- package/dist/{skill-commands-DAtpPeXi.js → skill-commands-DKkiQJxU.js} +1 -1
- package/dist/{skill-commands-BoMrW3WV.js → skill-commands-JIccKWkf.js} +1 -1
- package/dist/{skill-commands-yPirQFOb.js → skill-commands-KnANH5Qm.js} +1 -1
- package/dist/{skills-cli-CcWFIcOR.js → skills-cli-BZF5mcG5.js} +7 -7
- package/dist/{skills-cli-DcJBgk5R.js → skills-cli-C9F-zLWe.js} +3 -3
- package/dist/{skills-install-CcW780Kq.js → skills-install-QOHQrX6P.js} +4 -4
- package/dist/{skills-install-CbRsCzAG.js → skills-install-X12kifP1.js} +4 -4
- package/dist/{skills-status-CLzaY4r2.js → skills-status-6LVKpabC.js} +1 -1
- package/dist/{ssrf-q6hBiAOi.js → ssrf-BCSnhba8.js} +13 -2
- package/dist/{ssrf-oI58TMOb.js → ssrf-DNhyFMRW.js} +13 -2
- package/dist/{status-BxD8CjLr.js → status-CIZltjd7.js} +2 -2
- package/dist/{status-Cv8N2kIe.js → status-CTDVhXdb.js} +20 -20
- package/dist/{status-CZc22Lqb.js → status-CWzbgPAZ.js} +2 -2
- package/dist/{status-B5sjPQS6.js → status-Dgg3SlRY.js} +20 -20
- package/dist/{status.update-B52bM2Tg.js → status.update-CdTtmVpp.js} +2 -2
- package/dist/{status.update-Bl_ewksT.js → status.update-_3qHPt0O.js} +2 -2
- package/dist/{subagent-registry-BnHgIGX-.js → subagent-registry-DQ_BPb-T.js} +130 -40
- package/dist/{synthesis-DvfrgkQU.js → synthesis-CDd1xqI3.js} +36 -35
- package/dist/{synthesis-fD8J2vag.js → synthesis-CSsmBmJc.js} +9 -9
- package/dist/{synthesis-o7Zdrwxz.js → synthesis-DIqhHKjV.js} +36 -35
- package/dist/{synthesis-7UL3pCpj.js → synthesis-XbEFEFK1.js} +8 -8
- package/dist/{system-cli-BAn07VkE.js → system-cli-DB9etQxq.js} +5 -5
- package/dist/{system-cli-BTZ8T0-Z.js → system-cli-szRqg1_v.js} +5 -5
- package/dist/{systemd-DCzA-V_E.js → systemd-Dic80Qni.js} +1 -1
- package/dist/{systemd-Cmn7zMqD.js → systemd-Dtydk5-z.js} +1 -1
- package/dist/{systemd-hints-CvIqgg9d.js → systemd-hints-DmDUq9JT.js} +4 -4
- package/dist/{systemd-hints-BlGehfA3.js → systemd-hints-bP8dBJ78.js} +4 -4
- package/dist/{systemd-linger-BUWYteOW.js → systemd-linger-BBxRNFXz.js} +2 -2
- package/dist/{systemd-linger-Bj4nK9ZB.js → systemd-linger-DjoQVcOq.js} +2 -2
- package/dist/{tui-XLWiN8Hm.js → tui-CEhOf9fk.js} +6 -6
- package/dist/{tui-B6mIUNPO.js → tui-Dp58oYvX.js} +6 -6
- package/dist/{tui-cli-byFYgg3c.js → tui-cli-DFaOwBwg.js} +12 -12
- package/dist/{tui-cli-CTK5_3rU.js → tui-cli-wxh3YpaV.js} +12 -12
- package/dist/{unified-runner-DnikxMFg.js → unified-runner-Bm3r8UOg.js} +130 -40
- package/dist/{unified-runner-BIiKFnNF.js → unified-runner-DN0asRIR.js} +1266 -429
- package/dist/{update-DxY1UB0k.js → update-BDo7wxMf.js} +1 -1
- package/dist/{update-EhDcBqN1.js → update-CcacbR32.js} +1 -1
- package/dist/{update-check-pFwV6W-z.js → update-check-A86nJKtZ.js} +1 -1
- package/dist/{update-check-H0DwvuqN.js → update-check-oEbS0voJ.js} +1 -1
- package/dist/{update-cli-C8IVRiDZ.js → update-cli-CK7nw0t0.js} +74 -73
- package/dist/{update-cli-BAdPKO1o.js → update-cli-kysdsvn3.js} +73 -72
- package/dist/{update-runner-CERd2XdT.js → update-runner-CQMv-ibM.js} +3 -3
- package/dist/{update-runner-7oHPAIND.js → update-runner-DHi359Tb.js} +3 -3
- package/dist/{usage-format-_37Bn-Jb.js → usage-format-DQJz-0qd.js} +0 -1
- package/dist/{usage-format-rxT5cEAf.js → usage-format-DeczTGI-.js} +0 -1
- package/dist/{webhooks-cli-3UJupWMP.js → webhooks-cli-C3g4MxCE.js} +3 -3
- package/dist/{webhooks-cli-BFpGMNrf.js → webhooks-cli-C3uyehJS.js} +3 -3
- package/dist/{with-timeout-Bn-ltLg1.js → with-timeout-B0ZJa7f2.js} +1 -1
- package/dist/{with-timeout-EXM-FP4_.js → with-timeout-GbJ1Yzsh.js} +1 -1
- package/package.json +1 -1
- package/dist/register.configure-Bcdw9qlF.js +0 -130
- package/dist/register.configure-KE6Kvt4O.js +0 -134
- /package/dist/{agents.config-BG9fpad0.js → agents.config-Cyc_RegL.js} +0 -0
- /package/dist/{agents.config-CxrFhtC1.js → agents.config-DK6nN-Qh.js} +0 -0
- /package/dist/{argv-oa_KBmv1.js → argv-Bl0th4dq.js} +0 -0
- /package/dist/{auth-choice-legacy-DwMt7oDR.js → auth-choice-legacy-BZWIpO92.js} +0 -0
- /package/dist/{auth-choice-legacy-ZsU_kwPI.js → auth-choice-legacy-iEyARXI2.js} +0 -0
- /package/dist/{bindings-CLS_owm_.js → bindings-BAOPW5eK.js} +0 -0
- /package/dist/{bindings-BpMZcmYL.js → bindings-c7qLJdIA.js} +0 -0
- /package/dist/{brew-B3VMQVQk.js → brew-B4FH-mEH.js} +0 -0
- /package/dist/{brew-BsE_w2tW.js → brew-CI00FKf8.js} +0 -0
- /package/dist/{catalog-CriSxQMH.js → catalog-BaM8d1-T.js} +0 -0
- /package/dist/{catalog-BXxi5-YC.js → catalog-BnLcGVie.js} +0 -0
- /package/dist/{channel-selection-BiYW5XI-.js → channel-selection-BrFl0vVK.js} +0 -0
- /package/dist/{channel-selection-DF4bza2Q.js → channel-selection-DjrS6oiz.js} +0 -0
- /package/dist/{channels-status-issues-DuRF3XF3.js → channels-status-issues-BwbA2OBt.js} +0 -0
- /package/dist/{channels-status-issues-C2AVfv0-.js → channels-status-issues-iWQDGUQe.js} +0 -0
- /package/dist/{cli-utils-tNdOjVQI.js → cli-utils-CbnnSB38.js} +0 -0
- /package/dist/{clipboard-B1jgJ11s.js → clipboard-BSTxQ2tO.js} +0 -0
- /package/dist/{clipboard-Sks8Qw-6.js → clipboard-CHn5r7Kj.js} +0 -0
- /package/dist/{command-options-C2yg82U0.js → command-options-DgcCGXMQ.js} +0 -0
- /package/dist/{command-options-D_KEIae-.js → command-options-Vxb4M7Aj.js} +0 -0
- /package/dist/{consolidate-DPAffHCg.js → consolidate-BSUbtSDt.js} +0 -0
- /package/dist/{consolidate-CF6vEjPe.js → consolidate-DhoiF4n7.js} +0 -0
- /package/dist/{constants-B4wXIPMk.js → constants-BLIhifCJ.js} +0 -0
- /package/dist/{constants-ChnKXZKi.js → constants-BP_JoSwO.js} +0 -0
- /package/dist/{control-ui-assets-CkPR0Fz2.js → control-ui-assets-CnX0W3vy.js} +0 -0
- /package/dist/{control-ui-assets-BVCcPRi3.js → control-ui-assets-DfBRXG5y.js} +0 -0
- /package/dist/{delivery-queue-DqDe6994.js → delivery-queue-CIwn40ej.js} +0 -0
- /package/dist/{delivery-queue-RUd4NhRw.js → delivery-queue-duM0RT18.js} +0 -0
- /package/dist/{dm-policy-shared-DmpXsl2K.js → dm-policy-shared-BUwZ6Ajx.js} +0 -0
- /package/dist/{dm-policy-shared-ZfPtrTeh.js → dm-policy-shared-EuuPwRNE.js} +0 -0
- /package/dist/{entry-status-BqhxPFzK.js → entry-status-D0BSpWt_.js} +0 -0
- /package/dist/{format-BskCnX0I.js → format-BcXs5iuf.js} +0 -0
- /package/dist/{gmail-setup-utils-BlGvgPlF.js → gmail-setup-utils-DJgxyDTX.js} +0 -0
- /package/dist/{gmail-setup-utils-DsRU2ywQ.js → gmail-setup-utils-_TEJA4pL.js} +0 -0
- /package/dist/{health-format-CzrMGubG.js → health-format-Dp4xmTKn.js} +0 -0
- /package/dist/{health-format-C0DWlpEn.js → health-format-Li703vy6.js} +0 -0
- /package/dist/{help-format-DhRyo3Pj.js → help-format-8IYCRvx1.js} +0 -0
- /package/dist/{help-format-BjEVi4c_.js → help-format-BTNd5kFC.js} +0 -0
- /package/dist/{helpers-CcArejFh.js → helpers-BnXDQL2q.js} +0 -0
- /package/dist/{helpers-Dm_utoC3.js → helpers-CoScWBmD.js} +0 -0
- /package/dist/{helpers-DJRLZbrj.js → helpers-DGBa5iKd.js} +0 -0
- /package/dist/{helpers-DUclfUl-.js → helpers-lLtg0Hgi.js} +0 -0
- /package/dist/{ipv4--8f4a_51.js → ipv4-CCdAVmwu.js} +0 -0
- /package/dist/{ipv4-Cy7l-phR.js → ipv4-DFUXU3PT.js} +0 -0
- /package/dist/{links-D6ASL_as.js → links-B9CbwY46.js} +0 -0
- /package/dist/{links-BkFDs4sT.js → links-CQZxjjCO.js} +0 -0
- /package/dist/{logging-4WqMHwAZ.js → logging-BRejMykf.js} +0 -0
- /package/dist/{logging-iIX8duxv.js → logging-BmJ5ky59.js} +0 -0
- /package/dist/{logging-Czh4x_NQ.js → logging-CLWZ3KQI.js} +0 -0
- /package/dist/{model-D50Lt_sm.js → model-BMFj7NXy.js} +0 -0
- /package/dist/{model-param-b-CfiuLqZG.js → model-param-b-C6mMtCJr.js} +0 -0
- /package/dist/{onboard-config-BKb2QQqE.js → onboard-config-B9Iy9-4f.js} +0 -0
- /package/dist/{onboard-config-DZIbmz6s.js → onboard-config-DwsP5yz1.js} +0 -0
- /package/dist/{outbound-send-deps-BR6jeE9h.js → outbound-send-deps-DpyxnI3f.js} +0 -0
- /package/dist/{parse-log-line-CeJ1RDHv.js → parse-log-line-BQPvB6cZ.js} +0 -0
- /package/dist/{parse-log-line-DxFrnzNo.js → parse-log-line-Cg7e_EO6.js} +0 -0
- /package/dist/{parse-port-DdAxyRwV.js → parse-port-CLBKavYE.js} +0 -0
- /package/dist/{parse-port-W56FnCN_.js → parse-port-dzRz6QnZ.js} +0 -0
- /package/dist/{parse-timeout-DKY8YAUj.js → parse-timeout-CuYdP9TL.js} +0 -0
- /package/dist/{path-safety-LPRW6mO-.js → path-safety-ZDtSDPro.js} +0 -0
- /package/dist/{path-safety-grmMl9nR.js → path-safety-cWA8NpOb.js} +0 -0
- /package/dist/{plugins-allowlist-BuJjTWyS.js → plugins-allowlist-C5r7biDp.js} +0 -0
- /package/dist/{plugins-allowlist-BvQZxkGy.js → plugins-allowlist-CD4oIJNk.js} +0 -0
- /package/dist/{ports-CqKpyZSl.js → ports-BE4iY9ho.js} +0 -0
- /package/dist/{ports-BDzMH5Eu.js → ports-C2swmreL.js} +0 -0
- /package/dist/{program-context-C5Y6Svzj.js → program-context-CGKRxOBU.js} +0 -0
- /package/dist/{progress-deSwGz9x.js → progress-BOQ0hkeM.js} +0 -0
- /package/dist/{progress-B3K1UFtC.js → progress-DQTvTiEg.js} +0 -0
- /package/dist/{prompt-style-DeaIm7_1.js → prompt-style-CzRuIYtp.js} +0 -0
- /package/dist/{prompt-style-DS51QPPi.js → prompt-style-pphr4yLK.js} +0 -0
- /package/dist/{prompts-LvxbwPs6.js → prompts-B98rp78m.js} +0 -0
- /package/dist/{prompts-l_pUOv42.js → prompts-CqJkfsHC.js} +0 -0
- /package/dist/{qmd-manager-BbWeOOTD.js → qmd-manager-C6wRtPm_.js} +0 -0
- /package/dist/{qmd-manager-CYKlEJ2U.js → qmd-manager-CYEAMLE7.js} +0 -0
- /package/dist/{runtime-guard-GWXNB3ke.js → runtime-guard-Bgv3O9s4.js} +0 -0
- /package/dist/{runtime-guard-DWXoHW1Q.js → runtime-guard-ofQGcCUc.js} +0 -0
- /package/dist/{runtime-status-BqrK6ivx.js → runtime-status-B-PXkhrX.js} +0 -0
- /package/dist/{runtime-status-D4pjzLyv.js → runtime-status-Zb9OQ0VK.js} +0 -0
- /package/dist/{session-dirs-CXErIzZq.js → session-dirs-BsQ-g02q.js} +0 -0
- /package/dist/{session-dirs-DJ4qiP3r.js → session-dirs-DpiMgw4q.js} +0 -0
- /package/dist/{skill-scanner-zh2dJM3x.js → skill-scanner-D5p8L-xO.js} +0 -0
- /package/dist/{skill-scanner-Ur9nMoo4.js → skill-scanner-EhsZUzzk.js} +0 -0
- /package/dist/{stagger-DkaCfsKB.js → stagger-DQs772BN.js} +0 -0
- /package/dist/{status-Bz_-dDs6.js → status-DtyqId3v.js} +0 -0
- /package/dist/{status-CExNNC5N.js → status-dOhj12u0.js} +0 -0
- /package/dist/{system-run-command-CeR1OLFk.js → system-run-command-2oJPKfVr.js} +0 -0
- /package/dist/{system-run-command-Craglj8T.js → system-run-command-D_OmCQOL.js} +0 -0
- /package/dist/{table-xKEHbVsK.js → table-Dm8jYqmW.js} +0 -0
- /package/dist/{table-jBELNhV1.js → table-Ds5CZCyv.js} +0 -0
- /package/dist/{tool-loop-detection-D3y39HsT.js → tool-loop-detection-2Mxxm8YE.js} +0 -0
- /package/dist/{tool-loop-detection-DljhV89j.js → tool-loop-detection-Bk07vuCX.js} +0 -0
- /package/dist/{widearea-dns-C8Rsixsi.js → widearea-dns-BwIBBqZo.js} +0 -0
- /package/dist/{widearea-dns-BSrnDwJD.js → widearea-dns-DA_m7oeT.js} +0 -0
- /package/dist/{workspace-DKEYzTNc.js → workspace-DD9pYbiv.js} +0 -0
- /package/dist/{workspace-BkWAKK8O.js → workspace-Wkr6wXcS.js} +0 -0
- /package/dist/{wsl-cy5jpbkx.js → wsl-Ci3VOaSK.js} +0 -0
- /package/dist/{wsl-hSA0zCrh.js → wsl-S50RbgL8.js} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-CFxFgYxM.js";
|
|
2
2
|
import { r as resolveAgentConfig } from "./agent-scope-C-Jte08L.js";
|
|
3
|
-
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
3
|
+
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-D7TcU4qN.js";
|
|
4
4
|
import { l as normalizeMessageChannel } from "./message-channel-DXToSaWK.js";
|
|
5
|
-
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-
|
|
5
|
+
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-J92UBQK8.js";
|
|
6
6
|
import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-DZ6SgvTh.js";
|
|
7
7
|
|
|
8
8
|
//#region src/agents/sandbox-tool-policy.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-DUSb7CCb.js";
|
|
2
2
|
import { r as resolveAgentConfig } from "./agent-scope-DOrZjOnW.js";
|
|
3
|
-
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
4
|
-
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-
|
|
3
|
+
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-B4jkreCN.js";
|
|
4
|
+
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-61-kshSF.js";
|
|
5
5
|
import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-hF45sewN.js";
|
|
6
6
|
import { l as normalizeMessageChannel } from "./message-channel-DgjXWzf-.js";
|
|
7
7
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-Sbac4a4z.js";
|
|
2
2
|
import { u as isRecord } from "./utils-CTPsqyE_.js";
|
|
3
3
|
import { u as normalizeProviderId } from "./model-selection-7wdmO-Iw.js";
|
|
4
|
-
import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-
|
|
5
|
-
import { t as ensurePluginAllowlisted } from "./plugins-allowlist-
|
|
4
|
+
import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-BnLcGVie.js";
|
|
5
|
+
import { t as ensurePluginAllowlisted } from "./plugins-allowlist-C5r7biDp.js";
|
|
6
6
|
|
|
7
7
|
//#region src/config/plugin-auto-enable.ts
|
|
8
8
|
const CHANNEL_PLUGIN_IDS = Array.from(new Set([...listChatChannels().map((meta) => meta.id), ...listChannelPluginCatalogEntries().map((entry) => entry.id)]));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { At as isRecord, D as getChatChannelMeta, O as listChatChannels, j as normalizeChatChannelId } from "./entry.js";
|
|
2
2
|
import { u as normalizeProviderId } from "./model-selection-CMx1evaF.js";
|
|
3
|
-
import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-
|
|
4
|
-
import { t as ensurePluginAllowlisted } from "./plugins-allowlist-
|
|
3
|
+
import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-BaM8d1-T.js";
|
|
4
|
+
import { t as ensurePluginAllowlisted } from "./plugins-allowlist-CD4oIJNk.js";
|
|
5
5
|
|
|
6
6
|
//#region src/config/plugin-auto-enable.ts
|
|
7
7
|
const CHANNEL_PLUGIN_IDS = Array.from(new Set([...listChatChannels().map((meta) => meta.id), ...listChannelPluginCatalogEntries().map((entry) => entry.id)]));
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { s as loadSymiPlugins } from "./unified-runner-
|
|
2
|
+
import { s as loadSymiPlugins } from "./unified-runner-Bm3r8UOg.js";
|
|
3
3
|
import { d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
|
|
6
|
-
import { i as loadConfig } from "./config-
|
|
6
|
+
import { i as loadConfig } from "./config-B4jkreCN.js";
|
|
7
7
|
|
|
8
8
|
//#region src/cli/plugin-registry.ts
|
|
9
9
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
|
|
3
3
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-C-Jte08L.js";
|
|
4
|
-
import { i as loadConfig } from "./config-
|
|
5
|
-
import { m as loadSymiPlugins } from "./subagent-registry-
|
|
4
|
+
import { i as loadConfig } from "./config-D7TcU4qN.js";
|
|
5
|
+
import { m as loadSymiPlugins } from "./subagent-registry-DQ_BPb-T.js";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/plugin-registry.ts
|
|
8
8
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -6,6 +6,7 @@ export declare function buildCommandsPaginationKeyboard(currentPage: number, tot
|
|
|
6
6
|
callback_data: string;
|
|
7
7
|
}>>;
|
|
8
8
|
export declare const handleStatusCommand: CommandHandler;
|
|
9
|
+
export declare const handleCostCommand: CommandHandler;
|
|
9
10
|
export declare const handleContextCommand: CommandHandler;
|
|
10
11
|
export declare const handleExportSessionCommand: CommandHandler;
|
|
11
12
|
export declare const handleWhoamiCommand: CommandHandler;
|
|
@@ -38,6 +38,19 @@ type StatusArgs = {
|
|
|
38
38
|
queue?: QueueStatus;
|
|
39
39
|
mediaDecisions?: ReadonlyArray<MediaUnderstandingDecision>;
|
|
40
40
|
subagentsLine?: string;
|
|
41
|
+
engineLine?: string;
|
|
42
|
+
hardwareLine?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Instance-derived USD cost from the cost subsystem (Phase 3). When the
|
|
45
|
+
* raw per-token rate yields $0 and this is set, the cost line displays
|
|
46
|
+
* this value instead, with a "(self-hosted)" tag.
|
|
47
|
+
*/
|
|
48
|
+
costOverrideUsd?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Suffix appended to the cost line for benchmark comparison (Phase 4).
|
|
51
|
+
* Example: "vs Claude Sonnet 4.6 would be $0.2320 (save 93%)".
|
|
52
|
+
*/
|
|
53
|
+
costLineSuffix?: string;
|
|
41
54
|
includeTranscriptUsage?: boolean;
|
|
42
55
|
now?: number;
|
|
43
56
|
};
|
|
@@ -24,6 +24,9 @@ export type ModelDefinitionConfig = {
|
|
|
24
24
|
output: number;
|
|
25
25
|
cacheRead: number;
|
|
26
26
|
cacheWrite: number;
|
|
27
|
+
gpuType?: string;
|
|
28
|
+
gpuCount?: number;
|
|
29
|
+
hourlyRate?: number;
|
|
27
30
|
};
|
|
28
31
|
contextWindow: number;
|
|
29
32
|
maxTokens: number;
|
|
@@ -79,4 +82,6 @@ export type ModelsConfig = {
|
|
|
79
82
|
providers?: Record<string, ModelProviderConfig>;
|
|
80
83
|
profiles?: ModelProfileConfig[];
|
|
81
84
|
bedrockDiscovery?: BedrockDiscoveryConfig;
|
|
85
|
+
gpuRates?: Record<string, number>;
|
|
86
|
+
benchmark?: "opus" | "sonnet" | "haiku" | "all" | "none";
|
|
82
87
|
};
|
|
@@ -24,6 +24,9 @@ export declare const ModelDefinitionSchema: z.ZodObject<{
|
|
|
24
24
|
output: z.ZodOptional<z.ZodNumber>;
|
|
25
25
|
cacheRead: z.ZodOptional<z.ZodNumber>;
|
|
26
26
|
cacheWrite: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
gpuType: z.ZodOptional<z.ZodString>;
|
|
28
|
+
gpuCount: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
hourlyRate: z.ZodOptional<z.ZodNumber>;
|
|
27
30
|
}, z.core.$strict>>;
|
|
28
31
|
contextWindow: z.ZodOptional<z.ZodNumber>;
|
|
29
32
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -60,6 +63,9 @@ export declare const ModelProviderSchema: z.ZodObject<{
|
|
|
60
63
|
output: z.ZodOptional<z.ZodNumber>;
|
|
61
64
|
cacheRead: z.ZodOptional<z.ZodNumber>;
|
|
62
65
|
cacheWrite: z.ZodOptional<z.ZodNumber>;
|
|
66
|
+
gpuType: z.ZodOptional<z.ZodString>;
|
|
67
|
+
gpuCount: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
hourlyRate: z.ZodOptional<z.ZodNumber>;
|
|
63
69
|
}, z.core.$strict>>;
|
|
64
70
|
contextWindow: z.ZodOptional<z.ZodNumber>;
|
|
65
71
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -138,6 +144,9 @@ export declare const ModelsConfigSchema: z.ZodOptional<z.ZodObject<{
|
|
|
138
144
|
output: z.ZodOptional<z.ZodNumber>;
|
|
139
145
|
cacheRead: z.ZodOptional<z.ZodNumber>;
|
|
140
146
|
cacheWrite: z.ZodOptional<z.ZodNumber>;
|
|
147
|
+
gpuType: z.ZodOptional<z.ZodString>;
|
|
148
|
+
gpuCount: z.ZodOptional<z.ZodNumber>;
|
|
149
|
+
hourlyRate: z.ZodOptional<z.ZodNumber>;
|
|
141
150
|
}, z.core.$strict>>;
|
|
142
151
|
contextWindow: z.ZodOptional<z.ZodNumber>;
|
|
143
152
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -196,6 +205,8 @@ export declare const ModelsConfigSchema: z.ZodOptional<z.ZodObject<{
|
|
|
196
205
|
defaultContextWindow: z.ZodOptional<z.ZodNumber>;
|
|
197
206
|
defaultMaxTokens: z.ZodOptional<z.ZodNumber>;
|
|
198
207
|
}, z.core.$strict>>;
|
|
208
|
+
gpuRates: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
209
|
+
benchmark: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"opus">, z.ZodLiteral<"sonnet">, z.ZodLiteral<"haiku">, z.ZodLiteral<"all">, z.ZodLiteral<"none">]>>;
|
|
199
210
|
}, z.core.$strict>>;
|
|
200
211
|
export declare const GroupChatSchema: z.ZodOptional<z.ZodObject<{
|
|
201
212
|
mentionPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -122,6 +122,9 @@ export declare const SymiSchema: z.ZodObject<{
|
|
|
122
122
|
output: z.ZodOptional<z.ZodNumber>;
|
|
123
123
|
cacheRead: z.ZodOptional<z.ZodNumber>;
|
|
124
124
|
cacheWrite: z.ZodOptional<z.ZodNumber>;
|
|
125
|
+
gpuType: z.ZodOptional<z.ZodString>;
|
|
126
|
+
gpuCount: z.ZodOptional<z.ZodNumber>;
|
|
127
|
+
hourlyRate: z.ZodOptional<z.ZodNumber>;
|
|
125
128
|
}, z.core.$strict>>;
|
|
126
129
|
contextWindow: z.ZodOptional<z.ZodNumber>;
|
|
127
130
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -180,6 +183,8 @@ export declare const SymiSchema: z.ZodObject<{
|
|
|
180
183
|
defaultContextWindow: z.ZodOptional<z.ZodNumber>;
|
|
181
184
|
defaultMaxTokens: z.ZodOptional<z.ZodNumber>;
|
|
182
185
|
}, z.core.$strict>>;
|
|
186
|
+
gpuRates: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
187
|
+
benchmark: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"opus">, z.ZodLiteral<"sonnet">, z.ZodLiteral<"haiku">, z.ZodLiteral<"all">, z.ZodLiteral<"none">]>>;
|
|
183
188
|
}, z.core.$strict>>;
|
|
184
189
|
nodeHost: z.ZodOptional<z.ZodObject<{
|
|
185
190
|
browserProxy: z.ZodOptional<z.ZodObject<{
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude reference rates and benchmark comparison.
|
|
3
|
+
*
|
|
4
|
+
* Hardcoded per-token USD rates for Claude Opus 4.7, Sonnet 4.6, and
|
|
5
|
+
* Haiku 4.5 (per million tokens, Anthropic public list as of 2026-Q1).
|
|
6
|
+
* Override via `models.gpuRates` is for GPU rates only — Claude rates can
|
|
7
|
+
* be overridden via the per-model `cost: { input, output }` configuration
|
|
8
|
+
* on the user's `anthropic` provider entry, which already exists.
|
|
9
|
+
*
|
|
10
|
+
* Display: pick a target tier via `agents.defaults.cost.benchmark`, default
|
|
11
|
+
* `sonnet`. Setting `"all"` shows comparisons against all three tiers.
|
|
12
|
+
*/
|
|
13
|
+
import { type ModelCostConfig } from "../utils/usage-format.js";
|
|
14
|
+
export type ClaudeTier = "opus" | "sonnet" | "haiku";
|
|
15
|
+
/** Per-million-token USD rates, applied via `estimateUsageCost`. */
|
|
16
|
+
export declare const CLAUDE_RATES: Record<ClaudeTier, ModelCostConfig>;
|
|
17
|
+
export declare const CLAUDE_LABEL: Record<ClaudeTier, string>;
|
|
18
|
+
export type BenchmarkResult = {
|
|
19
|
+
tier: ClaudeTier;
|
|
20
|
+
costUsd: number;
|
|
21
|
+
};
|
|
22
|
+
export type BenchmarkTarget = ClaudeTier | "all";
|
|
23
|
+
export declare function benchmarkUsage(args: {
|
|
24
|
+
usage?: {
|
|
25
|
+
input?: number;
|
|
26
|
+
output?: number;
|
|
27
|
+
};
|
|
28
|
+
target: BenchmarkTarget;
|
|
29
|
+
}): BenchmarkResult[];
|
|
30
|
+
export declare function formatBenchmarkSuffix(args: {
|
|
31
|
+
ourCostUsd: number;
|
|
32
|
+
benchmarks: BenchmarkResult[];
|
|
33
|
+
}): string | undefined;
|
|
34
|
+
export declare function isClaudeTier(value: string): value is ClaudeTier;
|
|
35
|
+
export declare function isBenchmarkTarget(value: string): value is BenchmarkTarget;
|
|
36
|
+
export declare function resolveBenchmarkTarget(value: unknown): BenchmarkTarget;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level cost breakdown orchestrator. Combines:
|
|
3
|
+
* - Phase 1 serving discovery (engine + observed throughput)
|
|
4
|
+
* - Phase 2 GPU inference (gpu type + count) + hourly rate lookup
|
|
5
|
+
* - Phase 3 instance-derived per-token cost (added in Phase 3)
|
|
6
|
+
* - Phase 4 Claude benchmark comparison (added in Phase 4)
|
|
7
|
+
*
|
|
8
|
+
* One async call per /status invocation produces all the display lines.
|
|
9
|
+
*/
|
|
10
|
+
import type { SymiConfig } from "../config/config.js";
|
|
11
|
+
import { type BenchmarkResult, type BenchmarkTarget } from "./benchmark.js";
|
|
12
|
+
import { type GpuInference } from "./gpu-inference.js";
|
|
13
|
+
import { type ServingInfo } from "./serving-discovery.js";
|
|
14
|
+
export type CostBreakdown = {
|
|
15
|
+
serving: ServingInfo | null;
|
|
16
|
+
gpu?: GpuInference;
|
|
17
|
+
hourlyRate?: number;
|
|
18
|
+
hourlyRateSource?: "config-override" | "model-override" | "default-table";
|
|
19
|
+
decodeTps?: number;
|
|
20
|
+
prefillTps?: number;
|
|
21
|
+
throughputSource?: "observed" | "default-table";
|
|
22
|
+
engineLine?: string;
|
|
23
|
+
hardwareLine?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Estimated USD cost for the supplied usage (input/output token counts),
|
|
26
|
+
* derived from the instance hourly rate and inferred throughput. Computed
|
|
27
|
+
* only when raw per-token rates would yield $0 AND we have a usable
|
|
28
|
+
* (gpuType, hourlyRate) pair.
|
|
29
|
+
*/
|
|
30
|
+
instanceCostUsd?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Equivalent per-token average for the request (USD per token). Useful
|
|
33
|
+
* for UI display only; not authoritative.
|
|
34
|
+
*/
|
|
35
|
+
perTokenAvgUsd?: number;
|
|
36
|
+
/**
|
|
37
|
+
* The actual cost figure used for display — either the per-token rate
|
|
38
|
+
* (when non-zero) or the instance-derived estimate. Stored here so
|
|
39
|
+
* downstream consumers don't need to re-implement the precedence.
|
|
40
|
+
*/
|
|
41
|
+
effectiveCostUsd?: number;
|
|
42
|
+
/** Comparison results against Claude tiers. Empty when target is "none". */
|
|
43
|
+
benchmarks: BenchmarkResult[];
|
|
44
|
+
/** Human-readable suffix for the cost line (e.g. "vs Sonnet $0.23 (save 93%)"). */
|
|
45
|
+
costLineSuffix?: string;
|
|
46
|
+
/** Resolved benchmark target. */
|
|
47
|
+
benchmarkTarget: BenchmarkTarget | "none";
|
|
48
|
+
};
|
|
49
|
+
export type BuildBreakdownArgs = {
|
|
50
|
+
baseUrl?: string;
|
|
51
|
+
provider?: string;
|
|
52
|
+
modelId?: string;
|
|
53
|
+
config?: SymiConfig;
|
|
54
|
+
probeTimeoutMs?: number;
|
|
55
|
+
forceProbeRefresh?: boolean;
|
|
56
|
+
/** Token usage for the current request — used to compute instance-derived cost. */
|
|
57
|
+
usage?: {
|
|
58
|
+
input?: number;
|
|
59
|
+
output?: number;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export declare function buildCostBreakdown(args: BuildBreakdownArgs): Promise<CostBreakdown>;
|
|
63
|
+
export declare function formatHardwareLine(breakdown: CostBreakdown): string | undefined;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Heuristic GPU type + count inference for self-hosted serving endpoints.
|
|
3
|
+
*
|
|
4
|
+
* Two signals: the baseUrl hostname (often encodes "a100", "h100", etc.) and
|
|
5
|
+
* the model id (encodes parameter count + quantization, e.g. "qwen36-27b-fp8").
|
|
6
|
+
* Output is a confidence-tagged guess so downstream code (and the user) can
|
|
7
|
+
* decide whether to trust the inference or override it.
|
|
8
|
+
*
|
|
9
|
+
* Bytes-per-parameter table:
|
|
10
|
+
* fp32 → 4
|
|
11
|
+
* fp16/bf16 → 2 (default when unspecified)
|
|
12
|
+
* fp8/int8/q8 → 1
|
|
13
|
+
* int4/q4/fp4 → 0.5
|
|
14
|
+
*
|
|
15
|
+
* GPU count formula:
|
|
16
|
+
* model_bytes = params × bytes_per_param
|
|
17
|
+
* target_util = 0.6 (40% headroom for KV cache, activations, scheduler)
|
|
18
|
+
* count = max(1, ceil(model_bytes / (vram × target_util)))
|
|
19
|
+
*/
|
|
20
|
+
import { type GpuType } from "./rates.js";
|
|
21
|
+
export type GpuConfidence = "high" | "medium" | "low";
|
|
22
|
+
export type GpuInference = {
|
|
23
|
+
gpuType?: GpuType;
|
|
24
|
+
gpuCount: number;
|
|
25
|
+
confidence: GpuConfidence;
|
|
26
|
+
paramsB?: number;
|
|
27
|
+
bytesPerParam?: number;
|
|
28
|
+
reasoning: string[];
|
|
29
|
+
};
|
|
30
|
+
export declare function inferGpuFromUrl(baseUrl: string): {
|
|
31
|
+
gpuType?: GpuType;
|
|
32
|
+
confidence: GpuConfidence;
|
|
33
|
+
match?: string;
|
|
34
|
+
};
|
|
35
|
+
export declare function parseModelSize(modelId: string): {
|
|
36
|
+
paramsB?: number;
|
|
37
|
+
bytesPerParam?: number;
|
|
38
|
+
};
|
|
39
|
+
export declare function inferGpuCount(args: {
|
|
40
|
+
paramsB?: number;
|
|
41
|
+
bytesPerParam?: number;
|
|
42
|
+
vramGb: number;
|
|
43
|
+
targetUtilization?: number;
|
|
44
|
+
}): number;
|
|
45
|
+
export declare function inferGpu(args: {
|
|
46
|
+
baseUrl?: string;
|
|
47
|
+
modelId?: string;
|
|
48
|
+
override?: {
|
|
49
|
+
gpuType?: string;
|
|
50
|
+
gpuCount?: number;
|
|
51
|
+
};
|
|
52
|
+
}): GpuInference;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hourly USD rates for self-hosted GPU instance types, sourced from public
|
|
3
|
+
* CoreWeave / RunPod / Lambda Cloud price pages (as of 2026-Q1).
|
|
4
|
+
*
|
|
5
|
+
* These are reference defaults — users override per-instance via
|
|
6
|
+
* `models.gpuRates: { "a100-80gb": 2.5 }` in symi.json, or per-model via
|
|
7
|
+
* `cost.hourlyRate: 4.42` on a specific provider model.
|
|
8
|
+
*/
|
|
9
|
+
export type GpuType = "a100-40gb" | "a100-80gb" | "h100-pcie" | "h100-sxm" | "h200" | "l40" | "l40s" | "a40" | "a6000" | "a5000" | "v100" | "mi300x" | "rtx-4090";
|
|
10
|
+
export declare const GPU_VRAM_GB: Record<GpuType, number>;
|
|
11
|
+
export declare const GPU_LABEL: Record<GpuType, string>;
|
|
12
|
+
export declare const DEFAULT_HOURLY_RATES_USD: Record<GpuType, number>;
|
|
13
|
+
/**
|
|
14
|
+
* Rough decode (output) throughput defaults in tokens/sec for a 27-30B FP8
|
|
15
|
+
* model on a single GPU of each type. Scales roughly inversely with model
|
|
16
|
+
* parameter count and bytes-per-param. Used as a fallback when no live
|
|
17
|
+
* `vllm:generation_tokens_total` delta has been observed yet.
|
|
18
|
+
*
|
|
19
|
+
* These are conservative published-benchmark medians; treat as ballpark.
|
|
20
|
+
* Override via `models.gpuRates` is rate-only; throughput overrides are
|
|
21
|
+
* Phase 4+ (not yet wired to config).
|
|
22
|
+
*/
|
|
23
|
+
export declare const DEFAULT_DECODE_TPS: Record<GpuType, number>;
|
|
24
|
+
/**
|
|
25
|
+
* Prefill throughput is typically 30-60× higher than decode for a given
|
|
26
|
+
* setup. Use 40× as a balanced midpoint.
|
|
27
|
+
*/
|
|
28
|
+
export declare const PREFILL_DECODE_RATIO = 40;
|
|
29
|
+
export declare function resolveDefaultDecodeTps(gpuType: GpuType, paramsB: number | undefined, bytesPerParam: number | undefined): number;
|
|
30
|
+
export type HourlyRateOverrides = Partial<Record<string, number>>;
|
|
31
|
+
export declare function resolveHourlyRate(gpuType: string, overrides?: HourlyRateOverrides): number | undefined;
|
|
32
|
+
export declare function isKnownGpuType(value: string): value is GpuType;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Probe a self-hosted LLM serving endpoint (vLLM / SGLang / OpenAI-compatible)
|
|
3
|
+
* for engine fingerprint, observed throughput, and live queue/KV state.
|
|
4
|
+
*
|
|
5
|
+
* Each probe issues parallel GETs to /version, /v1/models, and /metrics and
|
|
6
|
+
* tolerates individual failures. Results are cached per baseUrl with a 60s
|
|
7
|
+
* TTL on success and a 5-minute TTL on null (so dead/hosted endpoints don't
|
|
8
|
+
* get re-probed on every /status call). Throughput is computed from the
|
|
9
|
+
* delta between successive `vllm:generation_tokens_total` snapshots; the
|
|
10
|
+
* first probe in a process records counters but reports tps=undefined.
|
|
11
|
+
*/
|
|
12
|
+
export type ServingEngine = "vllm" | "sglang" | "openai-compat" | "unknown";
|
|
13
|
+
export type CacheConfigInfo = {
|
|
14
|
+
blockSize?: number;
|
|
15
|
+
numGpuBlocks?: number;
|
|
16
|
+
cacheDtype?: string;
|
|
17
|
+
gpuMemoryUtilization?: number;
|
|
18
|
+
enablePrefixCaching?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export type ServingInfo = {
|
|
21
|
+
engine: ServingEngine;
|
|
22
|
+
version?: string;
|
|
23
|
+
modelId?: string;
|
|
24
|
+
contextWindow?: number;
|
|
25
|
+
observedTps?: number;
|
|
26
|
+
kvCacheUsagePerc?: number;
|
|
27
|
+
queueDepth?: number;
|
|
28
|
+
numRequestsRunning?: number;
|
|
29
|
+
cacheConfig?: CacheConfigInfo;
|
|
30
|
+
probedAt: number;
|
|
31
|
+
baseUrl: string;
|
|
32
|
+
rootUrl: string;
|
|
33
|
+
};
|
|
34
|
+
export type ProbeOptions = {
|
|
35
|
+
fetchImpl?: typeof fetch;
|
|
36
|
+
now?: () => number;
|
|
37
|
+
timeoutMs?: number;
|
|
38
|
+
forceRefresh?: boolean;
|
|
39
|
+
};
|
|
40
|
+
export declare function probeServingEndpoint(baseUrl: string, opts?: ProbeOptions): Promise<ServingInfo | null>;
|
|
41
|
+
type ParsedMetrics = {
|
|
42
|
+
promptTokensTotal?: number;
|
|
43
|
+
generationTokensTotal?: number;
|
|
44
|
+
kvCacheUsagePerc?: number;
|
|
45
|
+
queueDepth?: number;
|
|
46
|
+
numRequestsRunning?: number;
|
|
47
|
+
cacheConfig?: CacheConfigInfo;
|
|
48
|
+
foundVllmPrefix: boolean;
|
|
49
|
+
foundSglangPrefix: boolean;
|
|
50
|
+
};
|
|
51
|
+
export declare function parsePrometheusMetrics(text: string): ParsedMetrics;
|
|
52
|
+
export declare function formatEngineLine(info: ServingInfo | null | undefined): string | null;
|
|
53
|
+
export declare function _resetServingDiscoveryCache(): void;
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cumulative cost summary with Claude benchmark math.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the existing `loadCostUsageSummary` (which scans all session JSONL
|
|
5
|
+
* transcripts in `~/.symi/sessions/...`) and augments each day's totals with
|
|
6
|
+
* what the same input/output token mix would have cost on each Claude tier.
|
|
7
|
+
*
|
|
8
|
+
* For self-hosted providers whose totals come back as $0 (because the user
|
|
9
|
+
* configured `cost: { input: 0, output: 0, ... }`), this wrapper does NOT
|
|
10
|
+
* retroactively re-cost — that would require provider+model attribution per
|
|
11
|
+
* day, which the current scanner doesn't preserve. Phase 5 captures the
|
|
12
|
+
* comparison surface; instance-derived per-day rebilling can be a Phase 6+
|
|
13
|
+
* follow-up if useful.
|
|
14
|
+
*/
|
|
15
|
+
import type { SymiConfig } from "../config/config.js";
|
|
16
|
+
import { type CostUsageDailyEntry, type CostUsageSummary } from "../infra/session-cost-usage.js";
|
|
17
|
+
import { type ClaudeTier } from "./benchmark.js";
|
|
18
|
+
export type BenchmarkPerTier = Record<ClaudeTier, number>;
|
|
19
|
+
export type CostSummaryDailyEntry = CostUsageDailyEntry & {
|
|
20
|
+
benchmarkUsd: BenchmarkPerTier;
|
|
21
|
+
};
|
|
22
|
+
export type CostBenchmarkSummary = Omit<CostUsageSummary, "daily"> & {
|
|
23
|
+
daily: CostSummaryDailyEntry[];
|
|
24
|
+
benchmarkTotals: BenchmarkPerTier;
|
|
25
|
+
/** Total potential savings vs each tier (negative values mean overspend). */
|
|
26
|
+
savingsTotals: BenchmarkPerTier;
|
|
27
|
+
};
|
|
28
|
+
export declare function loadCostBenchmarkSummary(params?: {
|
|
29
|
+
startMs?: number;
|
|
30
|
+
endMs?: number;
|
|
31
|
+
days?: number;
|
|
32
|
+
config?: SymiConfig;
|
|
33
|
+
agentId?: string;
|
|
34
|
+
}): Promise<CostBenchmarkSummary>;
|
|
35
|
+
export type CostSummaryWindow = "today" | "week" | "month" | "all";
|
|
36
|
+
export declare function resolveWindow(window: CostSummaryWindow, now?: number): {
|
|
37
|
+
startMs: number;
|
|
38
|
+
endMs: number;
|
|
39
|
+
};
|
|
40
|
+
export declare function formatSummaryReport(summary: CostBenchmarkSummary, label?: string): string;
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import path from "node:path";
|
|
|
4
4
|
import fs, { constants, readFileSync } from "node:fs";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import { Logger } from "tslog";
|
|
7
|
-
import
|
|
7
|
+
import JSON5 from "json5";
|
|
8
8
|
import chalk, { Chalk } from "chalk";
|
|
9
9
|
import fs$1, { mkdtemp, rm } from "node:fs/promises";
|
|
10
10
|
import { z } from "zod";
|
|
@@ -294,7 +294,7 @@ function readLoggingConfig() {
|
|
|
294
294
|
try {
|
|
295
295
|
if (!fs.existsSync(configPath)) return;
|
|
296
296
|
const raw = fs.readFileSync(configPath, "utf-8");
|
|
297
|
-
const logging =
|
|
297
|
+
const logging = JSON5.parse(raw)?.logging;
|
|
298
298
|
if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
|
|
299
299
|
return logging;
|
|
300
300
|
} catch {
|
|
@@ -1048,7 +1048,10 @@ const ModelDefinitionSchema = z.object({
|
|
|
1048
1048
|
input: z.number().optional(),
|
|
1049
1049
|
output: z.number().optional(),
|
|
1050
1050
|
cacheRead: z.number().optional(),
|
|
1051
|
-
cacheWrite: z.number().optional()
|
|
1051
|
+
cacheWrite: z.number().optional(),
|
|
1052
|
+
gpuType: z.string().optional(),
|
|
1053
|
+
gpuCount: z.number().int().positive().optional(),
|
|
1054
|
+
hourlyRate: z.number().nonnegative().optional()
|
|
1052
1055
|
}).strict().optional(),
|
|
1053
1056
|
contextWindow: z.number().positive().optional(),
|
|
1054
1057
|
maxTokens: z.number().positive().optional(),
|
|
@@ -1116,7 +1119,15 @@ const ModelsConfigSchema = z.object({
|
|
|
1116
1119
|
mode: z.union([z.literal("merge"), z.literal("replace")]).optional(),
|
|
1117
1120
|
providers: z.record(z.string(), ModelProviderSchema).optional(),
|
|
1118
1121
|
profiles: z.array(ModelProfileSchema).optional(),
|
|
1119
|
-
bedrockDiscovery: BedrockDiscoverySchema
|
|
1122
|
+
bedrockDiscovery: BedrockDiscoverySchema,
|
|
1123
|
+
gpuRates: z.record(z.string(), z.number().nonnegative()).optional(),
|
|
1124
|
+
benchmark: z.union([
|
|
1125
|
+
z.literal("opus"),
|
|
1126
|
+
z.literal("sonnet"),
|
|
1127
|
+
z.literal("haiku"),
|
|
1128
|
+
z.literal("all"),
|
|
1129
|
+
z.literal("none")
|
|
1130
|
+
]).optional()
|
|
1120
1131
|
}).strict().optional();
|
|
1121
1132
|
const GroupChatSchema = z.object({
|
|
1122
1133
|
mentionPatterns: z.array(z.string()).optional(),
|
|
@@ -7381,7 +7392,7 @@ function safeRealpath(target) {
|
|
|
7381
7392
|
}
|
|
7382
7393
|
const defaultResolver = {
|
|
7383
7394
|
readFile: (p) => fs.readFileSync(p, "utf-8"),
|
|
7384
|
-
parseJson: (raw) =>
|
|
7395
|
+
parseJson: (raw) => JSON5.parse(raw)
|
|
7385
7396
|
};
|
|
7386
7397
|
/**
|
|
7387
7398
|
* Resolves all $include directives in a parsed config object.
|
|
@@ -10612,7 +10623,7 @@ function resolveConfigPathForDeps(deps) {
|
|
|
10612
10623
|
function normalizeDeps(overrides = {}) {
|
|
10613
10624
|
return {
|
|
10614
10625
|
fs: overrides.fs ?? fs,
|
|
10615
|
-
json5: overrides.json5 ??
|
|
10626
|
+
json5: overrides.json5 ?? JSON5,
|
|
10616
10627
|
env: overrides.env ?? process.env,
|
|
10617
10628
|
homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
|
|
10618
10629
|
configPath: overrides.configPath ?? "",
|
|
@@ -10623,11 +10634,11 @@ function maybeLoadDotEnvForConfig(env) {
|
|
|
10623
10634
|
if (env !== process.env) return;
|
|
10624
10635
|
loadDotEnv({ quiet: true });
|
|
10625
10636
|
}
|
|
10626
|
-
function parseConfigJson5(raw, json5
|
|
10637
|
+
function parseConfigJson5(raw, json5 = JSON5) {
|
|
10627
10638
|
try {
|
|
10628
10639
|
return {
|
|
10629
10640
|
ok: true,
|
|
10630
|
-
parsed: json5
|
|
10641
|
+
parsed: json5.parse(raw)
|
|
10631
10642
|
};
|
|
10632
10643
|
} catch (err) {
|
|
10633
10644
|
return {
|