markdown-ai-rewriter 0.4.0 → 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 (112) hide show
  1. package/dist/cli.js +135 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/core/providers/anthropic.d.ts.map +1 -1
  4. package/dist/core/providers/anthropic.js +3 -2
  5. package/dist/core/providers/anthropic.js.map +1 -1
  6. package/dist/core/providers/azure-openai.d.ts.map +1 -1
  7. package/dist/core/providers/azure-openai.js +4 -3
  8. package/dist/core/providers/azure-openai.js.map +1 -1
  9. package/dist/core/providers/base.d.ts +2 -2
  10. package/dist/core/providers/base.d.ts.map +1 -1
  11. package/dist/core/providers/base.js +19 -4
  12. package/dist/core/providers/base.js.map +1 -1
  13. package/dist/core/providers/minimax.d.ts.map +1 -1
  14. package/dist/core/providers/minimax.js +4 -3
  15. package/dist/core/providers/minimax.js.map +1 -1
  16. package/dist/core/providers/openai-compatible.d.ts.map +1 -1
  17. package/dist/core/providers/openai-compatible.js +3 -2
  18. package/dist/core/providers/openai-compatible.js.map +1 -1
  19. package/dist/core/providers/openai.d.ts.map +1 -1
  20. package/dist/core/providers/openai.js +4 -3
  21. package/dist/core/providers/openai.js.map +1 -1
  22. package/dist/core/rewriter.d.ts +9 -0
  23. package/dist/core/rewriter.d.ts.map +1 -1
  24. package/dist/core/rewriter.js +116 -11
  25. package/dist/core/rewriter.js.map +1 -1
  26. package/dist/core/text-providers/anthropic.d.ts +12 -0
  27. package/dist/core/text-providers/anthropic.d.ts.map +1 -0
  28. package/dist/core/text-providers/anthropic.js +78 -0
  29. package/dist/core/text-providers/anthropic.js.map +1 -0
  30. package/dist/core/text-providers/azure-openai.d.ts +15 -0
  31. package/dist/core/text-providers/azure-openai.d.ts.map +1 -0
  32. package/dist/core/text-providers/azure-openai.js +87 -0
  33. package/dist/core/text-providers/azure-openai.js.map +1 -0
  34. package/dist/core/text-providers/base.d.ts +12 -0
  35. package/dist/core/text-providers/base.d.ts.map +1 -0
  36. package/dist/core/text-providers/base.js +66 -0
  37. package/dist/core/text-providers/base.js.map +1 -0
  38. package/dist/core/text-providers/deepseek.d.ts +6 -0
  39. package/dist/core/text-providers/deepseek.d.ts.map +1 -0
  40. package/dist/core/text-providers/deepseek.js +12 -0
  41. package/dist/core/text-providers/deepseek.js.map +1 -0
  42. package/dist/core/text-providers/doubao.d.ts +6 -0
  43. package/dist/core/text-providers/doubao.d.ts.map +1 -0
  44. package/dist/core/text-providers/doubao.js +12 -0
  45. package/dist/core/text-providers/doubao.js.map +1 -0
  46. package/dist/core/text-providers/gemini.d.ts +6 -0
  47. package/dist/core/text-providers/gemini.d.ts.map +1 -0
  48. package/dist/core/text-providers/gemini.js +12 -0
  49. package/dist/core/text-providers/gemini.js.map +1 -0
  50. package/dist/core/text-providers/glm.d.ts +6 -0
  51. package/dist/core/text-providers/glm.d.ts.map +1 -0
  52. package/dist/core/text-providers/glm.js +12 -0
  53. package/dist/core/text-providers/glm.js.map +1 -0
  54. package/dist/core/text-providers/minimax.d.ts +20 -0
  55. package/dist/core/text-providers/minimax.d.ts.map +1 -0
  56. package/dist/core/text-providers/minimax.js +88 -0
  57. package/dist/core/text-providers/minimax.js.map +1 -0
  58. package/dist/core/text-providers/openai-compatible.d.ts +14 -0
  59. package/dist/core/text-providers/openai-compatible.d.ts.map +1 -0
  60. package/dist/core/text-providers/openai-compatible.js +82 -0
  61. package/dist/core/text-providers/openai-compatible.js.map +1 -0
  62. package/dist/core/text-providers/openai.d.ts +12 -0
  63. package/dist/core/text-providers/openai.d.ts.map +1 -0
  64. package/dist/core/text-providers/openai.js +77 -0
  65. package/dist/core/text-providers/openai.js.map +1 -0
  66. package/dist/core/text-providers/openrouter.d.ts +6 -0
  67. package/dist/core/text-providers/openrouter.d.ts.map +1 -0
  68. package/dist/core/text-providers/openrouter.js +12 -0
  69. package/dist/core/text-providers/openrouter.js.map +1 -0
  70. package/dist/core/text-providers/qwen.d.ts +6 -0
  71. package/dist/core/text-providers/qwen.d.ts.map +1 -0
  72. package/dist/core/text-providers/qwen.js +12 -0
  73. package/dist/core/text-providers/qwen.js.map +1 -0
  74. package/dist/core/text-providers/wenxin.d.ts +6 -0
  75. package/dist/core/text-providers/wenxin.d.ts.map +1 -0
  76. package/dist/core/text-providers/wenxin.js +12 -0
  77. package/dist/core/text-providers/wenxin.js.map +1 -0
  78. package/dist/core/video-generator.d.ts +65 -0
  79. package/dist/core/video-generator.d.ts.map +1 -0
  80. package/dist/core/video-generator.js +140 -0
  81. package/dist/core/video-generator.js.map +1 -0
  82. package/dist/core/video-providers/doubao.d.ts +52 -0
  83. package/dist/core/video-providers/doubao.d.ts.map +1 -0
  84. package/dist/core/video-providers/doubao.js +148 -0
  85. package/dist/core/video-providers/doubao.js.map +1 -0
  86. package/dist/core/video-providers/index.d.ts +6 -0
  87. package/dist/core/video-providers/index.d.ts.map +1 -0
  88. package/dist/core/video-providers/index.js +16 -0
  89. package/dist/core/video-providers/index.js.map +1 -0
  90. package/dist/core/video-providers/kling.d.ts +27 -0
  91. package/dist/core/video-providers/kling.d.ts.map +1 -0
  92. package/dist/core/video-providers/kling.js +113 -0
  93. package/dist/core/video-providers/kling.js.map +1 -0
  94. package/dist/core/video-providers/minimax.d.ts +30 -0
  95. package/dist/core/video-providers/minimax.d.ts.map +1 -0
  96. package/dist/core/video-providers/minimax.js +133 -0
  97. package/dist/core/video-providers/minimax.js.map +1 -0
  98. package/dist/core/video-providers/runway.d.ts +22 -0
  99. package/dist/core/video-providers/runway.d.ts.map +1 -0
  100. package/dist/core/video-providers/runway.js +121 -0
  101. package/dist/core/video-providers/runway.js.map +1 -0
  102. package/dist/core/video-providers/types.d.ts +41 -0
  103. package/dist/core/video-providers/types.d.ts.map +1 -0
  104. package/dist/core/video-providers/types.js +3 -0
  105. package/dist/core/video-providers/types.js.map +1 -0
  106. package/dist/index.d.ts +21 -13
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +29 -14
  109. package/dist/index.js.map +1 -1
  110. package/dist/types/index.d.ts +36 -0
  111. package/dist/types/index.d.ts.map +1 -1
  112. package/package.json +1 -1
