@downcity/plugins 1.0.95 → 1.0.103
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/bin/asr/Plugin.d.ts +1 -15
- package/bin/asr/Plugin.d.ts.map +1 -1
- package/bin/asr/Plugin.js +36 -5
- package/bin/asr/Plugin.js.map +1 -1
- package/bin/chat/runtime/ChatAuthorizationRuntime.d.ts.map +1 -1
- package/bin/chat/runtime/ChatAuthorizationRuntime.js +53 -12
- package/bin/chat/runtime/ChatAuthorizationRuntime.js.map +1 -1
- package/bin/chat/runtime/ChatPluginActionRegistry.d.ts.map +1 -1
- package/bin/chat/runtime/ChatPluginActionRegistry.js +114 -42
- package/bin/chat/runtime/ChatPluginActionRegistry.js.map +1 -1
- package/bin/contact/Action.d.ts.map +1 -1
- package/bin/contact/Action.js +159 -37
- package/bin/contact/Action.js.map +1 -1
- package/bin/image/ImagePlugin.d.ts +12 -55
- package/bin/image/ImagePlugin.d.ts.map +1 -1
- package/bin/image/ImagePlugin.js +374 -138
- package/bin/image/ImagePlugin.js.map +1 -1
- package/bin/image/types/ImagePlugin.d.ts +94 -31
- package/bin/image/types/ImagePlugin.d.ts.map +1 -1
- package/bin/image/types/ImagePlugin.js +1 -1
- package/bin/index.d.ts +1 -1
- package/bin/index.d.ts.map +1 -1
- package/bin/memory/MemoryPlugin.d.ts.map +1 -1
- package/bin/memory/MemoryPlugin.js +130 -17
- package/bin/memory/MemoryPlugin.js.map +1 -1
- package/bin/skill/Plugin.d.ts.map +1 -1
- package/bin/skill/Plugin.js +90 -11
- package/bin/skill/Plugin.js.map +1 -1
- package/bin/task/runtime/TaskPluginActionRegistry.d.ts.map +1 -1
- package/bin/task/runtime/TaskPluginActionRegistry.js +202 -24
- package/bin/task/runtime/TaskPluginActionRegistry.js.map +1 -1
- package/bin/tts/Plugin.d.ts +1 -15
- package/bin/tts/Plugin.d.ts.map +1 -1
- package/bin/tts/Plugin.js +38 -5
- package/bin/tts/Plugin.js.map +1 -1
- package/bin/web/Plugin.d.ts +2 -19
- package/bin/web/Plugin.d.ts.map +1 -1
- package/bin/web/Plugin.js +39 -5
- package/bin/web/Plugin.js.map +1 -1
- package/bin/workboard/Plugin.d.ts.map +1 -1
- package/bin/workboard/Plugin.js +10 -2
- package/bin/workboard/Plugin.js.map +1 -1
- package/package.json +3 -3
- package/src/asr/Plugin.ts +37 -5
- package/src/chat/runtime/ChatAuthorizationRuntime.ts +53 -12
- package/src/chat/runtime/ChatPluginActionRegistry.ts +114 -42
- package/src/contact/Action.ts +159 -37
- package/src/image/ImagePlugin.ts +412 -211
- package/src/image/types/ImagePlugin.ts +100 -31
- package/src/index.ts +5 -1
- package/src/memory/MemoryPlugin.ts +130 -17
- package/src/skill/Plugin.ts +101 -21
- package/src/task/runtime/TaskPluginActionRegistry.ts +209 -24
- package/src/tts/Plugin.ts +39 -5
- package/src/web/Plugin.ts +39 -5
- package/src/workboard/Plugin.ts +10 -2
package/bin/image/ImagePlugin.js
CHANGED
|
@@ -2,17 +2,58 @@
|
|
|
2
2
|
* ImagePlugin:图片生成插件。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - 对 Agent
|
|
5
|
+
* - 对 Agent 暴露 `image_create` / `image_result` 两步式任务 action。
|
|
6
6
|
* - City / provider 的图片能力通过 image_create / image_result 任务函数注入。
|
|
7
|
-
* -
|
|
7
|
+
* - 成功结果返回 AI SDK UIMessage,后续由 plugin tool bridge 抽取 file parts 写回 assistant 消息。
|
|
8
8
|
*/
|
|
9
|
+
import fs from "node:fs/promises";
|
|
10
|
+
import path from "node:path";
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import { createAction } from "@downcity/agent/internal/plugin/core/PluginActionFactory.js";
|
|
9
13
|
import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
|
|
10
14
|
const DEFAULT_IMAGE_PLUGIN_NAME = "image";
|
|
11
15
|
const DEFAULT_IMAGE_PLUGIN_TITLE = "Image";
|
|
12
16
|
const DEFAULT_IMAGE_PLUGIN_DESCRIPTION = "Generate images and return them as assistant file parts.";
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
17
|
+
const HTTP_URL_RE = /^https?:\/\//i;
|
|
18
|
+
const DEFAULT_IMAGE_MEDIA_TYPE = "image/png";
|
|
19
|
+
const IMAGE_MEDIA_TYPES = {
|
|
20
|
+
".apng": "image/apng",
|
|
21
|
+
".avif": "image/avif",
|
|
22
|
+
".gif": "image/gif",
|
|
23
|
+
".jpg": "image/jpeg",
|
|
24
|
+
".jpeg": "image/jpeg",
|
|
25
|
+
".png": "image/png",
|
|
26
|
+
".webp": "image/webp",
|
|
27
|
+
};
|
|
28
|
+
const IMAGE_TEXT_CONTENT_SCHEMA = z.object({
|
|
29
|
+
type: z.literal("text"),
|
|
30
|
+
text: z.string(),
|
|
31
|
+
});
|
|
32
|
+
const IMAGE_FILE_CONTENT_SCHEMA = z.object({
|
|
33
|
+
type: z.literal("image"),
|
|
34
|
+
url: z.string(),
|
|
35
|
+
media_type: z.string().optional(),
|
|
36
|
+
});
|
|
37
|
+
const IMAGE_CREATE_INPUT_SCHEMA = z.object({
|
|
38
|
+
model: z.string().optional(),
|
|
39
|
+
prompt: z.string().optional(),
|
|
40
|
+
content: z.array(z.union([
|
|
41
|
+
IMAGE_TEXT_CONTENT_SCHEMA,
|
|
42
|
+
IMAGE_FILE_CONTENT_SCHEMA,
|
|
43
|
+
])).optional(),
|
|
44
|
+
n: z.number().optional(),
|
|
45
|
+
count: z.number().optional(),
|
|
46
|
+
size: z.string().optional(),
|
|
47
|
+
aspect_ratio: z.string().optional(),
|
|
48
|
+
ratio: z.string().optional(),
|
|
49
|
+
quality: z.string().optional(),
|
|
50
|
+
seed: z.number().optional(),
|
|
51
|
+
client_job_id: z.string().optional(),
|
|
52
|
+
provider_options: z.object({}).passthrough().optional(),
|
|
53
|
+
}).passthrough();
|
|
54
|
+
const IMAGE_RESULT_INPUT_SCHEMA = z.object({
|
|
55
|
+
job_id: z.string(),
|
|
56
|
+
}).passthrough();
|
|
16
57
|
/**
|
|
17
58
|
* 判断值是否为普通对象。
|
|
18
59
|
*/
|
|
@@ -31,6 +72,110 @@ function normalize_image_payload(payload) {
|
|
|
31
72
|
}
|
|
32
73
|
return { ...record };
|
|
33
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* 根据文件扩展名推断图片 MIME 类型。
|
|
77
|
+
*/
|
|
78
|
+
function infer_image_media_type(file_path, fallback) {
|
|
79
|
+
if (fallback && fallback.trim())
|
|
80
|
+
return fallback.trim();
|
|
81
|
+
const ext = path.extname(file_path).toLowerCase();
|
|
82
|
+
return IMAGE_MEDIA_TYPES[ext] ?? DEFAULT_IMAGE_MEDIA_TYPE;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 解析图片本地路径。
|
|
86
|
+
*/
|
|
87
|
+
function resolve_image_file_path(root_path, image_url) {
|
|
88
|
+
const raw = image_url.trim();
|
|
89
|
+
if (!raw)
|
|
90
|
+
throw new TypeError("ImagePlugin image content url is required");
|
|
91
|
+
return path.isAbsolute(raw) ? raw : path.resolve(root_path, raw);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 把本地图片读取为 data URL。
|
|
95
|
+
*/
|
|
96
|
+
async function local_image_to_data_url(input) {
|
|
97
|
+
const file_path = resolve_image_file_path(input.root_path, input.image_url);
|
|
98
|
+
const media_type = infer_image_media_type(file_path, input.media_type);
|
|
99
|
+
const bytes = await fs.readFile(file_path);
|
|
100
|
+
return {
|
|
101
|
+
data_url: `${media_type.includes("/") ? `data:${media_type};base64,` : "data:image/png;base64,"}${bytes.toString("base64")}`,
|
|
102
|
+
media_type,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 归一化单个图片内容片段。
|
|
107
|
+
*/
|
|
108
|
+
async function normalize_image_content_part(context, part) {
|
|
109
|
+
if (part.type === "text")
|
|
110
|
+
return part;
|
|
111
|
+
const url = String(part.url || "").trim();
|
|
112
|
+
if (!url)
|
|
113
|
+
throw new TypeError("ImagePlugin image content url is required");
|
|
114
|
+
if (url.startsWith("data:")) {
|
|
115
|
+
throw new TypeError("ImagePlugin content image url does not accept data URLs; pass an online URL or a local file path");
|
|
116
|
+
}
|
|
117
|
+
if (HTTP_URL_RE.test(url)) {
|
|
118
|
+
return {
|
|
119
|
+
type: "image",
|
|
120
|
+
url,
|
|
121
|
+
...(part.media_type ? { media_type: part.media_type } : {}),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
const local = await local_image_to_data_url({
|
|
125
|
+
root_path: context.rootPath,
|
|
126
|
+
image_url: url,
|
|
127
|
+
media_type: part.media_type,
|
|
128
|
+
});
|
|
129
|
+
return {
|
|
130
|
+
type: "image",
|
|
131
|
+
data_url: local.data_url,
|
|
132
|
+
media_type: local.media_type,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 拒绝旧版或内部协议字段,避免 Agent 继续依赖兼容层。
|
|
137
|
+
*/
|
|
138
|
+
function assert_public_image_create_input(input) {
|
|
139
|
+
const record = input;
|
|
140
|
+
if ("messages" in record) {
|
|
141
|
+
throw new TypeError("ImagePlugin image_create uses prompt or content; messages is not supported");
|
|
142
|
+
}
|
|
143
|
+
const content = record.content;
|
|
144
|
+
if (!Array.isArray(content))
|
|
145
|
+
return;
|
|
146
|
+
for (const part of content) {
|
|
147
|
+
const part_record = to_record(part);
|
|
148
|
+
if (part_record && "data_url" in part_record) {
|
|
149
|
+
throw new TypeError("ImagePlugin content image uses url only; data_url is not supported");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 复制公开输入中的通用字段,剥离 Agent 不应传给下游的公开 content。
|
|
155
|
+
*/
|
|
156
|
+
function copy_resolved_image_input(input) {
|
|
157
|
+
const { content: _content, messages: _messages, ...rest } = input;
|
|
158
|
+
return rest;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* 把 Agent 友好的公开输入转成 City 图片任务使用的输入。
|
|
162
|
+
*/
|
|
163
|
+
async function normalize_image_create_input(context, input) {
|
|
164
|
+
assert_public_image_create_input(input);
|
|
165
|
+
if (!Array.isArray(input.content))
|
|
166
|
+
return copy_resolved_image_input(input);
|
|
167
|
+
const content = await Promise.all(input.content.map((part) => normalize_image_content_part(context, part)));
|
|
168
|
+
const { prompt: _prompt, ...rest } = copy_resolved_image_input(input);
|
|
169
|
+
return {
|
|
170
|
+
...rest,
|
|
171
|
+
messages: [
|
|
172
|
+
{
|
|
173
|
+
role: "user",
|
|
174
|
+
content,
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
};
|
|
178
|
+
}
|
|
34
179
|
/**
|
|
35
180
|
* 归一化图片任务查询 payload。
|
|
36
181
|
*/
|
|
@@ -59,31 +204,73 @@ function normalize_image_result(result) {
|
|
|
59
204
|
return result;
|
|
60
205
|
}
|
|
61
206
|
/**
|
|
62
|
-
*
|
|
63
|
-
*/
|
|
64
|
-
function sleep(ms) {
|
|
65
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* 限制轮询间隔,避免服务端异常值导致过快或过慢轮询。
|
|
207
|
+
* 归一化模型元数据为 JSON 对象。
|
|
69
208
|
*/
|
|
70
|
-
function
|
|
71
|
-
const
|
|
72
|
-
|
|
209
|
+
function normalize_json_object(value) {
|
|
210
|
+
const record = to_record(value);
|
|
211
|
+
if (!record)
|
|
212
|
+
return undefined;
|
|
213
|
+
return record;
|
|
73
214
|
}
|
|
74
215
|
/**
|
|
75
|
-
*
|
|
216
|
+
* 归一化图片模型信息,确保 action 返回纯 JSON。
|
|
76
217
|
*/
|
|
77
|
-
function
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
218
|
+
function normalize_image_model(value) {
|
|
219
|
+
const record = to_record(value);
|
|
220
|
+
if (!record)
|
|
221
|
+
return null;
|
|
222
|
+
const id = typeof record.id === "string" ? record.id.trim() : "";
|
|
223
|
+
if (!id)
|
|
224
|
+
return null;
|
|
225
|
+
const modalities = Array.isArray(record.modalities)
|
|
226
|
+
? record.modalities
|
|
227
|
+
.map((item) => String(item || "").trim())
|
|
228
|
+
.filter(Boolean)
|
|
229
|
+
: [];
|
|
230
|
+
if (!modalities.includes("image"))
|
|
231
|
+
return null;
|
|
232
|
+
const tags = Array.isArray(record.tags)
|
|
233
|
+
? record.tags.map((item) => String(item || "").trim()).filter(Boolean)
|
|
234
|
+
: undefined;
|
|
235
|
+
const default_modalities = Array.isArray(record.default_modalities)
|
|
236
|
+
? record.default_modalities
|
|
237
|
+
.map((item) => String(item || "").trim())
|
|
238
|
+
.filter(Boolean)
|
|
239
|
+
: undefined;
|
|
240
|
+
const meta = normalize_json_object(record.meta);
|
|
241
|
+
return {
|
|
242
|
+
id,
|
|
243
|
+
name: typeof record.name === "string" && record.name.trim()
|
|
244
|
+
? record.name.trim()
|
|
245
|
+
: id,
|
|
246
|
+
...(typeof record.description === "string"
|
|
247
|
+
? { description: record.description }
|
|
248
|
+
: {}),
|
|
249
|
+
modalities,
|
|
250
|
+
...(tags && tags.length > 0 ? { tags } : {}),
|
|
251
|
+
...(meta ? { meta } : {}),
|
|
252
|
+
...(typeof record.is_default === "boolean"
|
|
253
|
+
? { is_default: record.is_default }
|
|
254
|
+
: {}),
|
|
255
|
+
...(default_modalities && default_modalities.length > 0
|
|
256
|
+
? { default_modalities }
|
|
257
|
+
: {}),
|
|
258
|
+
};
|
|
81
259
|
}
|
|
82
260
|
/**
|
|
83
|
-
*
|
|
261
|
+
* 归一化模型列表结果。
|
|
84
262
|
*/
|
|
85
|
-
function
|
|
86
|
-
|
|
263
|
+
function normalize_image_models(values) {
|
|
264
|
+
const items = values
|
|
265
|
+
.map((item) => normalize_image_model(item))
|
|
266
|
+
.filter((item) => item !== null);
|
|
267
|
+
const default_model_id = items.find((item) => item.default_modalities?.includes("image"))?.id ??
|
|
268
|
+
items.find((item) => item.is_default)?.id ??
|
|
269
|
+
items[0]?.id;
|
|
270
|
+
return {
|
|
271
|
+
items,
|
|
272
|
+
...(default_model_id ? { default_model_id } : {}),
|
|
273
|
+
};
|
|
87
274
|
}
|
|
88
275
|
/**
|
|
89
276
|
* 校验任务创建结果。
|
|
@@ -126,9 +313,8 @@ export class ImagePlugin extends BasePlugin {
|
|
|
126
313
|
description;
|
|
127
314
|
image_create;
|
|
128
315
|
image_result;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
max_poll_interval_ms;
|
|
316
|
+
list_models;
|
|
317
|
+
default_model_id;
|
|
132
318
|
constructor(options) {
|
|
133
319
|
super();
|
|
134
320
|
const name = String(options.name || DEFAULT_IMAGE_PLUGIN_NAME).trim();
|
|
@@ -146,9 +332,7 @@ export class ImagePlugin extends BasePlugin {
|
|
|
146
332
|
this.description = String(options.description || DEFAULT_IMAGE_PLUGIN_DESCRIPTION).trim();
|
|
147
333
|
this.image_create = options.image_create;
|
|
148
334
|
this.image_result = options.image_result;
|
|
149
|
-
this.
|
|
150
|
-
this.min_poll_interval_ms = normalize_positive_number(options.min_poll_interval_ms, DEFAULT_MIN_POLL_INTERVAL_MS);
|
|
151
|
-
this.max_poll_interval_ms = normalize_positive_number(options.max_poll_interval_ms, DEFAULT_MAX_POLL_INTERVAL_MS);
|
|
335
|
+
this.list_models = options.list_models;
|
|
152
336
|
}
|
|
153
337
|
/**
|
|
154
338
|
* 图片插件给模型的使用说明。
|
|
@@ -157,110 +341,67 @@ export class ImagePlugin extends BasePlugin {
|
|
|
157
341
|
return [
|
|
158
342
|
"# Image Plugin",
|
|
159
343
|
"",
|
|
160
|
-
"Use this plugin only when the user asks to
|
|
161
|
-
"
|
|
162
|
-
"",
|
|
163
|
-
"
|
|
164
|
-
"",
|
|
165
|
-
"
|
|
166
|
-
"
|
|
167
|
-
`
|
|
168
|
-
' action: "generate",',
|
|
169
|
-
" payload: {",
|
|
170
|
-
' prompt: "...",',
|
|
171
|
-
" },",
|
|
172
|
-
"});",
|
|
173
|
-
"```",
|
|
174
|
-
"",
|
|
175
|
-
"Payload rules:",
|
|
176
|
-
"- `prompt` is required unless `messages` provides the full multimodal image context.",
|
|
177
|
-
"- Optional common fields: `messages`, `size`, `aspect_ratio`, `ratio`, `quality`, `n`, `count`, `seed`, `provider_options`.",
|
|
178
|
-
"- Preserve the user's creative intent; do not over-rewrite the prompt unless clarification is necessary.",
|
|
179
|
-
"- For a two-step flow, call `image_create` first, then call `image_result` with `job_id`; `image_result` waits until the job finishes by default.",
|
|
180
|
-
"- `generate` is a convenience action that creates the job and waits for the final image in one call.",
|
|
181
|
-
"- Generated image file parts are saved under project `.downcity/resources` and attached to the final assistant message automatically.",
|
|
344
|
+
"Use this plugin only when the user asks to create or edit an image.",
|
|
345
|
+
"Use `prompt` for text-only image generation.",
|
|
346
|
+
"Use `content` for image editing or reference images: `[{ type: \"text\", text }, { type: \"image\", url }]`.",
|
|
347
|
+
"If `content` is present, it is used instead of `prompt`.",
|
|
348
|
+
"Do not pass `messages` or data URLs.",
|
|
349
|
+
"`url` may be an online URL, an absolute local path, or a path relative to the Agent project root.",
|
|
350
|
+
"Flow: call `models` if you need a model id, call `image_create`, then call `image_result` with `job_id`.",
|
|
351
|
+
"If `image_result` returns `queued` or `running`, keep the `job_id` and check again later.",
|
|
182
352
|
].join("\n");
|
|
183
353
|
}
|
|
184
|
-
async generate_image(input) {
|
|
185
|
-
const created = await this.image_create(input);
|
|
186
|
-
validate_created_job(created);
|
|
187
|
-
const current = await this.wait_for_image_result({
|
|
188
|
-
job_id: created.job_id,
|
|
189
|
-
poll_after_ms: created.poll_after_ms,
|
|
190
|
-
});
|
|
191
|
-
if (!current.result) {
|
|
192
|
-
throw new Error(`Image job ${created.job_id} succeeded without result`);
|
|
193
|
-
}
|
|
194
|
-
return normalize_image_result(current.result);
|
|
195
|
-
}
|
|
196
354
|
/**
|
|
197
|
-
*
|
|
355
|
+
* 当调用方未显式指定模型时,使用模型目录中的图片默认模型。
|
|
198
356
|
*/
|
|
199
|
-
async
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
if (
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
throw new Error(`Image job failed: ${first.error ?? first.message ?? input.job_id}`);
|
|
214
|
-
}
|
|
215
|
-
return await this.wait_for_image_result({
|
|
216
|
-
job_id: input.job_id,
|
|
217
|
-
poll_after_ms: first.poll_after_ms,
|
|
218
|
-
timeout_ms,
|
|
219
|
-
min_poll_interval_ms,
|
|
220
|
-
max_poll_interval_ms,
|
|
221
|
-
});
|
|
357
|
+
async with_default_model(input) {
|
|
358
|
+
if (typeof input.model === "string" && input.model.trim())
|
|
359
|
+
return input;
|
|
360
|
+
const default_model_id = await this.resolve_default_model_id();
|
|
361
|
+
return default_model_id ? { ...input, model: default_model_id } : input;
|
|
362
|
+
}
|
|
363
|
+
async resolve_default_model_id() {
|
|
364
|
+
if (this.default_model_id)
|
|
365
|
+
return this.default_model_id;
|
|
366
|
+
if (!this.list_models)
|
|
367
|
+
return undefined;
|
|
368
|
+
const result = normalize_image_models(await this.list_models());
|
|
369
|
+
this.default_model_id = result.default_model_id;
|
|
370
|
+
return this.default_model_id;
|
|
222
371
|
}
|
|
223
372
|
/**
|
|
224
|
-
*
|
|
373
|
+
* 查询图片任务当前状态。
|
|
225
374
|
*/
|
|
226
|
-
async
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
let poll_after_ms = input.poll_after_ms;
|
|
232
|
-
while (Date.now() < deadline) {
|
|
233
|
-
await sleep(clamp_poll_interval(poll_after_ms, min_poll_interval_ms, max_poll_interval_ms));
|
|
234
|
-
const current = await this.image_result({ job_id: input.job_id });
|
|
235
|
-
validate_job_result(current);
|
|
236
|
-
poll_after_ms = current.poll_after_ms;
|
|
237
|
-
if (current.status === "succeeded") {
|
|
238
|
-
if (!current.result) {
|
|
239
|
-
throw new Error(`Image job ${input.job_id} succeeded without result`);
|
|
240
|
-
}
|
|
241
|
-
normalize_image_result(current.result);
|
|
242
|
-
return current;
|
|
243
|
-
}
|
|
244
|
-
if (current.status === "failed") {
|
|
245
|
-
throw new Error(`Image job failed: ${current.error ?? current.message ?? input.job_id}`);
|
|
246
|
-
}
|
|
375
|
+
async read_image_result(input) {
|
|
376
|
+
const current = await this.image_result({ job_id: input.job_id });
|
|
377
|
+
validate_job_result(current);
|
|
378
|
+
if (current.status === "succeeded" && current.result) {
|
|
379
|
+
normalize_image_result(current.result);
|
|
247
380
|
}
|
|
248
|
-
|
|
381
|
+
return current;
|
|
249
382
|
}
|
|
250
383
|
/**
|
|
251
384
|
* 显式 action 集合。
|
|
252
385
|
*/
|
|
253
386
|
actions = {
|
|
254
|
-
|
|
255
|
-
|
|
387
|
+
models: createAction({
|
|
388
|
+
description: "List image-capable models available to ImagePlugin.",
|
|
389
|
+
input_schema: z.object({}).passthrough(),
|
|
390
|
+
execute: async () => {
|
|
256
391
|
try {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
392
|
+
if (!this.list_models) {
|
|
393
|
+
return {
|
|
394
|
+
success: false,
|
|
395
|
+
error: "ImagePlugin list_models is not configured",
|
|
396
|
+
message: "ImagePlugin list_models is not configured",
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
const models = await this.list_models();
|
|
400
|
+
const result = normalize_image_models(models);
|
|
260
401
|
return {
|
|
261
402
|
success: true,
|
|
262
|
-
data:
|
|
263
|
-
message: "image
|
|
403
|
+
data: result,
|
|
404
|
+
message: "image models listed",
|
|
264
405
|
};
|
|
265
406
|
}
|
|
266
407
|
catch (error) {
|
|
@@ -271,23 +412,83 @@ export class ImagePlugin extends BasePlugin {
|
|
|
271
412
|
};
|
|
272
413
|
}
|
|
273
414
|
},
|
|
274
|
-
},
|
|
275
|
-
|
|
276
|
-
|
|
415
|
+
}),
|
|
416
|
+
image_create: createAction({
|
|
417
|
+
description: "Create an async image job. Use prompt for text-only generation, or content for reference images and edits.",
|
|
418
|
+
input_schema: {
|
|
419
|
+
zod: IMAGE_CREATE_INPUT_SCHEMA,
|
|
420
|
+
json_schema: {
|
|
421
|
+
type: "object",
|
|
422
|
+
additionalProperties: true,
|
|
423
|
+
properties: {
|
|
424
|
+
model: { type: "string", description: "Image model id." },
|
|
425
|
+
prompt: {
|
|
426
|
+
type: "string",
|
|
427
|
+
description: "Text-only image prompt. Ignored when content is present.",
|
|
428
|
+
},
|
|
429
|
+
content: {
|
|
430
|
+
type: "array",
|
|
431
|
+
description: "Multimodal content for image edits or reference images.",
|
|
432
|
+
items: {
|
|
433
|
+
oneOf: [
|
|
434
|
+
{
|
|
435
|
+
type: "object",
|
|
436
|
+
required: ["type", "text"],
|
|
437
|
+
properties: {
|
|
438
|
+
type: { const: "text" },
|
|
439
|
+
text: { type: "string" },
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
type: "object",
|
|
444
|
+
required: ["type", "url"],
|
|
445
|
+
properties: {
|
|
446
|
+
type: { const: "image" },
|
|
447
|
+
url: {
|
|
448
|
+
type: "string",
|
|
449
|
+
description: "Online URL, absolute local path, or path relative to the Agent project root.",
|
|
450
|
+
},
|
|
451
|
+
media_type: { type: "string" },
|
|
452
|
+
},
|
|
453
|
+
},
|
|
454
|
+
],
|
|
455
|
+
},
|
|
456
|
+
},
|
|
457
|
+
aspect_ratio: { type: "string", description: "Aspect ratio, for example 16:9." },
|
|
458
|
+
size: { type: "string", description: "Image size, for example 1024x1024." },
|
|
459
|
+
quality: { type: "string", description: "Image quality." },
|
|
460
|
+
seed: { type: "number", description: "Random seed." },
|
|
461
|
+
},
|
|
462
|
+
},
|
|
463
|
+
},
|
|
464
|
+
examples: [
|
|
465
|
+
{
|
|
466
|
+
title: "Text-only image",
|
|
467
|
+
payload: {
|
|
468
|
+
prompt: "A cinematic illustration of a rainy city corner at night",
|
|
469
|
+
aspect_ratio: "16:9",
|
|
470
|
+
},
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
title: "Edit image with local reference",
|
|
474
|
+
payload: {
|
|
475
|
+
content: [
|
|
476
|
+
{ type: "text", text: "Change this image to a white studio background" },
|
|
477
|
+
{ type: "image", url: "./input.png" },
|
|
478
|
+
],
|
|
479
|
+
},
|
|
480
|
+
},
|
|
481
|
+
],
|
|
482
|
+
execute: async ({ context, payload }) => {
|
|
277
483
|
try {
|
|
278
|
-
const input =
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
const data = current.status === "succeeded" && current.result
|
|
283
|
-
? current.result
|
|
284
|
-
: current;
|
|
484
|
+
const input = normalize_image_payload(payload);
|
|
485
|
+
const normalized_input = await normalize_image_create_input(context, input);
|
|
486
|
+
const created = await this.image_create(await this.with_default_model(normalized_input));
|
|
487
|
+
validate_created_job(created);
|
|
285
488
|
return {
|
|
286
489
|
success: true,
|
|
287
|
-
data,
|
|
288
|
-
message:
|
|
289
|
-
? "image generated"
|
|
290
|
-
: `image job ${current.status}`,
|
|
490
|
+
data: created,
|
|
491
|
+
message: "image job created",
|
|
291
492
|
};
|
|
292
493
|
}
|
|
293
494
|
catch (error) {
|
|
@@ -298,16 +499,51 @@ export class ImagePlugin extends BasePlugin {
|
|
|
298
499
|
};
|
|
299
500
|
}
|
|
300
501
|
},
|
|
301
|
-
},
|
|
302
|
-
|
|
502
|
+
}),
|
|
503
|
+
image_result: createAction({
|
|
504
|
+
description: "Read the current state of an async image job once.",
|
|
505
|
+
input_schema: {
|
|
506
|
+
zod: IMAGE_RESULT_INPUT_SCHEMA,
|
|
507
|
+
json_schema: {
|
|
508
|
+
type: "object",
|
|
509
|
+
required: ["job_id"],
|
|
510
|
+
properties: {
|
|
511
|
+
job_id: {
|
|
512
|
+
type: "string",
|
|
513
|
+
description: "Image job id returned by image_create.",
|
|
514
|
+
},
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
},
|
|
518
|
+
examples: [
|
|
519
|
+
{
|
|
520
|
+
title: "Read image job",
|
|
521
|
+
payload: {
|
|
522
|
+
job_id: "img_123",
|
|
523
|
+
},
|
|
524
|
+
},
|
|
525
|
+
],
|
|
303
526
|
execute: async ({ payload }) => {
|
|
304
527
|
try {
|
|
305
|
-
const input =
|
|
306
|
-
const
|
|
528
|
+
const input = normalize_image_result_payload(payload);
|
|
529
|
+
const current = await this.read_image_result(input);
|
|
530
|
+
if (current.status === "failed") {
|
|
531
|
+
return {
|
|
532
|
+
success: false,
|
|
533
|
+
data: current,
|
|
534
|
+
error: current.error ?? current.message ?? input.job_id,
|
|
535
|
+
message: current.error ?? current.message ?? "image job failed",
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
const data = current.status === "succeeded" && current.result
|
|
539
|
+
? current.result
|
|
540
|
+
: current;
|
|
307
541
|
return {
|
|
308
542
|
success: true,
|
|
309
|
-
data
|
|
310
|
-
message:
|
|
543
|
+
data,
|
|
544
|
+
message: current.status === "succeeded"
|
|
545
|
+
? "image generated"
|
|
546
|
+
: `image job ${current.status}`,
|
|
311
547
|
};
|
|
312
548
|
}
|
|
313
549
|
catch (error) {
|
|
@@ -318,7 +554,7 @@ export class ImagePlugin extends BasePlugin {
|
|
|
318
554
|
};
|
|
319
555
|
}
|
|
320
556
|
},
|
|
321
|
-
},
|
|
557
|
+
}),
|
|
322
558
|
};
|
|
323
559
|
}
|
|
324
560
|
//# sourceMappingURL=ImagePlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePlugin.js","sourceRoot":"","sources":["../../src/image/ImagePlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImagePlugin.js","sourceRoot":"","sources":["../../src/image/ImagePlugin.ts"],"names":[],"mappings":"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"}
|