needware-cli 1.2.9 → 1.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.
@@ -3,6 +3,8 @@
3
3
  */
4
4
  import * as fs from 'fs';
5
5
  import * as path from 'path';
6
+ import * as https from 'https';
7
+ import * as http from 'http';
6
8
  /**
7
9
  * 解析 Prompt 输入(自动判断类型)
8
10
  *
@@ -29,12 +31,46 @@ export async function parsePrompt(input) {
29
31
  // 尝试解析为 SDKUserMessage JSON
30
32
  if (input.trim().startsWith('{')) {
31
33
  try {
32
- const data = JSON.parse(input);
34
+ let data;
35
+ try {
36
+ // 首先尝试直接解析
37
+ data = JSON.parse(input);
38
+ }
39
+ catch (firstError) {
40
+ console.log('First parse failed, trying to unescape...');
41
+ // 如果失败,尝试反转义字符串(处理命令行转义问题)
42
+ // 将 \" 替换为 ",\\ 替换为 \
43
+ const unescaped = input.replace(/\\"/g, '"').replace(/\\\\/g, '\\');
44
+ console.log('Unescaped input:', unescaped);
45
+ data = JSON.parse(unescaped);
46
+ // data = await convertImageUrlsToBase64InData(data);
47
+ // console.log('*********1122', JSON.stringify(data, null, 2));
48
+ }
49
+ // 检查是否双重编码(data 是字符串而非对象)
50
+ if (typeof data === 'string') {
51
+ console.log('Detected double-encoded JSON, parsing again...');
52
+ let actualData = JSON.parse(data);
53
+ // 转换图片URL为base64(如果存在)
54
+ // actualData = await convertImageUrlsToBase64InData(actualData);
55
+ if (isSDKUserMessage(actualData)) {
56
+ return parseSDKUserMessage(actualData);
57
+ }
58
+ if (isSimplifiedUserMessage(actualData)) {
59
+ return parseSimplifiedUserMessage(actualData);
60
+ }
61
+ }
33
62
  if (isSDKUserMessage(data)) {
63
+ console.log('************888877779999');
34
64
  return parseSDKUserMessage(data);
35
65
  }
66
+ // 检查是否为简化的用户消息格式
67
+ if (isSimplifiedUserMessage(data)) {
68
+ console.log('************1111112222');
69
+ return parseSimplifiedUserMessage(data);
70
+ }
36
71
  }
37
- catch {
72
+ catch (error) {
73
+ console.error('JSON parse error:', error);
38
74
  // 不是有效的 JSON,继续作为普通字符串处理
39
75
  }
40
76
  }
@@ -63,11 +99,16 @@ async function parsePromptFromFile(filePath) {
63
99
  // 如果是 JSON 文件,尝试解析为 SDKUserMessage
64
100
  if (ext === '.json') {
65
101
  try {
66
- const data = JSON.parse(content);
102
+ let data = JSON.parse(content);
103
+ // 转换图片URL为base64(如果存在)
104
+ // data = await convertImageUrlsToBase64InData(data);
67
105
  if (isSDKUserMessage(data)) {
68
106
  return parseSDKUserMessage(data);
69
107
  }
70
- throw new Error('JSON file must contain a valid SDKUserMessage object');
108
+ if (isSimplifiedUserMessage(data)) {
109
+ return parseSimplifiedUserMessage(data);
110
+ }
111
+ throw new Error('JSON file must contain a valid SDKUserMessage object or simplified user message');
71
112
  }
72
113
  catch (error) {
73
114
  throw new Error(`Invalid JSON in prompt file: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -83,8 +124,20 @@ async function parsePromptFromFile(filePath) {
83
124
  * 解析 SDKUserMessage
84
125
  */
