@lumenkey/cli 0.2.3 → 0.3.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.
Files changed (98) hide show
  1. package/README.md +43 -7
  2. package/dist/cli/copied.d.ts +19 -36
  3. package/dist/cli/copied.d.ts.map +1 -1
  4. package/dist/cli/copied.js +159 -283
  5. package/dist/cli/copied.js.map +1 -1
  6. package/dist/cli/index.d.ts.map +1 -1
  7. package/dist/cli/index.js +86 -136
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/cli/render.d.ts +11 -0
  10. package/dist/cli/render.d.ts.map +1 -0
  11. package/dist/cli/render.js +38 -0
  12. package/dist/cli/render.js.map +1 -0
  13. package/dist/core/atomic-config-file.d.ts +21 -2
  14. package/dist/core/atomic-config-file.d.ts.map +1 -1
  15. package/dist/core/atomic-config-file.js +66 -10
  16. package/dist/core/atomic-config-file.js.map +1 -1
  17. package/dist/core/chat.d.ts +13 -0
  18. package/dist/core/chat.d.ts.map +1 -0
  19. package/dist/core/chat.js +31 -0
  20. package/dist/core/chat.js.map +1 -0
  21. package/dist/core/client.d.ts +19 -1
  22. package/dist/core/client.d.ts.map +1 -1
  23. package/dist/core/client.js +50 -11
  24. package/dist/core/client.js.map +1 -1
  25. package/dist/core/config-dir.d.ts.map +1 -1
  26. package/dist/core/config-dir.js +3 -4
  27. package/dist/core/config-dir.js.map +1 -1
  28. package/dist/core/config-error.d.ts +14 -0
  29. package/dist/core/config-error.d.ts.map +1 -0
  30. package/dist/core/config-error.js +20 -0
  31. package/dist/core/config-error.js.map +1 -0
  32. package/dist/core/config.d.ts +1 -5
  33. package/dist/core/config.d.ts.map +1 -1
  34. package/dist/core/config.js +8 -39
  35. package/dist/core/config.js.map +1 -1
  36. package/dist/core/credit-cap.d.ts +5 -0
  37. package/dist/core/credit-cap.d.ts.map +1 -0
  38. package/dist/core/credit-cap.js +15 -0
  39. package/dist/core/credit-cap.js.map +1 -0
  40. package/dist/core/download.d.ts.map +1 -1
  41. package/dist/core/download.js +105 -16
  42. package/dist/core/download.js.map +1 -1
  43. package/dist/core/error-result.d.ts +4 -13
  44. package/dist/core/error-result.d.ts.map +1 -1
  45. package/dist/core/error-result.js +4 -24
  46. package/dist/core/error-result.js.map +1 -1
  47. package/dist/core/generation-input.d.ts +33 -0
  48. package/dist/core/generation-input.d.ts.map +1 -0
  49. package/dist/core/generation-input.js +145 -0
  50. package/dist/core/generation-input.js.map +1 -0
  51. package/dist/core/generation-result.d.ts +17 -14
  52. package/dist/core/generation-result.d.ts.map +1 -1
  53. package/dist/core/generation-result.js +3 -4
  54. package/dist/core/generation-result.js.map +1 -1
  55. package/dist/core/generation.d.ts +124 -0
  56. package/dist/core/generation.d.ts.map +1 -0
  57. package/dist/core/generation.js +316 -0
  58. package/dist/core/generation.js.map +1 -0
  59. package/dist/core/locale.d.ts +21 -0
  60. package/dist/core/locale.d.ts.map +1 -1
  61. package/dist/core/locale.js +84 -4
  62. package/dist/core/locale.js.map +1 -1
  63. package/dist/core/outcome.d.ts +134 -0
  64. package/dist/core/outcome.d.ts.map +1 -0
  65. package/dist/core/outcome.js +112 -0
  66. package/dist/core/outcome.js.map +1 -0
  67. package/dist/core/output-path.d.ts +10 -0
  68. package/dist/core/output-path.d.ts.map +1 -0
  69. package/dist/core/output-path.js +15 -0
  70. package/dist/core/output-path.js.map +1 -0
  71. package/dist/core/params.d.ts +68 -0
  72. package/dist/core/params.d.ts.map +1 -0
  73. package/dist/core/params.js +227 -0
  74. package/dist/core/params.js.map +1 -0
  75. package/dist/core/poller.d.ts +6 -1
  76. package/dist/core/poller.d.ts.map +1 -1
  77. package/dist/core/poller.js +17 -8
  78. package/dist/core/poller.js.map +1 -1
  79. package/dist/core/profiles.d.ts +4 -2
  80. package/dist/core/profiles.d.ts.map +1 -1
  81. package/dist/core/profiles.js +20 -9
  82. package/dist/core/profiles.js.map +1 -1
  83. package/dist/core/submission-journal.d.ts +106 -0
  84. package/dist/core/submission-journal.d.ts.map +1 -0
  85. package/dist/core/submission-journal.js +340 -0
  86. package/dist/core/submission-journal.js.map +1 -0
  87. package/dist/index.d.ts +3 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +3 -0
  90. package/dist/index.js.map +1 -1
  91. package/dist/mcp/render.d.ts +11 -0
  92. package/dist/mcp/render.d.ts.map +1 -0
  93. package/dist/mcp/render.js +17 -0
  94. package/dist/mcp/render.js.map +1 -0
  95. package/dist/mcp/server.d.ts.map +1 -1
  96. package/dist/mcp/server.js +95 -337
  97. package/dist/mcp/server.js.map +1 -1
  98. package/package.json +2 -1
