@kaitranntt/ccs 7.43.0 → 7.44.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 (271) hide show
  1. package/README.md +49 -2
  2. package/config/base-codex.settings.json +4 -4
  3. package/dist/api/services/profile-reader.d.ts.map +1 -1
  4. package/dist/api/services/profile-reader.js +4 -1
  5. package/dist/api/services/profile-reader.js.map +1 -1
  6. package/dist/auth/profile-detector.d.ts +14 -3
  7. package/dist/auth/profile-detector.d.ts.map +1 -1
  8. package/dist/auth/profile-detector.js +35 -15
  9. package/dist/auth/profile-detector.js.map +1 -1
  10. package/dist/ccs.js +34 -4
  11. package/dist/ccs.js.map +1 -1
  12. package/dist/cliproxy/auth/auth-types.d.ts +28 -1
  13. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  14. package/dist/cliproxy/auth/auth-types.js +70 -4
  15. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  16. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  17. package/dist/cliproxy/auth/oauth-handler.js +19 -4
  18. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  19. package/dist/cliproxy/composite-validator.d.ts +20 -0
  20. package/dist/cliproxy/composite-validator.d.ts.map +1 -0
  21. package/dist/cliproxy/composite-validator.js +85 -0
  22. package/dist/cliproxy/composite-validator.js.map +1 -0
  23. package/dist/cliproxy/config/env-builder.d.ts +24 -0
  24. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  25. package/dist/cliproxy/config/env-builder.js +72 -1
  26. package/dist/cliproxy/config/env-builder.js.map +1 -1
  27. package/dist/cliproxy/config/thinking-config.d.ts +19 -2
  28. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
  29. package/dist/cliproxy/config/thinking-config.js +127 -27
  30. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  31. package/dist/cliproxy/executor/env-resolver.d.ts +16 -0
  32. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
  33. package/dist/cliproxy/executor/env-resolver.js +82 -26
  34. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  35. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  36. package/dist/cliproxy/executor/index.js +202 -67
  37. package/dist/cliproxy/executor/index.js.map +1 -1
  38. package/dist/cliproxy/executor/retry-handler.d.ts +11 -0
  39. package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
  40. package/dist/cliproxy/executor/retry-handler.js +30 -1
  41. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  42. package/dist/cliproxy/executor/thinking-arg-parser.d.ts +27 -0
  43. package/dist/cliproxy/executor/thinking-arg-parser.d.ts.map +1 -0
  44. package/dist/cliproxy/executor/thinking-arg-parser.js +80 -0
  45. package/dist/cliproxy/executor/thinking-arg-parser.js.map +1 -0
  46. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  47. package/dist/cliproxy/model-catalog.js +14 -3
  48. package/dist/cliproxy/model-catalog.js.map +1 -1
  49. package/dist/cliproxy/model-config.d.ts.map +1 -1
  50. package/dist/cliproxy/model-config.js +27 -7
  51. package/dist/cliproxy/model-config.js.map +1 -1
  52. package/dist/cliproxy/provider-capabilities.d.ts +22 -0
  53. package/dist/cliproxy/provider-capabilities.d.ts.map +1 -0
  54. package/dist/cliproxy/provider-capabilities.js +95 -0
  55. package/dist/cliproxy/provider-capabilities.js.map +1 -0
  56. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +1 -1
  57. package/dist/cliproxy/quota-fetcher-codex.js +106 -87
  58. package/dist/cliproxy/quota-fetcher-codex.js.map +1 -1
  59. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +1 -1
  60. package/dist/cliproxy/remote-auth-fetcher.js +3 -26
  61. package/dist/cliproxy/remote-auth-fetcher.js.map +1 -1
  62. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  63. package/dist/cliproxy/service-manager.js +3 -6
  64. package/dist/cliproxy/service-manager.js.map +1 -1
  65. package/dist/cliproxy/services/index.d.ts +2 -2
  66. package/dist/cliproxy/services/index.d.ts.map +1 -1
  67. package/dist/cliproxy/services/index.js +4 -1
  68. package/dist/cliproxy/services/index.js.map +1 -1
  69. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +15 -3
  70. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -1
  71. package/dist/cliproxy/services/proxy-lifecycle-service.js +15 -6
  72. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
  73. package/dist/cliproxy/services/variant-config-adapter.d.ts +15 -0
  74. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
  75. package/dist/cliproxy/services/variant-config-adapter.js +84 -11
  76. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  77. package/dist/cliproxy/services/variant-service.d.ts +26 -0
  78. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  79. package/dist/cliproxy/services/variant-service.js +164 -9
  80. package/dist/cliproxy/services/variant-service.js.map +1 -1
  81. package/dist/cliproxy/services/variant-settings.d.ts +19 -1
  82. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  83. package/dist/cliproxy/services/variant-settings.js +150 -12
  84. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  85. package/dist/cliproxy/types.d.ts +13 -0
  86. package/dist/cliproxy/types.d.ts.map +1 -1
  87. package/dist/cliproxy/types.js.map +1 -1
  88. package/dist/commands/cliproxy/auth-subcommand.d.ts.map +1 -1
  89. package/dist/commands/cliproxy/auth-subcommand.js +2 -1
  90. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
  91. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  92. package/dist/commands/cliproxy/help-subcommand.js +4 -0
  93. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  94. package/dist/commands/cliproxy/index.d.ts.map +1 -1
  95. package/dist/commands/cliproxy/index.js +12 -0
  96. package/dist/commands/cliproxy/index.js.map +1 -1
  97. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +9 -0
  98. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -1
  99. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +92 -6
  100. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
  101. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  102. package/dist/commands/cliproxy/quota-subcommand.js +106 -4
  103. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  104. package/dist/commands/cliproxy/variant-subcommand.d.ts +1 -0
  105. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  106. package/dist/commands/cliproxy/variant-subcommand.js +307 -3
  107. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  108. package/dist/commands/command-execution-contract.d.ts +23 -0
  109. package/dist/commands/command-execution-contract.d.ts.map +1 -0
  110. package/dist/commands/command-execution-contract.js +21 -0
  111. package/dist/commands/command-execution-contract.js.map +1 -0
  112. package/dist/commands/cursor-command-display.d.ts +6 -0
  113. package/dist/commands/cursor-command-display.d.ts.map +1 -0
  114. package/dist/commands/cursor-command-display.js +100 -0
  115. package/dist/commands/cursor-command-display.js.map +1 -0
  116. package/dist/commands/cursor-command.d.ts +12 -0
  117. package/dist/commands/cursor-command.d.ts.map +1 -0
  118. package/dist/commands/cursor-command.js +222 -0
  119. package/dist/commands/cursor-command.js.map +1 -0
  120. package/dist/commands/help-command.d.ts.map +1 -1
  121. package/dist/commands/help-command.js +30 -3
  122. package/dist/commands/help-command.js.map +1 -1
  123. package/dist/commands/shell-completion-command.d.ts +20 -0
  124. package/dist/commands/shell-completion-command.d.ts.map +1 -1
  125. package/dist/commands/shell-completion-command.js +45 -30
  126. package/dist/commands/shell-completion-command.js.map +1 -1
  127. package/dist/config/reserved-names.d.ts +1 -1
  128. package/dist/config/reserved-names.d.ts.map +1 -1
  129. package/dist/config/reserved-names.js +2 -0
  130. package/dist/config/reserved-names.js.map +1 -1
  131. package/dist/config/unified-config-loader.d.ts +6 -1
  132. package/dist/config/unified-config-loader.d.ts.map +1 -1
  133. package/dist/config/unified-config-loader.js +63 -3
  134. package/dist/config/unified-config-loader.js.map +1 -1
  135. package/dist/config/unified-config-types.d.ts +79 -2
  136. package/dist/config/unified-config-types.d.ts.map +1 -1
  137. package/dist/config/unified-config-types.js +28 -2
  138. package/dist/config/unified-config-types.js.map +1 -1
  139. package/dist/cursor/cursor-auth.d.ts +58 -0
  140. package/dist/cursor/cursor-auth.d.ts.map +1 -0
  141. package/dist/cursor/cursor-auth.js +295 -0
  142. package/dist/cursor/cursor-auth.js.map +1 -0
  143. package/dist/cursor/cursor-daemon-entry.d.ts +14 -0
  144. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -0
  145. package/dist/cursor/cursor-daemon-entry.js +236 -0
  146. package/dist/cursor/cursor-daemon-entry.js.map +1 -0
  147. package/dist/cursor/cursor-daemon-pid.d.ts +4 -0
  148. package/dist/cursor/cursor-daemon-pid.d.ts.map +1 -0
  149. package/dist/cursor/cursor-daemon-pid.js +77 -0
  150. package/dist/cursor/cursor-daemon-pid.js.map +1 -0
  151. package/dist/cursor/cursor-daemon.d.ts +36 -0
  152. package/dist/cursor/cursor-daemon.d.ts.map +1 -0
  153. package/dist/cursor/cursor-daemon.js +315 -0
  154. package/dist/cursor/cursor-daemon.js.map +1 -0
  155. package/dist/cursor/cursor-executor.d.ts +81 -0
  156. package/dist/cursor/cursor-executor.d.ts.map +1 -0
  157. package/dist/cursor/cursor-executor.js +821 -0
  158. package/dist/cursor/cursor-executor.js.map +1 -0
  159. package/dist/cursor/cursor-models.d.ts +43 -0
  160. package/dist/cursor/cursor-models.d.ts.map +1 -0
  161. package/dist/cursor/cursor-models.js +288 -0
  162. package/dist/cursor/cursor-models.js.map +1 -0
  163. package/dist/cursor/cursor-protobuf-decoder.d.ts +52 -0
  164. package/dist/cursor/cursor-protobuf-decoder.d.ts.map +1 -0
  165. package/dist/cursor/cursor-protobuf-decoder.js +311 -0
  166. package/dist/cursor/cursor-protobuf-decoder.js.map +1 -0
  167. package/dist/cursor/cursor-protobuf-encoder.d.ts +54 -0
  168. package/dist/cursor/cursor-protobuf-encoder.d.ts.map +1 -0
  169. package/dist/cursor/cursor-protobuf-encoder.js +173 -0
  170. package/dist/cursor/cursor-protobuf-encoder.js.map +1 -0
  171. package/dist/cursor/cursor-protobuf-schema.d.ts +215 -0
  172. package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -0
  173. package/dist/cursor/cursor-protobuf-schema.js +120 -0
  174. package/dist/cursor/cursor-protobuf-schema.js.map +1 -0
  175. package/dist/cursor/cursor-protobuf.d.ts +21 -0
  176. package/dist/cursor/cursor-protobuf.d.ts.map +1 -0
  177. package/dist/cursor/cursor-protobuf.js +116 -0
  178. package/dist/cursor/cursor-protobuf.js.map +1 -0
  179. package/dist/cursor/cursor-stream-parser.d.ts +52 -0
  180. package/dist/cursor/cursor-stream-parser.d.ts.map +1 -0
  181. package/dist/cursor/cursor-stream-parser.js +142 -0
  182. package/dist/cursor/cursor-stream-parser.js.map +1 -0
  183. package/dist/cursor/cursor-translator.d.ts +39 -0
  184. package/dist/cursor/cursor-translator.d.ts.map +1 -0
  185. package/dist/cursor/cursor-translator.js +118 -0
  186. package/dist/cursor/cursor-translator.js.map +1 -0
  187. package/dist/cursor/daemon-process-ownership.d.ts +3 -0
  188. package/dist/cursor/daemon-process-ownership.d.ts.map +1 -0
  189. package/dist/cursor/daemon-process-ownership.js +96 -0
  190. package/dist/cursor/daemon-process-ownership.js.map +1 -0
  191. package/dist/cursor/index.d.ts +11 -0
  192. package/dist/cursor/index.d.ts.map +1 -0
  193. package/dist/cursor/index.js +55 -0
  194. package/dist/cursor/index.js.map +1 -0
  195. package/dist/cursor/types.d.ts +80 -0
  196. package/dist/cursor/types.d.ts.map +1 -0
  197. package/dist/cursor/types.js +8 -0
  198. package/dist/cursor/types.js.map +1 -0
  199. package/dist/management/oauth-port-diagnostics.d.ts +4 -7
  200. package/dist/management/oauth-port-diagnostics.d.ts.map +1 -1
  201. package/dist/management/oauth-port-diagnostics.js +12 -23
  202. package/dist/management/oauth-port-diagnostics.js.map +1 -1
  203. package/dist/types/index.d.ts +1 -1
  204. package/dist/types/index.d.ts.map +1 -1
  205. package/dist/types/index.js.map +1 -1
  206. package/dist/ui/assets/{accounts-CkN_roEn.js → accounts-Cr5UiSqw.js} +1 -1
  207. package/dist/ui/assets/{alert-dialog-Dy-8Z_Ud.js → alert-dialog-RKd6P34V.js} +1 -1
  208. package/dist/ui/assets/api-BjsYBaDO.js +1 -0
  209. package/dist/ui/assets/auth-section-DJjkM3Pc.js +1 -0
  210. package/dist/ui/assets/{backups-section-CDuqhiZo.js → backups-section-C3OoH74L.js} +1 -1
  211. package/dist/ui/assets/cliproxy-bUQ9JQSI.js +3 -0
  212. package/dist/ui/assets/{cliproxy-control-panel-DJd_zNR3.js → cliproxy-control-panel-bWG4j7j-.js} +1 -1
  213. package/dist/ui/assets/confirm-dialog-39RkxEsp.js +1 -0
  214. package/dist/ui/assets/copilot-CT5QKd7M.js +3 -0
  215. package/dist/ui/assets/cursor-CgHXk53L.js +1 -0
  216. package/dist/ui/assets/{globalenv-section-Cn5ufgRh.js → globalenv-section-JUD29aAr.js} +1 -1
  217. package/dist/ui/assets/{health-BsMhSeFz.js → health-P6WZCBRj.js} +1 -1
  218. package/dist/ui/assets/{icons-D5eAI-GR.js → icons-DGASzt3M.js} +1 -1
  219. package/dist/ui/assets/{index-CEF_VhSR.js → index-B-T25xBs.js} +1 -1
  220. package/dist/ui/assets/index-BZe6NG3v.js +1 -0
  221. package/dist/ui/assets/{index-B2GQ_Joi.js → index-Bikvb5yX.js} +1 -1
  222. package/dist/ui/assets/index-BteqkOAf.js +47 -0
  223. package/dist/ui/assets/index-ByiEOnlQ.css +1 -0
  224. package/dist/ui/assets/index-CIB-ESXC.js +1 -0
  225. package/dist/ui/assets/{proxy-status-widget-Cb7KfEqq.js → proxy-status-widget-BgJE3cHN.js} +1 -1
  226. package/dist/ui/assets/separator-yty7hz16.js +1 -0
  227. package/dist/ui/assets/{shared-BsWeldW8.js → shared-BxLyXLjd.js} +1 -1
  228. package/dist/ui/assets/sidebar/cursor.svg +1 -0
  229. package/dist/ui/assets/{switch-D6XSRTo_.js → switch-Dq8eo1UY.js} +1 -1
  230. package/dist/ui/index.html +3 -3
  231. package/dist/utils/config-manager.d.ts.map +1 -1
  232. package/dist/utils/config-manager.js +17 -6
  233. package/dist/utils/config-manager.js.map +1 -1
  234. package/dist/web-server/jsonl-parser.js +1 -1
  235. package/dist/web-server/jsonl-parser.js.map +1 -1
  236. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  237. package/dist/web-server/routes/account-routes.js +5 -11
  238. package/dist/web-server/routes/account-routes.js.map +1 -1
  239. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +5 -0
  240. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  241. package/dist/web-server/routes/cliproxy-auth-routes.js +73 -6
  242. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  243. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  244. package/dist/web-server/routes/cliproxy-stats-routes.js +43 -4
  245. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  246. package/dist/web-server/routes/cursor-routes.d.ts +16 -0
  247. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -0
  248. package/dist/web-server/routes/cursor-routes.js +171 -0
  249. package/dist/web-server/routes/cursor-routes.js.map +1 -0
  250. package/dist/web-server/routes/cursor-settings-routes.d.ts +6 -0
  251. package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -0
  252. package/dist/web-server/routes/cursor-settings-routes.js +305 -0
  253. package/dist/web-server/routes/cursor-settings-routes.js.map +1 -0
  254. package/dist/web-server/routes/index.d.ts.map +1 -1
  255. package/dist/web-server/routes/index.js +3 -0
  256. package/dist/web-server/routes/index.js.map +1 -1
  257. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  258. package/dist/web-server/routes/variant-routes.js +107 -6
  259. package/dist/web-server/routes/variant-routes.js.map +1 -1
  260. package/package.json +5 -2
  261. package/scripts/hardening-inventory.js +526 -0
  262. package/scripts/maintainability-baseline.js +309 -0
  263. package/dist/ui/assets/api-2TN7yVwm.js +0 -1
  264. package/dist/ui/assets/auth-section-CeKCNzzC.js +0 -1
  265. package/dist/ui/assets/cliproxy-626zUpA_.js +0 -3
  266. package/dist/ui/assets/confirm-dialog-DtYrWaa7.js +0 -1
  267. package/dist/ui/assets/copilot-DHdywZ9L.js +0 -4
  268. package/dist/ui/assets/index-Bmgylhgn.js +0 -1
  269. package/dist/ui/assets/index-Cr6iEc8x.js +0 -47
  270. package/dist/ui/assets/index-DkMR3J96.js +0 -1
  271. package/dist/ui/assets/index-QvMpU4Lc.css +0 -1
