zengen 0.1.35 → 0.1.36

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 (70) hide show
  1. package/.github/workflows/bump-version.yml +112 -0
  2. package/.github/workflows/ci.yml +2 -2
  3. package/.github/workflows/pages.yml +1 -7
  4. package/.zen/meta.json +57 -0
  5. package/.zen/translations.json +51 -0
  6. package/dist/ai-client.d.ts +34 -0
  7. package/dist/ai-client.d.ts.map +1 -0
  8. package/dist/ai-client.js +180 -0
  9. package/dist/ai-client.js.map +1 -0
  10. package/dist/ai-processor.d.ts +51 -0
  11. package/dist/ai-processor.d.ts.map +1 -0
  12. package/dist/ai-processor.js +215 -0
  13. package/dist/ai-processor.js.map +1 -0
  14. package/dist/ai-service.d.ts +79 -0
  15. package/dist/ai-service.d.ts.map +1 -0
  16. package/dist/ai-service.js +257 -0
  17. package/dist/ai-service.js.map +1 -0
  18. package/dist/builder.d.ts +26 -2
  19. package/dist/builder.d.ts.map +1 -1
  20. package/dist/builder.js +420 -9
  21. package/dist/builder.js.map +1 -1
  22. package/dist/cli.js +45 -3
  23. package/dist/cli.js.map +1 -1
  24. package/dist/gitignore.d.ts +2 -1
  25. package/dist/gitignore.d.ts.map +1 -1
  26. package/dist/gitignore.js +21 -3
  27. package/dist/gitignore.js.map +1 -1
  28. package/dist/gitignore.test.js +82 -17
  29. package/dist/gitignore.test.js.map +1 -1
  30. package/dist/markdown.d.ts +6 -1
  31. package/dist/markdown.d.ts.map +1 -1
  32. package/dist/markdown.js +31 -9
  33. package/dist/markdown.js.map +1 -1
  34. package/dist/navigation.js +5 -5
  35. package/dist/navigation.js.map +1 -1
  36. package/dist/scanner.d.ts +26 -0
  37. package/dist/scanner.d.ts.map +1 -0
  38. package/dist/scanner.js +190 -0
  39. package/dist/scanner.js.map +1 -0
  40. package/dist/template.d.ts +6 -2
  41. package/dist/template.d.ts.map +1 -1
  42. package/dist/template.js +57 -8
  43. package/dist/template.js.map +1 -1
  44. package/dist/translation-service.d.ts +72 -0
  45. package/dist/translation-service.d.ts.map +1 -0
  46. package/dist/translation-service.js +291 -0
  47. package/dist/translation-service.js.map +1 -0
  48. package/dist/types.d.ts +35 -4
  49. package/dist/types.d.ts.map +1 -1
  50. package/docs/advanced-usage.md +39 -0
  51. package/docs/getting-started.md +26 -0
  52. package/docs/guides/best-practices.md +0 -113
  53. package/docs/guides/config.md +0 -233
  54. package/package.json +2 -1
  55. package/src/ai-client.ts +227 -0
  56. package/src/ai-processor.ts +243 -0
  57. package/src/ai-service.ts +281 -0
  58. package/src/builder.ts +543 -10
  59. package/src/cli.ts +49 -3
  60. package/src/gitignore.test.ts +82 -17
  61. package/src/gitignore.ts +23 -3
  62. package/src/markdown.ts +39 -11
  63. package/src/navigation.ts +5 -5
  64. package/src/scanner.ts +180 -0
  65. package/src/template.ts +68 -8
  66. package/src/translation-service.ts +350 -0
  67. package/src/types.ts +39 -3
  68. package/test-multilang.js +44 -0
  69. package/docs/ci/github-ci-cd.md +0 -127
  70. package/docs/guides/api.md +0 -277
package/dist/builder.js CHANGED
@@ -41,6 +41,10 @@ const markdown_1 = require("./markdown");
41
41
  const template_1 = require("./template");