@@ -1,8 +1,27 @@
1
+ export type UnsafeConfigPathKind = 'link' | 'not-regular-file' | 'parent-not-directory';
1
2
  export declare class UnsafeConfigPathError extends Error {
2
- constructor();
3
+ readonly kind: UnsafeConfigPathKind;
4
+ constructor(kind: UnsafeConfigPathKind);
3
5
  }
4
- /** Refuse indirect local state: no symlink directories/files or multiply linked files. */
6
+ /** Refuse indirect or non-regular local state: no symlink directories/files, multiply linked files, FIFOs, sockets, devices. */
5
7
  export declare function assertSafeConfigFile(target: string): void;
8
+ export type ConfigFailureCode = 'CONFIG_UNSAFE_PATH' | 'CONFIG_NOT_A_FILE' | 'CONFIG_UNREADABLE' | 'CONFIG_INVALID';
9
+ /**
10
+ * The one mapping from a filesystem condition to a stable code, shared by config.json, profiles.json
11
+ * and the pending-submission journal. The reason is the specific condition; the code is what scripts match.
12
+ */
13
+ export declare function classifyConfigFailure(error: unknown): {
14
+ code: ConfigFailureCode;
15
+ reason: string;
16
+ };
17
+ /**
18
+ * Create the private configuration directory chain (0700) and tighten it if it already exists
19
+ * with wider permissions. Used by every write under ~/.lumenkey: config.json, profiles.json and
20
+ * the pending-submission journal. On Windows, modes are not applied.
21
+ */
22
+ export declare function ensurePrivateConfigDirectory(dir: string, options?: {
23
+ tightenExisting?: boolean;
24
+ }): void;
6
25
  /** Replacement is atomic; every pre-rename failure leaves the previous bytes intact. */
7
26
  export declare function writeAtomicConfigFile(target: string, data: unknown): void;
8
27
  //# sourceMappingURL=atomic-config-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-config-file.d.ts","sourceRoot":"","sources":["../../src/core/atomic-config-file.ts"],"names":[],"mappings":"AAIA,qBAAa,qBAAsB,SAAQ,KAAK;;CAK/C;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAezD;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAoBzE"}
