markdown-ai-rewriter 0.4.1 → 0.5.0

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 (93) hide show
  1. package/dist/cli.js +135 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/core/rewriter.d.ts +9 -0
  4. package/dist/core/rewriter.d.ts.map +1 -1
  5. package/dist/core/rewriter.js +116 -11
  6. package/dist/core/rewriter.js.map +1 -1
  7. package/dist/core/text-providers/anthropic.d.ts +12 -0
  8. package/dist/core/text-providers/anthropic.d.ts.map +1 -0
  9. package/dist/core/text-providers/anthropic.js +78 -0
  10. package/dist/core/text-providers/anthropic.js.map +1 -0
  11. package/dist/core/text-providers/azure-openai.d.ts +15 -0
  12. package/dist/core/text-providers/azure-openai.d.ts.map +1 -0
  13. package/dist/core/text-providers/azure-openai.js +87 -0
  14. package/dist/core/text-providers/azure-openai.js.map +1 -0
  15. package/dist/core/text-providers/base.d.ts +12 -0
  16. package/dist/core/text-providers/base.d.ts.map +1 -0
  17. package/dist/core/text-providers/base.js +66 -0
  18. package/dist/core/text-providers/base.js.map +1 -0
  19. package/dist/core/text-providers/deepseek.d.ts +6 -0
  20. package/dist/core/text-providers/deepseek.d.ts.map +1 -0
  21. package/dist/core/text-providers/deepseek.js +12 -0
  22. package/dist/core/text-providers/deepseek.js.map +1 -0
  23. package/dist/core/text-providers/doubao.d.ts +6 -0
  24. package/dist/core/text-providers/doubao.d.ts.map +1 -0
  25. package/dist/core/text-providers/doubao.js +12 -0
  26. package/dist/core/text-providers/doubao.js.map +1 -0
  27. package/dist/core/text-providers/gemini.d.ts +6 -0
  28. package/dist/core/text-providers/gemini.d.ts.map +1 -0
  29. package/dist/core/text-providers/gemini.js +12 -0
  30. package/dist/core/text-providers/gemini.js.map +1 -0
  31. package/dist/core/text-providers/glm.d.ts +6 -0
  32. package/dist/core/text-providers/glm.d.ts.map +1 -0
  33. package/dist/core/text-providers/glm.js +12 -0
  34. package/dist/core/text-providers/glm.js.map +1 -0
  35. package/dist/core/text-providers/minimax.d.ts +20 -0
  36. package/dist/core/text-providers/minimax.d.ts.map +1 -0
  37. package/dist/core/text-providers/minimax.js +88 -0
  38. package/dist/core/text-providers/minimax.js.map +1 -0
  39. package/dist/core/text-providers/openai-compatible.d.ts +14 -0
  40. package/dist/core/text-providers/openai-compatible.d.ts.map +1 -0
  41. package/dist/core/text-providers/openai-compatible.js +82 -0
  42. package/dist/core/text-providers/openai-compatible.js.map +1 -0
  43. package/dist/core/text-providers/openai.d.ts +12 -0
  44. package/dist/core/text-providers/openai.d.ts.map +1 -0
  45. package/dist/core/text-providers/openai.js +77 -0
  46. package/dist/core/text-providers/openai.js.map +1 -0
  47. package/dist/core/text-providers/openrouter.d.ts +6 -0
  48. package/dist/core/text-providers/openrouter.d.ts.map +1 -0
  49. package/dist/core/text-providers/openrouter.js +12 -0
  50. package/dist/core/text-providers/openrouter.js.map +1 -0
  51. package/dist/core/text-providers/qwen.d.ts +6 -0
  52. package/dist/core/text-providers/qwen.d.ts.map +1 -0
  53. package/dist/core/text-providers/qwen.js +12 -0
  54. package/dist/core/text-providers/qwen.js.map +1 -0
  55. package/dist/core/text-providers/wenxin.d.ts +6 -0
  56. package/dist/core/text-providers/wenxin.d.ts.map +1 -0
  57. package/dist/core/text-providers/wenxin.js +12 -0
  58. package/dist/core/text-providers/wenxin.js.map +1 -0
  59. package/dist/core/video-generator.d.ts +65 -0
  60. package/dist/core/video-generator.d.ts.map +1 -0
  61. package/dist/core/video-generator.js +140 -0
  62. package/dist/core/video-generator.js.map +1 -0
  63. package/dist/core/video-providers/doubao.d.ts +52 -0
  64. package/dist/core/video-providers/doubao.d.ts.map +1 -0
  65. package/dist/core/video-providers/doubao.js +148 -0
  66. package/dist/core/video-providers/doubao.js.map +1 -0
  67. package/dist/core/video-providers/index.d.ts +6 -0
  68. package/dist/core/video-providers/index.d.ts.map +1 -0
  69. package/dist/core/video-providers/index.js +16 -0
  70. package/dist/core/video-providers/index.js.map +1 -0
  71. package/dist/core/video-providers/kling.d.ts +27 -0
  72. package/dist/core/video-providers/kling.d.ts.map +1 -0
  73. package/dist/core/video-providers/kling.js +113 -0
  74. package/dist/core/video-providers/kling.js.map +1 -0
  75. package/dist/core/video-providers/minimax.d.ts +30 -0
  76. package/dist/core/video-providers/minimax.d.ts.map +1 -0
  77. package/dist/core/video-providers/minimax.js +133 -0
  78. package/dist/core/video-providers/minimax.js.map +1 -0
  79. package/dist/core/video-providers/runway.d.ts +22 -0
  80. package/dist/core/video-providers/runway.d.ts.map +1 -0
  81. package/dist/core/video-providers/runway.js +121 -0
  82. package/dist/core/video-providers/runway.js.map +1 -0
  83. package/dist/core/video-providers/types.d.ts +41 -0
  84. package/dist/core/video-providers/types.d.ts.map +1 -0
  85. package/dist/core/video-providers/types.js +3 -0
  86. package/dist/core/video-providers/types.js.map +1 -0
  87. package/dist/index.d.ts +21 -13
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +29 -14
  90. package/dist/index.js.map +1 -1
  91. package/dist/types/index.d.ts +36 -0
  92. package/dist/types/index.d.ts.map +1 -1
  93. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -5,6 +5,7 @@ const commander_1 = require("commander");
