@yanickxia/agent-vision 0.2.0 → 0.3.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.
package/README.md CHANGED
@@ -1,14 +1,15 @@
1
1
  # agent-vision
2
2
 
3
3
  一个小而直接的视觉 MCP Server + Agent Skill:让纯文本 Agent 通过一个
4
- OpenAI-compatible 视觉模型理解图片和视频。
4
+ OpenAI-compatible 视觉模型理解图片和视频,也能通过生图模型从文字生成图片。
5
5
 
6
6
  - 纯 Node.js / TypeScript,`npx` 自动下载运行
7
- - MCP 工具:`analyze_image`、`analyze_video`
7
+ - MCP 工具:`analyze_image`、`analyze_video`、`generate_image`
8
8
  - Agent Skills 标准目录:`skills/agent-vision/`,能力自适应:能看图的 Agent 直接看,纯文本 Agent 直接跑 CLI
9
9
  - 图片:本地路径、HTTP(S) URL、Data URI
10
10
  - 视频:本地路径或 URL,自动下载 npm 内的 ffmpeg 并均匀抽帧
11
- - 多 provider 多模型并发竞速:所有 target 同时请求,谁先成功用谁,其余请求 abort
11
+ - 识图多 provider 多模型并发竞速:所有 target 同时请求,谁先成功用谁,其余请求 abort
12
+ - 生图:支持 OpenAI-compatible 和火山方舟 Seedream,独立配置 provider / model,按顺序失败回退
12
13
 
13
14
  ## 为什么做这个项目
14
15
 
