@kaitranntt/ccs 7.67.0 → 7.68.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/api/services/index.d.ts +1 -0
  2. package/dist/api/services/index.d.ts.map +1 -1
  3. package/dist/api/services/index.js +3 -1
  4. package/dist/api/services/index.js.map +1 -1
  5. package/dist/api/services/local-runtime-readiness.d.ts +14 -0
  6. package/dist/api/services/local-runtime-readiness.d.ts.map +1 -0
  7. package/dist/api/services/local-runtime-readiness.js +89 -0
  8. package/dist/api/services/local-runtime-readiness.js.map +1 -0
  9. package/dist/cliproxy/accounts/types.d.ts +1 -1
  10. package/dist/cliproxy/accounts/types.d.ts.map +1 -1
  11. package/dist/cliproxy/auth-utils.d.ts +2 -1
  12. package/dist/cliproxy/auth-utils.d.ts.map +1 -1
  13. package/dist/cliproxy/auth-utils.js +32 -7
  14. package/dist/cliproxy/auth-utils.js.map +1 -1
  15. package/dist/cliproxy/catalog-routing.d.ts +12 -0
  16. package/dist/cliproxy/catalog-routing.d.ts.map +1 -0
  17. package/dist/cliproxy/catalog-routing.js +19 -0
  18. package/dist/cliproxy/catalog-routing.js.map +1 -0
  19. package/dist/cliproxy/gemini-cli-quota-normalizer.js +1 -1
  20. package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +1 -1
  21. package/dist/cliproxy/managed-model-prefixes.d.ts +7 -0
  22. package/dist/cliproxy/managed-model-prefixes.d.ts.map +1 -0
  23. package/dist/cliproxy/managed-model-prefixes.js +116 -0
  24. package/dist/cliproxy/managed-model-prefixes.js.map +1 -0
  25. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  26. package/dist/cliproxy/model-catalog.js +19 -4
  27. package/dist/cliproxy/model-catalog.js.map +1 -1
  28. package/dist/cliproxy/provider-entitlement-evidence.d.ts +17 -0
  29. package/dist/cliproxy/provider-entitlement-evidence.d.ts.map +1 -0
  30. package/dist/cliproxy/provider-entitlement-evidence.js +55 -0
  31. package/dist/cliproxy/provider-entitlement-evidence.js.map +1 -0
  32. package/dist/cliproxy/provider-entitlement-types.d.ts +16 -0
  33. package/dist/cliproxy/provider-entitlement-types.d.ts.map +1 -0
  34. package/dist/cliproxy/provider-entitlement-types.js +3 -0
  35. package/dist/cliproxy/provider-entitlement-types.js.map +1 -0
  36. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +1 -1
  37. package/dist/cliproxy/quota-fetcher-gemini-cli.js +64 -19
  38. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +1 -1
  39. package/dist/cliproxy/quota-fetcher.d.ts +10 -0
  40. package/dist/cliproxy/quota-fetcher.d.ts.map +1 -1
  41. package/dist/cliproxy/quota-fetcher.js +116 -21
  42. package/dist/cliproxy/quota-fetcher.js.map +1 -1
  43. package/dist/cliproxy/quota-types.d.ts +3 -0
  44. package/dist/cliproxy/quota-types.d.ts.map +1 -1
  45. package/dist/commands/api-command/create-command.d.ts +3 -0
  46. package/dist/commands/api-command/create-command.d.ts.map +1 -1
  47. package/dist/commands/api-command/create-command.js +20 -6
  48. package/dist/commands/api-command/create-command.js.map +1 -1
  49. package/dist/commands/api-command/help.d.ts.map +1 -1
  50. package/dist/commands/api-command/help.js +1 -0
  51. package/dist/commands/api-command/help.js.map +1 -1
  52. package/dist/commands/cliproxy/catalog-subcommand.d.ts.map +1 -1
  53. package/dist/commands/cliproxy/catalog-subcommand.js +60 -6
  54. package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
  55. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  56. package/dist/commands/cliproxy/help-subcommand.js +3 -2
  57. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  58. package/dist/commands/cliproxy/quota-subcommand.d.ts +2 -0
  59. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  60. package/dist/commands/cliproxy/quota-subcommand.js +8 -1
  61. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  62. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  63. package/dist/commands/cliproxy/variant-subcommand.js +44 -3
  64. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  65. package/dist/commands/update-command.d.ts +20 -5
  66. package/dist/commands/update-command.d.ts.map +1 -1
  67. package/dist/commands/update-command.js +169 -119
  68. package/dist/commands/update-command.js.map +1 -1
  69. package/dist/docker/supervisord-lifecycle.d.ts +17 -0
  70. package/dist/docker/supervisord-lifecycle.d.ts.map +1 -0
  71. package/dist/docker/supervisord-lifecycle.js +58 -0
  72. package/dist/docker/supervisord-lifecycle.js.map +1 -0
  73. package/dist/shared/agy-gemini-pro-compatibility.d.ts +15 -0
  74. package/dist/shared/agy-gemini-pro-compatibility.d.ts.map +1 -0
  75. package/dist/shared/agy-gemini-pro-compatibility.js +18 -0
  76. package/dist/shared/agy-gemini-pro-compatibility.js.map +1 -0
  77. package/dist/shared/cliproxy-model-routing.d.ts +45 -0
  78. package/dist/shared/cliproxy-model-routing.d.ts.map +1 -0
  79. package/dist/shared/cliproxy-model-routing.js +144 -0
  80. package/dist/shared/cliproxy-model-routing.js.map +1 -0
  81. package/dist/shared/provider-preset-catalog.d.ts +3 -1
  82. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  83. package/dist/shared/provider-preset-catalog.js +16 -0
  84. package/dist/shared/provider-preset-catalog.js.map +1 -1
  85. package/dist/ui/assets/{accounts-DeuJFkg9.js → accounts-DjL3iVZW.js} +1 -1
  86. package/dist/ui/assets/{alert-dialog-CIh7avyK.js → alert-dialog-Tc_D1a_B.js} +1 -1
  87. package/dist/ui/assets/api-CUtkvXmX.js +4 -0
  88. package/dist/ui/assets/{auth-section-Byn3WNlt.js → auth-section-CuKWQHC7.js} +1 -1
  89. package/dist/ui/assets/{backups-section-Cjxu2uP0.js → backups-section-BKW2pbb9.js} +1 -1
  90. package/dist/ui/assets/{channels-m4LEUo20.js → channels-DvWJMdaq.js} +1 -1
  91. package/dist/ui/assets/{checkbox-BTiURiLD.js → checkbox-B0hZxMK5.js} +1 -1
  92. package/dist/ui/assets/{claude-extension-HVw0lW0B.js → claude-extension-Dfqu-rev.js} +1 -1
  93. package/dist/ui/assets/cliproxy-C9RxW-I8.js +3 -0
  94. package/dist/ui/assets/cliproxy-ai-providers-BXLuuxNf.js +15 -0
  95. package/dist/ui/assets/{cliproxy-control-panel-Bk9j_L8D.js → cliproxy-control-panel-aQ7cCc2U.js} +1 -1
  96. package/dist/ui/assets/{codex-DwZ2fgSg.js → codex-aq4RI6_n.js} +9 -9
  97. package/dist/ui/assets/{confirm-dialog-DEH0IxeO.js → confirm-dialog-CpDk6eu4.js} +1 -1
  98. package/dist/ui/assets/{copilot-CvVEiVk4.js → copilot-CQRpGXvY.js} +2 -2
  99. package/dist/ui/assets/{cursor-bUhF-L0e.js → cursor-BpXPf6qi.js} +1 -1
  100. package/dist/ui/assets/{droid-DclUJQm-.js → droid-Cgx-yLjy.js} +2 -2
  101. package/dist/ui/assets/{globalenv-section-CHrVYu4k.js → globalenv-section-DsNqG1yB.js} +1 -1
  102. package/dist/ui/assets/{health-DPxgprcp.js → health-BY-O-JcA.js} +1 -1
  103. package/dist/ui/assets/icons-KVCk4_U8.js +1 -0
  104. package/dist/ui/assets/index-BmSzf0T9.js +72 -0
  105. package/dist/ui/assets/{index-M221tenZ.js → index-CLGiPB3A.js} +1 -1
  106. package/dist/ui/assets/{index-CH9d--NX.js → index-Cet36v1V.js} +1 -1
  107. package/dist/ui/assets/{index-9Wrepw_v.js → index-DH6L6ybH.js} +1 -1
  108. package/dist/ui/assets/{index-Dqu-oUnM.js → index-DsCjnpco.js} +1 -1
  109. package/dist/ui/assets/{index-CKV57-q1.js → index-TQFuDZdB.js} +1 -1
  110. package/dist/ui/assets/index-teLjoh2T.css +1 -0
  111. package/dist/ui/assets/{logs-BLqOqsjV.js → logs-D5ro-pc7.js} +1 -1
  112. package/dist/ui/assets/{masked-input-CkL1uaIV.js → masked-input-h0XkMSwB.js} +1 -1
  113. package/dist/ui/assets/{proxy-status-widget-vDbXAa_g.js → proxy-status-widget-yBdrFeb7.js} +1 -1
  114. package/dist/ui/assets/{raw-json-settings-editor-panel-DnWe1yut.js → raw-json-settings-editor-panel-Cb7ZInQV.js} +1 -1
  115. package/dist/ui/assets/{searchable-select-Cxn-MaXd.js → searchable-select-D4xr5xKS.js} +1 -1
  116. package/dist/ui/assets/{separator-D8AC7pKi.js → separator-gw5BjIpP.js} +1 -1
  117. package/dist/ui/assets/{shared-BICn93Rc.js → shared-C-VeA1Z9.js} +1 -1
  118. package/dist/ui/assets/{table-ClzIn68q.js → table-Bd4isC18.js} +1 -1
  119. package/dist/ui/assets/{updates-2-RYxjjV.js → updates-DiK8I67C.js} +1 -1
  120. package/dist/ui/index.html +3 -3
  121. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  122. package/dist/utils/hooks/image-analysis-runtime-status.js +5 -1
  123. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  124. package/dist/utils/package-manager-detector.d.ts +30 -4
  125. package/dist/utils/package-manager-detector.d.ts.map +1 -1
  126. package/dist/utils/package-manager-detector.js +247 -60
  127. package/dist/utils/package-manager-detector.js.map +1 -1
  128. package/dist/utils/update-checker.d.ts +1 -1
  129. package/dist/utils/update-checker.d.ts.map +1 -1
  130. package/dist/web-server/index.d.ts.map +1 -1
  131. package/dist/web-server/index.js +9 -0
  132. package/dist/web-server/index.js.map +1 -1
  133. package/dist/web-server/routes/catalog-routes.d.ts.map +1 -1
  134. package/dist/web-server/routes/catalog-routes.js +3 -2
  135. package/dist/web-server/routes/catalog-routes.js.map +1 -1
  136. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  137. package/dist/web-server/routes/cliproxy-auth-routes.js +23 -2
  138. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  139. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  140. package/dist/web-server/routes/cliproxy-stats-routes.js +8 -1
  141. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  142. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  143. package/dist/web-server/routes/profile-routes.js +8 -0
  144. package/dist/web-server/routes/profile-routes.js.map +1 -1
  145. package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts.map +1 -1
  146. package/dist/web-server/services/cliproxy-dashboard-install-service.js +14 -0
  147. package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
  148. package/package.json +1 -1
  149. package/dist/ui/assets/api-C12eUocD.js +0 -4
  150. package/dist/ui/assets/cliproxy-N6hlFUnC.js +0 -3
  151. package/dist/ui/assets/cliproxy-ai-providers-Dx1wGLH_.js +0 -21
  152. package/dist/ui/assets/icons-C4EMu2PL.js +0 -1
  153. package/dist/ui/assets/index-Cmt79H00.js +0 -69
  154. package/dist/ui/assets/index-XjzGg2Bk.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisord-lifecycle.d.ts","sourceRoot":"","sources":["../../src/docker/supervisord-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,gEAAgE;AAChE,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,+EAA+E;AAC/E,wBAAgB,6BAA6B,IAAI;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CASA"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * Supervisord lifecycle helpers for Docker deployments (`ccs docker up`).
