@codemieai/code 0.15.2 → 0.15.3

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 (147) hide show
  1. package/dist/agents/plugins/claude/claude.plugin.d.ts +1 -1
  2. package/dist/agents/plugins/claude/claude.plugin.js +2 -2
  3. package/dist/agents/plugins/claude/claude.session.d.ts +17 -1
  4. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
  5. package/dist/agents/plugins/claude/claude.session.js +4 -0
  6. package/dist/agents/plugins/claude/claude.session.js.map +1 -1
  7. package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts.map +1 -1
  8. package/dist/agents/plugins/opencode/opencode-dynamic-models.js +3 -4
  9. package/dist/agents/plugins/opencode/opencode-dynamic-models.js.map +1 -1
  10. package/dist/agents/plugins/pi/pi.models.d.ts.map +1 -1
  11. package/dist/agents/plugins/pi/pi.models.js +3 -3
  12. package/dist/agents/plugins/pi/pi.models.js.map +1 -1
  13. package/dist/bin/proxy-daemon.js +8 -1
  14. package/dist/bin/proxy-daemon.js.map +1 -1
  15. package/dist/cli/commands/assistants/constants.d.ts +4 -0
  16. package/dist/cli/commands/assistants/constants.d.ts.map +1 -1
  17. package/dist/cli/commands/assistants/constants.js +4 -0
  18. package/dist/cli/commands/assistants/constants.js.map +1 -1
  19. package/dist/cli/commands/assistants/setup/data.d.ts +1 -0
  20. package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -1
  21. package/dist/cli/commands/assistants/setup/data.js +55 -10
  22. package/dist/cli/commands/assistants/setup/data.js.map +1 -1
  23. package/dist/cli/commands/assistants/setup/helpers.d.ts +1 -1
  24. package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
  25. package/dist/cli/commands/assistants/setup/helpers.js +2 -5
  26. package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
  27. package/dist/cli/commands/assistants/setup/index.d.ts +12 -0
  28. package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
  29. package/dist/cli/commands/assistants/setup/index.js +148 -20
  30. package/dist/cli/commands/assistants/setup/index.js.map +1 -1
  31. package/dist/cli/commands/profile/display.d.ts +5 -1
  32. package/dist/cli/commands/profile/display.d.ts.map +1 -1
  33. package/dist/cli/commands/profile/display.js +5 -1
  34. package/dist/cli/commands/profile/display.js.map +1 -1
  35. package/dist/cli/commands/profile/index.d.ts.map +1 -1
  36. package/dist/cli/commands/profile/index.js +7 -4
  37. package/dist/cli/commands/profile/index.js.map +1 -1
  38. package/dist/cli/commands/proxy/connect-orchestrator.d.ts.map +1 -1
  39. package/dist/cli/commands/proxy/connect-orchestrator.js +3 -4
  40. package/dist/cli/commands/proxy/connect-orchestrator.js.map +1 -1
  41. package/dist/cli/commands/proxy/connectors/desktop.d.ts +2 -3
  42. package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
  43. package/dist/cli/commands/proxy/connectors/desktop.js +9 -25
  44. package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
  45. package/dist/cli/commands/proxy/connectors/model-name-resolver.d.ts +19 -0
  46. package/dist/cli/commands/proxy/connectors/model-name-resolver.d.ts.map +1 -0
  47. package/dist/cli/commands/proxy/connectors/model-name-resolver.js +126 -0
  48. package/dist/cli/commands/proxy/connectors/model-name-resolver.js.map +1 -0
  49. package/dist/cli/commands/proxy/connectors/tenant-catalog.d.ts +11 -0
  50. package/dist/cli/commands/proxy/connectors/tenant-catalog.d.ts.map +1 -0
  51. package/dist/cli/commands/proxy/connectors/tenant-catalog.js +108 -0
  52. package/dist/cli/commands/proxy/connectors/tenant-catalog.js.map +1 -0
  53. package/dist/cli/commands/proxy/connectors/vscode-claude-code.d.ts.map +1 -1
  54. package/dist/cli/commands/proxy/connectors/vscode-claude-code.js +49 -19
  55. package/dist/cli/commands/proxy/connectors/vscode-claude-code.js.map +1 -1
  56. package/dist/cli/commands/proxy/connectors/vscode-models.d.ts +3 -3
  57. package/dist/cli/commands/proxy/connectors/vscode-models.d.ts.map +1 -1
  58. package/dist/cli/commands/proxy/connectors/vscode-models.js +28 -28
  59. package/dist/cli/commands/proxy/connectors/vscode-models.js.map +1 -1
  60. package/dist/cli/commands/proxy/connectors/vscode.d.ts +3 -2
  61. package/dist/cli/commands/proxy/connectors/vscode.d.ts.map +1 -1
  62. package/dist/cli/commands/proxy/connectors/vscode.js +78 -39
  63. package/dist/cli/commands/proxy/connectors/vscode.js.map +1 -1
  64. package/dist/cli/commands/shared/headless.d.ts +69 -0
  65. package/dist/cli/commands/shared/headless.d.ts.map +1 -0
  66. package/dist/cli/commands/shared/headless.js +83 -0
  67. package/dist/cli/commands/shared/headless.js.map +1 -0
  68. package/dist/cli/commands/shared/helpers.d.ts +21 -0
  69. package/dist/cli/commands/shared/helpers.d.ts.map +1 -1
  70. package/dist/cli/commands/shared/helpers.js +73 -1
  71. package/dist/cli/commands/shared/helpers.js.map +1 -1
  72. package/dist/cli/commands/shared/identifier-resolution.d.ts +23 -0
  73. package/dist/cli/commands/shared/identifier-resolution.d.ts.map +1 -0
  74. package/dist/cli/commands/shared/identifier-resolution.js +55 -0
  75. package/dist/cli/commands/shared/identifier-resolution.js.map +1 -0
  76. package/dist/cli/commands/skills/setup/data.d.ts +3 -2
  77. package/dist/cli/commands/skills/setup/data.d.ts.map +1 -1
  78. package/dist/cli/commands/skills/setup/data.js +75 -13
  79. package/dist/cli/commands/skills/setup/data.js.map +1 -1
  80. package/dist/cli/commands/skills/setup/helpers.d.ts +1 -1
  81. package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
  82. package/dist/cli/commands/skills/setup/helpers.js +2 -5
  83. package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
  84. package/dist/cli/commands/skills/setup/index.d.ts +17 -1
  85. package/dist/cli/commands/skills/setup/index.d.ts.map +1 -1
  86. package/dist/cli/commands/skills/setup/index.js +190 -19
  87. package/dist/cli/commands/skills/setup/index.js.map +1 -1
  88. package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.d.ts +41 -0
  89. package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.d.ts.map +1 -0
  90. package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.js +115 -0
  91. package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.js.map +1 -0
  92. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts.map +1 -1
  93. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +101 -7
  94. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -1
  95. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.d.ts +4 -0
  96. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.d.ts.map +1 -1
  97. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js +28 -3
  98. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js.map +1 -1
  99. package/dist/providers/plugins/sso/proxy/proxy-types.d.ts +5 -0
  100. package/dist/providers/plugins/sso/proxy/proxy-types.d.ts.map +1 -1
  101. package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
  102. package/dist/providers/plugins/sso/proxy/sso.proxy.js +1 -0
  103. package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
  104. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -1
  105. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js +11 -2
  106. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -1
  107. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
  108. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +2 -1
  109. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
  110. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts +1 -0
  111. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -1
  112. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +30 -6
  113. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -1
  114. package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts.map +1 -1
  115. package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js +33 -3
  116. package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js.map +1 -1
  117. package/dist/telemetry/runtime/DesktopRepositoryResolver.d.ts +58 -0
  118. package/dist/telemetry/runtime/DesktopRepositoryResolver.d.ts.map +1 -0
  119. package/dist/telemetry/runtime/DesktopRepositoryResolver.js +370 -0
  120. package/dist/telemetry/runtime/DesktopRepositoryResolver.js.map +1 -0
  121. package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts +1 -0
  122. package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -1
  123. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +89 -6
  124. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -1
  125. package/dist/telemetry/runtime/types.d.ts +2 -0
  126. package/dist/telemetry/runtime/types.d.ts.map +1 -1
  127. package/dist/utils/auth.d.ts +13 -2
  128. package/dist/utils/auth.d.ts.map +1 -1
  129. package/dist/utils/auth.js +7 -3
  130. package/dist/utils/auth.js.map +1 -1
  131. package/dist/utils/config.d.ts +21 -0
  132. package/dist/utils/config.d.ts.map +1 -1
  133. package/dist/utils/config.js +69 -7
  134. package/dist/utils/config.js.map +1 -1
  135. package/dist/utils/errors.d.ts +14 -0
  136. package/dist/utils/errors.d.ts.map +1 -1
  137. package/dist/utils/errors.js +25 -0
  138. package/dist/utils/errors.js.map +1 -1
  139. package/dist/utils/paths.d.ts +2 -2
  140. package/dist/utils/paths.d.ts.map +1 -1
  141. package/dist/utils/paths.js +11 -9
  142. package/dist/utils/paths.js.map +1 -1
  143. package/dist/utils/processes.d.ts +12 -0
  144. package/dist/utils/processes.d.ts.map +1 -1
  145. package/dist/utils/processes.js +15 -0
  146. package/dist/utils/processes.js.map +1 -1
  147. package/package.json +2 -1