5
5
  const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
7
  const rewriter_1 = require("./core/rewriter");
8
+ const video_generator_1 = require("./core/video-generator");
8
9
  const PROVIDER_ENV_KEY_MAP = {
9
10
  openai: 'OPENAI_API_KEY',
10
11
  anthropic: 'ANTHROPIC_API_KEY',
@@ -48,6 +49,11 @@ program
48
49
  .option('--image-model <model>', 'Image model name (provider-specific default used when omitted)')
49
50
  .option('--image-prompt <prompt>', 'Custom prompt for image generation')
50
51
  .option('--image-output-dir <dir>', 'Output directory for generated images')
52
+ .option('--generate-video', 'Generate a video summary of the article')
53
+ .option('--video-provider <provider>', 'Video provider: minimax, doubao, kling, runway (default: minimax)', 'minimax')
54
+ .option('--video-duration <seconds>', 'Video duration in seconds', parseInt, 6)
55
+ .option('--video-resolution <res>', 'Video resolution: 720P, 768P, 1080P', '1080P')
56
+ .option('--video-output-dir <dir>', 'Output directory for generated video')
51
57
  .action(async (options) => {
52
58
  try {
53
59
  if (!['section', 'full'].includes(options.mode)) {
@@ -100,6 +106,26 @@ program
100
106
  verbose: options.verbose,
101
107
  };
102
108
  }
109
+ // 构建视频处理配置
110
+ let videoProcessing;
111
+ if (options.generateVideo) {
112
+ const videoProvider = options.videoProvider;
113
+ const videoEnvKey = VIDEO_PROVIDER_ENV_MAP[videoProvider];
114
+ const videoApiKey = process.env[videoEnvKey];
115
+ if (!videoApiKey) {
116
+ console.error('❌ 错误:视频生成需要 API key');
117
+ console.error(` 设置环境变量: ${videoEnvKey}`);
118
+ process.exit(1);
119
+ }
120
+ videoProcessing = {
121
+ provider: videoProvider,
122
+ apiKey: videoApiKey,
123
+ duration: options.videoDuration,
124
+ resolution: options.videoResolution,
125
+ outputDir: options.videoOutputDir || (0, path_1.join)((0, path_1.dirname)((0, path_1.resolve)(options.input)), 'generated-videos'),
126
+ verbose: options.verbose,
127
+ };
128
+ }
103
129
  const config = {
104
130
  provider,
105
131
  apiKey,
@@ -118,6 +144,7 @@ program
118
144
  preserveLength: options.preserveLength,
119
145
  },
120
146
  imageProcessing,
147
+ videoProcessing,
121
148
  };
122
149
  const modeLabel = options.mode === 'section' ? '章节级' : '全文';
123
150
  console.log(`🚀 开始${modeLabel}改写 (${provider})...`);
@@ -132,6 +159,12 @@ program
132
159
  if (result.imageProcessing) {
133
160
  console.log(` - 图片处理: ${result.imageProcessing.success}/${result.imageProcessing.processed} 成功`);
134
161
  }
162
+ if (result.videoProcessing) {
163
+ console.log(` - 视频生成: ${result.videoProcessing.success ? '成功' : '失败'}`);
164
+ if (result.videoProcessing.videoPath) {
165
+ console.log(` - 视频文件: ${result.videoProcessing.videoPath}`);
166
+ }
167
+ }
135
168
  console.log(` - 输出文件: ${options.output}`);
136
169
  }
137
170
  catch (error) {
@@ -139,5 +172,107 @@ program
139
172
  process.exit(1);
140
173
  }
141
174
  });
