@lumenkey/cli 0.2.0 → 0.2.2

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 (59) hide show
  1. package/README.md +21 -3
  2. package/dist/cli/copied.d.ts +12 -0
  3. package/dist/cli/copied.d.ts.map +1 -1
  4. package/dist/cli/copied.js +143 -93
  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 +23 -27
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/core/atomic-config-file.d.ts +5 -0
  10. package/dist/core/atomic-config-file.d.ts.map +1 -0
  11. package/dist/core/atomic-config-file.js +54 -0
  12. package/dist/core/atomic-config-file.js.map +1 -0
  13. package/dist/core/client.d.ts +9 -1
  14. package/dist/core/client.d.ts.map +1 -1
  15. package/dist/core/client.js +32 -8
  16. package/dist/core/client.js.map +1 -1
  17. package/dist/core/config.d.ts.map +1 -1
  18. package/dist/core/config.js +19 -4
  19. package/dist/core/config.js.map +1 -1
  20. package/dist/core/download.d.ts +3 -0
  21. package/dist/core/download.d.ts.map +1 -0
  22. package/dist/core/download.js +100 -0
  23. package/dist/core/download.js.map +1 -0
  24. package/dist/core/error-result.d.ts +14 -0
  25. package/dist/core/error-result.d.ts.map +1 -0
  26. package/dist/core/error-result.js +25 -0
  27. package/dist/core/error-result.js.map +1 -0
  28. package/dist/core/generation-result.d.ts +18 -0
  29. package/dist/core/generation-result.d.ts.map +1 -0
  30. package/dist/core/generation-result.js +22 -0
  31. package/dist/core/generation-result.js.map +1 -0
  32. package/dist/core/locale.d.ts +1 -0
  33. package/dist/core/locale.d.ts.map +1 -1
  34. package/dist/core/locale.js +41 -0
  35. package/dist/core/locale.js.map +1 -1
  36. package/dist/core/poller.d.ts +13 -4
  37. package/dist/core/poller.d.ts.map +1 -1
  38. package/dist/core/poller.js +46 -53
  39. package/dist/core/poller.js.map +1 -1
  40. package/dist/core/profiles.d.ts +5 -1
  41. package/dist/core/profiles.d.ts.map +1 -1
  42. package/dist/core/profiles.js +59 -12
  43. package/dist/core/profiles.js.map +1 -1
  44. package/dist/core/set-values.d.ts +3 -0
  45. package/dist/core/set-values.d.ts.map +1 -1
  46. package/dist/core/set-values.js +40 -14
  47. package/dist/core/set-values.js.map +1 -1
  48. package/dist/core/version.d.ts +2 -0
  49. package/dist/core/version.d.ts.map +1 -0
  50. package/dist/core/version.js +3 -0
  51. package/dist/core/version.js.map +1 -0
  52. package/dist/core/wait.d.ts +1 -0
  53. package/dist/core/wait.d.ts.map +1 -1
  54. package/dist/core/wait.js +2 -33
  55. package/dist/core/wait.js.map +1 -1
  56. package/dist/mcp/server.d.ts.map +1 -1
  57. package/dist/mcp/server.js +96 -94
  58. package/dist/mcp/server.js.map +1 -1
  59. package/package.json +10 -2
@@ -4,14 +4,29 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
4
4
  import { z } from 'zod';
5
5
  import { loadConfig } from '../core/config.js';
6
6
  import { assertSupportedLang, LumenKeyClient, LumenKeyError, parseChatBilling } from '../core/client.js';
7
- import { blankPromptSentence, idempotencyKeyMessages, isBlankPrompt, missingModelSentence, ui } from '../core/locale.js';
8
- import { pollJob, downloadFile, assertJobResult } from '../core/poller.js';
7
+ import { blankPromptSentence, idempotencyKeyMessages, isBlankPrompt, jobStatusText, missingModelSentence, ui, waitTimeoutDetail } from '../core/locale.js';
8
+ import { pollJob, assertJobResult } from '../core/poller.js';
9
+ import { chatText, errorResult } from '../core/error-result.js';
10
+ import { generationResult } from '../core/generation-result.js';
11
+ import { packageVersion } from '../core/version.js';
9
12
  import { explainModel } from '../core/explain.js';