@@ -10,6 +10,26 @@ const unified_config_loader_1 = require("../../config/unified-config-loader");
10
10
  const model_catalog_1 = require("../model-catalog");
11
11
  const thinking_validator_1 = require("../thinking-validator");
12
12
  const ui_1 = require("../../utils/ui");
13
+ /**
14
+ * Normalize model ID for provider capability lookup.
15
+ * Codex may carry effort suffixes in either legacy "(high)" or current "-high" forms.
16
+ */
17
+ function normalizeModelForThinkingLookup(model, provider) {
18
+ const withoutExtendedContext = model.replace(/\[1m\]$/i, '').trim();
19
+ if (provider !== 'codex')
20
+ return withoutExtendedContext;
21
+ // New codex suffix form: gpt-5.3-codex-high -> gpt-5.3-codex
22
+ const codexSuffixMatch = withoutExtendedContext.match(/^(.*)-(xhigh|high|medium)$/i);
23
+ if (codexSuffixMatch?.[1]) {
24
+ return codexSuffixMatch[1].trim();
25
+ }
26
+ // Legacy codex suffix form: gpt-5.3-codex(high) -> gpt-5.3-codex
27
+ const codexLegacyMatch = withoutExtendedContext.match(/^(.*)\((xhigh|high|medium)\)$/i);
28
+ if (codexLegacyMatch?.[1]) {
29
+ return codexLegacyMatch[1].trim();
30
+ }
31
+ return withoutExtendedContext;
32
+ }
13
33
  /**
14
34
  * Check if warnings should be shown based on thinking config.
15
35
  * Defaults to true if show_warnings is not explicitly false.
@@ -39,14 +59,41 @@ exports.detectTierFromModel = detectTierFromModel;
39
59
  * @returns Model name with thinking suffix, e.g., "gemini-3-pro-preview(high)"
40
60
  */
