cheap-llm-mcp 0.1.0 → 0.1.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/dist/setup.d.ts +6 -2
- package/dist/setup.js +27 -9
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/dist/setup.d.ts
CHANGED
|
@@ -12,8 +12,12 @@ export type SetupOptions = ProviderAnswers & {
|
|
|
12
12
|
export declare function buildClaudeCommand(answer: ProviderAnswers): string[];
|
|
13
13
|
export declare function buildCodexCommand(answer: ProviderAnswers): string[];
|
|
14
14
|
export declare function shellQuote(value: string): string;
|
|
15
|
-
export declare function commandToString(command: string[]
|
|
16
|
-
|
|
15
|
+
export declare function commandToString(command: string[], options?: {
|
|
16
|
+
redactSecrets?: boolean;
|
|
17
|
+
}): string;
|
|
18
|
+
export declare function codexTomlSnippet(answer: ProviderAnswers, options?: {
|
|
19
|
+
redactSecrets?: boolean;
|
|
20
|
+
}): string;
|
|
17
21
|
export declare function claudeJsonSnippet(answer: ProviderAnswers): string;
|
|
18
22
|
export declare function collectSetupOptions(): Promise<SetupOptions>;
|
|
19
23
|
export declare function commandsForSetup(options: SetupOptions): string[][];
|
package/dist/setup.js
CHANGED
|
@@ -3,6 +3,10 @@ import { createInterface } from "node:readline/promises";
|
|
|
3
3
|
import { stdin as input, stdout as output } from "node:process";
|
|
4
4
|
const PACKAGE_SPEC = "cheap-llm-mcp@latest";
|
|
5
5
|
const SERVER_NAME = "cheap-llm";
|
|
6
|
+
const SECRET_PLACEHOLDER = "<YOUR_API_KEY>";
|
|
7
|
+
function isSecretName(name) {
|
|
8
|
+
return /(API_?KEY|TOKEN|SECRET|PASSWORD)/i.test(name);
|
|
9
|
+
}
|
|
6
10
|
function envPairsForProvider(answer) {
|
|
7
11
|
const env = {
|
|
8
12
|
CHEAP_LLM_BASE_URL: answer.baseUrl ?? "https://api.deepseek.com",
|
|
@@ -30,12 +34,19 @@ export function buildCodexCommand(answer) {
|
|
|
30
34
|
export function shellQuote(value) {
|
|
31
35
|
return /\s|["']/.test(value) ? JSON.stringify(value) : value;
|
|
32
36
|
}
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
function redactCommandPart(value) {
|
|
38
|
+
const match = /^([^=]+)=(.*)$/.exec(value);
|
|
39
|
+
if (match && isSecretName(match[1])) {
|
|
40
|
+
return `${match[1]}=${SECRET_PLACEHOLDER}`;
|
|
41
|
+
}
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
export function commandToString(command, options = {}) {
|
|
45
|
+
return command.map((part) => shellQuote(options.redactSecrets ? redactCommandPart(part) : part)).join(" ");
|
|
35
46
|
}
|
|
36
|
-
export function codexTomlSnippet(answer) {
|
|
47
|
+
export function codexTomlSnippet(answer, options = {}) {
|
|
37
48
|
const envLines = Object.entries(envPairsForProvider(answer))
|
|
38
|
-
.map(([key, value]) => `${key} = ${JSON.stringify(value)}`)
|
|
49
|
+
.map(([key, value]) => `${key} = ${JSON.stringify(options.redactSecrets && isSecretName(key) ? SECRET_PLACEHOLDER : value)}`)
|
|
39
50
|
.join("\n");
|
|
40
51
|
return `[mcp_servers.${SERVER_NAME}]
|
|
41
52
|
command = "npx"
|
|
@@ -46,11 +57,12 @@ ${envLines}
|
|
|
46
57
|
`;
|
|
47
58
|
}
|
|
48
59
|
export function claudeJsonSnippet(answer) {
|
|
60
|
+
const env = envPairsForProvider(answer);
|
|
49
61
|
return JSON.stringify({
|
|
50
62
|
type: "stdio",
|
|
51
63
|
command: "npx",
|
|
52
64
|
args: ["-y", PACKAGE_SPEC],
|
|
53
|
-
env
|
|
65
|
+
env
|
|
54
66
|
}, null, 2);
|
|
55
67
|
}
|
|
56
68
|
async function choose(prompt, choices, defaultIndex = 0) {
|
|
@@ -100,21 +112,27 @@ export async function runSetup(options) {
|
|
|
100
112
|
const selected = options ?? (await collectSetupOptions());
|
|
101
113
|
const commands = commandsForSetup(selected);
|
|
102
114
|
output.write("\nCommands:\n");
|
|
103
|
-
commands.forEach((command) => output.write(` ${commandToString(command)}\n`));
|
|
115
|
+
commands.forEach((command) => output.write(` ${commandToString(command, { redactSecrets: true })}\n`));
|
|
104
116
|
if (!selected.execute) {
|
|
105
117
|
output.write("\nSkipped execution. Copy a command above, or run setup again and choose execution.\n");
|
|
106
118
|
output.write("\nManual Codex fallback:\n");
|
|
107
|
-
output.write(codexTomlSnippet(selected));
|
|
119
|
+
output.write(codexTomlSnippet(selected, { redactSecrets: true }));
|
|
120
|
+
if (selected.apiKey) {
|
|
121
|
+
output.write(`\nReplace ${SECRET_PLACEHOLDER} with your actual API key in your local client config.\n`);
|
|
122
|
+
}
|
|
108
123
|
return 0;
|
|
109
124
|
}
|
|
110
125
|
for (const command of commands) {
|
|
111
|
-
output.write(`\nRunning: ${commandToString(command)}\n`);
|
|
126
|
+
output.write(`\nRunning: ${commandToString(command, { redactSecrets: true })}\n`);
|
|
112
127
|
const result = process.platform === "win32"
|
|
113
128
|
? spawnSync("cmd.exe", ["/d", "/s", "/c", commandToString(command)], { stdio: "inherit" })
|
|
114
129
|
: spawnSync(command[0], command.slice(1), { stdio: "inherit" });
|
|
115
130
|
if (result.status !== 0) {
|
|
116
131
|
output.write("\nCommand failed. Manual Codex fallback:\n");
|
|
117
|
-
output.write(codexTomlSnippet(selected));
|
|
132
|
+
output.write(codexTomlSnippet(selected, { redactSecrets: true }));
|
|
133
|
+
if (selected.apiKey) {
|
|
134
|
+
output.write(`\nReplace ${SECRET_PLACEHOLDER} with your actual API key in your local client config.\n`);
|
|
135
|
+
}
|
|
118
136
|
return result.status ?? 1;
|
|
119
137
|
}
|
|
120
138
|
}
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAgBhE,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAC5C,MAAM,WAAW,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|