42
42
  const navigation_1 = require("./navigation");
43
43
  const gitignore_1 = require("./gitignore");
44
+ const scanner_1 = require("./scanner");
45
+ const ai_processor_1 = require("./ai-processor");
46
+ const translation_service_1 = require("./translation-service");
47
+ const ai_service_1 = require("./ai-service");
44
48
  const fs = __importStar(require("fs/promises"));
45
49
  const path = __importStar(require("path"));
46
50
  const chokidar = __importStar(require("chokidar"));
@@ -49,21 +53,35 @@ class ZenBuilder {
49
53
  constructor(config = {}) {
50
54
  this.config = {};
51
55
  this.config = config;
52
- this.markdownConverter = new markdown_1.MarkdownConverter(config.processors || []);
56
+ // 创建 AI 处理器
57
+ this.aiProcessor = new ai_processor_1.AIProcessor(config);
58
+ // 创建翻译服务
59
+ this.translationService = new translation_service_1.TranslationService(config.ai);
60
+ // 获取现有的 processors 或创建空数组
61
+ const existingProcessors = config.processors || [];
62
+ // 如果 AI 处理器启用,将其添加到 processors 列表的开头
63
+ const processors = this.aiProcessor.isEnabled()
64
+ ? [this.aiProcessor, ...existingProcessors]
65
+ : existingProcessors;
66
+ this.markdownConverter = new markdown_1.MarkdownConverter(processors);
53
67
  this.templateEngine = new template_1.TemplateEngine();
54
68
  this.navigationGenerator = new navigation_1.NavigationGenerator(config.baseUrl);
69
+ this.scanner = new scanner_1.Scanner(config);
55
70
  }
56
71
  /**
57
72
  * 构建文档站点
58
73
  */
59
74
  async build(options) {
60
75
  const startTime = Date.now();
61
- const { srcDir, outDir, template, verbose = false, baseUrl } = options;
76
+ const { srcDir, outDir, template, verbose = false, baseUrl, langs } = options;
62
77
  if (verbose) {
63
78
  console.log(`🚀 Starting ZEN build...`);
64
79
  console.log(`📁 Source: ${srcDir}`);
65
80
  console.log(`📁 Output: ${outDir}`);
66
81
  console.log(`🔗 Base URL: ${baseUrl || '(not set)'}`);
82
+ if (langs && langs.length > 0) {
83
+ console.log(`🌐 Target languages: ${langs.join(', ')}`);
84
+ }
67
85
  console.log(`🔍 Verbose mode enabled`);
68
86
  }
69
87
  // 验证源目录
@@ -75,16 +93,75 @@ class ZenBuilder {
75
93
  }
76
94
  // 确保输出目录存在
77
95
  await fs.mkdir(outDir, { recursive: true });
78
- // 读取并转换 Markdown 文件
96
+ // 确保 .zen/.gitignore 文件存在且内容正确
97
+ const zenDir = path.dirname(outDir); // .zen 目录
98
+ const zenGitignorePath = path.join(zenDir, '.gitignore');
99
+ const gitignoreContent = 'dist\n';
100
+ try {
101
+ // 检查 .gitignore 文件是否存在
102
+ await fs.access(zenGitignorePath);
103
+ // 如果存在,检查内容是否正确
104
+ const existingContent = await fs.readFile(zenGitignorePath, 'utf-8');
105
+ if (existingContent.trim() !== 'dist') {
106
+ if (verbose)
107
+ console.log(`📝 Updating .zen/.gitignore content...`);
108
+ await fs.writeFile(zenGitignorePath, gitignoreContent, 'utf-8');
109
+ }
110
+ }
111
+ catch (error) {
112
+ // 文件不存在,创建它
113
+ if (verbose)
114
+ console.log(`📝 Creating .zen/.gitignore file...`);
115
+ await fs.writeFile(zenGitignorePath, gitignoreContent, 'utf-8');
116
+ }
117
+ // 扫描阶段:生成文件列表
79
118
  if (verbose)
80
- console.log(`📄 Reading Markdown files...`);
81
- const files = await this.markdownConverter.convertDirectory(srcDir);
82
- if (files.length === 0) {
119
+ console.log(`🔍 Scanning source directory...`);
120
+ const scannedFiles = await this.scanner.scanDirectory(srcDir);
121
+ if (scannedFiles.length === 0) {
83
122
  console.warn(`⚠️ No Markdown files found in ${srcDir}`);
84
123
  return;
85
124
  }
86
125
  if (verbose)
87
- console.log(`✅ Found ${files.length} Markdown files`);
126
+ console.log(`✅ Found ${scannedFiles.length} Markdown files`);
127
+ // 清理 meta.json 中的孤儿条目(文件已删除但缓存仍存在)
128
+ if (this.aiProcessor.isEnabled()) {
129
+ if (verbose)
130
+ console.log(`🧹 Cleaning orphan entries in meta.json...`);
131
+ const aiService = new ai_service_1.AIService();
132
+ const existingFilePaths = scannedFiles.map(file => file.path);
133
+ await aiService.removeOrphanEntries(existingFilePaths);
134
+ }
135
+ // 保存扫描结果到 .zen/dist 目录
136
+ const zenDistDir = path.join(path.dirname(outDir), 'dist');
137
+ const scanResultPath = path.join(zenDistDir, 'scan-result.json');
138
+ if (verbose)
139
+ console.log(`💾 Saving scan result to ${scanResultPath}...`);
140
+ await this.scanner.saveScanResult(scannedFiles, scanResultPath);
141
+ // 构建阶段:读取文件内容并转换
142
+ if (verbose)
143
+ console.log(`📄 Reading and converting Markdown files...`);
144
+ const files = await this.markdownConverter.convertScannedFiles(scannedFiles, srcDir);
145
+ if (files.length === 0) {
146
+ console.warn(`⚠️ Failed to read any Markdown files`);
147
+ return;
148
+ }
149
+ // AI 批量处理(如果启用)
150
+ if (this.aiProcessor.isEnabled()) {
151
+ if (verbose)
152
+ console.log(`🤖 Running AI metadata extraction...`);
153
+ await this.aiProcessor.processBatch(files);
154
+ }
155
+ // 存储母语文件到 .zen/src
156
+ if (verbose)
157
+ console.log(`💾 Storing native language files...`);
158
+ await this.storeNativeFiles(files, verbose);
159
+ // 处理翻译(如果指定了目标语言)
160
+ if (langs && langs.length > 0 && this.translationService.isEnabled()) {
161
+ if (verbose)
162
+ console.log(`🌐 Processing translations...`);
163
+ await this.processTranslations(files, langs, verbose);
164
+ }
88
165
  // 更新导航生成器的 baseUrl(优先使用命令行参数)
89
166
  if (baseUrl !== undefined) {
90
167
  if (verbose)
@@ -120,7 +197,7 @@ class ZenBuilder {
120
197
  }
121
198
  }
122
199
  catch (error) {
123
- console.error(`❌ Failed to process ${file.relativePath}:`, error);
200
+ console.error(`❌ Failed to process ${file.path}:`, error);
124
201
  }
125
202
  }
126
203
  // 生成站点地图
@@ -148,6 +225,261 @@ class ZenBuilder {
148
225
  console.log(`✅ Built ${processedCount} files to ${outDir} in ${duration}ms`);
149
226
  }
150
227
  }
228
+ /**
229
+ * 多语言构建:基于 meta.json 构建多语言版本
230
+ */
231
+ async buildMultiLang(options) {
232
+ const startTime = Date.now();
233
+ const { srcDir, outDir, template, verbose = false, baseUrl, langs, useMetaData = true, filterOrphans = true, } = options;
234
+ if (!langs || langs.length === 0) {
235
+ throw new Error('At least one language must be specified for multi-language build');
236
+ }
237
+ if (verbose) {
238
+ console.log(`🚀 Starting ZEN multi-language build...`);
239
+ console.log(`📁 Source: ${srcDir}`);
240
+ console.log(`📁 Output: ${outDir}`);
241
+ console.log(`🌐 Target languages: ${langs.join(', ')}`);
242
+ console.log(`📊 Using meta.json: ${useMetaData}`);
243
+ console.log(`🧹 Filter orphans: ${filterOrphans}`);
244
+ console.log(`🔗 Base URL: ${baseUrl || '(not set)'}`);
245
+ console.log(`🔍 Verbose mode enabled`);
246
+ }
247
+ // 验证源目录
248
+ try {
249
+ await fs.access(srcDir);
250
+ }
251
+ catch (error) {
252
+ throw new Error(`Source directory does not exist: ${srcDir}`);
253
+ }
254
+ // 确保输出目录存在
255
+ await fs.mkdir(outDir, { recursive: true });
256
+ // 加载 meta.json
257
+ const aiService = new ai_service_1.AIService();
258
+ const metaData = await aiService.loadMetaData();
259
+ if (verbose) {
260
+ console.log(`📊 Loaded ${metaData.files.length} entries from meta.json`);
261
+ }
262
+ // 过滤有效的文件项
263
+ let validFiles = metaData.files;
264
+ if (filterOrphans) {
265
+ const originalCount = validFiles.length;
266
+ validFiles = await this.filterValidFiles(validFiles, srcDir, verbose);
267
+ if (verbose) {
268
+ console.log(`🧹 Filtered ${originalCount - validFiles.length} orphan files`);
269
+ }
270
+ }
271
+ if (validFiles.length === 0) {
272
+ console.warn(`⚠️ No valid files found in meta.json`);
273
+ return;
274
+ }
275
+ if (verbose) {
276
+ console.log(`✅ Found ${validFiles.length} valid files to build`);
277
+ }
278
+ // 为每个语言构建
279
+ let totalProcessed = 0;
280
+ for (const lang of langs) {
281
+ if (verbose) {
282
+ console.log(`\n🌐 Building for language: ${lang}`);
283
+ }
284
+ const langProcessed = await this.buildForLanguage(validFiles, lang, srcDir, outDir, template, baseUrl, verbose, langs);
285
+ totalProcessed += langProcessed;
286
+ }
287
+ // 生成语言索引页面
288
+ if (verbose) {
289
+ console.log(`\n📄 Generating language index...`);
290
+ }
291
+ await this.generateLanguageIndex(langs, outDir, verbose);
292
+ const duration = Date.now() - startTime;
293
+ console.log(`🎉 Multi-language build completed!`);
294
+ console.log(` Languages: ${langs.join(', ')}`);
295
+ console.log(` Total files built: ${totalProcessed}`);
296
+ console.log(` Duration: ${duration}ms`);
297
+ console.log(` Output directory: ${outDir}`);
298
+ }
299
+ /**
300
+ * 过滤有效的文件(移除 path 不存在的孤儿文件)
301
+ */
302
+ async filterValidFiles(files, srcDir, verbose) {
303
+ const validFiles = [];
304
+ for (const file of files) {
305
+ // 如果文件路径已经是绝对路径或包含目录,直接使用
306
+ const filePath = file.path.startsWith('/') ? file.path : path.join(process.cwd(), file.path);
307
+ try {
308
+ await fs.access(filePath);
309
+ validFiles.push(file);
310
+ }
311
+ catch (error) {
312
+ // 文件不存在,跳过
313
+ if (verbose) {
314
+ console.log(` ⚠️ Orphan file skipped: ${file.path} (path: ${filePath})`);
315
+ }
316
+ }
317
+ }
318
+ return validFiles;
319
+ }
320
+ /**
321
+ * 为特定语言构建文件
322
+ */
323
+ async buildForLanguage(files, lang, srcDir, outDir, template, baseUrl, verbose, allLangs) {
324
+ const aiService = new ai_service_1.AIService();
325
+ const langDir = path.join(outDir, lang);
326
+ await fs.mkdir(langDir, { recursive: true });
327
+ let processedCount = 0;
328
+ // 更新导航生成器的 baseUrl
329
+ if (baseUrl !== undefined) {
330
+ this.navigationGenerator.setBaseUrl(baseUrl);
331
+ }
332
+ else if (this.config.baseUrl) {
333
+ this.navigationGenerator.setBaseUrl(this.config.baseUrl);
334
+ }
335
+ // 为当前语言生成导航
336
+ const navigation = this.navigationGenerator.generate([]); // 暂时使用空导航
337
+ for (const file of files) {
338
+ try {
339
+ let content;
340
+ let filePath;
341
+ let finalHash = file.hash;
342
+ let finalMetadata = file.metadata;
343
+ // 获取源语言
344
+ const sourceLang = file.metadata?.inferred_lang || 'zh-Hans';
345
+ if (lang === sourceLang) {
346
+ // 如果是源语言,读取原始文件
347
+ filePath = file.path.startsWith('/') ? file.path : path.join(process.cwd(), file.path);
348
+ content = await fs.readFile(filePath, 'utf-8');
349
+ }
350
+ else {
351
+ // 如果是目标语言,尝试读取翻译文件
352
+ const translationService = new translation_service_1.TranslationService();
353
+ try {
354
+ // 创建临时 FileInfo 对象用于获取翻译
355
+ const tempFileInfo = {
356
+ path: file.path,
357
+ name: path.basename(file.path, '.md'),
358
+ ext: '.md',
359
+ content: '', // 临时内容
360
+ hash: file.hash,
361
+ aiMetadata: file.metadata,
362
+ };
363
+ // 确保翻译文件存在并获取内容
364
+ content = await translationService.ensureTranslatedFile(tempFileInfo, sourceLang, lang, file.hash);
365
+ // 翻译文件的路径
366
+ filePath = translationService.getTranslatedFilePath(file.path, lang, file.hash);
367
+ // 对于翻译文件,我们可以使用相同的 hash,或者生成新的 hash
368
+ // 这里我们使用相同的 hash,因为翻译是基于原始内容的
369
+ }
370
+ catch (translationError) {
371
+ console.warn(`⚠️ Failed to get translation for ${file.path} to ${lang}, using source file:`, translationError);
372
+ // 如果翻译失败,回退到源文件
373
+ filePath = file.path.startsWith('/') ? file.path : path.join(process.cwd(), file.path);
374
+ content = await fs.readFile(filePath, 'utf-8');
375
+ }
376
+ }
377
+ // 创建 FileInfo 对象
378
+ const fileInfo = {
379
+ path: file.path,
380
+ name: path.basename(file.path, '.md'),
381
+ ext: '.md',
382
+ content,
383
+ hash: finalHash,
384
+ aiMetadata: finalMetadata,
385
+ };
386
+ // 转换为 HTML
387
+ const convertedFileInfo = await this.markdownConverter.convert(fileInfo);
388
+ const html = convertedFileInfo.html || '';
389
+ // 更新文件信息中的 HTML 内容
390
+ const finalFileInfo = {
391
+ ...fileInfo,
392
+ html,
393
+ };
394
+ // 生成模板数据
395
+ const templateData = this.templateEngine.generateTemplateData(finalFileInfo, navigation, lang, allLangs);
396
+ // 渲染模板
397
+ const renderedHtml = await this.templateEngine.render(templateData, template);
398
+ // 生成输出路径
399
+ const outputPath = this.templateEngine.getOutputPath(finalFileInfo, outDir, lang, file.hash);
400
+ // 保存文件
401
+ await this.templateEngine.saveToFile(renderedHtml, outputPath);
402
+ processedCount++;
403
+ if (verbose && processedCount % 5 === 0) {
404
+ console.log(` Processed ${processedCount}/${files.length} files for ${lang}...`);
405
+ }
406
+ }
407
+ catch (error) {
408
+ console.error(`❌ Failed to process ${file.path} for ${lang}:`, error);
409
+ }
410
+ }
411
+ if (verbose) {
412
+ console.log(` ✅ Built ${processedCount} files for ${lang}`);
413
+ }
414
+ return processedCount;
415
+ }
416
+ /**
417
+ * 生成语言索引页面
418
+ */
419
+ async generateLanguageIndex(langs, outDir, verbose) {
420
+ try {
421
+ const indexHtml = `<!DOCTYPE html>
422
+ <html lang="en">
423
+ <head>
424
+ <meta charset="UTF-8">
425
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
426
+ <title>ZEN Documentation - Language Selection</title>
427
+ <style>
428
+ * { margin: 0; padding: 0; box-sizing: border-box; }
429
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
430
+ line-height: 1.6; color: #333; background: #f8f9fa;
431
+ display: flex; justify-content: center; align-items: center; min-height: 100vh; }
432
+ .container { text-align: center; padding: 3rem; max-width: 600px; }
433
+ h1 { font-size: 2.5rem; margin-bottom: 1rem; color: #212529; }
434
+ p { color: #6c757d; margin-bottom: 2rem; font-size: 1.125rem; }
435
+ .lang-list { list-style: none; display: flex; flex-direction: column; gap: 1rem; }
436
+ .lang-item { margin: 0; }
437
+ .lang-link { display: block; padding: 1rem 2rem; background: #fff; border: 2px solid #007bff;
438
+ color: #007bff; text-decoration: none; border-radius: 8px;
439
+ font-size: 1.25rem; font-weight: 500; transition: all 0.2s; }
440
+ .lang-link:hover { background: #007bff; color: white; transform: translateY(-2px);
441
+ box-shadow: 0 4px 12px rgba(0, 123, 255, 0.2); }
442
+ .footer { margin-top: 3rem; color: #6c757d; font-size: 0.875rem; }
443
+ </style>
444
+ </head>
445
+ <body>
446
+ <div class="container">
447
+ <h1>ZEN Documentation</h1>
448
+ <p>Select your preferred language:</p>
449
+
450
+ <ul class="lang-list">
451
+ ${langs
452
+ .map(lang => {
453
+ const langNames = {
454
+ 'zh-Hans': '简体中文',
455
+ 'en-US': 'English',
456
+ 'ja-JP': '日本語',
457
+ 'ko-KR': '한국어',
458
+ };
459
+ const langName = langNames[lang] || lang;
460
+ return `<li class="lang-item">
461
+ <a href="${lang}/" class="lang-link">${langName}</a>
462
+ </li>`;
463
+ })
464
+ .join('')}
465
+ </ul>
466
+
467
+ <div class="footer">
468
+ <p>Generated by <strong>ZEN</strong> • <a href="https://github.com/zccz14/ZEN" target="_blank">View on GitHub</a></p>
469
+ </div>
470
+ </div>
471
+ </body>
472
+ </html>`;
473
+ const indexPath = path.join(outDir, 'index.html');
474
+ await fs.writeFile(indexPath, indexHtml, 'utf-8');
475
+ if (verbose) {
476
+ console.log(` ✅ Generated language index at ${indexPath}`);
477
+ }
478
+ }
479
+ catch (error) {
480
+ console.warn(`⚠️ Failed to generate language index:`, error);
481
+ }
482
+ }
151
483
  /**
152
484
  * 监听文件变化并自动重建
153
485
  */
@@ -418,8 +750,75 @@ class ZenBuilder {
418
750
  }
419
751
  }