1
+ {"version":3,"file":"atomic-config-file.d.ts","sourceRoot":"","sources":["../../src/core/atomic-config-file.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;AAExF,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,IAAI,EAAE,oBAAoB;gBAA1B,IAAI,EAAE,oBAAoB;CAMvD;AAED,gIAAgI;AAChI,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAWzD;AAED,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAEpH;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqBjG;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAsB3G;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAoBzE"}
@@ -1,13 +1,18 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import crypto from 'node:crypto';
4
+ import { ui } from './locale.js';
4
5
  export class UnsafeConfigPathError extends Error {
5
- constructor() {
6
- super('Configuration paths must not use symbolic links or hard links.');
6
+ kind;
7
+ constructor(kind) {
8
+ super(kind === 'link' ? 'Configuration paths must not use symbolic links or hard links.'
9
+ : kind === 'not-regular-file' ? 'Configuration path exists but is not a regular file.'
10
+ : 'Configuration directory exists but is not a directory.');
11
+ this.kind = kind;
7
12
  this.name = 'UnsafeConfigPathError';
8
13
  }
9
14
  }
10
- /** Refuse indirect local state: no symlink directories/files or multiply linked files. */
15
+ /** Refuse indirect or non-regular local state: no symlink directories/files, multiply linked files, FIFOs, sockets, devices. */
11
16
  export function assertSafeConfigFile(target) {
12
17
  for (const entry of [path.dirname(target), target]) {
13
18
  let stat;
@@ -19,19 +24,70 @@ export function assertSafeConfigFile(target) {
19
24
  continue;
20
25
  throw error;
21
26
  }
22
- if (stat.isSymbolicLink() || (entry === target && stat.isFile() && stat.nlink !== 1)) {
23
- throw new UnsafeConfigPathError();
24
- }
25
- if ((entry === target && !stat.isFile()) ||
26
- (entry !== target && !stat.isDirectory())) {
27
- throw Object.assign(new Error('Unsafe configuration path.'), { code: 'EPERM' });
27
+ if (stat.isSymbolicLink() || (entry === target && stat.isFile() && stat.nlink !== 1))
28
+ throw new UnsafeConfigPathError('link');
29
+ if (entry === target && !stat.isFile())
30
+ throw new UnsafeConfigPathError('not-regular-file');
31
+ if (entry !== target && !stat.isDirectory())
32
+ throw new UnsafeConfigPathError('parent-not-directory');
33
+ }
34
+ }
35
+ /**
36
+ * The one mapping from a filesystem condition to a stable code, shared by config.json, profiles.json
37
+ * and the pending-submission journal. The reason is the specific condition; the code is what scripts match.
38
+ */
39
+ export function classifyConfigFailure(error) {
40
+ if (error instanceof UnsafeConfigPathError) {
41
+ if (error.kind === 'link')
42
+ return { code: 'CONFIG_UNSAFE_PATH', reason: ui('Symbolic links and hard links are not supported for configuration; use a regular private file and directory.', '配置不支持符号链接或硬链接;请使用独立的普通文件和目录。') };
43
+ if (error.kind === 'not-regular-file')
44
+ return { code: 'CONFIG_NOT_A_FILE', reason: ui('The path exists but is not a regular file (a directory, FIFO, socket or device); replace it with a regular file.', '该路径存在,但不是普通文件(目录、FIFO、套接字或设备);请换成普通文件。') };
45
+ return { code: 'CONFIG_NOT_A_FILE', reason: ui('The configuration directory exists but is not a directory.', '配置目录存在,但不是目录。') };
46
+ }
47
+ // User-facing reasons name the condition, never the errno: scripts match the code, people read the sentence.
48
+ const sys = error;
49
+ if (sys?.code === 'ENOTDIR')
50
+ return { code: 'CONFIG_NOT_A_FILE', reason: ui('A component of the configuration path is not a directory.', '配置路径中有一段不是目录。') };
51
+ if (sys?.code === 'EISDIR')
52
+ return { code: 'CONFIG_NOT_A_FILE', reason: ui('The path is a directory, not a regular file.', '该路径是目录,不是普通文件。') };
53
+ if (sys?.code === 'EACCES' || sys?.code === 'EPERM')
54
+ return { code: 'CONFIG_UNREADABLE', reason: ui('Permission denied for the configuration path.', '没有访问配置路径的权限。') };
55
+ return { code: 'CONFIG_INVALID', reason: ui('The config file could not be read.', '配置文件无法读取。') };
56
+ }
57
+ /**
58
+ * Create the private configuration directory chain (0700) and tighten it if it already exists
59
+ * with wider permissions. Used by every write under ~/.lumenkey: config.json, profiles.json and
60
+ * the pending-submission journal. On Windows, modes are not applied.
61
+ */
62
+ export function ensurePrivateConfigDirectory(dir, options = {}) {
63
+ const chain = [];
64
+ let current = dir;
65
+ for (;;) {
66
+ chain.unshift(current);
67
+ const parent = path.dirname(current);
68
+ if (path.basename(current) === '.lumenkey' || parent === current)
69
+ break;
70
+ current = parent;
71
+ }
72
+ // Only directories at or below the .lumenkey root are created or tightened; the home directory itself is never touched.
73
+ // A directory the user supplied (LUMENKEY_JOURNAL_DIR) is created 0700 when absent but never re-moded when it exists:
74
+ // it may be shared on purpose, and chmod-ing /tmp or a mounted volume is not this tool's call.
75
+ const root = chain.findIndex(entry => path.basename(entry) === '.lumenkey');
76
+ const tighten = options.tightenExisting ?? root >= 0;
77
+ for (const directory of chain.slice(root < 0 ? chain.length - 1 : root)) {
78
+ const existed = fs.existsSync(directory);
79
+ fs.mkdirSync(directory, { recursive: true, mode: 0o700 });
80
+ if (process.platform !== 'win32' && (tighten || !existed)) {
81
+ const stat = fs.lstatSync(directory);
82
+ if (stat.isDirectory() && (stat.mode & 0o077) !== 0)
83
+ fs.chmodSync(directory, 0o700);
28
84
  }
29
85
  }
30
86
  }
31
87
  /** Replacement is atomic; every pre-rename failure leaves the previous bytes intact. */
32
88
  export function writeAtomicConfigFile(target, data) {
33
89
  assertSafeConfigFile(target);
34
- fs.mkdirSync(path.dirname(target), { recursive: true, mode: 0o700 });
90
+ ensurePrivateConfigDirectory(path.dirname(target));
35
91
  assertSafeConfigFile(target);
36
92
  const temp = path.join(path.dirname(target), `.${path.basename(target)}.${crypto.randomUUID()}.tmp`);
37
93
  let fd;
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-config-file.js","sourceRoot":"","sources":["../../src/core/atomic-config-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atomic-config-file.js","sourceRoot":"","sources":["../../src/core/atomic-config-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { LumenKeyClient } from './client.js';
2
+ import { type ChatSuccess, type Outcome } from './outcome.js';
3
+ export interface ChatRequest {
4
+ modelId: string;
5
+ prompt: string;
6
+ systemPrompt?: string;
7
+ maxCredits?: number;
8
+ idempotencyKey?: string;
9
+ promptKind?: 'flag' | 'field';
10
+ }
11
+ /** One billable chat completion. The key is fixed here so success and failure both report what was sent. */
12
+ export declare function runChat(client: LumenKeyClient, req: ChatRequest): Promise<Outcome<ChatSuccess>>;
13
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/core/chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAwB,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,4GAA4G;AAC5G,wBAAsB,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAoBrG"}
@@ -0,0 +1,31 @@
1
+ import crypto from 'node:crypto';
2
+ import { assertIdempotencyKey } from './client.js';
3
+ import { blankPromptError } from './generation-input.js';
4
+ import { isBlankPrompt } from './locale.js';
5
+ import { chatOutcome, failure } from './outcome.js';
6
+ /** One billable chat completion. The key is fixed here so success and failure both report what was sent. */
7
+ export async function runChat(client, req) {
8
+ let idempotencyKey;
9
+ try {
10
+ if (isBlankPrompt(req.prompt))
11
+ throw blankPromptError();
12
+ client.requireKey();
13
+ if (req.idempotencyKey !== undefined)
14
+ assertIdempotencyKey(req.idempotencyKey);
15
+ // From here on the key is fixed: every failure, before or after the POST, must report it.
16
+ idempotencyKey = req.idempotencyKey ?? crypto.randomUUID();
17
+ const response = await client.createChatCompletion({
18
+ model: req.modelId,
19
+ ...(req.maxCredits === undefined ? {} : { max_credits: req.maxCredits }),
20
+ messages: [
21
+ ...(req.systemPrompt === undefined ? [] : [{ role: 'system', content: req.systemPrompt }]),
22
+ { role: 'user', content: req.prompt.trim() },
23
+ ],
24
+ }, idempotencyKey);
25
+ return chatOutcome(response, idempotencyKey, req.modelId);
26
+ }
27
+ catch (error) {
28
+ return failure(error, idempotencyKey === undefined ? {} : { idempotencyKey });
29
+ }
30
+ }
31
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/core/chat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAkB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAkC,MAAM,cAAc,CAAC;AAWpF,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAsB,EAAE,GAAgB;IACpE,IAAI,cAAkC,CAAC;IACvC,IAAI,CAAC;QACH,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,gBAAgB,EAAE,CAAC;QACxD,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS;YAAE,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC/E,0FAA0F;QAC1F,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC;YACjD,KAAK,EAAE,GAAG,CAAC,OAAO;YAClB,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;YACxE,QAAQ,EAAE;gBACR,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1F,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;aAC7C;SACF,EAAE,cAAc,CAAC,CAAC;QACnB,OAAO,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
@@ -1,4 +1,10 @@
1
1
  import type { LumenKeyConfig, GenerationQuoteRequest, GenerationQuoteResponse, CreateGenerationJobRequest, CreateGenerationJobResponse, GenerationJobDetail, ModelItem, BillingBalance } from './types.js';
2
+ export interface SenderIdentity {
3
+ /** Normalized gateway origin, e.g. https://123outlets.com */
4
+ origin: string;
5
+ /** SHA-256 hex of the API key; never the key. */
6
+ keyFingerprint: string;
7
+ }
2
8
  export type ChatBilling = Readonly<{
3
9
  status: 'SETTLED';
4
10
  credits: string;
@@ -37,12 +43,24 @@ export declare class LumenKeyClient {
37
43
  private timeoutMs;
38
44
  constructor(config: LumenKeyConfig);
39
45
  requireKey(): void;
46
+ /**
47
+ * Who this client submits as: the normalized gateway origin and a SHA-256 fingerprint of the
48
+ * API key. The pending-submission journal stores this so a record is only replayed by the
49
+ * account and gateway that created it. The key itself never leaves the client; the hash adds
50
+ * no exposure because config.json next to the journal already holds the key in clear.
51
+ */
52
+ senderIdentity(): SenderIdentity;
40
53
  private getHeaders;
41
54
  private request;
42
55
  /**
43
56
  * Step 1: Request generation quote
44
57
  */
45
58
  getQuote(req: GenerationQuoteRequest): Promise<GenerationQuoteResponse>;
59
+ /**
60
+ * The projectId that createJob() will send for this request. The server's idempotency
61
+ * fingerprint includes it, so a replay must reuse the exact value; callers persist it.
62
+ */
63
+ resolveProjectId(explicitProjectId?: string): string;
46
64
  /**
47
65
  * Step 2: Create generation job
48
66
  */
@@ -64,7 +82,7 @@ export declare class LumenKeyClient {
64
82
  * Checks /v1/models (requires auth) and falls back to /public/v1/models (public catalog).
65
83
  */
66
84
  listModels(type?: string): Promise<ModelItem[]>;
67
- /** Project caller-supplied fields onto the current catalog; defaults belong to the gateway. */
85
+ /** Legacy projection helper, not used by generation commands. CLI/MCP generation uses buildGenerationInput for explicit defaults. */
68
86
  buildModelInput(modelId: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
69
87
  /**
70
88
  * Check account credit balance via GET /v1/billing/balance
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { createHash } from 'node:crypto';
1
2
  import { ProxyAgent, fetch as undiciFetch } from 'undici';
2
- import { billingSentence, blankPromptSentence, chatFailureSettlementAdvice, errorSentence, hasErrorSentence, internalUpstreamError, isBlankPrompt, langFlag, proxyTransportDetail, textCatalogMissDetail, transportFailureDetail, ui } from './locale.js';
3
+ import { billingSentence, blankPromptSentence, chatFailureSettlementAdvice, chatRetryAdvice, errorSentence, hasErrorSentence, internalUpstreamError, isBlankPrompt, langFlag, proxyTransportDetail, textCatalogMissDetail, transportFailureDetail, ui } from './locale.js';
3
4
  import { normalizeGatewayOrigin } from './origin.js';
4
5
  export function parseChatBilling(value) {
5
6
  if (value === undefined)
@@ -199,6 +200,18 @@ function jobResponse(res) {
199
200
  throw new LumenKeyError('JOB_RESPONSE_INVALID');
200
201
  return { ...res, id, jobId: id };
201
202
  }
203
+ const SETTLEMENT_PENDING_CODES = ['STREAM_INPUT_SETTLEMENT_PENDING', 'STREAM_SETTLEMENT_PENDING'];
204
+ /** Timeout, transport loss and 5xx without a billing receipt leave settlement unknown; the retry advice is the same-key replay. */
205
+ function chatPostFailure(error, idempotencyKey) {
206
+ if (!(error instanceof LumenKeyError) || error.billing || SETTLEMENT_PENDING_CODES.includes(error.code))
207
+ return error;
208
+ // A 2xx whose body cannot be read is as unsettled as a timeout: the server almost certainly charged.
209
+ const unsettled = ['REQUEST_TIMEOUT', 'TRANSPORT_FAILED', 'RESPONSE_JSON_INVALID', 'RESPONSE_TOO_LARGE'].includes(error.code) || (error.status !== undefined && error.status >= 500);
210
+ if (!unsettled)
211
+ return error;
212
+ const base = error.status !== undefined && error.status >= 500 ? error.publicMessage : `${error.publicMessage} ${chatFailureSettlementAdvice()}`;
213
+ return new LumenKeyError(error.code, error.status, error.retryAfterMs, `${base} ${chatRetryAdvice(idempotencyKey)}`);
214
+ }
202
215
  export class LumenKeyClient {
203
216
  apiKey;
204
217
  baseUrl;
@@ -230,6 +243,16 @@ export class LumenKeyClient {
230
243
  if (!this.apiKey?.trim())
231
244
  throw new LumenKeyError('API_KEY_NOT_CONFIGURED');
232
245
  }
246
+ /**
247
+ * Who this client submits as: the normalized gateway origin and a SHA-256 fingerprint of the
248
+ * API key. The pending-submission journal stores this so a record is only replayed by the
249
+ * account and gateway that created it. The key itself never leaves the client; the hash adds
250
+ * no exposure because config.json next to the journal already holds the key in clear.
251
+ */
252
+ senderIdentity() {
253
+ this.requireKey();
254
+ return { origin: this.baseUrl, keyFingerprint: createHash('sha256').update(this.apiKey).digest('hex') };
255
+ }
233
256
  getHeaders(idempotencyKey) {
234
257
  const headers = {
235
258
  'Content-Type': 'application/json',
@@ -349,14 +372,21 @@ export class LumenKeyClient {
349
372
  throw new LumenKeyError('QUOTE_EXPIRED');
350
373
  return { quoteId: quote.quoteId, modelId: quote.modelId, credits: quote.credits, expiresAt: quote.expiresAt };
351
374
  }
375
+ /**
376
+ * The projectId that createJob() will send for this request. The server's idempotency
377
+ * fingerprint includes it, so a replay must reuse the exact value; callers persist it.
378
+ */
379
+ resolveProjectId(explicitProjectId) {
380
+ const explicit = (explicitProjectId || this.projectId || '').trim();
381
+ return UUID.test(explicit) ? explicit : (this.implicitProjectId ||= crypto.randomUUID());
382
+ }
352
383
  /**
353
384
  * Step 2: Create generation job
354
385
  */
355
386
  async createJob(req, idempotencyKey) {
356
387
  const key = idempotencyKey;
357
388
  assertIdempotencyKey(key);
358
- const explicit = (req.projectId || this.projectId || '').trim();
359
- const projectId = UUID.test(explicit) ? explicit : (this.implicitProjectId ||= crypto.randomUUID());
389
+ const projectId = this.resolveProjectId(req.projectId);
360
390
  const body = {
361
391
  ...req,
362
392
  projectId,
@@ -406,7 +436,7 @@ export class LumenKeyClient {
406
436
  throw new LumenKeyError('CATALOG_RESPONSE_INVALID');
407
437
  return type ? res.items.filter(m => m.type === type || m.capabilities?.includes(type) || (type === 'text' && (m.type === 'chat' || m.capabilities?.includes('chat')))) : res.items;
408
438
  }
409
- /** Project caller-supplied fields onto the current catalog; defaults belong to the gateway. */
439
+ /** Legacy projection helper, not used by generation commands. CLI/MCP generation uses buildGenerationInput for explicit defaults. */
410
440
  async buildModelInput(modelId, fields) {
411
441
  const model = (await this.listModels()).find(item => item.id === modelId);
412
442
  if (!model)
@@ -442,13 +472,22 @@ export class LumenKeyClient {
442
472
  const models = await this.listModels('text');
443
473
  if (!models.some(model => model.id === req.model))
444
474
  throw new LumenKeyError('MODEL_NOT_IN_CATALOG', undefined, undefined, textCatalogMissDetail(req.model));
445
- const result = await this.request('/v1/chat/completions', {
446
- method: 'POST',
447
- body: JSON.stringify({
448
- stream: false,
449
- ...req,
450
- }),
451
- }, idempotencyKey);
475
+ let result;
476
+ try {
477
+ result = await this.request('/v1/chat/completions', {
478
+ method: 'POST',
479
+ body: JSON.stringify({
480
+ stream: false,
481
+ ...req,
482
+ }),
483
+ }, idempotencyKey);
484
+ }
485
+ catch (error) {
486
+ // From here on the key was actually sent: every failure must carry it, and a
487
+ // settlement-unknown failure must name the same-key retry instead of a fresh request.
488
+ const failed = chatPostFailure(error, idempotencyKey);
489
+ throw failed instanceof Error ? Object.assign(failed, { idempotencyKey }) : failed;
490
+ }
452
491
  const billing = parseChatBilling(result?.billing);
453
492
  const message = result?.choices?.[0]?.message;
454
493
  if (typeof message?.content === 'string' && internalUpstreamError(message.content)) {
@@ -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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"}
@@ -1 +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"}
1
+ {"version":3,"file":"config-dir.d.ts","sourceRoot":"","sources":["../../src/core/config-dir.ts"],"names":[],"mappings":"AAKA,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAYhE"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
- import { errorSentence, ui } from './locale.js';
3
+ import { ui } from './locale.js';
4
+ import { ConfigError } from './config-error.js';
4
5
  /** chmod 000 on the config directory makes existsSync return false. That must not look like "no key". */
5
6
  export function assertConfigDirReadable(targetPath) {
6
7
  const dir = path.dirname(targetPath);
@@ -12,9 +13,7 @@ export function assertConfigDirReadable(targetPath) {
12
13
  if (code === 'ENOENT' || code === 'ENOTDIR')
13
14
  return;
14
15
  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;
16
+ throw new ConfigError('CONFIG_UNREADABLE', targetPath, ui('The config directory could not be read.', '配置目录无法读取。'));
18
17
  }
19
18
  throw error;
20
19
  }
@@ -1 +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"}
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,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,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,IAAI,WAAW,CAAC,mBAAmB,EAAE,UAAU,EAAE,EAAE,CAAC,yCAAyC,EAAE,WAAW,CAAC,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { LumenKeyError } from './client.js';
2
+ export type ConfigErrorCode = 'CONFIG_INVALID' | 'CONFIG_UNREADABLE' | 'CONFIG_UNSAFE_PATH' | 'CONFIG_NOT_A_FILE';
3
+ /**
4
+ * Local configuration failure. Shares the LumenKeyError root so every surface renders it
5
+ * through the same envelope: `message` is the stable sentence, the file path and the
6
+ * specific reason travel as `path` / `detail`, and only the legacy `error` string keeps
7
+ * the concatenated form that older consumers already parse.
8
+ */
9
+ export declare class ConfigError extends LumenKeyError {
10
+ readonly path: string;
11
+ readonly detail: string;
12
+ constructor(code: ConfigErrorCode, configPath: string, reason: string);
13
+ }
14
+ //# sourceMappingURL=config-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-error.d.ts","sourceRoot":"","sources":["../../src/core/config-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAElH;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAOtE"}
@@ -0,0 +1,20 @@
1
+ import { LumenKeyError } from './client.js';
2
+ import { errorSentence } from './locale.js';
3
+ /**
4
+ * Local configuration failure. Shares the LumenKeyError root so every surface renders it
5
+ * through the same envelope: `message` is the stable sentence, the file path and the
6
+ * specific reason travel as `path` / `detail`, and only the legacy `error` string keeps
7
+ * the concatenated form that older consumers already parse.
8
+ */
9
+ export class ConfigError extends LumenKeyError {
10
+ path;
11
+ detail;
12
+ constructor(code, configPath, reason) {
13
+ super(code);
14
+ this.name = 'ConfigError';
15
+ this.path = configPath;
16
+ this.detail = reason;
17
+ this.message = `${errorSentence(code)} (${code}) ${configPath}: ${reason}`;
18
+ }
19
+ }
20
+ //# sourceMappingURL=config-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-error.js","sourceRoot":"","sources":["../../src/core/config-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,IAAI,CAAS;IACb,MAAM,CAAS;IACxB,YAAY,IAAqB,EAAE,UAAkB,EAAE,MAAc;QACnE,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,UAAU,KAAK,MAAM,EAAE,CAAC;IAC7E,CAAC;CACF"}
@@ -1,9 +1,5 @@
1
1
  import type { LumenKeyConfig } from './types.js';
2
- export declare class ConfigError extends Error {
3
- readonly code: 'CONFIG_INVALID' | 'CONFIG_UNREADABLE' | 'CONFIG_UNSAFE_PATH';
4
- readonly configPath: string;
5
- constructor(code: 'CONFIG_INVALID' | 'CONFIG_UNREADABLE' | 'CONFIG_UNSAFE_PATH', configPath: string, reason: string);
6
- }
2
+ export { ConfigError } from './config-error.js';
7
3
  export declare function loadConfig(): LumenKeyConfig;
8
4
  export declare function saveConfig(updates: Partial<LumenKeyConfig>): void;
9
5
  /**
@@ -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;AAqBjD,qBAAa,WAAY,SAAQ,KAAK;IACxB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,oBAAoB;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAAhG,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,oBAAoB,EAAW,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAItI;AAoFD,wBAAgB,UAAU,IAAI,cAAc,CAmC3C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAyBjE;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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA2EhD,wBAAgB,UAAU,IAAI,cAAc,CAmC3C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAiBjE;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"}