85
126
  function parseSDKUserMessage(data) {
86
- // message 中提取文本内容
127
+ // 如果 content 包含非文本内容(如图片),使用交互式模式
87
128
  const message = data.message;
129
+ const hasMultimodalContent = Array.isArray(message.content) &&
130
+ message.content.some((item) => item.type !== 'text');
131
+ if (hasMultimodalContent) {
132
+ // 创建消息流来支持多模态内容
133
+ const messageStream = createMessageStreamFromSDKMessage(data);
134
+ return {
135
+ prompt: messageStream,
136
+ sessionId: data.session_id,
137
+ isInteractive: true,
138
+ };
139
+ }
140
+ // 提取文本内容
88
141
  let promptText = '';
89
142
  if (typeof message.content === 'string') {
90
143
  promptText = message.content;
@@ -93,7 +146,7 @@ function parseSDKUserMessage(data) {
93
146
  // 如果 content 是数组,提取文本部分
94
147
  promptText = message.content
95
148
  .filter((item) => item.type === 'text')
96
- .map((item) => item.text)
149
+ .map((item) => item.text || '')
97
150
  .join('\n');
98
151
  }
99
152
  return {
@@ -102,6 +155,31 @@ function parseSDKUserMessage(data) {
102
155
  isInteractive: false,
103
156
  };
104
157
  }
158
+ /**
159
+ * 解析简化的用户消息格式
160
+ */
161
+ function parseSimplifiedUserMessage(data) {
162
+ // 将简化格式转换为标准的 SDKUserMessage
163
+ const sessionId = data.session_id || `session-${Date.now()}`;
164
+ const sdkMessage = {
165
+ type: 'user',
166
+ session_id: sessionId,
167
+ message: {
168
+ role: 'user',
169
+ content: data.user.content,
170
+ },
171
+ parent_tool_use_id: null,
172
+ };
173
+ console.log('************1111112222', JSON.stringify(sdkMessage, null, 2));
174
+ // 使用 parseSDKUserMessage 处理转换后的消息
175
+ return parseSDKUserMessage(sdkMessage);
176
+ }
177
+ /**
178
+ * 从 SDKUserMessage 创建消息流
179
+ */
180
+ async function* createMessageStreamFromSDKMessage(message) {
181
+ yield message;
182
+ }
105
183
  /**
106
184
  * 将字符串转换为消息流(用于交互式模式)
107
185
  */
@@ -119,13 +197,16 @@ export async function* createMessageStream(sessionId, initialPrompt) {
119
197
  * 类型守卫:检查是否为 AsyncIterable
120
198
  */
121
199
  function isAsyncIterable(obj) {
122
- return obj && typeof obj[Symbol.asyncIterator] === 'function';
200
+ return (obj !== null &&
201
+ obj !== undefined &&
202
+ typeof obj[Symbol.asyncIterator] === 'function');
123
203
  }
124
204
  /**
125
205
  * 类型守卫:检查是否为 SDKUserMessage
126
206
  */
127
207
  function isSDKUserMessage(obj) {
128
- return (obj &&
208
+ return (obj !== null &&
209
+ obj !== undefined &&
129
210
  typeof obj === 'object' &&
130
211
  'type' in obj &&
131
212
  obj.type === 'user' &&
@@ -134,6 +215,19 @@ function isSDKUserMessage(obj) {
134
215
  'session_id' in obj &&
135
216
  typeof obj.session_id === 'string');
136
217
  }
218
+ /**
219
+ * 类型守卫:检查是否为简化的用户消息格式(只有 user 字段)
220
+ */
221
+ function isSimplifiedUserMessage(obj) {
222
+ return (obj !== null &&
223
+ obj !== undefined &&
224
+ typeof obj === 'object' &&
225
+ 'user' in obj &&
226
+ obj.user !== null &&
227
+ obj.user !== undefined &&
228
+ typeof obj.user === 'object' &&
229
+ 'content' in obj.user);
230
+ }
137
231
  /**
138
232
  * 从命令行参数解析 Prompt(自动判断类型)
139
233
  */
@@ -145,4 +239,331 @@ export async function parsePromptFromArgs(args) {
145
239
  // 使用统一的 parsePrompt 函数,它会自动判断类型
146
240
  return parsePrompt(firstArg);
147
241
  }
242
+ /**
243
+ * 根据文件扩展名获取图片的 MIME 类型
244
+ */
245
+ function getImageMediaType(filePath) {
246
+ const ext = path.extname(filePath).toLowerCase();
247
+ const mimeTypes = {
248
+ '.jpg': 'image/jpeg',
249
+ '.jpeg': 'image/jpeg',
250
+ '.png': 'image/png',
251
+ '.gif': 'image/gif',
252
+ '.webp': 'image/webp',
253
+ };
254
+ const mediaType = mimeTypes[ext];
255
+ if (!mediaType) {
256
+ throw new Error(`Unsupported image format: ${ext}. Supported formats: jpg, jpeg, png, gif, webp`);
257
+ }
258
+ return mediaType;
259
+ }
260
+ /**
261
+ * 将图片文件转换为 base64 编码的内容块
262
+ *
263
+ * @param imagePath - 图片文件路径
264
+ * @returns 符合 Anthropic Claude API 格式的图片内容块
265
+ *
266
+ * @example
267
+ * const imageBlock = await convertImageToBase64('/path/to/image.jpg');
268
+ * // Returns:
269
+ * // {
270
+ * // type: "image",
271
+ * // source: {
272
+ * // type: "base64",
273
+ * // media_type: "image/jpeg",
274
+ * // data: "/9j/4AAQSkZJRgABAQAAAQABAAD..."
275
+ * // }
276
+ * // }
277
+ */
278
+ export async function convertImageToBase64(imagePath) {
279
+ const resolvedPath = path.resolve(imagePath);
280
+ // 检查文件是否存在
281
+ if (!fs.existsSync(resolvedPath)) {
282
+ throw new Error(`Image file not found: ${resolvedPath}`);
283
+ }
284
+ // 获取 MIME 类型
285
+ const mediaType = getImageMediaType(resolvedPath);
286
+ // 读取文件并转换为 base64
287
+ const imageBuffer = fs.readFileSync(resolvedPath);
288
+ const base64Data = imageBuffer.toString('base64');
289
+ return {
290
+ type: 'image',
291
+ source: {
292
+ type: 'base64',
293
+ media_type: mediaType,
294
+ data: base64Data,
295
+ },
296
+ };
297
+ }
298
+ /**
299
+ * 批量转换多个图片文件为 base64 内容块
300
+ *
301
+ * @param imagePaths - 图片文件路径数组
302
+ * @returns 图片内容块数组
303
+ */
304
+ export async function convertImagesToBase64(imagePaths) {
305
+ const results = [];
306
+ for (const imagePath of imagePaths) {
307
+ try {
308
+ const imageBlock = await convertImageToBase64(imagePath);
309
+ results.push(imageBlock);
310
+ }
311
+ catch (error) {
312
+ console.error(`Failed to convert image ${imagePath}:`, error);
313
+ throw error;
314
+ }
315
+ }
316
+ return results;
317
+ }
318
+ /**
319
+ * 检查文件是否为支持的图片格式
320
+ */
321
+ export function isImageFile(filePath) {
322
+ const ext = path.extname(filePath).toLowerCase();
323
+ return ['.jpg', '.jpeg', '.png', '.gif', '.webp'].includes(ext);
324
+ }
325
+ /**
326
+ * 检查字符串是否为URL
327
+ */
328
+ function isURL(str) {
329
+ try {
330
+ const url = new URL(str);
331
+ return url.protocol === 'http:' || url.protocol === 'https:';
332
+ }
333
+ catch {
334
+ return false;
335
+ }
336
+ }
337
+ /**
338
+ * 转换数据中的图片URL为base64格式
339
+ * 支持 SDKUserMessage 和简化的用户消息格式
340
+ */
341
+ async function convertImageUrlsToBase64InData(data) {
342
+ if (!data || typeof data !== 'object') {
343
+ return data;
344
+ }
345
+ // 深拷贝以避免修改原始数据
346
+ const result = JSON.parse(JSON.stringify(data));
347
+ try {
348
+ // 处理 SDKUserMessage 格式: { message: { content: [...] } }
349
+ if (result.message && result.message.content) {
350
+ result.message.content = await convertImageUrlsInContent(result.message.content);
351
+ }
352
+ // 处理简化格式: { user: { content: [...] } }
353
+ else if (result.user && result.user.content) {
354
+ result.user.content = await convertImageUrlsInContent(result.user.content);
355
+ }
356
+ }
357
+ catch (error) {
358
+ console.error('Failed to convert image URLs to base64:', error);
359
+ // 转换失败时返回原始数据
360
+ return data;
361
+ }
362
+ return result;
363
+ }
364
+ /**
365
+ * 转换 content 数组中的图片URL为base64
366
+ */
367
+ async function convertImageUrlsInContent(content) {
368
+ if (typeof content === 'string') {
369
+ return content;
370
+ }
371
+ if (!Array.isArray(content)) {
372
+ return content;
373
+ }
374
+ const convertedContent = [];
375
+ for (const item of content) {
376
+ if (!item || typeof item !== 'object') {
377
+ convertedContent.push(item);
378
+ continue;
379
+ }
380
+ // 检查是否是需要转换的图片项
381
+ if (item.type === 'image' &&
382
+ item.source &&
383
+ item.source.type === 'url' &&
384
+ item.source.url) {
385
+ try {
386
+ console.log(`Converting image URL to base64: ${item.source.url}`);
387
+ // 下载并转换图片
388
+ const imageBlock = await convertRemoteImageToBase64(item.source.url);
389
+ console.log(`Successfully converted image to base64 (${imageBlock.source.data.length} chars)`);
390
+ convertedContent.push(imageBlock);
391
+ }
392
+ catch (error) {
393
+ console.error(`Failed to convert image URL ${item.source.url}:`, error);
394
+ // 转换失败时保留原始格式
395
+ convertedContent.push(item);
396
+ }
397
+ }
398
+ else {
399
+ // 不是需要转换的图片项,保持原样
400
+ convertedContent.push(item);
401
+ }
402
+ }
403
+ return convertedContent;
404
+ }
405
+ /**
406
+ * 从URL下载图片数据
407
+ *
408
+ * @param imageUrl - 图片的URL地址
409
+ * @returns Promise<Buffer> 图片的二进制数据
410
+ */
411
+ function downloadImage(imageUrl) {
412
+ return new Promise((resolve, reject) => {
413
+ const url = new URL(imageUrl);
414
+ const protocol = url.protocol === 'https:' ? https : http;
415
+ protocol
416
+ .get(imageUrl, (response) => {
417
+ // 处理重定向
418
+ if (response.statusCode === 301 || response.statusCode === 302) {
419
+ const redirectUrl = response.headers.location;
420
+ if (redirectUrl) {
421
+ downloadImage(redirectUrl).then(resolve).catch(reject);
422
+ return;
423
+ }
424
+ }
425
+ // 检查响应状态
426
+ if (response.statusCode !== 200) {
427
+ reject(new Error(`Failed to download image: HTTP ${response.statusCode}`));
428
+ return;
429
+ }
430
+ const chunks = [];
431
+ response.on('data', (chunk) => {
432
+ chunks.push(chunk);
433
+ });
434
+ response.on('end', () => {
435
+ resolve(Buffer.concat(chunks));
436
+ });
437
+ response.on('error', (error) => {
438
+ reject(error);
439
+ });
440
+ })
441
+ .on('error', (error) => {
442
+ reject(error);
443
+ });
444
+ });
445
+ }
446
+ /**
447
+ * 根据URL或文件扩展名获取图片的MIME类型
448
+ */
449
+ function getImageMediaTypeFromUrl(url) {
450
+ const urlPath = new URL(url).pathname;
451
+ const ext = path.extname(urlPath).toLowerCase();
452
+ const mimeTypes = {
453
+ '.jpg': 'image/jpeg',
454
+ '.jpeg': 'image/jpeg',
455
+ '.png': 'image/png',
456
+ '.gif': 'image/gif',
457
+ '.webp': 'image/webp',
458
+ };
459
+ const mediaType = mimeTypes[ext];
460
+ if (!mediaType) {
461
+ // 默认返回 jpeg,如果无法确定
462
+ return 'image/jpeg';
463
+ }
464
+ return mediaType;
465
+ }
466
+ /**
467
+ * 从远程URL下载图片并转换为base64编码的内容块
468
+ *
469
+ * @param imageUrl - 图片的URL地址
470
+ * @returns 符合 Anthropic Claude API 格式的图片内容块
471
+ *
472
+ * @example
473
+ * const imageBlock = await convertRemoteImageToBase64('https://example.com/photo.jpg');
474
+ * // Returns:
475
+ * // {
476
+ * // type: "image",
477
+ * // source: {
478
+ * // type: "base64",
479
+ * // media_type: "image/jpeg",
480
+ * // data: "/9j/4AAQSkZJRgABAQAAAQABAAD..."
481
+ * // }
482
+ * // }
483
+ */
484
+ export async function convertRemoteImageToBase64(imageUrl) {
485
+ if (!isURL(imageUrl)) {
486
+ throw new Error(`Invalid URL: ${imageUrl}`);
487
+ }
488
+ try {
489
+ // 下载图片
490
+ const imageBuffer = await downloadImage(imageUrl);
491
+ // 获取MIME类型
492
+ const mediaType = getImageMediaTypeFromUrl(imageUrl);
493
+ // 转换为base64
494
+ const base64Data = imageBuffer.toString('base64');
495
+ return {
496
+ type: 'image',
497
+ source: {
498
+ type: 'base64',
499
+ media_type: mediaType,
500
+ data: base64Data,
501
+ },
502
+ };
503
+ }
504
+ catch (error) {
505
+ throw new Error(`Failed to convert remote image: ${error instanceof Error ? error.message : 'Unknown error'}`);
506
+ }
507
+ }
508
+ /**
509
+ * 批量转换远程图片URL为base64内容块
510
+ *
511
+ * @param imageUrls - 图片URL数组
512
+ * @returns 图片内容块数组
513
+ */
514
+ export async function convertRemoteImagesToBase64(imageUrls) {
515
+ const results = [];
516
+ for (const imageUrl of imageUrls) {
517
+ try {
518
+ const imageBlock = await convertRemoteImageToBase64(imageUrl);
519
+ results.push(imageBlock);
520
+ }
521
+ catch (error) {
522
+ console.error(`Failed to convert remote image ${imageUrl}:`, error);
523
+ throw error;
524
+ }
525
+ }
526
+ return results;
527
+ }
528
+ /**
529
+ * 智能转换图片(自动检测本地文件或远程URL)
530
+ *
531
+ * @param imagePath - 图片的本地路径或远程URL
532
+ * @returns 符合 Anthropic Claude API 格式的图片内容块
533
+ *
534
+ * @example
535
+ * // 本地文件
536
+ * const local = await convertImageToBase64Smart('./photo.jpg');
537
+ *
538
+ * // 远程URL
539
+ * const remote = await convertImageToBase64Smart('https://example.com/photo.jpg');
540
+ */
541
+ export async function convertImageToBase64Smart(imagePath) {
542
+ if (isURL(imagePath)) {
543
+ return convertRemoteImageToBase64(imagePath);
544
+ }
545
+ else {
546
+ return convertImageToBase64(imagePath);
547
+ }
548
+ }
549
+ /**
550
+ * 批量智能转换图片(自动检测本地文件或远程URL)
551
+ *
552
+ * @param imagePaths - 图片路径或URL数组(可混合)
553
+ * @returns 图片内容块数组
554
+ */
555
+ export async function convertImagesToBase64Smart(imagePaths) {
556
+ const results = [];
557
+ for (const imagePath of imagePaths) {
558
+ try {
559
+ const imageBlock = await convertImageToBase64Smart(imagePath);
560
+ results.push(imageBlock);
561
+ }
562
+ catch (error) {
563
+ console.error(`Failed to convert image ${imagePath}:`, error);
564
+ throw error;
565
+ }
566
+ }
567
+ return results;
568
+ }
148
569
  //# sourceMappingURL=prompt-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-parser.js","sourceRoot":"","sources":["../../src/utils/prompt-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-parser.js","sourceRoot":"","sources":["../../src/utils/prompt-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ {
2
+ "user": {
3
+ "content": [
4
+ {
5
+ "type": "text",
6
+ "text": "根据图片一比一还原应用"
7
+ },
8
+ {
9
+ "type": "image",
10
+ "source": {
11
+ "type": "url",
12
+ "url": "https://7axlbrrfp5dibdsm.public.blob.vercel-storage.com/0402ebdc-c13a-4983-b092-b849aee4006d-%25E6%2588%25AA%25E5%25B1%258F2025-10-28%252014.47.01.png"
13
+ }
14
+ }
15
+ ]
16
+ }
17
+ }
18
+
19
+