@migor/agentia 0.7.0 → 0.7.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 +136 -1
- package/README.md +1 -1
- package/dist/AGENTS.md +159 -16
- package/dist/container/container.d.ts +8 -1
- package/dist/container/container.js +8 -1
- package/dist/container/container.js.map +1 -1
- package/dist/core/run.d.ts +5 -1
- package/dist/core/timeout.d.ts +8 -0
- package/dist/core/timeout.js +14 -3
- package/dist/core/timeout.js.map +1 -1
- package/dist/core/tool.d.ts +64 -0
- package/dist/engine/budget.d.ts +17 -4
- package/dist/engine/budget.js +3 -3
- package/dist/engine/budget.js.map +1 -1
- package/dist/engine/loop.d.ts +7 -0
- package/dist/engine/loop.js +102 -6
- package/dist/engine/loop.js.map +1 -1
- package/dist/engine/spec.d.ts +18 -2
- package/dist/engine/spec.js.map +1 -1
- package/dist/engine/tracer.d.ts +11 -0
- package/dist/engine/tracer.js +25 -12
- package/dist/engine/tracer.js.map +1 -1
- package/dist/engine/turn.d.ts +25 -3
- package/dist/engine/turn.js +63 -4
- package/dist/engine/turn.js.map +1 -1
- package/dist/engine/types.d.ts +28 -1
- package/dist/engine/types.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/anthropic.js +28 -2
- package/dist/integrations/anthropic.js.map +1 -1
- package/dist/integrations/mcp.d.ts +9 -1
- package/dist/integrations/mcp.js +81 -19
- package/dist/integrations/mcp.js.map +1 -1
- package/dist/integrations/metrics.js +84 -86
- package/dist/integrations/metrics.js.map +1 -1
- package/dist/integrations/openai.js +21 -0
- package/dist/integrations/openai.js.map +1 -1
- package/dist/integrations/otlp.js +15 -6
- package/dist/integrations/otlp.js.map +1 -1
- package/dist/runtime/run.d.ts +6 -0
- package/dist/runtime/run.js +23 -0
- package/dist/runtime/run.js.map +1 -1
- package/dist/store/fsStore.d.ts +2 -1
- package/dist/store/fsStore.js +15 -4
- package/dist/store/fsStore.js.map +1 -1
- package/dist/store/sqliteStore.js +7 -5
- package/dist/store/sqliteStore.js.map +1 -1
- package/dist/store/store.d.ts +17 -1
- package/dist/store/store.js +3 -2
- package/dist/store/store.js.map +1 -1
- package/dist/toolkit/asset.d.ts +3 -2
- package/dist/toolkit/asset.js +11 -2
- package/dist/toolkit/asset.js.map +1 -1
- package/dist/toolkit/module.d.ts +3 -2
- package/dist/toolkit/module.js +3 -0
- package/dist/toolkit/module.js.map +1 -1
- package/dist/toolkit/skill.js +46 -8
- package/dist/toolkit/skill.js.map +1 -1
- package/dist/toolkit/subagent.js +26 -1
- package/dist/toolkit/subagent.js.map +1 -1
- package/dist/toolkit/tool.d.ts +6 -0
- package/dist/toolkit/tool.js +1 -0
- package/dist/toolkit/tool.js.map +1 -1
- package/dist/transport/async.d.ts +69 -1
- package/dist/transport/async.js +225 -10
- package/dist/transport/async.js.map +1 -1
- package/dist/transport/http.d.ts +5 -0
- package/dist/transport/http.js +74 -2
- package/dist/transport/http.js.map +1 -1
- package/dist/transport/scheduler.js +33 -2
- package/dist/transport/scheduler.js.map +1 -1
- package/package.json +8 -4
package/dist/toolkit/tool.d.ts
CHANGED
|
@@ -27,6 +27,12 @@ export interface ToolSpec<S extends JsonSchema = JsonSchema> {
|
|
|
27
27
|
schema: S;
|
|
28
28
|
/** strict 参数校验(透传给 Anthropic 的 strict 模式) */
|
|
29
29
|
strict?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* 人工审批闸(HITL):`'required'` 时该工具的每次调用都先挂起等审批
|
|
32
|
+
* (回合级全有或全无,见 `AgentTool.approval`);批准/拒绝经
|
|
33
|
+
* `AsyncRunner.approve` / `POST /tasks/<id>/approve` 到达。
|
|
34
|
+
*/
|
|
35
|
+
approval?: 'required';
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
32
38
|
* 方法装饰器:登记 spec。被装饰方法入参即结构化 tool input,
|
package/dist/toolkit/tool.js
CHANGED
|
@@ -29,6 +29,7 @@ function buildTool(instance, key, spec) {
|
|
|
29
29
|
description: spec.description,
|
|
30
30
|
inputSchema: spec.schema,
|
|
31
31
|
...(spec.strict ? { strict: true } : {}),
|
|
32
|
+
...(spec.approval ? { approval: spec.approval } : {}),
|
|
32
33
|
run: (input) => Reflect.apply(instance[key], instance, [input]),
|
|
33
34
|
};
|
|
34
35
|
}
|
package/dist/toolkit/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/toolkit/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/toolkit/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAsCxF,sDAAsD;AACtD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAsB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,IAAI,CAA6C,IAAiB;IAChF,OAAO,CACL,KAAgD,EAChD,OAAmC,EAC7B,EAAE;QACR,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,qDAAqD;QACrD,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAgB,CAAC,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CACrE,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB,EAAE,GAAoB,EAAE,IAAc;IACvE,OAAO;QACL,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,MAAM;QACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,EAAE,CAAC,KAAc,EAAE,EAAE,CACtB,OAAO,CAAC,KAAK,CACV,QAAqE,CAAC,GAAG,CAAC,EAC3E,QAAQ,EACR,CAAC,KAAK,CAAC,CACR;KACJ,CAAC;AACJ,CAAC"}
|
|
@@ -8,6 +8,8 @@ import type { MaybePromise, TaskRecord, TaskStore } from '../store/store.js';
|
|
|
8
8
|
* Agentia —— 异步任务宿主(spec §6.3 异步 / §6.5 确定性 / §6.6 换宿主不换语义)。
|
|
9
9
|
*
|
|
10
10
|
* - submit 即回(queued),后台驱动状态机 queued → running → succeeded/failed;
|
|
11
|
+
* 工具标了 `approval: 'required'` 时 run 可在回合间挂起为 **awaiting_approval**
|
|
12
|
+
* (HITL:非终态、不占并发槽、不触发 TaskSink.onFinished),`approve()` 给齐决定后恢复;
|
|
11
13
|
* - **at-least-once 去重**:同一 idempotencyKey 重复 submit,若上一任务仍在
|
|
12
14
|
* queued/running/succeeded 则直接返回既有记录,不重复执行(失败可重试新任务);
|
|
13
15
|
* - run 记录落 TaskStore(v1 InMemoryTaskStore),trace 随 result 一同保留;
|
|
@@ -30,9 +32,36 @@ import type { MaybePromise, TaskRecord, TaskStore } from '../store/store.js';
|
|
|
30
32
|
export interface TaskSink {
|
|
31
33
|
onFinished(rec: TaskRecord): void | Promise<void>;
|
|
32
34
|
}
|
|
35
|
+
/** `approve` 的入参:一批 tool_use_id → 批准/拒绝(理由可选) */
|
|
36
|
+
export type ApprovalDecisions = Record<string, {
|
|
37
|
+
approved: boolean;
|
|
38
|
+
reason?: string;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* `approve` 的失败:带 HTTP 语义的状态码(404 = 任务不存在,409 = 任务当前不在
|
|
42
|
+
* `awaiting_approval` 状态),HTTP 宿主据此回对应响应。
|
|
43
|
+
* module 级 export —— 不进公共导出面(纯宿主内部实现细节)。
|
|
44
|
+
*/
|
|
45
|
+
export declare class TaskApproveError extends Error {
|
|
46
|
+
readonly status: 404 | 409;
|
|
47
|
+
constructor(status: 404 | 409, message: string);
|
|
48
|
+
}
|
|
33
49
|
export interface AsyncRunnerOptions {
|
|
34
50
|
client?: ModelClient;
|
|
35
51
|
store?: TaskStore;
|
|
52
|
+
/**
|
|
53
|
+
* 会话历史 store(C4):配上之后,任务 `options.sessionId`(可序列化的会话引用)
|
|
54
|
+
* 在执行前被换成 `RunAppOptions.session`(store 实例 + id)注入 run ——
|
|
55
|
+
* 这是异步宿主上会话的**正式通道**(store 实例不可序列化,所以任务里只带 id、
|
|
56
|
+
* 实例由 runner 持有;同步宿主没有这一步,会话走程序内 `RunAppOptions.session`)。
|
|
57
|
+
*
|
|
58
|
+
* 不配它而任务带了 `sessionId` ⇒ submit 当场抛 `TaskInputError`(响亮失败,
|
|
59
|
+
* 不静默降级成「没有会话」)。
|
|
60
|
+
*/
|
|
61
|
+
sessionStore?: {
|
|
62
|
+
load(sessionId: string): MessageParam[] | Promise<MessageParam[]>;
|
|
63
|
+
append(sessionId: string, messages: MessageParam[]): void | Promise<void>;
|
|
64
|
+
};
|
|
36
65
|
/** 同时执行的任务上限;缺省不限。超出部分排队等槽位(状态保持 queued) */
|
|
37
66
|
concurrency?: number;
|
|
38
67
|
/** 任务完成回调(进程内);见 TaskSink */
|
|
@@ -47,6 +76,16 @@ export interface AsyncRunnerOptions {
|
|
|
47
76
|
* 槽位无论如何立即回收;被放弃且仍在跑的任务会让实际并发短暂高于 concurrency。
|
|
48
77
|
*/
|
|
49
78
|
runTimeoutMs?: number;
|
|
79
|
+
/**
|
|
80
|
+
* 审批等待超时(毫秒,HITL);缺省 0 = 不限(一直等人)。
|
|
81
|
+
*
|
|
82
|
+
* **惰性判定,不起定时器**:`approve` / `poll` / `resumePending` 读到一个
|
|
83
|
+
* `awaiting_approval` 任务时,若它挂起已超过该值,框架自动把**全部待决项**写成
|
|
84
|
+
* 「denied,reason: '审批超时'」并恢复执行(模型收到拒绝理由,可自行换路)。
|
|
85
|
+
* 也就是说超时只在「有人读它」时生效 —— 没人读的任务不会自己动(进程里不养定时器,
|
|
86
|
+
* 崩溃/重启也不依赖任何在飞回调)。
|
|
87
|
+
*/
|
|
88
|
+
approvalTimeoutMs?: number;
|
|
50
89
|
}
|
|
51
90
|
/** resumePending 的启动扫描选项 */
|
|
52
91
|
export interface ResumePendingOptions {
|
|
@@ -75,8 +114,10 @@ export declare class AsyncRunner {
|
|
|
75
114
|
/** 本进程标识:写进认领的 TaskRecord.ownerId,供 resumePending 区分他我 */
|
|
76
115
|
readonly ownerId: string;
|
|
77
116
|
private readonly client;
|
|
117
|
+
private readonly sessionStore;
|
|
78
118
|
private readonly concurrency;
|
|
79
119
|
private readonly runTimeoutMs;
|
|
120
|
+
private readonly approvalTimeoutMs;
|
|
80
121
|
private running;
|
|
81
122
|
private readonly waitQueue;
|
|
82
123
|
/** 已受理但未达终态的任务数(queued + running)—— /healthz 与 drain 共用 */
|
|
@@ -100,6 +141,29 @@ export declare class AsyncRunner {
|
|
|
100
141
|
poll(taskId: string): MaybePromise<TaskRecord | undefined>;
|
|
101
142
|
byIdempotency(key: string): MaybePromise<TaskRecord | undefined>;
|
|
102
143
|
list(): MaybePromise<TaskRecord[]>;
|
|
144
|
+
/**
|
|
145
|
+
* 审批一个处于 `awaiting_approval` 的任务(HITL)。
|
|
146
|
+
*
|
|
147
|
+
* - **逐 tool_use_id 幂等**:已存在的决定不覆盖(第一次决定赢)—— 重复提交 /
|
|
148
|
+
* 并发点击不会推翻已有决定,也不会让恢复段重复执行;
|
|
149
|
+
* - **并发重入共享在飞那次**:同一任务的并发 approve(双击「批准」/两个审批人
|
|
150
|
+
* 同时批)返回同一个 Promise —— 否则两个调用都在对方落库前读到
|
|
151
|
+
* `awaiting_approval`、各自判「决定齐了」、**各派发一次**(同一任务重复执行,
|
|
152
|
+
* 与 resumePending 的闸门同一 bug 类)。被共享的那次覆盖不到的决定不丢:
|
|
153
|
+
* 调用方从返回的记录看到任务仍在等待,重试即并入;
|
|
154
|
+
* - 决定齐了就恢复:`status` 回 `running`、**先落库再派发**(与 `#redispatch`
|
|
155
|
+
* 同一条纪律 —— 没落库就恢复,进程崩在窗口里会丢决定);恢复段带着
|
|
156
|
+
* `rec.approvals` 与扩展后的消息历史(`rec.spec.messages`,末尾是含未决
|
|
157
|
+
* tool_use 的那条 assistant 消息)重进引擎循环;
|
|
158
|
+
* - 决定**没**齐:只把本批决定落库,任务继续等(可能多轮审批);
|
|
159
|
+
* - 返回当前 TaskRecord(快照)。任务不存在抛 404 语义、状态不对抛 409 语义
|
|
160
|
+
* 的 `TaskApproveError`。
|
|
161
|
+
*/
|
|
162
|
+
approve(taskId: string, decisions: ApprovalDecisions, opts?: {
|
|
163
|
+
decidedBy?: string;
|
|
164
|
+
}): Promise<TaskRecord>;
|
|
165
|
+
/** 同一任务的在飞审批(approve 的重入闸,见上)。 */
|
|
166
|
+
private readonly inflightApprovals;
|
|
103
167
|
/** 已受理但未达终态的任务数(queued + running)—— 健康检查与 drain 共用同一口径 */
|
|
104
168
|
get inFlight(): number;
|
|
105
169
|
/** 是否已进入优雅停机(drain 之后为 true)—— HTTP 宿主据此对新单回 503 */
|
|
@@ -115,7 +179,7 @@ export declare class AsyncRunner {
|
|
|
115
179
|
drain(opts?: {
|
|
116
180
|
timeoutMs?: number;
|
|
117
181
|
}): Promise<boolean>;
|
|
118
|
-
/**
|
|
182
|
+
/** 等到任务终态;超时抛错。`awaiting_approval` 不是终态 —— 继续等(人在路上)。 */
|
|
119
183
|
awaitTask(taskId: string, opts?: {
|
|
120
184
|
timeoutMs?: number;
|
|
121
185
|
intervalMs?: number;
|
|
@@ -125,6 +189,10 @@ export declare class AsyncRunner {
|
|
|
125
189
|
* (running 视为进程中断)。返回重派数量(异步 store 下返回 Promise<number>)。
|
|
126
190
|
* 幂等键去重照常生效。
|
|
127
191
|
*
|
|
192
|
+
* `awaiting_approval`(HITL)**不捡**:它在等人、不是孤儿(进程没死也可能挂着)。
|
|
193
|
+
* 但读到它会做**惰性超时判定**:配了 `approvalTimeoutMs` 且已超时的挂起任务
|
|
194
|
+
* 自动全拒(`denied, reason: '审批超时'`)并重派。
|
|
195
|
+
*
|
|
128
196
|
* **认领先落库、再派发**(见 `#redispatch`);异步 store 的认领落库失败会让本方法
|
|
129
197
|
* reject —— 宁可让调用方看见「续跑没做」,也不要静默放出一批会被重复执行的任务。
|
|
130
198
|
*
|
package/dist/transport/async.js
CHANGED
|
@@ -1,16 +1,31 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { classifyError } from '../engine/errors.js';
|
|
3
|
-
import { normalizeMessages } from '../engine/spec.js';
|
|
3
|
+
import { normalizeMessages, TaskInputError } from '../engine/spec.js';
|
|
4
4
|
import { InMemoryTaskStore, isThenable, nextTaskId } from '../store/store.js';
|
|
5
5
|
import { combineSignals, releaseCombinedSignal } from '../core/abort.js';
|
|
6
|
+
/**
|
|
7
|
+
* `approve` 的失败:带 HTTP 语义的状态码(404 = 任务不存在,409 = 任务当前不在
|
|
8
|
+
* `awaiting_approval` 状态),HTTP 宿主据此回对应响应。
|
|
9
|
+
* module 级 export —— 不进公共导出面(纯宿主内部实现细节)。
|
|
10
|
+
*/
|
|
11
|
+
export class TaskApproveError extends Error {
|
|
12
|
+
status;
|
|
13
|
+
constructor(status, message) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.name = 'TaskApproveError';
|
|
16
|
+
this.status = status;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
6
19
|
export class AsyncRunner {
|
|
7
20
|
app;
|
|
8
21
|
store;
|
|
9
22
|
/** 本进程标识:写进认领的 TaskRecord.ownerId,供 resumePending 区分他我 */
|
|
10
23
|
ownerId;
|
|
11
24
|
client;
|
|
25
|
+
sessionStore;
|
|
12
26
|
concurrency;
|
|
13
27
|
runTimeoutMs;
|
|
28
|
+
approvalTimeoutMs;
|
|
14
29
|
running = 0;
|
|
15
30
|
waitQueue = [];
|
|
16
31
|
/** 已受理但未达终态的任务数(queued + running)—— /healthz 与 drain 共用 */
|
|
@@ -24,6 +39,7 @@ export class AsyncRunner {
|
|
|
24
39
|
this.app = app;
|
|
25
40
|
this.store = opts.store ?? new InMemoryTaskStore();
|
|
26
41
|
this.client = opts.client;
|
|
42
|
+
this.sessionStore = opts.sessionStore;
|
|
27
43
|
this.taskSinks = opts.taskSinks ?? [];
|
|
28
44
|
this.concurrency = opts.concurrency ?? Number.POSITIVE_INFINITY;
|
|
29
45
|
if (!(this.concurrency > 0)) {
|
|
@@ -35,6 +51,11 @@ export class AsyncRunner {
|
|
|
35
51
|
// (且 NaN 会绕过 `< 0` 检查静默通过)。要「不限」请传 0(缺省)。
|
|
36
52
|
throw new Error(`runTimeoutMs 必须为 ≥ 0 的有限数(0 = 不限),收到 ${opts.runTimeoutMs}`);
|
|
37
53
|
}
|
|
54
|
+
this.approvalTimeoutMs = opts.approvalTimeoutMs ?? 0;
|
|
55
|
+
if (!Number.isFinite(this.approvalTimeoutMs) || this.approvalTimeoutMs < 0) {
|
|
56
|
+
// 同 runTimeoutMs:非有限数会让「已挂起多久」的比较静默失效或立即超时
|
|
57
|
+
throw new Error(`approvalTimeoutMs 必须为 ≥ 0 的有限数(0 = 不限),收到 ${opts.approvalTimeoutMs}`);
|
|
58
|
+
}
|
|
38
59
|
this.ownerId = `p${process.pid}-${randomUUID().slice(0, 8)}`;
|
|
39
60
|
}
|
|
40
61
|
/**
|
|
@@ -49,6 +70,12 @@ export class AsyncRunner {
|
|
|
49
70
|
throw new Error('runner 正在优雅停机,不再接受新任务');
|
|
50
71
|
}
|
|
51
72
|
const messages = normalizeMessages(input);
|
|
73
|
+
if (opts.options?.sessionId !== undefined && this.sessionStore === undefined) {
|
|
74
|
+
// 响亮失败:调用方明着要会话语义,静默降级成「没有会话」是最难查的那种错。
|
|
75
|
+
// 注意 import 的是 spec.js 的 TaskInputError —— HTTP 宿主据此回 400(调用方的错)。
|
|
76
|
+
throw new TaskInputError('任务带了 options.sessionId,但本 runner 未配 sessionStore —— 会话历史接不上;' +
|
|
77
|
+
'给 AsyncRunner 传 sessionStore,或去掉 sessionId');
|
|
78
|
+
}
|
|
52
79
|
if (opts.idempotencyKey) {
|
|
53
80
|
const existing = this.store.byIdempotency(opts.idempotencyKey);
|
|
54
81
|
if (isThenable(existing)) {
|
|
@@ -90,7 +117,11 @@ export class AsyncRunner {
|
|
|
90
117
|
}
|
|
91
118
|
/** 查任务当前记录(异步 store 下返回 Promise,调用方 await) */
|
|
92
119
|
poll(taskId) {
|
|
93
|
-
|
|
120
|
+
const rec = this.store.get(taskId);
|
|
121
|
+
// 惰性审批超时(HITL):读到 awaiting 记录时顺手判定 —— 到点就自动全拒并重派
|
|
122
|
+
if (isThenable(rec))
|
|
123
|
+
return rec.then((r) => this.#lazyExpireApproval(r));
|
|
124
|
+
return this.#lazyExpireApproval(rec);
|
|
94
125
|
}
|
|
95
126
|
byIdempotency(key) {
|
|
96
127
|
return this.store.byIdempotency(key);
|
|
@@ -98,6 +129,74 @@ export class AsyncRunner {
|
|
|
98
129
|
list() {
|
|
99
130
|
return this.store.list();
|
|
100
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* 审批一个处于 `awaiting_approval` 的任务(HITL)。
|
|
134
|
+
*
|
|
135
|
+
* - **逐 tool_use_id 幂等**:已存在的决定不覆盖(第一次决定赢)—— 重复提交 /
|
|
136
|
+
* 并发点击不会推翻已有决定,也不会让恢复段重复执行;
|
|
137
|
+
* - **并发重入共享在飞那次**:同一任务的并发 approve(双击「批准」/两个审批人
|
|
138
|
+
* 同时批)返回同一个 Promise —— 否则两个调用都在对方落库前读到
|
|
139
|
+
* `awaiting_approval`、各自判「决定齐了」、**各派发一次**(同一任务重复执行,
|
|
140
|
+
* 与 resumePending 的闸门同一 bug 类)。被共享的那次覆盖不到的决定不丢:
|
|
141
|
+
* 调用方从返回的记录看到任务仍在等待,重试即并入;
|
|
142
|
+
* - 决定齐了就恢复:`status` 回 `running`、**先落库再派发**(与 `#redispatch`
|
|
143
|
+
* 同一条纪律 —— 没落库就恢复,进程崩在窗口里会丢决定);恢复段带着
|
|
144
|
+
* `rec.approvals` 与扩展后的消息历史(`rec.spec.messages`,末尾是含未决
|
|
145
|
+
* tool_use 的那条 assistant 消息)重进引擎循环;
|
|
146
|
+
* - 决定**没**齐:只把本批决定落库,任务继续等(可能多轮审批);
|
|
147
|
+
* - 返回当前 TaskRecord(快照)。任务不存在抛 404 语义、状态不对抛 409 语义
|
|
148
|
+
* 的 `TaskApproveError`。
|
|
149
|
+
*/
|
|
150
|
+
async approve(taskId, decisions, opts = {}) {
|
|
151
|
+
const inflight = this.inflightApprovals.get(taskId);
|
|
152
|
+
if (inflight)
|
|
153
|
+
return inflight;
|
|
154
|
+
const run = this.#approveInner(taskId, decisions, opts).finally(() => {
|
|
155
|
+
this.inflightApprovals.delete(taskId);
|
|
156
|
+
});
|
|
157
|
+
this.inflightApprovals.set(taskId, run);
|
|
158
|
+
return run;
|
|
159
|
+
}
|
|
160
|
+
/** 同一任务的在飞审批(approve 的重入闸,见上)。 */
|
|
161
|
+
inflightApprovals = new Map();
|
|
162
|
+
async #approveInner(taskId, decisions, opts) {
|
|
163
|
+
const rec = await this.store.get(taskId);
|
|
164
|
+
if (!rec)
|
|
165
|
+
throw new TaskApproveError(404, `task 不存在: ${taskId}`);
|
|
166
|
+
if (rec.status !== 'awaiting_approval') {
|
|
167
|
+
throw new TaskApproveError(409, `task ${taskId} 当前状态为 ${rec.status},只有 awaiting_approval 才能审批`);
|
|
168
|
+
}
|
|
169
|
+
const now = Date.now();
|
|
170
|
+
rec.approvals ??= {};
|
|
171
|
+
for (const [id, d] of Object.entries(decisions)) {
|
|
172
|
+
if (rec.approvals[id])
|
|
173
|
+
continue; // 逐 id 幂等:第一次决定赢
|
|
174
|
+
rec.approvals[id] = {
|
|
175
|
+
approved: d.approved,
|
|
176
|
+
...(d.reason !== undefined ? { reason: d.reason } : {}),
|
|
177
|
+
...(opts.decidedBy !== undefined ? { decidedBy: opts.decidedBy } : {}),
|
|
178
|
+
decidedAt: now,
|
|
179
|
+
...(rec.approvalPendingSince !== undefined
|
|
180
|
+
? { requestedAt: rec.approvalPendingSince }
|
|
181
|
+
: {}),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// 惰性审批超时:人的决定先并入(先到先赢),仍空着的待决项由超时兜底成 deny
|
|
185
|
+
if (this.#approvalExpired(rec, now))
|
|
186
|
+
this.#fillTimeoutDenials(rec, now);
|
|
187
|
+
const complete = (rec.pendingApprovals ?? []).every((id) => rec.approvals?.[id] !== undefined);
|
|
188
|
+
if (complete) {
|
|
189
|
+
rec.status = 'running'; // 由 #executeInner 接管(acquireSlot → 恢复执行)
|
|
190
|
+
rec.ownerId = this.ownerId;
|
|
191
|
+
}
|
|
192
|
+
// 先落库再派发 —— **真纪律,不是注释**:save 失败(同步抛 / 异步 reject)就
|
|
193
|
+
// 绝不恢复执行(落不了库的决定不算决定:进程崩在窗口里会丢决定,重启后把
|
|
194
|
+
// 同一件事再判一次、可能改判)。调用方拿到 reject,重试即可。
|
|
195
|
+
await this.store.save(rec);
|
|
196
|
+
if (complete)
|
|
197
|
+
void this.#execute(rec);
|
|
198
|
+
return { ...rec };
|
|
199
|
+
}
|
|
101
200
|
/** 已受理但未达终态的任务数(queued + running)—— 健康检查与 drain 共用同一口径 */
|
|
102
201
|
get inFlight() {
|
|
103
202
|
return this.active;
|
|
@@ -139,6 +238,69 @@ export class AsyncRunner {
|
|
|
139
238
|
clearTimeout(timer);
|
|
140
239
|
}
|
|
141
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* 审批超时判定(HITL,**惰性**:不起定时器,只在 approve / poll / resumePending
|
|
243
|
+
* 读到 awaiting 记录时判)。基准是 `approvalPendingSince`(挂起时刻,挂起时落库);
|
|
244
|
+
* 缺失时按 startedAt → createdAt 退化(容忍手工塞进来的记录)。
|
|
245
|
+
*/
|
|
246
|
+
#approvalExpired(rec, now) {
|
|
247
|
+
return (this.approvalTimeoutMs > 0 &&
|
|
248
|
+
rec.status === 'awaiting_approval' &&
|
|
249
|
+
now - (rec.approvalPendingSince ?? rec.startedAt ?? rec.createdAt) > this.approvalTimeoutMs);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* 超时自动拒绝:**仍空着的**待决项补上 deny(已有人工决定的不覆盖 —— 第一次决定赢)。
|
|
253
|
+
* 决定写到 `rec.approvals`,由调用方负责落库与重派。
|
|
254
|
+
*/
|
|
255
|
+
#fillTimeoutDenials(rec, now) {
|
|
256
|
+
rec.approvals ??= {};
|
|
257
|
+
for (const id of rec.pendingApprovals ?? []) {
|
|
258
|
+
if (rec.approvals[id])
|
|
259
|
+
continue;
|
|
260
|
+
rec.approvals[id] = {
|
|
261
|
+
approved: false,
|
|
262
|
+
reason: '审批超时',
|
|
263
|
+
decidedBy: 'system',
|
|
264
|
+
decidedAt: now,
|
|
265
|
+
...(rec.approvalPendingSince !== undefined
|
|
266
|
+
? { requestedAt: rec.approvalPendingSince }
|
|
267
|
+
: {}),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* 惰性超时扫描(HITL):读到一个已超时的 awaiting 任务 ⇒ 自动全拒 + 落库 + 重派。
|
|
273
|
+
* 与 #redispatch 同一条纪律:**先落库再派发**(没落库就恢复,进程崩在窗口里会
|
|
274
|
+
* 丢掉超时决定、把同一件事再判一次)。
|
|
275
|
+
*/
|
|
276
|
+
#expireAndResume(rec, now) {
|
|
277
|
+
this.#fillTimeoutDenials(rec, now);
|
|
278
|
+
rec.status = 'running';
|
|
279
|
+
rec.ownerId = this.ownerId;
|
|
280
|
+
let saved;
|
|
281
|
+
try {
|
|
282
|
+
saved = this.store.save(rec);
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return; // 同步落库失败则不派发(与下一条异步分支同纪律:先落库再派发)
|
|
286
|
+
}
|
|
287
|
+
if (isThenable(saved)) {
|
|
288
|
+
// 落库失败则不派发(认领没落地就派发 = 重新打开重复执行窗口)
|
|
289
|
+
saved.then(() => void this.#execute(rec)).catch(() => undefined);
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
void this.#execute(rec);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/** poll 的读路径钩子:读到 awaiting 且已超时 ⇒ 惰性判掉(见 #approvalExpired) */
|
|
296
|
+
#lazyExpireApproval(rec) {
|
|
297
|
+
if (!rec)
|
|
298
|
+
return rec;
|
|
299
|
+
const now = Date.now();
|
|
300
|
+
if (this.#approvalExpired(rec, now))
|
|
301
|
+
this.#expireAndResume(rec, now);
|
|
302
|
+
return rec;
|
|
303
|
+
}
|
|
142
304
|
/** 任务终态唤醒:在 #execute 的统一出口调用,覆盖成功 / 失败 / 采纳既有结果各路径 */
|
|
143
305
|
#notifyTaskDone(taskId) {
|
|
144
306
|
const waiters = this.#taskWaiters.get(taskId);
|
|
@@ -183,7 +345,7 @@ export class AsyncRunner {
|
|
|
183
345
|
for (const w of waiters)
|
|
184
346
|
w();
|
|
185
347
|
}
|
|
186
|
-
/**
|
|
348
|
+
/** 等到任务终态;超时抛错。`awaiting_approval` 不是终态 —— 继续等(人在路上)。 */
|
|
187
349
|
async awaitTask(taskId, opts = {}) {
|
|
188
350
|
const timeoutMs = opts.timeoutMs ?? 30_000;
|
|
189
351
|
// intervalMs 现在只是**兜底轮询**间隔,不是主路径:本进程把任务写到终态会主动唤醒
|
|
@@ -193,7 +355,8 @@ export class AsyncRunner {
|
|
|
193
355
|
const intervalMs = opts.intervalMs ?? 250;
|
|
194
356
|
const deadline = Date.now() + timeoutMs;
|
|
195
357
|
for (;;) {
|
|
196
|
-
|
|
358
|
+
// 走 poll 而不是裸 store.get:惰性审批超时的判定挂在那里(HITL)
|
|
359
|
+
const rec = await this.poll(taskId);
|
|
197
360
|
if (!rec)
|
|
198
361
|
throw new Error(`task 不存在: ${taskId}`);
|
|
199
362
|
if (rec.status === 'succeeded' || rec.status === 'failed')
|
|
@@ -209,6 +372,10 @@ export class AsyncRunner {
|
|
|
209
372
|
* (running 视为进程中断)。返回重派数量(异步 store 下返回 Promise<number>)。
|
|
210
373
|
* 幂等键去重照常生效。
|
|
211
374
|
*
|
|
375
|
+
* `awaiting_approval`(HITL)**不捡**:它在等人、不是孤儿(进程没死也可能挂着)。
|
|
376
|
+
* 但读到它会做**惰性超时判定**:配了 `approvalTimeoutMs` 且已超时的挂起任务
|
|
377
|
+
* 自动全拒(`denied, reason: '审批超时'`)并重派。
|
|
378
|
+
*
|
|
212
379
|
* **认领先落库、再派发**(见 `#redispatch`);异步 store 的认领落库失败会让本方法
|
|
213
380
|
* reject —— 宁可让调用方看见「续跑没做」,也不要静默放出一批会被重复执行的任务。
|
|
214
381
|
*
|
|
@@ -270,6 +437,16 @@ export class AsyncRunner {
|
|
|
270
437
|
*/
|
|
271
438
|
#redispatch(recs, staleAfterMs) {
|
|
272
439
|
const now = Date.now();
|
|
440
|
+
// 惰性审批超时扫描(HITL):awaiting_approval **不捡走续跑**(它在等人,不是
|
|
441
|
+
// 孤儿 —— 崩溃续跑语义不适用于「等审批」),但读到它时顺手判超时:
|
|
442
|
+
// 到点自动全拒并重派(框架补的 deny 决定先进 store,再进引擎)。
|
|
443
|
+
let expired = 0;
|
|
444
|
+
for (const rec of recs) {
|
|
445
|
+
if (rec.status !== 'awaiting_approval' || !this.#approvalExpired(rec, now))
|
|
446
|
+
continue;
|
|
447
|
+
expired++;
|
|
448
|
+
this.#expireAndResume(rec, now);
|
|
449
|
+
}
|
|
273
450
|
const pending = recs.filter((r) => {
|
|
274
451
|
if (r.status !== 'queued' && r.status !== 'running')
|
|
275
452
|
return false;
|
|
@@ -296,8 +473,8 @@ export class AsyncRunner {
|
|
|
296
473
|
}
|
|
297
474
|
}
|
|
298
475
|
if (claims.length === 0)
|
|
299
|
-
return pending.length;
|
|
300
|
-
return Promise.all(claims).then(() => pending.length);
|
|
476
|
+
return pending.length + expired;
|
|
477
|
+
return Promise.all(claims).then(() => pending.length + expired);
|
|
301
478
|
}
|
|
302
479
|
/**
|
|
303
480
|
* 在飞计数包裹层:#executeInner 是状态机主体,这里只负责 active 计数与排空通知。
|
|
@@ -313,11 +490,14 @@ export class AsyncRunner {
|
|
|
313
490
|
// 通知在飞递减**之前**:drain() 返回时保证「任务已终态 + 回调已发完」。
|
|
314
491
|
// 内层 finally 保证回调万一抛错(理论上被吞掉)也不泄漏在飞计数。
|
|
315
492
|
try {
|
|
316
|
-
|
|
493
|
+
// HITL:挂起不是终态 —— onFinished 的承诺是「任务达终态」,对它不开火
|
|
494
|
+
if (rec.status !== 'awaiting_approval')
|
|
495
|
+
await this.#notifySinks(rec);
|
|
317
496
|
}
|
|
318
497
|
finally {
|
|
319
498
|
this.active--;
|
|
320
|
-
// 任务已达终态并落库 → 唤醒 awaitTask 的等待者(放在递减之后,语义与 drain
|
|
499
|
+
// 任务已达终态并落库 → 唤醒 awaitTask 的等待者(放在递减之后,语义与 drain 一致)。
|
|
500
|
+
// 挂起也唤醒:等待者看一眼状态继续等(awaiting_approval 不是终态),无副作用。
|
|
321
501
|
this.#notifyTaskDone(rec.taskId);
|
|
322
502
|
this.#notifyDrained();
|
|
323
503
|
}
|
|
@@ -367,12 +547,22 @@ export class AsyncRunner {
|
|
|
367
547
|
rec.startedAt = Date.now();
|
|
368
548
|
await this.store.save(rec);
|
|
369
549
|
try {
|
|
550
|
+
// 会话注入(C4 的异步通道):sessionId 是可序列化的引用,store 实例由
|
|
551
|
+
// runner 持有 —— 执行前在这里换成 RunAppOptions.session。resumed 记录
|
|
552
|
+
// 绕过 submit 的入口检查,所以「带了 sessionId 却没配 sessionStore」
|
|
553
|
+
// 在本路径也要响亮失败(不静默降级成「没有会话」)。
|
|
554
|
+
if (rec.spec.options?.sessionId !== undefined && this.sessionStore === undefined) {
|
|
555
|
+
throw new Error(`任务 ${rec.taskId} 带了 options.sessionId,但本 runner 未配 sessionStore`);
|
|
556
|
+
}
|
|
370
557
|
// runTimeoutMs 到点即 abort(对尊重 signal 的客户端是真中止);与调用方
|
|
371
558
|
// 可能传入的 signal 合成,任一触发都中止本次 run。
|
|
372
559
|
const timeoutAc = new AbortController();
|
|
373
560
|
const combined = combineSignals(rec.spec.options?.signal, timeoutAc.signal);
|
|
374
561
|
const callOpts = {
|
|
375
562
|
...(rec.spec.options ?? {}),
|
|
563
|
+
...(rec.spec.options?.sessionId !== undefined && this.sessionStore !== undefined
|
|
564
|
+
? { session: { store: this.sessionStore, id: rec.spec.options.sessionId } }
|
|
565
|
+
: {}),
|
|
376
566
|
// 显式 undefined ≠ 不传(exactOptionalPropertyTypes):无幂等键时不落这个键
|
|
377
567
|
...(rec.idempotencyKey !== undefined ? { idempotencyKey: rec.idempotencyKey } : {}),
|
|
378
568
|
...(rec.spec.options?.client !== undefined
|
|
@@ -380,15 +570,38 @@ export class AsyncRunner {
|
|
|
380
570
|
: this.client !== undefined
|
|
381
571
|
? { client: this.client }
|
|
382
572
|
: {}),
|
|
573
|
+
// HITL 恢复段:审批决定随任务落库,重跑时原样进引擎(进程重启不丢)
|
|
574
|
+
...(rec.approvals !== undefined ? { approvals: rec.approvals } : {}),
|
|
575
|
+
// 恢复段的 trace 是一棵**新树**,经 traceContext link 挂到上一段 runId
|
|
576
|
+
// (spec §9.2 的入站关联机制)——「挂起段 → 恢复段 → …」在观测后端连成一条链。
|
|
577
|
+
// 判定依据:有决定且已有上一段 runId = 本次是恢复执行;首次执行两者皆无。
|
|
578
|
+
...(rec.approvals !== undefined && rec.runId !== undefined
|
|
579
|
+
? { traceContext: { traceId: rec.runId } }
|
|
580
|
+
: {}),
|
|
383
581
|
rethrow: false, // 硬失败也以 failed 记录落库
|
|
384
582
|
signal: combined,
|
|
385
583
|
};
|
|
386
584
|
try {
|
|
387
585
|
const out = await this.#raceTimeout(this.app.run(rec.spec.messages, callOpts), rec.taskId, () => timeoutAc.abort());
|
|
388
586
|
rec.runId = out.run.runId;
|
|
389
|
-
rec.status = out.run.status;
|
|
390
587
|
rec.result = out.result;
|
|
391
588
|
rec.error = out.result.error;
|
|
589
|
+
if (out.result.stopReason === 'awaiting_approval' && out.result.suspendedMessages) {
|
|
590
|
+
// HITL 挂起:扩展后的消息历史(末尾是含未决 tool_use 的 assistant 消息)
|
|
591
|
+
// 与待决清单、挂起时刻一起落库 —— approve / 惰性超时 / 重启后都靠它们。
|
|
592
|
+
// 槽位照常释放(finally)、onFinished 不触发(#execute 的出口判断)、
|
|
593
|
+
// finishedAt 不置(下面 finally 里按状态跳过):它不是终态。
|
|
594
|
+
rec.status = 'awaiting_approval';
|
|
595
|
+
rec.spec = { ...rec.spec, messages: out.result.suspendedMessages };
|
|
596
|
+
rec.pendingApprovals = out.result.pendingApprovals;
|
|
597
|
+
rec.approvalPendingSince = Date.now();
|
|
598
|
+
}
|
|
599
|
+
else {
|
|
600
|
+
rec.status = out.run.status;
|
|
601
|
+
// 终态后清掉挂起痕迹(决定保留:审批记录是审计的一部分,随任务走)
|
|
602
|
+
rec.pendingApprovals = undefined;
|
|
603
|
+
rec.approvalPendingSince = undefined;
|
|
604
|
+
}
|
|
392
605
|
}
|
|
393
606
|
finally {
|
|
394
607
|
// 正常收尾(没有源中止)时主动摘除挂在各源上的监听器 —— 宿主级共享
|
|
@@ -402,7 +615,9 @@ export class AsyncRunner {
|
|
|
402
615
|
}
|
|
403
616
|
}
|
|
404
617
|
finally {
|
|
405
|
-
|
|
618
|
+
// HITL:挂起不是「完成」—— finishedAt 不置(等待中的任务没有结束时刻)
|
|
619
|
+
if (rec.status !== 'awaiting_approval')
|
|
620
|
+
rec.finishedAt = Date.now();
|
|
406
621
|
// 落库失败不遮罩、槽位必须释放:释放放在内层 finally,即便落库实现抛错也必达
|
|
407
622
|
try {
|
|
408
623
|
await this.#safeSave(rec);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/transport/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAoEzE,MAAM,OAAO,WAAW;IAkBH,GAAG;IAjBb,KAAK,CAAY;IAC1B,0DAA0D;IACjD,OAAO,CAAS;IACR,MAAM,CAA0B;IAChC,WAAW,CAAS;IACpB,YAAY,CAAS;IAC9B,OAAO,GAAG,CAAC,CAAC;IACH,SAAS,GAAsB,EAAE,CAAC;IACnD,2DAA2D;IACnD,MAAM,GAAG,CAAC,CAAC;IACX,QAAQ,GAAG,KAAK,CAAC;IACR,YAAY,GAAsB,EAAE,CAAC;IACtD,oDAAoD;IAC3C,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC5C,SAAS,CAAa;IAEvC,YACmB,GAAgB,EACjC,IAAI,GAAuB,EAAE;mBADZ,GAAG;QAGpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,CAAC;QAChE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACjE,yDAAyD;YACzD,0CAA0C;YAC1C,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACJ,KAAc,EACd,IAAI,GAAiF,EAAE;QAEvF,4CAA4C;QAC5C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,qDAAqD;gBACrD,sDAAsD;gBACtD,sDAAsD;gBACtD,gCAAgC;gBAChC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;iBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpD,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,yBAAyB;YACnD,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAe;YACtB,MAAM,EAAE,UAAU,EAAE;YACpB,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE;YACzE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,0DAA0D;YAC1D,qDAAqD;YACrD,gDAAgD;YAChD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChB,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;oBAAE,OAAO;gBACpE,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACtB,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5B,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxB,qCAAqC;QACrC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,MAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,0DAA0D;IAC1D,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,oDAAoD;IACpD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CAAC,IAAI,GAA2B,EAAE;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QACnC,IAAI,KAAiC,CAAC;QACtC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;gBACxB,OAAO;gBACP,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;oBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;oBACpD,kEAAkE;oBAClE,wCAAwC;oBACxC,oDAAoD;gBACtD,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,eAAe,CAAC,MAAc;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC7C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED,+CAA+C;IAC/C,aAAa,CAAC,MAAc,EAAE,SAAiB;QAC7C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,GAAS,EAAE;gBACxB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC;wBAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;wBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;gBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IACvC,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,SAAS,CACb,MAAc,EACd,IAAI,GAAgD,EAAE;QAEtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QAC3C,kDAAkD;QAClD,+DAA+D;QAC/D,6DAA6D;QAC7D,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,SAAS,CAAC;YACR,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;YACjD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,GAAG,CAAC;YACtE,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,IAAI,IAAI,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAI,GAAyB,EAAE;QAC3C,oCAAoC;QACpC,EAAE;QACF,qDAAqD;QACrD,yDAAyD;QACzD,iEAAiE;QACjE,yCAAyC;QACzC,EAAE;QACF,kDAAkD;QAClD,wCAAwC;QACxC,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;iBAChC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;iBACpD,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,cAAc,GAA2B,IAAI,CAAC;IAEtD;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,IAAkB,EAAE,YAAoB;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAClE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC,CAAC,WAAW;YACzD,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC;gBACzC,IAAI,GAAG,GAAG,KAAK,GAAG,YAAY;oBAAE,OAAO,KAAK,CAAC,CAAC,YAAY;YAC5D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,uBAAuB;YAC9C,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,uBAAuB;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,0CAA0C;gBAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC;QAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAe;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,6CAA6C;YAC7C,uCAAuC;YACvC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,qDAAqD;gBACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,YAAY,CAAC,GAAe;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACxC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAe;QACjC,yCAAyC;QACzC,oDAAoD;QACpD,IAAI,CAAC;YACH,2CAA2C;YAC3C,wDAAwD;YACxD,uDAAuD;YACvD,mCAAmC;YACnC,uDAAuD;YACvD,gDAAgD;YAChD,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACpE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAClF,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;oBACzB,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAC7B,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC5B,oCAAoC;oBACpC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;gBACvB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE3B,IAAI,CAAC;oBACH,mDAAmD;oBACnD,iCAAiC;oBACjC,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC5E,MAAM,QAAQ,GAAyB;wBACrC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;wBAC3B,2DAA2D;wBAC3D,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS;4BACxC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;4BACrC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;gCACzB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gCACzB,CAAC,CAAC,EAAE,CAAC;wBACT,OAAO,EAAE,KAAK,EAAE,oBAAoB;wBACpC,MAAM,EAAE,QAAQ;qBACjB,CAAC;oBACF,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACzC,GAAG,CAAC,MAAM,EACV,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CACxB,CAAC;wBACF,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;wBAC1B,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBAC5B,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;wBACxB,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC/B,CAAC;4BAAS,CAAC;wBACT,qCAAqC;wBACrC,qDAAqD;wBACrD,qBAAqB,CAAC,QAAQ,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBAC7B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACxB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5B,4CAA4C;gBAC5C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;wBAAS,CAAC;oBACT,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtB,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,GAAe;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAI,CAAa,EAAE,MAAc,EAAE,SAAsB;QACzE,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACrC,IAAI,KAAiC,CAAC;QACtC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;gBACxB,CAAC;gBACD,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;wBACtB,SAAS,EAAE,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,MAAM,SAAS,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC;oBACnE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACtB,kEAAkE;oBAClE,qCAAqC;gBACvC,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,YAAY;QACV,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC,CAAC,0BAA0B;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/transport/async.ts"],"names":[],"mappings":"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"}
|
package/dist/transport/http.d.ts
CHANGED
|
@@ -21,6 +21,11 @@ import type { RunStatus } from '../core/run.js';
|
|
|
21
21
|
* - POST /tasks 异步任务。body { input, idempotencyKey?, options? } →
|
|
22
22
|
* AsyncRunner.submit → 202 TaskRecord(queued,幂等键去重照常生效)。
|
|
23
23
|
* - GET /tasks/<id> 轮询任务记录 → 200 TaskRecord;不存在 → 404。
|
|
24
|
+
* - POST /tasks/<id>/approve 人工审批(HITL)。body
|
|
25
|
+
* `{ decisions: { <tool_use_id>: { approved, reason? } }, decidedBy? }`
|
|
26
|
+
* → 200 TaskRecord;任务不存在 → 404;不在 awaiting_approval 状态 → 409;
|
|
27
|
+
* body 非法 → 400。**停机中仍可用**(与 GET 轮询同理由:
|
|
28
|
+
* 挂起的任务只有人能推进,停机不该连「批准」也拒掉)。
|
|
24
29
|
* - GET /healthz 健康检查 → 200 { ok, inFlight, uptimeMs, draining };**不鉴权**
|
|
25
30
|
* (探针不该带凭据)。停机中仍回 200(进程活着),就绪与否看 draining。
|
|
26
31
|
*
|