@@ -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":";;;AAAA,+CAAoD;AACpD,qDAA0D;AAC1D,iDAAsD;AACtD,2DAA+D;AAC/D,+CAAoD;AACpD,mDAAwD;AACxD,uDAA4D;AAC5D,2CAAgD;AAChD,yCAA8C;AAC9C,+CAAoD;AACpD,+CAAoD;AACpD,mDAA+C;AAC/C,yDAAqD;AACrD,mDAA+C;AAC/C,uDAAmD;AAGnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;AAE9D,MAAa,gBAAgB;IAS3B,YAAY,MAAsB;QAF1B,mBAAc,GAAY,KAAK,CAAC;QAGtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;QACxC,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,kCAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,WAAW;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpE,kBAAkB;QAClB,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC;gBACvC,GAAG,MAAM,CAAC,eAAe;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,MAAsB;QAC1C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACvD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAE9D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK;oBACrD,sCAAsC;oBACtC,2EAA2E;oBAC3E,uEAAuE;oBACvE,uEAAuE;oBACvE,4DAA4D;oBAC5D,iEAAiE;oBACjE,iCAAiC,CAClC,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,wBAAwB,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,iCAAiC;YACjC,uCAAuC;YACvC,8CAA8C;YAC9C,0CAA0C;YAC1C,oCAAoC;YACpC,sCAAsC;YACtC,wCAAwC;YACxC,kCAAkC;YAClC,iCAAiC;YACjC,oCAAoC;YACpC,oCAAoC;YACpC,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,QAAiB;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;QAE3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,MAAqB,CAAC;QAE1B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC9E,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACpD,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;oBACtB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC;oBAC3C,oBAAoB,EAAE,IAAI;oBAC1B,mBAAmB,EAAE,IAAI;oBACzB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;iBACrC,CAAC,CAAC;gBACH,MAAM;QACV,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC1F,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC;YACxC,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC;YAErC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,SAAS,KAAK,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAzJD,4CAyJC"}
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"}
@@ -0,0 +1,12 @@
1
+ import { AIProvider, RewriteOptions } from '../../types';
2
+ export declare abstract class BaseProvider implements AIProvider {
3
+ abstract name: string;
4
+ protected getSystemPrompt(options: RewriteOptions, originalLength?: number): string;
5
+ protected getUserPrompt(text: string, preserveLength?: boolean): string;
6
+ /**
7
+ * 清理 AI 思考过程标签和内容
8
+ */
9
+ protected cleanupThinkingContent(content: string): string;
10
+ abstract rewrite(text: string, options: RewriteOptions): Promise<string>;
11
+ }
12
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,8BAAsB,YAAa,YAAW,UAAU;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;IAmCnF,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM;IAQvE;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAmBzD,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CACzE"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseProvider = void 0;
4
+ class BaseProvider {
5
+ getSystemPrompt(options, originalLength) {
6
+ const stylePrompts = {
7
+ casual: '用轻松、口语化的风格重写,就像和朋友聊天一样。',
8
+ formal: '用正式、专业的风格重写,适合商务或学术场合。',
9
+ technical: '用技术性、精确的风格重写,保持专业术语。',
10
+ creative: '用创意、生动的风格重写,增加表现力和吸引力。',
11
+ custom: options.prompt || '重写以下内容,保持原意但改变表达方式。',
12
+ };
13
+ // 长度保持指令
14
+ let lengthInstruction = '';
15
+ if (options.preserveLength && originalLength) {
16
+ const minLength = Math.floor(originalLength * 0.85);
17
+ const maxLength = Math.ceil(originalLength * 1.15);
18
+ lengthInstruction = `
19
+ 5. 【重要】严格保持与原文相近的长度:
20
+ - 原文约 ${originalLength} 字
21
+ - 你的输出必须在 ${minLength}-${maxLength} 字之间
22
+ - 不要大幅缩减或扩展内容
23
+ - 如果原文有多个段落,保持相似的段落数量`;
24
+ }
25
+ const basePrompt = `你是一个专业的内容重写助手。你的任务是重写给定的文本,要求:
26
+ 1. 保持原文的核心意思和信息
27
+ 2. 改变表达方式和句式结构
28
+ 3. 使用不同的词汇和语言风格
29
+ 4. ${stylePrompts[options.style || 'custom']}${lengthInstruction}
30
+
31
+ 重要:只返回重写后的内容,不要添加任何解释、前言或后缀。
32
+ 严禁输出任何思考过程、推理过程或中间分析。
33
+ 严禁输出 <think>...</think>、<reasoning>...</reasoning> 或类似标签。`;
34
+ return basePrompt;
35
+ }
36
+ getUserPrompt(text, preserveLength) {
37
+ if (preserveLength) {
38
+ const charCount = text.length;
39
+ return `请重写以下内容(原文约 ${charCount} 字,请保持相近长度):\n\n${text}`;
40
+ }
41
+ return `请重写以下内容:\n\n${text}`;
42
+ }
43
+ /**
44
+ * 清理 AI 思考过程标签和内容
45
+ */
46
+ cleanupThinkingContent(content) {
47
+ return content
48
+ // 移除 <thinking>...</thinking> 块
49
+ .replace(/<thinking>[\s\S]*?<\/thinking>/gi, '')
50
+ // 移除 <reasoning>...</reasoning> 块
51
+ .replace(/<reasoning>[\s\S]*?<\/reasoning>/gi, '')
52
+ // 移除独立存在的 <thinking> 标签(无闭合)
53
+ .replace(/<thinking>\s*/gi, '')
54
+ // 移除独立存在的 </thinking> 标签
55
+ .replace(/\s*<\/thinking>/gi, '')
56
+ // 移除独立存在的 <reasoning> 标签
57
+ .replace(/<reasoning>\s*/gi, '')
58
+ // 移除独立存在的 </reasoning> 标签
59
+ .replace(/\s*<\/reasoning>/gi, '')
60
+ // 清理多余空行
61
+ .replace(/\n{3,}/g, '\n\n')
62
+ .trim();
63
+ }
64
+ }
65
+ exports.BaseProvider = BaseProvider;
66
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/core/text-providers/base.ts"],"names":[],"mappings":";;;AAEA,MAAsB,YAAY;IAGtB,eAAe,CAAC,OAAuB,EAAE,cAAuB;QACxE,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,wBAAwB;YAChC,SAAS,EAAE,sBAAsB;YACjC,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,qBAAqB;SAChD,CAAC;QAEF,SAAS;QACT,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,cAAc,IAAI,cAAc,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YACnD,iBAAiB,GAAG;;WAEf,cAAc;eACV,SAAS,IAAI,SAAS;;yBAEZ,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAG;;;;KAIlB,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,iBAAiB;;;;0DAIN,CAAC;QAEvD,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,aAAa,CAAC,IAAY,EAAE,cAAwB;QAC5D,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,OAAO,eAAe,SAAS,mBAAmB,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,eAAe,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACO,sBAAsB,CAAC,OAAe;QAC9C,OAAO,OAAO;YACZ,gCAAgC;aAC/B,OAAO,CAAC,kCAAkC,EAAE,EAAE,CAAC;YAChD,kCAAkC;aACjC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;YAClD,6BAA6B;aAC5B,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC/B,yBAAyB;aACxB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACjC,yBAAyB;aACxB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAChC,0BAA0B;aACzB,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAClC,SAAS;aACR,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;aAC1B,IAAI,EAAE,CAAC;IACZ,CAAC;CAGF;AArED,oCAqEC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from './openai-compatible';
2
+ export declare const DEFAULT_DEEPSEEK_BASE_URL = "https://api.deepseek.com/v1";
3
+ export declare class DeepSeekProvider extends OpenAICompatibleProvider {
4
+ constructor(apiKey: string, model?: string, baseURL?: string);
5
+ }
6
+ //# sourceMappingURL=deepseek.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/deepseek.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAEvE,qBAAa,gBAAiB,SAAQ,wBAAwB;gBAChD,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAwB,EAAE,OAAO,CAAC,EAAE,MAAM;CAS9E"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeepSeekProvider = exports.DEFAULT_DEEPSEEK_BASE_URL = void 0;
4
+ const openai_compatible_1 = require("./openai-compatible");
5
+ exports.DEFAULT_DEEPSEEK_BASE_URL = 'https://api.deepseek.com/v1';
6
+ class DeepSeekProvider extends openai_compatible_1.OpenAICompatibleProvider {
7
+ constructor(apiKey, model = 'deepseek-chat', baseURL) {
8
+ super('deepseek', apiKey, model, baseURL || process.env.DEEPSEEK_BASE_URL || exports.DEFAULT_DEEPSEEK_BASE_URL, 'DeepSeek uses an OpenAI-compatible endpoint');
9
+ }
10
+ }
11
+ exports.DeepSeekProvider = DeepSeekProvider;
12
+ //# sourceMappingURL=deepseek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../../src/core/text-providers/deepseek.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,yBAAyB,GAAG,6BAA6B,CAAC;AAEvE,MAAa,gBAAiB,SAAQ,4CAAwB;IAC5D,YAAY,MAAc,EAAE,QAAgB,eAAe,EAAE,OAAgB;QAC3E,KAAK,CACH,UAAU,EACV,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iCAAyB,EACrE,6CAA6C,CAC9C,CAAC;IACJ,CAAC;CACF;AAVD,4CAUC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from './openai-compatible';
2
+ export declare const DEFAULT_DOUBAO_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3";
3
+ export declare class DoubaoProvider extends OpenAICompatibleProvider {
4
+ constructor(apiKey: string, model?: string, baseURL?: string);
5
+ }
6
+ //# sourceMappingURL=doubao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/doubao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,uBAAuB,6CAA6C,CAAC;AAElF,qBAAa,cAAe,SAAQ,wBAAwB;gBAC9C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAiC,EAAE,OAAO,CAAC,EAAE,MAAM;CASvF"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DoubaoProvider = exports.DEFAULT_DOUBAO_BASE_URL = void 0;
4
+ const openai_compatible_1 = require("./openai-compatible");
5
+ exports.DEFAULT_DOUBAO_BASE_URL = 'https://ark.cn-beijing.volces.com/api/v3';
6
+ class DoubaoProvider extends openai_compatible_1.OpenAICompatibleProvider {
7
+ constructor(apiKey, model = 'doubao-seed-1-6-250615', baseURL) {
8
+ super('doubao', apiKey, model, baseURL || process.env.DOUBAO_BASE_URL || exports.DEFAULT_DOUBAO_BASE_URL, 'Doubao (Volcengine Ark) uses an OpenAI-compatible endpoint');
9
+ }
10
+ }
11
+ exports.DoubaoProvider = DoubaoProvider;
12
+ //# sourceMappingURL=doubao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao.js","sourceRoot":"","sources":["../../../src/core/text-providers/doubao.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,uBAAuB,GAAG,0CAA0C,CAAC;AAElF,MAAa,cAAe,SAAQ,4CAAwB;IAC1D,YAAY,MAAc,EAAE,QAAgB,wBAAwB,EAAE,OAAgB;QACpF,KAAK,CACH,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,+BAAuB,EACjE,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF;AAVD,wCAUC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from './openai-compatible';
2
+ export declare const DEFAULT_GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai";
3
+ export declare class GeminiProvider extends OpenAICompatibleProvider {
4
+ constructor(apiKey: string, model?: string, baseURL?: string);
5
+ }
6
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,uBAAuB,4DAA4D,CAAC;AAEjG,qBAAa,cAAe,SAAQ,wBAAwB;gBAC9C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA2B,EAAE,OAAO,CAAC,EAAE,MAAM;CASjF"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeminiProvider = exports.DEFAULT_GEMINI_BASE_URL = void 0;
4
+ const openai_compatible_1 = require("./openai-compatible");
5
+ exports.DEFAULT_GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta/openai';
6
+ class GeminiProvider extends openai_compatible_1.OpenAICompatibleProvider {
7
+ constructor(apiKey, model = 'gemini-2.0-flash', baseURL) {
8
+ super('gemini', apiKey, model, baseURL || process.env.GEMINI_BASE_URL || exports.DEFAULT_GEMINI_BASE_URL, 'Gemini uses an OpenAI-compatible endpoint');
9
+ }
10
+ }
11
+ exports.GeminiProvider = GeminiProvider;
12
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/core/text-providers/gemini.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,uBAAuB,GAAG,yDAAyD,CAAC;AAEjG,MAAa,cAAe,SAAQ,4CAAwB;IAC1D,YAAY,MAAc,EAAE,QAAgB,kBAAkB,EAAE,OAAgB;QAC9E,KAAK,CACH,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,+BAAuB,EACjE,2CAA2C,CAC5C,CAAC;IACJ,CAAC;CACF;AAVD,wCAUC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from './openai-compatible';
2
+ export declare const DEFAULT_GLM_BASE_URL = "https://open.bigmodel.cn/api/paas/v4";
3
+ export declare class GLMProvider extends OpenAICompatibleProvider {
4
+ constructor(apiKey: string, model?: string, baseURL?: string);
5
+ }
6
+ //# sourceMappingURL=glm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glm.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/glm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAE3E,qBAAa,WAAY,SAAQ,wBAAwB;gBAC3C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAqB,EAAE,OAAO,CAAC,EAAE,MAAM;CAS3E"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GLMProvider = exports.DEFAULT_GLM_BASE_URL = void 0;
4
+ const openai_compatible_1 = require("./openai-compatible");
5
+ exports.DEFAULT_GLM_BASE_URL = 'https://open.bigmodel.cn/api/paas/v4';
6
+ class GLMProvider extends openai_compatible_1.OpenAICompatibleProvider {
7
+ constructor(apiKey, model = 'glm-4-plus', baseURL) {
8
+ super('glm', apiKey, model, baseURL || process.env.GLM_BASE_URL || exports.DEFAULT_GLM_BASE_URL, 'GLM (BigModel) uses an OpenAI-compatible endpoint');
9
+ }
10
+ }
11
+ exports.GLMProvider = GLMProvider;
12
+ //# sourceMappingURL=glm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glm.js","sourceRoot":"","sources":["../../../src/core/text-providers/glm.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,oBAAoB,GAAG,sCAAsC,CAAC;AAE3E,MAAa,WAAY,SAAQ,4CAAwB;IACvD,YAAY,MAAc,EAAE,QAAgB,YAAY,EAAE,OAAgB;QACxE,KAAK,CACH,KAAK,EACL,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,4BAAoB,EAC3D,mDAAmD,CACpD,CAAC;IACJ,CAAC;CACF;AAVD,kCAUC"}
@@ -0,0 +1,20 @@
1
+ import { BaseProvider } from './base';
2
+ import { RewriteOptions } from '../../types';
3
+ /** MiniMax OpenAI-compatible base URL (see https://platform.minimax.io/docs/api-reference/text-openai-api) */
4
+ export declare const DEFAULT_MINIMAX_BASE_URL = "https://api.minimaxi.com/v1";
5
+ export declare class MinimaxProvider extends BaseProvider {
6
+ name: string;
7
+ private apiKey;
8
+ private model;
9
+ private baseURL;
10
+ private client;
11
+ /**
12
+ * @param apiKey MiniMax API key from the console
13
+ * @param model e.g. MiniMax-M2.1, MiniMax-M2.7 (see MiniMax docs)
14
+ * @param baseURL Override API base; default MINIMAX_BASE_URL env or `https://api.minimaxi.com/v1`
15
+ */
16
+ constructor(apiKey: string, model?: string, baseURL?: string);
17
+ private getClient;
18
+ rewrite(text: string, options: RewriteOptions): Promise<string>;
19
+ }
20
+ //# sourceMappingURL=minimax.d.ts.map