420
752
  /**
421
- * 验证配置
753
+ * 存储母语文件到 .zen/src 目录
754
+ */
755
+ async storeNativeFiles(files, verbose) {
756
+ const aiService = new ai_service_1.AIService();
757
+ for (const file of files) {
758
+ try {
759
+ // 获取源语言(从AI元数据或默认值)
760
+ const sourceLang = file.aiMetadata?.inferred_lang || 'zh-Hans';
761
+ const nativeHash = file.hash || aiService.calculateFileHash(file.content);
762
+ if (verbose) {
763
+ console.log(`📄 Storing native file: ${file.path} (${sourceLang})`);
764
+ }
765
+ // 生成母语文件路径
766
+ const zenSrcDir = path.join(process.cwd(), '.zen', 'src');
767
+ const sourceLangDir = path.join(zenSrcDir, sourceLang);
768
+ const nativeFilePath = path.join(sourceLangDir, `${nativeHash}.md`);
769
+ // 确保目录存在
770
+ await fs.mkdir(sourceLangDir, { recursive: true });
771
+ // 检查文件是否已存在
772
+ try {
773
+ await fs.access(nativeFilePath);
774
+ if (verbose) {
775
+ console.log(` ✅ Native file already exists: ${nativeFilePath}`);
776
+ }
777
+ }
778
+ catch (error) {
779
+ // 文件不存在,保存母语文件
780
+ await fs.writeFile(nativeFilePath, file.content, 'utf-8');
781
+ if (verbose) {
782
+ console.log(` 💾 Saved native file: ${nativeFilePath}`);
783
+ }
784
+ }
785
+ }
786
+ catch (error) {
787
+ console.error(`❌ Failed to store native file for ${file.path}:`, error);
788
+ }
789
+ }
790
+ }
791
+ /**
792
+ * 处理文件翻译
422
793
  */