175
+ // 视频 Provider 环境变量映射
176
+ const VIDEO_PROVIDER_ENV_MAP = {
177
+ minimax: 'MINIMAX_API_KEY',
178
+ doubao: 'DOUBAO_API_KEY',
179
+ kling: 'KLING_API_KEY',
180
+ runway: 'RUNWAY_API_KEY',
181
+ };
182
+ // 视频生成命令
183
+ program
184
+ .command('video')
185
+ .description('Generate a video from Markdown article')
186
+ .requiredOption('-i, --input <file>', 'Input Markdown file')
187
+ .option('-o, --output <file>', 'Output video file path (default: input filename with .mp4)')
188
+ .option('--video-provider <provider>', 'Video provider: minimax, doubao, kling, runway (default: minimax)', 'minimax')
189
+ .option('--duration <seconds>', 'Video duration in seconds', parseInt, 6)
190
+ .option('--resolution <res>', 'Video resolution: 720P, 768P, 1080P', '1080P')
191
+ .option('--aspect-ratio <ratio>', 'Aspect ratio: 16:9, 9:16, 1:1', '16:9')
192
+ .option('--model <model>', 'Video model (provider-specific)')
193
+ .option('--no-optimize', 'Disable prompt optimization')
194
+ .option('--summary-provider <provider>', 'AI provider for summary: openai, anthropic, minimax, gemini, deepseek, qwen, glm, doubao')
195
+ .option('--summary-model <model>', 'Model for summary generation')
196
+ .option('-v, --verbose', 'Verbose output')
197
+ .action(async (options) => {
198
+ try {
199
+ const videoProvider = options.videoProvider;
200
+ const videoEnvKey = VIDEO_PROVIDER_ENV_MAP[videoProvider];
201
+ const videoApiKey = process.env[videoEnvKey];
202
+ if (!videoApiKey) {
203
+ console.error(`❌ 错误:需要 ${videoEnvKey} 环境变量`);
204
+ process.exit(1);
205
+ }
206
+ const markdown = (0, fs_1.readFileSync)(options.input, 'utf-8');
207
+ console.log(`🎬 开始生成视频 (${videoProvider})...\n`);
208
+ const videoGenerator = new video_generator_1.VideoGenerator({
209
+ provider: videoProvider,
210
+ apiKey: videoApiKey,
211
+ model: options.model,
212
+ duration: options.duration,
213
+ resolution: options.resolution,
214
+ aspectRatio: options.aspectRatio,
215
+ promptOptimizer: options.optimize !== false,
216
+ verbose: options.verbose,
217
+ });
218
+ let summaryProvider;
219
+ // 如果指定了 summary provider,使用 AI 生成视频脚本
220
+ if (options.summaryProvider) {
221
+ const providerKey = PROVIDER_ENV_KEY_MAP[options.summaryProvider];
222
+ const providerApiKey = process.env[providerKey];
223
+ if (!providerApiKey) {
224
+ console.error(`❌ 错误:需要 ${providerKey} 环境变量`);
225
+ process.exit(1);
226
+ }
227
+ const rewriter = new rewriter_1.MarkdownRewriter({
228
+ provider: options.summaryProvider,
229
+ apiKey: providerApiKey,
230
+ model: options.summaryModel,
231
+ verbose: options.verbose,
232
+ });
233
+ // 创建一个简单的 rewrite 包装
234
+ summaryProvider = {
235
+ rewrite: async (text, opts) => {
236
+ const result = await rewriter.rewrite(text);
237
+ return result.rewritten;
238
+ },
239
+ };
240
+ }
241
+ const result = await videoGenerator.generateFromMarkdown(markdown, summaryProvider);
242
+ if (result.success && result.videoUrl) {
243
+ console.log('\n✅ 视频生成成功!');
244
+ console.log(` 任务 ID: ${result.taskId}`);
245
+ console.log(` 文件 ID: ${result.fileId}`);
246
+ console.log(` 视频 URL: ${result.videoUrl}`);
247
+ // 下载视频到本地
248
+ if (options.output || true) {
249
+ const outputPath = options.output || options.input.replace(/\.md$/i, '.mp4');
250
+ console.log(`\n📥 下载视频到: ${outputPath}`);
251
+ try {
252
+ const videoResponse = await fetch(result.videoUrl);
253
+ if (videoResponse.ok) {
254
+ const videoBuffer = Buffer.from(await videoResponse.arrayBuffer());
255
+ (0, fs_1.writeFileSync)(outputPath, videoBuffer);
256
+ console.log(`✅ 视频已保存: ${outputPath}`);
257
+ }
258
+ else {
259
+ console.log(`⚠️ 下载失败,请手动下载: ${result.videoUrl}`);
260
+ }
261
+ }
262
+ catch (downloadError) {
263
+ console.log(`⚠️ 下载失败,请手动下载: ${result.videoUrl}`);
264
+ }
265
+ }
266
+ }
267
+ else {
268
+ console.error(`❌ 视频生成失败: ${result.error}`);
269
+ process.exit(1);
270
+ }
271
+ }
272
+ catch (error) {
273
+ console.error(`❌ 错误:${error.message}`);
274
+ process.exit(1);
275
+ }
276
+ });
142
277
  program.parse();
