@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.
- package/dist/agents/plugins/claude/claude.plugin.d.ts +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +2 -2
- package/dist/agents/plugins/claude/claude.session.d.ts +17 -1
- package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.session.js +4 -0
- package/dist/agents/plugins/claude/claude.session.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js +3 -4
- package/dist/agents/plugins/opencode/opencode-dynamic-models.js.map +1 -1
- package/dist/agents/plugins/pi/pi.models.d.ts.map +1 -1
- package/dist/agents/plugins/pi/pi.models.js +3 -3
- package/dist/agents/plugins/pi/pi.models.js.map +1 -1
- package/dist/bin/proxy-daemon.js +8 -1
- package/dist/bin/proxy-daemon.js.map +1 -1
- package/dist/cli/commands/assistants/constants.d.ts +4 -0
- package/dist/cli/commands/assistants/constants.d.ts.map +1 -1
- package/dist/cli/commands/assistants/constants.js +4 -0
- package/dist/cli/commands/assistants/constants.js.map +1 -1
- package/dist/cli/commands/assistants/setup/data.d.ts +1 -0
- package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/data.js +55 -10
- package/dist/cli/commands/assistants/setup/data.js.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.d.ts +1 -1
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.js +2 -5
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
- package/dist/cli/commands/assistants/setup/index.d.ts +12 -0
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/index.js +148 -20
- package/dist/cli/commands/assistants/setup/index.js.map +1 -1
- package/dist/cli/commands/profile/display.d.ts +5 -1
- package/dist/cli/commands/profile/display.d.ts.map +1 -1
- package/dist/cli/commands/profile/display.js +5 -1
- package/dist/cli/commands/profile/display.js.map +1 -1
- package/dist/cli/commands/profile/index.d.ts.map +1 -1
- package/dist/cli/commands/profile/index.js +7 -4
- package/dist/cli/commands/profile/index.js.map +1 -1
- package/dist/cli/commands/proxy/connect-orchestrator.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connect-orchestrator.js +3 -4
- package/dist/cli/commands/proxy/connect-orchestrator.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.d.ts +2 -3
- package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.js +9 -25
- package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/model-name-resolver.d.ts +19 -0
- package/dist/cli/commands/proxy/connectors/model-name-resolver.d.ts.map +1 -0
- package/dist/cli/commands/proxy/connectors/model-name-resolver.js +126 -0
- package/dist/cli/commands/proxy/connectors/model-name-resolver.js.map +1 -0
- package/dist/cli/commands/proxy/connectors/tenant-catalog.d.ts +11 -0
- package/dist/cli/commands/proxy/connectors/tenant-catalog.d.ts.map +1 -0
- package/dist/cli/commands/proxy/connectors/tenant-catalog.js +108 -0
- package/dist/cli/commands/proxy/connectors/tenant-catalog.js.map +1 -0
- package/dist/cli/commands/proxy/connectors/vscode-claude-code.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/vscode-claude-code.js +49 -19
- package/dist/cli/commands/proxy/connectors/vscode-claude-code.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/vscode-models.d.ts +3 -3
- package/dist/cli/commands/proxy/connectors/vscode-models.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/vscode-models.js +28 -28
- package/dist/cli/commands/proxy/connectors/vscode-models.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/vscode.d.ts +3 -2
- package/dist/cli/commands/proxy/connectors/vscode.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/vscode.js +78 -39
- package/dist/cli/commands/proxy/connectors/vscode.js.map +1 -1
- package/dist/cli/commands/shared/headless.d.ts +69 -0
- package/dist/cli/commands/shared/headless.d.ts.map +1 -0
- package/dist/cli/commands/shared/headless.js +83 -0
- package/dist/cli/commands/shared/headless.js.map +1 -0
- package/dist/cli/commands/shared/helpers.d.ts +21 -0
- package/dist/cli/commands/shared/helpers.d.ts.map +1 -1
- package/dist/cli/commands/shared/helpers.js +73 -1
- package/dist/cli/commands/shared/helpers.js.map +1 -1
- package/dist/cli/commands/shared/identifier-resolution.d.ts +23 -0
- package/dist/cli/commands/shared/identifier-resolution.d.ts.map +1 -0
- package/dist/cli/commands/shared/identifier-resolution.js +55 -0
- package/dist/cli/commands/shared/identifier-resolution.js.map +1 -0
- package/dist/cli/commands/skills/setup/data.d.ts +3 -2
- package/dist/cli/commands/skills/setup/data.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/data.js +75 -13
- package/dist/cli/commands/skills/setup/data.js.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.d.ts +1 -1
- package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.js +2 -5
- package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
- package/dist/cli/commands/skills/setup/index.d.ts +17 -1
- package/dist/cli/commands/skills/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/index.js +190 -19
- package/dist/cli/commands/skills/setup/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.d.ts +41 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.js +115 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-model-resolver.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +101 -7
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.d.ts +4 -0
- package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js +28 -3
- package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts +5 -0
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +1 -0
- package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js +11 -2
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +2 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +30 -6
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js +33 -3
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js.map +1 -1
- package/dist/telemetry/runtime/DesktopRepositoryResolver.d.ts +58 -0
- package/dist/telemetry/runtime/DesktopRepositoryResolver.d.ts.map +1 -0
- package/dist/telemetry/runtime/DesktopRepositoryResolver.js +370 -0
- package/dist/telemetry/runtime/DesktopRepositoryResolver.js.map +1 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts +1 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -1
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +89 -6
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -1
- package/dist/telemetry/runtime/types.d.ts +2 -0
- package/dist/telemetry/runtime/types.d.ts.map +1 -1
- package/dist/utils/auth.d.ts +13 -2
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +7 -3
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/config.d.ts +21 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +69 -7
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/errors.d.ts +14 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +25 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/paths.d.ts +2 -2
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +11 -9
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/processes.d.ts +12 -0
- package/dist/utils/processes.d.ts.map +1 -1
- package/dist/utils/processes.js +15 -0
- package/dist/utils/processes.js.map +1 -1
- 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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
49
|
-
|
|
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
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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,
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAa1F;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAAQ,GAAG,KAAK;IAC9D,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,MAAM,WAAW,GAAG,QAAQ;YAC1B,CAAC,CAAC,gDAAgD;YAClD,CAAC,CAAC,uDAAuD,CAAC;QAC5D,MAAM,IAAI,kBAAkB,CAC1B,GAAG,OAAO,yCAAyC,UAAU,MAAM,WAAW,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC;
|
|
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
|
|
4
|
-
|
|
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
|
|
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,
|
|
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
|
|
13
|
+
export const VS_CODE_CAPABILITY_TABLE = [
|
|
14
14
|
{
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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":"
|
|
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 {
|
|
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
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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,
|
|
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
|
|
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,
|
|
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
|