theclawbay 0.3.87 → 0.4.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.
- package/README.md +3 -2
- package/dist/commands/logout.js +82 -1466
- package/dist/commands/setup.js +143 -3604
- package/dist/lib/base-command.js +7 -5
- package/dist/lib/clients/aider-cleanup.d.ts +1 -0
- package/dist/lib/clients/aider-cleanup.js +15 -0
- package/dist/lib/clients/aider.d.ts +14 -0
- package/dist/lib/clients/aider.js +57 -0
- package/dist/lib/clients/claude-cleanup.d.ts +2 -0
- package/dist/lib/clients/claude-cleanup.js +88 -0
- package/dist/lib/clients/claude.d.ts +49 -0
- package/dist/lib/clients/claude.js +400 -0
- package/dist/lib/clients/cline-cleanup.d.ts +1 -0
- package/dist/lib/clients/cline-cleanup.js +80 -0
- package/dist/lib/clients/cline.d.ts +15 -0
- package/dist/lib/clients/cline.js +73 -0
- package/dist/lib/clients/codex-cleanup.d.ts +7 -0
- package/dist/lib/clients/codex-cleanup.js +145 -0
- package/dist/lib/clients/codex.d.ts +28 -0
- package/dist/lib/clients/codex.js +176 -0
- package/dist/lib/clients/continue-cleanup.d.ts +1 -0
- package/dist/lib/clients/continue-cleanup.js +40 -0
- package/dist/lib/clients/continue.d.ts +22 -0
- package/dist/lib/clients/continue.js +81 -0
- package/dist/lib/clients/gsd-cleanup.d.ts +4 -0
- package/dist/lib/clients/gsd-cleanup.js +168 -0
- package/dist/lib/clients/gsd.d.ts +30 -0
- package/dist/lib/clients/gsd.js +136 -0
- package/dist/lib/clients/hermes-cleanup.d.ts +2 -0
- package/dist/lib/clients/hermes-cleanup.js +112 -0
- package/dist/lib/clients/hermes.d.ts +18 -0
- package/dist/lib/clients/hermes.js +145 -0
- package/dist/lib/clients/openclaw-cleanup.d.ts +1 -0
- package/dist/lib/clients/openclaw-cleanup.js +52 -0
- package/dist/lib/clients/openclaw.d.ts +34 -0
- package/dist/lib/clients/openclaw.js +100 -0
- package/dist/lib/clients/opencode-family-cleanup.d.ts +12 -0
- package/dist/lib/clients/opencode-family-cleanup.js +201 -0
- package/dist/lib/clients/opencode-family.d.ts +86 -0
- package/dist/lib/clients/opencode-family.js +433 -0
- package/dist/lib/clients/roo-cleanup.d.ts +1 -0
- package/dist/lib/clients/roo-cleanup.js +48 -0
- package/dist/lib/clients/roo.d.ts +21 -0
- package/dist/lib/clients/roo.js +91 -0
- package/dist/lib/clients/trae-cleanup.d.ts +2 -0
- package/dist/lib/clients/trae-cleanup.js +40 -0
- package/dist/lib/clients/trae.d.ts +27 -0
- package/dist/lib/clients/trae.js +118 -0
- package/dist/lib/clients/zo.d.ts +39 -0
- package/dist/lib/clients/zo.js +210 -0
- package/dist/lib/shared/backend.d.ts +31 -0
- package/dist/lib/shared/backend.js +273 -0
- package/dist/lib/shared/client-registry.d.ts +23 -0
- package/dist/lib/shared/client-registry.js +68 -0
- package/dist/lib/shared/editor-env-cleanup.d.ts +2 -0
- package/dist/lib/shared/editor-env-cleanup.js +86 -0
- package/dist/lib/shared/editor-env.d.ts +27 -0
- package/dist/lib/shared/editor-env.js +224 -0
- package/dist/lib/shared/env-persist-cleanup.d.ts +4 -0
- package/dist/lib/shared/env-persist-cleanup.js +77 -0
- package/dist/lib/shared/env-persist.d.ts +26 -0
- package/dist/lib/shared/env-persist.js +179 -0
- package/dist/lib/shared/format.d.ts +5 -0
- package/dist/lib/shared/format.js +48 -0
- package/dist/lib/shared/fsx-cleanup.d.ts +3 -0
- package/dist/lib/shared/fsx-cleanup.js +36 -0
- package/dist/lib/shared/fsx.d.ts +9 -0
- package/dist/lib/shared/fsx.js +103 -0
- package/dist/lib/shared/models.d.ts +60 -0
- package/dist/lib/shared/models.js +124 -0
- package/dist/lib/shared/platform.d.ts +16 -0
- package/dist/lib/shared/platform.js +116 -0
- package/dist/lib/shared/prompts.d.ts +29 -0
- package/dist/lib/shared/prompts.js +504 -0
- package/dist/lib/shared/providers.d.ts +3 -0
- package/dist/lib/shared/providers.js +8 -0
- package/dist/lib/shared/toml.d.ts +7 -0
- package/dist/lib/shared/toml.js +157 -0
- package/dist/lib/shared/tui.d.ts +42 -0
- package/dist/lib/shared/tui.js +173 -0
- package/dist/lib/shared/urls.d.ts +18 -0
- package/dist/lib/shared/urls.js +149 -0
- package/dist/lib/supported-models.d.ts +1 -1
- package/dist/lib/supported-models.js +1 -1
- package/package.json +1 -6
- package/theclawbay-supported-models.json +202 -5
package/dist/lib/base-command.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.BaseCommand = void 0;
|
|
|
4
4
|
const core_1 = require("@oclif/core");
|
|
5
5
|
const errors_1 = require("./errors");
|
|
6
6
|
const update_check_1 = require("./update-check");
|
|
7
|
+
const tui_1 = require("./shared/tui");
|
|
7
8
|
class BaseCommand extends core_1.Command {
|
|
8
9
|
async runSafe(action) {
|
|
9
10
|
try {
|
|
@@ -43,12 +44,13 @@ class BaseCommand extends core_1.Command {
|
|
|
43
44
|
const render = (prefix) => {
|
|
44
45
|
process.stdout.write(`\r\x1b[2K${prefix} ${message}`);
|
|
45
46
|
};
|
|
47
|
+
const spinnerFrame = () => tui_1.tint.accent(frames[frameIndex] ?? frames[0] ?? "•");
|
|
46
48
|
const ensureTimer = () => {
|
|
47
49
|
if (timer)
|
|
48
50
|
return;
|
|
49
51
|
timer = setInterval(() => {
|
|
50
52
|
frameIndex = (frameIndex + 1) % frames.length;
|
|
51
|
-
render(
|
|
53
|
+
render(spinnerFrame());
|
|
52
54
|
}, 80);
|
|
53
55
|
if (typeof timer.unref === "function")
|
|
54
56
|
timer.unref();
|
|
@@ -63,20 +65,20 @@ class BaseCommand extends core_1.Command {
|
|
|
63
65
|
update(nextMessage) {
|
|
64
66
|
message = nextMessage;
|
|
65
67
|
ensureTimer();
|
|
66
|
-
render(
|
|
68
|
+
render(spinnerFrame());
|
|
67
69
|
},
|
|
68
70
|
succeed(nextMessage) {
|
|
69
71
|
if (nextMessage)
|
|
70
|
-
message = nextMessage;
|
|
72
|
+
message = tui_1.tint.bold(nextMessage);
|
|
71
73
|
clearTimer();
|
|
72
|
-
render(
|
|
74
|
+
render(tui_1.tint.green(tui_1.glyph.tick));
|
|
73
75
|
process.stdout.write("\n");
|
|
74
76
|
},
|
|
75
77
|
fail(nextMessage) {
|
|
76
78
|
if (nextMessage)
|
|
77
79
|
message = nextMessage;
|
|
78
80
|
clearTimer();
|
|
79
|
-
render(
|
|
81
|
+
render(tui_1.tint.red(tui_1.glyph.cross));
|
|
80
82
|
process.stdout.write("\n");
|
|
81
83
|
},
|
|
82
84
|
stop() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cleanupAiderConfig(): Promise<boolean>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cleanupAiderConfig = cleanupAiderConfig;
|
|
4
|
+
const fsx_1 = require("../shared/fsx");
|
|
5
|
+
const aider_1 = require("./aider");
|
|
6
|
+
const fsx_cleanup_1 = require("../shared/fsx-cleanup");
|
|
7
|
+
// Extracted from src/commands/logout.ts (theclawbay CLI restructure).
|
|
8
|
+
// Code motion only: bodies are verbatim from the original file.
|
|
9
|
+
async function cleanupAiderConfig() {
|
|
10
|
+
const existing = await (0, fsx_1.readFileIfExists)(aider_1.AIDER_CONFIG_PATH);
|
|
11
|
+
if (existing === null)
|
|
12
|
+
return false;
|
|
13
|
+
const next = (0, fsx_1.removeManagedBlock)(existing, aider_1.AIDER_MANAGED_START, aider_1.AIDER_MANAGED_END);
|
|
14
|
+
return (0, fsx_cleanup_1.writeIfChanged)(aider_1.AIDER_CONFIG_PATH, next, existing);
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const DEFAULT_AIDER_MODEL: string;
|
|
2
|
+
export declare const AIDER_CONFIG_PATH: string;
|
|
3
|
+
export declare const AIDER_MANAGED_START = "# theclawbay-aider-managed:start";
|
|
4
|
+
export declare const AIDER_MANAGED_END = "# theclawbay-aider-managed:end";
|
|
5
|
+
export declare function detectAiderClient(): Promise<boolean>;
|
|
6
|
+
export declare function writeAiderConfig(params: {
|
|
7
|
+
backendUrl: string;
|
|
8
|
+
model: string;
|
|
9
|
+
models?: Array<{
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
}>;
|
|
13
|
+
apiKey: string;
|
|
14
|
+
}): Promise<string>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AIDER_MANAGED_END = exports.AIDER_MANAGED_START = exports.AIDER_CONFIG_PATH = exports.DEFAULT_AIDER_MODEL = void 0;
|
|
7
|
+
exports.detectAiderClient = detectAiderClient;
|
|
8
|
+
exports.writeAiderConfig = writeAiderConfig;
|
|
9
|
+
const models_1 = require("../shared/models");
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
12
|
+
const platform_1 = require("../shared/platform");
|
|
13
|
+
const fsx_1 = require("../shared/fsx");
|
|
14
|
+
const urls_1 = require("../shared/urls");
|
|
15
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
16
|
+
// Extracted from src/commands/setup.ts (theclawbay CLI restructure).
|
|
17
|
+
// Code motion only: bodies are verbatim from the original file.
|
|
18
|
+
exports.DEFAULT_AIDER_MODEL = models_1.DEFAULT_CODEX_MODEL;
|
|
19
|
+
exports.AIDER_CONFIG_PATH = node_path_1.default.join(node_os_1.default.homedir(), ".aider.conf.yml");
|
|
20
|
+
exports.AIDER_MANAGED_START = "# theclawbay-aider-managed:start";
|
|
21
|
+
exports.AIDER_MANAGED_END = "# theclawbay-aider-managed:end";
|
|
22
|
+
async function detectAiderClient() {
|
|
23
|
+
if ((0, platform_1.hasCommand)("aider"))
|
|
24
|
+
return true;
|
|
25
|
+
const candidates = [
|
|
26
|
+
exports.AIDER_CONFIG_PATH,
|
|
27
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".aider.conf.yaml"),
|
|
28
|
+
node_path_1.default.join(process.cwd(), ".aider.conf.yml"),
|
|
29
|
+
node_path_1.default.join(process.cwd(), ".aider.chat.history.md"),
|
|
30
|
+
];
|
|
31
|
+
for (const candidate of candidates) {
|
|
32
|
+
if (await (0, fsx_1.pathExists)(candidate))
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
async function writeAiderConfig(params) {
|
|
38
|
+
const existing = (await (0, fsx_1.readFileIfExists)(exports.AIDER_CONFIG_PATH)) ?? "";
|
|
39
|
+
const cleaned = (0, fsx_1.removeManagedBlock)(existing, exports.AIDER_MANAGED_START, exports.AIDER_MANAGED_END);
|
|
40
|
+
// Aliases let users switch with `/model <id>` without the openai/ prefix.
|
|
41
|
+
const aliasModels = (params.models ?? []).filter((model) => Boolean(model.id));
|
|
42
|
+
const aliasLines = aliasModels.length > 0
|
|
43
|
+
? ["alias:", ...aliasModels.map((model) => ` - ${JSON.stringify(`${model.id}:openai/${model.id}`)}`)]
|
|
44
|
+
: [];
|
|
45
|
+
const next = (0, fsx_1.appendManagedBlock)(cleaned, [
|
|
46
|
+
exports.AIDER_MANAGED_START,
|
|
47
|
+
`model: ${JSON.stringify(`openai/${params.model.trim() || exports.DEFAULT_AIDER_MODEL}`)}`,
|
|
48
|
+
`openai-api-key: ${JSON.stringify(params.apiKey)}`,
|
|
49
|
+
`openai-api-base: ${JSON.stringify((0, urls_1.openAiCompatibleProxyUrl)(params.backendUrl))}`,
|
|
50
|
+
"restore-chat-history: true",
|
|
51
|
+
...aliasLines,
|
|
52
|
+
exports.AIDER_MANAGED_END,
|
|
53
|
+
]);
|
|
54
|
+
await promises_1.default.mkdir(node_path_1.default.dirname(exports.AIDER_CONFIG_PATH), { recursive: true });
|
|
55
|
+
await promises_1.default.writeFile(exports.AIDER_CONFIG_PATH, next, "utf8");
|
|
56
|
+
return exports.AIDER_CONFIG_PATH;
|
|
57
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.cleanupClaudeEditorSettings = cleanupClaudeEditorSettings;
|
|
7
|
+
exports.cleanupClaudeDesktop3pConfig = cleanupClaudeDesktop3pConfig;
|
|
8
|
+
const fsx_1 = require("../shared/fsx");
|
|
9
|
+
const claude_1 = require("./claude");
|
|
10
|
+
const fsx_cleanup_1 = require("../shared/fsx-cleanup");
|
|
11
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
12
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
13
|
+
// Extracted from src/commands/logout.ts (theclawbay CLI restructure).
|
|
14
|
+
// Code motion only: bodies are verbatim from the original file.
|
|
15
|
+
async function cleanupClaudeEditorSettings() {
|
|
16
|
+
const snapshotRaw = await (0, fsx_1.readFileIfExists)(claude_1.CLAUDE_EDITOR_SETTINGS_STATE_PATH);
|
|
17
|
+
if (snapshotRaw === null || !snapshotRaw.trim())
|
|
18
|
+
return [];
|
|
19
|
+
let entries = [];
|
|
20
|
+
try {
|
|
21
|
+
entries = JSON.parse(snapshotRaw);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
const updated = [];
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
const settings = await (0, fsx_cleanup_1.readJsonObjectFile)(entry.settingsPath);
|
|
29
|
+
if (!entry.envHadKey) {
|
|
30
|
+
delete settings[claude_1.CLAUDE_CODE_EDITOR_ENV_SETTING];
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
settings[claude_1.CLAUDE_CODE_EDITOR_ENV_SETTING] = entry.envPreviousValue;
|
|
34
|
+
}
|
|
35
|
+
if (!entry.disableLoginPromptHadKey) {
|
|
36
|
+
delete settings[claude_1.CLAUDE_CODE_EDITOR_DISABLE_LOGIN_PROMPT_SETTING];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
settings[claude_1.CLAUDE_CODE_EDITOR_DISABLE_LOGIN_PROMPT_SETTING] = entry.disableLoginPromptPreviousValue;
|
|
40
|
+
}
|
|
41
|
+
if (entry.existed || Object.keys(settings).length > 0) {
|
|
42
|
+
const next = `${JSON.stringify(settings, null, 2)}\n`;
|
|
43
|
+
const existing = await (0, fsx_1.readFileIfExists)(entry.settingsPath);
|
|
44
|
+
if (existing !== next) {
|
|
45
|
+
await promises_1.default.mkdir(node_path_1.default.dirname(entry.settingsPath), { recursive: true });
|
|
46
|
+
await promises_1.default.writeFile(entry.settingsPath, next, "utf8");
|
|
47
|
+
updated.push(entry.settingsPath);
|
|
48
|
+
}
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (await (0, fsx_1.removeFileIfExists)(entry.settingsPath)) {
|
|
52
|
+
updated.push(entry.settingsPath);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
await (0, fsx_1.removeFileIfExists)(claude_1.CLAUDE_EDITOR_SETTINGS_STATE_PATH);
|
|
56
|
+
return updated;
|
|
57
|
+
}
|
|
58
|
+
async function cleanupClaudeDesktop3pConfig() {
|
|
59
|
+
const snapshotRaw = await (0, fsx_1.readFileIfExists)(claude_1.CLAUDE_DESKTOP_3P_STATE_PATH);
|
|
60
|
+
if (snapshotRaw === null || !snapshotRaw.trim())
|
|
61
|
+
return false;
|
|
62
|
+
let snapshot = null;
|
|
63
|
+
try {
|
|
64
|
+
snapshot = JSON.parse(snapshotRaw);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
snapshot = null;
|
|
68
|
+
}
|
|
69
|
+
if (!snapshot?.configPath) {
|
|
70
|
+
await (0, fsx_1.removeFileIfExists)(claude_1.CLAUDE_DESKTOP_3P_STATE_PATH);
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (!snapshot.existed) {
|
|
74
|
+
const removed = await (0, fsx_1.removeFileIfExists)(snapshot.configPath);
|
|
75
|
+
await (0, fsx_1.removeFileIfExists)(claude_1.CLAUDE_DESKTOP_3P_STATE_PATH);
|
|
76
|
+
return removed;
|
|
77
|
+
}
|
|
78
|
+
const previousRaw = snapshot.previousRaw ?? "";
|
|
79
|
+
await promises_1.default.mkdir(node_path_1.default.dirname(snapshot.configPath), { recursive: true });
|
|
80
|
+
const existingRaw = await (0, fsx_1.readFileIfExists)(snapshot.configPath);
|
|
81
|
+
if (existingRaw === previousRaw) {
|
|
82
|
+
await (0, fsx_1.removeFileIfExists)(claude_1.CLAUDE_DESKTOP_3P_STATE_PATH);
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
await promises_1.default.writeFile(snapshot.configPath, previousRaw, "utf8");
|
|
86
|
+
await (0, fsx_1.removeFileIfExists)(claude_1.CLAUDE_DESKTOP_3P_STATE_PATH);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const CLAUDE_ENV_SIMPLE_MODE_NAME = "CLAUDE_CODE_SIMPLE";
|
|
2
|
+
export declare const CLAUDE_ENV_DISABLE_NONESSENTIAL_TRAFFIC_NAME = "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC";
|
|
3
|
+
export declare const CLAUDE_ENV_ENABLE_TELEMETRY_NAME = "CLAUDE_CODE_ENABLE_TELEMETRY";
|
|
4
|
+
export declare const CLAUDE_CODE_EDITOR_ENV_SETTING = "claudeCode.environmentVariables";
|
|
5
|
+
export declare const CLAUDE_CODE_EDITOR_DISABLE_LOGIN_PROMPT_SETTING = "claudeCode.disableLoginPrompt";
|
|
6
|
+
export declare const MANAGED_CLAUDE_ENV_NAMES: readonly ["ANTHROPIC_API_KEY", "ANTHROPIC_BASE_URL", "CLAUDE_CODE_SIMPLE", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC", "CLAUDE_CODE_ENABLE_TELEMETRY"];
|
|
7
|
+
export declare const CLAUDE_EDITOR_SETTINGS_STATE_PATH: string;
|
|
8
|
+
export declare const CLAUDE_DESKTOP_3P_STATE_PATH: string;
|
|
9
|
+
export type ClaudeEditorSettingsSnapshotEntry = {
|
|
10
|
+
settingsPath: string;
|
|
11
|
+
existed: boolean;
|
|
12
|
+
envHadKey: boolean;
|
|
13
|
+
envPreviousValue: unknown;
|
|
14
|
+
disableLoginPromptHadKey: boolean;
|
|
15
|
+
disableLoginPromptPreviousValue: unknown;
|
|
16
|
+
};
|
|
17
|
+
export type ClaudeDesktop3pRestoreSnapshot = {
|
|
18
|
+
version: 1;
|
|
19
|
+
configPath: string;
|
|
20
|
+
existed: boolean;
|
|
21
|
+
previousRaw: string | null;
|
|
22
|
+
};
|
|
23
|
+
export declare function claudeDesktop3pConfigPath(): string | null;
|
|
24
|
+
export declare function claudeDesktopLogCandidates(): string[];
|
|
25
|
+
export declare function claudeDesktopAppCandidatePaths(): string[];
|
|
26
|
+
export declare function detectClaudeCodeClient(): Promise<boolean>;
|
|
27
|
+
export declare function detectClaudeClient(): Promise<boolean>;
|
|
28
|
+
export declare function buildManagedClaudeEditorEnv(params: {
|
|
29
|
+
apiKey: string;
|
|
30
|
+
backendUrl: string;
|
|
31
|
+
}): Record<string, string>;
|
|
32
|
+
export declare function persistClaudeEditorSettings(params: {
|
|
33
|
+
apiKey: string;
|
|
34
|
+
backendUrl: string;
|
|
35
|
+
claudeEnabled: boolean;
|
|
36
|
+
}): Promise<string[]>;
|
|
37
|
+
export declare function cleanupClaudeEditorSettings(): Promise<string[]>;
|
|
38
|
+
export declare function cleanupClaudeDesktop3pConfig(): Promise<boolean>;
|
|
39
|
+
export declare function cleanupLegacyClaudeEditorTerminalEnvSettings(params: {
|
|
40
|
+
apiKey: string;
|
|
41
|
+
backendUrl: string;
|
|
42
|
+
}): Promise<string[]>;
|
|
43
|
+
export declare function expandClaudeDesktopInferenceModels(modelIds: string[]): string[];
|
|
44
|
+
export declare function discoverClaudeDesktopDeploymentOrganizationUuid(existing: Record<string, unknown>): Promise<string | null>;
|
|
45
|
+
export declare function writeClaudeDesktop3pConfig(params: {
|
|
46
|
+
backendUrl: string;
|
|
47
|
+
apiKey: string;
|
|
48
|
+
claudeModels: string[];
|
|
49
|
+
}): Promise<string | null>;
|