143
278
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare class MarkdownRewriter {
3
3
  private sectionRewriter;
4
4
  private fullRewriter;
5
5
  private imageProcessor?;
6
+ private videoGenerator?;
6
7
  private provider;
7
8
  private config;
8
9
  private quotaManager?;
@@ -10,5 +11,13 @@ export declare class MarkdownRewriter {
10
11
  constructor(config: RewriterConfig);
11
12
  private resolveApiKey;
12
13
  rewrite(markdown: string, basePath?: string): Promise<RewriteResult>;
14
+ /**
15
+ * 将视频插入到 Markdown 正文上方(头部下方)
16
+ *
17
+ * 规则:
18
+ * - 如果有一级标题(# xxx),插入到标题下方
19
+ * - 否则插入到文档开头
20
+ */
21
+ private insertVideoToMarkdown;
13
22
  }
14
23
  //# sourceMappingURL=rewriter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rewriter.d.ts","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAc,MAAM,UAAU,CAAC;AAIrE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,EAAE,cAAc;IA8ClC,OAAO,CAAC,aAAa;IA+Cf,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAmD3E"}
1
+ {"version":3,"file":"rewriter.d.ts","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAkC,MAAM,UAAU,CAAC;AAMzF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,EAAE,cAAc;IA4DlC,OAAO,CAAC,aAAa;IA+Cf,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA0H1E;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;CAuB9B"}
@@ -1,21 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MarkdownRewriter = void 0;
4
- const openai_1 = require("./providers/openai");
5
- const anthropic_1 = require("./providers/anthropic");
6
- const minimax_1 = require("./providers/minimax");
7
- const azure_openai_1 = require("./providers/azure-openai");
8
- const gemini_1 = require("./providers/gemini");
9
- const deepseek_1 = require("./providers/deepseek");
10
- const openrouter_1 = require("./providers/openrouter");
11
- const qwen_1 = require("./providers/qwen");
12
- const glm_1 = require("./providers/glm");
13
- const doubao_1 = require("./providers/doubao");
14
- const wenxin_1 = require("./providers/wenxin");
4
+ const openai_1 = require("./text-providers/openai");
5
+ const anthropic_1 = require("./text-providers/anthropic");
6
+ const minimax_1 = require("./text-providers/minimax");
7
+ const azure_openai_1 = require("./text-providers/azure-openai");
8
+ const gemini_1 = require("./text-providers/gemini");
9
+ const deepseek_1 = require("./text-providers/deepseek");
10
+ const openrouter_1 = require("./text-providers/openrouter");
11
+ const qwen_1 = require("./text-providers/qwen");
12
+ const glm_1 = require("./text-providers/glm");
13
+ const doubao_1 = require("./text-providers/doubao");
14
+ const wenxin_1 = require("./text-providers/wenxin");
15
15
  const quota_manager_1 = require("./quota-manager");
16
16
  const section_rewriter_1 = require("./section-rewriter");
17
17
  const full_rewriter_1 = require("./full-rewriter");
18
18
  const image_processor_1 = require("./image-processor");
19
+ const video_generator_1 = require("./video-generator");
20
+ const fs_1 = require("fs");
21
+ const path_1 = require("path");
19
22
  const SHARED_OPENAI_KEY = process.env.SHARED_OPENAI_KEY || '';
20
23
  class MarkdownRewriter {
21
24
  constructor(config) {
@@ -71,6 +74,19 @@ class MarkdownRewriter {
71
74
  verbose: config.verbose,
72
75
  });
73
76
  }
77
+ // 初始化视频生成器(如果配置了)
78
+ if (config.videoProcessing && config.videoProcessing.apiKey) {
79
+ this.videoGenerator = new video_generator_1.VideoGenerator({
80
+ provider: config.videoProcessing.provider,
81
+ apiKey: config.videoProcessing.apiKey,
82
+ model: config.videoProcessing.model,
83
+ duration: config.videoProcessing.duration,
84
+ resolution: config.videoProcessing.resolution,
85
+ aspectRatio: config.videoProcessing.aspectRatio,
86
+ promptOptimizer: config.videoProcessing.promptOptimizer,
87
+ verbose: config.verbose,
88
+ });
89
+ }
74
90
  }