41
61
  function applyThinkingSuffix(model, thinkingValue) {
42
- // Don't apply if model already ends with a parenthesized suffix (e.g., "model(high)" or "model(8192)")
43
- // Matches: ends with "(...)" where content is non-empty
44
- if (/\([^)]+\)$/.test(model)) {
62
+ return applyThinkingSuffixForProvider(model, thinkingValue);
63
+ }
64
+ exports.applyThinkingSuffix = applyThinkingSuffix;
65
+ /**
66
+ * Apply provider-aware thinking suffix to model name.
67
+ * - Most providers: model(level|budget) e.g. "gemini-2.5-pro(high)"
68
+ * - Codex: model-effort e.g. "gpt-5.3-codex-xhigh"
69
+ */
70
+ function applyThinkingSuffixForProvider(model, thinkingValue, provider) {
71
+ const codexEffortRegex = /^(medium|high|xhigh)$/i;
72
+ const codexModelSuffixRegex = /-(medium|high|xhigh)$/i;
73
+ const parenthesizedSuffixMatch = model.match(/\(([^)]+)\)$/);
74
+ // Existing parenthesized suffix:
75
+ // - keep as-is for non-codex providers
76
+ // - for codex effort levels, normalize to codex model suffix style
77
+ if (parenthesizedSuffixMatch) {
78
+ if (provider === 'codex') {
79
+ const normalizedParensValue = parenthesizedSuffixMatch[1]?.trim().toLowerCase() || '';
80
+ if (codexEffortRegex.test(normalizedParensValue)) {
81
+ return model.replace(/\([^)]+\)$/, `-${normalizedParensValue}`);
82
+ }
83
+ }
45
84
  return model;