4
+ *
5
+ * In Docker, supervisord owns the CLIProxy process lifecycle. Direct
6
+ * stop+start via session-tracker / service-manager creates orphaned
7
+ * processes and causes supervisord to enter FATAL state (EADDRINUSE).
8
+ * All restart operations must delegate to `supervisorctl` instead.
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || function (mod) {
27
+ if (mod && mod.__esModule) return mod;
28
+ var result = {};
29
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
30
+ __setModuleDefault(result, mod);
31
+ return result;
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.restartCliproxyViaSupervisord = exports.isRunningUnderSupervisord = void 0;
35
+ const fs = __importStar(require("fs"));
36
+ const child_process_1 = require("child_process");
37
+ const port_manager_1 = require("../cliproxy/config/port-manager");
38
+ const SUPERVISOR_SOCK = '/var/run/supervisor.sock';
39
+ const SUPERVISOR_CONF = '/etc/supervisord.conf';
40
+ /** True when running inside a supervisord-managed container. */
41
+ function isRunningUnderSupervisord() {
42
+ return fs.existsSync(SUPERVISOR_SOCK);
43
+ }
44
+ exports.isRunningUnderSupervisord = isRunningUnderSupervisord;
45
+ /** Restart the cliproxy program via supervisorctl. Returns port on success. */
46
+ function restartCliproxyViaSupervisord() {
47
+ try {
48
+ (0, child_process_1.execSync)(`supervisorctl -c ${SUPERVISOR_CONF} restart cliproxy`, { timeout: 15000 });
49
+ return { success: true, port: port_manager_1.CLIPROXY_DEFAULT_PORT };
50
+ }
51
+ catch (err) {
52
+ const detail = err instanceof Error ? err.message : String(err);
53
+ console.error(`[cliproxy] supervisorctl restart failed: ${detail}`);
54
+ return { success: false, error: 'supervisorctl restart failed' };
55
+ }
56
+ }
57
+ exports.restartCliproxyViaSupervisord = restartCliproxyViaSupervisord;
58
+ //# sourceMappingURL=supervisord-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisord-lifecycle.js","sourceRoot":"","sources":["../../src/docker/supervisord-lifecycle.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,iDAAyC;AACzC,kEAAwE;AAExE,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,gEAAgE;AAChE,SAAgB,yBAAyB;IACvC,OAAO,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC;AAFD,8DAEC;AAED,+EAA+E;AAC/E,SAAgB,6BAA6B;IAK3C,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,oBAAoB,eAAe,mBAAmB,EAAE,EAAE,OAAO,EAAE,KAAM,EAAE,CAAC,CAAC;QACtF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,oCAAqB,EAAE,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,4CAA4C,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IACnE,CAAC;AACH,CAAC;AAbD,sEAaC"}
@@ -0,0 +1,15 @@
1
+ export declare const AGY_GEMINI_PRO_HIGH_ID = "gemini-3.1-pro-high";
2
+ export declare const AGY_GEMINI_PRO_LOW_ID = "gemini-3.1-pro-low";
3
+ export declare const AGY_GEMINI_PRO_COMPATIBILITY_IDS: Readonly<{
4
+ 'gemini-3-pro-high': string;
5
+ 'gemini-3.1-pro-high': string;
6
+ 'gemini-3-pro-low': string;
7
+ 'gemini-3.1-pro-low': string;
8
+ 'gemini-3-pro-preview': string;
9
+ 'gemini-3-pro-preview-customtools': string;
10
+ 'gemini-3.1-pro-preview': string;
11
+ 'gemini-3.1-pro-preview-customtools': string;
12
+ 'gemini-3-1-pro-preview': string;
13
+ 'gemini-3-1-pro-preview-customtools': string;
14
+ }>;
15
+ //# sourceMappingURL=agy-gemini-pro-compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agy-gemini-pro-compatibility.d.ts","sourceRoot":"","sources":["../../src/shared/agy-gemini-pro-compatibility.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,uBAAuB,CAAC;AAE1D,eAAO,MAAM,gCAAgC;;;;;;;;;;;EAWV,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AGY_GEMINI_PRO_COMPATIBILITY_IDS = exports.AGY_GEMINI_PRO_LOW_ID = exports.AGY_GEMINI_PRO_HIGH_ID = void 0;
4
+ exports.AGY_GEMINI_PRO_HIGH_ID = 'gemini-3.1-pro-high';
5
+ exports.AGY_GEMINI_PRO_LOW_ID = 'gemini-3.1-pro-low';
6
+ exports.AGY_GEMINI_PRO_COMPATIBILITY_IDS = Object.freeze({
7
+ 'gemini-3-pro-high': exports.AGY_GEMINI_PRO_HIGH_ID,
8
+ 'gemini-3.1-pro-high': exports.AGY_GEMINI_PRO_HIGH_ID,
9
+ 'gemini-3-pro-low': exports.AGY_GEMINI_PRO_LOW_ID,
10
+ 'gemini-3.1-pro-low': exports.AGY_GEMINI_PRO_LOW_ID,
11
+ 'gemini-3-pro-preview': exports.AGY_GEMINI_PRO_HIGH_ID,
12
+ 'gemini-3-pro-preview-customtools': exports.AGY_GEMINI_PRO_HIGH_ID,
13
+ 'gemini-3.1-pro-preview': exports.AGY_GEMINI_PRO_HIGH_ID,
14
+ 'gemini-3.1-pro-preview-customtools': exports.AGY_GEMINI_PRO_HIGH_ID,
15
+ 'gemini-3-1-pro-preview': exports.AGY_GEMINI_PRO_HIGH_ID,
16
+ 'gemini-3-1-pro-preview-customtools': exports.AGY_GEMINI_PRO_HIGH_ID,
17
+ });
18
+ //# sourceMappingURL=agy-gemini-pro-compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agy-gemini-pro-compatibility.js","sourceRoot":"","sources":["../../src/shared/agy-gemini-pro-compatibility.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,qBAAqB,CAAC;AAC/C,QAAA,qBAAqB,GAAG,oBAAoB,CAAC;AAE7C,QAAA,gCAAgC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5D,mBAAmB,EAAE,8BAAsB;IAC3C,qBAAqB,EAAE,8BAAsB;IAC7C,kBAAkB,EAAE,6BAAqB;IACzC,oBAAoB,EAAE,6BAAqB;IAC3C,sBAAsB,EAAE,8BAAsB;IAC9C,kCAAkC,EAAE,8BAAsB;IAC1D,wBAAwB,EAAE,8BAAsB;IAChD,oCAAoC,EAAE,8BAAsB;IAC5D,wBAAwB,EAAE,8BAAsB;IAChD,oCAAoC,EAAE,8BAAsB;CAC5B,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ export declare const MANAGED_MODEL_PREFIXES: {
2
+ readonly gemini: "gcli";
3
+ readonly agy: "agy";
4
+ };
5
+ export type ManagedModelPrefixProvider = keyof typeof MANAGED_MODEL_PREFIXES;
6
+ export type ModelRoutingStatus = 'safe' | 'shadowed' | 'prefix-only';
7
+ export interface CatalogLikeModel {
8
+ id: string;
9
+ name?: string;
10
+ }
11
+ export interface CatalogLikeProvider {
12
+ provider: string;
13
+ displayName: string;
14
+ models: CatalogLikeModel[];
15
+ }
16
+ export interface MergedModelLike {
17
+ id: string;
18
+ owned_by?: string;
19
+ type?: string;
20
+ }
21
+ export interface CliproxyModelRoutingHint {
22
+ modelId: string;
23
+ modelName: string;
24
+ prefix: string;
25
+ pinnedModelId: string;
26
+ recommendedModelId: string;
27
+ pinnedAvailable: boolean;
28
+ unprefixedStatus: ModelRoutingStatus;
29
+ effectiveProvider: string | null;
30
+ effectiveDisplayName: string | null;
31
+ effectiveOwnedBy: string | null;
32
+ summary: string;
33
+ }
34
+ export interface CliproxyProviderRoutingHints {
35
+ provider: string;
36
+ displayName: string;
37
+ prefix: string;
38
+ safeCount: number;
39
+ shadowedCount: number;
40
+ prefixOnlyCount: number;
41
+ models: CliproxyModelRoutingHint[];
42
+ }
43
+ export declare function buildCliproxyRoutingHints(catalogs: Partial<Record<string, CatalogLikeProvider>>, mergedModels: MergedModelLike[]): Partial<Record<string, CliproxyProviderRoutingHints>>;
44
+ export declare function getManagedModelPrefix(provider: string): string | null;
45
+ //# sourceMappingURL=cliproxy-model-routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliproxy-model-routing.d.ts","sourceRoot":"","sources":["../../src/shared/cliproxy-model-routing.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,wBAAwB,EAAE,CAAC;CACpC;AAkFD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,EACtD,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,CAiFvD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErE"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getManagedModelPrefix = exports.buildCliproxyRoutingHints = exports.MANAGED_MODEL_PREFIXES = void 0;
4
+ exports.MANAGED_MODEL_PREFIXES = {
5
+ gemini: 'gcli',
6
+ agy: 'agy',
7
+ };
8
+ const PROVIDER_OWNER_HINTS = {
9
+ gemini: ['google'],
10
+ agy: ['antigravity'],
11
+ claude: ['anthropic'],
12
+ codex: ['openai'],
13
+ qwen: ['alibaba', 'qwen'],
14
+ iflow: ['iflow'],
15
+ kimi: ['kimi', 'moonshot'],
16
+ kiro: ['kiro', 'aws'],
17
+ ghcp: ['github', 'copilot'],
18
+ };
19
+ function normalize(value) {
20
+ return typeof value === 'string' ? value.trim().toLowerCase() : '';
21
+ }
22
+ function getManagedPrefix(provider) {
23
+ const normalizedProvider = normalize(provider);
24
+ if (normalizedProvider in exports.MANAGED_MODEL_PREFIXES) {
25
+ return exports.MANAGED_MODEL_PREFIXES[normalizedProvider];
26
+ }
27
+ return null;
28
+ }
29
+ function getDisplayName(provider, catalogs) {
30
+ const normalizedProvider = normalize(provider);
31
+ const catalog = catalogs[normalizedProvider];
32
+ return catalog?.displayName?.trim() || null;
33
+ }
34
+ function inferProvider(model) {
35
+ const type = normalize(model.type);
36
+ const owner = normalize(model.owned_by);
37
+ const directMatches = {
38
+ antigravity: 'agy',
39
+ 'github-copilot': 'ghcp',
40
+ copilot: 'ghcp',
41
+ anthropic: 'claude',
42
+ 'gemini-cli': 'gemini',
43
+ };
44
+ if (type && directMatches[type]) {
45
+ return directMatches[type];
46
+ }
47
+ for (const [provider, hints] of Object.entries(PROVIDER_OWNER_HINTS)) {
48
+ if (hints.some((hint) => type.includes(hint) || owner.includes(hint))) {
49
+ return provider;
50
+ }
51
+ }
52
+ return null;
53
+ }
54
+ function buildSummary(providerDisplayName, hint) {
55
+ if (!hint.pinnedAvailable) {
56
+ return `${hint.modelId} does not currently advertise a live pinned route for ${hint.pinnedModelId}. Reconnect or refresh managed prefixes before treating it as pinned.`;
57
+ }
58
+ if (hint.unprefixedStatus === 'safe') {
59
+ return `${hint.modelId} currently resolves to ${providerDisplayName}. Use ${hint.pinnedModelId} to keep it pinned.`;
60
+ }
61
+ if (hint.unprefixedStatus === 'shadowed' && hint.effectiveDisplayName) {
62
+ return `${hint.modelId} currently resolves to ${hint.effectiveDisplayName}. Use ${hint.pinnedModelId} to force ${providerDisplayName}.`;
63
+ }
64
+ return `${hint.modelId} is not advertised unprefixed right now. Use ${hint.pinnedModelId} to target ${providerDisplayName}.`;
65
+ }
66
+ function buildCliproxyRoutingHints(catalogs, mergedModels) {
67
+ const mergedModelMap = new Map();
68
+ for (const model of mergedModels) {
69
+ const key = normalize(model.id);
70
+ if (key && !mergedModelMap.has(key)) {
71
+ mergedModelMap.set(key, model);
72
+ }
73
+ }
74
+ const result = {};
75
+ for (const [providerKey, catalog] of Object.entries(catalogs)) {
76
+ if (!catalog) {
77
+ continue;
78
+ }
79
+ const prefix = getManagedPrefix(providerKey);
80
+ if (!prefix) {
81
+ continue;
82
+ }
83
+ let safeCount = 0;
84
+ let shadowedCount = 0;
85
+ let prefixOnlyCount = 0;
86
+ const models = catalog.models.map((model) => {
87
+ const pinnedCandidates = mergedModels
88
+ .filter((candidate) => normalize(candidate.id).endsWith(`/${normalize(model.id)}`))
89
+ .filter((candidate) => inferProvider(candidate) === providerKey)
90
+ .map((candidate) => candidate.id)
91
+ .sort((left, right) => left.localeCompare(right));
92
+ const managedPinnedId = `${prefix}/${model.id}`;
93
+ const pinnedAvailable = pinnedCandidates.includes(managedPinnedId);
94
+ const mergedModel = mergedModelMap.get(normalize(model.id));
95
+ const effectiveProvider = mergedModel ? inferProvider(mergedModel) : null;
96
+ const effectiveDisplayName = effectiveProvider && getDisplayName(effectiveProvider, catalogs)
97
+ ? getDisplayName(effectiveProvider, catalogs)
98
+ : mergedModel?.owned_by?.trim() || null;
99
+ let unprefixedStatus = 'prefix-only';
100
+ if (!mergedModel) {
101
+ prefixOnlyCount += 1;
102
+ }
103
+ else if (effectiveProvider === providerKey) {
104
+ unprefixedStatus = 'safe';
105
+ safeCount += 1;
106
+ }
107
+ else {
108
+ unprefixedStatus = 'shadowed';
109
+ shadowedCount += 1;
110
+ }
111
+ const hint = {
112
+ modelId: model.id,
113
+ modelName: model.name?.trim() || model.id,
114
+ prefix,
115
+ pinnedModelId: managedPinnedId,
116
+ recommendedModelId: managedPinnedId,
117
+ pinnedAvailable,
118
+ unprefixedStatus,
119
+ effectiveProvider,
120
+ effectiveDisplayName,
121
+ effectiveOwnedBy: mergedModel?.owned_by?.trim() || null,
122
+ summary: '',
123
+ };
124
+ hint.summary = buildSummary(catalog.displayName, hint);
125
+ return hint;
126
+ });
127
+ result[providerKey] = {
128
+ provider: providerKey,
129
+ displayName: catalog.displayName,
130
+ prefix,
131
+ safeCount,
132
+ shadowedCount,
133
+ prefixOnlyCount,
134
+ models,
135
+ };
136
+ }
137
+ return result;
138
+ }
139
+ exports.buildCliproxyRoutingHints = buildCliproxyRoutingHints;
140
+ function getManagedModelPrefix(provider) {
141
+ return getManagedPrefix(provider);
142
+ }
143
+ exports.getManagedModelPrefix = getManagedModelPrefix;
144
+ //# sourceMappingURL=cliproxy-model-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliproxy-model-routing.js","sourceRoot":"","sources":["../../src/shared/cliproxy-model-routing.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@
5
5
  * backend and UI can import the same source of truth.
