@lumenkey/cli 0.1.7 → 0.1.9
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/cli/copied.d.ts.map +1 -1
- package/dist/cli/copied.js +54 -41
- package/dist/cli/copied.js.map +1 -1
- package/dist/cli/index.js +5 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/core/client.d.ts +1 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +118 -6
- package/dist/core/client.js.map +1 -1
- package/dist/core/config-dir.d.ts +3 -0
- package/dist/core/config-dir.d.ts.map +1 -0
- package/dist/core/config-dir.js +22 -0
- package/dist/core/config-dir.js.map +1 -0
- package/dist/core/config.d.ts +5 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +98 -26
- package/dist/core/config.js.map +1 -1
- package/dist/core/locale.d.ts +3 -0
- package/dist/core/locale.d.ts.map +1 -1
- package/dist/core/locale.js +51 -7
- package/dist/core/locale.js.map +1 -1
- package/dist/core/poller.d.ts.map +1 -1
- package/dist/core/poller.js +8 -14
- package/dist/core/poller.js.map +1 -1
- package/dist/core/profiles.d.ts +3 -0
- package/dist/core/profiles.d.ts.map +1 -1
- package/dist/core/profiles.js +12 -3
- package/dist/core/profiles.js.map +1 -1
- package/dist/core/wait.d.ts.map +1 -1
- package/dist/core/wait.js +19 -2
- package/dist/core/wait.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +15 -8
- package/dist/mcp/server.js.map +1 -1
- package/package.json +2 -1
package/dist/core/client.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EnvHttpProxyAgent, fetch as undiciFetch } from 'undici';
|
|
2
|
+
import { billingSentence, blankPromptSentence, errorSentence, hasErrorSentence, internalUpstreamError, isBlankPrompt, langFlag, proxyTransportDetail, textCatalogMissDetail, transportFailureDetail, ui } from './locale.js';
|
|
2
3
|
import { normalizeGatewayOrigin } from './origin.js';
|
|
3
4
|
export function parseChatBilling(value) {
|
|
4
5
|
if (value === undefined)
|
|
@@ -52,6 +53,112 @@ function assertIdempotencyKey(key) {
|
|
|
52
53
|
throw new LumenKeyError('IDEMPOTENCY_KEY_INVALID');
|
|
53
54
|
if (Buffer.byteLength(key) > 128)
|
|
54
55
|
throw new LumenKeyError('IDEMPOTENCY_KEY_TOO_LONG');
|
|
56
|
+
if (!/^[\x21-\x7E]+$/.test(key))
|
|
57
|
+
throw new LumenKeyError('IDEMPOTENCY_INPUT_INVALID');
|
|
58
|
+
}
|
|
59
|
+
function envPresent(name) {
|
|
60
|
+
const value = process.env[name];
|
|
61
|
+
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
62
|
+
}
|
|
63
|
+
function configuredProxy() {
|
|
64
|
+
for (const name of ['https_proxy', 'HTTPS_PROXY', 'http_proxy', 'HTTP_PROXY', 'all_proxy', 'ALL_PROXY']) {
|
|
65
|
+
const value = envPresent(name);
|
|
66
|
+
if (value)
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
// EnvHttpProxyAgent reads http_proxy/https_proxy before the uppercase names and does not read ALL_PROXY.
|
|
72
|
+
function proxyApplies(target) {
|
|
73
|
+
let url;
|
|
74
|
+
try {
|
|
75
|
+
url = new URL(target);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const httpProxy = envPresent('http_proxy') ?? envPresent('HTTP_PROXY');
|
|
81
|
+
const httpsProxy = envPresent('https_proxy') ?? envPresent('HTTPS_PROXY') ?? httpProxy;
|
|
82
|
+
const selected = url.protocol === 'https:' ? httpsProxy : url.protocol === 'http:' ? httpProxy : undefined;
|
|
83
|
+
if (!selected)
|
|
84
|
+
return false;
|
|
85
|
+
const noProxy = process.env.no_proxy ?? process.env.NO_PROXY ?? '';
|
|
86
|
+
if (noProxy === '*')
|
|
87
|
+
return false;
|
|
88
|
+
const hostname = url.host.replace(/:\d*$/, '').toLowerCase();
|
|
89
|
+
const port = Number.parseInt(url.port, 10) || (url.protocol === 'https:' ? 443 : url.protocol === 'http:' ? 80 : 0);
|
|
90
|
+
for (const entry of noProxy.split(/[,\s]/)) {
|
|
91
|
+
if (!entry)
|
|
92
|
+
continue;
|
|
93
|
+
const parsed = entry.match(/^(.+):(\d+)$/);
|
|
94
|
+
const host = (parsed ? parsed[1] : entry).replace(/^\*?\./, '').toLowerCase();
|
|
95
|
+
const entryPort = parsed ? Number.parseInt(parsed[2], 10) : 0;
|
|
96
|
+
if (entryPort && entryPort !== port)
|
|
97
|
+
continue;
|
|
98
|
+
if (hostname === host || hostname.slice(-(host.length + 1)) === `.${host}`)
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
export function redactPublicDetail(message, secret) {
|
|
104
|
+
if (typeof message !== 'string')
|
|
105
|
+
return '';
|
|
106
|
+
let short = secret ? message.split(secret).join('[redacted]') : message;
|
|
107
|
+
short = short
|
|
108
|
+
.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g, '')
|
|
109
|
+
.replace(/[\u0000-\u001f\u007f-\u009f]/g, ' ')
|
|
110
|
+
.replace(/\b(?:https?|postgres(?:ql)?|redis):\/\/\S+/gi, '[redacted]')
|
|
111
|
+
.replace(/\bBearer\s+\S+/gi, 'Bearer [redacted]')
|
|
112
|
+
.replace(/\b(?:api[_-]?key|token|secret|password|authorization|dsn)\s*[:=]\s*\S+/gi, '[redacted]')
|
|
113
|
+
.replace(/\b(?:sk-|lk_live_|lk_test_)[A-Za-z0-9_-]+/g, '[redacted]')
|
|
114
|
+
.replace(/\s+/g, ' ')
|
|
115
|
+
.trim()
|
|
116
|
+
.slice(0, 200);
|
|
117
|
+
return short;
|
|
118
|
+
}
|
|
119
|
+
function unexpectedRedirect(err) {
|
|
120
|
+
const seen = new Set();
|
|
121
|
+
let current = err;
|
|
122
|
+
while (current && typeof current === 'object' && !seen.has(current)) {
|
|
123
|
+
seen.add(current);
|
|
124
|
+
if (current instanceof Error && current.message === 'unexpected redirect')
|
|
125
|
+
return true;
|
|
126
|
+
current = current.cause;
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
function proxyHeaders(headers) {
|
|
131
|
+
if (headers == null)
|
|
132
|
+
return undefined;
|
|
133
|
+
if (typeof Headers !== 'undefined' && headers instanceof Headers)
|
|
134
|
+
return Object.fromEntries(headers.entries());
|
|
135
|
+
if (Array.isArray(headers)) {
|
|
136
|
+
const record = {};
|
|
137
|
+
for (const [name, value] of headers)
|
|
138
|
+
record[name] = value;
|
|
139
|
+
return record;
|
|
140
|
+
}
|
|
141
|
+
const record = {};
|
|
142
|
+
for (const [name, value] of Object.entries(headers)) {
|
|
143
|
+
if (typeof value === 'string')
|
|
144
|
+
record[name] = value;
|
|
145
|
+
}
|
|
146
|
+
return record;
|
|
147
|
+
}
|
|
148
|
+
async function gatewayFetch(url, init) {
|
|
149
|
+
if (!configuredProxy())
|
|
150
|
+
return fetch(url, init);
|
|
151
|
+
if (init.body != null && typeof init.body !== 'string')
|
|
152
|
+
throw new LumenKeyError('TRANSPORT_FAILED');
|
|
153
|
+
const proxied = {
|
|
154
|
+
method: init.method,
|
|
155
|
+
headers: proxyHeaders(init.headers),
|
|
156
|
+
body: init.body ?? undefined,
|
|
157
|
+
signal: init.signal ?? undefined,
|
|
158
|
+
redirect: init.redirect,
|
|
159
|
+
dispatcher: new EnvHttpProxyAgent(),
|
|
160
|
+
};
|
|
161
|
+
return undiciFetch(url, proxied);
|
|
55
162
|
}
|
|
56
163
|
export function validateModelType(type) {
|
|
57
164
|
if (type !== undefined && !['video', 'image', 'text', 'audio'].includes(type)) {
|
|
@@ -77,7 +184,8 @@ export class LumenKeyClient {
|
|
|
77
184
|
implicitProjectId;
|
|
78
185
|
timeoutMs;
|
|
79
186
|
constructor(config) {
|
|
80
|
-
|
|
187
|
+
const key = typeof config.apiKey === 'string' ? config.apiKey.trim() : '';
|
|
188
|
+
this.apiKey = key || undefined;
|
|
81
189
|
this.baseUrl = normalizeGatewayOrigin(config.baseUrl);
|
|
82
190
|
let origin;
|
|
83
191
|
try {
|
|
@@ -118,7 +226,7 @@ export class LumenKeyClient {
|
|
|
118
226
|
const controller = new AbortController();
|
|
119
227
|
const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
120
228
|
try {
|
|
121
|
-
const response = await
|
|
229
|
+
const response = await gatewayFetch(url, {
|
|
122
230
|
...options,
|
|
123
231
|
headers: {
|
|
124
232
|
...this.getHeaders(idempotencyKey),
|
|
@@ -165,7 +273,8 @@ export class LumenKeyClient {
|
|
|
165
273
|
const retry = response.headers.get('retry-after');
|
|
166
274
|
const wait = retry && /^\d+$/.test(retry) ? Number(retry) * 1000 : undefined;
|
|
167
275
|
const billing = cleanEndpoint === '/v1/chat/completions' ? parseChatBilling(data?.error?.billing) : undefined;
|
|
168
|
-
|
|
276
|
+
const serverDetail = hasErrorSentence(code) ? undefined : redactPublicDetail(data?.error?.message, this.apiKey) || undefined;
|
|
277
|
+
throw new LumenKeyError(code, response.status, wait, serverDetail, billing);
|
|
169
278
|
}
|
|
170
279
|
return data;
|
|
171
280
|
}
|
|
@@ -174,7 +283,10 @@ export class LumenKeyClient {
|
|
|
174
283
|
throw err;
|
|
175
284
|
if (controller.signal.aborted)
|
|
176
285
|
throw new LumenKeyError('REQUEST_TIMEOUT');
|
|
177
|
-
|
|
286
|
+
if (unexpectedRedirect(err))
|
|
287
|
+
throw new LumenKeyError('GATEWAY_REDIRECTED');
|
|
288
|
+
const detail = proxyApplies(url) ? proxyTransportDetail(this.baseUrl) : transportFailureDetail(this.baseUrl);
|
|
289
|
+
throw new LumenKeyError('TRANSPORT_FAILED', undefined, undefined, detail);
|
|
178
290
|
}
|
|
179
291
|
finally {
|
|
180
292
|
clearTimeout(timeoutId);
|
|
@@ -279,7 +391,7 @@ export class LumenKeyClient {
|
|
|
279
391
|
throw new LumenKeyError('CHAT_CREDIT_LIMIT_INVALID');
|
|
280
392
|
if (req.stream)
|
|
281
393
|
throw new LumenKeyError('SDK_STREAM_NOT_IMPLEMENTED');
|
|
282
|
-
if (!req.messages.some(message => message.role === 'user' && message.content
|
|
394
|
+
if (!req.messages.some(message => message.role === 'user' && !isBlankPrompt(message.content)))
|
|
283
395
|
throw new Error(blankPromptSentence('user'));
|
|
284
396
|
assertIdempotencyKey(idempotencyKey);
|
|
285
397
|
this.requireKey();
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-dir.d.ts","sourceRoot":"","sources":["../../src/core/config-dir.ts"],"names":[],"mappings":"AAIA,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAchE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { errorSentence, ui } from './locale.js';
|
|
4
|
+
/** chmod 000 on the config directory makes existsSync return false. That must not look like "no key". */
|
|
5
|
+
export function assertConfigDirReadable(targetPath) {
|
|
6
|
+
const dir = path.dirname(targetPath);
|
|
7
|
+
try {
|
|
8
|
+
fs.accessSync(dir, fs.constants.R_OK | fs.constants.X_OK);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
const code = error?.code;
|
|
12
|
+
if (code === 'ENOENT' || code === 'ENOTDIR')
|
|
13
|
+
return;
|
|
14
|
+
if (code === 'EACCES' || code === 'EPERM') {
|
|
15
|
+
const failure = new Error(`${errorSentence('CONFIG_UNREADABLE')} (CONFIG_UNREADABLE) ${targetPath}: ${ui('The config directory could not be read.', '配置目录无法读取。')}`);
|
|
16
|
+
failure.name = 'LumenKeyError';
|
|
17
|
+
throw failure;
|
|
18
|
+
}
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=config-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-dir.js","sourceRoot":"","sources":["../../src/core/config-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEhD,yGAAyG;AACzG,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,EAAE,IAAI,CAAC;QACpD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QACpD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,mBAAmB,CAAC,wBAAwB,UAAU,KAAK,EAAE,CAAC,yCAAyC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YACpK,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC;YAC/B,MAAM,OAAO,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { LumenKeyConfig } from './types.js';
|
|
2
|
+
export declare class ConfigError extends Error {
|
|
3
|
+
readonly code: 'CONFIG_INVALID' | 'CONFIG_UNREADABLE';
|
|
4
|
+
readonly configPath: string;
|
|
5
|
+
constructor(code: 'CONFIG_INVALID' | 'CONFIG_UNREADABLE', configPath: string, reason: string);
|
|
6
|
+
}
|
|
2
7
|
export declare function loadConfig(): LumenKeyConfig;
|
|
3
8
|
export declare function saveConfig(updates: Partial<LumenKeyConfig>): void;
|
|
4
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAoBjD,qBAAa,WAAY,SAAQ,KAAK;IACxB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAAzE,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,EAAW,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI/G;AA0ED,wBAAgB,UAAU,IAAI,cAAc,CAgC3C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAuBjE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE,CAS1G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAQ9D"}
|
package/dist/core/config.js
CHANGED
|
@@ -4,6 +4,8 @@ import os from 'node:os';
|
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { currentProfile } from './profiles.js';
|
|
6
6
|
import { normalizeGatewayOrigin } from './origin.js';
|
|
7
|
+
import { errorSentence, ui } from './locale.js';
|
|
8
|
+
import { assertConfigDirReadable } from './config-dir.js';
|
|
7
9
|
// Official live gateway default: 华语站默认 https://123outlets.com
|
|
8
10
|
const DEFAULT_BASE_URL = 'https://123outlets.com';
|
|
9
11
|
// Must cover the gateway's 180s FunCloud first-token open. A shorter client
|
|
@@ -15,23 +17,87 @@ function getConfigDir() {
|
|
|
15
17
|
function getConfigPath() {
|
|
16
18
|
return path.join(getConfigDir(), 'config.json');
|
|
17
19
|
}
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
export class ConfigError extends Error {
|
|
21
|
+
code;
|
|
22
|
+
configPath;
|
|
23
|
+
constructor(code, configPath, reason) {
|
|
24
|
+
super(`${errorSentence(code)} (${code}) ${configPath}: ${reason}`);
|
|
25
|
+
this.code = code;
|
|
26
|
+
this.configPath = configPath;
|
|
27
|
+
this.name = 'LumenKeyError';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function configFailure(error, configPath) {
|
|
31
|
+
const sys = error;
|
|
32
|
+
if (sys?.code === 'EACCES' || sys?.code === 'EPERM' || sys?.code === 'ENOTDIR' || sys?.code === 'EISDIR') {
|
|
33
|
+
return new ConfigError('CONFIG_UNREADABLE', configPath, ui('The directory is not writable or the path is not a file.', '目录不可写,或该路径不是文件。'));
|
|
34
|
+
}
|
|
35
|
+
return new ConfigError('CONFIG_INVALID', configPath, ui('The config file could not be read.', '配置文件无法读取。'));
|
|
36
|
+
}
|
|
37
|
+
function nonemptyTrim(value) {
|
|
38
|
+
if (typeof value !== 'string')
|
|
39
|
+
return undefined;
|
|
40
|
+
const trimmed = value.trim();
|
|
41
|
+
return trimmed || undefined;
|
|
42
|
+
}
|
|
43
|
+
function readStoredConfig(configPath) {
|
|
44
|
+
assertConfigDirReadable(configPath);
|
|
45
|
+
if (!fs.existsSync(configPath))
|
|
46
|
+
return {};
|
|
47
|
+
let stat;
|
|
48
|
+
try {
|
|
49
|
+
stat = fs.statSync(configPath);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw configFailure(error, configPath);
|
|
53
|
+
}
|
|
54
|
+
if (!stat.isFile()) {
|
|
55
|
+
throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json must be a file.', 'config.json 必须是文件。'));
|
|
56
|
+
}
|
|
57
|
+
let text;
|
|
58
|
+
try {
|
|
59
|
+
text = fs.readFileSync(configPath, 'utf8');
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
throw configFailure(error, configPath);
|
|
63
|
+
}
|
|
64
|
+
if (text.trim() === '') {
|
|
65
|
+
throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json is empty.', 'config.json 是空文件。'));
|
|
66
|
+
}
|
|
67
|
+
let parsed;
|
|
68
|
+
try {
|
|
69
|
+
parsed = JSON.parse(text);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json is not valid JSON.', 'config.json 不是有效的 JSON。'));
|
|
73
|
+
}
|
|
74
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
75
|
+
throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json must be an object.', 'config.json 必须是对象。'));
|
|
76
|
+
}
|
|
77
|
+
const record = parsed;
|
|
78
|
+
const reasons = [];
|
|
79
|
+
for (const key of ['apiKey', 'baseUrl', 'projectId']) {
|
|
80
|
+
if (record[key] !== undefined && typeof record[key] !== 'string') {
|
|
81
|
+
reasons.push(ui(`${key} must be a string.`, `${key} 必须是字符串。`));
|
|
28
82
|
}
|
|
29
83
|
}
|
|
84
|
+
if (reasons.length > 0)
|
|
85
|
+
throw new ConfigError('CONFIG_INVALID', configPath, reasons.join(' '));
|
|
86
|
+
if (record.timeoutMs !== undefined && (typeof record.timeoutMs !== 'number' || !Number.isSafeInteger(record.timeoutMs) || record.timeoutMs <= 0)) {
|
|
87
|
+
throw new ConfigError('CONFIG_INVALID', configPath, ui('timeoutMs must be a positive integer.', 'timeoutMs 必须是正整数。'));
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
apiKey: record.apiKey,
|
|
91
|
+
baseUrl: record.baseUrl,
|
|
92
|
+
projectId: record.projectId,
|
|
93
|
+
timeoutMs: record.timeoutMs,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export function loadConfig() {
|
|
97
|
+
const configPath = getConfigPath();
|
|
98
|
+
const fileConfig = readStoredConfig(configPath);
|
|
30
99
|
const profile = currentProfile().record;
|
|
31
|
-
const apiKey = process.env.LUMENKEY_API_KEY ||
|
|
32
|
-
fileConfig.apiKey ||
|
|
33
|
-
profile?.key ||
|
|
34
|
-
undefined;
|
|
100
|
+
const apiKey = nonemptyTrim(process.env.LUMENKEY_API_KEY) || nonemptyTrim(fileConfig.apiKey) || nonemptyTrim(profile?.key);
|
|
35
101
|
const rawBaseUrl = process.env.LUMENKEY_BASE_URL ||
|
|
36
102
|
fileConfig.baseUrl ||
|
|
37
103
|
profile?.host ||
|
|
@@ -54,8 +120,13 @@ export function loadConfig() {
|
|
|
54
120
|
}
|
|
55
121
|
export function saveConfig(updates) {
|
|
56
122
|
const configDir = getConfigDir();
|
|
57
|
-
|
|
58
|
-
fs.
|
|
123
|
+
try {
|
|
124
|
+
if (!fs.existsSync(configDir)) {
|
|
125
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
throw configFailure(error, configDir);
|
|
59
130
|
}
|
|
60
131
|
const current = loadConfig();
|
|
61
132
|
const nextConfig = {
|
|
@@ -64,24 +135,25 @@ export function saveConfig(updates) {
|
|
|
64
135
|
projectId: updates.projectId !== undefined ? updates.projectId : current.projectId,
|
|
65
136
|
timeoutMs: updates.timeoutMs !== undefined ? updates.timeoutMs : current.timeoutMs,
|
|
66
137
|
};
|
|
67
|
-
|
|
138
|
+
try {
|
|
139
|
+
fs.writeFileSync(getConfigPath(), JSON.stringify(nextConfig, null, 2), { encoding: 'utf-8', mode: 0o600 });
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
throw configFailure(error, getConfigPath());
|
|
143
|
+
}
|
|
68
144
|
}
|
|
69
145
|
/**
|
|
70
146
|
* Ensure a valid projectId UUID exists; if absent, generate and persist one.
|
|
71
147
|
*/
|
|
72
148
|
export function describeKey() {
|
|
73
|
-
if (process.env.LUMENKEY_API_KEY)
|
|
149
|
+
if (nonemptyTrim(process.env.LUMENKEY_API_KEY))
|
|
74
150
|
return { keyConfigured: true, keySource: 'env' };
|
|
75
151
|
const filePath = getConfigPath();
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (parsed.apiKey)
|
|
80
|
-
return { keyConfigured: true, keySource: 'config' };
|
|
81
|
-
}
|
|
82
|
-
catch { /* ignore unreadable config */ }
|
|
152
|
+
assertConfigDirReadable(filePath);
|
|
153
|
+
if (fs.existsSync(filePath) && nonemptyTrim(readStoredConfig(filePath).apiKey)) {
|
|
154
|
+
return { keyConfigured: true, keySource: 'config' };
|
|
83
155
|
}
|
|
84
|
-
if (currentProfile().record?.key)
|
|
156
|
+
if (nonemptyTrim(currentProfile().record?.key))
|
|
85
157
|
return { keyConfigured: true, keySource: 'profile' };
|
|
86
158
|
return { keyConfigured: false, keySource: 'none' };
|
|
87
159
|
}
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/locale.d.ts
CHANGED
|
@@ -5,6 +5,9 @@ export declare function resolveLang(argv?: readonly string[], env?: NodeJS.Proce
|
|
|
5
5
|
export declare function hasErrorSentence(code: string): boolean;
|
|
6
6
|
export declare function errorSentence(code: string, lang?: Lang): string;
|
|
7
7
|
export declare function transportFailureDetail(baseUrl: string, lang?: Lang): string;
|
|
8
|
+
export declare function proxyTransportDetail(baseUrl: string, lang?: Lang): string;
|
|
9
|
+
/** Blank means no visible character remains. Fillers are listed; real letters, including Hangul, stay. */
|
|
10
|
+
export declare function isBlankPrompt(value: unknown): boolean;
|
|
8
11
|
export declare function textCatalogMissDetail(model: string, lang?: Lang): string;
|
|
9
12
|
export declare function missingModelSentence(name: string, lang?: Lang): string;
|
|
10
13
|
export declare function billingSentence(status: 'MISSING' | 'PENDING' | 'RELEASED' | 'SETTLED', credits?: string, lang?: Lang): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/core/locale.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/core/locale.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AA8I/B,wBAAgB,QAAQ,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,MAAM,GAAG,SAAS,CASnF;AAUD,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAQ9G;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAG9E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAI1F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIxF;AAID,0GAA0G;AAC1G,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAKvF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIrF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAW5I;AAED,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,IAAoB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQpH;AAED,wBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CASvG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIrF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIlF;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D"}
|
package/dist/core/locale.js
CHANGED
|
@@ -46,11 +46,26 @@ const EN = {
|
|
|
46
46
|
MODEL_NOT_AVAILABLE: 'This model is not available.',
|
|
47
47
|
CONTENT_REJECTED: 'The content was rejected.',
|
|
48
48
|
REQUEST_IN_PROGRESS: 'The same idempotency key is still in progress.',
|
|
49
|
-
IDEMPOTENCY_INPUT_INVALID: 'The idempotency key
|
|
49
|
+
IDEMPOTENCY_INPUT_INVALID: 'The idempotency key must be visible ASCII without spaces.',
|
|
50
|
+
CONFIG_INVALID: 'The local config file is not usable.',
|
|
51
|
+
CONFIG_UNREADABLE: 'The local config file could not be read or written.',
|
|
50
52
|
CHAT_REQUEST_INVALID: 'The chat request is not valid.',
|
|
51
53
|
CANCELLED: 'The request was cancelled.',
|
|
52
54
|
ACCOUNT_NOT_ELIGIBLE: 'This account cannot use the requested model.',
|
|
53
55
|
CHAT_UPSTREAM_ERROR: 'The model returned an internal error instead of an answer.',
|
|
56
|
+
UNAUTHORIZED: 'The key was rejected. Check LUMENKEY_API_KEY or run lumenkey login.',
|
|
57
|
+
FORBIDDEN: 'This key cannot perform that action.',
|
|
58
|
+
INSUFFICIENT_CREDITS: 'Not enough credits for this request.',
|
|
59
|
+
NOT_FOUND: 'The gateway has no such resource.',
|
|
60
|
+
RATE_LIMITED: 'Too many requests. Wait and try again.',
|
|
61
|
+
GATEWAY_REDIRECTED: 'The gateway returned a redirect, and this client did not follow it.',
|
|
62
|
+
JOB_CANCELLED: 'The task was cancelled.',
|
|
63
|
+
JOB_EXPIRED: 'The task expired before it finished.',
|
|
64
|
+
JOB_OUTPUT_MISSING: 'The task finished without a result address.',
|
|
65
|
+
JOB_TERMINAL_FAILURE: 'The task ended without a result.',
|
|
66
|
+
DOWNLOAD_URL_INVALID: 'The result address cannot be downloaded.',
|
|
67
|
+
DOWNLOAD_TOO_LARGE: 'The result is larger than 128 MiB and was not saved.',
|
|
68
|
+
CLI_COMMAND_FAILED: 'The command failed before it could finish.',
|
|
54
69
|
};
|
|
55
70
|
const ZH = {
|
|
56
71
|
API_KEY_NOT_CONFIGURED: '尚未配置密钥。请设置 LUMENKEY_API_KEY,或运行 lumenkey login。',
|
|
@@ -100,11 +115,26 @@ const ZH = {
|
|
|
100
115
|
MODEL_NOT_AVAILABLE: '该模型当前不可用。',
|
|
101
116
|
CONTENT_REJECTED: '内容未通过审核。',
|
|
102
117
|
REQUEST_IN_PROGRESS: '同一幂等键的请求仍在进行中。',
|
|
103
|
-
IDEMPOTENCY_INPUT_INVALID: '
|
|
118
|
+
IDEMPOTENCY_INPUT_INVALID: '幂等键只能是不含空格的可见 ASCII 字符。',
|
|
119
|
+
CONFIG_INVALID: '本地配置文件不可用。',
|
|
120
|
+
CONFIG_UNREADABLE: '本地配置文件无法读取或写入。',
|
|
104
121
|
CHAT_REQUEST_INVALID: '对话请求无效。',
|
|
105
122
|
CANCELLED: '请求已取消。',
|
|
106
123
|
ACCOUNT_NOT_ELIGIBLE: '此账号不能使用所请求的模型。',
|
|
107
124
|
CHAT_UPSTREAM_ERROR: '模型返回了内部错误,而不是回答。',
|
|
125
|
+
UNAUTHORIZED: '密钥未被接受。请检查 LUMENKEY_API_KEY,或运行 lumenkey login。',
|
|
126
|
+
FORBIDDEN: '这把密钥不能执行该操作。',
|
|
127
|
+
INSUFFICIENT_CREDITS: '算力点不足,无法完成本次请求。',
|
|
128
|
+
NOT_FOUND: '网关没有这个资源。',
|
|
129
|
+
RATE_LIMITED: '请求过于频繁,请稍后再试。',
|
|
130
|
+
GATEWAY_REDIRECTED: '网关返回了重定向,客户端没有跟随。',
|
|
131
|
+
JOB_CANCELLED: '任务已取消。',
|
|
132
|
+
JOB_EXPIRED: '任务在完成前已过期。',
|
|
133
|
+
JOB_OUTPUT_MISSING: '任务已结束,但没有结果地址。',
|
|
134
|
+
JOB_TERMINAL_FAILURE: '任务已结束,没有可用结果。',
|
|
135
|
+
DOWNLOAD_URL_INVALID: '结果地址无法下载。',
|
|
136
|
+
DOWNLOAD_TOO_LARGE: '结果超过 128 MiB,没有保存。',
|
|
137
|
+
CLI_COMMAND_FAILED: '命令未能完成。',
|
|
108
138
|
};
|
|
109
139
|
export function langFlag(argv = process.argv) {
|
|
110
140
|
const args = argv.slice(2);
|
|
@@ -119,18 +149,22 @@ export function langFlag(argv = process.argv) {
|
|
|
119
149
|
}
|
|
120
150
|
return undefined;
|
|
121
151
|
}
|
|
152
|
+
function primarySubtag(raw) {
|
|
153
|
+
return (raw.trim().replace(/-/g, '_').split(/[._@]/)[0] ?? '').toLowerCase();
|
|
154
|
+
}
|
|
122
155
|
function localeLang(env) {
|
|
123
|
-
|
|
124
|
-
return primary === 'en' ? 'en' : 'zh';
|
|
156
|
+
return primarySubtag(env.LC_ALL || env.LANG || '') === 'en' ? 'en' : 'zh';
|
|
125
157
|
}
|
|
126
158
|
/** --lang zh|en, then LUMENKEY_LANG, then LC_ALL / LANG, then zh. Invalid values are ignored here. */
|
|
127
159
|
export function resolveLang(argv = process.argv, env = process.env) {
|
|
128
160
|
const flag = langFlag(argv);
|
|
129
161
|
if (flag === 'zh' || flag === 'en')
|
|
130
162
|
return flag;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
163
|
+
if (typeof env.LUMENKEY_LANG === 'string' && env.LUMENKEY_LANG.trim()) {
|
|
164
|
+
const primary = primarySubtag(env.LUMENKEY_LANG);
|
|
165
|
+
if (primary === 'zh' || primary === 'en')
|
|
166
|
+
return primary;
|
|
167
|
+
}
|
|
134
168
|
return localeLang(env);
|
|
135
169
|
}
|
|
136
170
|
export function hasErrorSentence(code) {
|
|
@@ -145,6 +179,16 @@ export function transportFailureDetail(baseUrl, lang = resolveLang()) {
|
|
|
145
179
|
? `无法连接网关 ${baseUrl},请检查网络与网关地址。`
|
|
146
180
|
: `Network connection to ${baseUrl} failed. Check the gateway address and connection.`;
|
|
147
181
|
}
|
|
182
|
+
export function proxyTransportDetail(baseUrl, lang = resolveLang()) {
|
|
183
|
+
return lang === 'zh'
|
|
184
|
+
? `通过 HTTP(S)_PROXY 或 ALL_PROXY 连接网关 ${baseUrl} 失败。请检查代理,不要把代理地址当成网关故障。`
|
|
185
|
+
: `The request to ${baseUrl} failed through HTTP(S)_PROXY or ALL_PROXY. Check that proxy; this is not a gateway-address failure.`;
|
|
186
|
+
}
|
|
187
|
+
const INVISIBLE_PROMPT = /[\p{Cf}\p{Mn}\p{Me}\p{Zs}\p{Zl}\p{Zp}\u115F\u1160\u2800\u3164\uFFA0]/gu;
|
|
188
|
+
/** Blank means no visible character remains. Fillers are listed; real letters, including Hangul, stay. */
|
|
189
|
+
export function isBlankPrompt(value) {
|
|
190
|
+
return typeof value !== 'string' || value.replace(INVISIBLE_PROMPT, '').trim().length === 0;
|
|
191
|
+
}
|
|
148
192
|
export function textCatalogMissDetail(model, lang = resolveLang()) {
|
|
149
193
|
const shown = JSON.stringify(model);
|
|
150
194
|
return lang === 'zh'
|