@plurnk/plurnk-agui 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +17 -8
- package/README.md +37 -13
- package/SPEC.md +627 -268
- package/dist/AguiPlus.d.ts +24 -29
- package/dist/AguiPlus.d.ts.map +1 -1
- package/dist/AguiPlus.js +25 -36
- package/dist/AguiPlus.js.map +1 -1
- package/dist/AguiSurface.d.ts +2 -2
- package/dist/AguiSurface.d.ts.map +1 -1
- package/dist/AguiSurface.js +25 -16
- package/dist/AguiSurface.js.map +1 -1
- package/dist/AuthorizationDocuments.d.ts +33 -0
- package/dist/AuthorizationDocuments.d.ts.map +1 -0
- package/dist/AuthorizationDocuments.js +84 -0
- package/dist/AuthorizationDocuments.js.map +1 -0
- package/dist/BuiltinActions.d.ts +11 -5
- package/dist/BuiltinActions.d.ts.map +1 -1
- package/dist/BuiltinActions.js +84 -119
- package/dist/BuiltinActions.js.map +1 -1
- package/dist/EventRouter.d.ts +11 -3
- package/dist/EventRouter.d.ts.map +1 -1
- package/dist/EventRouter.js +17 -32
- package/dist/EventRouter.js.map +1 -1
- package/dist/MessageAddress.d.ts +7 -5
- package/dist/MessageAddress.d.ts.map +1 -1
- package/dist/MessageAddress.js +14 -12
- package/dist/MessageAddress.js.map +1 -1
- package/dist/Module.d.ts +5 -4
- package/dist/Module.d.ts.map +1 -1
- package/dist/Module.js +222 -83
- package/dist/Module.js.map +1 -1
- package/dist/OAuthServer.d.ts +30 -0
- package/dist/OAuthServer.d.ts.map +1 -0
- package/dist/OAuthServer.js +607 -0
- package/dist/OAuthServer.js.map +1 -0
- package/dist/Portal.d.ts +41 -9
- package/dist/Portal.d.ts.map +1 -1
- package/dist/Portal.js +497 -185
- package/dist/Portal.js.map +1 -1
- package/dist/ProposalHitl.d.ts +18 -4
- package/dist/ProposalHitl.d.ts.map +1 -1
- package/dist/ProposalHitl.js +31 -41
- package/dist/ProposalHitl.js.map +1 -1
- package/dist/RunHandler.d.ts +18 -8
- package/dist/RunHandler.d.ts.map +1 -1
- package/dist/RunHandler.js +256 -137
- package/dist/RunHandler.js.map +1 -1
- package/dist/ThreadAddress.d.ts +8 -0
- package/dist/ThreadAddress.d.ts.map +1 -0
- package/dist/ThreadAddress.js +18 -0
- package/dist/ThreadAddress.js.map +1 -0
- package/dist/Translator.d.ts +52 -2
- package/dist/Translator.d.ts.map +1 -1
- package/dist/Translator.js +391 -121
- package/dist/Translator.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +22 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +65 -13
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/run-events.d.ts +2 -0
- package/dist/run-events.d.ts.map +1 -1
- package/dist/run-events.js +5 -2
- package/dist/run-events.js.map +1 -1
- package/dist/types.d.ts +4 -22
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -8
package/dist/RunHandler.js
CHANGED
|
@@ -4,37 +4,44 @@ import {} from "node:http";
|
|
|
4
4
|
import Portal from "./Portal.js";
|
|
5
5
|
import Translator from "./Translator.js";
|
|
6
6
|
import MessageAddress from "./MessageAddress.js";
|
|
7
|
-
import {
|
|
7
|
+
import { stateSnapshot, parseAction, actionRunResult, derivationActivity } from "./AguiPlus.js";
|
|
8
8
|
import { EventType } from "./types.js";
|
|
9
9
|
import {} from "@ag-ui/core";
|
|
10
10
|
import { RunAgentInputSchema } from "@ag-ui/core/schemas";
|
|
11
11
|
import {} from "@plurnk/plurnk-contracts";
|
|
12
12
|
import {} from "./config.js";
|
|
13
|
+
import {} from "./BuiltinActions.js";
|
|
13
14
|
import { HttpProblemError, actionFailure } from "./action-results.js";
|
|
14
15
|
import { httpProblem, runErrorEvents } from "./run-events.js";
|
|
15
|
-
const LOOP_ADDRESSED_ACTIONS = new Set(["loop.inject", "loop.cancel"]);
|
|
16
16
|
export default class RunHandler {
|
|
17
17
|
#seam;
|
|
18
18
|
#opts;
|
|
19
19
|
#portal;
|
|
20
|
+
#stopping;
|
|
20
21
|
#requiresWorkspace;
|
|
21
22
|
#controlRun;
|
|
22
23
|
#envelope;
|
|
23
|
-
#
|
|
24
|
+
#conversation;
|
|
25
|
+
#boundWorker;
|
|
26
|
+
#actionBinding;
|
|
24
27
|
#workerStatus;
|
|
25
28
|
#action;
|
|
26
|
-
constructor({ seam, opts, portal, requiresWorkspace, controlRun, envelope,
|
|
29
|
+
constructor({ seam, opts, portal, stopping, requiresWorkspace, controlRun, envelope, conversation, boundWorker, actionBinding, workerStatus, action }) {
|
|
27
30
|
this.#seam = seam;
|
|
28
31
|
this.#opts = opts;
|
|
29
32
|
this.#portal = portal;
|
|
33
|
+
this.#stopping = stopping;
|
|
30
34
|
this.#requiresWorkspace = requiresWorkspace;
|
|
31
35
|
this.#controlRun = controlRun;
|
|
32
36
|
this.#envelope = envelope;
|
|
33
|
-
this.#
|
|
37
|
+
this.#conversation = conversation;
|
|
38
|
+
this.#boundWorker = boundWorker;
|
|
39
|
+
this.#actionBinding = actionBinding;
|
|
34
40
|
this.#workerStatus = workerStatus;
|
|
35
41
|
this.#action = action;
|
|
36
42
|
}
|
|
37
|
-
|
|
43
|
+
// {§agui-http-authorization} — the principal and credential family the perimeter admitted this request under.
|
|
44
|
+
async run(req, res, connect = false, principal = "anonymous", family = null) {
|
|
38
45
|
let decoded;
|
|
39
46
|
try {
|
|
40
47
|
decoded = JSON.parse(await RunHandler.#body(req));
|
|
@@ -58,64 +65,85 @@ export default class RunHandler {
|
|
|
58
65
|
if (forwarded?.interactive !== undefined && typeof forwarded.interactive !== "boolean") {
|
|
59
66
|
throw new HttpProblemError(httpProblem("interactive-invalid", 400, "interactive must be a boolean.", { stage: "request-validation", retryable: false }));
|
|
60
67
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
throw new HttpProblemError(httpProblem("unsupported-run-mode", 400, 'forwardedProps.plurnk.mode must be "sync" when present.', { stage: "request-validation", retryable: false }));
|
|
64
|
-
}
|
|
65
|
-
const synchronize = connect || mode === "sync";
|
|
66
|
-
// Control plane FIRST: a management action that doesn't live in a world (and an
|
|
67
|
-
// unknown kind, which is no worker at all) answers without binding — or forging — a
|
|
68
|
-
// workspace. Only world-scoped actions and conversations reach #envelope below.
|
|
68
|
+
// {§agui-run-input} A Run does one thing, chosen by its input before anything binds: a resume resolves, an
|
|
69
|
+
// action acts, a new message submits, and a Run that carries none of them synchronizes ({§agui-sync}).
|
|
69
70
|
const action = parseAction(input.forwardedProps);
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
const fresh = await this.#newMessage(input, forwarded, principal);
|
|
72
|
+
const asks = Number(input.resume !== undefined) + Number(action !== null) + Number(fresh !== null);
|
|
73
|
+
if (connect && asks > 0) {
|
|
74
|
+
throw new HttpProblemError(httpProblem("invalid-connect-input", 400, "A connection cannot include a new message, an action, or an interrupt resume.", { stage: "request-validation", retryable: false }));
|
|
75
|
+
}
|
|
76
|
+
if (asks > 1) {
|
|
77
|
+
throw new HttpProblemError(httpProblem("ambiguous-run-input", 400, "The Run carries more than one of a new message, an action, and an interrupt resume.", { stage: "request-validation", recovery: "Send each in its own Run.", retryable: false }));
|
|
72
78
|
}
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
const synchronize = connect || asks === 0;
|
|
80
|
+
// Control plane FIRST: a management action that doesn't live in a workspace, and one the module does not
|
|
81
|
+
// register or whose input it refuses, answers without binding — or forging — a workspace
|
|
82
|
+
// ({§agui-action-binding}). Only admitted workspace-scoped actions, message Runs and sync Runs reach #envelope below.
|
|
83
|
+
if (action !== null && !this.#requiresWorkspace(action)) {
|
|
84
|
+
return await this.#controlRun(action, input, res, principal);
|
|
75
85
|
}
|
|
76
86
|
let prompt = null;
|
|
77
87
|
let currentUser = null;
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
throw new HttpProblemError(httpProblem("user-message-required", 400, "A new AG-UI Run requires a non-empty textual user message.", {
|
|
82
|
-
stage: "request-validation",
|
|
83
|
-
recovery: "Provide a non-empty user message.",
|
|
84
|
-
retryable: false,
|
|
85
|
-
}));
|
|
88
|
+
if (fresh !== null) {
|
|
89
|
+
if (typeof fresh.content !== "string" || fresh.content.length === 0) {
|
|
90
|
+
throw new HttpProblemError(httpProblem("user-message-text-required", 400, "A new user message must be non-empty text.", { stage: "request-validation", recovery: "Send the message as non-empty text.", retryable: false }));
|
|
86
91
|
}
|
|
87
|
-
prompt =
|
|
88
|
-
currentUser =
|
|
92
|
+
prompt = fresh.content;
|
|
93
|
+
currentUser = fresh;
|
|
89
94
|
}
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
|
|
95
|
+
// {§agui-thread-binding} {§agui-action-binding} The thread resolves to its worker. A message,
|
|
96
|
+
// a setting, or its owner's session attaching creates it; watching passively
|
|
97
|
+
// or reading never does. A Run that requires an existing worker, or creates nothing, attaches to an
|
|
98
|
+
// existing workspace: a workspace that does not exist has no worker. A resume continues the Run whose interrupt it
|
|
99
|
+
// answers: it binds the worker that Run bound, if any.
|
|
100
|
+
const binding = input.resume !== undefined ? "attach"
|
|
101
|
+
: synchronize ? forwarded?.control === true ? "create" : "required"
|
|
102
|
+
: action === null ? "create" : this.#actionBinding(action);
|
|
103
|
+
const { env, reattached } = await this.#envelope(input.threadId, forwarded, {
|
|
104
|
+
create: binding === "create" || binding === "none",
|
|
105
|
+
worker: binding === "create",
|
|
106
|
+
});
|
|
93
107
|
const workspaceId = env.workspaceId;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
//
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
const workerId = binding === "create" || binding === "required"
|
|
109
|
+
? await this.#boundWorker(input.threadId, env, binding, forwarded)
|
|
110
|
+
: input.resume === undefined ? undefined : this.#portal().resumedWorker(workspaceId, input.threadId, input.resume);
|
|
111
|
+
// {§agui-thread-address} Routing identity and the spelling a client used are separate from reply delivery.
|
|
112
|
+
const replyThreads = [input.threadId];
|
|
113
|
+
let address = MessageAddress.owner(principal, input.threadId);
|
|
114
|
+
if (workerId !== undefined) {
|
|
115
|
+
const worker = await this.#seam().readWorker({ workspaceId, identity: { id: workerId } });
|
|
116
|
+
if (worker === null)
|
|
117
|
+
throw new Error("The bound worker is absent.");
|
|
118
|
+
replyThreads.push(worker.name, `${workspaceId}#${worker.name}`, ...await this.#seam().listWorkerReferences({ workspaceId, workerId, namespace: "agui" }));
|
|
119
|
+
// {§agui-worker-owner} An address alias for this worker is not a different owner.
|
|
120
|
+
if (replyThreads.some((threadId) => MessageAddress.owner(principal, threadId) === worker.owner))
|
|
121
|
+
address = worker.owner;
|
|
122
|
+
}
|
|
123
|
+
// {§agui-sync} A passive observation claims nothing; an owner's control connection claims as a message Run does.
|
|
124
|
+
// Either presents the gates addressed to its thread ({§agui-proposal-resolve}).
|
|
125
|
+
const control = forwarded?.control === true || (!synchronize && action === null);
|
|
126
|
+
const owner = control ? address : undefined;
|
|
102
127
|
if (owner !== undefined) {
|
|
103
128
|
// {§agui-worker-owner} The Run declares the owner's capability set: the tools it
|
|
104
129
|
// implements, and whether a person attends it. Unstated, nobody does.
|
|
130
|
+
// An AG-UI owner answers a gate's interrupt ({§agui-proposal-resolve}), so the module declares its review for it:
|
|
131
|
+
// a client declares only the tools it implements.
|
|
105
132
|
await this.#seam().registerWorkerOwner(workspaceId, {
|
|
106
|
-
address: owner, tools: [...new Set(input.tools.map(({ name }) => name))], interactive: forwarded?.interactive === true,
|
|
133
|
+
address: owner, tools: [...new Set(["request_approval", ...input.tools.map(({ name }) => name)])], interactive: forwarded?.interactive === true,
|
|
134
|
+
});
|
|
135
|
+
if (workerId !== undefined)
|
|
136
|
+
await this.#seam().claimWorkerOwner({ workspaceId, workerId, owner });
|
|
137
|
+
// {§agui-owner-activation} — an owner's arrival is the workspace's demand: activation starts now,
|
|
138
|
+
// so a first prompt finds it under way or done, and nothing waits for it here.
|
|
139
|
+
void this.#seam().activateWorkspace({ workspaceId }).catch((cause) => {
|
|
140
|
+
// {§functionality-preparation-cancellation} Shutdown owns and joins this cancellation.
|
|
141
|
+
if (this.#stopping() && cause instanceof DOMException && cause.name === "AbortError")
|
|
142
|
+
return;
|
|
143
|
+
console.error(`AG-UI: activating workspace ${workspaceId} for its owner failed:`, cause);
|
|
107
144
|
});
|
|
108
|
-
for (const claim of [workerId, env.workerId]) {
|
|
109
|
-
await this.#seam().claimWorkerOwner({ workspaceId, workerId: claim, owner });
|
|
110
|
-
}
|
|
111
145
|
}
|
|
112
|
-
res.writeHead(200, { "content-type": "text/event-stream", "cache-control": "no-cache", "connection": "keep-alive" });
|
|
113
146
|
let finished = false;
|
|
114
|
-
const interrupts = [];
|
|
115
|
-
// {§agui-configuration}: long generations can emit no events; SSE comments keep
|
|
116
|
-
// consumers fed without adding protocol events.
|
|
117
|
-
const cadence = this.#opts().heartbeatMs;
|
|
118
|
-
const heartbeat = cadence > 0 ? setInterval(() => { res.write(": hb\n\n"); }, cadence) : null;
|
|
119
147
|
const finish = () => {
|
|
120
148
|
if (finished)
|
|
121
149
|
return;
|
|
@@ -125,16 +153,13 @@ export default class RunHandler {
|
|
|
125
153
|
this.#portal().closeRun(workspaceId, boundRun);
|
|
126
154
|
res.end();
|
|
127
155
|
};
|
|
128
|
-
|
|
156
|
+
// Terminate-resume, the terminate half ({§agui-proposal-resolve}): the interrupts a gate presents end this AG-UI Run
|
|
157
|
+
// after its events, while their core owner remains paused.
|
|
158
|
+
const emit = (events, interrupts = []) => {
|
|
159
|
+
if (finished)
|
|
160
|
+
return;
|
|
129
161
|
for (const e of events) {
|
|
130
162
|
res.write(`data: ${JSON.stringify(e)}\n\n`);
|
|
131
|
-
// Terminate-resume, the terminate half: a stopped-world tool call
|
|
132
|
-
// ends this AG-UI Run while its core owner remains paused.
|
|
133
|
-
if (e.type === "TOOL_CALL_END") {
|
|
134
|
-
const interrupt = this.#portal().interruptForToolCall(e.toolCallId);
|
|
135
|
-
if (interrupt !== null)
|
|
136
|
-
interrupts.push(interrupt);
|
|
137
|
-
}
|
|
138
163
|
if (e.type === "RUN_FINISHED" || e.type === "RUN_ERROR")
|
|
139
164
|
finish();
|
|
140
165
|
}
|
|
@@ -143,85 +168,136 @@ export default class RunHandler {
|
|
|
143
168
|
type: EventType.RUN_FINISHED,
|
|
144
169
|
threadId: input.threadId,
|
|
145
170
|
runId: input.runId,
|
|
146
|
-
outcome: { type: "interrupt", interrupts
|
|
171
|
+
outcome: { type: "interrupt", interrupts },
|
|
147
172
|
})}\n\n`);
|
|
148
173
|
finish();
|
|
149
174
|
}
|
|
150
175
|
};
|
|
151
|
-
|
|
176
|
+
// {§agui-run-start} The Portal routes to this Run from the moment it is bound; what reaches it
|
|
177
|
+
// before RUN_STARTED and the snapshot are written follows them, in order. A terminal ends it at once.
|
|
178
|
+
// Each notification's events are held together, so a sync Run can tell the rows its snapshot holds.
|
|
179
|
+
let presented = false;
|
|
180
|
+
const held = [];
|
|
181
|
+
const routed = (events, interrupts = []) => {
|
|
182
|
+
if (presented)
|
|
183
|
+
return emit(events, interrupts);
|
|
184
|
+
const terminal = events.filter(({ type }) => type === EventType.RUN_ERROR || type === EventType.RUN_FINISHED);
|
|
185
|
+
if (terminal.length === 0)
|
|
186
|
+
return void held.push({ events, interrupts });
|
|
187
|
+
held.length = 0;
|
|
188
|
+
emit(terminal);
|
|
189
|
+
};
|
|
152
190
|
const notificationScope = action === null
|
|
153
|
-
? "
|
|
191
|
+
? "worker"
|
|
154
192
|
: action.kind === "op.exec" || action.kind === "op.parse"
|
|
155
193
|
? "operation"
|
|
156
194
|
: "result";
|
|
157
|
-
// {§agui-delegation-observation} — a
|
|
195
|
+
// {§agui-delegation-observation} — a message Run may ask for its descendants' rows.
|
|
158
196
|
const descendants = action === null && forwarded?.descendants === true;
|
|
159
197
|
const boundRun = this.#portal().openThread({
|
|
160
198
|
workspaceId,
|
|
161
|
-
|
|
199
|
+
// {§agui-broadcast-fan} An operation Run learns its Worker and Loop from the dispatch that opens them.
|
|
200
|
+
workerId: notificationScope === "operation" ? null : workerId ?? null,
|
|
162
201
|
threadId: input.threadId,
|
|
202
|
+
replyThreads,
|
|
163
203
|
notificationScope,
|
|
164
|
-
|
|
204
|
+
owner: address,
|
|
205
|
+
family,
|
|
165
206
|
descendants,
|
|
166
|
-
emit,
|
|
207
|
+
emit: routed,
|
|
167
208
|
modelWorkerId: workerId,
|
|
168
209
|
inputRunId: input.runId,
|
|
210
|
+
cancelOnDisconnect: prompt !== null || notificationScope === "operation",
|
|
169
211
|
...(input.resume === undefined ? {} : { resume: input.resume }),
|
|
170
212
|
});
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if (
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
if (
|
|
213
|
+
// {§agui-shutdown} Acquire the Run before committing headers or a heartbeat:
|
|
214
|
+
// preparation may have crossed module closure.
|
|
215
|
+
res.writeHead(200, { "content-type": "text/event-stream", "cache-control": "no-cache", "connection": "keep-alive" });
|
|
216
|
+
// {§agui-configuration} SSE comments keep quiet generations connected.
|
|
217
|
+
const cadence = this.#opts().heartbeatMs;
|
|
218
|
+
const heartbeat = cadence > 0 ? setInterval(() => { res.write(": hb\n\n"); }, cadence) : null;
|
|
219
|
+
// {§agui-run-disconnect} Install once, before any asynchronous preparation.
|
|
220
|
+
const disconnected = () => {
|
|
221
|
+
if (finished)
|
|
222
|
+
return;
|
|
223
|
+
this.#portal().disconnect(boundRun);
|
|
224
|
+
finish();
|
|
225
|
+
};
|
|
226
|
+
res.once("close", disconnected);
|
|
227
|
+
if (res.destroyed) {
|
|
228
|
+
disconnected();
|
|
186
229
|
return;
|
|
230
|
+
}
|
|
187
231
|
try {
|
|
188
|
-
//
|
|
189
|
-
|
|
232
|
+
// A Run that binds no worker has no worker status to report.
|
|
233
|
+
const status = workerId === undefined ? undefined : await this.#workerStatus(workspaceId, workerId);
|
|
234
|
+
if (finished)
|
|
235
|
+
return;
|
|
236
|
+
let providers;
|
|
237
|
+
let catalogProblem;
|
|
238
|
+
try {
|
|
239
|
+
providers = this.#seam().listProviders().aliases;
|
|
240
|
+
}
|
|
241
|
+
catch (cause) {
|
|
242
|
+
catalogProblem = Problems.fromError(cause);
|
|
243
|
+
if (catalogProblem === null)
|
|
244
|
+
throw cause;
|
|
245
|
+
}
|
|
246
|
+
emit(this.#portal().runStarted(boundRun, stateSnapshot({
|
|
247
|
+
...(providers === undefined ? {} : { providers }),
|
|
248
|
+
workspace: {
|
|
249
|
+
id: workspaceId, name: env.workspaceName, projectRoot: env.projectRoot, projectLabel: env.projectLabel,
|
|
250
|
+
preparation: this.#seam().workspacePreparationStatus(workspaceId),
|
|
251
|
+
activity: derivationActivity(this.#seam().workspaceDerivationStatus(workspaceId)),
|
|
252
|
+
},
|
|
253
|
+
...(status === undefined ? {} : { status }),
|
|
254
|
+
})));
|
|
255
|
+
if (!synchronize) {
|
|
256
|
+
presented = true;
|
|
257
|
+
for (const batch of held.splice(0))
|
|
258
|
+
emit(batch.events, batch.interrupts);
|
|
259
|
+
}
|
|
260
|
+
if (catalogProblem !== undefined)
|
|
261
|
+
emit([{ type: EventType.CUSTOM, name: "plurnk.problem", value: catalogProblem }]);
|
|
262
|
+
if (finished)
|
|
263
|
+
return;
|
|
264
|
+
// {§agui-sync} — the existing Run endpoint can project the
|
|
265
|
+
// bound worker's durable log without admitting a prompt or starting inference.
|
|
190
266
|
// A live Loop remains observed; an idle one settles after its snapshot.
|
|
191
267
|
if (synchronize) {
|
|
192
268
|
for (const notice of this.#seam().configurationNotices()) {
|
|
193
269
|
emit([{ type: EventType.CUSTOM, name: "plurnk.notice", value: notice }]);
|
|
194
270
|
}
|
|
195
|
-
|
|
196
|
-
|
|
271
|
+
// A sync Run requires its worker ({§agui-action-binding}), so one is bound here.
|
|
272
|
+
const history = await this.#history(workspaceId, workerId);
|
|
273
|
+
// {§agui-subagents} A Run that observes its delegation replays it too.
|
|
274
|
+
const subagents = await this.#portal().subagentHistory(boundRun, (descendant) => this.#history(workspaceId, descendant));
|
|
197
275
|
if (finished)
|
|
198
276
|
return;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
277
|
+
emit(this.#portal().replay(boundRun, history, undefined, subagents));
|
|
278
|
+
// {§agui-sync} What reached the Run while its log was read follows its snapshot, and a row the snapshot
|
|
279
|
+
// already holds as it arrived is not built a second time.
|
|
280
|
+
const replayed = new Map([...history, ...subagents.flatMap(({ entries }) => entries)].map((row) => [row.id, RunHandler.#version(row)]));
|
|
281
|
+
presented = true;
|
|
282
|
+
for (const batch of held.splice(0))
|
|
283
|
+
emit(RunHandler.#unreplayed(batch.events, replayed), batch.interrupts);
|
|
284
|
+
if (finished)
|
|
285
|
+
return;
|
|
286
|
+
await this.#portal().synchronize(workspaceId, boundRun, connect);
|
|
205
287
|
return;
|
|
206
288
|
}
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
//
|
|
210
|
-
// AG-UI Run and completes after the resume AG-UI Run rebinds the stream.
|
|
289
|
+
// A management-action AG-UI Run (forwardedProps.plurnk.action): executed via the seam and answered on
|
|
290
|
+
// this Run's own stream; concurrent actions share a workspace, and a result never rides another Run.
|
|
291
|
+
// A client operation's Run observes the loop its dispatch opens ({§agui-broadcast-fan}).
|
|
211
292
|
if (action !== null) {
|
|
212
293
|
const finishAction = (outcome) => {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
// actions share a workspace, and the workspace binding is whoever bound last
|
|
216
|
-
// (results would cross streams). Only a proposal-pause (this stream already
|
|
217
|
-
// terminated) hands off to the workspace binding, which the resume AG-UI Run rebinds.
|
|
218
|
-
if (!finished) {
|
|
219
|
-
this.#portal().finishThread(boundRun, events);
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
this.#portal().finishRun(workspaceId, lifecycleWorkerId, input.threadId, events);
|
|
294
|
+
if (!finished)
|
|
295
|
+
this.#portal().finishThread(boundRun, [], actionRunResult(action.kind, outcome));
|
|
223
296
|
};
|
|
224
|
-
|
|
297
|
+
const onLoop = notificationScope === "operation"
|
|
298
|
+
? (loop) => { this.#portal().bindOperation(boundRun, loop); }
|
|
299
|
+
: undefined;
|
|
300
|
+
void this.#action(action, input, env, workerId, principal, onLoop)
|
|
225
301
|
// One queue barrier: a dispatch's channel notifies are enqueued but not yet
|
|
226
302
|
// delivered when its promise resolves — drain them so Portal's stream
|
|
227
303
|
// bookkeeping arms BEFORE the finish decision (then stream/concluded,
|
|
@@ -234,33 +310,31 @@ export default class RunHandler {
|
|
|
234
310
|
? actionFailure("action-failed", "The action failed unexpectedly.", 500)
|
|
235
311
|
: { ok: false, problem });
|
|
236
312
|
});
|
|
237
|
-
res.on("close", () => {
|
|
238
|
-
if (finished)
|
|
239
|
-
return;
|
|
240
|
-
this.#seam().cancelDrain(lifecycleWorkerId, "client_disconnected");
|
|
241
|
-
finish();
|
|
242
|
-
});
|
|
243
313
|
return;
|
|
244
314
|
}
|
|
245
315
|
// AG-UI interrupt resume: this is a new AG-UI Run on the same thread. Bind it
|
|
246
|
-
// to
|
|
316
|
+
// to its presentation's continuation before releasing the proposal.
|
|
247
317
|
if (input.resume !== undefined) {
|
|
248
318
|
await this.#portal().resolve(workspaceId, boundRun, input.resume);
|
|
249
|
-
res.on("close", finish); // client hangup on a resume just detaches; the loop is already active
|
|
250
319
|
return;
|
|
251
320
|
}
|
|
252
|
-
if (prompt === null || currentUser === null)
|
|
253
|
-
throw new Error("
|
|
321
|
+
if (prompt === null || currentUser === null || workerId === undefined)
|
|
322
|
+
throw new Error("message AG-UI Run reached dispatch without a validated prompt and its worker");
|
|
254
323
|
if (reattached) {
|
|
255
|
-
const history = await this.#
|
|
256
|
-
if (
|
|
324
|
+
const history = await this.#history(workspaceId, workerId);
|
|
325
|
+
if (finished)
|
|
326
|
+
return;
|
|
327
|
+
if (!RunHandler.#isOriented(input, history, replyThreads)) {
|
|
257
328
|
const replayUser = currentUser ?? undefined;
|
|
258
|
-
|
|
329
|
+
const subagents = await this.#portal().subagentHistory(boundRun, (descendant) => this.#history(workspaceId, descendant));
|
|
330
|
+
if (finished)
|
|
331
|
+
return;
|
|
332
|
+
emit(this.#portal().replay(boundRun, history, replayUser, subagents));
|
|
259
333
|
}
|
|
260
334
|
}
|
|
261
335
|
const started = await this.#portal().run(boundRun, {
|
|
262
336
|
workspaceId, workerId, prompt,
|
|
263
|
-
...MessageAddress.submission(input, currentUser),
|
|
337
|
+
...MessageAddress.submission(principal, input, currentUser),
|
|
264
338
|
...(forwarded !== undefined && Object.hasOwn(forwarded, "maxTurns")
|
|
265
339
|
? { maxTurns: forwarded.maxTurns }
|
|
266
340
|
: this.#opts().maxTurns !== undefined ? { maxTurns: this.#opts().maxTurns } : {}),
|
|
@@ -280,23 +354,9 @@ export default class RunHandler {
|
|
|
280
354
|
});
|
|
281
355
|
if (started !== null && !finished) {
|
|
282
356
|
const currentStatus = await this.#workerStatus(workspaceId, workerId);
|
|
283
|
-
if (!finished)
|
|
284
|
-
emit(
|
|
285
|
-
op: "replace",
|
|
286
|
-
path: "/plurnk/status",
|
|
287
|
-
value: currentStatus,
|
|
288
|
-
}])]);
|
|
289
|
-
}
|
|
357
|
+
if (!finished)
|
|
358
|
+
emit(this.#portal().replaceStatus(boundRun, currentStatus));
|
|
290
359
|
}
|
|
291
|
-
// A dropped SSE on a live AG-UI Run cancels the loop (hangup is the abort). A stream we
|
|
292
|
-
// finished ourselves — terminal event or proposal-terminate — leaves the engine
|
|
293
|
-
// alone (the paused loop is exactly what the resume AG-UI Run needs).
|
|
294
|
-
res.on("close", () => {
|
|
295
|
-
if (finished)
|
|
296
|
-
return;
|
|
297
|
-
this.#seam().cancelDrain(workerId, "client_disconnected");
|
|
298
|
-
finish();
|
|
299
|
-
});
|
|
300
360
|
}
|
|
301
361
|
catch (err) {
|
|
302
362
|
// {§agui-http-failure} After headers, the frame alone is
|
|
@@ -313,9 +373,68 @@ export default class RunHandler {
|
|
|
313
373
|
this.#portal().failThread(boundRun, runErrorEvents(problem));
|
|
314
374
|
}
|
|
315
375
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
376
|
+
// {§agui-run-input} The Run's new message: its last message, when that is a user message of the thread's own
|
|
377
|
+
// conversation that is neither one the daemon presented, its id a coordinate the worker's log holds, nor one a
|
|
378
|
+
// client already sent, its address an idempotency key core decides ({§message-idempotency}). Both are keyed reads.
|
|
379
|
+
async #newMessage(input, forwarded, principal) {
|
|
380
|
+
const last = input.messages.at(-1);
|
|
381
|
+
if (last?.role !== "user" || last.subagentRunId !== undefined)
|
|
382
|
+
return null;
|
|
383
|
+
const conversation = await this.#conversation(input.threadId, forwarded);
|
|
384
|
+
if (conversation === null)
|
|
385
|
+
return last;
|
|
386
|
+
const coordinate = /^(\d+)\/(\d+)\/(\d+)$/u.exec(last.id);
|
|
387
|
+
if (coordinate !== null) {
|
|
388
|
+
const [loopSeq, turnSeq, sequence] = coordinate.slice(1).map(Number);
|
|
389
|
+
if ((await this.#seam().readLog({ ...conversation, loopSeq, turnSeq, sequence })).length > 0)
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
if (typeof last.content !== "string")
|
|
393
|
+
return last;
|
|
394
|
+
const admission = await this.#seam().messageAdmission({
|
|
395
|
+
workspaceId: conversation.workspaceId, address: MessageAddress.render(principal, input.threadId, last.id), body: last.content,
|
|
396
|
+
});
|
|
397
|
+
return admission === "new" ? last : null;
|
|
398
|
+
}
|
|
399
|
+
// {§agui-snapshot} A snapshot is every message the live projection built, so it reads the whole log, page by page.
|
|
400
|
+
async #history(workspaceId, workerId) {
|
|
401
|
+
const rows = [];
|
|
402
|
+
for (let beforeId;;) {
|
|
403
|
+
const cursor = beforeId;
|
|
404
|
+
const page = await this.#seam().readLog({ workspaceId, workerId, limit: Number.MAX_SAFE_INTEGER, ...(cursor === undefined ? {} : { beforeId: cursor }) });
|
|
405
|
+
const older = cursor === undefined ? page : page.filter(({ id }) => id < cursor);
|
|
406
|
+
if (older.length === 0)
|
|
407
|
+
return rows;
|
|
408
|
+
rows.push(...older);
|
|
409
|
+
beforeId = Math.min(...older.map(({ id }) => id));
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
// {§agui-sync} A row's version: what a later delivery of the same row can change.
|
|
413
|
+
static #version(row) {
|
|
414
|
+
return JSON.stringify([row.status_rx ?? null, row.signal ?? null, row.attrs ?? null]);
|
|
415
|
+
}
|
|
416
|
+
// {§agui-sync} One notification's events, without the parts of a row the snapshot already holds: none of them when it
|
|
417
|
+
// holds the row as it arrived; when it holds an earlier version, whose call it holds, the later facts folded onto that
|
|
418
|
+
// call, a repeated START and END without arguments ({§agui-proposal-resolve}), and the call's result.
|
|
419
|
+
static #unreplayed(events, replayed) {
|
|
420
|
+
const facts = events.map((event) => event.metadata?.plurnk)
|
|
421
|
+
.find((plurnk) => plurnk?.id !== undefined);
|
|
422
|
+
const whole = events.find((event) => event.type === EventType.CUSTOM && event.name === "plurnk.ambient");
|
|
423
|
+
const row = facts !== undefined ? { id: facts.id, version: RunHandler.#version({ status_rx: facts.status, signal: facts.signal, attrs: facts.attrs }) }
|
|
424
|
+
: whole?.value !== undefined ? { id: whole.value.id, version: RunHandler.#version(whole.value) } : null;
|
|
425
|
+
if (row === null || !replayed.has(row.id))
|
|
426
|
+
return events;
|
|
427
|
+
const held = (event) => (event.type.startsWith("TOOL_CALL_") && event.type !== EventType.TOOL_CALL_RESULT)
|
|
428
|
+
|| event.type.startsWith("TEXT_MESSAGE_") || event.type.startsWith("REASONING_");
|
|
429
|
+
if (replayed.get(row.id) !== row.version) {
|
|
430
|
+
return events.filter((event) => !held(event) || event.type === EventType.TOOL_CALL_START || event.type === EventType.TOOL_CALL_END);
|
|
431
|
+
}
|
|
432
|
+
return events.filter((event) => !(held(event) || event.type === EventType.TOOL_CALL_RESULT
|
|
433
|
+
|| (event.type === EventType.CUSTOM && event.name === "plurnk.ambient")));
|
|
434
|
+
}
|
|
435
|
+
static #isOriented(input, history, replyThreads) {
|
|
436
|
+
const durableMessageIds = new Set(history.flatMap((entry) => Translator.isResponse(entry, replyThreads)
|
|
437
|
+
? [Translator.idOf(entry)]
|
|
319
438
|
: []));
|
|
320
439
|
return input.messages.some(({ id }) => durableMessageIds.has(id));
|
|
321
440
|
}
|
package/dist/RunHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunHandler.js","sourceRoot":"","sources":["../src/RunHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RunHandler.js","sourceRoot":"","sources":["../src/RunHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,yJAAyJ;AACzJ,OAAO,EAA6C,MAAM,WAAW,CAAC;AACtE,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAgE,MAAM,eAAe,CAAC;AAC9J,OAAO,EAAE,SAAS,EAAwD,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAkB,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAuB,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAA8B,MAAM,aAAa,CAAC;AACzD,OAAO,EAA8B,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAS9D,MAAM,CAAC,OAAO,OAAO,UAAU;IAClB,KAAK,CAAgB;IACrB,KAAK,CAA8B;IACnC,OAAO,CAAe;IACtB,SAAS,CAAgB;IACzB,kBAAkB,CAAqC;IACvD,WAAW,CAAyG;IACpH,SAAS,CAAuL;IAChM,aAAa,CAAuH;IACpI,YAAY,CAAkI;IAC9I,cAAc,CAA2C;IACzD,aAAa,CAAsE;IACnF,OAAO,CAAkM;IAElN,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAalJ;QACG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,8GAA8G;IAC9G,KAAK,CAAC,GAAG,CAAC,GAAoB,EAAE,GAAmB,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,GAAG,WAAW,EAAE,MAAM,GAAkB,IAAI;QACvH,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAClC,cAAc,EACd,GAAG,EACH,qCAAqC,EACrC,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,EAAE,CACpD,CAAC,CAAC;QACP,CAAC;QACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAClC,mBAAmB,EACnB,GAAG,EACH,qEAAqE,EACrE;gBACI,KAAK,EAAE,oBAAoB;gBAC3B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBAC3B,SAAS,EAAE,KAAK;aACnB,CACJ,CAAC,CAAC;QACP,CAAC;QACD,MAAM,KAAK,GAAkB,MAAM,CAAC,IAAI,CAAC;QACzC,MAAM,SAAS,GAAI,KAAK,CAAC,cAAmE,EAAE,MAAM,CAAC;QACrG,IAAI,SAAS,EAAE,OAAO,KAAK,SAAS,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7E,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,iBAAiB,EAAE,GAAG,EAAE,4BAA4B,EACvF,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,SAAS,EAAE,WAAW,KAAK,SAAS,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrF,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE,gCAAgC,EAC/F,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,2GAA2G;QAC3G,uGAAuG;QACvG,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACnG,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAClC,uBAAuB,EACvB,GAAG,EACH,+EAA+E,EAC/E,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,EAAE,CACpD,CAAC,CAAC;QACP,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAClC,qBAAqB,EACrB,GAAG,EACH,qFAAqF,EACrF,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,SAAS,EAAE,KAAK,EAAE,CAC3F,CAAC,CAAC;QACP,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,KAAK,CAAC,CAAC;QAE1C,yGAAyG;QACzG,yFAAyF;QACzF,sHAAsH;QACtH,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,WAAW,GAAuB,IAAI,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAClC,4BAA4B,EAC5B,GAAG,EACH,4CAA4C,EAC5C,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,qCAAqC,EAAE,SAAS,EAAE,KAAK,EAAE,CACrG,CAAC,CAAC;YACP,CAAC;YACD,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,8FAA8F;QAC9F,6EAA6E;QAC7E,oGAAoG;QACpG,mHAAmH;QACnH,uDAAuD;QACvD,MAAM,OAAO,GAAkB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ;YAChE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;gBACnE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE;YACxE,MAAM,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM;YAClD,MAAM,EAAE,OAAO,KAAK,QAAQ;SAC/B,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,UAAU;YAC3D,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC;YAClE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACvH,2GAA2G;QAC3G,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1F,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACpE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,EAC1D,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9F,kFAAkF;YAClF,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5H,CAAC;QACD,iHAAiH;QACjH,gFAAgF;QAChF,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,iFAAiF;YACjF,sEAAsE;YACtE,kHAAkH;YAClH,kDAAkD;YAClD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE;gBAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI;aAClJ,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAClG,kGAAkG;YAClG,+EAA+E;YAC/E,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC1E,uFAAuF;gBACvF,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;oBAAE,OAAO;gBAC7F,OAAO,CAAC,KAAK,CAAC,+BAA+B,WAAW,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,GAAS,EAAE;YACtB,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,SAAS,KAAK,IAAI;gBAAE,aAAa,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/C,GAAG,CAAC,GAAG,EAAE,CAAC;QACd,CAAC,CAAC;QACF,qHAAqH;QACrH,2DAA2D;QAC3D,MAAM,IAAI,GAAG,CAAC,MAAmB,EAAE,UAAU,GAAgB,EAAE,EAAQ,EAAE;YACrE,IAAI,QAAQ;gBAAE,OAAO;YACrB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACrB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;oBAAE,MAAM,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC;oBAC9B,IAAI,EAAE,SAAS,CAAC,YAAY;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE;iBAC7C,CAAC,MAAM,CAAC,CAAC;gBACV,MAAM,EAAE,CAAC;YACb,CAAC;QACL,CAAC,CAAC;QAEF,+FAA+F;QAC/F,sGAAsG;QACtG,oGAAoG;QACpG,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,IAAI,GAA4D,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,CAAC,MAAmB,EAAE,UAAU,GAAgB,EAAE,EAAQ,EAAE;YACvE,IAAI,SAAS;gBAAE,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC,CAAC;YAC9G,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,MAAM,KAAK,IAAI;YACrC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;gBACrD,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,QAAQ,CAAC;QACnB,oFAAoF;QACpF,MAAM,WAAW,GAAG,MAAM,KAAK,IAAI,IAAI,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;YACvC,WAAW;YACX,uGAAuG;YACvG,QAAQ,EAAE,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI;YACrE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY;YACZ,iBAAiB;YACjB,KAAK,EAAE,OAAO;YACd,MAAM;YACN,WAAW;YACX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,QAAQ;YACvB,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,kBAAkB,EAAE,MAAM,KAAK,IAAI,IAAI,iBAAiB,KAAK,WAAW;YACxE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,6EAA6E;QAC7E,+CAA+C;QAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;QACrH,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,4EAA4E;QAC5E,MAAM,YAAY,GAAG,GAAS,EAAE;YAC5B,IAAI,QAAQ;gBAAE,OAAO;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,EAAE,CAAC;QACb,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAAC,YAAY,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9C,IAAI,CAAC;YACL,6DAA6D;YAC7D,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACpG,IAAI,QAAQ;gBAAE,OAAO;YACrB,IAAI,SAAS,CAAC;YACd,IAAI,cAAc,CAAC;YACnB,IAAI,CAAC;gBAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC;YAAC,CAAC;YACzD,OAAO,KAAK,EAAE,CAAC;gBACX,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,cAAc,KAAK,IAAI;oBAAE,MAAM,KAAK,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAC1B,QAAQ,EACR,aAAa,CAAC;gBACV,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;gBACjD,SAAS,EAAE;oBACP,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY;oBACtG,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC;oBACjE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;iBACpF;gBACD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC,CACL,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,cAAc,KAAK,SAAS;gBAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACpH,IAAI,QAAQ;gBAAE,OAAO;YAErB,2DAA2D;YAC3D,+EAA+E;YAC/E,wEAAwE;YACxE,IAAI,WAAW,EAAE,CAAC;gBACd,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC;oBACvD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC7E,CAAC;gBACD,iFAAiF;gBACjF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAS,CAAC,CAAC;gBAC5D,uEAAuE;gBACvE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;gBACzH,IAAI,QAAQ;oBAAE,OAAO;gBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;gBACrE,wGAAwG;gBACxG,0DAA0D;gBAC1D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxI,SAAS,GAAG,IAAI,CAAC;gBACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC3G,IAAI,QAAQ;oBAAE,OAAO;gBACrB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YAED,sGAAsG;YACtG,qGAAqG;YACrG,yFAAyF;YACzF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,CAAC,OAAsB,EAAQ,EAAE;oBAClD,IAAI,CAAC,QAAQ;wBAAE,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBACpG,CAAC,CAAC;gBACF,MAAM,MAAM,GAAsC,iBAAiB,KAAK,WAAW;oBAC/E,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7D,CAAC,CAAC,SAAS,CAAC;gBAChB,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;oBAC9D,4EAA4E;oBAC5E,sEAAsE;oBACtE,sEAAsE;oBACtE,uCAAuC;qBACtC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC9F,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBACpB,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,WAAW,EAAE,GAAG,CAAC,CAAC;oBAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACxC,YAAY,CAAC,OAAO,KAAK,IAAI;wBACzB,CAAC,CAAC,aAAa,CAAC,eAAe,EAAE,iCAAiC,EAAE,GAAG,CAAC;wBACxE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACP,OAAO;YACX,CAAC;YAED,8EAA8E;YAC9E,oEAAoE;YACpE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClE,OAAO;YACX,CAAC;YAED,IAAI,MAAM,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;YAEvK,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC3D,IAAI,QAAQ;oBAAE,OAAO;gBACrB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC;oBACxD,MAAM,UAAU,GAAG,WAAW,IAAI,SAAS,CAAC;oBAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;oBACzH,IAAI,QAAQ;wBAAE,OAAO;oBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC1E,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/C,WAAW,EAAE,QAAQ,EAAE,MAAM;gBAC7B,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC;gBAC3D,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC;oBAC/D,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAkB,EAAE;oBAC5C,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;oBAChE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAqB,EAAE;oBAChD,CAAC,CAAC,EAAE,CAAC;gBACT,sEAAsE;gBACtE,+CAA+C;gBAC/C,yEAAyE;gBACzE,kEAAkE;gBAClE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC;oBAC/D,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAkB,EAAE;oBAC5C,CAAC,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC;oBACpE,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,aAA8B,EAAE;oBAC7D,CAAC,CAAC,EAAE,CAAC;aACZ,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACtE,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;YAC/E,CAAC;QACD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,yDAAyD;YACzD,6EAA6E;YAC7E,+EAA+E;YAC/E,wEAAwE;YACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,YAAY,KAAK,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,YAAY,IAAI,WAAW,CACvC,YAAY,EACZ,GAAG,EACH,oCAAoC,EACpC;gBACI,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,KAAK;aACnB,CACJ,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED,6GAA6G;IAC7G,+GAA+G;IAC/G,mHAAmH;IACnH,KAAK,CAAC,WAAW,CAAC,KAAoB,EAAE,SAA8C,EAAE,SAAiB;QACrG,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC3E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAA6B,CAAC;YACjG,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC9G,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC;YAClD,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO;SAChI,CAAC,CAAC;QACH,OAAO,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,mHAAmH;IACnH,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,QAAgB;QAChD,MAAM,IAAI,GAAmC,EAAE,CAAC;QAChD,KAAK,IAAI,QAA4B,IAAK,CAAC;YACvC,MAAM,MAAM,GAAG,QAAQ,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1J,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;YACjF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,MAAM,CAAC,QAAQ,CAAC,GAA+D;QAC3E,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,sHAAsH;IACtH,uHAAuH;IACvH,sGAAsG;IACtG,MAAM,CAAC,WAAW,CAAC,MAAmB,EAAE,QAAsC;QAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAE,KAA2G,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC7J,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,IAAK,KAA2B,CAAC,IAAI,KAAK,gBAAgB,CAAoD,CAAC;QACnL,MAAM,GAAG,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;YACnJ,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5G,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,MAAM,CAAC;QACzD,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAW,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,gBAAgB,CAAC;eACvH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACrF,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,CAAC,CAAC;QACxI,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,gBAAgB;eACnF,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,IAAK,KAA2B,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAoB,EAAE,OAA+C,EAAE,YAA+B;QACrH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACxD,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC;YAClC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,GAAoB;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** {§agui-thread-address} Qualified identity is syntax, never a database-existence heuristic. */
|
|
2
|
+
export default class ThreadAddress {
|
|
3
|
+
static parse(threadId: string): {
|
|
4
|
+
workspaceId: number;
|
|
5
|
+
workerName: string;
|
|
6
|
+
} | null;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=ThreadAddress.d.ts.map
|