@symerian/symi 3.5.3 → 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.
Files changed (413) hide show
  1. package/dist/{agent-Bl0Wfrd4.js → agent-8EuVoCbs.js} +11 -11
  2. package/dist/{agent-BsRlH9Ez.js → agent-B87OYNFx.js} +9 -9
  3. package/dist/{agents-Ch38fapn.js → agents-CNbjbSD0.js} +11 -11
  4. package/dist/{audit-CcxTZUi-.js → audit-Bk6kay2Z.js} +9 -9
  5. package/dist/{audit-CojL8qpM.js → audit-CtrXFZb5.js} +9 -9
  6. package/dist/{auth-choice-CQnJ5pRD.js → auth-choice-BL4lqaJL.js} +8 -8
  7. package/dist/{auth-choice-O55PGflm.js → auth-choice-CB0rQByJ.js} +8 -8
  8. package/dist/{auth-choice-options-DfT-D0Cb.js → auth-choice-options-DmXqtnP9.js} +1 -1
  9. package/dist/{auth-choice-options-osb2GMd4.js → auth-choice-options-od_KpHe8.js} +1 -1
  10. package/dist/{auth-choice-prompt-6_u7zS1M.js → auth-choice-prompt-BnvC700A.js} +1 -1
  11. package/dist/{auth-choice-prompt-SCWccuw0.js → auth-choice-prompt-kt2FcieM.js} +1 -1
  12. package/dist/{auth-token-Dvw-1mFR.js → auth-token-DyhvQgv4.js} +1 -1
  13. package/dist/{auth-token-t_CY5BPB.js → auth-token-lPWiklDD.js} +1 -1
  14. package/dist/{banner-TDzek44y.js → banner-D-ssxnQN.js} +1 -1
  15. package/dist/{bonjour-discovery-BjSUj2V6.js → bonjour-discovery-CyLfNUkJ.js} +1 -1
  16. package/dist/{bonjour-discovery-FJyieAXp.js → bonjour-discovery-DuObXMh2.js} +1 -1
  17. package/dist/breakdown-B_Dhhm3K.js +753 -0
  18. package/dist/breakdown-Cszrv-Lf.js +753 -0
  19. package/dist/{browser-cli-BXH0KbhG.js → browser-cli-DGjYBquX.js} +9 -9
  20. package/dist/{browser-cli-UZqxfaV_.js → browser-cli-rZb2WjFF.js} +9 -9
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +10 -10
  23. package/dist/bundled/session-memory/handler.js +9 -9
  24. package/dist/{call-CKm3T_ar.js → call-DKQC0JT1.js} +1 -1
  25. package/dist/{call-DrkOiHjS.js → call-ogggp9QZ.js} +1 -1
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-options-BEM8ruys.js → channel-options-DLV6zIpW.js} +2 -2
  28. package/dist/{channel-options-zAbgRuGY.js → channel-options-_DJXj921.js} +2 -2
  29. package/dist/{channels-cli-cRWPvOQD.js → channels-cli-2OTAQPvZ.js} +54 -53
  30. package/dist/{channels-cli-DdKnAzW9.js → channels-cli-CUsX2v-1.js} +54 -53
  31. package/dist/{chrome-BKUACyeO.js → chrome-3jl2ulOE.js} +8 -8
  32. package/dist/{chrome-zElD4rpN.js → chrome-D1eO2jfe.js} +1 -1
  33. package/dist/{chrome-rzK8edU7.js → chrome-DJChpTwP.js} +1 -1
  34. package/dist/{chrome-DPjznJQ-.js → chrome-OTJg3QKn.js} +1 -1
  35. package/dist/{clack-prompter-CuIw5vQW.js → clack-prompter-_kEnSVz4.js} +4 -4
  36. package/dist/{clack-prompter-Bc38EIYW.js → clack-prompter-v9MYo-5u.js} +4 -4
  37. package/dist/{cli--UhNWFtQ.js → cli-D4cMWhob.js} +36 -35
  38. package/dist/{cli-BJDlZfYi.js → cli-Qq7pr2SX.js} +36 -35
  39. package/dist/{command-registry-COpZWfkh.js → command-registry-Br9vlIL_.js} +11 -11
  40. package/dist/{commands-registry-DPZevjMh.js → commands-registry-BuOUfpmg.js} +31 -0
  41. package/dist/{commands-registry-VfAQOVZO.js → commands-registry-C2Hvwjym.js} +31 -0
  42. package/dist/{commands-registry-BisT2Fcd.js → commands-registry-CJPBJPlh.js} +31 -0
  43. package/dist/{commands-registry-DFYDtKr_.js → commands-registry-DG2kGyg5.js} +31 -0
  44. package/dist/{completion-cli-EltMSZer.js → completion-cli-CKLoZFMQ.js} +3 -3
  45. package/dist/{completion-cli-DVF5x7Kp.js → completion-cli-P5zBWNnc.js} +1 -1
  46. package/dist/{config-D7SS4vdk.js → config-B4jkreCN.js} +13 -2
  47. package/dist/{config-_DaupjQd.js → config-D7TcU4qN.js} +13 -2
  48. package/dist/{config-cli-kN07V9j6.js → config-cli-CcJOubCt.js} +3 -3
  49. package/dist/{config-cli-DaPePEIB.js → config-cli-NvqRZAqr.js} +3 -3
  50. package/dist/{config-guard-SNMCV6sc.js → config-guard-CLfXzB_z.js} +2 -2
  51. package/dist/{config-guard-CN1qhDyB.js → config-guard-D58THqAB.js} +8 -8
  52. package/dist/{config-validation-DS5Jr_iO.js → config-validation-DQ-lm2Qx.js} +1 -1
  53. package/dist/{config-validation-DGWvkKov.js → config-validation-DhsYEtLL.js} +1 -1
  54. package/dist/{configure-id9imsuH.js → configure-B1RJ6bi3.js} +22 -22
  55. package/dist/{configure-C9Z4clKW.js → configure-C7BfUqKR.js} +22 -22
  56. package/dist/{control-service-CJWzOFkK.js → control-service-DOGU9T2P.js} +4 -4
  57. package/dist/{control-service-DvK2HPC2.js → control-service-DPzhv357.js} +4 -4
  58. package/dist/cost-cli-C9LvOtGz.js +138 -0
  59. package/dist/cost-cli-CmfkZsmZ.js +133 -0
  60. package/dist/{cron-cli-BIIzbF-W.js → cron-cli-DtDqHIZn.js} +7 -7
  61. package/dist/{cron-cli-BNx0V18_.js → cron-cli-L4iwVTNV.js} +7 -7
  62. package/dist/{daemon-cli-CGfWQN7c.js → daemon-cli-39fFIU2G.js} +15 -15
  63. package/dist/{daemon-cli-DCbqVfyu.js → daemon-cli-B5TdtWCQ.js} +15 -15
  64. package/dist/daemon-cli.js +13 -2
  65. package/dist/{daemon-runtime-BD_EkuZP.js → daemon-runtime-7YBz5otm.js} +3 -3
  66. package/dist/{daemon-runtime-CAdn50ea.js → daemon-runtime-DaJ4Tf2a.js} +3 -3
  67. package/dist/{deliver-6fYMGY7T.js → deliver-0nDhDdKd.js} +2 -2
  68. package/dist/{deliver-DTRkeYm3.js → deliver-BiWlR84Y.js} +5 -5
  69. package/dist/{deliver-DB4v0Tyl.js → deliver-C81eqdrP.js} +2 -2
  70. package/dist/{deliver-Cjyb6h4g.js → deliver-f3cIWxXT.js} +5 -5
  71. package/dist/{deps-Bt6gnwqB.js → deps-D5me2CAW.js} +1 -1
  72. package/dist/{devices-cli-CK5iNr60.js → devices-cli-DuVhACtW.js} +4 -4
  73. package/dist/{devices-cli-Dg4sVTTI.js → devices-cli-Ec6d58OB.js} +4 -4
  74. package/dist/{diagnostics-Ee2qfR9V.js → diagnostics-BZH08r5U.js} +1 -1
  75. package/dist/{diagnostics-4PsqURzT.js → diagnostics-CdawaB0U.js} +1 -1
  76. package/dist/{directory-cli-CIX9qXWA.js → directory-cli-BQrGwwjf.js} +6 -6
  77. package/dist/{directory-cli-CR-4DW4i.js → directory-cli-FR_KoYon.js} +6 -6
  78. package/dist/{dns-cli-Cd3EpJKL.js → dns-cli-CH2QMf70.js} +4 -4
  79. package/dist/{dns-cli-DzE58v7c.js → dns-cli-Cua_RGWw.js} +4 -4
  80. package/dist/{docs-cli-DD59E5fQ.js → docs-cli-9yu6OeWj.js} +2 -2
  81. package/dist/{docs-cli-BcqjkjOA.js → docs-cli-DwrSCuWF.js} +2 -2
  82. package/dist/{doctor-completion-Dw70YhMd.js → doctor-completion-Be3Of_A2.js} +2 -2
  83. package/dist/{doctor-completion-Dv6aw9I2.js → doctor-completion-Dco2Lmvy.js} +2 -2
  84. package/dist/{doctor-config-flow-BOfsrB_o.js → doctor-config-flow-CKJlpwtv.js} +5 -5
  85. package/dist/{doctor-config-flow-dUAjyD2W.js → doctor-config-flow-CcwEh3WQ.js} +5 -5
  86. package/dist/{enable-avpl_Lwo.js → enable-BI6rQ1Fb.js} +1 -1
  87. package/dist/{enable-B5wvwTYB.js → enable-xfczksnk.js} +1 -1
  88. package/dist/entry.js +1 -1
  89. package/dist/{exec-approvals-cli-Cv9lE0Ov.js → exec-approvals-cli-1K1PMf0f.js} +10 -10
  90. package/dist/{exec-approvals-cli-CLD1HXqE.js → exec-approvals-cli-N45JsIvc.js} +10 -10
  91. package/dist/extensionAPI.js +8 -8
  92. package/dist/{gateway-cli-DF-S-bKo.js → gateway-cli-BQAh5DqM.js} +86 -85
  93. package/dist/{gateway-cli-C1yf0Kx4.js → gateway-cli-XV8T-ix8.js} +84 -83
  94. package/dist/{gateway-rpc-CBb3_pT9.js → gateway-rpc-c2_A2rwu.js} +2 -2
  95. package/dist/{gateway-rpc-DrcgCoEA.js → gateway-rpc-gDrdC_J6.js} +2 -2
  96. package/dist/{glass-ui-ws-CgTry9OG.js → glass-ui-ws-1FOCi0nn.js} +62 -61
  97. package/dist/{glass-ui-ws-BZJKBK5D.js → glass-ui-ws-CqGzDNV7.js} +63 -62
  98. package/dist/{health-B__mwl7J.js → health-B5BrlZ8G.js} +6 -6
  99. package/dist/{health-BJl_ZtRW.js → health-B7yvi1O9.js} +6 -6
  100. package/dist/{hooks-cli-B_d8Cv16.js → hooks-cli-BPa-ssdB.js} +42 -41
  101. package/dist/{hooks-cli-CpDJa8fo.js → hooks-cli-D7iTDry_.js} +42 -41
  102. package/dist/{hooks-status-CRdYwf7p.js → hooks-status-B5vDwm19.js} +1 -1
  103. package/dist/{hooks-status-i4MgV8tU.js → hooks-status-CQ33gaVT.js} +2 -2
  104. package/dist/index.js +47 -46
  105. package/dist/{inspect-BZEGJ1Wu.js → inspect-C3_zr-N9.js} +2 -2
  106. package/dist/{inspect-ChCXJY8c.js → inspect-D_lN8pwg.js} +2 -2
  107. package/dist/{install-safe-path-PVqsVjI9.js → install-safe-path-79R0iPyC.js} +2 -2
  108. package/dist/{install-safe-path-INk2Z_kc.js → install-safe-path-BBe6qFNr.js} +2 -2
  109. package/dist/{installs-lGgvyXAJ.js → installs-BVJQl3Tj.js} +3 -3
  110. package/dist/{installs-b6XWplET.js → installs-Bb1phV9x.js} +3 -3
  111. package/dist/{lifecycle-core-iiq9e4fE.js → lifecycle-core-DdbL6ELJ.js} +7 -7
  112. package/dist/{lifecycle-core-SWNKAc8k.js → lifecycle-core-O50xtu5c.js} +7 -7
  113. package/dist/llm-slug-generator.js +9 -9
  114. package/dist/{logs-cli-BGjeoamB.js → logs-cli-DvbMaSKU.js} +6 -6
  115. package/dist/{logs-cli-BEWpB_ac.js → logs-cli-T5v8efuM.js} +6 -6
  116. package/dist/{manager-rvtFoeFT.js → manager-Bt-1HGg9.js} +1 -1
  117. package/dist/{manager-DcZUW1bz.js → manager-CC13EPO9.js} +1 -1
  118. package/dist/{manager-CsxTf96V.js → manager-Ck1YSfr6.js} +1 -1
  119. package/dist/{manager-xeIkDkmx.js → manager-DghM7T-b.js} +1 -1
  120. package/dist/{memory-D8JRYEYq.js → memory-CgWOtF4K.js} +4 -4
  121. package/dist/{memory-cli-DZtv3G9o.js → memory-cli-DGheAg5i.js} +7 -7
  122. package/dist/{memory-cli-rORHUdUV.js → memory-cli-vN3fGs79.js} +7 -7
  123. package/dist/{memory-CeB8eMPH.js → memory-d0YI5Lr0.js} +4 -4
  124. package/dist/{model-catalog-MHTLXFwi.js → model-catalog-CzKsiNZA.js} +2 -2
  125. package/dist/{model-catalog-DQTmHZK7.js → model-catalog-IWi6-nY9.js} +2 -2
  126. package/dist/{model-picker-BVNI6Imm.js → model-picker-CS_h9RHv.js} +2 -2
  127. package/dist/{model-picker-DHLA0BEe.js → model-picker-DN-co6Oy.js} +2 -2
  128. package/dist/{models-D3haEpaG.js → models-CBw1pGIq.js} +17 -17
  129. package/dist/{models-cli-DidUOdbx.js → models-cli-BBReZHNq.js} +46 -45
  130. package/dist/{models-cli-DiyNuQ5w.js → models-cli-Bmh1S3iG.js} +49 -48
  131. package/dist/{models-config-CRnTzdFs.js → models-config-B5Xxy-c-.js} +1 -1
  132. package/dist/{models-config-Br7EjqgG.js → models-config-CiR_RUxw.js} +1 -1
  133. package/dist/{node-cli-Yqf38Nio.js → node-cli-2HDdeLgi.js} +20 -20
  134. package/dist/{node-cli-DnwByBU2.js → node-cli-CH1yLZuO.js} +20 -20
  135. package/dist/{node-service-CRSkbk2b.js → node-service-CfHbECCi.js} +2 -2
  136. package/dist/{node-service-E8k7BOQV.js → node-service-D44noKnR.js} +2 -2
  137. package/dist/{nodes-cli-BY6HrZlh.js → nodes-cli-ARs9ZPma.js} +9 -9
  138. package/dist/{nodes-cli-OTk4gEj-.js → nodes-cli-DIm6cMS_.js} +9 -9
  139. package/dist/{note-Bn5K9itM.js → note-Cltpxj6i.js} +1 -1
  140. package/dist/{note-DtkOgLxt.js → note-ytwb4wwn.js} +1 -1
  141. package/dist/{npm-registry-spec-CZCkONwR.js → npm-registry-spec-CONWlhd6.js} +1 -1
  142. package/dist/{npm-registry-spec-L8BUQ0nu.js → npm-registry-spec-DPqOMFd9.js} +1 -1
  143. package/dist/{onboard-oIJ6OEGu.js → onboard-Csj4sOF5.js} +18 -18
  144. package/dist/{onboard-C1PSYsJY.js → onboard-LVUmCZhX.js} +18 -18
  145. package/dist/{onboard-channels-DvNWHvx3.js → onboard-channels-mrSIlZDB.js} +7 -7
  146. package/dist/{onboard-channels-BSt89ffO.js → onboard-channels-vDtX0e0w.js} +7 -7
  147. package/dist/{onboard-custom-y7PsUrmE.js → onboard-custom-BCcuL4Uq.js} +2 -2
  148. package/dist/{onboard-custom-TvRg0dYq.js → onboard-custom-C-wfNtOM.js} +2 -2
  149. package/dist/{onboard-helpers-CtpOchu0.js → onboard-helpers-BKfeJ1xj.js} +4 -4
  150. package/dist/{onboard-helpers-HjgAKoSl.js → onboard-helpers-CCI7SimM.js} +4 -4
  151. package/dist/{onboard-hooks-BU0EsBMH.js → onboard-hooks-CXRw9BJY.js} +2 -2
  152. package/dist/{onboard-hooks-Cmy0Qz0F.js → onboard-hooks-DfDF9AU4.js} +2 -2
  153. package/dist/{onboard-remote-B7bM-1-l.js → onboard-remote-D4R-Yq2Q.js} +3 -3
  154. package/dist/{onboard-remote-B5kHPh_e.js → onboard-remote-DKXBH_lQ.js} +3 -3
  155. package/dist/{onboard-skills-BsPcuuer.js → onboard-skills-BPmu8XLA.js} +2 -2
  156. package/dist/{onboard-skills-V7pX2pkl.js → onboard-skills-jVyIFojF.js} +3 -3
  157. package/dist/{onboarding-Ce0PyZFq.js → onboarding-D2VmoKU1.js} +16 -16
  158. package/dist/{onboarding-D4SGY_zG.js → onboarding-DojADc8N.js} +16 -16
  159. package/dist/{onboarding.finalize-TkbmJzg5.js → onboarding.finalize-Bi1wSEtw.js} +28 -28
  160. package/dist/{onboarding.finalize-BDPrr9CT.js → onboarding.finalize-C4BwVw6u.js} +26 -26
  161. package/dist/{onboarding.gateway-config-9dgVRLeb.js → onboarding.gateway-config-B301LxTx.js} +6 -6
  162. package/dist/{onboarding.gateway-config-DXQhxsQS.js → onboarding.gateway-config-ChCxv8dy.js} +6 -6
  163. package/dist/{openai-model-default-D_rz8Pew.js → openai-model-default-CKfNKTZD.js} +1 -1
  164. package/dist/{openai-model-default-BkGyzajy.js → openai-model-default-ChdgeMqX.js} +1 -1
  165. package/dist/{outbound-send-deps-PNzbuoSX.js → outbound-send-deps-JQjmNLPx.js} +1 -1
  166. package/dist/{pairing-cli-WQ1MKO2B.js → pairing-cli-D7_UlTsI.js} +3 -3
  167. package/dist/{pairing-cli-D2zvrKTM.js → pairing-cli-UgiAsygW.js} +3 -3
  168. package/dist/{path-env-BHRjFlqO.js → path-env-BAyW1s3c.js} +1 -1
  169. package/dist/{path-env-i-ZjtVbs.js → path-env-C1hgM8gP.js} +1 -1
  170. package/dist/{pi-embedded-helpers-nFK_hP2q.js → pi-embedded-helpers-BBiyNXkS.js} +1 -1
  171. package/dist/{pi-embedded-helpers-DVolpQ34.js → pi-embedded-helpers-CDzBxa-P.js} +1 -1
  172. package/dist/{pi-embedded-BPuUM-gD.js → pi-embedded-zSv7VKNQ.js} +1265 -428
  173. package/dist/{pi-tools.policy-uHgu_nx0.js → pi-tools.policy-CU8U7--z.js} +2 -2
  174. package/dist/{pi-tools.policy-CTzYYKRt.js → pi-tools.policy-WaLKhqJQ.js} +2 -2
  175. package/dist/{plugin-auto-enable-C4b23B35.js → plugin-auto-enable-Bt2sVz8w.js} +2 -2
  176. package/dist/{plugin-auto-enable-BkhVwtbW.js → plugin-auto-enable-PBDcVF_-.js} +2 -2
  177. package/dist/{plugin-registry-CxUYRmLh.js → plugin-registry-Dq6OJ45H.js} +2 -2
  178. package/dist/{plugin-registry-V5jShvbP.js → plugin-registry-L1h7mxjX.js} +2 -2
  179. package/dist/plugin-sdk/auto-reply/reply/commands-info.d.ts +1 -0
  180. package/dist/plugin-sdk/auto-reply/status.d.ts +13 -0
  181. package/dist/plugin-sdk/config/types.models.d.ts +5 -0
  182. package/dist/plugin-sdk/config/zod-schema.core.d.ts +11 -0
  183. package/dist/plugin-sdk/config/zod-schema.d.ts +5 -0
  184. package/dist/plugin-sdk/cost/benchmark.d.ts +36 -0
  185. package/dist/plugin-sdk/cost/breakdown.d.ts +63 -0
  186. package/dist/plugin-sdk/cost/gpu-inference.d.ts +52 -0
  187. package/dist/plugin-sdk/cost/rates.d.ts +32 -0
  188. package/dist/plugin-sdk/cost/serving-discovery.d.ts +54 -0
  189. package/dist/plugin-sdk/cost/summary.d.ts +40 -0
  190. package/dist/plugin-sdk/index.js +19 -8
  191. package/dist/{plugins-cli-BthQwo7n.js → plugins-cli-BEIKMoVH.js} +43 -42
  192. package/dist/{plugins-cli-CMAwepRk.js → plugins-cli-C9ehLXaT.js} +43 -42
  193. package/dist/{program-context-BVEz8AgF.js → program-context-Bh5wzWdC.js} +48 -40
  194. package/dist/{program-iw_XyVhs.js → program-iTd2Dei7.js} +46 -45
  195. package/dist/{prompt-select-styled-CF4qV0_M.js → prompt-select-styled-CNFytCD3.js} +32 -32
  196. package/dist/{prompt-select-styled-D3RAY7pg.js → prompt-select-styled-fXotfbCt.js} +31 -31
  197. package/dist/{provider-auth-helpers-BTBjOyhO.js → provider-auth-helpers-DBrH-cce.js} +6 -6
  198. package/dist/{provider-auth-helpers-Dxo0v0UO.js → provider-auth-helpers-Dho1n21x.js} +6 -6
  199. package/dist/{push-apns-DIIbGT1M.js → push-apns-DYYY9NOE.js} +1 -1
  200. package/dist/{push-apns-B8Wg3Hqw.js → push-apns-DpyCFRTu.js} +1 -1
  201. package/dist/{pw-ai-kkF0QaDF.js → pw-ai-DBAtSFTB.js} +2 -2
  202. package/dist/{pw-ai-BFS9ezWe.js → pw-ai-DOAsQ5NX.js} +2 -2
  203. package/dist/{pw-ai-_prsAw5O.js → pw-ai-DQZa9DUQ.js} +2 -2
  204. package/dist/{pw-ai-D2pEVS5n.js → pw-ai-DY_6l11g.js} +2 -2
  205. package/dist/{qr-cli-CcAzgz_N.js → qr-cli-D2A-IU0Y.js} +1 -1
  206. package/dist/{qr-cli-KmGkQDBF.js → qr-cli-DHpiebkG.js} +1 -1
  207. package/dist/{redact-identifier-CXvHJXk9.js → redact-identifier-BOxAUdff.js} +1 -1
  208. package/dist/{register.agent-8XsVRuWC.js → register.agent-BYpBNbHe.js} +61 -60
  209. package/dist/{register.agent-D-OIszeY.js → register.agent-DceNHGi_.js} +63 -62
  210. package/dist/register.configure-09lIIUvq.js +131 -0
  211. package/dist/register.configure-UUZqL0Ck.js +135 -0
  212. package/dist/{register.maintenance-CBYqsXkf.js → register.maintenance-CsoEyVyl.js} +63 -62
  213. package/dist/{register.maintenance-CjM8sJqH.js → register.maintenance-DdX8GZpv.js} +64 -63
  214. package/dist/{register.message-kSIASKVK.js → register.message-CAM62MaW.js} +41 -40
  215. package/dist/{register.message-DnljWvZP.js → register.message-RYn7LD6-.js} +40 -39
  216. package/dist/{register.onboard-Vj1-Ike1.js → register.onboard-CoRtNlNa.js} +28 -28
  217. package/dist/{register.onboard-eDNn1pdd.js → register.onboard-DhR5o8KO.js} +28 -28
  218. package/dist/{register.setup-CmhspsS8.js → register.setup-CEjhFwYz.js} +28 -28
  219. package/dist/{register.setup-DMaoMWRD.js → register.setup-CI_RT1Wa.js} +28 -28
  220. package/dist/{register.status-health-sessions-CJqCoqAi.js → register.status-health-sessions-8N1xEKl7.js} +35 -35
  221. package/dist/{register.status-health-sessions-r3F9H8b0.js → register.status-health-sessions-DNlsQ-xt.js} +36 -36
  222. package/dist/{register.subclis-RqX1a2aL.js → register.subclis-D1qkm3UK.js} +37 -29
  223. package/dist/{replies-BYF1gbJf.js → replies-0nzkXt6o.js} +1 -1
  224. package/dist/{replies-B91-OngF.js → replies-C5CBlnFS.js} +1 -1
  225. package/dist/{replies-DAYTg6Mb.js → replies-D0FYSIJg.js} +1 -1
  226. package/dist/{replies-UP2sglaR.js → replies-_DV8VSSj.js} +1 -1
  227. package/dist/{resolve-route-Zww0Y-HJ.js → resolve-route-CnTdHVgw.js} +1 -1
  228. package/dist/{resolve-route-CmZ7XjmB.js → resolve-route-D0NrCHnr.js} +1 -1
  229. package/dist/{routes-BfeVDhod.js → routes-CPMVuvoz.js} +3 -3
  230. package/dist/{routes-y2Ww0pum.js → routes-DIyAmLYR.js} +3 -3
  231. package/dist/{rpc-DZCrGGH5.js → rpc-B2BLRS45.js} +2 -2
  232. package/dist/{rpc-RIkh5F9v.js → rpc-gUsL9Mqf.js} +2 -2
  233. package/dist/{run-main-6pE2fYXT.js → run-main-hKg6FDt6.js} +61 -60
  234. package/dist/{sandbox-DQdjlC-w.js → sandbox-61-kshSF.js} +5 -5
  235. package/dist/{sandbox-BjQ6n3zl.js → sandbox-J92UBQK8.js} +5 -5
  236. package/dist/{sandbox-cli-CTYAHFyM.js → sandbox-cli-D9v0jhBb.js} +8 -8
  237. package/dist/{sandbox-cli-C0IVf8AS.js → sandbox-cli-DJgF-r8G.js} +8 -8
  238. package/dist/{security-cli-B8VyQJcl.js → security-cli-CZix5cXq.js} +13 -13
  239. package/dist/{security-cli-D0oErb9f.js → security-cli-J9J0qvDy.js} +13 -13
  240. package/dist/{send-Cxu1tl56.js → send-B0jHSNMF.js} +1 -1
  241. package/dist/{send-Cuk_Rjss.js → send-C75uSv6p.js} +1 -1
  242. package/dist/{send-BBfSp-8Q.js → send-Dq252-bi.js} +1 -1
  243. package/dist/{server-context-BFCh7pUb.js → server-context-D-82OTsT.js} +5 -5
  244. package/dist/{server-context-YlgRz1wC.js → server-context-SbbjNkPL.js} +5 -5
  245. package/dist/{server-methods-BWCAXrQJ.js → server-methods-CXoipzKe.js} +31 -31
  246. package/dist/{server-methods-BxsThjMp.js → server-methods-bIWvtXlT.js} +31 -31
  247. package/dist/{server-node-events-AZFI44cm.js → server-node-events-BD8wnswX.js} +40 -39
  248. package/dist/{server-node-events-C10Bhdag.js → server-node-events-nQkNuQOx.js} +39 -38
  249. package/dist/{service-vsb7_8MA.js → service-BF50XyKr.js} +2 -2
  250. package/dist/{service-BBw78ATM.js → service-Ccv3Zi5_.js} +2 -2
  251. package/dist/{session-cost-usage-CqLUlh7S.js → session-cost-usage-CJWHHY-C.js} +1 -1
  252. package/dist/{session-cost-usage-D6Ocwmq1.js → session-cost-usage-D3mgssM_.js} +1 -1
  253. package/dist/{session-utils-BZnPW904.js → session-utils-Cs1jlD-q.js} +3 -3
  254. package/dist/{session-utils-BGw_xwXK.js → session-utils-Zpe3t68b.js} +3 -3
  255. package/dist/{sessions-uS7rV-lI.js → sessions-BSmT7vGX.js} +3 -3
  256. package/dist/{sessions-DHPf5TzB.js → sessions-Dn6VXn4p.js} +1 -1
  257. package/dist/{sessions-optZRB57.js → sessions-Dxf5Kjig.js} +1 -1
  258. package/dist/{shared-CfBMF1VB.js → shared-BJRsBGGr.js} +2 -2
  259. package/dist/{shared-CVXZtpIq.js → shared-BmjlTHYU.js} +2 -2
  260. package/dist/{shared-BucaCyaw.js → shared-Ck6cf10x.js} +1 -1
  261. package/dist/{shared-k1QjV3ys.js → shared-Crfo8y70.js} +1 -1
  262. package/dist/{skill-commands-CKm7eCw6.js → skill-commands-D0xAWG0l.js} +1 -1
  263. package/dist/{skill-commands-DAtpPeXi.js → skill-commands-DKkiQJxU.js} +1 -1
  264. package/dist/{skill-commands-BoMrW3WV.js → skill-commands-JIccKWkf.js} +1 -1
  265. package/dist/{skill-commands-yPirQFOb.js → skill-commands-KnANH5Qm.js} +1 -1
  266. package/dist/{skills-cli-CcWFIcOR.js → skills-cli-BZF5mcG5.js} +7 -7
  267. package/dist/{skills-cli-DcJBgk5R.js → skills-cli-C9F-zLWe.js} +3 -3
  268. package/dist/{skills-install-CcW780Kq.js → skills-install-QOHQrX6P.js} +4 -4
  269. package/dist/{skills-install-CbRsCzAG.js → skills-install-X12kifP1.js} +4 -4
  270. package/dist/{skills-status-CLzaY4r2.js → skills-status-6LVKpabC.js} +1 -1
  271. package/dist/{ssrf-q6hBiAOi.js → ssrf-BCSnhba8.js} +13 -2
  272. package/dist/{ssrf-oI58TMOb.js → ssrf-DNhyFMRW.js} +13 -2
  273. package/dist/{status-BxD8CjLr.js → status-CIZltjd7.js} +2 -2
  274. package/dist/{status-Cv8N2kIe.js → status-CTDVhXdb.js} +20 -20
  275. package/dist/{status-CZc22Lqb.js → status-CWzbgPAZ.js} +2 -2
  276. package/dist/{status-B5sjPQS6.js → status-Dgg3SlRY.js} +20 -20
  277. package/dist/{status.update-B52bM2Tg.js → status.update-CdTtmVpp.js} +2 -2
  278. package/dist/{status.update-Bl_ewksT.js → status.update-_3qHPt0O.js} +2 -2
  279. package/dist/{subagent-registry-BnHgIGX-.js → subagent-registry-DQ_BPb-T.js} +130 -40
  280. package/dist/{synthesis-DvfrgkQU.js → synthesis-CDd1xqI3.js} +36 -35
  281. package/dist/{synthesis-CBIT6Vnk.js → synthesis-CSsmBmJc.js} +9 -9
  282. package/dist/{synthesis-o7Zdrwxz.js → synthesis-DIqhHKjV.js} +36 -35
  283. package/dist/{synthesis-7UL3pCpj.js → synthesis-XbEFEFK1.js} +8 -8
  284. package/dist/{system-cli-BAn07VkE.js → system-cli-DB9etQxq.js} +5 -5
  285. package/dist/{system-cli-BTZ8T0-Z.js → system-cli-szRqg1_v.js} +5 -5
  286. package/dist/{systemd-DCzA-V_E.js → systemd-Dic80Qni.js} +1 -1
  287. package/dist/{systemd-Cmn7zMqD.js → systemd-Dtydk5-z.js} +1 -1
  288. package/dist/{systemd-hints-CvIqgg9d.js → systemd-hints-DmDUq9JT.js} +4 -4
  289. package/dist/{systemd-hints-BlGehfA3.js → systemd-hints-bP8dBJ78.js} +4 -4
  290. package/dist/{systemd-linger-BUWYteOW.js → systemd-linger-BBxRNFXz.js} +2 -2
  291. package/dist/{systemd-linger-Bj4nK9ZB.js → systemd-linger-DjoQVcOq.js} +2 -2
  292. package/dist/{tui-XLWiN8Hm.js → tui-CEhOf9fk.js} +6 -6
  293. package/dist/{tui-B6mIUNPO.js → tui-Dp58oYvX.js} +6 -6
  294. package/dist/{tui-cli-byFYgg3c.js → tui-cli-DFaOwBwg.js} +12 -12
  295. package/dist/{tui-cli-CTK5_3rU.js → tui-cli-wxh3YpaV.js} +12 -12
  296. package/dist/{unified-runner-DnikxMFg.js → unified-runner-Bm3r8UOg.js} +130 -40
  297. package/dist/{unified-runner-BVvvnjXW.js → unified-runner-DN0asRIR.js} +1263 -426
  298. package/dist/{update-DxY1UB0k.js → update-BDo7wxMf.js} +1 -1
  299. package/dist/{update-EhDcBqN1.js → update-CcacbR32.js} +1 -1
  300. package/dist/{update-check-pFwV6W-z.js → update-check-A86nJKtZ.js} +1 -1
  301. package/dist/{update-check-H0DwvuqN.js → update-check-oEbS0voJ.js} +1 -1
  302. package/dist/{update-cli-C8IVRiDZ.js → update-cli-CK7nw0t0.js} +74 -73
  303. package/dist/{update-cli-BAdPKO1o.js → update-cli-kysdsvn3.js} +73 -72
  304. package/dist/{update-runner-CERd2XdT.js → update-runner-CQMv-ibM.js} +3 -3
  305. package/dist/{update-runner-7oHPAIND.js → update-runner-DHi359Tb.js} +3 -3
  306. package/dist/{usage-format-_37Bn-Jb.js → usage-format-DQJz-0qd.js} +0 -1
  307. package/dist/{usage-format-rxT5cEAf.js → usage-format-DeczTGI-.js} +0 -1
  308. package/dist/{webhooks-cli-3UJupWMP.js → webhooks-cli-C3g4MxCE.js} +3 -3
  309. package/dist/{webhooks-cli-BFpGMNrf.js → webhooks-cli-C3uyehJS.js} +3 -3
  310. package/dist/{with-timeout-Bn-ltLg1.js → with-timeout-B0ZJa7f2.js} +1 -1
  311. package/dist/{with-timeout-EXM-FP4_.js → with-timeout-GbJ1Yzsh.js} +1 -1
  312. package/extensions/outlook/src/graph-mail.test.ts +76 -0
  313. package/extensions/outlook/src/graph-mail.ts +7 -2
  314. package/package.json +1 -1
  315. package/dist/register.configure-Bcdw9qlF.js +0 -130
  316. package/dist/register.configure-KE6Kvt4O.js +0 -134
  317. /package/dist/{agents.config-BG9fpad0.js → agents.config-Cyc_RegL.js} +0 -0
  318. /package/dist/{agents.config-CxrFhtC1.js → agents.config-DK6nN-Qh.js} +0 -0
  319. /package/dist/{argv-oa_KBmv1.js → argv-Bl0th4dq.js} +0 -0
  320. /package/dist/{auth-choice-legacy-DwMt7oDR.js → auth-choice-legacy-BZWIpO92.js} +0 -0
  321. /package/dist/{auth-choice-legacy-ZsU_kwPI.js → auth-choice-legacy-iEyARXI2.js} +0 -0
  322. /package/dist/{bindings-CLS_owm_.js → bindings-BAOPW5eK.js} +0 -0
  323. /package/dist/{bindings-BpMZcmYL.js → bindings-c7qLJdIA.js} +0 -0
  324. /package/dist/{brew-B3VMQVQk.js → brew-B4FH-mEH.js} +0 -0
  325. /package/dist/{brew-BsE_w2tW.js → brew-CI00FKf8.js} +0 -0
  326. /package/dist/{catalog-CriSxQMH.js → catalog-BaM8d1-T.js} +0 -0
  327. /package/dist/{catalog-BXxi5-YC.js → catalog-BnLcGVie.js} +0 -0
  328. /package/dist/{channel-selection-BiYW5XI-.js → channel-selection-BrFl0vVK.js} +0 -0
  329. /package/dist/{channel-selection-DF4bza2Q.js → channel-selection-DjrS6oiz.js} +0 -0
  330. /package/dist/{channels-status-issues-DuRF3XF3.js → channels-status-issues-BwbA2OBt.js} +0 -0
  331. /package/dist/{channels-status-issues-C2AVfv0-.js → channels-status-issues-iWQDGUQe.js} +0 -0
  332. /package/dist/{cli-utils-tNdOjVQI.js → cli-utils-CbnnSB38.js} +0 -0
  333. /package/dist/{clipboard-B1jgJ11s.js → clipboard-BSTxQ2tO.js} +0 -0
  334. /package/dist/{clipboard-Sks8Qw-6.js → clipboard-CHn5r7Kj.js} +0 -0
  335. /package/dist/{command-options-C2yg82U0.js → command-options-DgcCGXMQ.js} +0 -0
  336. /package/dist/{command-options-D_KEIae-.js → command-options-Vxb4M7Aj.js} +0 -0
  337. /package/dist/{consolidate-DPAffHCg.js → consolidate-BSUbtSDt.js} +0 -0
  338. /package/dist/{consolidate-CF6vEjPe.js → consolidate-DhoiF4n7.js} +0 -0
  339. /package/dist/{constants-B4wXIPMk.js → constants-BLIhifCJ.js} +0 -0
  340. /package/dist/{constants-ChnKXZKi.js → constants-BP_JoSwO.js} +0 -0
  341. /package/dist/{control-ui-assets-CkPR0Fz2.js → control-ui-assets-CnX0W3vy.js} +0 -0
  342. /package/dist/{control-ui-assets-BVCcPRi3.js → control-ui-assets-DfBRXG5y.js} +0 -0
  343. /package/dist/{delivery-queue-DqDe6994.js → delivery-queue-CIwn40ej.js} +0 -0
  344. /package/dist/{delivery-queue-RUd4NhRw.js → delivery-queue-duM0RT18.js} +0 -0
  345. /package/dist/{dm-policy-shared-DmpXsl2K.js → dm-policy-shared-BUwZ6Ajx.js} +0 -0
  346. /package/dist/{dm-policy-shared-ZfPtrTeh.js → dm-policy-shared-EuuPwRNE.js} +0 -0
  347. /package/dist/{entry-status-BqhxPFzK.js → entry-status-D0BSpWt_.js} +0 -0
  348. /package/dist/{format-BskCnX0I.js → format-BcXs5iuf.js} +0 -0
  349. /package/dist/{gmail-setup-utils-BlGvgPlF.js → gmail-setup-utils-DJgxyDTX.js} +0 -0
  350. /package/dist/{gmail-setup-utils-DsRU2ywQ.js → gmail-setup-utils-_TEJA4pL.js} +0 -0
  351. /package/dist/{health-format-CzrMGubG.js → health-format-Dp4xmTKn.js} +0 -0
  352. /package/dist/{health-format-C0DWlpEn.js → health-format-Li703vy6.js} +0 -0
  353. /package/dist/{help-format-DhRyo3Pj.js → help-format-8IYCRvx1.js} +0 -0
  354. /package/dist/{help-format-BjEVi4c_.js → help-format-BTNd5kFC.js} +0 -0
  355. /package/dist/{helpers-CcArejFh.js → helpers-BnXDQL2q.js} +0 -0
  356. /package/dist/{helpers-Dm_utoC3.js → helpers-CoScWBmD.js} +0 -0
  357. /package/dist/{helpers-DJRLZbrj.js → helpers-DGBa5iKd.js} +0 -0
  358. /package/dist/{helpers-DUclfUl-.js → helpers-lLtg0Hgi.js} +0 -0
  359. /package/dist/{ipv4--8f4a_51.js → ipv4-CCdAVmwu.js} +0 -0
  360. /package/dist/{ipv4-Cy7l-phR.js → ipv4-DFUXU3PT.js} +0 -0
  361. /package/dist/{links-D6ASL_as.js → links-B9CbwY46.js} +0 -0
  362. /package/dist/{links-BkFDs4sT.js → links-CQZxjjCO.js} +0 -0
  363. /package/dist/{logging-4WqMHwAZ.js → logging-BRejMykf.js} +0 -0
  364. /package/dist/{logging-iIX8duxv.js → logging-BmJ5ky59.js} +0 -0
  365. /package/dist/{logging-Czh4x_NQ.js → logging-CLWZ3KQI.js} +0 -0
  366. /package/dist/{model-D50Lt_sm.js → model-BMFj7NXy.js} +0 -0
  367. /package/dist/{model-param-b-CfiuLqZG.js → model-param-b-C6mMtCJr.js} +0 -0
  368. /package/dist/{onboard-config-BKb2QQqE.js → onboard-config-B9Iy9-4f.js} +0 -0
  369. /package/dist/{onboard-config-DZIbmz6s.js → onboard-config-DwsP5yz1.js} +0 -0
  370. /package/dist/{outbound-send-deps-BR6jeE9h.js → outbound-send-deps-DpyxnI3f.js} +0 -0
  371. /package/dist/{parse-log-line-CeJ1RDHv.js → parse-log-line-BQPvB6cZ.js} +0 -0
  372. /package/dist/{parse-log-line-DxFrnzNo.js → parse-log-line-Cg7e_EO6.js} +0 -0
  373. /package/dist/{parse-port-DdAxyRwV.js → parse-port-CLBKavYE.js} +0 -0
  374. /package/dist/{parse-port-W56FnCN_.js → parse-port-dzRz6QnZ.js} +0 -0
  375. /package/dist/{parse-timeout-DKY8YAUj.js → parse-timeout-CuYdP9TL.js} +0 -0
  376. /package/dist/{path-safety-LPRW6mO-.js → path-safety-ZDtSDPro.js} +0 -0
  377. /package/dist/{path-safety-grmMl9nR.js → path-safety-cWA8NpOb.js} +0 -0
  378. /package/dist/{plugins-allowlist-BuJjTWyS.js → plugins-allowlist-C5r7biDp.js} +0 -0
  379. /package/dist/{plugins-allowlist-BvQZxkGy.js → plugins-allowlist-CD4oIJNk.js} +0 -0
  380. /package/dist/{ports-CqKpyZSl.js → ports-BE4iY9ho.js} +0 -0
  381. /package/dist/{ports-BDzMH5Eu.js → ports-C2swmreL.js} +0 -0
  382. /package/dist/{program-context-C5Y6Svzj.js → program-context-CGKRxOBU.js} +0 -0
  383. /package/dist/{progress-deSwGz9x.js → progress-BOQ0hkeM.js} +0 -0
  384. /package/dist/{progress-B3K1UFtC.js → progress-DQTvTiEg.js} +0 -0
  385. /package/dist/{prompt-style-DeaIm7_1.js → prompt-style-CzRuIYtp.js} +0 -0
  386. /package/dist/{prompt-style-DS51QPPi.js → prompt-style-pphr4yLK.js} +0 -0
  387. /package/dist/{prompts-LvxbwPs6.js → prompts-B98rp78m.js} +0 -0
  388. /package/dist/{prompts-l_pUOv42.js → prompts-CqJkfsHC.js} +0 -0
  389. /package/dist/{qmd-manager-BbWeOOTD.js → qmd-manager-C6wRtPm_.js} +0 -0
  390. /package/dist/{qmd-manager-CYKlEJ2U.js → qmd-manager-CYEAMLE7.js} +0 -0
  391. /package/dist/{runtime-guard-GWXNB3ke.js → runtime-guard-Bgv3O9s4.js} +0 -0
  392. /package/dist/{runtime-guard-DWXoHW1Q.js → runtime-guard-ofQGcCUc.js} +0 -0
  393. /package/dist/{runtime-status-BqrK6ivx.js → runtime-status-B-PXkhrX.js} +0 -0
  394. /package/dist/{runtime-status-D4pjzLyv.js → runtime-status-Zb9OQ0VK.js} +0 -0
  395. /package/dist/{session-dirs-CXErIzZq.js → session-dirs-BsQ-g02q.js} +0 -0
  396. /package/dist/{session-dirs-DJ4qiP3r.js → session-dirs-DpiMgw4q.js} +0 -0
  397. /package/dist/{skill-scanner-zh2dJM3x.js → skill-scanner-D5p8L-xO.js} +0 -0
  398. /package/dist/{skill-scanner-Ur9nMoo4.js → skill-scanner-EhsZUzzk.js} +0 -0
  399. /package/dist/{stagger-DkaCfsKB.js → stagger-DQs772BN.js} +0 -0
  400. /package/dist/{status-Bz_-dDs6.js → status-DtyqId3v.js} +0 -0
  401. /package/dist/{status-CExNNC5N.js → status-dOhj12u0.js} +0 -0
  402. /package/dist/{system-run-command-CeR1OLFk.js → system-run-command-2oJPKfVr.js} +0 -0
  403. /package/dist/{system-run-command-Craglj8T.js → system-run-command-D_OmCQOL.js} +0 -0
  404. /package/dist/{table-xKEHbVsK.js → table-Dm8jYqmW.js} +0 -0
  405. /package/dist/{table-jBELNhV1.js → table-Ds5CZCyv.js} +0 -0
  406. /package/dist/{tool-loop-detection-D3y39HsT.js → tool-loop-detection-2Mxxm8YE.js} +0 -0
  407. /package/dist/{tool-loop-detection-DljhV89j.js → tool-loop-detection-Bk07vuCX.js} +0 -0
  408. /package/dist/{widearea-dns-C8Rsixsi.js → widearea-dns-BwIBBqZo.js} +0 -0
  409. /package/dist/{widearea-dns-BSrnDwJD.js → widearea-dns-DA_m7oeT.js} +0 -0
  410. /package/dist/{workspace-DKEYzTNc.js → workspace-DD9pYbiv.js} +0 -0
  411. /package/dist/{workspace-BkWAKK8O.js → workspace-Wkr6wXcS.js} +0 -0
  412. /package/dist/{wsl-cy5jpbkx.js → wsl-Ci3VOaSK.js} +0 -0
  413. /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-_DaupjQd.js";
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-BjQ6n3zl.js";
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-D7SS4vdk.js";
4
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-DQdjlC-w.js";
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-BXxi5-YC.js";
5
- import { t as ensurePluginAllowlisted } from "./plugins-allowlist-BvQZxkGy.js";
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-CriSxQMH.js";
4
- import { t as ensurePluginAllowlisted } from "./plugins-allowlist-BuJjTWyS.js";
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-DnikxMFg.js";
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-D7SS4vdk.js";
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-_DaupjQd.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-BnHgIGX-.js";
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;
@@ -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 json5 from "json5";
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 = json5.parse(raw)?.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) => json5.parse(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 ?? 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$1 = json5) {
10637
+ function parseConfigJson5(raw, json5 = JSON5) {
10627
10638
  try {
10628
10639
  return {
10629
10640
  ok: true,
10630
- parsed: json5$1.parse(raw)
10641
+ parsed: json5.parse(raw)
10631
10642
  };
10632
10643
  } catch (err) {
10633
10644
  return {