@downcity/plugins 1.0.103 → 1.0.109
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/image/ImagePlugin.d.ts +4 -0
- package/bin/image/ImagePlugin.d.ts.map +1 -1
- package/bin/image/ImagePlugin.js +161 -16
- package/bin/image/ImagePlugin.js.map +1 -1
- package/bin/image/types/ImagePlugin.d.ts +25 -1
- package/bin/image/types/ImagePlugin.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/image/ImagePlugin.ts +172 -17
- package/src/image/types/ImagePlugin.ts +25 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../src/image/ImagePlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACV,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAQV,kBAAkB,EAInB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../src/image/ImagePlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACV,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAQV,kBAAkB,EAInB,MAAM,8BAA8B,CAAC;AA6ZtC;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkD;IAC/E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkD;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoC;IACjE,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,OAAO,EAAE,kBAAkB;IAsBvC;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAoCtC;;OAEG;YACW,kBAAkB;YAQlB,wBAAwB;IAQtC;;OAEG;YACW,iBAAiB;IA6B/B;;OAEG;YACW,cAAc;IAS5B;;OAEG;IACH,QAAQ,CAAC,OAAO;;;;MAoMd;CACH"}
|
package/bin/image/ImagePlugin.js
CHANGED
|
@@ -16,6 +16,68 @@ const DEFAULT_IMAGE_PLUGIN_TITLE = "Image";
|
|
|
16
16
|
const DEFAULT_IMAGE_PLUGIN_DESCRIPTION = "Generate images and return them as assistant file parts.";
|
|
17
17
|
const HTTP_URL_RE = /^https?:\/\//i;
|
|
18
18
|
const DEFAULT_IMAGE_MEDIA_TYPE = "image/png";
|
|
19
|
+
/**
|
|
20
|
+
* `image_result` 阻塞等待时的默认参数。
|
|
21
|
+
*
|
|
22
|
+
* 关键点(中文)
|
|
23
|
+
* - DEFAULT_IMAGE_WAIT_MS:总等待上限(毫秒),避免 agent 单次调用挂太久。
|
|
24
|
+
* - DEFAULT_IMAGE_POLL_MS:相邻两次轮询的最小间隔(毫秒)。
|
|
25
|
+
* - MAX_IMAGE_WAIT_MS:用户参数硬上限,防止异常值导致 agent 永远等下去。
|
|
26
|
+
*/
|
|
27
|
+
const DEFAULT_IMAGE_WAIT_MS = 60_000;
|
|
28
|
+
const DEFAULT_IMAGE_POLL_MS = 1_500;
|
|
29
|
+
const MAX_IMAGE_WAIT_MS = 10 * 60_000;
|
|
30
|
+
/**
|
|
31
|
+
* 判断任务状态是否已到达终态。
|
|
32
|
+
*/
|
|
33
|
+
function is_terminal_status(status) {
|
|
34
|
+
return status === "succeeded" || status === "failed";
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* sleep 工具。
|
|
38
|
+
*/
|
|
39
|
+
function delay_ms(ms) {
|
|
40
|
+
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 把外部传入的等待参数夹到合法区间。
|
|
44
|
+
*/
|
|
45
|
+
function clamp_wait_ms(value) {
|
|
46
|
+
if (!Number.isFinite(value) || value < 0)
|
|
47
|
+
return 0;
|
|
48
|
+
if (value > MAX_IMAGE_WAIT_MS)
|
|
49
|
+
return MAX_IMAGE_WAIT_MS;
|
|
50
|
+
return Math.floor(value);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 把异常完整描述为字符串,保留 `error.cause` 链上的诊断信息。
|
|
54
|
+
*
|
|
55
|
+
* 关键点(中文)
|
|
56
|
+
* - Node fetch 抛出的 `TypeError: fetch failed` 把真正的根因放在 `error.cause`;
|
|
57
|
+
* `String(error)` 只会拿到 message,会让上层只看到一个干瘪的 "fetch failed"。
|
|
58
|
+
* - 这里递归读取 cause 链,并取每一层的 `code` + `message`,方便在 agent 输出里直接定位问题。
|
|
59
|
+
*/
|
|
60
|
+
function describe_error(error) {
|
|
61
|
+
if (!(error instanceof Error))
|
|
62
|
+
return String(error);
|
|
63
|
+
const parts = [error.message || error.name || "Error"];
|
|
64
|
+
let current = error.cause;
|
|
65
|
+
let depth = 0;
|
|
66
|
+
while (current && depth < 3) {
|
|
67
|
+
if (current instanceof Error) {
|
|
68
|
+
const code = current.code;
|
|
69
|
+
const code_text = typeof code === "string" && code ? `[${code}] ` : "";
|
|
70
|
+
parts.push(`${code_text}${current.message || current.name}`.trim());
|
|
71
|
+
current = current.cause;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
parts.push(String(current));
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
depth += 1;
|
|
78
|
+
}
|
|
79
|
+
return parts.filter(Boolean).join(" :: ");
|
|
80
|
+
}
|
|
19
81
|
const IMAGE_MEDIA_TYPES = {
|
|
20
82
|
".apng": "image/apng",
|
|
21
83
|
".avif": "image/avif",
|
|
@@ -53,6 +115,9 @@ const IMAGE_CREATE_INPUT_SCHEMA = z.object({
|
|
|
53
115
|
}).passthrough();
|
|
54
116
|
const IMAGE_RESULT_INPUT_SCHEMA = z.object({
|
|
55
117
|
job_id: z.string(),
|
|
118
|
+
until_done: z.boolean().optional(),
|
|
119
|
+
max_wait_ms: z.number().optional(),
|
|
120
|
+
poll_interval_ms: z.number().optional(),
|
|
56
121
|
}).passthrough();
|
|
57
122
|
/**
|
|
58
123
|
* 判断值是否为普通对象。
|
|
@@ -188,9 +253,20 @@ function normalize_image_result_payload(payload) {
|
|
|
188
253
|
if (!job_id) {
|
|
189
254
|
throw new TypeError("ImagePlugin.image_result payload must include job_id");
|
|
190
255
|
}
|
|
256
|
+
const until_done = record.until_done === true;
|
|
257
|
+
const max_wait_ms = typeof record.max_wait_ms === "number" && Number.isFinite(record.max_wait_ms)
|
|
258
|
+
? Math.max(0, Math.floor(record.max_wait_ms))
|
|
259
|
+
: undefined;
|
|
260
|
+
const poll_interval_ms = typeof record.poll_interval_ms === "number" &&
|
|
261
|
+
Number.isFinite(record.poll_interval_ms)
|
|
262
|
+
? Math.max(0, Math.floor(record.poll_interval_ms))
|
|
263
|
+
: undefined;
|
|
191
264
|
return {
|
|
192
265
|
...record,
|
|
193
266
|
job_id,
|
|
267
|
+
...(until_done ? { until_done: true } : {}),
|
|
268
|
+
...(max_wait_ms !== undefined ? { max_wait_ms } : {}),
|
|
269
|
+
...(poll_interval_ms !== undefined ? { poll_interval_ms } : {}),
|
|
194
270
|
};
|
|
195
271
|
}
|
|
196
272
|
/**
|
|
@@ -341,14 +417,35 @@ export class ImagePlugin extends BasePlugin {
|
|
|
341
417
|
return [
|
|
342
418
|
"# Image Plugin",
|
|
343
419
|
"",
|
|
344
|
-
"Use this plugin only when the user asks to create or
|
|
345
|
-
"
|
|
346
|
-
"
|
|
347
|
-
"
|
|
348
|
-
"
|
|
349
|
-
"`
|
|
350
|
-
"
|
|
351
|
-
"
|
|
420
|
+
"Use this plugin only when the user asks to create, edit, or otherwise produce an image.",
|
|
421
|
+
"Do not call it for ordinary text answers, even if the message mentions visual ideas.",
|
|
422
|
+
"",
|
|
423
|
+
"## Actions",
|
|
424
|
+
"",
|
|
425
|
+
"- `models`:列出当前可用的图片模型,返回 `{ models, default_model_id }`。",
|
|
426
|
+
" 仅当你需要让用户挑模型,或当前没有默认模型可用时才调用。",
|
|
427
|
+
"- `image_create`:创建一个异步图片任务,返回 `{ job_id, status }`。",
|
|
428
|
+
" - 纯文本生成:填 `prompt`(字符串)。",
|
|
429
|
+
" - 编辑 / 参考图:填 `content`,格式:",
|
|
430
|
+
" `[{ type: \"text\", text }, { type: \"image\", url }]`。可以多段文本和多张图任意顺序混排。",
|
|
431
|
+
" - 同时给了 `content` 和 `prompt` 时,`content` 生效,`prompt` 被忽略。",
|
|
432
|
+
" - `url` 支持三种写法:在线 URL、绝对本地路径、相对 Agent 项目根目录的相对路径。",
|
|
433
|
+
" 不要传 base64 / data URL,也不要再用旧的 `messages` 字段。",
|
|
434
|
+
" - 可选参数:`model`、`aspect_ratio`(如 `16:9`)、`size`(如 `1024x1024`)、`quality`、`seed`。",
|
|
435
|
+
"- `image_result`:用 `job_id` 读取任务状态。",
|
|
436
|
+
" - 默认读取一次。`queued` / `running` 时保存好 `job_id`,下一轮再查,不要在同一轮里反复轮询。",
|
|
437
|
+
" - 想直接等到出图,可以传 `until_done: true`,可选 `max_wait_ms`(默认 60000,最长 600000)与 `poll_interval_ms`(默认 1500)。超时仍未完成会返回最后一次的中间状态。",
|
|
438
|
+
" - `succeeded`:返回的图片 file part 会自动落盘并附加到下一条 assistant 消息,无需自己再拼图。",
|
|
439
|
+
" - 回复用户时,可以在消息中使用 Markdown 图片语法 `` 渲染图片。",
|
|
440
|
+
" - `failed`:把 `error` 信息如实回报给用户,不要编造图片结果。",
|
|
441
|
+
"",
|
|
442
|
+
"## Flow",
|
|
443
|
+
"",
|
|
444
|
+
"1. 需要选模型时先 `models`,否则直接进入第 2 步。",
|
|
445
|
+
"2. `image_create` 拿到 `job_id`。",
|
|
446
|
+
"3. `image_result` 查询;短任务可加 `until_done: true` 一次拿结果,长任务保存 `job_id` 下一轮再查。",
|
|
447
|
+
"",
|
|
448
|
+
"如有疑问可用 `plugin_read { plugin: \"image\", action: \"...\" }` 查看每个 action 完整的输入 schema 与示例。",
|
|
352
449
|
].join("\n");
|
|
353
450
|
}
|
|
354
451
|
/**
|
|
@@ -373,7 +470,35 @@ export class ImagePlugin extends BasePlugin {
|
|
|
373
470
|
* 查询图片任务当前状态。
|
|
374
471
|
*/
|
|
375
472
|
async read_image_result(input) {
|
|
376
|
-
const
|
|
473
|
+
const first = await this.fetch_job_once(input.job_id);
|
|
474
|
+
if (!input.until_done)
|
|
475
|
+
return first;
|
|
476
|
+
if (is_terminal_status(first.status))
|
|
477
|
+
return first;
|
|
478
|
+
const deadline = Date.now() + clamp_wait_ms(input.max_wait_ms ?? DEFAULT_IMAGE_WAIT_MS);
|
|
479
|
+
const base_interval = clamp_wait_ms(input.poll_interval_ms ?? DEFAULT_IMAGE_POLL_MS);
|
|
480
|
+
let current = first;
|
|
481
|
+
while (Date.now() < deadline) {
|
|
482
|
+
const provider_hint = typeof current.poll_after_ms === "number" && current.poll_after_ms > 0
|
|
483
|
+
? Math.floor(current.poll_after_ms)
|
|
484
|
+
: 0;
|
|
485
|
+
const wait_ms = Math.max(base_interval, provider_hint);
|
|
486
|
+
const remaining = Math.max(0, deadline - Date.now());
|
|
487
|
+
const sleep_ms = Math.min(wait_ms, remaining);
|
|
488
|
+
if (sleep_ms === 0)
|
|
489
|
+
break;
|
|
490
|
+
await delay_ms(sleep_ms);
|
|
491
|
+
current = await this.fetch_job_once(input.job_id);
|
|
492
|
+
if (is_terminal_status(current.status))
|
|
493
|
+
return current;
|
|
494
|
+
}
|
|
495
|
+
return current;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* 拉取一次任务状态并校验。
|
|
499
|
+
*/
|
|
500
|
+
async fetch_job_once(job_id) {
|
|
501
|
+
const current = await this.image_result({ job_id });
|
|
377
502
|
validate_job_result(current);
|
|
378
503
|
if (current.status === "succeeded" && current.result) {
|
|
379
504
|
normalize_image_result(current.result);
|
|
@@ -407,8 +532,8 @@ export class ImagePlugin extends BasePlugin {
|
|
|
407
532
|
catch (error) {
|
|
408
533
|
return {
|
|
409
534
|
success: false,
|
|
410
|
-
error:
|
|
411
|
-
message:
|
|
535
|
+
error: describe_error(error),
|
|
536
|
+
message: describe_error(error),
|
|
412
537
|
};
|
|
413
538
|
}
|
|
414
539
|
},
|
|
@@ -494,14 +619,14 @@ export class ImagePlugin extends BasePlugin {
|
|
|
494
619
|
catch (error) {
|
|
495
620
|
return {
|
|
496
621
|
success: false,
|
|
497
|
-
error:
|
|
498
|
-
message:
|
|
622
|
+
error: describe_error(error),
|
|
623
|
+
message: describe_error(error),
|
|
499
624
|
};
|
|
500
625
|
}
|
|
501
626
|
},
|
|
502
627
|
}),
|
|
503
628
|
image_result: createAction({
|
|
504
|
-
description: "Read
|
|
629
|
+
description: "Read an async image job. By default reads once; pass until_done=true to block-wait until succeeded/failed or max_wait_ms times out.",
|
|
505
630
|
input_schema: {
|
|
506
631
|
zod: IMAGE_RESULT_INPUT_SCHEMA,
|
|
507
632
|
json_schema: {
|
|
@@ -512,6 +637,18 @@ export class ImagePlugin extends BasePlugin {
|
|
|
512
637
|
type: "string",
|
|
513
638
|
description: "Image job id returned by image_create.",
|
|
514
639
|
},
|
|
640
|
+
until_done: {
|
|
641
|
+
type: "boolean",
|
|
642
|
+
description: "If true, the plugin internally polls until the job reaches a terminal state (succeeded/failed) or max_wait_ms elapses.",
|
|
643
|
+
},
|
|
644
|
+
max_wait_ms: {
|
|
645
|
+
type: "number",
|
|
646
|
+
description: "Total wait budget in milliseconds when until_done is true. Default 60000, hard cap 600000.",
|
|
647
|
+
},
|
|
648
|
+
poll_interval_ms: {
|
|
649
|
+
type: "number",
|
|
650
|
+
description: "Minimum delay between polls in milliseconds when until_done is true. Default 1500. Provider poll_after_ms overrides when larger.",
|
|
651
|
+
},
|
|
515
652
|
},
|
|
516
653
|
},
|
|
517
654
|
},
|
|
@@ -522,6 +659,14 @@ export class ImagePlugin extends BasePlugin {
|
|
|
522
659
|
job_id: "img_123",
|
|
523
660
|
},
|
|
524
661
|
},
|
|
662
|
+
{
|
|
663
|
+
title: "Wait until done",
|
|
664
|
+
payload: {
|
|
665
|
+
job_id: "img_123",
|
|
666
|
+
until_done: true,
|
|
667
|
+
max_wait_ms: 30000,
|
|
668
|
+
},
|
|
669
|
+
},
|
|
525
670
|
],
|
|
526
671
|
execute: async ({ payload }) => {
|
|
527
672
|
try {
|
|
@@ -549,8 +694,8 @@ export class ImagePlugin extends BasePlugin {
|
|
|
549
694
|
catch (error) {
|
|
550
695
|
return {
|
|
551
696
|
success: false,
|
|
552
|
-
error:
|
|
553
|
-
message:
|
|
697
|
+
error: describe_error(error),
|
|
698
|
+
message: describe_error(error),
|
|
554
699
|
};
|
|
555
700
|
}
|
|
556
701
|
},
|
|
@@ -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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"}
|
|
@@ -161,6 +161,30 @@ export interface ImagePluginJobResult {
|
|
|
161
161
|
export interface ImagePluginJobResultInput {
|
|
162
162
|
/** 图片任务 ID,由 `image_create` 返回。 */
|
|
163
163
|
job_id: string;
|
|
164
|
+
/**
|
|
165
|
+
* 是否阻塞等待任务到达终态(`succeeded` / `failed`)。
|
|
166
|
+
*
|
|
167
|
+
* 关键点(中文)
|
|
168
|
+
* - 默认 false:行为与历史一致,调用一次 provider 即返回。
|
|
169
|
+
* - true:plugin 内部按 `poll_interval_ms` 节奏轮询,直到任务终止或 `max_wait_ms` 到期。
|
|
170
|
+
*/
|
|
171
|
+
until_done?: boolean;
|
|
172
|
+
/**
|
|
173
|
+
* 轮询的总等待上限(毫秒)。
|
|
174
|
+
*
|
|
175
|
+
* 关键点(中文)
|
|
176
|
+
* - 仅当 `until_done` 为 true 时生效。
|
|
177
|
+
* - 默认 60_000;命中上限后返回当前最后一次状态,不抛错。
|
|
178
|
+
*/
|
|
179
|
+
max_wait_ms?: number;
|
|
180
|
+
/**
|
|
181
|
+
* 单次轮询之间的等待间隔(毫秒)。
|
|
182
|
+
*
|
|
183
|
+
* 关键点(中文)
|
|
184
|
+
* - 仅当 `until_done` 为 true 时生效。
|
|
185
|
+
* - 默认 1500;若 provider 返回 `poll_after_ms`,则取两者较大值。
|
|
186
|
+
*/
|
|
187
|
+
poll_interval_ms?: number;
|
|
164
188
|
}
|
|
165
189
|
/**
|
|
166
190
|
* ImagePlugin 可见模型信息。
|
|
@@ -205,7 +229,7 @@ export interface ImagePluginOptions {
|
|
|
205
229
|
/** 创建图片生成任务,通常传入 `(input) => city.ai.image_create(input)`。 */
|
|
206
230
|
image_create?: (input: ImagePluginResolvedInput) => Promise<ImagePluginJobCreateResult> | ImagePluginJobCreateResult;
|
|
207
231
|
/** 查询图片生成任务,通常传入 `(input) => city.ai.image_result(input)`。 */
|
|
208
|
-
image_result?: (input:
|
|
232
|
+
image_result?: (input: ImagePluginJobResultInput) => Promise<ImagePluginJobResult> | ImagePluginJobResult;
|
|
209
233
|
/** 列出可用图片模型,通常传入 `async () => city.ai.listModels().then((catalog) => catalog.forModality("image"))`。 */
|
|
210
234
|
list_models?: () => Promise<ImagePluginModel[]> | ImagePluginModel[];
|
|
211
235
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../../src/image/types/ImagePlugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../../src/image/types/ImagePlugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@downcity/plugins",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.109",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Downcity 内建 plugin 集合包",
|
|
6
6
|
"main": "./bin/index.js",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@downcity/agent": "^1.1.
|
|
16
|
-
"@downcity/shell": "^0.1.
|
|
15
|
+
"@downcity/agent": "^1.1.160",
|
|
16
|
+
"@downcity/shell": "^0.1.36",
|
|
17
17
|
"@larksuiteoapi/node-sdk": "^1.66.0",
|
|
18
18
|
"ai": "^6.0.193",
|
|
19
19
|
"better-sqlite3": "^12.10.0",
|
package/src/image/ImagePlugin.ts
CHANGED
|
@@ -37,6 +37,68 @@ const DEFAULT_IMAGE_PLUGIN_DESCRIPTION =
|
|
|
37
37
|
"Generate images and return them as assistant file parts.";
|
|
38
38
|
const HTTP_URL_RE = /^https?:\/\//i;
|
|
39
39
|
const DEFAULT_IMAGE_MEDIA_TYPE = "image/png";
|
|
40
|
+
/**
|
|
41
|
+
* `image_result` 阻塞等待时的默认参数。
|
|
42
|
+
*
|
|
43
|
+
* 关键点(中文)
|
|
44
|
+
* - DEFAULT_IMAGE_WAIT_MS:总等待上限(毫秒),避免 agent 单次调用挂太久。
|
|
45
|
+
* - DEFAULT_IMAGE_POLL_MS:相邻两次轮询的最小间隔(毫秒)。
|
|
46
|
+
* - MAX_IMAGE_WAIT_MS:用户参数硬上限,防止异常值导致 agent 永远等下去。
|
|
47
|
+
*/
|
|
48
|
+
const DEFAULT_IMAGE_WAIT_MS = 60_000;
|
|
49
|
+
const DEFAULT_IMAGE_POLL_MS = 1_500;
|
|
50
|
+
const MAX_IMAGE_WAIT_MS = 10 * 60_000;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 判断任务状态是否已到达终态。
|
|
54
|
+
*/
|
|
55
|
+
function is_terminal_status(status: string | undefined): boolean {
|
|
56
|
+
return status === "succeeded" || status === "failed";
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* sleep 工具。
|
|
61
|
+
*/
|
|
62
|
+
function delay_ms(ms: number): Promise<void> {
|
|
63
|
+
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* 把外部传入的等待参数夹到合法区间。
|
|
68
|
+
*/
|
|
69
|
+
function clamp_wait_ms(value: number): number {
|
|
70
|
+
if (!Number.isFinite(value) || value < 0) return 0;
|
|
71
|
+
if (value > MAX_IMAGE_WAIT_MS) return MAX_IMAGE_WAIT_MS;
|
|
72
|
+
return Math.floor(value);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* 把异常完整描述为字符串,保留 `error.cause` 链上的诊断信息。
|
|
77
|
+
*
|
|
78
|
+
* 关键点(中文)
|
|
79
|
+
* - Node fetch 抛出的 `TypeError: fetch failed` 把真正的根因放在 `error.cause`;
|
|
80
|
+
* `String(error)` 只会拿到 message,会让上层只看到一个干瘪的 "fetch failed"。
|
|
81
|
+
* - 这里递归读取 cause 链,并取每一层的 `code` + `message`,方便在 agent 输出里直接定位问题。
|
|
82
|
+
*/
|
|
83
|
+
function describe_error(error: unknown): string {
|
|
84
|
+
if (!(error instanceof Error)) return String(error);
|
|
85
|
+
const parts: string[] = [error.message || error.name || "Error"];
|
|
86
|
+
let current: unknown = (error as { cause?: unknown }).cause;
|
|
87
|
+
let depth = 0;
|
|
88
|
+
while (current && depth < 3) {
|
|
89
|
+
if (current instanceof Error) {
|
|
90
|
+
const code = (current as { code?: unknown }).code;
|
|
91
|
+
const code_text = typeof code === "string" && code ? `[${code}] ` : "";
|
|
92
|
+
parts.push(`${code_text}${current.message || current.name}`.trim());
|
|
93
|
+
current = (current as { cause?: unknown }).cause;
|
|
94
|
+
} else {
|
|
95
|
+
parts.push(String(current));
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
depth += 1;
|
|
99
|
+
}
|
|
100
|
+
return parts.filter(Boolean).join(" :: ");
|
|
101
|
+
}
|
|
40
102
|
|
|
41
103
|
const IMAGE_MEDIA_TYPES: Record<string, string> = {
|
|
42
104
|
".apng": "image/apng",
|
|
@@ -79,6 +141,9 @@ const IMAGE_CREATE_INPUT_SCHEMA = z.object({
|
|
|
79
141
|
|
|
80
142
|
const IMAGE_RESULT_INPUT_SCHEMA = z.object({
|
|
81
143
|
job_id: z.string(),
|
|
144
|
+
until_done: z.boolean().optional(),
|
|
145
|
+
max_wait_ms: z.number().optional(),
|
|
146
|
+
poll_interval_ms: z.number().optional(),
|
|
82
147
|
}).passthrough();
|
|
83
148
|
|
|
84
149
|
/**
|
|
@@ -249,9 +314,22 @@ function normalize_image_result_payload(
|
|
|
249
314
|
if (!job_id) {
|
|
250
315
|
throw new TypeError("ImagePlugin.image_result payload must include job_id");
|
|
251
316
|
}
|
|
317
|
+
const until_done = record.until_done === true;
|
|
318
|
+
const max_wait_ms =
|
|
319
|
+
typeof record.max_wait_ms === "number" && Number.isFinite(record.max_wait_ms)
|
|
320
|
+
? Math.max(0, Math.floor(record.max_wait_ms as number))
|
|
321
|
+
: undefined;
|
|
322
|
+
const poll_interval_ms =
|
|
323
|
+
typeof record.poll_interval_ms === "number" &&
|
|
324
|
+
Number.isFinite(record.poll_interval_ms)
|
|
325
|
+
? Math.max(0, Math.floor(record.poll_interval_ms as number))
|
|
326
|
+
: undefined;
|
|
252
327
|
return {
|
|
253
328
|
...record,
|
|
254
329
|
job_id,
|
|
330
|
+
...(until_done ? { until_done: true } : {}),
|
|
331
|
+
...(max_wait_ms !== undefined ? { max_wait_ms } : {}),
|
|
332
|
+
...(poll_interval_ms !== undefined ? { poll_interval_ms } : {}),
|
|
255
333
|
} as ImagePluginJobResultInput;
|
|
256
334
|
}
|
|
257
335
|
|
|
@@ -417,14 +495,35 @@ export class ImagePlugin extends BasePlugin {
|
|
|
417
495
|
return [
|
|
418
496
|
"# Image Plugin",
|
|
419
497
|
"",
|
|
420
|
-
"Use this plugin only when the user asks to create or
|
|
421
|
-
"
|
|
422
|
-
"
|
|
423
|
-
"
|
|
424
|
-
"
|
|
425
|
-
"`
|
|
426
|
-
"
|
|
427
|
-
"
|
|
498
|
+
"Use this plugin only when the user asks to create, edit, or otherwise produce an image.",
|
|
499
|
+
"Do not call it for ordinary text answers, even if the message mentions visual ideas.",
|
|
500
|
+
"",
|
|
501
|
+
"## Actions",
|
|
502
|
+
"",
|
|
503
|
+
"- `models`:列出当前可用的图片模型,返回 `{ models, default_model_id }`。",
|
|
504
|
+
" 仅当你需要让用户挑模型,或当前没有默认模型可用时才调用。",
|
|
505
|
+
"- `image_create`:创建一个异步图片任务,返回 `{ job_id, status }`。",
|
|
506
|
+
" - 纯文本生成:填 `prompt`(字符串)。",
|
|
507
|
+
" - 编辑 / 参考图:填 `content`,格式:",
|
|
508
|
+
" `[{ type: \"text\", text }, { type: \"image\", url }]`。可以多段文本和多张图任意顺序混排。",
|
|
509
|
+
" - 同时给了 `content` 和 `prompt` 时,`content` 生效,`prompt` 被忽略。",
|
|
510
|
+
" - `url` 支持三种写法:在线 URL、绝对本地路径、相对 Agent 项目根目录的相对路径。",
|
|
511
|
+
" 不要传 base64 / data URL,也不要再用旧的 `messages` 字段。",
|
|
512
|
+
" - 可选参数:`model`、`aspect_ratio`(如 `16:9`)、`size`(如 `1024x1024`)、`quality`、`seed`。",
|
|
513
|
+
"- `image_result`:用 `job_id` 读取任务状态。",
|
|
514
|
+
" - 默认读取一次。`queued` / `running` 时保存好 `job_id`,下一轮再查,不要在同一轮里反复轮询。",
|
|
515
|
+
" - 想直接等到出图,可以传 `until_done: true`,可选 `max_wait_ms`(默认 60000,最长 600000)与 `poll_interval_ms`(默认 1500)。超时仍未完成会返回最后一次的中间状态。",
|
|
516
|
+
" - `succeeded`:返回的图片 file part 会自动落盘并附加到下一条 assistant 消息,无需自己再拼图。",
|
|
517
|
+
" - 回复用户时,可以在消息中使用 Markdown 图片语法 `` 渲染图片。",
|
|
518
|
+
" - `failed`:把 `error` 信息如实回报给用户,不要编造图片结果。",
|
|
519
|
+
"",
|
|
520
|
+
"## Flow",
|
|
521
|
+
"",
|
|
522
|
+
"1. 需要选模型时先 `models`,否则直接进入第 2 步。",
|
|
523
|
+
"2. `image_create` 拿到 `job_id`。",
|
|
524
|
+
"3. `image_result` 查询;短任务可加 `until_done: true` 一次拿结果,长任务保存 `job_id` 下一轮再查。",
|
|
525
|
+
"",
|
|
526
|
+
"如有疑问可用 `plugin_read { plugin: \"image\", action: \"...\" }` 查看每个 action 完整的输入 schema 与示例。",
|
|
428
527
|
].join("\n");
|
|
429
528
|
}
|
|
430
529
|
|
|
@@ -450,8 +549,40 @@ export class ImagePlugin extends BasePlugin {
|
|
|
450
549
|
/**
|
|
451
550
|
* 查询图片任务当前状态。
|
|
452
551
|
*/
|
|
453
|
-
private async read_image_result(
|
|
454
|
-
|
|
552
|
+
private async read_image_result(
|
|
553
|
+
input: ImagePluginJobResultInput,
|
|
554
|
+
): Promise<ImagePluginJobResult> {
|
|
555
|
+
const first = await this.fetch_job_once(input.job_id);
|
|
556
|
+
if (!input.until_done) return first;
|
|
557
|
+
if (is_terminal_status(first.status)) return first;
|
|
558
|
+
|
|
559
|
+
const deadline =
|
|
560
|
+
Date.now() + clamp_wait_ms(input.max_wait_ms ?? DEFAULT_IMAGE_WAIT_MS);
|
|
561
|
+
const base_interval = clamp_wait_ms(
|
|
562
|
+
input.poll_interval_ms ?? DEFAULT_IMAGE_POLL_MS,
|
|
563
|
+
);
|
|
564
|
+
let current = first;
|
|
565
|
+
while (Date.now() < deadline) {
|
|
566
|
+
const provider_hint =
|
|
567
|
+
typeof current.poll_after_ms === "number" && current.poll_after_ms > 0
|
|
568
|
+
? Math.floor(current.poll_after_ms)
|
|
569
|
+
: 0;
|
|
570
|
+
const wait_ms = Math.max(base_interval, provider_hint);
|
|
571
|
+
const remaining = Math.max(0, deadline - Date.now());
|
|
572
|
+
const sleep_ms = Math.min(wait_ms, remaining);
|
|
573
|
+
if (sleep_ms === 0) break;
|
|
574
|
+
await delay_ms(sleep_ms);
|
|
575
|
+
current = await this.fetch_job_once(input.job_id);
|
|
576
|
+
if (is_terminal_status(current.status)) return current;
|
|
577
|
+
}
|
|
578
|
+
return current;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* 拉取一次任务状态并校验。
|
|
583
|
+
*/
|
|
584
|
+
private async fetch_job_once(job_id: string): Promise<ImagePluginJobResult> {
|
|
585
|
+
const current = await this.image_result({ job_id });
|
|
455
586
|
validate_job_result(current);
|
|
456
587
|
if (current.status === "succeeded" && current.result) {
|
|
457
588
|
normalize_image_result(current.result);
|
|
@@ -485,8 +616,8 @@ export class ImagePlugin extends BasePlugin {
|
|
|
485
616
|
} catch (error) {
|
|
486
617
|
return {
|
|
487
618
|
success: false,
|
|
488
|
-
error:
|
|
489
|
-
message:
|
|
619
|
+
error: describe_error(error),
|
|
620
|
+
message: describe_error(error),
|
|
490
621
|
};
|
|
491
622
|
}
|
|
492
623
|
},
|
|
@@ -573,14 +704,15 @@ export class ImagePlugin extends BasePlugin {
|
|
|
573
704
|
} catch (error) {
|
|
574
705
|
return {
|
|
575
706
|
success: false,
|
|
576
|
-
error:
|
|
577
|
-
message:
|
|
707
|
+
error: describe_error(error),
|
|
708
|
+
message: describe_error(error),
|
|
578
709
|
};
|
|
579
710
|
}
|
|
580
711
|
},
|
|
581
712
|
}),
|
|
582
713
|
image_result: createAction({
|
|
583
|
-
description:
|
|
714
|
+
description:
|
|
715
|
+
"Read an async image job. By default reads once; pass until_done=true to block-wait until succeeded/failed or max_wait_ms times out.",
|
|
584
716
|
input_schema: {
|
|
585
717
|
zod: IMAGE_RESULT_INPUT_SCHEMA,
|
|
586
718
|
json_schema: {
|
|
@@ -591,6 +723,21 @@ export class ImagePlugin extends BasePlugin {
|
|
|
591
723
|
type: "string",
|
|
592
724
|
description: "Image job id returned by image_create.",
|
|
593
725
|
},
|
|
726
|
+
until_done: {
|
|
727
|
+
type: "boolean",
|
|
728
|
+
description:
|
|
729
|
+
"If true, the plugin internally polls until the job reaches a terminal state (succeeded/failed) or max_wait_ms elapses.",
|
|
730
|
+
},
|
|
731
|
+
max_wait_ms: {
|
|
732
|
+
type: "number",
|
|
733
|
+
description:
|
|
734
|
+
"Total wait budget in milliseconds when until_done is true. Default 60000, hard cap 600000.",
|
|
735
|
+
},
|
|
736
|
+
poll_interval_ms: {
|
|
737
|
+
type: "number",
|
|
738
|
+
description:
|
|
739
|
+
"Minimum delay between polls in milliseconds when until_done is true. Default 1500. Provider poll_after_ms overrides when larger.",
|
|
740
|
+
},
|
|
594
741
|
},
|
|
595
742
|
},
|
|
596
743
|
},
|
|
@@ -601,6 +748,14 @@ export class ImagePlugin extends BasePlugin {
|
|
|
601
748
|
job_id: "img_123",
|
|
602
749
|
},
|
|
603
750
|
},
|
|
751
|
+
{
|
|
752
|
+
title: "Wait until done",
|
|
753
|
+
payload: {
|
|
754
|
+
job_id: "img_123",
|
|
755
|
+
until_done: true,
|
|
756
|
+
max_wait_ms: 30000,
|
|
757
|
+
},
|
|
758
|
+
},
|
|
604
759
|
],
|
|
605
760
|
execute: async ({ payload }: { payload: JsonValue }) => {
|
|
606
761
|
try {
|
|
@@ -628,8 +783,8 @@ export class ImagePlugin extends BasePlugin {
|
|
|
628
783
|
} catch (error) {
|
|
629
784
|
return {
|
|
630
785
|
success: false,
|
|
631
|
-
error:
|
|
632
|
-
message:
|
|
786
|
+
error: describe_error(error),
|
|
787
|
+
message: describe_error(error),
|
|
633
788
|
};
|
|
634
789
|
}
|
|
635
790
|
},
|
|
@@ -185,6 +185,30 @@ export interface ImagePluginJobResult {
|
|
|
185
185
|
export interface ImagePluginJobResultInput {
|
|
186
186
|
/** 图片任务 ID,由 `image_create` 返回。 */
|
|
187
187
|
job_id: string;
|
|
188
|
+
/**
|
|
189
|
+
* 是否阻塞等待任务到达终态(`succeeded` / `failed`)。
|
|
190
|
+
*
|
|
191
|
+
* 关键点(中文)
|
|
192
|
+
* - 默认 false:行为与历史一致,调用一次 provider 即返回。
|
|
193
|
+
* - true:plugin 内部按 `poll_interval_ms` 节奏轮询,直到任务终止或 `max_wait_ms` 到期。
|
|
194
|
+
*/
|
|
195
|
+
until_done?: boolean;
|
|
196
|
+
/**
|
|
197
|
+
* 轮询的总等待上限(毫秒)。
|
|
198
|
+
*
|
|
199
|
+
* 关键点(中文)
|
|
200
|
+
* - 仅当 `until_done` 为 true 时生效。
|
|
201
|
+
* - 默认 60_000;命中上限后返回当前最后一次状态,不抛错。
|
|
202
|
+
*/
|
|
203
|
+
max_wait_ms?: number;
|
|
204
|
+
/**
|
|
205
|
+
* 单次轮询之间的等待间隔(毫秒)。
|
|
206
|
+
*
|
|
207
|
+
* 关键点(中文)
|
|
208
|
+
* - 仅当 `until_done` 为 true 时生效。
|
|
209
|
+
* - 默认 1500;若 provider 返回 `poll_after_ms`,则取两者较大值。
|
|
210
|
+
*/
|
|
211
|
+
poll_interval_ms?: number;
|
|
188
212
|
}
|
|
189
213
|
|
|
190
214
|
/**
|
|
@@ -235,7 +259,7 @@ export interface ImagePluginOptions {
|
|
|
235
259
|
) => Promise<ImagePluginJobCreateResult> | ImagePluginJobCreateResult;
|
|
236
260
|
/** 查询图片生成任务,通常传入 `(input) => city.ai.image_result(input)`。 */
|
|
237
261
|
image_result?: (
|
|
238
|
-
input:
|
|
262
|
+
input: ImagePluginJobResultInput,
|
|
239
263
|
) => Promise<ImagePluginJobResult> | ImagePluginJobResult;
|
|
240
264
|
/** 列出可用图片模型,通常传入 `async () => city.ai.listModels().then((catalog) => catalog.forModality("image"))`。 */
|
|
241
265
|
list_models?: () => Promise<ImagePluginModel[]> | ImagePluginModel[];
|