75
91
  resolveApiKey(config) {
76
92
  if (config.apiKey) {
@@ -150,8 +166,97 @@ class MarkdownRewriter {
150
166
  console.log(` 处理完成: ${imageResult.success}/${imageResult.processed} 成功`);
151
167
  }
152
168
  }
169
+ // 生成视频(如果配置了视频生成器)
170
+ if (this.videoGenerator) {
171
+ if (this.config.verbose) {
172
+ console.log('\n🎬 开始生成视频...');
173
+ }
174
+ // 使用当前 provider 生成视频脚本
175
+ const summaryProvider = {
176
+ rewrite: async (text, opts) => {
177
+ return this.provider.rewrite(text, opts);
178
+ },
179
+ };
180
+ const videoResult = await this.videoGenerator.generateFromMarkdown(result.rewritten, summaryProvider);
181
+ if (videoResult.success && videoResult.videoUrl) {
182
+ // 下载视频到本地
183
+ const outputDir = this.config.videoProcessing?.outputDir ||
184
+ (basePath ? (0, path_1.dirname)(basePath) : '.');
185
+ const videoFileName = `video-${Date.now()}.mp4`;
186
+ const videoPath = (0, path_1.join)(outputDir, videoFileName);
187
+ try {
188
+ const videoResponse = await fetch(videoResult.videoUrl);
189
+ if (videoResponse.ok) {
190
+ const videoBuffer = Buffer.from(await videoResponse.arrayBuffer());
191
+ (0, fs_1.writeFileSync)(videoPath, videoBuffer);
192
+ if (this.config.verbose) {
193
+ console.log(` 视频已保存: ${videoPath}`);
194
+ }
195
+ // 将视频插入到正文上方(头部下方)
196
+ result.rewritten = this.insertVideoToMarkdown(result.rewritten, videoPath);
197
+ result.videoProcessing = {
198
+ success: true,
199
+ videoPath,
200
+ videoUrl: videoResult.videoUrl,
201
+ taskId: videoResult.taskId,
202
+ };
203
+ }
204
+ else {
205
+ result.videoProcessing = {
206
+ success: false,
207
+ videoUrl: videoResult.videoUrl,
208
+ error: '视频下载失败',
209
+ };
210
+ }
211
+ }
212
+ catch (downloadError) {
213
+ result.videoProcessing = {
214
+ success: false,
215
+ videoUrl: videoResult.videoUrl,
216
+ error: downloadError.message,
217
+ };
218
+ }
219
+ }
220
+ else {
221
+ result.videoProcessing = {
222
+ success: false,
223
+ error: videoResult.error,
224
+ };
225
+ }
226
+ if (this.config.verbose) {
227
+ console.log(` 视频生成: ${result.videoProcessing?.success ? '成功' : '失败'}`);
228
+ }
229
+ }
153
230
  return result;
154
231
  }