@@ -1,6 +1,7 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
+ import { applyEdits, modify, parse, printParseErrorCode, } from 'jsonc-parser';
4
5
  import { ConfigurationError } from '../../../../utils/errors.js';
5
6
  import { logger } from '../../../../utils/logger.js';
6
7
  import { sanitizeLogArgs } from '../../../../utils/security.js';
@@ -25,9 +26,14 @@ export function getVsCodeClaudeCodeSettingsPath(insiders = false) {
25
26
  }
26
27
  return join(productDir, 'User', 'settings.json');
27
28
  }
29
+ /**
30
+ * Read `settings.json` tolerating the comments and trailing commas VS Code
31
+ * itself writes and accepts (JSONC), instead of the strict `JSON.parse` that
32
+ * previously rejected any hand-edited settings file on its first `//` line.
33
+ */
28
34
  async function readSettings(configPath) {
29
35
  if (!existsSync(configPath))
30
- return {};
36
+ return { settings: {}, raw: '' };
31
37
  let raw;
32
38
  try {
33
39
  raw = await readFile(configPath, 'utf-8');
@@ -37,23 +43,35 @@ async function readSettings(configPath) {
37
43
  `${error instanceof Error ? error.message : String(error)}`);
38
44
  }
39
45
  if (raw.trim().length === 0)
40
- return {};
41
- try {
42
- const parsed = JSON.parse(raw);
43
- if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
44
- throw new ConfigurationError(`VS Code settings must contain a JSON object: ${configPath}`);
45
- }
46
- return parsed;
46
+ return { settings: {}, raw: '' };
47
+ const errors = [];
48
+ const parsed = parse(raw, errors, { allowTrailingComma: true });
49
+ if (errors.length > 0) {
50
+ throw new ConfigurationError(`VS Code settings at ${configPath} could not be read: ` +
51
+ `${printParseErrorCode(errors[0].error)} at offset ${errors[0].offset}. The file was not changed.`);
47
52
  }
48
- catch (error) {
49
- if (error instanceof ConfigurationError)
50
- throw error;
51
- throw new ConfigurationError(`VS Code settings at ${configPath} are not valid JSON and were not changed.`);
53
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
54
+ throw new ConfigurationError(`VS Code settings must contain a JSON object: ${configPath}`);
52
55
  }
56
+ return { settings: parsed, raw };
53
57
  }