6
6
  */
7
7
  export type PresetCategory = 'recommended' | 'alternative';
8
- export declare const PROVIDER_PRESET_IDS: readonly ["openrouter", "alibaba-coding-plan", "ollama", "llamacpp", "anthropic", "glm", "km", "foundry", "mm", "deepseek", "qwen", "ollama-cloud", "novita"];
8
+ export type ProviderPresetTarget = 'claude' | 'droid';
9
+ export declare const PROVIDER_PRESET_IDS: readonly ["openrouter", "alibaba-coding-plan", "huggingface", "ollama", "llamacpp", "anthropic", "glm", "km", "foundry", "mm", "deepseek", "qwen", "ollama-cloud", "novita"];
9
10
  export type ProviderPresetId = (typeof PROVIDER_PRESET_IDS)[number];
10
11
  export interface ProviderPresetDefinition {
11
12
  id: ProviderPresetId;
@@ -18,6 +19,7 @@ export interface ProviderPresetDefinition {
18
19
  apiKeyHint: string;
19
20
  category: PresetCategory;
20
21
  requiresApiKey: boolean;
22
+ defaultTarget?: ProviderPresetTarget;
21
23
  /** Additional env vars for thinking mode, etc. */
22
24
  extraEnv?: Record<string, string>;
23
25
  /** Enable always thinking mode. */
@@ -1 +1 @@
1
- {"version":3,"file":"provider-preset-catalog.d.ts","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAE3D,eAAO,MAAM,mBAAmB,+JActB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mCAAmC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAK7E,CAAC;AA2PH,eAAO,MAAM,2BAA2B,EAAE,SAAS,wBAAwB,EAE1E,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,wBAAwB,EAAE,CAE5E;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG5D"}
1
+ {"version":3,"file":"provider-preset-catalog.d.ts","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAC3D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,eAAO,MAAM,mBAAmB,8KAetB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mCAAmC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAM7E,CAAC;AAyQH,eAAO,MAAM,2BAA2B,EAAE,SAAS,wBAAwB,EAE1E,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,wBAAwB,EAAE,CAE5E;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG5D"}
@@ -10,6 +10,7 @@ exports.normalizeProviderPresetId = exports.createProviderPresetDefinitions = ex
10
10
  exports.PROVIDER_PRESET_IDS = [
11
11
  'openrouter',
12
12
  'alibaba-coding-plan',
13
+ 'huggingface',
13
14
  'ollama',
14
15
  'llamacpp',
15
16
  'anthropic',
@@ -32,6 +33,7 @@ exports.PROVIDER_PRESET_ALIASES = Object.freeze({
32
33
  kimi: 'km',
33
34
  alibaba: 'alibaba-coding-plan',
34
35
  acp: 'alibaba-coding-plan',
36
+ hf: 'huggingface',
35
37
  });
36
38
  const RAW_PROVIDER_PRESET_DEFINITIONS = [
37
39
  {
@@ -109,6 +111,20 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
109
111
  featured: true,
110
112
  icon: '/assets/providers/claude.svg',
111
113
  },
114
+ {
115
+ id: 'huggingface',
116
+ name: 'Hugging Face',
117
+ description: 'Inference Providers router via OpenAI-compatible chat completions',
118
+ baseUrl: 'https://router.huggingface.co/v1',
119
+ defaultProfileName: 'hf',
120
+ defaultModel: 'openai/gpt-oss-120b:fastest',
121
+ apiKeyPlaceholder: 'hf_...',
122
+ apiKeyHint: 'Create a User Access Token at hf.co/settings/tokens',
123
+ category: 'alternative',
124
+ requiresApiKey: true,
125
+ defaultTarget: 'droid',
126
+ badge: 'Router',
127
+ },
112
128
  {
113
129
  id: 'glm',
114
130
  name: 'GLM',
@@ -1 +1 @@
1
- {"version":3,"file":"provider-preset-catalog.js","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-preset-catalog.js","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":"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"}