10
13
  import { waitForJob } from '../core/wait.js';
11
14
  import { buildGenerationInput, quoteCreditLimitError } from '../cli/copied.js';
12
15
  import { validateKnownEnums } from '../core/set-values.js';
13
16
  function errorText(error) {
14
- return `Error: ${error instanceof Error ? error.message : 'Request failed'}`;
17
+ return `${ui('Error: ', '错误:')}${error instanceof Error ? error.message : ui('Request failed', '请求失败')}`;
18
+ }
19
+ function jobToolResult(detail) {
20
+ let failure;
21
+ try {
22
+ assertJobResult(detail, detail.status === 'succeeded');
23
+ }
24
+ catch (error) {
25
+ failure = error;
26
+ }
27
+ return { ...(failure ? { isError: true } : {}), content: [{ type: 'text', text: JSON.stringify({ ...detail,
28
+ ...(failure ? { failureMessage: errorText(failure) } : {}),
29
+ }) }] };
15
30
  }
16
31
  function requiredPrompt(description) {
17
32
  return z.string().superRefine((value, ctx) => {
@@ -22,8 +37,8 @@ function requiredPrompt(description) {
22
37
  }
23
38
  function idempotencyKeyField(description) {
24
39
  const text = idempotencyKeyMessages();
25
- const field = z.string().trim().superRefine((value, ctx) => {
26
- if (!value) {
40
+ const field = z.string().superRefine((value, ctx) => {
41
+ if (!value.trim()) {
27
42
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: text.required });
28
43
  return;
29
44
  }
@@ -43,7 +58,7 @@ export function createMcpServer() {
43
58
  assertSupportedLang();
44
59
  const server = new McpServer({
45
60
  name: 'lumenkey-mcp-server',
46
- version: '0.2.0',
61
+ version: packageVersion,
47
62
  });
48
63
  const config = loadConfig();
49
64
  const client = new LumenKeyClient(config);
@@ -54,7 +69,7 @@ export function createMcpServer() {
54
69
  * Tool: List available models
55
70
  */
56
71
  tool('lumenkey_list_models', ui('List all available AI models (video, image, text, audio) from LumenKey catalog with schemas and pricing', '读取光钥模型目录,包含视频、图片、文本、音频的参数结构与价格。'), {
57
- type: z.enum(['video', 'image', 'text', 'audio']).optional().describe('Filter models by type'),
72
+ type: z.enum(['video', 'image', 'text', 'audio']).optional().describe(ui('Filter models by type', '按模型类型筛选')),
58
73
  }, async ({ type }) => {
59
74
  try {
60
75
  const models = await client.listModels(type);
@@ -81,19 +96,21 @@ export function createMcpServer() {
81
96
  * Tool: Generate Video (Seedance 2.0, Wan 3.0, etc.)
82
97
  */
83
98
  tool('lumenkey_generate_video', ui('Quote a LumenKey video. Nothing is submitted until confirm is true.', '获取光钥视频报价;只有 confirm 为 true 时才提交计费生成。'), {
84
- modelId: z.string().describe('Model ID (e.g. doubao-seedance-2.0, wan3.0-video)'),
85
- prompt: requiredPrompt('Text description of the video to generate'),
86
- imageUrl: z.string().optional().describe('Optional source image URL for image-to-video'),
87
- duration: z.number().optional().describe('Video duration in seconds (e.g. 5, 10)'),
88
- resolution: z.string().optional().describe('Resolution declared by the model schema'),
89
- ratio: z.string().optional().describe('Aspect ratio declared by the model schema'),
90
- set: z.array(z.string()).optional().describe('Extra key=value pairs declared by the model schema'),
91
- projectId: z.string().optional().describe('Leave empty. The client fills this.'),
92
- confirm: z.boolean().optional().describe('Explicitly authorize billable submission; omitted means quote only'),
93
- idempotencyKey: idempotencyKeyField('Optional. Generated when omitted. Do not ask the user for it'),
94
- maxCredits: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional().describe('Maximum accepted quote credits'),
95
- downloadPath: z.string().optional().describe('Local file path to save the generated MP4 video'),
96
- }, async ({ modelId, prompt, imageUrl, duration, resolution, ratio, set, projectId, downloadPath, confirm, idempotencyKey, maxCredits }) => {
99
+ modelId: z.string().describe(ui('Model ID (e.g. doubao-seedance-2.0, wan3.0-video)', '模型 ID(例如 doubao-seedance-2.0、wan3.0-video)')),
100
+ prompt: requiredPrompt(ui('Text description of the video to generate', '要生成的视频的文字描述')),
101
+ imageUrl: z.string().optional().describe(ui('Optional source image URL for image-to-video', '可选的图生视频源图片 URL')),
102
+ duration: z.number().optional().describe(ui('Video duration in seconds (e.g. 5, 10)', '视频时长,单位为秒(例如 5、10)')),
103
+ resolution: z.string().optional().describe(ui('Resolution declared by the model schema', '模型参数结构声明的分辨率')),
104
+ ratio: z.string().optional().describe(ui('Aspect ratio declared by the model schema', '模型参数结构声明的宽高比')),
105
+ set: z.array(z.string()).optional().describe(ui('Extra key=value pairs declared by the model schema', '模型参数结构声明的额外 key=value 参数')),
106
+ projectId: z.string().optional().describe(ui('Leave empty. The client fills this.', '请留空,由客户端填入。')),
107
+ confirm: z.boolean().optional().describe(ui('Explicitly authorize billable submission; omitted means quote only', '显式授权提交计费生成;省略时仅获取报价')),
108
+ idempotencyKey: idempotencyKeyField(ui('Optional. Generated when omitted. Do not ask the user for it', '可选,省略时自动生成,无需向用户索取')),
109
+ maxCredits: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional().describe(ui('Maximum accepted quote credits', '可接受的报价算力点上限')),
110
+ downloadPath: z.string().optional().describe(ui('Local file path to save the generated MP4 video', '保存生成 MP4 视频的本地文件路径')),
111
+ intervalMs: z.number().positive().finite().max(2_147_483_647).optional().describe(ui('Polling interval in milliseconds; defaults to 5000', '查询间隔,单位为毫秒;默认 5000')),
112
+ timeoutMs: z.number().nonnegative().finite().max(Number.MAX_SAFE_INTEGER - Date.now()).optional().describe(ui('Wait timeout in milliseconds; defaults to 1800000. Does not cancel the task', '等待超时,单位为毫秒;默认 1800000,超时不取消任务')),
113
+ }, async ({ modelId, prompt, imageUrl, duration, resolution, ratio, set, projectId, downloadPath, confirm, idempotencyKey, maxCredits, intervalMs, timeoutMs }) => {
97
114
  let createdJob;
98
115
  try {
99
116
  const built = await buildGenerationInput(modelId, {
@@ -105,16 +122,16 @@ export function createMcpServer() {
105
122
  }, set || []);
106
123
  const input = built.input;
107
124
  validateKnownEnums(built.properties, input);
108
- process.stderr.write(`[LumenKey MCP] Quoting video generation for ${modelId}...\n`);
125
+ process.stderr.write(`[LumenKey MCP] ${ui(`Quoting video generation for ${modelId}...`, `正在获取 ${modelId} 的视频生成报价...`)}\n`);
109
126
  // Step 1: Quote
110
127
  const quote = await client.getQuote({ modelId, input });
111
128
  if (maxCredits !== undefined && quote.credits > maxCredits)
112
129
  throw quoteCreditLimitError('maxCredits');
113
130
  if (!confirm)
114
131
  return { content: [{ type: 'text', text: JSON.stringify({ quote, requiresConfirmation: true, submitted: false }) }] };
115
- const key = (idempotencyKey == null ? '' : String(idempotencyKey)).trim() || crypto.randomUUID();
132
+ const key = idempotencyKey ?? crypto.randomUUID();
116
133
  // Step 2: Create Job
117
- process.stderr.write(`[LumenKey MCP] Submitting job with quote ${quote.quoteId} (${quote.credits} credits)...\n`);
134
+ process.stderr.write(`[LumenKey MCP] ${ui(`Submitting job with quote ${quote.quoteId} (${quote.credits} credits)...`, `正在提交任务,报价编号:${quote.quoteId}(${quote.credits} 算力点)...`)}\n`);
118
135
  const job = await client.createJob({
119
136
  quoteId: quote.quoteId,
120
137
  projectId,
@@ -122,30 +139,23 @@ export function createMcpServer() {
122
139
  }, key);
123
140
  createdJob = { jobId: job.jobId, idempotencyKey: key };
124
141
  // Step 3: Poll
125
- process.stderr.write(`[LumenKey MCP] Polling job ${job.jobId}...\n`);
142
+ process.stderr.write(`[LumenKey MCP] ${ui(`Polling job ${job.jobId}...`, `正在查询任务 ${job.jobId} 的进度...`)}\n`);
126
143
  const detail = await pollJob(client, job.jobId, {
144
+ initialIntervalMs: intervalMs, timeoutMs,
127
145
  onProgress: (d) => {
128
- process.stderr.write(`[LumenKey MCP] Job ${job.jobId} status: ${d.status}\n`);
146
+ process.stderr.write(`[LumenKey MCP] ${ui(`Job ${job.jobId} status: ${d.status}`, `任务 ${job.jobId} 状态:${jobStatusText(d.status)}`)}\n`);
129
147
  },
130
148
  });
131
- const outputUrl = detail.outputs?.[0]?.url;
132
- let savedPath;
133
- if (outputUrl && downloadPath) {
134
- process.stderr.write(`[LumenKey MCP] Downloading video to ${downloadPath}...\n`);
135
- savedPath = await downloadFile(outputUrl, downloadPath);
136
- }
149
+ if (downloadPath)
150
+ process.stderr.write(`[LumenKey MCP] ${ui('Downloading video...', '正在下载视频...')}\n`);
151
+ const result = await generationResult(detail, key, downloadPath);
137
152
  return {
138
153
  content: [
139
154
  {
140
155
  type: 'text',
141
156
  text: JSON.stringify({
142
- success: true,
143
- jobId: detail.jobId,
144
- status: detail.status,
145
- idempotencyKey: key,
146
- videoUrl: outputUrl,
147
- urls: (detail.outputs ?? []).map((item) => item.url).filter((url) => typeof url === 'string'),
148
- localFile: savedPath,
157
+ ...result,
158
+ videoUrl: result.urls[0],
149
159
  }, null, 2),
150
160
  },
151
161
  ],
@@ -155,7 +165,7 @@ export function createMcpServer() {
155
165
  const message = errorText(err);
156
166
  return {
157
167
  isError: true,
158
- content: [{ type: 'text', text: createdJob ? JSON.stringify({ error: message, ...createdJob }) : message }],
168
+ content: [{ type: 'text', text: createdJob ? JSON.stringify({ ...errorResult(err), error: message, ...createdJob }) : message }],
159
169
  };
160
170
  }
161
171
  });
@@ -163,19 +173,21 @@ export function createMcpServer() {
163
173
  * Tool: Generate Image
164
174
  */
165
175
  tool('lumenkey_generate_image', ui('Quote a LumenKey image. Nothing is submitted until confirm is true.', '获取光钥图片报价;只有 confirm 为 true 时才提交计费生成。'), {
166
- modelId: z.string().describe('Model ID (e.g. flux-2-pro)'),
167
- prompt: requiredPrompt('Prompt for image generation'),
168
- imageUrl: z.string().optional().describe('Reference image URL, only when declared in the model inputSchema'),
169
- resolution: z.string().optional().describe('Model-specific resolution (e.g. 2k or 4k); omitted uses gateway defaults'),
170
- ratio: z.string().optional().describe('Model-specific aspect ratio; omitted uses gateway defaults'),
171
- size: z.string().optional().describe('Legacy size, only for models whose inputSchema explicitly declares size'),
172
- projectId: z.string().optional(),
173
- confirm: z.boolean().optional().describe('Explicitly authorize billable submission; omitted means quote only'),
174
- idempotencyKey: idempotencyKeyField(),
175
- maxCredits: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional(),
176
- set: z.array(z.string()).optional().describe('Extra key=value pairs'),
177
- downloadPath: z.string().optional().describe('Local file path to save the generated image'),
178
- }, async ({ modelId, prompt, imageUrl, resolution, ratio, size, set, downloadPath, projectId, confirm, idempotencyKey, maxCredits }) => {
176
+ modelId: z.string().describe(ui('Model ID (e.g. flux-2-pro)', '模型 ID(例如 flux-2-pro)')),
177
+ prompt: requiredPrompt(ui('Prompt for image generation', '图片生成提示词')),
178
+ imageUrl: z.string().optional().describe(ui('Reference image URL, only when declared in the model inputSchema', '参考图片 URL,仅用于 inputSchema 声明该参数的模型')),
179
+ resolution: z.string().optional().describe(ui('Model-specific resolution (e.g. 2k or 4k); omitted uses gateway defaults', '模型支持的分辨率(例如 2k、4k);省略时使用网关默认值')),
180
+ ratio: z.string().optional().describe(ui('Model-specific aspect ratio; omitted uses gateway defaults', '模型支持的宽高比;省略时使用网关默认值')),
181
+ size: z.string().optional().describe(ui('Legacy size, only for models whose inputSchema explicitly declares size', '旧版尺寸参数,仅用于 inputSchema 显式声明 size 的模型')),
182
+ projectId: z.string().optional().describe(ui('Leave empty. The client fills this.', '请留空,由客户端填入。')),
183
+ confirm: z.boolean().optional().describe(ui('Explicitly authorize billable submission; omitted means quote only', '显式授权提交计费生成;省略时仅获取报价')),
184
+ idempotencyKey: idempotencyKeyField(ui('Optional. Generated when omitted. Do not ask the user for it', '可选,省略时自动生成,无需向用户索取')),
185
+ maxCredits: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional().describe(ui('Maximum accepted quote credits', '可接受的报价算力点上限')),
186
+ set: z.array(z.string()).optional().describe(ui('Extra key=value pairs', '额外的 key=value 参数')),
187
+ downloadPath: z.string().optional().describe(ui('Local file path to save the generated image', '保存生成图片的本地文件路径')),
188
+ intervalMs: z.number().positive().finite().max(2_147_483_647).optional().describe(ui('Polling interval in milliseconds; defaults to 5000', '查询间隔,单位为毫秒;默认 5000')),
189
+ timeoutMs: z.number().nonnegative().finite().max(Number.MAX_SAFE_INTEGER - Date.now()).optional().describe(ui('Wait timeout in milliseconds; defaults to 1800000. Does not cancel the task', '等待超时,单位为毫秒;默认 1800000,超时不取消任务')),
190
+ }, async ({ modelId, prompt, imageUrl, resolution, ratio, size, set, downloadPath, projectId, confirm, idempotencyKey, maxCredits, intervalMs, timeoutMs }) => {
179
191
  let createdJob;
180
192
  try {
181
193
  const built = await buildGenerationInput(modelId, {
@@ -187,32 +199,28 @@ export function createMcpServer() {
187
199
  }, set ?? []);
188
200
  const input = built.input;
189
201
  validateKnownEnums(built.properties, input);
202
+ process.stderr.write(`[LumenKey MCP] ${ui(`Quoting image generation for ${modelId}...`, `正在获取 ${modelId} 的图片生成报价...`)}\n`);
190
203
  const quote = await client.getQuote({ modelId, input });
191
204
  if (maxCredits !== undefined && quote.credits > maxCredits)
192
205
  throw quoteCreditLimitError('maxCredits');
193
206
  if (!confirm)
194
207
  return { content: [{ type: 'text', text: JSON.stringify({ quote, requiresConfirmation: true, submitted: false }) }] };
195
- const key = (idempotencyKey == null ? '' : String(idempotencyKey)).trim() || crypto.randomUUID();
208
+ const key = idempotencyKey ?? crypto.randomUUID();
209
+ process.stderr.write(`[LumenKey MCP] ${ui('Submitting generation job...', '正在提交生成任务...')}\n`);
196
210
  const job = await client.createJob({ quoteId: quote.quoteId, input, projectId }, key);
197
211
  createdJob = { jobId: job.jobId, idempotencyKey: key };
198
- const detail = await pollJob(client, job.jobId);
199
- const outputUrl = detail.outputs?.[0]?.url;
200
- let savedPath;
201
- if (outputUrl && downloadPath) {
202
- savedPath = await downloadFile(outputUrl, downloadPath);
203
- }
212
+ process.stderr.write(`[LumenKey MCP] ${ui(`Polling job ${job.jobId}...`, `正在查询任务 ${job.jobId} 的进度...`)}\n`);
213
+ const detail = await pollJob(client, job.jobId, { initialIntervalMs: intervalMs, timeoutMs,
214
+ onProgress: row => process.stderr.write(`[LumenKey MCP] ${ui('Status: ', '状态:')}${jobStatusText(row.status)}\n`),
215
+ });
216
+ const result = await generationResult(detail, key, downloadPath);
204
217
  return {
205
218
  content: [
206
219
  {
207
220
  type: 'text',
208
221
  text: JSON.stringify({
209
- success: true,
210
- jobId: detail.jobId,
211
- status: detail.status,
212
- idempotencyKey: key,
213
- imageUrl: outputUrl,
214
- urls: (detail.outputs ?? []).map((item) => item.url).filter((url) => typeof url === 'string'),
215
- localFile: savedPath,
222
+ ...result,
223
+ imageUrl: result.urls[0],
216
224
  }, null, 2),
217
225
  },
218
226
  ],
@@ -222,7 +230,7 @@ export function createMcpServer() {
222
230
  const message = errorText(err);
223
231
  return {
224
232
  isError: true,
225
- content: [{ type: 'text', text: createdJob ? JSON.stringify({ error: message, ...createdJob }) : message }],
233
+ content: [{ type: 'text', text: createdJob ? JSON.stringify({ ...errorResult(err), error: message, ...createdJob }) : message }],
226
234
  };
227
235
  }
228
236
  });
@@ -230,19 +238,11 @@ export function createMcpServer() {
230
238
  * Tool: Query Job Status
231
239
  */
232
240
  tool('lumenkey_query_job', ui('Query the status of an asynchronous generation task by its jobId', '按任务 ID 查询已有异步生成任务的状态。'), {
233
- jobId: z.string().describe('The task ID to query'),
241
+ jobId: z.string().describe(ui('The task ID to query', '要查询的任务 ID')),
234
242
  }, async ({ jobId }) => {
235
243
  try {
236
244
  const detail = await client.getJob(jobId);
237
- assertJobResult(detail, detail.status === 'succeeded');
238
- return {
239
- content: [
240
- {
241
- type: 'text',
242
- text: JSON.stringify(detail, null, 2),
243
- },
244
- ],
245
- };
245
+ return jobToolResult(detail);
246
246
  }
247
247
  catch (err) {
248
248
  return {
@@ -277,11 +277,11 @@ export function createMcpServer() {
277
277
  * Tool: Chat Completion & Reasoning
278
278
  */
279
279
  tool('lumenkey_chat', ui('Run billable LLM inference. Every successful call may incur credits; reuse idempotencyKey only for an identical request.', '发起计费文本推理;成功调用可能消耗算力点,仅为同一次相同请求复用幂等键。'), {
280
- modelId: z.string().default('qwen3.7-flash').describe('Model ID (e.g. qwen3.7-flash, qwen3.8-max, grok-4.6)'),
281
- prompt: requiredPrompt('User message/prompt to send to the model'),
282
- systemPrompt: z.string().optional().describe('Optional system instruction'),
283
- maxCredits: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional().describe('Reject before inference if the required reservation exceeds this spending cap'),
284
- idempotencyKey: idempotencyKeyField('Reuse only for an identical request'),
280
+ modelId: z.string().default('qwen3.7-flash').describe(ui('Model ID (e.g. qwen3.7-flash, qwen3.8-max, grok-4.6)', '模型 ID(例如 qwen3.7-flash、qwen3.8-max、grok-4.6)')),
281
+ prompt: requiredPrompt(ui('User message/prompt to send to the model', '发送给模型的用户消息或提示词')),
282
+ systemPrompt: z.string().optional().describe(ui('Optional system instruction', '可选的系统指令')),
283
+ maxCredits: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional().describe(ui('Reject before inference if the required reservation exceeds this spending cap', '所需预授权超过此算力点上限时,在推理前拒绝请求')),
284
+ idempotencyKey: idempotencyKeyField(ui('Reuse only for an identical request', '仅为同一次相同请求复用')),
285
285
  }, async ({ modelId, prompt, systemPrompt, idempotencyKey, maxCredits }) => {
286
286
  try {
287
287
  const messages = [];
@@ -294,7 +294,7 @@ export function createMcpServer() {
294
294
  messages,
295
295
  ...(maxCredits === undefined ? {} : { max_credits: maxCredits }),
296
296
  }, idempotencyKey);
297
- const answer = res?.choices?.[0]?.message?.content;
297
+ const answer = chatText(res);
298
298
  return {
299
299
  content: [
300
300
  { type: 'text', text: typeof answer === 'string' ? answer : '' },
@@ -317,7 +317,7 @@ export function createMcpServer() {
317
317
  }
318
318
  });
319
319
  tool('lumenkey_explain_model', ui('Explain one model: its parameters, which are required, and which values are allowed.', '说明指定模型的参数、必填字段与允许的值。'), {
320
- modelId: z.string(),
320
+ modelId: z.string().describe(ui('The model ID to explain', '要解释的模型 ID')),
321
321
  }, async ({ modelId }) => {
322
322
  try {
323
323
  const model = (await client.listModels()).find((item) => item.id === modelId);
@@ -330,21 +330,20 @@ export function createMcpServer() {
330
330
  }
331
331
  });
332
332
  tool('lumenkey_tasks_progress', ui('Read one existing generation job', '读取一条已有生成任务的进度。'), {
333
- jobId: z.string(),
333
+ jobId: z.string().describe(ui('The task ID to query', '要查询的任务 ID')),
334
334
  }, async ({ jobId }) => {
335
335
  try {
336
336
  const detail = await client.getJob(jobId);
337
- assertJobResult(detail, detail.status === 'succeeded');
338
- return { content: [{ type: 'text', text: JSON.stringify(detail) }] };
337
+ return jobToolResult(detail);
339
338
  }
340
339
  catch (err) {
341
340
  return { isError: true, content: [{ type: 'text', text: errorText(err) }] };
342
341
  }
343
342
  });
344
343
  tool('lumenkey_tasks_wait', ui('Wait for an existing job without creating one', '等待已有生成任务,不创建新任务。'), {
345
- jobId: z.string(),
346
- intervalMs: z.number().nonnegative().finite().max(2_147_483_647).optional(),
347
- timeoutMs: z.number().nonnegative().finite().optional(),
344
+ jobId: z.string().describe(ui('The existing task ID to wait for', '要等待的已有任务 ID')),
345
+ intervalMs: z.number().positive().finite().max(2_147_483_647).optional().describe(ui('Polling interval in milliseconds; defaults to 5000', '查询间隔,单位为毫秒;默认 5000')),
346
+ timeoutMs: z.number().nonnegative().finite().optional().describe(ui('Wait timeout in milliseconds; defaults to 1800000. Does not cancel the task', '等待超时,单位为毫秒;默认 1800000,超时不取消任务')),
348
347
  }, async ({ jobId, intervalMs, timeoutMs }) => {
349
348
  try {
350
349
  const detail = await waitForJob(client, jobId, { intervalMs, timeoutMs });
@@ -352,16 +351,19 @@ export function createMcpServer() {
352
351
  return { content: [{ type: 'text', text: JSON.stringify(detail) }] };
353
352
  }
354
353
  catch (err) {
354
+ if (err instanceof LumenKeyError && err.code === 'WAIT_TIMEOUT') {
355
+ err = new LumenKeyError('WAIT_TIMEOUT', undefined, undefined, waitTimeoutDetail(jobId, timeoutMs ?? 1_800_000));
356
+ }
355
357
  return { isError: true, content: [{ type: 'text', text: errorText(err) }] };
356
358
  }
357
359
  });
358
360
  tool('lumenkey_tasks_cancel', ui('Request cancellation with yes: true. Cancellation is not a refund; held credits are released or charged only when gateway settlement completes.', '取消已有任务必须传 yes: true。取消不等于退款;冻结算力点是否释放或扣除由网关最终结算决定。'), {
359
- jobId: z.string(),
360
- yes: z.boolean({ required_error: ui('Cancellation requires yes: true.', '取消任务必须传入 yes: true。'), invalid_type_error: ui('Cancellation requires yes: true.', '取消任务必须传入 yes: true。') }),
361
+ jobId: z.string().describe(ui('The existing task ID to cancel', '要取消的已有任务 ID')),
362
+ yes: z.boolean({ invalid_type_error: ui('Cancellation requires yes: true.', '取消任务必须传入 yes: true。') }).optional().describe(ui('Must be true to authorize cancellation; cancellation is not a refund', '必须为 true 才授权取消;取消不等于退款')),
361
363
  }, async ({ jobId, yes }) => {
362
364
  try {
363
365
  if (yes !== true)
364
- throw new Error(ui('Cancellation requires yes: true.', '取消任务必须传入 yes: true。'));
366
+ throw new LumenKeyError('CANCEL_CONFIRMATION_REQUIRED', undefined, undefined, ui('Cancellation requires yes: true.', '取消任务必须传入 yes: true。'));
365
367
  const result = await client.cancelJob(jobId);
366
368
  return { content: [{ type: 'text', text: JSON.stringify(result) }] };
367
369
  }
@@ -375,6 +377,6 @@ export async function runMcpStdio() {
375
377
  const server = createMcpServer();
376
378
  const transport = new StdioServerTransport();
377
379
  await server.connect(transport);
378
- process.stderr.write('[LumenKey MCP] Server running on stdio transport\n');
380
+ process.stderr.write(`[LumenKey MCP] ${ui('Server running on stdio transport', '服务已启动,使用 stdio 传输')}\n`);
379
381
  }
380
382
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumenkey/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Unified CLI & MCP Server for LumenKey Multi-Modal AI (Video, Image & LLMs)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,7 +15,7 @@
15
15
  "README.md"
16
16
  ],
17
17
  "engines": {
18
- "node": ">=20.0.0"
18
+ "node": ">=20.18.1"
19
19
  },
20
20
  "scripts": {
21
21
  "build": "tsc",
@@ -44,7 +44,15 @@
44
44
  "zod": "^3.25.76"
45
45
  },
46
46
  "devDependencies": {
47
+ "@ant-design/icons": "5.6.1",
48
+ "@react-three/fiber": "9.8.1",
47
49
  "@types/node": "^20.19.43",
50
+ "antd": "5.25.1",
51
+ "esbuild": "0.28.0",
52
+ "react": "19.1.0",
53
+ "react-dom": "19.1.0",
54
+ "swr": "2.3.3",
55
+ "three": "0.184.0",
48
56
  "typescript": "^5.9.3"
49
57
  }
50
58
  }