@kaitranntt/ccs 7.50.0 → 7.51.0

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 (255) hide show
  1. package/README.md +107 -4
  2. package/config/base-iflow.settings.json +4 -4
  3. package/dist/api/services/index.d.ts +2 -2
  4. package/dist/api/services/index.d.ts.map +1 -1
  5. package/dist/api/services/index.js +2 -1
  6. package/dist/api/services/index.js.map +1 -1
  7. package/dist/api/services/profile-reader.d.ts.map +1 -1
  8. package/dist/api/services/profile-reader.js +13 -0
  9. package/dist/api/services/profile-reader.js.map +1 -1
  10. package/dist/api/services/profile-types.d.ts +9 -0
  11. package/dist/api/services/profile-types.d.ts.map +1 -1
  12. package/dist/api/services/profile-writer.d.ts +8 -2
  13. package/dist/api/services/profile-writer.d.ts.map +1 -1
  14. package/dist/api/services/profile-writer.js +83 -8
  15. package/dist/api/services/profile-writer.js.map +1 -1
  16. package/dist/auth/account-context.d.ts +11 -0
  17. package/dist/auth/account-context.d.ts.map +1 -1
  18. package/dist/auth/account-context.js +42 -8
  19. package/dist/auth/account-context.js.map +1 -1
  20. package/dist/auth/auth-commands.d.ts.map +1 -1
  21. package/dist/auth/auth-commands.js +9 -0
  22. package/dist/auth/auth-commands.js.map +1 -1
  23. package/dist/auth/commands/create-command-env.d.ts +3 -0
  24. package/dist/auth/commands/create-command-env.d.ts.map +1 -0
  25. package/dist/auth/commands/create-command-env.js +55 -0
  26. package/dist/auth/commands/create-command-env.js.map +1 -0
  27. package/dist/auth/commands/create-command.d.ts.map +1 -1
  28. package/dist/auth/commands/create-command.js +136 -30
  29. package/dist/auth/commands/create-command.js.map +1 -1
  30. package/dist/auth/commands/list-command.d.ts.map +1 -1
  31. package/dist/auth/commands/list-command.js +5 -1
  32. package/dist/auth/commands/list-command.js.map +1 -1
  33. package/dist/auth/commands/show-command.d.ts.map +1 -1
  34. package/dist/auth/commands/show-command.js +1 -0
  35. package/dist/auth/commands/show-command.js.map +1 -1
  36. package/dist/auth/commands/types.d.ts +3 -0
  37. package/dist/auth/commands/types.d.ts.map +1 -1
  38. package/dist/auth/commands/types.js +24 -0
  39. package/dist/auth/commands/types.js.map +1 -1
  40. package/dist/auth/profile-detector.d.ts.map +1 -1
  41. package/dist/auth/profile-detector.js +8 -0
  42. package/dist/auth/profile-detector.js.map +1 -1
  43. package/dist/auth/profile-registry.d.ts +2 -0
  44. package/dist/auth/profile-registry.d.ts.map +1 -1
  45. package/dist/auth/profile-registry.js +45 -7
  46. package/dist/auth/profile-registry.js.map +1 -1
  47. package/dist/ccs.js +154 -4
  48. package/dist/ccs.js.map +1 -1
  49. package/dist/cliproxy/account-safety.d.ts.map +1 -1
  50. package/dist/cliproxy/account-safety.js +4 -0
  51. package/dist/cliproxy/account-safety.js.map +1 -1
  52. package/dist/cliproxy/antigravity-responsibility.d.ts +36 -0
  53. package/dist/cliproxy/antigravity-responsibility.d.ts.map +1 -0
  54. package/dist/cliproxy/antigravity-responsibility.js +171 -0
  55. package/dist/cliproxy/antigravity-responsibility.js.map +1 -0
  56. package/dist/cliproxy/auth/auth-types.d.ts +2 -0
  57. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  58. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  59. package/dist/cliproxy/auth/oauth-handler.js +18 -0
  60. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  61. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  62. package/dist/cliproxy/config/env-builder.js +57 -0
  63. package/dist/cliproxy/config/env-builder.js.map +1 -1
  64. package/dist/cliproxy/config/generator.d.ts +2 -1
  65. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  66. package/dist/cliproxy/config/generator.js +18 -8
  67. package/dist/cliproxy/config/generator.js.map +1 -1
  68. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  69. package/dist/cliproxy/executor/index.js +30 -0
  70. package/dist/cliproxy/executor/index.js.map +1 -1
  71. package/dist/cliproxy/services/variant-config-adapter.d.ts +4 -35
  72. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
  73. package/dist/cliproxy/services/variant-config-adapter.js +11 -34
  74. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  75. package/dist/cliproxy/services/variant-service.d.ts +5 -1
  76. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  77. package/dist/cliproxy/services/variant-service.js +19 -9
  78. package/dist/cliproxy/services/variant-service.js.map +1 -1
  79. package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -1
  80. package/dist/cliproxy/sync/profile-mapper.js +14 -2
  81. package/dist/cliproxy/sync/profile-mapper.js.map +1 -1
  82. package/dist/commands/api-command.d.ts +2 -0
  83. package/dist/commands/api-command.d.ts.map +1 -1
  84. package/dist/commands/api-command.js +45 -10
  85. package/dist/commands/api-command.js.map +1 -1
  86. package/dist/commands/cliproxy/auth-subcommand.d.ts.map +1 -1
  87. package/dist/commands/cliproxy/auth-subcommand.js +5 -2
  88. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
  89. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  90. package/dist/commands/cliproxy/help-subcommand.js +1 -0
  91. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  92. package/dist/commands/cliproxy/variant-subcommand.d.ts +15 -0
  93. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  94. package/dist/commands/cliproxy/variant-subcommand.js +144 -15
  95. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  96. package/dist/commands/help-command.d.ts.map +1 -1
  97. package/dist/commands/help-command.js +34 -2
  98. package/dist/commands/help-command.js.map +1 -1
  99. package/dist/config/migration-manager.d.ts.map +1 -1
  100. package/dist/config/migration-manager.js +19 -0
  101. package/dist/config/migration-manager.js.map +1 -1
  102. package/dist/config/unified-config-loader.d.ts +11 -1
  103. package/dist/config/unified-config-loader.d.ts.map +1 -1
  104. package/dist/config/unified-config-loader.js +127 -59
  105. package/dist/config/unified-config-loader.js.map +1 -1
  106. package/dist/config/unified-config-types.d.ts +16 -0
  107. package/dist/config/unified-config-types.d.ts.map +1 -1
  108. package/dist/config/unified-config-types.js +8 -1
  109. package/dist/config/unified-config-types.js.map +1 -1
  110. package/dist/management/instance-manager.d.ts +1 -0
  111. package/dist/management/instance-manager.d.ts.map +1 -1
  112. package/dist/management/instance-manager.js +14 -8
  113. package/dist/management/instance-manager.js.map +1 -1
  114. package/dist/management/profile-context-sync-lock.d.ts +14 -0
  115. package/dist/management/profile-context-sync-lock.d.ts.map +1 -0
  116. package/dist/management/profile-context-sync-lock.js +174 -0
  117. package/dist/management/profile-context-sync-lock.js.map +1 -0
  118. package/dist/management/shared-manager.d.ts +18 -0
  119. package/dist/management/shared-manager.d.ts.map +1 -1
  120. package/dist/management/shared-manager.js +145 -6
  121. package/dist/management/shared-manager.js.map +1 -1
  122. package/dist/targets/droid-adapter.d.ts +2 -4
  123. package/dist/targets/droid-adapter.d.ts.map +1 -1
  124. package/dist/targets/droid-adapter.js +20 -10
  125. package/dist/targets/droid-adapter.js.map +1 -1
  126. package/dist/targets/droid-command-router.d.ts +26 -0
  127. package/dist/targets/droid-command-router.d.ts.map +1 -0
  128. package/dist/targets/droid-command-router.js +240 -0
  129. package/dist/targets/droid-command-router.js.map +1 -0
  130. package/dist/targets/droid-config-manager.d.ts +9 -1
  131. package/dist/targets/droid-config-manager.d.ts.map +1 -1
  132. package/dist/targets/droid-config-manager.js +134 -6
  133. package/dist/targets/droid-config-manager.js.map +1 -1
  134. package/dist/targets/droid-provider.d.ts +40 -0
  135. package/dist/targets/droid-provider.d.ts.map +1 -0
  136. package/dist/targets/droid-provider.js +140 -0
  137. package/dist/targets/droid-provider.js.map +1 -0
  138. package/dist/targets/droid-reasoning-runtime.d.ts +14 -0
  139. package/dist/targets/droid-reasoning-runtime.d.ts.map +1 -0
  140. package/dist/targets/droid-reasoning-runtime.js +42 -0
  141. package/dist/targets/droid-reasoning-runtime.js.map +1 -0
  142. package/dist/targets/index.d.ts +2 -0
  143. package/dist/targets/index.d.ts.map +1 -1
  144. package/dist/targets/index.js +4 -1
  145. package/dist/targets/index.js.map +1 -1
  146. package/dist/targets/target-adapter.d.ts +6 -0
  147. package/dist/targets/target-adapter.d.ts.map +1 -1
  148. package/dist/targets/target-resolver.d.ts.map +1 -1
  149. package/dist/targets/target-resolver.js +6 -3
  150. package/dist/targets/target-resolver.js.map +1 -1
  151. package/dist/types/config.d.ts +7 -0
  152. package/dist/types/config.d.ts.map +1 -1
  153. package/dist/types/config.js.map +1 -1
  154. package/dist/ui/assets/accounts-y2u0CVK8.js +1 -0
  155. package/dist/ui/assets/{alert-dialog-YcmZPFim.js → alert-dialog-CetY4Iww.js} +1 -1
  156. package/dist/ui/assets/api-5q1FT1uL.js +1 -0
  157. package/dist/ui/assets/auth-section-CaQeee-F.js +1 -0
  158. package/dist/ui/assets/{backups-section-DmAsqMfq.js → backups-section-hF88BjYJ.js} +1 -1
  159. package/dist/ui/assets/{checkbox-Cfg9kbJX.js → checkbox-Dhm5Fzkb.js} +1 -1
  160. package/dist/ui/assets/cliproxy-BeYNWmY_.js +3 -0
  161. package/dist/ui/assets/cliproxy-control-panel-CJELeI80.js +1 -0
  162. package/dist/ui/assets/{confirm-dialog-CRcV2Yc4.js → confirm-dialog-Dn3SrwNV.js} +1 -1
  163. package/dist/ui/assets/{copilot-EarFqUyJ.js → copilot-vwT-4_V4.js} +2 -2
  164. package/dist/ui/assets/{cursor-Dbe4Wtw2.js → cursor-CN3lIX63.js} +1 -1
  165. package/dist/ui/assets/droid-DBP2yCY7.js +2 -0
  166. package/dist/ui/assets/{form-utils-C-pVd1--.js → form-utils-Cn_Uld6y.js} +1 -1
  167. package/dist/ui/assets/globalenv-section-DNKAJasL.js +1 -0
  168. package/dist/ui/assets/{health-Cvr359ff.js → health-C7tNiLzc.js} +1 -1
  169. package/dist/ui/assets/icons-DrewC9c3.js +1 -0
  170. package/dist/ui/assets/index-C8-ef-r7.js +1 -0
  171. package/dist/ui/assets/{index-Cp8K9_TQ.js → index-MGh88HoC.js} +1 -1
  172. package/dist/ui/assets/{index-DTDftvd-.js → index-QBUSDLTx.js} +1 -1
  173. package/dist/ui/assets/index-k-HuyjpO.js +47 -0
  174. package/dist/ui/assets/index-s-oTl3hW.css +1 -0
  175. package/dist/ui/assets/{index-CLBNUja8.js → index-uYnNU6Ut.js} +1 -1
  176. package/dist/ui/assets/proxy-status-widget-CIm5vKY7.js +1 -0
  177. package/dist/ui/assets/{radix-ui-DKgfU5rd.js → radix-ui-C1Gpgz6I.js} +1 -1
  178. package/dist/ui/assets/{separator-CdOKc0gJ.js → separator-BLVyAGAm.js} +1 -1
  179. package/dist/ui/assets/shared-CHH09ZNi.js +8 -0
  180. package/dist/ui/assets/{switch-B2ALi24E.js → switch-CwLyB4JK.js} +1 -1
  181. package/dist/ui/assets/{tanstack-5ndrQy-j.js → tanstack-DDJIhNJd.js} +1 -1
  182. package/dist/ui/assets/updates-VlxL3aum.js +1 -0
  183. package/dist/ui/index.html +6 -6
  184. package/dist/web-server/model-pricing.d.ts.map +1 -1
  185. package/dist/web-server/model-pricing.js +114 -22
  186. package/dist/web-server/model-pricing.js.map +1 -1
  187. package/dist/web-server/routes/account-route-helpers.d.ts +20 -0
  188. package/dist/web-server/routes/account-route-helpers.d.ts.map +1 -0
  189. package/dist/web-server/routes/account-route-helpers.js +34 -0
  190. package/dist/web-server/routes/account-route-helpers.js.map +1 -0
  191. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  192. package/dist/web-server/routes/account-routes.js +160 -27
  193. package/dist/web-server/routes/account-routes.js.map +1 -1
  194. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  195. package/dist/web-server/routes/cliproxy-auth-routes.js +58 -24
  196. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  197. package/dist/web-server/routes/config-routes.d.ts.map +1 -1
  198. package/dist/web-server/routes/config-routes.js +73 -0
  199. package/dist/web-server/routes/config-routes.js.map +1 -1
  200. package/dist/web-server/routes/droid-routes.d.ts +3 -0
  201. package/dist/web-server/routes/droid-routes.d.ts.map +1 -0
  202. package/dist/web-server/routes/droid-routes.js +61 -0
  203. package/dist/web-server/routes/droid-routes.js.map +1 -0
  204. package/dist/web-server/routes/index.d.ts.map +1 -1
  205. package/dist/web-server/routes/index.js +3 -0
  206. package/dist/web-server/routes/index.js.map +1 -1
  207. package/dist/web-server/routes/profile-routes.d.ts +2 -0
  208. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  209. package/dist/web-server/routes/profile-routes.js +86 -6
  210. package/dist/web-server/routes/profile-routes.js.map +1 -1
  211. package/dist/web-server/routes/route-helpers.d.ts +2 -1
  212. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  213. package/dist/web-server/routes/route-helpers.js +20 -1
  214. package/dist/web-server/routes/route-helpers.js.map +1 -1
  215. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  216. package/dist/web-server/routes/settings-routes.js +110 -12
  217. package/dist/web-server/routes/settings-routes.js.map +1 -1
  218. package/dist/web-server/routes/variant-routes.d.ts +2 -0
  219. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  220. package/dist/web-server/routes/variant-routes.js +50 -6
  221. package/dist/web-server/routes/variant-routes.js.map +1 -1
  222. package/dist/web-server/services/compatible-cli-docs-registry.d.ts +23 -0
  223. package/dist/web-server/services/compatible-cli-docs-registry.d.ts.map +1 -0
  224. package/dist/web-server/services/compatible-cli-docs-registry.js +81 -0
  225. package/dist/web-server/services/compatible-cli-docs-registry.js.map +1 -0
  226. package/dist/web-server/services/compatible-cli-json-file-service.d.ts +41 -0
  227. package/dist/web-server/services/compatible-cli-json-file-service.d.ts.map +1 -0
  228. package/dist/web-server/services/compatible-cli-json-file-service.js +205 -0
  229. package/dist/web-server/services/compatible-cli-json-file-service.js.map +1 -0
  230. package/dist/web-server/services/compatible-cli-types.d.ts +82 -0
  231. package/dist/web-server/services/compatible-cli-types.d.ts.map +1 -0
  232. package/dist/web-server/services/compatible-cli-types.js +3 -0
  233. package/dist/web-server/services/compatible-cli-types.js.map +1 -0
  234. package/dist/web-server/services/droid-dashboard-service.d.ts +29 -0
  235. package/dist/web-server/services/droid-dashboard-service.d.ts.map +1 -0
  236. package/dist/web-server/services/droid-dashboard-service.js +238 -0
  237. package/dist/web-server/services/droid-dashboard-service.js.map +1 -0
  238. package/dist/web-server/shared-routes.d.ts.map +1 -1
  239. package/dist/web-server/shared-routes.js +350 -52
  240. package/dist/web-server/shared-routes.js.map +1 -1
  241. package/lib/hooks/websearch-transformer.cjs +78 -52
  242. package/package.json +4 -2
  243. package/scripts/maintainability-check.js +163 -0
  244. package/dist/ui/assets/accounts-DIqClJ7z.js +0 -1
  245. package/dist/ui/assets/api-BWyCgbMh.js +0 -1
  246. package/dist/ui/assets/auth-section-Amm4rwiS.js +0 -1
  247. package/dist/ui/assets/cliproxy-B-q7RjS2.js +0 -3
  248. package/dist/ui/assets/cliproxy-control-panel-BliRTkbb.js +0 -1
  249. package/dist/ui/assets/globalenv-section-CBp73q9k.js +0 -1
  250. package/dist/ui/assets/icons-DGASzt3M.js +0 -1
  251. package/dist/ui/assets/index-8n-yIlea.js +0 -47
  252. package/dist/ui/assets/index-B5aulDs4.js +0 -1
  253. package/dist/ui/assets/index-BBCDm6dS.css +0 -1
  254. package/dist/ui/assets/proxy-status-widget-C0G0aOCW.js +0 -1
  255. package/dist/ui/assets/shared-zsUXmES2.js +0 -1