54
58
  function isEnvVarEntry(value) {
55
59
  return typeof value === 'object' && value !== null && !Array.isArray(value);
56
60
  }
61
+ /**
62
+ * Detect the indentation and line ending an existing `settings.json` already
63
+ * uses, so `modify()` edits match it instead of jsonc-parser's own default —
64
+ * passing `{}` as `ModificationOptions` leaves `formattingOptions` undefined,
65
+ * which per jsonc-parser's contract inserts the edit completely unformatted
66
+ * (no newline, no indent) rather than falling back to a 4-space/tab default.
67
+ */
68
+ function detectFormattingOptions(raw) {
69
+ const eol = raw.includes('\r\n') ? '\r\n' : '\n';
70
+ const indentMatch = raw.match(/\r?\n([ \t]+)\S/);
71
+ const indent = indentMatch?.[1] ?? ' ';
72
+ const insertSpaces = !indent.startsWith('\t');
73
+ return { insertSpaces, tabSize: insertSpaces ? indent.length : 4, eol };
74
+ }
57
75
  /**
58
76
  * Upsert the two CodeMie-managed entries into an existing `claudeCode.environmentVariables`
59
77
  * value, tolerating a malformed existing value instead of crashing or silently discarding data:
@@ -100,14 +118,26 @@ function upsertManagedEnvVars(existing, gatewayUrl, gatewayKey) {
100
118
  * CodeMie-managed and get overwritten.
101
119
  */