794
+ async processTranslations(files, targetLangs, verbose) {
795
+ const aiService = new ai_service_1.AIService();
796
+ for (const file of files) {
797
+ try {
798
+ // 获取文件的AI元数据(包含inferred_lang)
799
+ const sourceLang = file.aiMetadata?.inferred_lang || 'zh-Hans';
800
+ const nativeHash = file.hash || aiService.calculateFileHash(file.content);
801
+ if (verbose) {
802
+ console.log(`📄 Processing translations for: ${file.path} (${sourceLang})`);
803
+ }
804
+ for (const targetLang of targetLangs) {
805
+ try {
806
+ // 确保翻译文件存在
807
+ await this.translationService.ensureTranslatedFile(file, sourceLang, targetLang, nativeHash);
808
+ if (verbose) {
809
+ console.log(` ✅ Translated to ${targetLang}`);
810
+ }
811
+ }
812
+ catch (error) {
813
+ console.error(` ❌ Failed to translate to ${targetLang}:`, error);
814
+ }
815
+ }
816
+ }
817
+ catch (error) {
818
+ console.error(`❌ Failed to process translations for ${file.path}:`, error);
819
+ }
820
+ }
821
+ }
423
822
  validateConfig(config) {
424
823
  const errors = [];
425
824
  if (config.srcDir && !path.isAbsolute(config.srcDir)) {
@@ -436,6 +835,18 @@ class ZenBuilder {
436
835
  errors.push('i18n.targetLangs must have at least one language');
437
836
  }
438
837
  }
838
+ if (config.ai) {
839
+ if (config.ai.enabled && !process.env.OPENAI_API_KEY && !config.i18n?.apiKey) {
840
+ errors.push('OPENAI_API_KEY environment variable is required when AI is enabled');
841
+ }
842
+ if (config.ai.temperature !== undefined &&
843
+ (config.ai.temperature < 0 || config.ai.temperature > 2)) {
844
+ errors.push('ai.temperature must be between 0 and 2');
845
+ }
846
+ if (config.ai.maxTokens !== undefined && config.ai.maxTokens < 1) {
847
+ errors.push('ai.maxTokens must be greater than 0');
848
+ }
849
+ }
439
850
  return errors;
440
851
  }
441
852
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}