@@ -24,16 +24,16 @@
24
24
  href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap"
25
25
  rel="stylesheet"
26
26
  />
27
- <script type="module" crossorigin src="/assets/index-8n-yIlea.js"></script>
27
+ <script type="module" crossorigin src="/assets/index-k-HuyjpO.js"></script>
28
28
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-CNOkPC89.js">
29
- <link rel="modulepreload" crossorigin href="/assets/radix-ui-DKgfU5rd.js">
30
- <link rel="modulepreload" crossorigin href="/assets/tanstack-5ndrQy-j.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/radix-ui-C1Gpgz6I.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/tanstack-DDJIhNJd.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/notifications-B2HqRBj7.js">
32
- <link rel="modulepreload" crossorigin href="/assets/icons-DGASzt3M.js">
32
+ <link rel="modulepreload" crossorigin href="/assets/icons-DrewC9c3.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/utils-CzKF5WmX.js">
34
- <link rel="modulepreload" crossorigin href="/assets/form-utils-C-pVd1--.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/form-utils-Cn_Uld6y.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/code-highlight-BRUf_pqB.js">
36
- <link rel="stylesheet" crossorigin href="/assets/index-BBCDm6dS.css">
36
+ <link rel="stylesheet" crossorigin href="/assets/index-s-oTl3hW.css">
37
37
  </head>