@@ -19,13 +20,17 @@ OpenAI-compatible 视觉模型理解图片和视频。
19
20
  - [vision-tool](https://github.com/farhanic017/vision-tool):支持视频抽帧,但包含大量 provider 探测、并行 fallback 和安装逻辑,并采用 GPL-3.0。
20
21
  - [agent-vision-toolkit](https://github.com/Anionex/agent-vision-toolkit):Skill 和任务工作流很强,但核心是多组 Python/Shell CLI,不是 MCP 视频服务。
21
22
 
22
- `agent-vision` 只保留一条链路:**MCP/CLI → 图片或视频帧 → 你配置的视觉 API → 文本**。
23
+ `agent-vision` 保持两条简单链路:
24
+
25
+ - 理解:**MCP/CLI → 图片或视频帧 → 你配置的视觉 API → 文本**
26
+ - 生成:**MCP/CLI → 文字描述 → 你配置的生图 API → 图片**
23
27
  本仓库是独立实现,没有复制 `vision-tool` 的 GPL 源码。
24
28
 
25
29
  ## 要求
26
30
 
27
31
  - Node.js 20+
28
- - 一个支持 `/chat/completions` 和 `image_url` 的 OpenAI-compatible 视觉模型
32
+ - 图片/视频理解:支持 `/chat/completions` 和 `image_url` 的 OpenAI-compatible 视觉模型
33
+ - 生图:OpenAI-compatible 生图模型,或火山方舟 Seedream(API Key 鉴权);理解和生图可以单独配置
29
34
 
30
35
  ffmpeg 由 `@ffmpeg-installer/ffmpeg` 按平台自动安装,无需另行安装。
31
36
 
@@ -57,7 +62,7 @@ chmod 600 ~/.config/agent-vision/settings.json
57
62
  ```
58
63
 
59
64
  - 位置:`$AGENT_VISION_CONFIG` 显式路径,或 `$XDG_CONFIG_HOME/agent-vision/settings.json`(默认 `~/.config/agent-vision/settings.json`)
60
- - 每个 provider × model 是一个 target;多个 target 时**并发请求,第一个成功者胜出**,其余请求 abort。注意成本:N 个 target 意味着每次分析最多 N 份上传与推理费用
65
+ - `providers` 用于图片/视频理解,每个 provider × model 是一个 target;多个 target 时**并发请求,第一个成功者胜出**,其余请求 abort。注意成本:N 个 target 意味着每次分析最多 N 份上传与推理费用
61
66
  - provider 字段:`baseUrl`(必填)、`models`(必填非空)、`name`/`apiKey`/`headers`(可选;`apiKey` 缺省回退环境变量)
62
67
  - 顶层可选:`maxTokens`、`timeoutMs`、`headers`、`maxImageMb`、`maxVideoMb`、`allowPrivateUrls`、`ffmpegPath`
63
68
  - 文件定义的字段优先于环境变量;含 key 的文件建议 `chmod 600`
@@ -70,16 +75,99 @@ chmod 600 ~/.config/agent-vision/settings.json
70
75
  | `AGENT_VISION_BASE_URL` | `VISION_BASE_URL` → `OPENAI_BASE_URL` |
71
76
  | `AGENT_VISION_MODEL` | `VISION_MODEL` → `OPENAI_MODEL` |
72
77
 
73
- 可选变量:
78
+ ### 生图配置
79
+
80
+ 在同一个 `settings.json` 中添加 `generationProviders`,字段与识图的 `providers`
81
+ 类似,额外通过 `type` 选择生图协议;也可以只配置生图,不配置识图:
82
+
83
+ ```json
84
+ {
85
+ "generationProviders": [
86
+ {
87
+ "name": "image-api",
88
+ "type": "openai-images",
89
+ "baseUrl": "https://your-image-api.example/v1",
90
+ "apiKey": "sk-...",
91
+ "models": ["your-image-generation-model"]
92
+ }
93
+ ]
94
+ }
95
+ ```
96
+
97
+ - 识图与生图模型完全分开,不会把视觉聊天模型自动当作生图模型。
98
+ - `type` 支持 `openai-images`(默认,兼容旧配置)和 `volcengine-ark`。按显式协议适配请求,不根据域名或模型名称猜测;未知类型会报配置错误。
99
+ - `generationProviders` 内按 provider、model 的配置顺序依次尝试,拿到第一张有效图片就停止,**不并发竞速**。失败回退仍可能产生多次费用(例如上游超时但实际已完成生成);只想调用一个模型时配置一个 target。
100
+ - 每次只生成一张图片;目前支持文生图,不包含参考图编辑或异步任务轮询。
101
+ - 两种协议均支持 `data[0].b64_json` 或 `data[0].url` 返回。`openai-images` 省略 `response_format`,避免不支持该参数的模型报错;`volcengine-ark` 请求 base64 返回。参考 [OpenAI 官方 Images API 文档](https://developers.openai.com/api/reference/resources/images/methods/generate)。
102
+ - 与识图共用顶层 `timeoutMs`、`maxImageMb`、`headers`、`allowPrivateUrls`,生图较慢时可调高 `timeoutMs`。
103
+ - `doctor` 会分别列出识图和生图 targets,并显示生图协议,只配置生图时不要求 ffmpeg。
104
+
105
+ #### 火山引擎方舟(Seedream)
106
+
107
+ 在已有配置中加入下面的生图部分即可,保留原来的 `providers`:
108
+
109
+ ```json
110
+ {
111
+ "generationProviders": [
112
+ {
113
+ "name": "volcengine",
114
+ "type": "volcengine-ark",
115
+ "baseUrl": "https://ark.cn-beijing.volces.com/api/v3",
116
+ "apiKey": "你的方舟 API Key",
117
+ "models": ["doubao-seedream-5-0-lite-260128"]
118
+ }
119
+ ]
120
+ }
121
+ ```
122
+
123
+ `models` 填写你已开通的 Seedream Model ID,也支持配置了生图模型的 `ep-...` 接入点 ID。
124
+ `apiKey` 可省略并从 `ARK_API_KEY` 读取;若设置了 `AGENT_VISION_GENERATION_API_KEY`,则后者优先。
125
+ 方舟不会自动继承识图的 `AGENT_VISION_API_KEY` / `OPENAI_API_KEY`,避免把其他服务的 key 发给火山。
126
+
127
+ ```bash
128
+ npx -y @yanickxia/agent-vision generate \
129
+ --prompt "一只坐在窗边的橘猫,水彩风格" --output ./cat.jpg --size 2K
130
+ ```
131
+
132
+ - 使用方舟原生 `/api/v3/images/generations` 参数,不发送 OpenAI 的 `n` 或 `quality`;传 `--quality` 会在调用前报错,不静默忽略。
133
+ - `--size` 可用模型支持的分辨率档位(例如 `2K`)或 `宽x高`,省略时采用模型默认值。
134
+ - 保持服务端的单图、非流式默认行为,不发送部分 Seedream 模型不支持的组图/流式开关。
135
+ - 保留模型默认水印和输出格式;Seedream 通常返回 JPEG,文件扩展名不会触发转码。
136
+ - 能解析火山的 HTTP 错误及成功 HTTP 响应中的顶层/单图错误,保留错误码与消息。
137
+
138
+ 协议依据:[方舟官方图片生成 API](https://ark.volcengine.com/region:cn-beijing/docs/image-generation-api.md)。
139
+ 本适配针对**方舟 Seedream 文生图**,不是“视觉智能/即梦”的 AK/SK 签名接口,不包含图生图、组图或图层拆分。
140
+
141
+ #### 生图环境变量
142
+
143
+ 也可以用环境变量配置生图:
144
+
145
+ | 变量 | 回退 / 说明 |
146
+ |---|---|
147
+ | `AGENT_VISION_GENERATION_TYPE` | 默认 `openai-images`;火山方舟设为 `volcengine-ark` |
148
+ | `AGENT_VISION_GENERATION_MODEL` | 生图模型名称,必须显式设置;不回退到识图模型 |
149
+ | `AGENT_VISION_GENERATION_BASE_URL` | OpenAI 协议回退到识图 URL 及其别名;方舟协议默认 `https://ark.cn-beijing.volces.com/api/v3`,不继承识图 URL |
150
+ | `AGENT_VISION_GENERATION_API_KEY` | OpenAI 协议回退到识图 key 及其别名;方舟协议回退到 `ARK_API_KEY` |
151
+ | `ARK_API_KEY` | 仅用于 `volcengine-ark` 的 key 回退 |
152
+ | `AGENT_VISION_GENERATION_HEADERS` | 生图专用额外请求头 JSON,覆盖通用环境变量请求头 |
153
+
154
+ 文件中 `generationProviders` 优先于环境变量生图 target;provider 的 `apiKey`
155
+ 省略时使用上述生图 key 回退,显式 `"apiKey": ""` 可关闭 key 回退。
156
+ 文件内未指定 `type` 的 provider 始终是 `openai-images`,不受环境变量的 `TYPE` 影响。
157
+ 请求头优先级:通用环境变量 → 生图环境变量 → 文件顶层 → provider。
158
+
159
+ ### 通用选项
160
+
161
+ 以下可选变量与对应的配置文件字段等价:
74
162
 
75
163
  | 变量 | 默认值 | 说明 |
76
164
  |---|---:|---|
77
165
  | `AGENT_VISION_MAX_TOKENS` | `4096` | 最大输出 tokens |
78
166
  | `AGENT_VISION_TIMEOUT_MS` | `120000` | 下载和 API 超时 |
79
- | `AGENT_VISION_MAX_IMAGE_MB` | `20` | 图片大小上限 |
167
+ | `AGENT_VISION_MAX_IMAGE_MB` | `20` | 输入和生成图片的大小上限 |
80
168
  | `AGENT_VISION_MAX_VIDEO_MB` | `200` | 视频大小上限 |
81
169
  | `AGENT_VISION_HEADERS` | `{}` | 额外请求头 JSON |
82
- | `AGENT_VISION_ALLOW_PRIVATE_URLS` | `false` | 允许私网图片/视频来源 URL |
170
+ | `AGENT_VISION_ALLOW_PRIVATE_URLS` | `false` | 允许私网图片/视频来源及生图结果 URL |
83
171
  | `AGENT_VISION_FFMPEG_PATH` | 自动发现 | 指定 ffmpeg 可执行文件;默认先用 PATH,再用 npm 内置版本 |
84
172
 
85
173
  ## MCP 安装
@@ -138,7 +226,20 @@ npx skills add yanickxia/agent-vision --skill agent-vision -g -y
138
226
 
139
227
  也可以复制 `skills/agent-vision/` 到 Agent 的 skills 目录。Skill 是能力自适应
140
228
  的:Agent 自己能看图就直接看;看不了(或输入是视频)就由 Skill 指导 Agent
141
- 直接跑 CLI 完成分析。
229
+ 直接跑 CLI 完成分析。生图不受「能否看图」限制,任何 Agent 都可以使用。
230
+
231
+ **MCP 和 Skill/CLI 都支持火山方舟生图**,共用同一份 `settings.json` 中的
232
+ `generationProviders` 配置。Skill 直接执行 CLI,不依赖启动或安装 MCP Server。
233
+
234
+ | 入口 | 调用 | 输出 |
235
+ |---|---|---|
236
+ | MCP | `generate_image`,传 `prompt`、可选 `size` / `output_path` | 图片内容和元数据,可选保存文件 |
237
+ | Skill / CLI | `agent-vision generate --prompt ... --output ...` | 保存文件,stdout 返回绝对路径 |
238
+
239
+ 从源码使用尚未发布的功能时,先在仓库中运行 `npm run build`,然后用
240
+ `node /绝对路径/agent-vision/dist/cli.js generate ...` 运行 CLI。
241
+ 本地 MCP 配置也可使用 `command: "node"`、`args: ["/绝对路径/agent-vision/dist/cli.js"]`,
242
+ 不要加 `generate` 参数,无子命令时即启动 MCP stdio 服务。
142
243
 
143
244
  ## CLI
144
245
 
@@ -149,9 +250,18 @@ npx -y @yanickxia/agent-vision image ./screenshot.png \
149
250
  npx -y @yanickxia/agent-vision video ./demo.mp4 \
150
251
  --prompt "按时间顺序总结 UI 操作" --frames 8
151
252
 
253
+ npx -y @yanickxia/agent-vision generate \
254
+ --prompt "一只坐在窗边的橘猫,水彩风格" --output ./cat.png --size 1024x1024
255
+
152
256
  npx -y @yanickxia/agent-vision doctor
153
257
  ```
154
258
 
259
+ `generate` 必须提供 `--prompt`(或一个带引号的位置参数)和 `--output`。
260
+ 可选 `--size` 原样传给生图 API;`--quality` 仅用于 OpenAI-compatible 协议。
261
+ 省略时采用 provider 默认值,支持值取决于模型。
262
+ 输出文件的父目录必须存在,已有文件不会被覆盖;成功时 stdout 输出保存的绝对路径。
263
+ 图片保留 API 返回的实际格式,不会因输出文件的扩展名而转码。
264
+
155
265
  ## MCP 工具
156
266
 
157
267
  ### `analyze_image`
@@ -179,12 +289,28 @@ npx -y @yanickxia/agent-vision doctor
179
289
  `max_frames` 范围 1–16,默认 8。实现会均匀抽取 JPEG 帧,并带时间点一起发给
180
290
  模型。它不是逐帧转写,快速变化可能被漏掉。
181
291
 
292
+ ### `generate_image`
293
+
294
+ ```json
295
+ {
296
+ "prompt": "一只坐在窗边的橘猫,水彩风格",
297
+ "output_path": "/absolute/path/to/cat.png",
298
+ "size": "1024x1024"
299
+ }
300
+ ```
301
+
302
+ 只有 `prompt` 必填。`output_path` 可选,不传时仅返回 MCP 图片内容,不写本地文件。
303
+ `size`、`quality` 可选。返回一个 text 内容块(JSON 元数据:模型、MIME 类型、字节数、
304
+ 可选输出路径和上游改写的 prompt)以及一个 image 内容块。路径是 MCP Server 所在机器上的路径。
305
+
182
306
  ## 隐私与安全
183
307
 
184
308
  - 图片会发送到你配置的视觉 API。
309
+ - 生图 prompt 会发送到你配置的生图 API;如果上游返回图片 URL,会下载该图片,但不会向图片下载地址转发生图 API key 或自定义请求头。
185
310
  - 视频不会整体发给模型;远程视频先下载到本地临时目录,然后只发送抽出的 JPEG 帧。
186
311
  - 临时目录在成功或失败后都会删除。
187
- - 用户提供的远程图片/视频 URL 默认拒绝 localhost、私网、链路本地和云元数据地址。
312
+ - 用户提供的远程图片/视频 URL 和上游返回的生图 URL 默认拒绝 localhost、私网、链路本地和云元数据地址。
313
+ - 生图失败会删除本次预留的输出文件;成功的生图文件会保留,不会作为临时文件清理。
188
314
  - stdio 模式不向 stdout 写日志,避免破坏 MCP 协议。
189
315
 
190
316
  ## 开发
package/dist/cli.js CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
+ import { parseArgs } from "node:util";
2
3
  import { analyzeImage, analyzeVideo } from "./analyze.js";
3
4
  import { loadConfig } from "./config.js";
4
5
  import { errorMessage } from "./errors.js";
6
+ import { generateImage } from "./generate.js";
5
7
  import { SERVER_VERSION, startStdioServer } from "./server.js";
6
8
  import { ensureFfmpeg } from "./video.js";
7
9
  const HELP = `agent-vision ${SERVER_VERSION}
@@ -10,11 +12,15 @@ Usage:
10
12
  agent-vision Start the MCP stdio server
11
13
  agent-vision image <source> [options]
12
14
  agent-vision video <source> [options]
15
+ agent-vision generate --prompt <text> --output <path> [options]
13
16
  agent-vision doctor
14
17
 
15
18
  Options:
16
- -p, --prompt <text> Question or focus for the analysis
19
+ -p, --prompt <text> Analysis question or image generation prompt
17
20
  --frames <1-16> Video frames to sample (default: 8)
21
+ -o, --output <path> Save generated image (must not exist)
22
+ --size <value> Generation size, e.g. 1024x1024 or Ark 2K
23
+ --quality <value> OpenAI-compatible quality (not supported by Ark)
18
24
  -h, --help Show help
19
25
  -v, --version Show version
20
26
  `;
@@ -61,12 +67,55 @@ async function runCli(args) {
61
67
  lines.push(` ${index + 1}. ${target.label} ${target.baseUrl} key: ${target.apiKey ? "configured" : "not configured"}`);
62
68
  });
63
69
  }
70
+ if (config.generationTargets.length === 0) {
71
+ lines.push("generation targets: none configured (optional)");
72
+ }
73
+ else {
74
+ lines.push("generation targets (sequential fallback):");
75
+ config.generationTargets.forEach((target, index) => {
76
+ lines.push(` ${index + 1}. ${target.label} ${target.baseUrl} key: ${target.apiKey ? "configured" : "not configured"} type: ${target.type ?? "openai-images"}`);
77
+ });
78
+ }
64
79
  lines.push(`ffmpeg: ${ffmpeg}`);
65
80
  process.stdout.write(`${lines.join("\n")}\n`);
66
- if (config.targets.length === 0 || ffmpeg === "unavailable")
81
+ if ((config.targets.length === 0 && config.generationTargets.length === 0) ||
82
+ (config.targets.length > 0 && ffmpeg === "unavailable"))
67
83
  process.exitCode = 1;
68
84
  return;
69
85
  }
86
+ if (command === "generate") {
87
+ const { values, positionals } = parseArgs({
88
+ args: args.slice(1),
89
+ allowPositionals: true,
90
+ options: {
91
+ prompt: { type: "string", short: "p" },
92
+ output: { type: "string", short: "o" },
93
+ size: { type: "string" },
94
+ quality: { type: "string" },
95
+ help: { type: "boolean", short: "h" },
96
+ },
97
+ });
98
+ if (values.help) {
99
+ process.stdout.write(HELP);
100
+ return;
101
+ }
102
+ if (positionals.length > 1 || (positionals.length > 0 && values.prompt !== undefined)) {
103
+ throw new Error("generate accepts one prompt, either positional or via --prompt");
104
+ }
105
+ const prompt = values.prompt ?? positionals[0];
106
+ if (!prompt?.trim())
107
+ throw new Error("generate requires --prompt <text>");
108
+ if (!values.output?.trim())
109
+ throw new Error("generate requires --output <path>");
110
+ const result = await generateImage({
111
+ prompt,
112
+ outputPath: values.output,
113
+ ...(values.size !== undefined ? { size: values.size } : {}),
114
+ ...(values.quality !== undefined ? { quality: values.quality } : {}),
115
+ });
116
+ process.stdout.write(`${result.outputPath}\n`);
117
+ return;
118
+ }
70
119
  if (command !== "image" && command !== "video") {
71
120
  throw new Error(`Unknown command: ${command}\n\n${HELP}`);
72
121
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -5,8 +5,14 @@ export interface ModelTarget {
5
5
  apiKey?: string;
6
6
  headers: Record<string, string>;
7
7
  }
8
+ export type GenerationProviderType = "openai-images" | "volcengine-ark";
9
+ export interface GenerationTarget extends ModelTarget {
10
+ type?: GenerationProviderType;
11
+ }
12
+ export declare const VOLCENGINE_ARK_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3";
8
13
  export interface VisionConfig {
9
14
  targets: ModelTarget[];
15
+ generationTargets: GenerationTarget[];
10
16
  configFile?: string;
11
17
  maxTokens: number;
12
18
  timeoutMs: number;
@@ -20,5 +26,6 @@ type Environment = Record<string, string | undefined>;
20
26
  export type SettingsReader = (filePath: string) => string | undefined;
21
27
  export declare function loadConfig(env?: Environment, readSettings?: SettingsReader): VisionConfig;
22
28
  export declare function chatCompletionsUrl(baseUrl: string): string;
29
+ export declare function imageGenerationsUrl(baseUrl: string): string;
23
30
  export {};
24
31
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqBD,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAmNtE,wBAAgB,UAAU,CACxB,GAAG,GAAE,WAAyB,EAC9B,YAAY,GAAE,cAAsC,GACnD,YAAY,CAsFd;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe1D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAExE,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IAEnD,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B;AAED,eAAO,MAAM,uBAAuB,6CAA6C,CAAC;AAElF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0BD,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAmOtE,wBAAgB,UAAU,CACxB,GAAG,GAAE,WAAyB,EAC9B,YAAY,GAAE,cAAsC,GACnD,YAAY,CAsId;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D"}
package/dist/config.js CHANGED
@@ -2,6 +2,7 @@ import { readFileSync } from "node:fs";
2
2
  import { homedir } from "node:os";
3
3
  import path from "node:path";
4
4
  import { VisionError } from "./errors.js";
5
+ export const VOLCENGINE_ARK_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3";
5
6
  function firstNonEmpty(env, names) {
6
7
  for (const name of names) {
7
8
  const value = env[name]?.trim();
@@ -33,17 +34,17 @@ function stringRecord(value, where) {
33
34
  }
34
35
  return headers;
35
36
  }
36
- function parseHeaders(raw) {
37
+ function parseHeaders(raw, name = "AGENT_VISION_HEADERS") {
37
38
  if (!raw?.trim())
38
39
  return {};
39
40
  try {
40
- return stringRecord(JSON.parse(raw), "AGENT_VISION_HEADERS");
41
+ return stringRecord(JSON.parse(raw), name);
41
42
  }
42
43
  catch (error) {
43
44
  if (error instanceof VisionError)
44
45
  throw error;
45
46
  const detail = error instanceof Error ? error.message : String(error);
46
- throw new VisionError("CONFIG_ERROR", `AGENT_VISION_HEADERS must be a JSON object of string values: ${detail}`);
47
+ throw new VisionError("CONFIG_ERROR", `${name} must be a JSON object of string values: ${detail}`);
47
48
  }
48
49
  }
49
50
  function expandConfigPath(raw) {
@@ -124,6 +125,18 @@ function parseProvider(entry, filePath) {
124
125
  ...(headers !== undefined ? { headers } : {}),
125
126
  };
126
127
  }
128
+ function generationProviderType(value, where) {
129
+ if (value === undefined)
130
+ return "openai-images";
131
+ if (value === "openai-images" || value === "volcengine-ark")
132
+ return value;
133
+ throw new VisionError("CONFIG_ERROR", `${where} must be openai-images or volcengine-ark`);
134
+ }
135
+ function parseGenerationProvider(entry, filePath) {
136
+ const provider = parseProvider(entry, filePath);
137
+ const type = generationProviderType(entry.type, `${filePath}: provider type`);
138
+ return { ...provider, type };
139
+ }
127
140
  function parseSettings(raw, filePath) {
128
141
  let parsed;
129
142
  try {
@@ -137,13 +150,17 @@ function parseSettings(raw, filePath) {
137
150
  throw new VisionError("CONFIG_ERROR", `${filePath} must contain a JSON object`);
138
151
  }
139
152
  const file = parsed;
140
- let providers;
141
- if (file.providers !== undefined) {
142
- if (!Array.isArray(file.providers) || file.providers.length === 0) {
143
- throw new VisionError("CONFIG_ERROR", `${filePath}: providers must be a non-empty array`);
153
+ function providersFor(key, parse) {
154
+ const entries = file[key];
155
+ if (entries === undefined)
156
+ return undefined;
157
+ if (!Array.isArray(entries) || entries.length === 0) {
158
+ throw new VisionError("CONFIG_ERROR", `${filePath}: ${key} must be a non-empty array`);
144
159
  }
145
- providers = file.providers.map((entry) => parseProvider(entry, filePath));
160
+ return entries.map((entry) => parse(entry, `${filePath}: ${key}`));
146
161
  }
162
+ const providers = providersFor("providers", parseProvider);
163
+ const generationProviders = providersFor("generationProviders", parseGenerationProvider);
147
164
  const allowPrivateUrls = file.allowPrivateUrls;
148
165
  if (allowPrivateUrls !== undefined && typeof allowPrivateUrls !== "boolean") {
149
166
  throw new VisionError("CONFIG_ERROR", `${filePath}: allowPrivateUrls must be a boolean`);
@@ -161,6 +178,7 @@ function parseSettings(raw, filePath) {
161
178
  const maxVideoMb = positiveFileNumber(file, "maxVideoMb", filePath);
162
179
  return {
163
180
  ...(providers !== undefined ? { providers } : {}),
181
+ ...(generationProviders !== undefined ? { generationProviders } : {}),
164
182
  ...(maxTokens !== undefined ? { maxTokens } : {}),
165
183
  ...(timeoutMs !== undefined ? { timeoutMs } : {}),
166
184
  ...(headers !== undefined ? { headers } : {}),
@@ -202,7 +220,8 @@ export function loadConfig(env = process.env, readSettings = defaultSettingsRead
202
220
  ]) ?? "";
203
221
  const maxTokens = settings?.maxTokens ?? positiveInteger(env, "AGENT_VISION_MAX_TOKENS", 4096);
204
222
  const timeoutMs = settings?.timeoutMs ?? positiveInteger(env, "AGENT_VISION_TIMEOUT_MS", 120_000);
205
- const headers = { ...parseHeaders(env.AGENT_VISION_HEADERS), ...settings?.headers };
223
+ const environmentHeaders = parseHeaders(env.AGENT_VISION_HEADERS);
224
+ const headers = { ...environmentHeaders, ...settings?.headers };
206
225
  const maxImageMb = settings?.maxImageMb ?? positiveInteger(env, "AGENT_VISION_MAX_IMAGE_MB", 20);
207
226
  const maxVideoMb = settings?.maxVideoMb ?? positiveInteger(env, "AGENT_VISION_MAX_VIDEO_MB", 200);
208
227
  const allowPrivateUrls = settings?.allowPrivateUrls ??
@@ -233,8 +252,50 @@ export function loadConfig(env = process.env, readSettings = defaultSettingsRead
233
252
  }]
234
253
  : [];
235
254
  }
255
+ function generationApiKey(type) {
256
+ return firstNonEmpty(env, ["AGENT_VISION_GENERATION_API_KEY"]) ??
257
+ (type === "volcengine-ark" ? firstNonEmpty(env, ["ARK_API_KEY"]) : apiKey);
258
+ }
259
+ // Never use a vision/chat model implicitly for image generation.
260
+ const generationModel = firstNonEmpty(env, ["AGENT_VISION_GENERATION_MODEL"]);
261
+ const generationHeaders = {
262
+ ...environmentHeaders,
263
+ ...parseHeaders(env.AGENT_VISION_GENERATION_HEADERS, "AGENT_VISION_GENERATION_HEADERS"),
264
+ ...settings?.headers,
265
+ };
266
+ let generationTargets = [];
267
+ if (settings?.generationProviders) {
268
+ generationTargets = settings.generationProviders.flatMap((provider) => provider.models.map((model) => {
269
+ const targetApiKey = provider.apiKey ?? generationApiKey(provider.type);
270
+ return {
271
+ label: `${provider.name ?? hostOf(provider.baseUrl)}/${model}`,
272
+ type: provider.type,
273
+ model,
274
+ baseUrl: provider.baseUrl,
275
+ ...(targetApiKey ? { apiKey: targetApiKey } : {}),
276
+ headers: { ...generationHeaders, ...provider.headers },
277
+ };
278
+ }));
279
+ }
280
+ else {
281
+ const type = generationProviderType(firstNonEmpty(env, ["AGENT_VISION_GENERATION_TYPE"]), "AGENT_VISION_GENERATION_TYPE");
282
+ if (generationModel) {
283
+ const targetApiKey = generationApiKey(type);
284
+ const generationBaseUrl = firstNonEmpty(env, ["AGENT_VISION_GENERATION_BASE_URL"]) ??
285
+ (type === "volcengine-ark" ? VOLCENGINE_ARK_BASE_URL : baseUrl);
286
+ generationTargets = [{
287
+ label: generationModel,
288
+ type,
289
+ model: generationModel,
290
+ baseUrl: generationBaseUrl,
291
+ ...(targetApiKey ? { apiKey: targetApiKey } : {}),
292
+ headers: generationHeaders,
293
+ }];
294
+ }
295
+ }
236
296
  return {
237
297
  targets,
298
+ generationTargets,
238
299
  ...(configFile ? { configFile } : {}),
239
300
  maxTokens,
240
301
  timeoutMs,
@@ -246,20 +307,24 @@ export function loadConfig(env = process.env, readSettings = defaultSettingsRead
246
307
  };
247
308
  }
248
309
  export function chatCompletionsUrl(baseUrl) {
310
+ return endpointUrl(baseUrl, "/chat/completions", "AGENT_VISION_BASE_URL");
311
+ }
312
+ export function imageGenerationsUrl(baseUrl) {
313
+ return endpointUrl(baseUrl, "/images/generations", "AGENT_VISION_GENERATION_BASE_URL");
314
+ }
315
+ function endpointUrl(baseUrl, endpoint, setting) {
249
316
  let url;
250
317
  try {
251
318
  url = new URL(baseUrl);
252
319
  }
253
320
  catch {
254
- throw new VisionError("CONFIG_ERROR", `Invalid AGENT_VISION_BASE_URL: ${baseUrl}`);
321
+ throw new VisionError("CONFIG_ERROR", `Invalid ${setting}: ${baseUrl}`);
255
322
  }
256
323
  if (url.protocol !== "http:" && url.protocol !== "https:") {
257
- throw new VisionError("CONFIG_ERROR", "AGENT_VISION_BASE_URL must use http or https");
324
+ throw new VisionError("CONFIG_ERROR", `${setting} must use http or https`);
258
325
  }
259
326
  const pathName = url.pathname.replace(/\/+$/, "");
260
- if (!pathName.endsWith("/chat/completions")) {
261
- url.pathname = `${pathName}/chat/completions`;
262
- }
327
+ url.pathname = pathName.endsWith(endpoint) ? pathName : `${pathName}${endpoint}`;
263
328
  return url.toString();
264
329
  }
265
330
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type VisionConfig } from "./config.js";
2
+ import { type GenerationOptions } from "./generation-provider.js";
3
+ export type { GenerationOptions } from "./generation-provider.js";
4
+ export interface GeneratedImage {
5
+ data: string;
6
+ mimeType: string;
7
+ bytes: number;
8
+ model: string;
9
+ revisedPrompt?: string;
10
+ outputPath?: string;
11
+ }
12
+ export declare function generateImage(options: GenerationOptions & {
13
+ outputPath?: string;
14
+ config?: VisionConfig;
15
+ }): Promise<GeneratedImage>;
16
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIrF,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0GD,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqD1B"}