46
85
  }
86
+ if (provider === 'codex') {
87
+ if (codexModelSuffixRegex.test(model)) {
88
+ return model;
89
+ }
90
+ const normalized = String(thinkingValue).trim().toLowerCase();
91
+ if (codexEffortRegex.test(normalized)) {
92
+ return `${model}-${normalized}`;
93
+ }
94
+ }
47
95
  return `${model}(${thinkingValue})`;
48
96
  }
49
- exports.applyThinkingSuffix = applyThinkingSuffix;
50
97
  /**
51
98
  * Get thinking value for tier based on config.
52
99
  * Respects provider-specific overrides if configured.
@@ -66,25 +113,35 @@ exports.getThinkingValueForTier = getThinkingValueForTier;
66
113
  * Modifies ANTHROPIC_MODEL and tier models with thinking suffixes.
67
114
  *
68
115
  * @param envVars - Environment variables to modify
69
- * @param provider - CLIProxy provider
116
+ * @param provider - CLIProxy provider (default provider for base model)
70
117
  * @param thinkingOverride - Optional CLI override (takes priority over config)
118
+ * @param compositeTierThinking - Optional per-tier thinking overrides for composite variants
119
+ * @param compositeTiers - Optional per-tier provider config for composite variants
71
120
  * @returns Modified env vars with thinking suffixes applied
72
121
  */