38
38
  <body>
39
39
  <div id="root"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAonBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CA6B3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUtE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKvD"}
1
+ {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AA8tBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAyB3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUtE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD"}
@@ -537,6 +537,18 @@ const PRICING_REGISTRY = {
537
537
  // ---------------------------------------------------------------------------
538
538
  // MiniMax Models - Source: https://platform.minimax.io/docs/pricing/pay-as-you-go
539
539
  // ---------------------------------------------------------------------------
540
+ 'MiniMax-M2.5': {
541
+ inputPerMillion: 0.3,
542
+ outputPerMillion: 1.2,
543
+ cacheCreationPerMillion: 0.375,
544
+ cacheReadPerMillion: 0.03,
545
+ },
546
+ 'MiniMax-M2.5-lightning': {
547
+ inputPerMillion: 0.6,
548
+ outputPerMillion: 2.4,
549
+ cacheCreationPerMillion: 0.375,
550
+ cacheReadPerMillion: 0.03,
551
+ },
540
552
  'MiniMax-M2.1': {
541
553
  inputPerMillion: 0.3,
542
554
  outputPerMillion: 1.2,
@@ -544,7 +556,7 @@ const PRICING_REGISTRY = {
544
556
  cacheReadPerMillion: 0.03,
545
557
  },
546
558
  'MiniMax-M2.1-lightning': {
547
- inputPerMillion: 0.3,
559
+ inputPerMillion: 0.6,
548
560
  outputPerMillion: 2.4,
549
561
  cacheCreationPerMillion: 0.375,
550
562
  cacheReadPerMillion: 0.03,
@@ -556,6 +568,51 @@ const PRICING_REGISTRY = {
556
568
  cacheReadPerMillion: 0.03,
557
569
  },
558
570
  // ---------------------------------------------------------------------------
571
+ // Qwen Models - Source: https://www.alibabacloud.com/help/zh/model-studio/model-pricing
572
+ // ---------------------------------------------------------------------------
573
+ 'qwen3-max': {
574
+ inputPerMillion: 1.2,
575
+ outputPerMillion: 6,
576
+ cacheCreationPerMillion: 1.2,
577
+ cacheReadPerMillion: 0.24,
578
+ },
579
+ 'qwen3-max-2026-01-23': {
580
+ inputPerMillion: 1.2,
581
+ outputPerMillion: 6,
582
+ cacheCreationPerMillion: 1.2,
583
+ cacheReadPerMillion: 0.24,
584
+ },
585
+ 'qwen3-max-preview': {
586
+ inputPerMillion: 1.2,
587
+ outputPerMillion: 6,
588
+ cacheCreationPerMillion: 1.2,
589
+ cacheReadPerMillion: 0.24,
590
+ },
591
+ 'qwen3.5-plus': {
592
+ inputPerMillion: 0.4,
593
+ outputPerMillion: 2.4,
594
+ cacheCreationPerMillion: 0.4,
595
+ cacheReadPerMillion: 0.08,
596
+ },
597
+ 'qwen3.5-flash': {
598
+ inputPerMillion: 0.1,
599
+ outputPerMillion: 0.4,
600
+ cacheCreationPerMillion: 0.1,
601
+ cacheReadPerMillion: 0.02,
602
+ },
603
+ 'qwen3-coder-plus': {
604
+ inputPerMillion: 1,
605
+ outputPerMillion: 5,
606
+ cacheCreationPerMillion: 1,
607
+ cacheReadPerMillion: 0.2,
608
+ },
609
+ 'qwen3-coder-flash': {
610
+ inputPerMillion: 0.3,
611
+ outputPerMillion: 1.5,
612
+ cacheCreationPerMillion: 0.3,
613
+ cacheReadPerMillion: 0.06,
614
+ },
615
+ // ---------------------------------------------------------------------------
559
616
  // DeepSeek Models - Source: better-ccusage
560
617
  // ---------------------------------------------------------------------------
561
618
  'deepseek-chat': {
@@ -604,6 +661,13 @@ const PRICING_REGISTRY = {
604
661
  cacheReadPerMillion: 0.0,
605
662
  },
606
663
  };
664
+ const MODEL_PRICING_ALIASES = {
665
+ // Keep catalog-only IDs on explicit priced equivalents.
666
+ 'qwen3-coder': 'qwen3-coder-plus',
667
+ 'qwen3-235b': 'qwen3-max',
668
+ 'qwen3-vl-plus': 'qwen3.5-plus',
669
+ 'qwen3-32b': 'qwen3.5-plus',
670
+ };
607
671
  // Default pricing for unknown models
608
672
  const UNKNOWN_MODEL_PRICING = {
609
673
  inputPerMillion: 3.0,
@@ -620,35 +684,64 @@ const UNKNOWN_MODEL_PRICING = {
620
684
  */
621
685
  function normalizeModelName(model) {
622
686
  // Remove provider prefixes (e.g., "anthropic/claude-..." -> "claude-...")
623
- const normalized = model.toLowerCase().replace(/^[^/]+\//, '');
687
+ const normalized = model
688
+ .trim()
689
+ .toLowerCase()
690
+ .replace(/^[^/]+\//, '');
624
691
  return normalized;
625
692
  }
693
+ const NORMALIZED_PRICING_REGISTRY = Object.entries(PRICING_REGISTRY).reduce((acc, [key, pricing]) => {
694
+ acc[normalizeModelName(key)] = pricing;
695
+ return acc;
696
+ }, {});
697
+ function getLookupCandidates(model) {
698
+ const normalized = normalizeModelName(model);
699
+ const baseModel = normalized.split(':')[0];
700
+ return baseModel === normalized ? [normalized] : [normalized, baseModel];
701
+ }
702
+ function getDirectOrAliasPricing(model) {
703
+ const directPricing = PRICING_REGISTRY[model];
704
+ if (directPricing !== undefined) {
705
+ return directPricing;
706
+ }
707
+ for (const candidate of getLookupCandidates(model)) {
708
+ const normalizedPricing = NORMALIZED_PRICING_REGISTRY[candidate];
709
+ if (normalizedPricing !== undefined) {
710
+ return normalizedPricing;
711
+ }
712
+ const alias = MODEL_PRICING_ALIASES[candidate];
713
+ if (alias !== undefined) {
714
+ const aliasPricing = NORMALIZED_PRICING_REGISTRY[alias];
715
+ if (aliasPricing !== undefined) {
716
+ return aliasPricing;
717
+ }
718
+ }
719
+ }
720
+ return undefined;
721
+ }
626
722
  /**
627
723
  * Get pricing for a model with fuzzy matching fallback
628
724
  * @param model - Model name (exact or with provider prefix)
629
725
  * @returns ModelPricing for the model or fallback pricing
630
726
  */
631
727
  function getModelPricing(model) {
632
- // Try exact match first
633
- if (PRICING_REGISTRY[model]) {
634
- return PRICING_REGISTRY[model];
635
- }
636
- // Try normalized match
637
- const normalized = normalizeModelName(model);
638
- if (PRICING_REGISTRY[normalized]) {
639
- return PRICING_REGISTRY[normalized];
728
+ const directOrAliasPricing = getDirectOrAliasPricing(model);
729
+ if (directOrAliasPricing !== undefined) {
730
+ return directOrAliasPricing;
640
731
  }
641
- // Try suffix matching (e.g., "claude-sonnet-4-5" matches "*-claude-sonnet-4-5")
642
- for (const [key, pricing] of Object.entries(PRICING_REGISTRY)) {
643
- if (normalized.endsWith(key) || key.endsWith(normalized)) {
644
- return pricing;
732
+ for (const candidate of getLookupCandidates(model)) {
733
+ // Try suffix matching (e.g., "claude-sonnet-4-5" matches "*-claude-sonnet-4-5")
734
+ for (const [key, pricing] of Object.entries(NORMALIZED_PRICING_REGISTRY)) {
735
+ if (candidate.endsWith(key) || key.endsWith(candidate)) {
736
+ return pricing;
737
+ }
645
738
  }
646
- }
647
- // Try partial matching for model families
648
- for (const [key, pricing] of Object.entries(PRICING_REGISTRY)) {
649
- // Match by model family prefix
650
- if (normalized.startsWith(key.split('-').slice(0, 2).join('-'))) {
651
- return pricing;
739
+ // Try partial matching for model families
740
+ for (const [key, pricing] of Object.entries(NORMALIZED_PRICING_REGISTRY)) {
741
+ // Match by model family prefix
742
+ if (candidate.startsWith(key.split('-').slice(0, 2).join('-'))) {
743
+ return pricing;
744
+ }
652
745
  }
653
746
  }
654
747
  // Fallback to unknown model pricing
@@ -681,8 +774,7 @@ exports.getKnownModels = getKnownModels;
681
774
  * Check if a model has custom pricing (not using fallback)
682
775
  */
683
776
  function hasCustomPricing(model) {
684
- return (PRICING_REGISTRY[model] !== undefined ||
685
- PRICING_REGISTRY[normalizeModelName(model)] !== undefined);
777
+ return getDirectOrAliasPricing(model) !== undefined;
686
778
  }
687
779
  exports.hasCustomPricing = hasCustomPricing;
688
780
  //# sourceMappingURL=model-pricing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAoBH,+EAA+E;AAC/E,8BAA8B;AAC9B,iDAAiD;AACjD,+EAA+E;AAE/E,MAAM,gBAAgB,GAAiC;IACrD,8EAA8E;IAC9E,iEAAiE;IACjE,wEAAwE;IACxE,8EAA8E;IAC9E,+BAA+B;IAC/B,yBAAyB,EAAE;QACzB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,8BAA8B;IAC9B,2BAA2B,EAAE;QAC3B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,yBAAyB,EAAE;QACzB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,2BAA2B;IAC3B,2BAA2B,EAAE;QAC3B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,6DAA6D;IAC7D,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,yCAAyC;IACzC,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,sCAAsC;IACtC,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,2BAA2B;IAC3B,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,6BAA6B;IAC7B,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B;IAC1B,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,eAAe,EAAE;QACf,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,4BAA4B;IAC5B,iBAAiB,EAAE;QACjB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,0CAA0C;IAC1C,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IAED,8EAA8E;IAC9E,yCAAyC;IACzC,8EAA8E;IAC9E,SAAS;IACT,QAAQ,EAAE;QACR,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,UAAU;IACV,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,UAAU;IACV,iBAAiB,EAAE;QACjB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,KAAK;QACvB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gBAAgB;IAChB,eAAe,EAAE;QACf,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,oBAAoB,EAAE;QACpB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,sBAAsB;IACtB,EAAE,EAAE;QACF,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gDAAgD;IAChD,OAAO,EAAE;QACP,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IAED,8EAA8E;IAC9E,gDAAgD;IAChD,8EAA8E;IAC9E,aAAa;IACb,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,MAAM;KAC5B;IACD,aAAa;IACb,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,aAAa;IACb,kBAAkB,EAAE;QAClB,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,qBAAqB,EAAE;QACrB,eAAe,EAAE,MAAM;QACvB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,+EAA+E;IAC/E,0CAA0C;IAC1C,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,sCAAsC;IACtC,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IAED,8EAA8E;IAC9E,qEAAqE;IACrE,8EAA8E;IAC9E,OAAO,EAAE;QACP,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,SAAS,EAAE;QACT,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IAED,8EAA8E;IAC9E,qEAAqE;IACrE,4EAA4E;IAC5E,8EAA8E;IAC9E,WAAW,EAAE;QACX,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,aAAa,EAAE;QACb,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IAED,8EAA8E;IAC9E,kFAAkF;IAClF,8EAA8E;IAC9E,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IAED,8EAA8E;IAC9E,2CAA2C;IAC3C,8EAA8E;IAC9E,eAAe,EAAE;QACf,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IAED,8EAA8E;IAC9E,0CAA0C;IAC1C,8EAA8E;IAC9E,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;CACF,CAAC;AAEF,qCAAqC;AACrC,MAAM,qBAAqB,GAAiB;IAC1C,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,IAAI;IAC7B,mBAAmB,EAAE,GAAG;CACzB,CAAC;AAEF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,0EAA0E;IAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAa;IAC3C,wBAAwB;IACxB,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,uBAAuB;IACvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,gFAAgF;IAChF,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9D,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9D,+BAA+B;QAC/B,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChE,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AA7BD,0CA6BC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAiB,EAAE,KAAa;IAC5D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAC5E,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC/E,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,mBAAmB,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC5E,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAExF,OAAO,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAAC;AACpE,CAAC;AAVD,sCAUC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAFD,wCAEC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,CACL,gBAAgB,CAAC,KAAK,CAAC,KAAK,SAAS;QACrC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAC1D,CAAC;AACJ,CAAC;AALD,4CAKC"}
1
+ {"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { CLIProxyProvider } from '../../cliproxy/types';
2
+ export interface MergedAccountEntry {
3
+ type: string;
4
+ created: string;
5
+ last_used: string | null;
6
+ context_mode?: 'isolated' | 'shared';
7
+ context_group?: string;
8
+ continuity_mode?: 'standard' | 'deeper';
9
+ context_inferred?: boolean;
10
+ continuity_inferred?: boolean;
11
+ provider?: string;
12
+ displayName?: string;
13
+ }
14
+ /** Parse CLIProxy account key format: "provider:accountId" */
15
+ export declare function parseCliproxyKey(key: string): {
16
+ provider: CLIProxyProvider;
17
+ accountId: string;
18
+ } | null;
19
+ export declare function buildCliproxyAccountKey(rawKey: string, merged: Record<string, MergedAccountEntry>): string | null;
20
+ //# sourceMappingURL=account-route-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-route-helpers.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/account-route-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GACV;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe1D;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GACzC,MAAM,GAAG,IAAI,CAQf"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildCliproxyAccountKey = exports.parseCliproxyKey = void 0;
4
+ const provider_capabilities_1 = require("../../cliproxy/provider-capabilities");
5
+ /** Parse CLIProxy account key format: "provider:accountId" */
6
+ function parseCliproxyKey(key) {
7
+ let normalizedKey = key;
8
+ if (key.startsWith('cliproxy:')) {
9
+ normalizedKey = key.slice('cliproxy:'.length);
10
+ }
11
+ else if (key.startsWith('cliproxy+')) {
12
+ normalizedKey = key.slice('cliproxy+'.length);
13
+ }
14
+ const colonIndex = normalizedKey.indexOf(':');
15
+ if (colonIndex === -1)
16
+ return null;
17
+ const provider = normalizedKey.slice(0, colonIndex);
18
+ const accountId = normalizedKey.slice(colonIndex + 1);
19
+ if (!(0, provider_capabilities_1.isCLIProxyProvider)(provider) || !accountId)
20
+ return null;
21
+ return { provider, accountId };
22
+ }
23
+ exports.parseCliproxyKey = parseCliproxyKey;
24
+ function buildCliproxyAccountKey(rawKey, merged) {
25
+ const candidateKeys = [rawKey, `cliproxy:${rawKey}`, `cliproxy+${rawKey}`];
26
+ for (const key of candidateKeys) {
27
+ if (!merged[key]) {
28
+ return key;
29
+ }
30
+ }
31
+ return null;
32
+ }
33
+ exports.buildCliproxyAccountKey = buildCliproxyAccountKey;
34
+ //# sourceMappingURL=account-route-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-route-helpers.js","sourceRoot":"","sources":["../../../src/web-server/routes/account-route-helpers.ts"],"names":[],"mappings":";;;AACA,gFAA0E;AAe1E,8DAA8D;AAC9D,SAAgB,gBAAgB,CAC9B,GAAW;IAEX,IAAI,aAAa,GAAG,GAAG,CAAC;IACxB,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,UAAU,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAEtD,IAAI,CAAC,IAAA,0CAAkB,EAAC,QAAQ,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAjBD,4CAiBC;AAED,SAAgB,uBAAuB,CACrC,MAAc,EACd,MAA0C;IAE1C,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,YAAY,MAAM,EAAE,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,0DAWC"}
@@ -1 +1 @@
1
- {"version":3,"file":"account-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/account-routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,QAAA,MAAM,MAAM,4CAAW,CAAC;AAqTxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"account-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/account-routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH,QAAA,MAAM,MAAM,4CAAW,CAAC;AAycxB,eAAe,MAAM,CAAC"}
@@ -11,21 +11,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const express_1 = require("express");
13
13
  const profile_registry_1 = __importDefault(require("../../auth/profile-registry"));
14
+ const instance_manager_1 = __importDefault(require("../../management/instance-manager"));
14
15
  const unified_config_loader_1 = require("../../config/unified-config-loader");
15
16
  const account_manager_1 = require("../../cliproxy/account-manager");
16
17
  const provider_capabilities_1 = require("../../cliproxy/provider-capabilities");
18
+ const account_context_1 = require("../../auth/account-context");
19
+ const account_route_helpers_1 = require("./account-route-helpers");
17
20
  const router = (0, express_1.Router)();
18
21
  const registry = new profile_registry_1.default();
19
- /** Parse CLIProxy account key format: "provider:accountId" */
20
- function parseCliproxyKey(key) {
21
- const colonIndex = key.indexOf(':');
22
- if (colonIndex === -1)
23
- return null;
24
- const provider = key.slice(0, colonIndex);
25
- const accountId = key.slice(colonIndex + 1);
26
- if (!(0, provider_capabilities_1.isCLIProxyProvider)(provider) || !accountId)
27
- return null;
28
- return { provider, accountId };
22
+ const instanceMgr = new instance_manager_1.default();
23
+ function hasAuthAccount(name) {
24
+ return registry.hasAccountUnified(name) || registry.hasProfile(name);
29
25
  }
30
26
  /**
31
27
  * GET /api/accounts - List accounts from both profiles.json and config.yaml
@@ -41,22 +37,34 @@ router.get('/', (_req, res) => {
41
37
  const merged = {};
42
38
  // Add legacy profiles first
43
39
  for (const [name, meta] of Object.entries(legacyProfiles)) {
40
+ const contextPolicy = (0, account_context_1.resolveAccountContextPolicy)(meta);
41
+ const hasExplicitContextMode = meta.context_mode === 'isolated' || meta.context_mode === 'shared';
42
+ const hasExplicitContinuityMode = meta.continuity_mode === 'standard' || meta.continuity_mode === 'deeper';
44
43
  merged[name] = {
45
44
  type: meta.type || 'account',
46
45
  created: meta.created,
47
46
  last_used: meta.last_used || null,
48
- context_mode: meta.context_mode,
49
- context_group: meta.context_group,
47
+ context_mode: contextPolicy.mode,
48
+ context_group: contextPolicy.group,
49
+ continuity_mode: contextPolicy.mode === 'shared' ? contextPolicy.continuityMode : undefined,
50
+ context_inferred: !hasExplicitContextMode,
51
+ continuity_inferred: contextPolicy.mode === 'shared' ? !hasExplicitContinuityMode : undefined,
50
52
  };
51
53
  }
52
54
  // Override with unified config accounts (takes precedence)
53
55
  for (const [name, account] of Object.entries(unifiedAccounts)) {
56
+ const contextPolicy = (0, account_context_1.resolveAccountContextPolicy)(account);
57
+ const hasExplicitContextMode = account.context_mode === 'isolated' || account.context_mode === 'shared';
58
+ const hasExplicitContinuityMode = account.continuity_mode === 'standard' || account.continuity_mode === 'deeper';
54
59
  merged[name] = {
55
60
  type: 'account',
56
61
  created: account.created,
57
62
  last_used: account.last_used,
58
- context_mode: account.context_mode,
59
- context_group: account.context_group,
63
+ context_mode: contextPolicy.mode,
64
+ context_group: contextPolicy.group,
65
+ continuity_mode: contextPolicy.mode === 'shared' ? contextPolicy.continuityMode : undefined,
66
+ context_inferred: !hasExplicitContextMode,
67
+ continuity_inferred: contextPolicy.mode === 'shared' ? !hasExplicitContinuityMode : undefined,
60
68
  };
61
69
  }
62
70
  // Add CLIProxy OAuth accounts
@@ -68,7 +76,11 @@ router.get('/', (_req, res) => {
68
76
  }
69
77
  // Use unique ID for key to prevent collisions between accounts with same nickname/email
70
78
  const displayName = acct.nickname || acct.email || acct.id;
71
- const key = `${provider}:${acct.id}`;
79
+ const rawKey = `${provider}:${acct.id}`;
80
+ const key = (0, account_route_helpers_1.buildCliproxyAccountKey)(rawKey, merged);
81
+ if (!key) {
82
+ continue;
83
+ }
72
84
  merged[key] = {
73
85
  type: 'cliproxy',
74
86
  provider,
@@ -102,7 +114,7 @@ router.post('/default', (req, res) => {
102
114
  return;
103
115
  }
104
116
  // Check if this is a CLIProxy account (format: "provider:accountId")
105
- const cliproxyKey = parseCliproxyKey(name);
117
+ const cliproxyKey = !hasAuthAccount(name) ? (0, account_route_helpers_1.parseCliproxyKey)(name) : null;
106
118
  if (cliproxyKey) {
107
119
  const success = (0, account_manager_1.setDefaultAccount)(cliproxyKey.provider, cliproxyKey.accountId);
108
120
  if (!success) {
@@ -125,6 +137,120 @@ router.post('/default', (req, res) => {
125
137
  res.status(500).json({ error: error.message });
126
138
  }
127
139
  });
140
+ /**
141
+ * PUT /api/accounts/:name/context - Update account context mode/group
142
+ */
143
+ router.put('/:name/context', async (req, res) => {
144
+ try {
145
+ const { name } = req.params;
146
+ if (!name) {
147
+ res.status(400).json({ error: 'Missing account name' });
148
+ return;
149
+ }
150
+ // CLIProxy OAuth accounts do not support local account context metadata.
151
+ const cliproxyKey = !hasAuthAccount(name) ? (0, account_route_helpers_1.parseCliproxyKey)(name) : null;
152
+ if (cliproxyKey) {
153
+ res
154
+ .status(400)
155
+ .json({ error: `Context mode is not supported for CLIProxy account: ${name}` });
156
+ return;
157
+ }
158
+ const existsUnified = (0, unified_config_loader_1.isUnifiedMode)() && registry.hasAccountUnified(name);
159
+ const existsLegacy = registry.hasProfile(name);
160
+ if (!existsUnified && !existsLegacy) {
161
+ res.status(404).json({ error: `Account not found: ${name}` });
162
+ return;
163
+ }
164
+ const mode = req.body?.context_mode;
165
+ const rawGroup = req.body?.context_group;
166
+ const rawContinuityMode = req.body?.continuity_mode;
167
+ if (mode !== 'isolated' && mode !== 'shared') {
168
+ res.status(400).json({ error: 'Missing or invalid context_mode: expected isolated|shared' });
169
+ return;
170
+ }
171
+ if (mode !== 'shared' && rawGroup !== undefined) {
172
+ res
173
+ .status(400)
174
+ .json({ error: 'Invalid payload: context_group requires context_mode=shared' });
175
+ return;
176
+ }
177
+ if (mode !== 'shared' && rawContinuityMode !== undefined) {
178
+ res
179
+ .status(400)
180
+ .json({ error: 'Invalid payload: continuity_mode requires context_mode=shared' });
181
+ return;
182
+ }
183
+ let normalizedGroup;
184
+ let continuityMode;
185
+ if (mode === 'shared') {
186
+ if (typeof rawGroup !== 'string' || rawGroup.trim().length === 0) {
187
+ res
188
+ .status(400)
189
+ .json({ error: 'Invalid payload: shared context_mode requires non-empty context_group' });
190
+ return;
191
+ }
192
+ normalizedGroup = (0, account_context_1.normalizeContextGroupName)(rawGroup);
193
+ if (!(0, account_context_1.isValidContextGroupName)(normalizedGroup)) {
194
+ res.status(400).json({
195
+ error: 'Invalid context_group. Use letters/numbers/dash/underscore, start with a letter, max 64 chars.',
196
+ });
197
+ return;
198
+ }
199
+ if (rawContinuityMode !== undefined &&
200
+ rawContinuityMode !== 'standard' &&
201
+ rawContinuityMode !== 'deeper') {
202
+ res.status(400).json({
203
+ error: 'Invalid continuity_mode: expected standard|deeper',
204
+ });
205
+ return;
206
+ }
207
+ continuityMode = rawContinuityMode === 'deeper' ? 'deeper' : account_context_1.DEFAULT_ACCOUNT_CONTINUITY_MODE;
208
+ }
209
+ const metadata = mode === 'shared'
210
+ ? {
211
+ context_mode: 'shared',
212
+ context_group: normalizedGroup,
213
+ continuity_mode: continuityMode,
214
+ }
215
+ : {
216
+ context_mode: 'isolated',
217
+ };
218
+ const policy = (0, account_context_1.resolveAccountContextPolicy)(metadata);
219
+ const previousUnified = existsUnified ? registry.getAllAccountsUnified()[name] : undefined;
220
+ const previousLegacy = existsLegacy ? registry.getProfile(name) : undefined;
221
+ try {
222
+ if (existsUnified) {
223
+ registry.updateAccountUnified(name, metadata);
224
+ }
225
+ if (existsLegacy) {
226
+ registry.updateProfile(name, metadata);
227
+ }
228
+ await instanceMgr.ensureInstance(name, policy);
229
+ }
230
+ catch (error) {
231
+ if (existsUnified && previousUnified) {
232
+ registry.updateAccountUnified(name, previousUnified);
233
+ }
234
+ if (existsLegacy && previousLegacy) {
235
+ registry.updateProfile(name, previousLegacy);
236
+ }
237
+ throw error;
238
+ }
239
+ res.json({
240
+ name,
241
+ context_mode: policy.mode,
242
+ context_group: policy.group ?? null,
243
+ continuity_mode: policy.mode === 'shared'
244
+ ? (policy.continuityMode ?? account_context_1.DEFAULT_ACCOUNT_CONTINUITY_MODE)
245
+ : null,
246
+ context_inferred: false,
247
+ continuity_inferred: false,
248
+ });
249
+ }
250
+ catch (error) {
251
+ res.status(500).json({ error: error.message });
252
+ }
253
+ });
128
254
  /**
129
255
  * DELETE /api/accounts/reset-default - Reset to CCS default
130
256
  */
@@ -161,8 +287,15 @@ router.delete('/:name', (req, res) => {
161
287
  return;
162
288
  }
163
289
  // Check if this is a CLIProxy account (format: "provider:accountId")
164
- const cliproxyKey = parseCliproxyKey(name);
290
+ const cliproxyKey = !hasAuthAccount(name) ? (0, account_route_helpers_1.parseCliproxyKey)(name) : null;
165
291
  if (cliproxyKey) {
292
+ const defaultCliproxyAccount = (0, account_manager_1.getDefaultAccount)(cliproxyKey.provider);
293
+ if (defaultCliproxyAccount?.id === cliproxyKey.accountId) {
294
+ res.status(400).json({
295
+ error: `Cannot delete default CLIProxy account: ${name}. Set another default first.`,
296
+ });
297
+ return;
298
+ }
166
299
  const success = (0, account_manager_1.removeAccount)(cliproxyKey.provider, cliproxyKey.accountId);
167
300
  if (!success) {
168
301
  res.status(404).json({ error: `CLIProxy account not found: ${name}` });
@@ -171,19 +304,19 @@ router.delete('/:name', (req, res) => {
171
304
  res.json({ success: true, deleted: name });
172
305
  return;
173
306
  }
174
- // Delete from appropriate config (unified and/or legacy)
175
- let deleted = false;
176
- if ((0, unified_config_loader_1.isUnifiedMode)() && registry.hasAccountUnified(name)) {
307
+ const existsUnified = (0, unified_config_loader_1.isUnifiedMode)() && registry.hasAccountUnified(name);
308
+ const existsLegacy = registry.hasProfile(name);
309
+ if (!existsUnified && !existsLegacy) {
310
+ res.status(404).json({ error: `Account not found: ${name}` });
311
+ return;
312
+ }
313
+ // Match CLI remove ordering: delete instance first, metadata second.
314
+ instanceMgr.deleteInstance(name);
315
+ if (existsUnified) {
177
316
  registry.removeAccountUnified(name);
178
- deleted = true;
179
317
  }
180
- if (registry.hasProfile(name)) {
318
+ if (existsLegacy) {
181
319
  registry.deleteProfile(name);
182
- deleted = true;
183
- }
184
- if (!deleted) {
185
- res.status(404).json({ error: `Account not found: ${name}` });
186
- return;
187
320
  }
188
321
  res.json({ success: true, deleted: name });
189
322
  }