markdown-ai-rewriter 0.2.2 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +87 -26
- package/dist/cli.js +31 -13
- package/dist/cli.js.map +1 -1
- package/dist/core/providers/azure-openai.d.ts +15 -0
- package/dist/core/providers/azure-openai.d.ts.map +1 -0
- package/dist/core/providers/azure-openai.js +86 -0
- package/dist/core/providers/azure-openai.js.map +1 -0
- package/dist/core/providers/deepseek.d.ts +6 -0
- package/dist/core/providers/deepseek.d.ts.map +1 -0
- package/dist/core/providers/deepseek.js +12 -0
- package/dist/core/providers/deepseek.js.map +1 -0
- package/dist/core/providers/doubao.d.ts +6 -0
- package/dist/core/providers/doubao.d.ts.map +1 -0
- package/dist/core/providers/doubao.js +12 -0
- package/dist/core/providers/doubao.js.map +1 -0
- package/dist/core/providers/gemini.d.ts +6 -0
- package/dist/core/providers/gemini.d.ts.map +1 -0
- package/dist/core/providers/gemini.js +12 -0
- package/dist/core/providers/gemini.js.map +1 -0
- package/dist/core/providers/glm.d.ts +6 -0
- package/dist/core/providers/glm.d.ts.map +1 -0
- package/dist/core/providers/glm.js +12 -0
- package/dist/core/providers/glm.js.map +1 -0
- package/dist/core/providers/minimax.d.ts +2 -2
- package/dist/core/providers/minimax.d.ts.map +1 -1
- package/dist/core/providers/minimax.js +2 -2
- package/dist/core/providers/minimax.js.map +1 -1
- package/dist/core/providers/openai-compatible.d.ts +14 -0
- package/dist/core/providers/openai-compatible.d.ts.map +1 -0
- package/dist/core/providers/openai-compatible.js +81 -0
- package/dist/core/providers/openai-compatible.js.map +1 -0
- package/dist/core/providers/openrouter.d.ts +6 -0
- package/dist/core/providers/openrouter.d.ts.map +1 -0
- package/dist/core/providers/openrouter.js +12 -0
- package/dist/core/providers/openrouter.js.map +1 -0
- package/dist/core/providers/qwen.d.ts +6 -0
- package/dist/core/providers/qwen.d.ts.map +1 -0
- package/dist/core/providers/qwen.js +12 -0
- package/dist/core/providers/qwen.js.map +1 -0
- package/dist/core/providers/wenxin.d.ts +6 -0
- package/dist/core/providers/wenxin.d.ts.map +1 -0
- package/dist/core/providers/wenxin.js +12 -0
- package/dist/core/providers/wenxin.js.map +1 -0
- package/dist/core/rewriter.d.ts.map +1 -1
- package/dist/core/rewriter.js +47 -2
- package/dist/core/rewriter.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.3.1] - 2026-03-29
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- MiniMax 默认 OpenAI 兼容 endpoint 调整为 `https://api.minimaxi.com/v1`,降低连接错误概率。
|
|
9
|
+
- README 与 `.env.example` 的 MiniMax `MINIMAX_BASE_URL` 默认值说明同步更新。
|
|
10
|
+
|
|
11
|
+
## [0.3.0] - 2026-03-29
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- 新增 Provider:`azure-openai`、`gemini`、`deepseek`、`openrouter`、`qwen`、`glm`、`doubao`、`wenxin`。
|
|
15
|
+
- 新增 `OpenAICompatibleProvider`,统一 OpenAI 兼容接口实现。
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- CLI `--provider` 扩展为 11 个内置 Provider,并按 provider 自动匹配环境变量。
|
|
19
|
+
- 新增 `--base-url`(通用 endpoint 覆盖),`--minimax-base-url` 兼容保留。
|
|
20
|
+
- `RewriterConfig.provider` 类型扩展;新增 `baseUrl` 配置字段。
|
|
21
|
+
- README 增加中文 Provider 指南与“每个平台一条可复制命令”。
|
|
22
|
+
- `.env.example` 补充新增 Provider 的环境变量示例。
|
|
23
|
+
|
|
5
24
|
## [0.2.2] - 2026-03-27
|
|
6
25
|
|
|
7
26
|
### Fixed
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|------|------|
|
|
11
11
|
| **结构优先** | 不是简单「全文扔给模型」,而是按文档结构处理,减少标题错乱、代码被改写、版式被打乱的风险。 |
|
|
12
12
|
| **双模式可切换** | **章节模式**(默认)按标题切块并行,成本与连贯性平衡好;**全文模式**整篇一次生成,语气最连贯,适合短文或强叙事。 |
|
|
13
|
-
| **多模型** | 支持 **OpenAI**、**Anthropic**、**MiniMax
|
|
13
|
+
| **多模型** | 支持 **OpenAI**、**Anthropic**、**Azure OpenAI**、**Gemini**、**DeepSeek**、**OpenRouter**、**Qwen**、**GLM**、**豆包**、**文心**、**MiniMax**,也可接入 **自定义 Provider**。 |
|
|
14
14
|
| **风格可控** | 内置 casual / formal / technical / creative / custom,并支持温度、长度倾向、`--prompt` 自定义指令。 |
|
|
15
15
|
| **工程化友好** | 提供 **CLI**(`markdown-ai-rewrite` / `md-rewrite`)与 **TypeScript API**,可嵌入脚本、CI 或内容流水线。 |
|
|
16
16
|
| **并发可配** | 章节模式下可配置并发请求数,在长文档场景下兼顾速度与 API 限流。 |
|
|
@@ -40,7 +40,8 @@ npm install markdown-ai-rewriter
|
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
42
|
npm install openai
|
|
43
|
-
#
|
|
43
|
+
# Azure OpenAI / Gemini / DeepSeek / OpenRouter / Qwen / GLM / 豆包 / 文心 / MiniMax
|
|
44
|
+
# 均可通过 OpenAI SDK(兼容接口)使用,见下文
|
|
44
45
|
# 或
|
|
45
46
|
npm install @anthropic-ai/sdk
|
|
46
47
|
```
|
|
@@ -51,35 +52,81 @@ npm install @anthropic-ai/sdk
|
|
|
51
52
|
|
|
52
53
|
### 命令行
|
|
53
54
|
|
|
55
|
+
#### Provider 使用说明(中文)
|
|
56
|
+
|
|
57
|
+
下面是每个 Provider 对应的环境变量(`--provider` 和 `API Key` 一一对应):
|
|
58
|
+
|
|
59
|
+
| Provider | 环境变量 | 说明 |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| `openai` | `OPENAI_API_KEY` | OpenAI 官方 |
|
|
62
|
+
| `anthropic` | `ANTHROPIC_API_KEY` | Claude 官方 |
|
|
63
|
+
| `azure-openai` | `AZURE_OPENAI_API_KEY` | 需同时提供 Azure endpoint(`AZURE_OPENAI_ENDPOINT` 或 `--base-url`) |
|
|
64
|
+
| `gemini` | `GEMINI_API_KEY` | 使用 OpenAI 兼容接口 |
|
|
65
|
+
| `deepseek` | `DEEPSEEK_API_KEY` | 使用 OpenAI 兼容接口 |
|
|
66
|
+
| `openrouter` | `OPENROUTER_API_KEY` | 使用 OpenAI 兼容接口 |
|
|
67
|
+
| `qwen` | `QWEN_API_KEY` | 阿里百炼(DashScope)兼容接口 |
|
|
68
|
+
| `glm` | `GLM_API_KEY` | 智谱 BigModel 兼容接口 |
|
|
69
|
+
| `doubao` | `DOUBAO_API_KEY` | 火山引擎 Ark 兼容接口 |
|
|
70
|
+
| `wenxin` | `WENXIN_API_KEY` | 百度千帆兼容接口 |
|
|
71
|
+
| `minimax` | `MINIMAX_API_KEY` | MiniMax 兼容接口 |
|
|
72
|
+
|
|
73
|
+
说明:
|
|
74
|
+
|
|
75
|
+
- `--model` 不传时,会使用各 Provider 内置默认模型。
|
|
76
|
+
- `--base-url` 可覆盖 OpenAI 兼容 Provider 的默认 endpoint。
|
|
77
|
+
- `azure-openai` 的 `--model` 对应 Azure 的 deployment 名称。
|
|
78
|
+
|
|
79
|
+
#### 每个平台一条可复制命令
|
|
80
|
+
|
|
54
81
|
```bash
|
|
55
82
|
# OpenAI
|
|
56
83
|
export OPENAI_API_KEY="your-api-key"
|
|
57
|
-
|
|
58
|
-
--input article.md \
|
|
59
|
-
--output article-rewritten.md \
|
|
60
|
-
--provider openai \
|
|
61
|
-
--style casual
|
|
84
|
+
md-rewrite rewrite -i article.md -o out-openai.md -p openai --style casual
|
|
62
85
|
|
|
63
86
|
# Anthropic
|
|
64
87
|
export ANTHROPIC_API_KEY="your-api-key"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
88
|
+
md-rewrite rewrite -i article.md -o out-anthropic.md -p anthropic --style formal
|
|
89
|
+
|
|
90
|
+
# Azure OpenAI
|
|
91
|
+
export AZURE_OPENAI_API_KEY="your-api-key"
|
|
92
|
+
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com"
|
|
93
|
+
md-rewrite rewrite -i article.md -o out-azure.md -p azure-openai -m gpt-4o-mini
|
|
94
|
+
|
|
95
|
+
# Gemini(OpenAI-compatible)
|
|
96
|
+
export GEMINI_API_KEY="your-api-key"
|
|
97
|
+
md-rewrite rewrite -i article.md -o out-gemini.md -p gemini
|
|
98
|
+
|
|
99
|
+
# DeepSeek
|
|
100
|
+
export DEEPSEEK_API_KEY="your-api-key"
|
|
101
|
+
md-rewrite rewrite -i article.md -o out-deepseek.md -p deepseek
|
|
102
|
+
|
|
103
|
+
# OpenRouter
|
|
104
|
+
export OPENROUTER_API_KEY="your-api-key"
|
|
105
|
+
md-rewrite rewrite -i article.md -o out-openrouter.md -p openrouter -m openai/gpt-4o-mini
|
|
106
|
+
|
|
107
|
+
# Qwen
|
|
108
|
+
export QWEN_API_KEY="your-api-key"
|
|
109
|
+
md-rewrite rewrite -i article.md -o out-qwen.md -p qwen
|
|
110
|
+
|
|
111
|
+
# GLM
|
|
112
|
+
export GLM_API_KEY="your-api-key"
|
|
113
|
+
md-rewrite rewrite -i article.md -o out-glm.md -p glm
|
|
114
|
+
|
|
115
|
+
# 豆包
|
|
116
|
+
export DOUBAO_API_KEY="your-api-key"
|
|
117
|
+
md-rewrite rewrite -i article.md -o out-doubao.md -p doubao
|
|
118
|
+
|
|
119
|
+
# 文心
|
|
120
|
+
export WENXIN_API_KEY="your-api-key"
|
|
121
|
+
md-rewrite rewrite -i article.md -o out-wenxin.md -p wenxin
|
|
70
122
|
|
|
71
123
|
# MiniMax(需已安装 openai;密钥在 MiniMax 开放平台创建)
|
|
72
124
|
export MINIMAX_API_KEY="your-minimax-api-key"
|
|
73
|
-
#
|
|
74
|
-
|
|
75
|
-
-i article.md \
|
|
76
|
-
-o out.md \
|
|
77
|
-
-p minimax \
|
|
78
|
-
-m MiniMax-M2.1 \
|
|
79
|
-
--style casual
|
|
125
|
+
# 可选:如需覆盖默认 endpoint(默认 https://api.minimaxi.com/v1)
|
|
126
|
+
md-rewrite rewrite -i article.md -o out-minimax.md -p minimax -m MiniMax-M2.1 --style casual
|
|
80
127
|
|
|
81
128
|
# 全文模式示例
|
|
82
|
-
|
|
129
|
+
md-rewrite rewrite -i article.md -o out-full.md -p openai --mode full -v
|
|
83
130
|
```
|
|
84
131
|
|
|
85
132
|
### 在代码中使用
|
|
@@ -114,10 +161,11 @@ console.log(result.rewritten);
|
|
|
114
161
|
|------|------|
|
|
115
162
|
| `-i, --input` | 输入 Markdown 文件(必填) |
|
|
116
163
|
| `-o, --output` | 输出 Markdown 文件(必填) |
|
|
117
|
-
| `-p, --provider` | `openai`、`anthropic
|
|
118
|
-
| `-k, --api-key` | API Key
|
|
119
|
-
| `-m, --model` |
|
|
120
|
-
| `--
|
|
164
|
+
| `-p, --provider` | `openai`、`anthropic`、`azure-openai`、`gemini`、`deepseek`、`openrouter`、`qwen`、`glm`、`doubao`、`wenxin`、`minimax`(必填) |
|
|
165
|
+
| `-k, --api-key` | API Key;也可使用对应 provider 的环境变量(如 `OPENAI_API_KEY`、`GEMINI_API_KEY` 等) |
|
|
166
|
+
| `-m, --model` | 模型名 / 部署名(按 provider 默认值可选) |
|
|
167
|
+
| `--base-url` | 通用 Base URL 覆盖(OpenAI 兼容 provider),`azure-openai` 下可作为 endpoint 覆盖 |
|
|
168
|
+
| `--minimax-base-url` | MiniMax 兼容旧参数,等价于 `--base-url` |
|
|
121
169
|
| `-s, --style` | `casual` \| `formal` \| `technical` \| `creative` \| `custom` |
|
|
122
170
|
| `--prompt` | 自定义系统提示补充(常与 `custom` 风格配合) |
|
|
123
171
|
| `-t, --temperature` | 采样温度 0~1,默认约 0.7 |
|
|
@@ -238,9 +286,13 @@ async rewrite(markdown: string): Promise<RewriteResult>
|
|
|
238
286
|
|
|
239
287
|
```typescript
|
|
240
288
|
interface RewriterConfig {
|
|
241
|
-
provider:
|
|
289
|
+
provider:
|
|
290
|
+
| 'openai' | 'anthropic' | 'azure-openai' | 'gemini' | 'deepseek'
|
|
291
|
+
| 'openrouter' | 'qwen' | 'glm' | 'doubao' | 'wenxin'
|
|
292
|
+
| 'minimax' | 'custom';
|
|
242
293
|
apiKey?: string;
|
|
243
294
|
model?: string;
|
|
295
|
+
baseUrl?: string;
|
|
244
296
|
minimaxBaseUrl?: string;
|
|
245
297
|
options?: RewriteOptions;
|
|
246
298
|
customProvider?: AIProvider;
|
|
@@ -271,8 +323,17 @@ interface RewriteResult {
|
|
|
271
323
|
```bash
|
|
272
324
|
export OPENAI_API_KEY="sk-..."
|
|
273
325
|
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
326
|
+
export AZURE_OPENAI_API_KEY="..."
|
|
327
|
+
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com"
|
|
328
|
+
export GEMINI_API_KEY="..."
|
|
329
|
+
export DEEPSEEK_API_KEY="..."
|
|
330
|
+
export OPENROUTER_API_KEY="..."
|
|
331
|
+
export QWEN_API_KEY="..."
|
|
332
|
+
export GLM_API_KEY="..."
|
|
333
|
+
export DOUBAO_API_KEY="..."
|
|
334
|
+
export WENXIN_API_KEY="..."
|
|
274
335
|
export MINIMAX_API_KEY="..."
|
|
275
|
-
# export MINIMAX_BASE_URL="https://api.
|
|
336
|
+
# export MINIMAX_BASE_URL="https://api.minimaxi.com/v1"
|
|
276
337
|
```
|
|
277
338
|
|
|
278
339
|
---
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,19 @@ 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 PROVIDER_ENV_KEY_MAP = {
|
|
9
|
+
openai: 'OPENAI_API_KEY',
|
|
10
|
+
anthropic: 'ANTHROPIC_API_KEY',
|
|
11
|
+
'azure-openai': 'AZURE_OPENAI_API_KEY',
|
|
12
|
+
gemini: 'GEMINI_API_KEY',
|
|
13
|
+
deepseek: 'DEEPSEEK_API_KEY',
|
|
14
|
+
openrouter: 'OPENROUTER_API_KEY',
|
|
15
|
+
qwen: 'QWEN_API_KEY',
|
|
16
|
+
glm: 'GLM_API_KEY',
|
|
17
|
+
doubao: 'DOUBAO_API_KEY',
|
|
18
|
+
wenxin: 'WENXIN_API_KEY',
|
|
19
|
+
minimax: 'MINIMAX_API_KEY',
|
|
20
|
+
};
|
|
8
21
|
const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf-8'));
|
|
9
22
|
const program = new commander_1.Command();
|
|
10
23
|
program
|
|
@@ -16,10 +29,11 @@ program
|
|
|
16
29
|
.description('Rewrite a Markdown file using AI')
|
|
17
30
|
.requiredOption('-i, --input <file>', 'Input Markdown file')
|
|
18
31
|
.requiredOption('-o, --output <file>', 'Output Markdown file')
|
|
19
|
-
.requiredOption('-p, --provider <provider>', 'AI provider: openai, anthropic, minimax')
|
|
20
|
-
.option('-k, --api-key <key>', 'API key (or env: OPENAI_API_KEY, ANTHROPIC_API_KEY, MINIMAX_API_KEY)')
|
|
21
|
-
.option('-m, --model <model>', 'Model (
|
|
22
|
-
.option('--
|
|
32
|
+
.requiredOption('-p, --provider <provider>', 'AI provider: openai, anthropic, azure-openai, gemini, deepseek, openrouter, qwen, glm, doubao, wenxin, minimax')
|
|
33
|
+
.option('-k, --api-key <key>', 'API key (or env: OPENAI_API_KEY, ANTHROPIC_API_KEY, AZURE_OPENAI_API_KEY, GEMINI_API_KEY, DEEPSEEK_API_KEY, OPENROUTER_API_KEY, QWEN_API_KEY, GLM_API_KEY, DOUBAO_API_KEY, WENXIN_API_KEY, MINIMAX_API_KEY)')
|
|
34
|
+
.option('-m, --model <model>', 'Model/deployment name (provider-specific default used when omitted)')
|
|
35
|
+
.option('--base-url <url>', 'Generic provider base URL override (OpenAI-compatible providers) / Azure endpoint override')
|
|
36
|
+
.option('--minimax-base-url <url>', 'MiniMax API base URL (backward-compatible alias of --base-url)')
|
|
23
37
|
.option('-s, --style <style>', 'Writing style: casual, formal, technical, creative, custom', 'custom')
|
|
24
38
|
.option('--prompt <prompt>', 'Custom rewrite prompt')
|
|
25
39
|
.option('-t, --temperature <number>', 'Temperature (0-1)', parseFloat, 0.7)
|
|
@@ -38,22 +52,26 @@ program
|
|
|
38
52
|
if (options.mode === 'full') {
|
|
39
53
|
console.log('ℹ️ 使用全文改写模式(最连贯,但token消耗较大)\n');
|
|
40
54
|
}
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
const providerInput = String(options.provider).toLowerCase();
|
|
56
|
+
if (!PROVIDER_ENV_KEY_MAP[providerInput]) {
|
|
57
|
+
console.error(`❌ 错误:不支持的 provider: ${options.provider}`);
|
|
58
|
+
console.error(' 支持: openai, anthropic, azure-openai, gemini, deepseek, openrouter, qwen, glm, doubao, wenxin, minimax');
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
const provider = providerInput;
|
|
62
|
+
const apiKeyEnvName = PROVIDER_ENV_KEY_MAP[provider];
|
|
63
|
+
const apiKey = options.apiKey || process.env[apiKeyEnvName];
|
|
47
64
|
if (!apiKey) {
|
|
48
65
|
console.error('❌ 错误:需要 API key');
|
|
49
|
-
console.error(
|
|
66
|
+
console.error(` 设置环境变量: ${apiKeyEnvName}(与 --provider=${provider} 对应)`);
|
|
50
67
|
process.exit(1);
|
|
51
68
|
}
|
|
52
69
|
const markdown = (0, fs_1.readFileSync)(options.input, 'utf-8');
|
|
53
70
|
const config = {
|
|
54
|
-
provider
|
|
71
|
+
provider,
|
|
55
72
|
apiKey,
|
|
56
73
|
model: options.model,
|
|
74
|
+
baseUrl: options.baseUrl || options.minimaxBaseUrl,
|
|
57
75
|
minimaxBaseUrl: options.minimaxBaseUrl,
|
|
58
76
|
verbose: options.verbose,
|
|
59
77
|
concurrency: options.concurrency,
|
|
@@ -68,7 +86,7 @@ program
|
|
|
68
86
|
},
|
|
69
87
|
};
|
|
70
88
|
const modeLabel = options.mode === 'section' ? '章节级' : '全文';
|
|
71
|
-
console.log(`🚀 开始${modeLabel}改写 (${
|
|
89
|
+
console.log(`🚀 开始${modeLabel}改写 (${provider})...`);
|
|
72
90
|
const rewriter = new rewriter_1.MarkdownRewriter(config);
|
|
73
91
|
const result = await rewriter.rewrite(markdown);
|
|
74
92
|
(0, fs_1.writeFileSync)(options.output, result.rewritten, 'utf-8');
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,2BAAiD;AACjD,+BAA4B;AAC5B,8CAAmD;AAGnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACtC,CAAC;AAEzB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,qBAAqB,CAAC;KAC3B,WAAW,CAAC,wEAAwE,CAAC;KACrF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,cAAc,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;KAC3D,cAAc,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;KAC7D,cAAc,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -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/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;CAsBtE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 response = await client.chat.completions.create({
|
|
67
|
+
model: this.deployment,
|
|
68
|
+
messages: [
|
|
69
|
+
{ role: 'system', content: this.getSystemPrompt(options) },
|
|
70
|
+
{ role: 'user', content: this.getUserPrompt(text) },
|
|
71
|
+
],
|
|
72
|
+
temperature: options.temperature ?? 0.7,
|
|
73
|
+
max_tokens: options.maxTokens ?? 2000,
|
|
74
|
+
});
|
|
75
|
+
return response.choices[0]?.message?.content?.trim() || text;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error.code === 'MODULE_NOT_FOUND') {
|
|
79
|
+
throw new Error('OpenAI SDK not installed. Azure OpenAI uses OpenAI SDK. Run: npm install openai');
|
|
80
|
+
}
|
|
81
|
+
throw new Error(`Azure OpenAI API error: ${error.message}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.AzureOpenAIProvider = AzureOpenAIProvider;
|
|
86
|
+
//# sourceMappingURL=azure-openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-openai.js","sourceRoot":"","sources":["../../../src/core/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;YAEtC,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,CAAC,EAAE;oBAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;iBACpD;gBACD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;aACtC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAC/D,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;AA7DD,kDA6DC"}
|
|
@@ -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/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/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/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/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/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/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/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/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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseProvider } from './base';
|
|
2
2
|
import { RewriteOptions } from '../../types';
|
|
3
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.
|
|
4
|
+
export declare const DEFAULT_MINIMAX_BASE_URL = "https://api.minimaxi.com/v1";
|
|
5
5
|
export declare class MinimaxProvider extends BaseProvider {
|
|
6
6
|
name: string;
|
|
7
7
|
private apiKey;
|
|
@@ -11,7 +11,7 @@ export declare class MinimaxProvider extends BaseProvider {
|
|
|
11
11
|
/**
|
|
12
12
|
* @param apiKey MiniMax API key from the console
|
|
13
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
|
|
14
|
+
* @param baseURL Override API base; default MINIMAX_BASE_URL env or `https://api.minimaxi.com/v1`
|
|
15
15
|
*/
|
|
16
16
|
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
17
17
|
private getClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimax.d.ts","sourceRoot":"","sources":["../../../src/core/providers/minimax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,8GAA8G;AAC9G,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"minimax.d.ts","sourceRoot":"","sources":["../../../src/core/providers/minimax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,8GAA8G;AAC9G,eAAO,MAAM,wBAAwB,gCAAgC,CAAC;AAEtE,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,IAAI,SAAa;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;;OAIG;gBAED,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAuB,EAC9B,OAAO,CAAC,EAAE,MAAM;YAQJ,SAAS;IAWjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBtE"}
|
|
@@ -36,12 +36,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.MinimaxProvider = exports.DEFAULT_MINIMAX_BASE_URL = void 0;
|
|
37
37
|
const base_1 = require("./base");
|
|
38
38
|
/** MiniMax OpenAI-compatible base URL (see https://platform.minimax.io/docs/api-reference/text-openai-api) */
|
|
39
|
-
exports.DEFAULT_MINIMAX_BASE_URL = 'https://api.
|
|
39
|
+
exports.DEFAULT_MINIMAX_BASE_URL = 'https://api.minimaxi.com/v1';
|
|
40
40
|
class MinimaxProvider extends base_1.BaseProvider {
|
|
41
41
|
/**
|
|
42
42
|
* @param apiKey MiniMax API key from the console
|
|
43
43
|
* @param model e.g. MiniMax-M2.1, MiniMax-M2.7 (see MiniMax docs)
|
|
44
|
-
* @param baseURL Override API base; default MINIMAX_BASE_URL env or
|
|
44
|
+
* @param baseURL Override API base; default MINIMAX_BASE_URL env or `https://api.minimaxi.com/v1`
|
|
45
45
|
*/
|
|
46
46
|
constructor(apiKey, model = 'MiniMax-M2.1', baseURL) {
|
|
47
47
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimax.js","sourceRoot":"","sources":["../../../src/core/providers/minimax.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAKtC,8GAA8G;AACjG,QAAA,wBAAwB,GAAG,
|
|
1
|
+
{"version":3,"file":"minimax.js","sourceRoot":"","sources":["../../../src/core/providers/minimax.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAKtC,8GAA8G;AACjG,QAAA,wBAAwB,GAAG,6BAA6B,CAAC;AAEtE,MAAa,eAAgB,SAAQ,mBAAY;IAO/C;;;;OAIG;IACH,YACE,MAAc,EACd,QAAgB,cAAc,EAC9B,OAAgB;QAEhB,KAAK,EAAE,CAAC;QAhBV,SAAI,GAAG,SAAS,CAAC;QAIT,WAAM,GAAwB,IAAI,CAAC;QAazC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,gCAAwB,CAAC;IACrF,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,kDAAO,QAAQ,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAiB,CAAC;QACrB,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;YAEtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACpD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;oBAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;iBACpD;gBACD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;aACtC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF;AA1DD,0CA0DC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseProvider } from './base';
|
|
2
|
+
import { RewriteOptions } from '../../types';
|
|
3
|
+
export declare class OpenAICompatibleProvider extends BaseProvider {
|
|
4
|
+
name: string;
|
|
5
|
+
private apiKey;
|
|
6
|
+
private model;
|
|
7
|
+
private baseURL;
|
|
8
|
+
private sdkInstallHint;
|
|
9
|
+
private client;
|
|
10
|
+
constructor(providerName: string, apiKey: string, model: string, baseURL: string, sdkInstallHint?: string);
|
|
11
|
+
private getClient;
|
|
12
|
+
rewrite(text: string, options: RewriteOptions): Promise<string>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=openai-compatible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../../src/core/providers/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,qBAAa,wBAAyB,SAAQ,YAAY;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,MAAM,CAA6B;gBAGzC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,MAAgC;YAUpC,SAAS;IAWjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAsBtE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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.OpenAICompatibleProvider = void 0;
|
|
37
|
+
const base_1 = require("./base");
|
|
38
|
+
class OpenAICompatibleProvider extends base_1.BaseProvider {
|
|
39
|
+
constructor(providerName, apiKey, model, baseURL, sdkInstallHint = 'OpenAI-compatible API') {
|
|
40
|
+
super();
|
|
41
|
+
this.client = null;
|
|
42
|
+
this.name = providerName;
|
|
43
|
+
this.apiKey = apiKey;
|
|
44
|
+
this.model = model;
|
|
45
|
+
this.baseURL = baseURL;
|
|
46
|
+
this.sdkInstallHint = sdkInstallHint;
|
|
47
|
+
}
|
|
48
|
+
async getClient() {
|
|
49
|
+
if (!this.client) {
|
|
50
|
+
const OpenAI = await Promise.resolve().then(() => __importStar(require('openai'))).then(m => m.default || m);
|
|
51
|
+
this.client = new OpenAI({
|
|
52
|
+
apiKey: this.apiKey,
|
|
53
|
+
baseURL: this.baseURL,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return this.client;
|
|
57
|
+
}
|
|
58
|
+
async rewrite(text, options) {
|
|
59
|
+
try {
|
|
60
|
+
const client = await this.getClient();
|
|
61
|
+
const response = await client.chat.completions.create({
|
|
62
|
+
model: this.model,
|
|
63
|
+
messages: [
|
|
64
|
+
{ role: 'system', content: this.getSystemPrompt(options) },
|
|
65
|
+
{ role: 'user', content: this.getUserPrompt(text) },
|
|
66
|
+
],
|
|
67
|
+
temperature: options.temperature ?? 0.7,
|
|
68
|
+
max_tokens: options.maxTokens ?? 2000,
|
|
69
|
+
});
|
|
70
|
+
return response.choices[0]?.message?.content?.trim() || text;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error.code === 'MODULE_NOT_FOUND') {
|
|
74
|
+
throw new Error(`OpenAI SDK not installed. ${this.sdkInstallHint}. Run: npm install openai`);
|
|
75
|
+
}
|
|
76
|
+
throw new Error(`${this.name} API error: ${error.message}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.OpenAICompatibleProvider = OpenAICompatibleProvider;
|
|
81
|
+
//# sourceMappingURL=openai-compatible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../../src/core/providers/openai-compatible.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAKtC,MAAa,wBAAyB,SAAQ,mBAAY;IAQxD,YACE,YAAoB,EACpB,MAAc,EACd,KAAa,EACb,OAAe,EACf,iBAAyB,uBAAuB;QAEhD,KAAK,EAAE,CAAC;QATF,WAAM,GAAwB,IAAI,CAAC;QAUzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,kDAAO,QAAQ,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAiB,CAAC;QACrB,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;YAEtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACpD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;oBAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;iBACpD;gBACD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;aACtC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,cAAc,2BAA2B,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AAxDD,4DAwDC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenAICompatibleProvider } from './openai-compatible';
|
|
2
|
+
export declare const DEFAULT_OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
|
|
3
|
+
export declare class OpenRouterProvider extends OpenAICompatibleProvider {
|
|
4
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=openrouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/core/providers/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,2BAA2B,iCAAiC,CAAC;AAE1E,qBAAa,kBAAmB,SAAQ,wBAAwB;gBAClD,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA6B,EAAE,OAAO,CAAC,EAAE,MAAM;CASnF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenRouterProvider = exports.DEFAULT_OPENROUTER_BASE_URL = void 0;
|
|
4
|
+
const openai_compatible_1 = require("./openai-compatible");
|
|
5
|
+
exports.DEFAULT_OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1';
|
|
6
|
+
class OpenRouterProvider extends openai_compatible_1.OpenAICompatibleProvider {
|
|
7
|
+
constructor(apiKey, model = 'openai/gpt-4o-mini', baseURL) {
|
|
8
|
+
super('openrouter', apiKey, model, baseURL || process.env.OPENROUTER_BASE_URL || exports.DEFAULT_OPENROUTER_BASE_URL, 'OpenRouter uses an OpenAI-compatible endpoint');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.OpenRouterProvider = OpenRouterProvider;
|
|
12
|
+
//# sourceMappingURL=openrouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/core/providers/openrouter.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,2BAA2B,GAAG,8BAA8B,CAAC;AAE1E,MAAa,kBAAmB,SAAQ,4CAAwB;IAC9D,YAAY,MAAc,EAAE,QAAgB,oBAAoB,EAAE,OAAgB;QAChF,KAAK,CACH,YAAY,EACZ,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,mCAA2B,EACzE,+CAA+C,CAChD,CAAC;IACJ,CAAC;CACF;AAVD,gDAUC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenAICompatibleProvider } from './openai-compatible';
|
|
2
|
+
export declare const DEFAULT_QWEN_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1";
|
|
3
|
+
export declare class QwenProvider extends OpenAICompatibleProvider {
|
|
4
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=qwen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qwen.d.ts","sourceRoot":"","sources":["../../../src/core/providers/qwen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,qBAAqB,sDAAsD,CAAC;AAEzF,qBAAa,YAAa,SAAQ,wBAAwB;gBAC5C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAoB,EAAE,OAAO,CAAC,EAAE,MAAM;CAS1E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QwenProvider = exports.DEFAULT_QWEN_BASE_URL = void 0;
|
|
4
|
+
const openai_compatible_1 = require("./openai-compatible");
|
|
5
|
+
exports.DEFAULT_QWEN_BASE_URL = 'https://dashscope.aliyuncs.com/compatible-mode/v1';
|
|
6
|
+
class QwenProvider extends openai_compatible_1.OpenAICompatibleProvider {
|
|
7
|
+
constructor(apiKey, model = 'qwen-plus', baseURL) {
|
|
8
|
+
super('qwen', apiKey, model, baseURL || process.env.QWEN_BASE_URL || exports.DEFAULT_QWEN_BASE_URL, 'Qwen (DashScope) uses an OpenAI-compatible endpoint');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.QwenProvider = QwenProvider;
|
|
12
|
+
//# sourceMappingURL=qwen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qwen.js","sourceRoot":"","sources":["../../../src/core/providers/qwen.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,qBAAqB,GAAG,mDAAmD,CAAC;AAEzF,MAAa,YAAa,SAAQ,4CAAwB;IACxD,YAAY,MAAc,EAAE,QAAgB,WAAW,EAAE,OAAgB;QACvE,KAAK,CACH,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,6BAAqB,EAC7D,qDAAqD,CACtD,CAAC;IACJ,CAAC;CACF;AAVD,oCAUC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenAICompatibleProvider } from './openai-compatible';
|
|
2
|
+
export declare const DEFAULT_WENXIN_BASE_URL = "https://qianfan.baidubce.com/v2";
|
|
3
|
+
export declare class WenxinProvider extends OpenAICompatibleProvider {
|
|
4
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=wenxin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wenxin.d.ts","sourceRoot":"","sources":["../../../src/core/providers/wenxin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,uBAAuB,oCAAoC,CAAC;AAEzE,qBAAa,cAAe,SAAQ,wBAAwB;gBAC9C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA8B,EAAE,OAAO,CAAC,EAAE,MAAM;CASpF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WenxinProvider = exports.DEFAULT_WENXIN_BASE_URL = void 0;
|
|
4
|
+
const openai_compatible_1 = require("./openai-compatible");
|
|
5
|
+
exports.DEFAULT_WENXIN_BASE_URL = 'https://qianfan.baidubce.com/v2';
|
|
6
|
+
class WenxinProvider extends openai_compatible_1.OpenAICompatibleProvider {
|
|
7
|
+
constructor(apiKey, model = 'ernie-4.0-8k-latest', baseURL) {
|
|
8
|
+
super('wenxin', apiKey, model, baseURL || process.env.WENXIN_BASE_URL || exports.DEFAULT_WENXIN_BASE_URL, 'Wenxin (Qianfan) uses an OpenAI-compatible endpoint');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.WenxinProvider = WenxinProvider;
|
|
12
|
+
//# sourceMappingURL=wenxin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wenxin.js","sourceRoot":"","sources":["../../../src/core/providers/wenxin.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,uBAAuB,GAAG,iCAAiC,CAAC;AAEzE,MAAa,cAAe,SAAQ,4CAAwB;IAC1D,YAAY,MAAc,EAAE,QAAgB,qBAAqB,EAAE,OAAgB;QACjF,KAAK,CACH,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,+BAAuB,EACjE,qDAAqD,CACtD,CAAC;IACJ,CAAC;CACF;AAVD,wCAUC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewriter.d.ts","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rewriter.d.ts","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"AAcA,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,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,EAAE,cAAc;IAsClC,OAAO,CAAC,aAAa;IA+Cf,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CA+BxD"}
|
package/dist/core/rewriter.js
CHANGED
|
@@ -4,6 +4,14 @@ exports.MarkdownRewriter = void 0;
|
|
|
4
4
|
const openai_1 = require("./providers/openai");
|
|
5
5
|
const anthropic_1 = require("./providers/anthropic");
|
|
6
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");
|
|
7
15
|
const quota_manager_1 = require("./quota-manager");
|
|
8
16
|
const section_rewriter_1 = require("./section-rewriter");
|
|
9
17
|
const full_rewriter_1 = require("./full-rewriter");
|
|
@@ -22,8 +30,32 @@ class MarkdownRewriter {
|
|
|
22
30
|
else if (config.provider === 'anthropic') {
|
|
23
31
|
this.provider = new anthropic_1.AnthropicProvider(apiKey, config.model);
|
|
24
32
|
}
|
|
33
|
+
else if (config.provider === 'azure-openai') {
|
|
34
|
+
this.provider = new azure_openai_1.AzureOpenAIProvider(apiKey, config.model, config.baseUrl);
|
|
35
|
+
}
|
|
36
|
+
else if (config.provider === 'gemini') {
|
|
37
|
+
this.provider = new gemini_1.GeminiProvider(apiKey, config.model, config.baseUrl);
|
|
38
|
+
}
|
|
39
|
+
else if (config.provider === 'deepseek') {
|
|
40
|
+
this.provider = new deepseek_1.DeepSeekProvider(apiKey, config.model, config.baseUrl);
|
|
41
|
+
}
|
|
42
|
+
else if (config.provider === 'openrouter') {
|
|
43
|
+
this.provider = new openrouter_1.OpenRouterProvider(apiKey, config.model, config.baseUrl);
|
|
44
|
+
}
|
|
45
|
+
else if (config.provider === 'qwen') {
|
|
46
|
+
this.provider = new qwen_1.QwenProvider(apiKey, config.model, config.baseUrl);
|
|
47
|
+
}
|
|
48
|
+
else if (config.provider === 'glm') {
|
|
49
|
+
this.provider = new glm_1.GLMProvider(apiKey, config.model, config.baseUrl);
|
|
50
|
+
}
|
|
51
|
+
else if (config.provider === 'doubao') {
|
|
52
|
+
this.provider = new doubao_1.DoubaoProvider(apiKey, config.model, config.baseUrl);
|
|
53
|
+
}
|
|
54
|
+
else if (config.provider === 'wenxin') {
|
|
55
|
+
this.provider = new wenxin_1.WenxinProvider(apiKey, config.model, config.baseUrl);
|
|
56
|
+
}
|
|
25
57
|
else if (config.provider === 'minimax') {
|
|
26
|
-
this.provider = new minimax_1.MinimaxProvider(apiKey, config.model, config.minimaxBaseUrl);
|
|
58
|
+
this.provider = new minimax_1.MinimaxProvider(apiKey, config.model, config.baseUrl || config.minimaxBaseUrl);
|
|
27
59
|
}
|
|
28
60
|
else {
|
|
29
61
|
throw new Error(`Unsupported provider: ${config.provider}`);
|
|
@@ -43,7 +75,12 @@ class MarkdownRewriter {
|
|
|
43
75
|
const info = this.quotaManager.getUsageInfo();
|
|
44
76
|
throw new Error(`Daily quota exceeded (${info.used}/${info.limit}). ` +
|
|
45
77
|
`Please configure your own API key:\n` +
|
|
46
|
-
`export OPENAI_API_KEY='sk-...' or export ANTHROPIC_API_KEY='sk-ant-...'
|
|
78
|
+
`export OPENAI_API_KEY='sk-...' or export ANTHROPIC_API_KEY='sk-ant-...'\n` +
|
|
79
|
+
`or export AZURE_OPENAI_API_KEY='...' or export GEMINI_API_KEY='...'\n` +
|
|
80
|
+
`or export DEEPSEEK_API_KEY='...' or export OPENROUTER_API_KEY='...'\n` +
|
|
81
|
+
`or export QWEN_API_KEY='...' or export GLM_API_KEY='...'\n` +
|
|
82
|
+
`or export DOUBAO_API_KEY='...' or export WENXIN_API_KEY='...'\n` +
|
|
83
|
+
`or export MINIMAX_API_KEY='...'`);
|
|
47
84
|
}
|
|
48
85
|
if (config.verbose) {
|
|
49
86
|
const remaining = this.quotaManager.getRemainingQuota();
|
|
@@ -54,6 +91,14 @@ class MarkdownRewriter {
|
|
|
54
91
|
throw new Error('API key required. Please set:\n' +
|
|
55
92
|
' export OPENAI_API_KEY="sk-..." or\n' +
|
|
56
93
|
' export ANTHROPIC_API_KEY="sk-ant-..." or\n' +
|
|
94
|
+
' export AZURE_OPENAI_API_KEY="..." or\n' +
|
|
95
|
+
' export GEMINI_API_KEY="..." or\n' +
|
|
96
|
+
' export DEEPSEEK_API_KEY="..." or\n' +
|
|
97
|
+
' export OPENROUTER_API_KEY="..." or\n' +
|
|
98
|
+
' export QWEN_API_KEY="..." or\n' +
|
|
99
|
+
' export GLM_API_KEY="..." or\n' +
|
|
100
|
+
' export DOUBAO_API_KEY="..." or\n' +
|
|
101
|
+
' export WENXIN_API_KEY="..." or\n' +
|
|
57
102
|
' export MINIMAX_API_KEY="..."');
|
|
58
103
|
}
|
|
59
104
|
async rewrite(markdown) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewriter.js","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AACpD,qDAA0D;AAC1D,iDAAsD;AACtD,mDAA+C;AAC/C,yDAAqD;AACrD,mDAA+C;AAG/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;AAE9D,MAAa,gBAAgB;IAQ3B,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,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"rewriter.js","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,16 @@ export { SectionRewriter } from './core/section-rewriter';
|
|
|
6
6
|
export { FullRewriter } from './core/full-rewriter';
|
|
7
7
|
export { OpenAIProvider } from './core/providers/openai';
|
|
8
8
|
export { AnthropicProvider } from './core/providers/anthropic';
|
|
9
|
+
export { AzureOpenAIProvider, DEFAULT_AZURE_OPENAI_API_VERSION } from './core/providers/azure-openai';
|
|
10
|
+
export { GeminiProvider, DEFAULT_GEMINI_BASE_URL } from './core/providers/gemini';
|
|
11
|
+
export { DeepSeekProvider, DEFAULT_DEEPSEEK_BASE_URL } from './core/providers/deepseek';
|
|
12
|
+
export { OpenRouterProvider, DEFAULT_OPENROUTER_BASE_URL } from './core/providers/openrouter';
|
|
13
|
+
export { QwenProvider, DEFAULT_QWEN_BASE_URL } from './core/providers/qwen';
|
|
14
|
+
export { GLMProvider, DEFAULT_GLM_BASE_URL } from './core/providers/glm';
|
|
15
|
+
export { DoubaoProvider, DEFAULT_DOUBAO_BASE_URL } from './core/providers/doubao';
|
|
16
|
+
export { WenxinProvider, DEFAULT_WENXIN_BASE_URL } from './core/providers/wenxin';
|
|
9
17
|
export { MinimaxProvider, DEFAULT_MINIMAX_BASE_URL } from './core/providers/minimax';
|
|
10
18
|
export { BaseProvider } from './core/providers/base';
|
|
19
|
+
export { OpenAICompatibleProvider } from './core/providers/openai-compatible';
|
|
11
20
|
export * from './types';
|
|
12
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.BaseProvider = exports.DEFAULT_MINIMAX_BASE_URL = exports.MinimaxProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.FullRewriter = exports.SectionRewriter = exports.SectionParser = exports.QuotaManager = exports.MarkdownParser = exports.MarkdownRewriter = void 0;
|
|
17
|
+
exports.OpenAICompatibleProvider = exports.BaseProvider = exports.DEFAULT_MINIMAX_BASE_URL = exports.MinimaxProvider = exports.DEFAULT_WENXIN_BASE_URL = exports.WenxinProvider = exports.DEFAULT_DOUBAO_BASE_URL = exports.DoubaoProvider = exports.DEFAULT_GLM_BASE_URL = exports.GLMProvider = exports.DEFAULT_QWEN_BASE_URL = exports.QwenProvider = exports.DEFAULT_OPENROUTER_BASE_URL = exports.OpenRouterProvider = exports.DEFAULT_DEEPSEEK_BASE_URL = exports.DeepSeekProvider = exports.DEFAULT_GEMINI_BASE_URL = exports.GeminiProvider = exports.DEFAULT_AZURE_OPENAI_API_VERSION = exports.AzureOpenAIProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.FullRewriter = exports.SectionRewriter = exports.SectionParser = exports.QuotaManager = exports.MarkdownParser = exports.MarkdownRewriter = void 0;
|
|
18
18
|
var rewriter_1 = require("./core/rewriter");
|
|
19
19
|
Object.defineProperty(exports, "MarkdownRewriter", { enumerable: true, get: function () { return rewriter_1.MarkdownRewriter; } });
|
|
20
20
|
var parser_1 = require("./core/parser");
|
|
@@ -31,10 +31,36 @@ var openai_1 = require("./core/providers/openai");
|
|
|
31
31
|
Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return openai_1.OpenAIProvider; } });
|
|
32
32
|
var anthropic_1 = require("./core/providers/anthropic");
|
|
33
33
|
Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return anthropic_1.AnthropicProvider; } });
|
|
34
|
+
var azure_openai_1 = require("./core/providers/azure-openai");
|
|
35
|
+
Object.defineProperty(exports, "AzureOpenAIProvider", { enumerable: true, get: function () { return azure_openai_1.AzureOpenAIProvider; } });
|
|
36
|
+
Object.defineProperty(exports, "DEFAULT_AZURE_OPENAI_API_VERSION", { enumerable: true, get: function () { return azure_openai_1.DEFAULT_AZURE_OPENAI_API_VERSION; } });
|
|
37
|
+
var gemini_1 = require("./core/providers/gemini");
|
|
38
|
+
Object.defineProperty(exports, "GeminiProvider", { enumerable: true, get: function () { return gemini_1.GeminiProvider; } });
|
|
39
|
+
Object.defineProperty(exports, "DEFAULT_GEMINI_BASE_URL", { enumerable: true, get: function () { return gemini_1.DEFAULT_GEMINI_BASE_URL; } });
|
|
40
|
+
var deepseek_1 = require("./core/providers/deepseek");
|
|
41
|
+
Object.defineProperty(exports, "DeepSeekProvider", { enumerable: true, get: function () { return deepseek_1.DeepSeekProvider; } });
|
|
42
|
+
Object.defineProperty(exports, "DEFAULT_DEEPSEEK_BASE_URL", { enumerable: true, get: function () { return deepseek_1.DEFAULT_DEEPSEEK_BASE_URL; } });
|
|
43
|
+
var openrouter_1 = require("./core/providers/openrouter");
|
|
44
|
+
Object.defineProperty(exports, "OpenRouterProvider", { enumerable: true, get: function () { return openrouter_1.OpenRouterProvider; } });
|
|
45
|
+
Object.defineProperty(exports, "DEFAULT_OPENROUTER_BASE_URL", { enumerable: true, get: function () { return openrouter_1.DEFAULT_OPENROUTER_BASE_URL; } });
|
|
46
|
+
var qwen_1 = require("./core/providers/qwen");
|
|
47
|
+
Object.defineProperty(exports, "QwenProvider", { enumerable: true, get: function () { return qwen_1.QwenProvider; } });
|
|
48
|
+
Object.defineProperty(exports, "DEFAULT_QWEN_BASE_URL", { enumerable: true, get: function () { return qwen_1.DEFAULT_QWEN_BASE_URL; } });
|
|
49
|
+
var glm_1 = require("./core/providers/glm");
|
|
50
|
+
Object.defineProperty(exports, "GLMProvider", { enumerable: true, get: function () { return glm_1.GLMProvider; } });
|
|
51
|
+
Object.defineProperty(exports, "DEFAULT_GLM_BASE_URL", { enumerable: true, get: function () { return glm_1.DEFAULT_GLM_BASE_URL; } });
|
|
52
|
+
var doubao_1 = require("./core/providers/doubao");
|
|
53
|
+
Object.defineProperty(exports, "DoubaoProvider", { enumerable: true, get: function () { return doubao_1.DoubaoProvider; } });
|
|
54
|
+
Object.defineProperty(exports, "DEFAULT_DOUBAO_BASE_URL", { enumerable: true, get: function () { return doubao_1.DEFAULT_DOUBAO_BASE_URL; } });
|
|
55
|
+
var wenxin_1 = require("./core/providers/wenxin");
|
|
56
|
+
Object.defineProperty(exports, "WenxinProvider", { enumerable: true, get: function () { return wenxin_1.WenxinProvider; } });
|
|
57
|
+
Object.defineProperty(exports, "DEFAULT_WENXIN_BASE_URL", { enumerable: true, get: function () { return wenxin_1.DEFAULT_WENXIN_BASE_URL; } });
|
|
34
58
|
var minimax_1 = require("./core/providers/minimax");
|
|
35
59
|
Object.defineProperty(exports, "MinimaxProvider", { enumerable: true, get: function () { return minimax_1.MinimaxProvider; } });
|
|
36
60
|
Object.defineProperty(exports, "DEFAULT_MINIMAX_BASE_URL", { enumerable: true, get: function () { return minimax_1.DEFAULT_MINIMAX_BASE_URL; } });
|
|
37
61
|
var base_1 = require("./core/providers/base");
|
|
38
62
|
Object.defineProperty(exports, "BaseProvider", { enumerable: true, get: function () { return base_1.BaseProvider; } });
|
|
63
|
+
var openai_compatible_1 = require("./core/providers/openai-compatible");
|
|
64
|
+
Object.defineProperty(exports, "OpenAICompatibleProvider", { enumerable: true, get: function () { return openai_compatible_1.OpenAICompatibleProvider; } });
|
|
39
65
|
__exportStar(require("./types"), exports);
|
|
40
66
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAmD;AAA1C,4GAAA,gBAAgB,OAAA;AACzB,wCAA+C;AAAtC,wGAAA,cAAc,OAAA;AACvB,sDAAoD;AAA3C,6GAAA,YAAY,OAAA;AACrB,wDAAsD;AAA7C,+GAAA,aAAa,OAAA;AACtB,4DAA0D;AAAjD,mHAAA,eAAe,OAAA;AACxB,sDAAoD;AAA3C,6GAAA,YAAY,OAAA;AACrB,kDAAyD;AAAhD,wGAAA,cAAc,OAAA;AACvB,wDAA+D;AAAtD,8GAAA,iBAAiB,OAAA;AAC1B,oDAAqF;AAA5E,0GAAA,eAAe,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAClD,8CAAqD;AAA5C,oGAAA,YAAY,OAAA;AACrB,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAmD;AAA1C,4GAAA,gBAAgB,OAAA;AACzB,wCAA+C;AAAtC,wGAAA,cAAc,OAAA;AACvB,sDAAoD;AAA3C,6GAAA,YAAY,OAAA;AACrB,wDAAsD;AAA7C,+GAAA,aAAa,OAAA;AACtB,4DAA0D;AAAjD,mHAAA,eAAe,OAAA;AACxB,sDAAoD;AAA3C,6GAAA,YAAY,OAAA;AACrB,kDAAyD;AAAhD,wGAAA,cAAc,OAAA;AACvB,wDAA+D;AAAtD,8GAAA,iBAAiB,OAAA;AAC1B,8DAAsG;AAA7F,mHAAA,mBAAmB,OAAA;AAAE,gIAAA,gCAAgC,OAAA;AAC9D,kDAAkF;AAAzE,wGAAA,cAAc,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAChD,sDAAwF;AAA/E,4GAAA,gBAAgB,OAAA;AAAE,qHAAA,yBAAyB,OAAA;AACpD,0DAA8F;AAArF,gHAAA,kBAAkB,OAAA;AAAE,yHAAA,2BAA2B,OAAA;AACxD,8CAA4E;AAAnE,oGAAA,YAAY,OAAA;AAAE,6GAAA,qBAAqB,OAAA;AAC5C,4CAAyE;AAAhE,kGAAA,WAAW,OAAA;AAAE,2GAAA,oBAAoB,OAAA;AAC1C,kDAAkF;AAAzE,wGAAA,cAAc,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAChD,kDAAkF;AAAzE,wGAAA,cAAc,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAChD,oDAAqF;AAA5E,0GAAA,eAAe,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAClD,8CAAqD;AAA5C,oGAAA,YAAY,OAAA;AACrB,wEAA8E;AAArE,6HAAA,wBAAwB,OAAA;AACjC,0CAAwB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -22,10 +22,12 @@ export interface RewriteOptions {
|
|
|
22
22
|
preserveLength?: boolean;
|
|
23
23
|
}
|
|
24
24
|
export interface RewriterConfig {
|
|
25
|
-
provider: 'openai' | 'anthropic' | 'minimax' | 'custom';
|
|
25
|
+
provider: 'openai' | 'anthropic' | 'azure-openai' | 'gemini' | 'deepseek' | 'openrouter' | 'qwen' | 'glm' | 'doubao' | 'wenxin' | 'minimax' | 'custom';
|
|
26
26
|
apiKey?: string;
|
|
27
27
|
model?: string;
|
|
28
|
-
/**
|
|
28
|
+
/** Generic provider base URL override (used by OpenAI-compatible providers and Azure endpoint) */
|
|
29
|
+
baseUrl?: string;
|
|
30
|
+
/** MiniMax OpenAI-compatible API base URL(默认读 `MINIMAX_BASE_URL` 或 `https://api.minimaxi.com/v1`) */
|
|
29
31
|
minimaxBaseUrl?: string;
|
|
30
32
|
options?: RewriteOptions;
|
|
31
33
|
customProvider?: AIProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;IACnG,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|