232
+ /**
233
+ * 将视频插入到 Markdown 正文上方(头部下方)
234
+ *
235
+ * 规则:
236
+ * - 如果有一级标题(# xxx),插入到标题下方
237
+ * - 否则插入到文档开头
238
+ */
239
+ insertVideoToMarkdown(markdown, videoPath) {
240
+ const lines = markdown.split('\n');
241
+ const videoMarkdown = `\n<video src="${videoPath}" controls width="100%"></video>\n`;
242
+ // 查找第一个一级标题
243
+ let insertIndex = 0;
244
+ for (let i = 0; i < lines.length; i++) {
245
+ const line = lines[i].trim();
246
+ // 匹配一级标题 # xxx
247
+ if (/^#\s+/.test(line)) {
248
+ insertIndex = i + 1;
249
+ // 跳过标题后的空行
250
+ while (insertIndex < lines.length && lines[insertIndex].trim() === '') {
251
+ insertIndex++;
252
+ }
253
+ break;
254
+ }
255
+ }
256
+ // 插入视频
257
+ lines.splice(insertIndex, 0, videoMarkdown);
258
+ return lines.join('\n');
259
+ }
155
260
  }
156
261
  exports.MarkdownRewriter = MarkdownRewriter;
157
262
  //# sourceMappingURL=rewriter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rewriter.js","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rewriter.js","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { BaseProvider } from './base';