102
120
  export async function writeVsCodeClaudeCodeConfigAtPath(configPath, gatewayUrl, gatewayKey) {
103
- const settings = await readSettings(configPath);
104
- const updatedSettings = {
105
- ...settings,
106
- 'claudeCode.disableLoginPrompt': true,
107
- 'claudeCode.environmentVariables': upsertManagedEnvVars(settings['claudeCode.environmentVariables'], gatewayUrl, gatewayKey),
108
- };
121
+ const { settings, raw } = await readSettings(configPath);
122
+ const envVars = upsertManagedEnvVars(settings['claudeCode.environmentVariables'], gatewayUrl, gatewayKey);
123
+ // An absent/empty file has no formatting worth preserving — fall back to the
124
+ // plain re-serialization path. Otherwise apply targeted edits against the
125
+ // ORIGINAL text so comments and trailing commas the user already had survive.
126
+ let nextText;
127
+ if (raw.trim().length === 0) {
128
+ nextText = `${JSON.stringify({
129
+ ...settings,
130
+ 'claudeCode.disableLoginPrompt': true,
131
+ 'claudeCode.environmentVariables': envVars,
132
+ }, null, '\t')}\n`;
133
+ }
134
+ else {
135
+ const formattingOptions = detectFormattingOptions(raw);
136
+ const afterFirst = applyEdits(raw, modify(raw, ['claudeCode.disableLoginPrompt'], true, { formattingOptions }));
137
+ nextText = applyEdits(afterFirst, modify(afterFirst, ['claudeCode.environmentVariables'], envVars, { formattingOptions }));
138
+ }
109
139
  try {
110
- await writeAtomically(configPath, `${JSON.stringify(updatedSettings, null, '\t')}\n`);
140
+ await writeAtomically(configPath, nextText);
111
141
  }
112
142
  catch (error) {
113
143
  throw new ConfigurationError(`Failed to update VS Code Claude Code settings at ${configPath}: ` +
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-claude-code.js","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode-claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vscode-claude-code.js","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode-claude-code.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export type VsCodeApiType = 'chat-completions' | 'responses' | 'messages';
2
2
  export type VsCodeReasoningEffort = 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
3
- export interface VsCodeModelDefinition {
4
- id: string;
3
+ export interface VsCodeCapabilityEntry {
4
+ family: string;
5
5
  apiType: VsCodeApiType;
6
6
  vision: boolean;
7
7
  thinking: boolean;
@@ -17,5 +17,5 @@ export interface VsCodeModelDefinition {
17
17
  maxInputTokens: number;
18
18
  maxOutputTokens: number;
19
19
  }
20
- export declare const VS_CODE_SUPPORTED_MODELS: readonly VsCodeModelDefinition[];
20
+ export declare const VS_CODE_CAPABILITY_TABLE: readonly VsCodeCapabilityEntry[];
21
21
  //# sourceMappingURL=vscode-models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-models.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode-models.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE1E,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,QAAQ,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,uBAAuB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3D,qBAAqB,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAeD,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAgRpE,CAAC"}
1
+ {"version":3,"file":"vscode-models.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode-models.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE1E,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,QAAQ,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,uBAAuB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3D,qBAAqB,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAeD,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAgRpE,CAAC"}
@@ -10,9 +10,9 @@ const CLAUDE_XHIGH_EFFORTS = ['low', 'medium', 'high', 'xhigh', 'max'];
10
10
  const MESSAGE_AUTH_HEADERS = {
11
11
  Authorization: 'Bearer ${apiKey}',
12
12
  };
13
- export const VS_CODE_SUPPORTED_MODELS = [
13
+ export const VS_CODE_CAPABILITY_TABLE = [
14
14
  {
15
- id: 'claude-sonnet-4-5-20250929',
15
+ family: 'claude-sonnet-4-5',
16
16
  apiType: 'chat-completions',
17
17
  vision: true,
18
18
  thinking: false,
@@ -21,7 +21,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
21
21
  maxOutputTokens: 64000,
22
22
  },
23
23
  {
24
- id: 'gpt-4.1',
24
+ family: 'gpt-4.1',
25
25
  apiType: 'chat-completions',
26
26
  vision: true,
27
27
  thinking: false,
@@ -29,7 +29,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
29
29
  maxOutputTokens: 32768,
30
30
  },
31
31
  {
32
- id: 'gpt-4.1-mini',
32
+ family: 'gpt-4.1-mini',
33
33
  apiType: 'chat-completions',
34
34
  vision: true,
35
35
  thinking: false,
@@ -37,7 +37,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
37
37
  maxOutputTokens: 32768,
38
38
  },
39
39
  {
40
- id: 'gpt-5-2025-08-07',
40
+ family: 'gpt-5',
41
41
  apiType: 'chat-completions',
42
42
  vision: true,
43
43
  thinking: true,
@@ -47,7 +47,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
47
47
  maxOutputTokens: 128000,
48
48
  },
49
49
  {
50
- id: 'gpt-5-mini-2025-08-07',
50
+ family: 'gpt-5-mini',
51
51
  apiType: 'chat-completions',
52
52
  vision: true,
53
53
  thinking: true,
@@ -57,7 +57,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
57
57
  maxOutputTokens: 128000,
58
58
  },
59
59
  {
60
- id: 'gpt-5-nano-2025-08-07',
60
+ family: 'gpt-5-nano',
61
61
  apiType: 'chat-completions',
62
62
  vision: true,
63
63
  thinking: true,
@@ -67,7 +67,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
67
67
  maxOutputTokens: 128000,
68
68
  },
69
69
  {
70
- id: 'gpt-5-2-2025-12-11',
70
+ family: 'gpt-5-2',
71
71
  apiType: 'chat-completions',
72
72
  vision: true,
73
73
  thinking: true,
@@ -77,7 +77,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
77
77
  maxOutputTokens: 128000,
78
78
  },
79
79
  {
80
- id: 'gpt-5.4-2026-03-05',
80
+ family: 'gpt-5.4',
81
81
  apiType: 'chat-completions',
82
82
  vision: true,
83
83
  thinking: true,
@@ -91,7 +91,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
91
91
  // strips deployment-bound encrypted reasoning state while preserving the
92
92
  // selected effort and visible/tool history for load-balanced continuations.
93
93
  {
94
- id: 'gpt-5.5-2026-04-24',
94
+ family: 'gpt-5.5',
95
95
  apiType: 'responses',
96
96
  vision: true,
97
97
  thinking: true,
@@ -102,7 +102,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
102
102
  maxOutputTokens: 128000,
103
103
  },
104
104
  {
105
- id: 'gpt-5.6-luna-2026-07-09',
105
+ family: 'gpt-5.6-luna',
106
106
  apiType: 'responses',
107
107
  vision: true,
108
108
  thinking: true,
@@ -113,7 +113,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
113
113
  maxOutputTokens: 128000,
114
114
  },
115
115
  {
116
- id: 'gpt-5.6-sol-2026-07-09',
116
+ family: 'gpt-5.6-sol',
117
117
  apiType: 'responses',
118
118
  vision: true,
119
119
  thinking: true,
@@ -124,7 +124,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
124
124
  maxOutputTokens: 128000,
125
125
  },
126
126
  {
127
- id: 'gpt-5.6-terra-2026-07-09',
127
+ family: 'gpt-5.6-terra',
128
128
  apiType: 'responses',
129
129
  vision: true,
130
130
  thinking: true,
@@ -135,7 +135,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
135
135
  maxOutputTokens: 128000,
136
136
  },
137
137
  {
138
- id: 'gemini-3-flash',
138
+ family: 'gemini-3-flash',
139
139
  apiType: 'chat-completions',
140
140
  vision: true,
141
141
  thinking: true,
@@ -145,7 +145,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
145
145
  maxOutputTokens: 65536,
146
146
  },
147
147
  {
148
- id: 'gemini-3.1-pro',
148
+ family: 'gemini-3.1-pro',
149
149
  apiType: 'chat-completions',
150
150
  vision: true,
151
151
  thinking: true,
@@ -155,7 +155,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
155
155
  maxOutputTokens: 65536,
156
156
  },
157
157
  {
158
- id: 'gemini-3.5-flash',
158
+ family: 'gemini-3.5-flash',
159
159
  apiType: 'chat-completions',
160
160
  vision: true,
161
161
  thinking: true,
@@ -165,7 +165,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
165
165
  maxOutputTokens: 65536,
166
166
  },
167
167
  {
168
- id: 'claude-4-5-sonnet',
168
+ family: 'claude-4-5-sonnet',
169
169
  apiType: 'chat-completions',
170
170
  vision: true,
171
171
  thinking: false,
@@ -174,7 +174,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
174
174
  maxOutputTokens: 64000,
175
175
  },
176
176
  {
177
- id: 'claude-sonnet-4-6',
177
+ family: 'claude-sonnet-4-6',
178
178
  apiType: 'messages',
179
179
  vision: true,
180
180
  thinking: true,
@@ -185,7 +185,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
185
185
  maxOutputTokens: 64000,
186
186
  },
187
187
  {
188
- id: 'claude-sonnet-5',
188
+ family: 'claude-sonnet-5',
189
189
  apiType: 'messages',
190
190
  vision: true,
191
191
  thinking: true,
@@ -196,7 +196,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
196
196
  maxOutputTokens: 128000,
197
197
  },
198
198
  {
199
- id: 'claude-opus-4-5-20251101',
199
+ family: 'claude-opus-4-5',
200
200
  apiType: 'messages',
201
201
  vision: true,
202
202
  thinking: false,
@@ -206,7 +206,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
206
206
  maxOutputTokens: 64000,
207
207
  },
208
208
  {
209
- id: 'claude-opus-4-6-20260205',
209
+ family: 'claude-opus-4-6',
210
210
  apiType: 'messages',
211
211
  vision: true,
212
212
  thinking: true,
@@ -217,7 +217,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
217
217
  maxOutputTokens: 128000,
218
218
  },
219
219
  {
220
- id: 'claude-opus-4-7',
220
+ family: 'claude-opus-4-7',
221
221
  apiType: 'messages',
222
222
  vision: true,
223
223
  thinking: true,
@@ -228,7 +228,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
228
228
  maxOutputTokens: 128000,
229
229
  },
230
230
  {
231
- id: 'claude-opus-4-8',
231
+ family: 'claude-opus-4-8',
232
232
  apiType: 'messages',
233
233
  vision: true,
234
234
  thinking: true,
@@ -239,7 +239,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
239
239
  maxOutputTokens: 128000,
240
240
  },
241
241
  {
242
- id: 'claude-opus-5',
242
+ family: 'claude-opus-5',
243
243
  apiType: 'messages',
244
244
  vision: true,
245
245
  thinking: true,
@@ -250,7 +250,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
250
250
  maxOutputTokens: 128000,
251
251
  },
252
252
  {
253
- id: 'claude-haiku-4-5-20251001',
253
+ family: 'claude-haiku-4-5',
254
254
  apiType: 'chat-completions',
255
255
  vision: true,
256
256
  thinking: false,
@@ -259,7 +259,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
259
259
  maxOutputTokens: 64000,
260
260
  },
261
261
  {
262
- id: 'qwen.qwen3-coder-30b-a3b-v1',
262
+ family: 'qwen.qwen3-coder-30b-a3b-v1',
263
263
  apiType: 'chat-completions',
264
264
  vision: false,
265
265
  thinking: false,
@@ -267,7 +267,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
267
267
  maxOutputTokens: 16384,
268
268
  },
269
269
  {
270
- id: 'qwen.qwen3-coder-480b-a35b-v1',
270
+ family: 'qwen.qwen3-coder-480b-a35b-v1',
271
271
  apiType: 'chat-completions',
272
272
  vision: false,
273
273
  thinking: false,
@@ -275,7 +275,7 @@ export const VS_CODE_SUPPORTED_MODELS = [
275
275
  maxOutputTokens: 16384,
276
276
  },
277
277
  {
278
- id: 'moonshotai.kimi-k2.5',
278
+ family: 'moonshotai.kimi-k2.5',
279
279
  apiType: 'chat-completions',
280
280
  vision: true,
281
281
  thinking: false,
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-models.js","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode-models.ts"],"names":[],"mappings":"AA6BA,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AACpE,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AACnE,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAChF,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AACnF,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAC3E,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAC9D,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAC1D,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AACrE,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AAChF,MAAM,oBAAoB,GAAG;IAC3B,aAAa,EAAE,kBAAkB;CACzB,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACxE;QACE,EAAE,EAAE,4BAA4B;QAChC,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QAC7B,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,OAAO;QACvB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,OAAO;QACvB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,aAAa;QACtC,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,aAAa;QACtC,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,aAAa;QACtC,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,eAAe;QACxC,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,mBAAmB;QAC5C,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E;QACE,EAAE,EAAE,oBAAoB;QACxB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,IAAI;QAC9B,uBAAuB,EAAE,mBAAmB;QAC5C,qBAAqB,EAAE,WAAW;QAClC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,IAAI;QAC9B,uBAAuB,EAAE,eAAe;QACxC,qBAAqB,EAAE,WAAW;QAClC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,IAAI;QAC9B,uBAAuB,EAAE,eAAe;QACxC,qBAAqB,EAAE,WAAW;QAClC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,IAAI;QAC9B,uBAAuB,EAAE,eAAe;QACxC,qBAAqB,EAAE,WAAW;QAClC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,oBAAoB;QAC7C,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,kBAAkB;QAC3C,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,uBAAuB,EAAE,oBAAoB;QAC7C,qBAAqB,EAAE,kBAAkB;QACzC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QAC7B,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,oBAAoB;QACpC,uBAAuB,EAAE,kBAAkB;QAC3C,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,oBAAoB;QACpC,uBAAuB,EAAE,oBAAoB;QAC7C,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,oBAAoB;QACpC,uBAAuB,EAAE,cAAc;QACvC,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,oBAAoB;QACpC,uBAAuB,EAAE,kBAAkB;QAC3C,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,oBAAoB;QACpC,uBAAuB,EAAE,oBAAoB;QAC7C,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,oBAAoB;QACpC,uBAAuB,EAAE,oBAAoB;QAC7C,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,oBAAoB;QACpC,uBAAuB,EAAE,oBAAoB;QAC7C,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;KACxB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QAC7B,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,6BAA6B;QACjC,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,KAAK;KACvB;CACF,CAAC"}
1
+ {"version":3,"file":"vscode-models.js","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode-models.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  export interface WriteVsCodeConfigResult {
2
2
  configPath: string;
3
3
  requiresSecretConfiguration: boolean;
4
+ modelCount: number;
4
5
  }
5
6
  export declare function isVsCodeSecretReference(value: unknown): value is string;
6
7
  export declare function getVsCodeProductDir(insiders: boolean): string;
7
8
  export declare function getVsCodeLanguageModelsPath(insiders?: boolean): string;
8
9
  export declare function writeAtomically(configPath: string, content: string): Promise<void>;
9
- export declare function writeVsCodeLanguageModelsConfig(proxyUrl: string, insiders?: boolean): Promise<WriteVsCodeConfigResult>;
10
- export declare function writeVsCodeLanguageModelsConfigAtPath(configPath: string, proxyUrl: string): Promise<WriteVsCodeConfigResult>;
10
+ export declare function writeVsCodeLanguageModelsConfig(proxyUrl: string, gatewayKey: string, insiders?: boolean, profileModel?: string): Promise<WriteVsCodeConfigResult>;
11
+ export declare function writeVsCodeLanguageModelsConfigAtPath(configPath: string, proxyUrl: string, gatewayKey: string, profileModel?: string): Promise<WriteVsCodeConfigResult>;
11
12
  //# sourceMappingURL=vscode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vscode.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B,EAAE,OAAO,CAAC;CACtC;AAYD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEvE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAoB7D;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,UAAQ,GAAG,MAAM,CAYpE;AAyGD,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxF;AAED,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACf,OAAO,CAAC,uBAAuB,CAAC,CAKlC;AAED,wBAAsB,qCAAqC,CACzD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,uBAAuB,CAAC,CA6BlC"}
1
+ {"version":3,"file":"vscode.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/vscode.ts"],"names":[],"mappings":"AAgDA,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B,EAAE,OAAO,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAYD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEvE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAoB7D;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,UAAQ,GAAG,MAAM,CAYpE;AAwJD,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxF;AAED,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,UAAQ,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAsB,qCAAqC,CACzD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,uBAAuB,CAAC,CA8BlC"}
@@ -3,7 +3,9 @@ import { mkdir, readFile, rename, stat, unlink, writeFile } from 'node:fs/promis
3
3
  import { homedir } from 'node:os';
4
4
  import { dirname, join } from 'node:path';
5
5
  import { ConfigurationError } from '../../../../utils/errors.js';
6
- import { VS_CODE_SUPPORTED_MODELS, } from './vscode-models.js';
6
+ import { resolveTenantModelId } from './model-name-resolver.js';
7
+ import { fetchTenantModelCatalog } from './tenant-catalog.js';
8
+ import { VS_CODE_CAPABILITY_TABLE, } from './vscode-models.js';
7
9
  const SECRET_REFERENCE_PATTERN = /^\$\{input:chat\.lm\.secret\.[^}]+\}$/;
8
10
  function isRecord(value) {
9
11
  return typeof value === 'object' && value !== null && !Array.isArray(value);
@@ -49,39 +51,75 @@ function getApiPath(apiType) {
49
51
  return '/v1/messages';
50
52
  return '/v1/chat/completions';
51
53
  }
52
- function buildManagedModels(proxyUrl) {
53
- return VS_CODE_SUPPORTED_MODELS.map(definition => {
54
- const model = {
55
- id: definition.id,
56
- name: definition.id,
57
- url: new URL(getApiPath(definition.apiType), proxyUrl).toString(),
58
- apiType: definition.apiType,
59
- toolCalling: true,
60
- vision: definition.vision,
61
- streaming: true,
62
- thinking: definition.thinking,
63
- maxInputTokens: definition.maxInputTokens,
64
- maxOutputTokens: definition.maxOutputTokens,
65
- };
66
- if (definition.adaptiveThinking)
67
- model.adaptiveThinking = true;
68
- if (definition.zeroDataRetentionEnabled !== undefined) {
69
- model.zeroDataRetentionEnabled = definition.zeroDataRetentionEnabled;
70
- }
71
- if (definition.modelOptions)
72
- model.modelOptions = definition.modelOptions;
73
- if (definition.requestHeaders)
74
- model.requestHeaders = definition.requestHeaders;
75
- if (definition.supportsReasoningEffort) {
76
- model.supportsReasoningEffort = definition.supportsReasoningEffort;
77
- }
78
- if (definition.reasoningEffortFormat) {
79
- model.reasoningEffortFormat = definition.reasoningEffortFormat;
80
- }
81
- return model;
82
- });
54
+ function buildManagedModel(entry, tenantId, proxyUrl) {
55
+ const model = {
56
+ id: tenantId,
57
+ name: tenantId,
58
+ url: new URL(getApiPath(entry.apiType), proxyUrl).toString(),
59
+ apiType: entry.apiType,
60
+ toolCalling: true,
61
+ vision: entry.vision,
62
+ streaming: true,
63
+ thinking: entry.thinking,
64
+ maxInputTokens: entry.maxInputTokens,
65
+ maxOutputTokens: entry.maxOutputTokens,
66
+ };
67
+ if (entry.adaptiveThinking)
68
+ model.adaptiveThinking = true;
69
+ if (entry.zeroDataRetentionEnabled !== undefined) {
70
+ model.zeroDataRetentionEnabled = entry.zeroDataRetentionEnabled;
71
+ }
72
+ if (entry.modelOptions)
73
+ model.modelOptions = entry.modelOptions;
74
+ if (entry.requestHeaders)
75
+ model.requestHeaders = entry.requestHeaders;
76
+ if (entry.supportsReasoningEffort) {
77
+ model.supportsReasoningEffort = entry.supportsReasoningEffort;
78
+ }
79
+ if (entry.reasoningEffortFormat) {
80
+ model.reasoningEffortFormat = entry.reasoningEffortFormat;
81
+ }
82
+ return model;
83
+ }
84
+ /**
85
+ * Fetch the tenant's live model catalog and intersect it against the VS Code
86
+ * capability table via {@link resolveTenantModelId}. A capability family with
87
+ * no tenant match is silently dropped — the VS Code Copilot BYOK picker must
88
+ * never offer a model the tenant does not actually serve. Throws when the
89
+ * intersection is empty, mirroring `desktop.ts`'s zero-match throw.
90
+ *
91
+ * When `profileModel` names a model the active profile is pinned to (e.g. a
92
+ * provider-qualified id like `openai.gpt-5.6-sol`), and it resolves against
93
+ * the same tenant catalog, narrow the result to just that one entry instead
94
+ * of offering every family the tenant serves — the picker should show
95
+ * exactly what the profile is configured to use, under its real tenant id,
96
+ * rather than every reachable model. An unrecognized or unset `profileModel`
97
+ * falls back to the full intersected list.
98
+ */
99
+ async function resolveManagedModels(proxyUrl, gatewayKey, profileModel) {
100
+ const catalog = await fetchTenantModelCatalog(proxyUrl, gatewayKey);
101
+ const models = [];
102
+ for (const entry of VS_CODE_CAPABILITY_TABLE) {
103
+ const tenantId = resolveTenantModelId(entry.family, catalog);
104
+ if (!tenantId)
105
+ continue;
106
+ models.push(buildManagedModel(entry, tenantId, proxyUrl));
107
+ }
108
+ if (models.length === 0) {
109
+ throw new ConfigurationError('Local proxy discovered tenant models, but none matched the CodeMie VS Code Copilot capability table.');
110
+ }
111
+ const pinnedModel = profileModel?.trim();
112
+ if (pinnedModel) {
113
+ const pinnedTenantId = resolveTenantModelId(pinnedModel, catalog);
114
+ const pinnedManagedModel = pinnedTenantId
115
+ ? models.find(model => model.id === pinnedTenantId)
116
+ : undefined;
117
+ if (pinnedManagedModel)
118
+ return [pinnedManagedModel];
119
+ }
120
+ return models;
83
121
  }
84
- function mergeManagedProviders(providers, proxyUrl) {
122
+ function mergeManagedProviders(providers, models) {
85
123
  const existingProvider = Object.assign({}, ...providers);
86
124
  const existingSettings = Object.assign({}, ...providers.map(provider => isRecord(provider.settings) ? provider.settings : {}));
87
125
  const existingSecretReference = providers
@@ -92,7 +130,7 @@ function mergeManagedProviders(providers, proxyUrl) {
92
130
  name: 'CodeMie',
93
131
  vendor: 'customendpoint',
94
132
  apiType: 'chat-completions',
95
- models: buildManagedModels(proxyUrl),
133
+ models,
96
134
  };
97
135
  // VS Code owns effort selections. Preserve them instead of racing with the editor.
98
136
  if (Object.keys(existingSettings).length > 0)
@@ -155,18 +193,19 @@ export async function writeAtomically(configPath, content) {
155
193
  throw error;
156
194
  }
157
195
  }
158
- export async function writeVsCodeLanguageModelsConfig(proxyUrl, insiders = false) {
159
- return writeVsCodeLanguageModelsConfigAtPath(getVsCodeLanguageModelsPath(insiders), proxyUrl);
196
+ export async function writeVsCodeLanguageModelsConfig(proxyUrl, gatewayKey, insiders = false, profileModel) {
197
+ return writeVsCodeLanguageModelsConfigAtPath(getVsCodeLanguageModelsPath(insiders), proxyUrl, gatewayKey, profileModel);
160
198
  }
161
- export async function writeVsCodeLanguageModelsConfigAtPath(configPath, proxyUrl) {
199
+ export async function writeVsCodeLanguageModelsConfigAtPath(configPath, proxyUrl, gatewayKey, profileModel) {
162
200
  const providers = await readProviders(configPath);
201
+ const models = await resolveManagedModels(proxyUrl, gatewayKey, profileModel);
163
202
  const managedProviderIndexes = providers
164
203
  .map((provider, index) => isManagedProvider(provider) ? index : -1)
165
204
  .filter(index => index >= 0);
166
205
  const managedProviders = managedProviderIndexes
167
206
  .map(index => providers[index])
168
207
  .filter(isManagedProvider);
169
- const { provider: managedProvider, requiresSecretConfiguration } = mergeManagedProviders(managedProviders, proxyUrl);
208
+ const { provider: managedProvider, requiresSecretConfiguration } = mergeManagedProviders(managedProviders, models);
170
209
  const firstManagedProviderIndex = managedProviderIndexes[0] ?? providers.length;
171
210
  const managedProviderIndexSet = new Set(managedProviderIndexes);
172
211
  const reconciledProviders = providers.flatMap((provider, index) => {
@@ -185,6 +224,6 @@ export async function writeVsCodeLanguageModelsConfigAtPath(configPath, proxyUrl
185
224
  throw new ConfigurationError(`Failed to update VS Code language model configuration at ${configPath}: ` +
186
225
  `${error instanceof Error ? error.message : String(error)}`);
187
226
  }
188
- return { configPath, requiresSecretConfiguration };
227
+ return { configPath, requiresSecretConfiguration, modelCount: models.length };
189
228
  }
190
229
  //# sourceMappingURL=vscode.js.map