73
- function applyThinkingConfig(envVars, provider, thinkingOverride) {
122
+ function applyThinkingConfig(envVars, provider, thinkingOverride, compositeTierThinking, compositeTiers) {
74
123
  const thinkingConfig = (0, unified_config_loader_1.getThinkingConfig)();
75
124
  const result = { ...envVars };
76
125
  // Check if thinking is off
77
126
  if (thinkingConfig.mode === 'off' && thinkingOverride === undefined) {
78
127
  return result;
79
128
  }
129
+ // Explicit "off" (CLI override or manual config override) must disable ALL tier thinking.
130
+ const explicitOffOverride = thinkingOverride === 'off' ||
131
+ (thinkingOverride === undefined &&
132
+ thinkingConfig.mode === 'manual' &&
133
+ thinkingConfig.override === 'off');
134
+ if (explicitOffOverride) {
135
+ return result;
136
+ }
80
137
  // Get base model to check thinking support
81
138
  const baseModel = result.ANTHROPIC_MODEL || '';
82
- if (!(0, model_catalog_1.supportsThinking)(provider, baseModel)) {
83
- // U2: Warn user if they explicitly provided --thinking but model doesn't support it
84
- if (thinkingOverride !== undefined && shouldShowWarnings(thinkingConfig)) {
85
- console.warn((0, ui_1.warn)(`Model ${baseModel || 'unknown'} (provider: ${provider}) does not support thinking budget. --thinking flag ignored.`));
86
- }
87
- return result;
139
+ const normalizedBaseModel = normalizeModelForThinkingLookup(baseModel, provider);
140
+ const baseModelSupportsThinking = (0, model_catalog_1.supportsThinking)(provider, normalizedBaseModel);
141
+ if (!baseModelSupportsThinking &&
142
+ thinkingOverride !== undefined &&
143
+ shouldShowWarnings(thinkingConfig)) {
144
+ console.warn((0, ui_1.warn)(`Model ${baseModel || 'unknown'} (provider: ${provider}) does not support thinking budget. --thinking flag ignored for default model.`));
88
145
  }
89
146
  // Determine thinking value to use
90
147
  let thinkingValue;
@@ -98,25 +155,40 @@ function applyThinkingConfig(envVars, provider, thinkingOverride) {
98
155
  }
99
156
  else if (thinkingConfig.mode === 'auto') {
100
157
  // Auto mode: detect tier and apply default
101
- const tier = detectTierFromModel(baseModel);
102
- thinkingValue = getThinkingValueForTier(tier, provider, thinkingConfig);
158
+ const tier = detectTierFromModel(normalizedBaseModel);
159
+ // Check per-tier config first if composite
160
+ const perTierValue = compositeTierThinking?.[tier];
161
+ if (perTierValue !== undefined) {
162
+ thinkingValue = perTierValue;
163
+ }
164
+ else {
165
+ thinkingValue = getThinkingValueForTier(tier, provider, thinkingConfig);
166
+ }
103
167
  }
104
168
  else {
105
169
  return result; // No thinking to apply
106
170
  }
107
- // Validate thinking value against model capabilities
108
- const validation = (0, thinking_validator_1.validateThinking)(provider, baseModel, thinkingValue);
109
- if (validation.warning && shouldShowWarnings(thinkingConfig)) {
110
- console.warn((0, ui_1.warn)(validation.warning));
171
+ if (baseModelSupportsThinking) {
172
+ // Validate thinking value against default model capabilities.
173
+ const validation = (0, thinking_validator_1.validateThinking)(provider, normalizedBaseModel, thinkingValue);
174
+ if (validation.warning && shouldShowWarnings(thinkingConfig)) {
175
+ console.warn((0, ui_1.warn)(validation.warning));
176
+ }
177
+ thinkingValue = validation.value;
111
178
  }
112
- thinkingValue = validation.value;
113
- // If validation says off, don't apply suffix
179
+ // If auto-detection resolves default tier to "off", skip the main model but still allow
180
+ // explicit per-tier thinking values for other tiers.
114
181
  if (thinkingValue === 'off') {
115
- return result;
182
+ const hasPerTierThinking = compositeTierThinking &&
183
+ Object.values(compositeTierThinking).some((v) => v !== undefined && v !== 'off');
184
+ if (!hasPerTierThinking) {
185
+ return result; // No thinking to apply anywhere
186
+ }
187
+ // Otherwise, continue to process tiers with their own config (skip main model)
116
188
  }
117
- // Apply thinking suffix to main model
118
- if (result.ANTHROPIC_MODEL) {
119
- result.ANTHROPIC_MODEL = applyThinkingSuffix(result.ANTHROPIC_MODEL, thinkingValue);
189
+ else if (baseModelSupportsThinking && result.ANTHROPIC_MODEL) {
190
+ // Apply thinking suffix to main model (only if not off)
191
+ result.ANTHROPIC_MODEL = applyThinkingSuffixForProvider(result.ANTHROPIC_MODEL, thinkingValue, provider);
120
192
  }
121
193
  // Apply to tier models if they support thinking
122
194
  const tierModels = [
@@ -126,15 +198,43 @@ function applyThinkingConfig(envVars, provider, thinkingOverride) {
126
198
  ];
127
199
  for (const tierVar of tierModels) {
128
200
  const model = result[tierVar];
129
- if (model && (0, model_catalog_1.supportsThinking)(provider, model)) {
201
+ if (model) {
130
202
  // Get tier-specific thinking value
131
203
  const tier = tierVar.includes('OPUS')
132
204
  ? 'opus'
133
205
  : tierVar.includes('SONNET')
134
206
  ? 'sonnet'
135
207
  : 'haiku';
136
- const tierThinkingValue = thinkingOverride ?? getThinkingValueForTier(tier, provider, thinkingConfig);
137
- result[tierVar] = applyThinkingSuffix(model, tierThinkingValue);
208
+ // P2 FIX: Use tier-specific provider from compositeTiers for mixed-provider composites
209
+ // Falls back to the default provider if not a composite or tier not specified
210
+ const tierProvider = compositeTiers?.[tier]?.provider ?? provider;
211
+ const normalizedTierModel = normalizeModelForThinkingLookup(model, tierProvider);
212
+ // Check if this tier's model supports thinking (using tier-specific provider)
213
+ if (!(0, model_catalog_1.supportsThinking)(tierProvider, normalizedTierModel)) {
214
+ continue;
215
+ }
216
+ // Priority chain: CLI --thinking > per-tier config > global config > defaults
217
+ let tierThinkingValue;
218
+ if (thinkingOverride !== undefined) {
219
+ // CLI override takes priority
220
+ tierThinkingValue = thinkingOverride;
221
+ }
222
+ else {
223
+ const perTierValue = compositeTierThinking?.[tier];
224
+ if (perTierValue !== undefined) {
225
+ // Per-tier config from composite variant
226
+ tierThinkingValue = perTierValue;
227
+ }
228
+ else {
229
+ // Global config or defaults (use tier-specific provider for provider overrides)
230
+ tierThinkingValue = getThinkingValueForTier(tier, tierProvider, thinkingConfig);
231
+ }
232
+ }
233
+ // If per-tier thinking is 'off', skip this tier
234
+ if (tierThinkingValue === 'off') {
235
+ continue;
236
+ }
237
+ result[tierVar] = applyThinkingSuffixForProvider(model, tierThinkingValue, tierProvider);
138
238
  }
139
239
  }
140
240
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"thinking-config.js","sourceRoot":"","sources":["../../../src/cliproxy/config/thinking-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thinking-config.js","sourceRoot":"","sources":["../../../src/cliproxy/config/thinking-config.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  * - WebSearch and ImageAnalysis hook integration
10
10
  */
11
11
  import { CLIProxyProvider } from '../types';
12
+ import { CompositeTierConfig } from '../../config/unified-config-types';
12
13
  import { CodexReasoningProxy } from '../codex-reasoning-proxy';
13
14
  import { ToolSanitizationProxy } from '../tool-sanitization-proxy';
14
15
  import { HttpsTunnelProxy } from '../https-tunnel-proxy';
@@ -34,6 +35,16 @@ export interface ProxyChainConfig {
34
35
  /** Extended context override: true = force on, false = force off, undefined = auto */
35
36
  extendedContextOverride?: boolean;
36
37
  verbose: boolean;
38
+ /** Composite variant: true when mixing providers per tier */
39
+ isComposite?: boolean;
40
+ /** Composite variant: per-tier provider+model mappings */
41
+ compositeTiers?: {
42
+ opus: CompositeTierConfig;
43
+ sonnet: CompositeTierConfig;
44
+ haiku: CompositeTierConfig;
45
+ };
46
+ /** Composite variant: which tier is the default */
47
+ compositeDefaultTier?: 'opus' | 'sonnet' | 'haiku';
37
48
  }
38
49
  /**
39
50
  * Build final environment variables for Claude CLI execution
@@ -44,4 +55,9 @@ export declare function buildClaudeEnvironment(config: ProxyChainConfig): Record
44
55
  * Log environment configuration for debugging
45
56
  */
46
57
  export declare function logEnvironment(env: Record<string, string>, webSearchEnv: Record<string, string>, verbose: boolean): void;
58
+ /** Apply fallback provider config to env vars for a failed tier */
59
+ export declare function applyFallback(env: Record<string, string>, failedTier: 'opus' | 'sonnet' | 'haiku', fallback: {
60
+ provider: string;
61
+ model: string;
62
+ }): Record<string, string>;
47
63
  //# sourceMappingURL=env-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-resolver.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/executor/env-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,sFAAsF;IACtF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuGvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,EAAE,OAAO,GACf,IAAI,CAgBN"}
1
+ {"version":3,"file":"env-resolver.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/executor/env-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,sFAAsF;IACtF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,mBAAmB,CAAC;QAC1B,MAAM,EAAE,mBAAmB,CAAC;QAC5B,KAAK,EAAE,mBAAmB,CAAC;KAC5B,CAAC;IACF,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmKvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,EAAE,OAAO,GACf,IAAI,CAgBN;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,EACvC,QAAQ,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB"}
@@ -10,7 +10,7 @@
10
10
  * - WebSearch and ImageAnalysis hook integration
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.logEnvironment = exports.buildClaudeEnvironment = void 0;
13
+ exports.applyFallback = exports.logEnvironment = exports.buildClaudeEnvironment = void 0;
14
14
  const config_generator_1 = require("../config-generator");
15
15
  const extended_context_config_1 = require("../config/extended-context-config");
16
16
  const websearch_manager_1 = require("../../utils/websearch-manager");
@@ -20,43 +20,82 @@ const get_image_analysis_hook_env_1 = require("../../utils/hooks/get-image-analy
20
20
  * Handles proxy chain ordering and integration with hooks
21
21
  */
22
22
  function buildClaudeEnvironment(config) {
23
- const { provider, useRemoteProxy, remoteConfig, httpsTunnel, tunnelPort, localPort, customSettingsPath, thinkingOverride, extendedContextOverride, codexReasoningPort, toolSanitizationPort, } = config;
24
- // Build base env vars - remote or local
23
+ const { provider, useRemoteProxy, remoteConfig, httpsTunnel, tunnelPort, localPort, customSettingsPath, thinkingOverride, extendedContextOverride, codexReasoningPort, toolSanitizationPort, isComposite, compositeTiers, compositeDefaultTier, } = config;
24
+ // Build base env vars - check remote mode first
25
25
  let envVars;
26
26
  if (useRemoteProxy && remoteConfig) {
27
27
  if (httpsTunnel && tunnelPort) {
28
- // HTTPS remote via local tunnel - use HTTP to tunnel
29
- envVars = (0, config_generator_1.getRemoteEnvVars)(provider, {
30
- host: '127.0.0.1',
31
- port: tunnelPort,
32
- protocol: 'http', // Tunnel speaks HTTP locally
33
- authToken: remoteConfig.authToken,
34
- }, customSettingsPath);
28
+ // HTTPS remote via local tunnel
29
+ if (isComposite && compositeTiers && compositeDefaultTier) {
30
+ envVars = (0, config_generator_1.getCompositeEnvVars)(compositeTiers, compositeDefaultTier, tunnelPort, customSettingsPath, {
31
+ host: '127.0.0.1',
32
+ port: tunnelPort,
33
+ protocol: 'http',
34
+ authToken: remoteConfig.authToken,
35
+ });
36
+ }
37
+ else {
38
+ envVars = (0, config_generator_1.getRemoteEnvVars)(provider, {
39
+ host: '127.0.0.1',
40
+ port: tunnelPort,
41
+ protocol: 'http', // Tunnel speaks HTTP locally
42
+ authToken: remoteConfig.authToken,
43
+ }, customSettingsPath);
44
+ }
35
45
  }
36
46
  else {
37
47
  // HTTP remote - direct connection
38
- envVars = (0, config_generator_1.getRemoteEnvVars)(provider, {
39
- host: remoteConfig.host,
40
- port: remoteConfig.port,
41
- protocol: remoteConfig.protocol,
42
- authToken: remoteConfig.authToken,
43
- }, customSettingsPath);
48
+ if (isComposite && compositeTiers && compositeDefaultTier) {
49
+ envVars = (0, config_generator_1.getCompositeEnvVars)(compositeTiers, compositeDefaultTier, remoteConfig.port, customSettingsPath, {
50
+ host: remoteConfig.host,
51
+ port: remoteConfig.port,
52
+ protocol: remoteConfig.protocol,
53
+ authToken: remoteConfig.authToken,
54
+ });
55
+ }
56
+ else {
57
+ envVars = (0, config_generator_1.getRemoteEnvVars)(provider, {
58
+ host: remoteConfig.host,
59
+ port: remoteConfig.port,
60
+ protocol: remoteConfig.protocol,
61
+ authToken: remoteConfig.authToken,
62
+ }, customSettingsPath);
63
+ }
44
64
  }
45
65
  }
46
66
  else {
47
67
  // Local proxy mode
48
- const remoteRewriteConfig = remoteConfig
49
- ? {
50
- host: remoteConfig.host,
51
- port: remoteConfig.port,
52
- protocol: remoteConfig.protocol,
53
- authToken: remoteConfig.authToken,
54
- }
55
- : undefined;
56
- envVars = (0, config_generator_1.getEffectiveEnvVars)(provider, localPort, customSettingsPath, remoteRewriteConfig);
68
+ if (isComposite && compositeTiers && compositeDefaultTier) {
69
+ envVars = (0, config_generator_1.getCompositeEnvVars)(compositeTiers, compositeDefaultTier, localPort, customSettingsPath);
70
+ }
71
+ else {
72
+ const remoteRewriteConfig = remoteConfig
73
+ ? {
74
+ host: remoteConfig.host,
75
+ port: remoteConfig.port,
76
+ protocol: remoteConfig.protocol,
77
+ authToken: remoteConfig.authToken,
78
+ }
79
+ : undefined;
80
+ envVars = (0, config_generator_1.getEffectiveEnvVars)(provider, localPort, customSettingsPath, remoteRewriteConfig);
81
+ }
82
+ }
83
+ // Extract per-tier thinking from composite config
84
+ let compositeTierThinking;
85
+ if (isComposite && compositeTiers) {
86
+ const tierThinking = {};
87
+ if (compositeTiers.opus?.thinking)
88
+ tierThinking.opus = compositeTiers.opus.thinking;
89
+ if (compositeTiers.sonnet?.thinking)
90
+ tierThinking.sonnet = compositeTiers.sonnet.thinking;
91
+ if (compositeTiers.haiku?.thinking)
92
+ tierThinking.haiku = compositeTiers.haiku.thinking;
93
+ if (Object.keys(tierThinking).length > 0) {
94
+ compositeTierThinking = tierThinking;
95
+ }
57
96
  }
58
97
  // Apply thinking configuration to model (auto tier-based or manual override)
59
- (0, config_generator_1.applyThinkingConfig)(envVars, provider, thinkingOverride);
98
+ envVars = (0, config_generator_1.applyThinkingConfig)(envVars, provider, thinkingOverride, compositeTierThinking, compositeTiers);
60
99
  // Apply extended context suffix for 1M token context window
61
100
  // Auto-enabled for Gemini, opt-in for Claude (--1m flag)
62
101
  (0, extended_context_config_1.applyExtendedContextConfig)(envVars, provider, extendedContextOverride);
@@ -107,4 +146,21 @@ function logEnvironment(env, webSearchEnv, verbose) {
107
146
  }
108
147
  }
109
148
  exports.logEnvironment = logEnvironment;
149
+ /** Apply fallback provider config to env vars for a failed tier */
150
+ function applyFallback(env, failedTier, fallback) {
151
+ const tierEnvMap = {
152
+ opus: 'ANTHROPIC_DEFAULT_OPUS_MODEL',
153
+ sonnet: 'ANTHROPIC_DEFAULT_SONNET_MODEL',
154
+ haiku: 'ANTHROPIC_DEFAULT_HAIKU_MODEL',
155
+ };
156
+ const result = { ...env };
157
+ const originalModel = result[tierEnvMap[failedTier]];
158
+ result[tierEnvMap[failedTier]] = fallback.model;
159
+ // If failed tier is default tier, also update ANTHROPIC_MODEL
160
+ if (result.ANTHROPIC_MODEL === originalModel) {
161
+ result.ANTHROPIC_MODEL = fallback.model;
162
+ }
163
+ return result;
164
+ }
165
+ exports.applyFallback = applyFallback;
110
166
  //# sourceMappingURL=env-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-resolver.js","sourceRoot":"","sources":["../../../src/cliproxy/executor/env-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,0DAAiG;AACjG,+EAA+E;AAE/E,qEAAoE;AACpE,+FAAwF;AA8BxF;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,MAAwB;IAC7D,MAAM,EACJ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,GACrB,GAAG,MAAM,CAAC;IAEX,wCAAwC;IACxC,IAAI,OAA0B,CAAC;IAE/B,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC9B,qDAAqD;YACrD,OAAO,GAAG,IAAA,mCAAgB,EACxB,QAAQ,EACR;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,MAAM,EAAE,6BAA6B;gBAC/C,SAAS,EAAE,YAAY,CAAC,SAAS;aAClC,EACD,kBAAkB,CACnB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,OAAO,GAAG,IAAA,mCAAgB,EACxB,QAAQ,EACR;gBACE,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;aAClC,EACD,kBAAkB,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,mBAAmB,GAAG,YAAY;YACtC,CAAC,CAAC;gBACE,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;aAClC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,GAAG,IAAA,sCAAmB,EAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IAC9F,CAAC;IAED,6EAA6E;IAC7E,IAAA,sCAAmB,EAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEzD,4DAA4D;IAC5D,yDAAyD;IACzD,IAAA,oDAA0B,EAAC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAEvE,iEAAiE;IACjE,uFAAuF;IACvF,IAAI,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAE9C,IAAI,oBAAoB,EAAE,CAAC;QACzB,YAAY,GAAG,oBAAoB,oBAAoB,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,kEAAkE;QAClE,YAAY,GAAG,oBAAoB,kBAAkB,qBAAqB,CAAC;IAC7E,CAAC;IAED,MAAM,gBAAgB,GAAG;QACvB,GAAG,OAAO;QACV,kBAAkB,EAAE,YAAY;KACjC,CAAC;IAEF,iCAAiC;IACjC,MAAM,YAAY,GAAG,IAAA,uCAAmB,GAAE,CAAC;IAC3C,MAAM,gBAAgB,GAAG,IAAA,qDAAuB,EAAC,QAAQ,CAAC,CAAC;IAE3D,4DAA4D;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CACrC,CAAC;IAE5B,MAAM,wBAAwB,GAAG,MAAM,CAAC,WAAW,CACjD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAC1C,CAAC;IAE5B,OAAO;QACL,GAAG,OAAO;QACV,GAAG,wBAAwB;QAC3B,GAAG,YAAY;QACf,GAAG,gBAAgB;QACnB,gBAAgB,EAAE,UAAU,EAAE,0DAA0D;KACzF,CAAC;AACJ,CAAC;AAvGD,wDAuGC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,GAA2B,EAC3B,YAAoC,EACpC,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IAEhE,GAAG,CAAC,kCAAkC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChE,GAAG,CAAC,+BAA+B,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1D,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,qCAAqC;IACrC,IAAI,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACpF,GAAG,CAAC,+DAA+D,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AApBD,wCAoBC"}
1
+ {"version":3,"file":"env-resolver.js","sourceRoot":"","sources":["../../../src/cliproxy/executor/env-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/executor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH,OAAO,EAAE,gBAAgB,EAAwC,cAAc,EAAE,MAAM,UAAU,CAAC;AAkDlG;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,CAitBf;AAGD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/executor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH,OAAO,EAAE,gBAAgB,EAAwC,cAAc,EAAE,MAAM,UAAU,CAAC;AAoDlG;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,CA+1Bf;AAGD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,eAAe,sBAAsB,CAAC"}