2
+ import { RewriteOptions } from '../../types';
3
+ export declare class AnthropicProvider extends BaseProvider {
4
+ name: string;
5
+ private apiKey;
6
+ private model;
7
+ private client;
8
+ constructor(apiKey: string, model?: string);
9
+ private getClient;
10
+ rewrite(text: string, options: RewriteOptions): Promise<string>;
11
+ }
12
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,SAAe;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAgC;gBAElC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAqC;YAM1D,SAAS;IAQjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBtE"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AnthropicProvider = void 0;
37
+ const base_1 = require("./base");
38
+ class AnthropicProvider extends base_1.BaseProvider {
39
+ constructor(apiKey, model = 'claude-3-5-sonnet-20241022') {
40
+ super();
41
+ this.name = 'anthropic';
42
+ this.client = null;
43
+ this.apiKey = apiKey;
44
+ this.model = model;
45
+ }
46
+ async getClient() {
47
+ if (!this.client) {
48
+ const Anthropic = await Promise.resolve().then(() => __importStar(require('@anthropic-ai/sdk'))).then(m => m.default || m);
49
+ this.client = new Anthropic({ apiKey: this.apiKey });
50
+ }
51
+ return this.client;
52
+ }
53
+ async rewrite(text, options) {
54
+ try {
55
+ const client = await this.getClient();
56
+ const originalLength = text.length;
57
+ const response = await client.messages.create({
58
+ model: this.model,
59
+ max_tokens: options.maxTokens ?? 2000,
60
+ temperature: options.temperature ?? 0.7,
61
+ system: this.getSystemPrompt(options, originalLength),
62
+ messages: [
63
+ { role: 'user', content: this.getUserPrompt(text, options.preserveLength) },
64
+ ],
65
+ });
66
+ const content = response.content[0];
67
+ return this.cleanupThinkingContent(content.type === 'text' ? content.text.trim() : text);
68
+ }
69
+ catch (error) {
70
+ if (error.code === 'MODULE_NOT_FOUND') {
71
+ throw new Error('Anthropic SDK not installed. Run: npm install @anthropic-ai/sdk');
72
+ }
73
+ throw new Error(`Anthropic API error: ${error.message}`);
74
+ }
75
+ }
76
+ }
77
+ exports.AnthropicProvider = AnthropicProvider;
78
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/core/text-providers/anthropic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAKtC,MAAa,iBAAkB,SAAQ,mBAAY;IAMjD,YAAY,MAAc,EAAE,QAAgB,4BAA4B;QACtE,KAAK,EAAE,CAAC;QANV,SAAI,GAAG,WAAW,CAAC;QAGX,WAAM,GAA2B,IAAI,CAAC;QAI5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,kDAAO,mBAAmB,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAoB,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAuB;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAEnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC;gBACrD,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;iBAC5E;aACF,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AA5CD,8CA4CC"}
@@ -0,0 +1,15 @@
1
+ import { BaseProvider } from './base';
2
+ import { RewriteOptions } from '../../types';
3
+ export declare const DEFAULT_AZURE_OPENAI_API_VERSION = "2024-10-21";
4
+ export declare class AzureOpenAIProvider extends BaseProvider {
5
+ name: string;
6
+ private apiKey;
7
+ private deployment;
8
+ private endpoint;
9
+ private apiVersion;
10
+ private client;
11
+ constructor(apiKey: string, deployment?: string, endpoint?: string, apiVersion?: string);
12
+ private getClient;
13
+ rewrite(text: string, options: RewriteOptions): Promise<string>;
14
+ }
15
+ //# sourceMappingURL=azure-openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/azure-openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,eAAO,MAAM,gCAAgC,eAAe,CAAC;AAE7D,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,IAAI,SAAkB;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAkC;gBAG9C,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAsB,EAClC,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM;YAeP,SAAS;IAYjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAuBtE"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AzureOpenAIProvider = exports.DEFAULT_AZURE_OPENAI_API_VERSION = void 0;
37
+ const base_1 = require("./base");
38
+ exports.DEFAULT_AZURE_OPENAI_API_VERSION = '2024-10-21';
39
+ class AzureOpenAIProvider extends base_1.BaseProvider {
40
+ constructor(apiKey, deployment = 'gpt-4o-mini', endpoint, apiVersion) {
41
+ super();
42
+ this.name = 'azure-openai';
43
+ this.client = null;
44
+ this.apiKey = apiKey;
45
+ this.deployment = deployment;
46
+ this.endpoint = endpoint || process.env.AZURE_OPENAI_ENDPOINT || '';
47
+ this.apiVersion = apiVersion || process.env.AZURE_OPENAI_API_VERSION || exports.DEFAULT_AZURE_OPENAI_API_VERSION;
48
+ if (!this.endpoint) {
49
+ throw new Error('Azure OpenAI requires endpoint. Set AZURE_OPENAI_ENDPOINT or pass --base-url when provider is azure-openai.');
50
+ }
51
+ }
52
+ async getClient() {
53
+ if (!this.client) {
54
+ const { AzureOpenAI } = await Promise.resolve().then(() => __importStar(require('openai')));
55
+ this.client = new AzureOpenAI({
56
+ apiKey: this.apiKey,
57
+ endpoint: this.endpoint,
58
+ apiVersion: this.apiVersion,
59
+ });
60
+ }
61
+ return this.client;
62
+ }
63
+ async rewrite(text, options) {
64
+ try {
65
+ const client = await this.getClient();
66
+ const originalLength = text.length;
67
+ const response = await client.chat.completions.create({
68
+ model: this.deployment,
69
+ messages: [
70
+ { role: 'system', content: this.getSystemPrompt(options, originalLength) },
71
+ { role: 'user', content: this.getUserPrompt(text, options.preserveLength) },
72
+ ],
73
+ temperature: options.temperature ?? 0.7,
74
+ max_tokens: options.maxTokens ?? 2000,
75
+ });
76
+ return this.cleanupThinkingContent(response.choices[0]?.message?.content?.trim() || text);
77
+ }
78
+ catch (error) {
79
+ if (error.code === 'MODULE_NOT_FOUND') {
80
+ throw new Error('OpenAI SDK not installed. Azure OpenAI uses OpenAI SDK. Run: npm install openai');
81
+ }
82
+ throw new Error(`Azure OpenAI API error: ${error.message}`);
83
+ }
84
+ }
85
+ }
86
+ exports.AzureOpenAIProvider = AzureOpenAIProvider;
87
+ //# sourceMappingURL=azure-openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai.js","sourceRoot":"","sources":["../../../src/core/text-providers/azure-openai.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAKzB,QAAA,gCAAgC,GAAG,YAAY,CAAC;AAE7D,MAAa,mBAAoB,SAAQ,mBAAY;IAQnD,YACE,MAAc,EACd,aAAqB,aAAa,EAClC,QAAiB,EACjB,UAAmB;QAEnB,KAAK,EAAE,CAAC;QAbV,SAAI,GAAG,cAAc,CAAC;QAKd,WAAM,GAA6B,IAAI,CAAC;QAS9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,wCAAgC,CAAC;QAEzG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAsB,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAuB;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAEnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACpD,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;oBAC1E,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;iBAC5E;gBACD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;aACtC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACrG,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AA9DD,kDA8DC"}