@plurnk/plurnk-agui 1.29.0 → 3.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/README.md +12 -22
- package/SPEC.md +80 -52
- package/dist/AguiPlus.js +1 -1
- package/dist/AguiPlus.js.map +1 -1
- package/dist/AguiSurface.d.ts.map +1 -1
- package/dist/AguiSurface.js +2 -1
- package/dist/AguiSurface.js.map +1 -1
- package/dist/BuiltinActions.d.ts +2 -1
- package/dist/BuiltinActions.d.ts.map +1 -1
- package/dist/BuiltinActions.js.map +1 -1
- package/dist/MessageAddress.d.ts +1 -0
- package/dist/MessageAddress.d.ts.map +1 -1
- package/dist/MessageAddress.js +4 -1
- package/dist/MessageAddress.js.map +1 -1
- package/dist/Module.d.ts +12 -26
- package/dist/Module.d.ts.map +1 -1
- package/dist/Module.js +24 -105
- package/dist/Module.js.map +1 -1
- package/dist/Portal.d.ts +4 -4
- package/dist/Portal.d.ts.map +1 -1
- package/dist/Portal.js +52 -77
- package/dist/Portal.js.map +1 -1
- package/dist/ProposalHitl.d.ts +5 -4
- package/dist/ProposalHitl.d.ts.map +1 -1
- package/dist/ProposalHitl.js +13 -9
- package/dist/ProposalHitl.js.map +1 -1
- package/dist/RunHandler.d.ts +3 -2
- package/dist/RunHandler.d.ts.map +1 -1
- package/dist/RunHandler.js +23 -6
- package/dist/RunHandler.js.map +1 -1
- package/dist/Translator.js +1 -1
- package/dist/Translator.js.map +1 -1
- package/dist/config.d.ts +0 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -2
- package/dist/config.js.map +1 -1
- package/dist/daemon-module.d.ts +4 -0
- package/dist/daemon-module.d.ts.map +1 -0
- package/dist/daemon-module.js +5 -0
- package/dist/daemon-module.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/observe.d.ts +1 -1
- package/dist/observe.d.ts.map +1 -1
- package/dist/observe.js +3 -1
- package/dist/observe.js.map +1 -1
- package/package.json +19 -7
package/dist/Portal.js
CHANGED
|
@@ -49,6 +49,11 @@ class Portal {
|
|
|
49
49
|
}
|
|
50
50
|
if (!_a.#ownsNotification(thread, method, params))
|
|
51
51
|
continue;
|
|
52
|
+
if (method === "loop/packet" && thread.loopId === null) {
|
|
53
|
+
const loopId = params.loopId;
|
|
54
|
+
if (typeof loopId === "number")
|
|
55
|
+
thread.loopId = loopId;
|
|
56
|
+
}
|
|
52
57
|
if (method === "loop/terminated") {
|
|
53
58
|
const loopId = params.loopId;
|
|
54
59
|
if (typeof loopId !== "number")
|
|
@@ -181,7 +186,10 @@ class Portal {
|
|
|
181
186
|
// obligation ({§worker-obligations}) and opens nothing.
|
|
182
187
|
static #openedStream(method, params) {
|
|
183
188
|
if (method === "log/entry") {
|
|
184
|
-
const
|
|
189
|
+
const entry = params.entry;
|
|
190
|
+
if (entry?.rx?.status !== 200 && entry?.rx?.status !== 202)
|
|
191
|
+
return null;
|
|
192
|
+
const attrs = entry.attrs;
|
|
185
193
|
return typeof attrs?.stream === "string" && attrs.detached !== true ? attrs.stream : null;
|
|
186
194
|
}
|
|
187
195
|
return method === "stream/event" ? _a.#streamTarget(params) : null;
|
|
@@ -220,21 +228,12 @@ class Portal {
|
|
|
220
228
|
this.#off = null;
|
|
221
229
|
this.#continuations.clear();
|
|
222
230
|
}
|
|
223
|
-
#exactThreads(workspaceId, binding) {
|
|
224
|
-
const workerThreads = [...(this.#threads.get(workspaceId) ?? [])]
|
|
225
|
-
.filter((thread) => thread.notificationScope !== "result" && thread.workerId === binding.workerId);
|
|
226
|
-
const loopThreads = workerThreads.filter((thread) => thread.loopId === binding.loopId);
|
|
227
|
-
return loopThreads.length > 0 ? loopThreads : workerThreads;
|
|
228
|
-
}
|
|
229
231
|
#emitDelivery(workspaceId, delivery, threads) {
|
|
230
232
|
if (delivery.batch.events.length === 0)
|
|
231
233
|
return;
|
|
232
234
|
for (const thread of threads) {
|
|
233
235
|
const controlLoopId = thread.loopId
|
|
234
236
|
?? (thread.workerId === delivery.workerId ? delivery.loopId : null);
|
|
235
|
-
if (controlLoopId === null) {
|
|
236
|
-
throw new Error(`worker ${thread.workerId} cannot control worker ${delivery.workerId} without an active loop`);
|
|
237
|
-
}
|
|
238
237
|
// {§agui-gate-deferral} — the first gate waits on the open lifecycle; a later one stays durable
|
|
239
238
|
// and re-surfaces after the first resolves.
|
|
240
239
|
if (thread.router.reasoningOpen) {
|
|
@@ -244,14 +243,18 @@ class Portal {
|
|
|
244
243
|
const paused = thread.router.interrupt();
|
|
245
244
|
for (const interrupt of delivery.batch.interrupts) {
|
|
246
245
|
const key = interrupt.toolCallId ?? interrupt.id;
|
|
247
|
-
this.#continuations.
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
246
|
+
const existing = this.#continuations.get(key);
|
|
247
|
+
if (existing === undefined || existing.inputRunId === thread.inputRunId)
|
|
248
|
+
this.#continuations.set(key, {
|
|
249
|
+
workspaceId,
|
|
250
|
+
owner: delivery.recipient,
|
|
251
|
+
gate: { workerId: delivery.workerId, loopId: delivery.loopId },
|
|
252
|
+
control: { workerId: thread.workerId, loopId: controlLoopId },
|
|
253
|
+
threadId: thread.threadId,
|
|
254
|
+
inputRunId: thread.inputRunId,
|
|
255
|
+
notificationScope: thread.notificationScope,
|
|
256
|
+
state: paused.continuation,
|
|
257
|
+
});
|
|
255
258
|
}
|
|
256
259
|
thread.emit([...delivery.batch.events, ...paused.events]);
|
|
257
260
|
}
|
|
@@ -277,30 +280,11 @@ class Portal {
|
|
|
277
280
|
}
|
|
278
281
|
}
|
|
279
282
|
#routeHitl(workspaceId, delivery) {
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
this.#enqueueDelivery(workspaceId, async () => {
|
|
286
|
-
const workers = await this.#seam.listWorkers(workspaceId);
|
|
287
|
-
const byId = _a.#workerMap(workers);
|
|
288
|
-
const ancestors = _a.#ancestors(delivery.workerId, byId);
|
|
289
|
-
for (const ancestorId of ancestors) {
|
|
290
|
-
const threads = [...(this.#threads.get(workspaceId) ?? [])]
|
|
291
|
-
.filter((thread) => thread.notificationScope === "conversation"
|
|
292
|
-
&& thread.workerId === ancestorId);
|
|
293
|
-
if (threads.length === 0)
|
|
294
|
-
continue;
|
|
295
|
-
await Promise.all(threads.map(async (thread) => {
|
|
296
|
-
if (thread.loopId === null) {
|
|
297
|
-
thread.loopId = await this.#activeLoopId(workspaceId, thread.workerId);
|
|
298
|
-
}
|
|
299
|
-
}));
|
|
300
|
-
this.#withHitl(delivery.batch, () => this.#emitDelivery(workspaceId, delivery, threads));
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
});
|
|
283
|
+
const threads = [...(this.#threads.get(workspaceId) ?? [])]
|
|
284
|
+
.filter((thread) => thread.owner === delivery.recipient && thread.notificationScope !== "result");
|
|
285
|
+
const exact = threads.filter((thread) => thread.workerId === delivery.workerId);
|
|
286
|
+
const recipients = exact.length > 0 ? exact : threads.filter((thread) => thread.notificationScope === "conversation");
|
|
287
|
+
this.#withHitl(delivery.batch, () => this.#emitDelivery(workspaceId, delivery, recipients));
|
|
304
288
|
}
|
|
305
289
|
#enqueueDelivery(workspaceId, task) {
|
|
306
290
|
const prior = this.#deliveryTails.get(workspaceId) ?? Promise.resolve();
|
|
@@ -347,25 +331,10 @@ class Portal {
|
|
|
347
331
|
}
|
|
348
332
|
return ancestors;
|
|
349
333
|
}
|
|
350
|
-
async #controlledWorkerIds(workspaceId, workerId) {
|
|
351
|
-
const byId = _a.#workerMap(await this.#seam.listWorkers(workspaceId));
|
|
352
|
-
if (!byId.has(workerId))
|
|
353
|
-
throw new Error(`worker topology omits controlling worker ${workerId}`);
|
|
354
|
-
const controlled = new Set();
|
|
355
|
-
for (const candidate of byId.keys()) {
|
|
356
|
-
if (candidate === workerId || _a.#ancestors(candidate, byId).includes(workerId)) {
|
|
357
|
-
controlled.add(candidate);
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
return controlled;
|
|
361
|
-
}
|
|
362
334
|
async #activeLoopId(workspaceId, workerId) {
|
|
363
335
|
const active = selectWorkerLoop((await this.#seam.listWorkerLoops({ workspaceId, workerId }))
|
|
364
336
|
.filter(({ terminatedAt, terminalResult }) => terminatedAt === null && terminalResult === null));
|
|
365
|
-
|
|
366
|
-
throw new Error(`controlling worker ${workerId} has no active loop`);
|
|
367
|
-
}
|
|
368
|
-
return active.id;
|
|
337
|
+
return active?.id ?? null;
|
|
369
338
|
}
|
|
370
339
|
interruptForToolCall(toolCallId) {
|
|
371
340
|
return this.#activeInterrupts.get(toolCallId) ?? null;
|
|
@@ -382,6 +351,7 @@ class Portal {
|
|
|
382
351
|
?.map(({ interruptId }) => this.#continuations.get(interruptId)) ?? [];
|
|
383
352
|
const restored = candidates.find((candidate) => candidate !== undefined
|
|
384
353
|
&& candidate.workspaceId === args.workspaceId
|
|
354
|
+
&& candidate.owner === args.owner
|
|
385
355
|
&& candidate.threadId === args.threadId);
|
|
386
356
|
const continuation = restored?.state;
|
|
387
357
|
const router = new EventRouter({
|
|
@@ -392,6 +362,7 @@ class Portal {
|
|
|
392
362
|
...(continuation === undefined ? {} : { continuation }),
|
|
393
363
|
});
|
|
394
364
|
const t = {
|
|
365
|
+
owner: args.owner ?? null,
|
|
395
366
|
workerId: restored?.control.workerId ?? args.workerId,
|
|
396
367
|
loopId: restored?.control.loopId ?? null,
|
|
397
368
|
notificationScope: restored?.notificationScope ?? args.notificationScope,
|
|
@@ -454,13 +425,12 @@ class Portal {
|
|
|
454
425
|
}
|
|
455
426
|
}
|
|
456
427
|
async #resurfaceControlled(workspaceId, thread) {
|
|
457
|
-
|
|
428
|
+
if (thread.owner === null)
|
|
429
|
+
return false;
|
|
430
|
+
const deliveries = await this.#hitl.resurface(workspaceId, thread.owner);
|
|
458
431
|
if (deliveries.length === 0)
|
|
459
432
|
return false;
|
|
460
|
-
const
|
|
461
|
-
? await this.#controlledWorkerIds(workspaceId, thread.workerId)
|
|
462
|
-
: new Set([thread.workerId]);
|
|
463
|
-
const delivery = deliveries.find(({ workerId }) => workerIds.has(workerId));
|
|
433
|
+
const delivery = deliveries.find(({ workerId }) => thread.workerId === workerId) ?? deliveries[0];
|
|
464
434
|
if (delivery === undefined)
|
|
465
435
|
return false;
|
|
466
436
|
if (thread.loopId === null) {
|
|
@@ -486,13 +456,15 @@ class Portal {
|
|
|
486
456
|
// stopped-world is re-presented first; otherwise an active Loop stays attached
|
|
487
457
|
// and an idle conversation settles immediately. Returns true only while this
|
|
488
458
|
// thread remains attached to independently-owned live work.
|
|
489
|
-
async synchronize(workspaceId, thread) {
|
|
459
|
+
async synchronize(workspaceId, thread, waitForWork = false) {
|
|
490
460
|
const bound = thread;
|
|
491
461
|
if (await this.#resurfaceControlled(workspaceId, bound))
|
|
492
462
|
return false;
|
|
493
463
|
const loop = selectWorkerLoop((await this.#seam.listWorkerLoops({ workspaceId, workerId: bound.workerId }))
|
|
494
464
|
.filter(({ terminatedAt, terminalResult }) => terminatedAt === null && terminalResult === null));
|
|
495
465
|
if (loop === null) {
|
|
466
|
+
if (waitForWork)
|
|
467
|
+
return true;
|
|
496
468
|
this.finishThread(bound, []);
|
|
497
469
|
return false;
|
|
498
470
|
}
|
|
@@ -514,6 +486,8 @@ class Portal {
|
|
|
514
486
|
// releasing every addressed interrupt.
|
|
515
487
|
async resolve(workspaceId, thread, entries) {
|
|
516
488
|
const bound = thread;
|
|
489
|
+
if (bound.owner === null)
|
|
490
|
+
throw new Error("an observer cannot resolve interrupts");
|
|
517
491
|
bound.resolvingInterrupts = true;
|
|
518
492
|
const continuations = entries.map(({ interruptId }) => this.#continuations.get(interruptId));
|
|
519
493
|
const persisted = continuations.filter((continuation) => continuation !== undefined);
|
|
@@ -524,6 +498,7 @@ class Portal {
|
|
|
524
498
|
if (continuation !== undefined) {
|
|
525
499
|
for (const candidate of persisted) {
|
|
526
500
|
if (candidate.workspaceId !== continuation.workspaceId
|
|
501
|
+
|| candidate.owner !== continuation.owner
|
|
527
502
|
|| candidate.threadId !== continuation.threadId
|
|
528
503
|
|| candidate.gate.workerId !== continuation.gate.workerId
|
|
529
504
|
|| candidate.gate.loopId !== continuation.gate.loopId
|
|
@@ -533,9 +508,10 @@ class Portal {
|
|
|
533
508
|
}
|
|
534
509
|
}
|
|
535
510
|
}
|
|
536
|
-
await this.#hitl.resolve(workspaceId, entries, async (resolution) => {
|
|
511
|
+
await this.#hitl.resolve(workspaceId, bound.owner, entries, async (resolution) => {
|
|
537
512
|
if (continuation !== undefined) {
|
|
538
513
|
if (continuation.workspaceId !== workspaceId
|
|
514
|
+
|| continuation.owner !== bound.owner
|
|
539
515
|
|| continuation.threadId !== bound.threadId
|
|
540
516
|
|| continuation.gate.workerId !== resolution.workerId
|
|
541
517
|
|| continuation.gate.loopId !== resolution.loopId) {
|
|
@@ -547,29 +523,28 @@ class Portal {
|
|
|
547
523
|
}
|
|
548
524
|
else {
|
|
549
525
|
const exact = resolution.workerId === bound.workerId;
|
|
550
|
-
const controlled = exact
|
|
551
|
-
? true
|
|
552
|
-
: bound.notificationScope === "conversation"
|
|
553
|
-
&& (await this.#controlledWorkerIds(workspaceId, bound.workerId))
|
|
554
|
-
.has(resolution.workerId);
|
|
555
|
-
if (!controlled) {
|
|
556
|
-
throw new Error(`worker ${bound.workerId} does not control pending worker ${resolution.workerId}`);
|
|
557
|
-
}
|
|
558
526
|
bound.loopId = exact
|
|
559
527
|
? resolution.loopId
|
|
560
528
|
: await this.#activeLoopId(workspaceId, bound.workerId);
|
|
561
529
|
}
|
|
562
530
|
});
|
|
531
|
+
bound.emit(entries.map((entry) => ({
|
|
532
|
+
type: EventType.TOOL_CALL_RESULT,
|
|
533
|
+
toolCallId: entry.interruptId,
|
|
534
|
+
messageId: `${entry.interruptId}/result`,
|
|
535
|
+
content: JSON.stringify({ status: entry.status, payload: entry.payload ?? null }),
|
|
536
|
+
})));
|
|
563
537
|
// {§agui-proposal-resolve} A stale or expired answer owns its failure,
|
|
564
538
|
// even when the previously interrupted loop has already terminated.
|
|
565
539
|
bound.resolvingInterrupts = false;
|
|
566
|
-
if (bound.loopId
|
|
567
|
-
|
|
568
|
-
this.#bindLoop(bound, bound.loopId);
|
|
540
|
+
if (bound.loopId !== null)
|
|
541
|
+
this.#bindLoop(bound, bound.loopId);
|
|
569
542
|
for (const { interruptId } of entries)
|
|
570
543
|
this.#continuations.delete(interruptId);
|
|
571
544
|
if (this.#threads.get(workspaceId)?.has(bound)) {
|
|
572
|
-
await this.#resurfaceControlled(workspaceId, bound);
|
|
545
|
+
const surfaced = await this.#resurfaceControlled(workspaceId, bound);
|
|
546
|
+
if (!surfaced && bound.loopId === null)
|
|
547
|
+
this.finishThread(bound, []);
|
|
573
548
|
}
|
|
574
549
|
}
|
|
575
550
|
}
|
package/dist/Portal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Portal.js","sourceRoot":"","sources":["../src/Portal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Portal.js","sourceRoot":"","sources":["../src/Portal.ts"],"names":[],"mappings":"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"}
|
package/dist/ProposalHitl.d.ts
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import type { Interrupt, ResumeEntry } from "@ag-ui/core";
|
|
2
2
|
import { type ApplicationPort } from "@plurnk/plurnk-contracts";
|
|
3
3
|
import type { AguiEvent } from "./types.ts";
|
|
4
|
-
type
|
|
4
|
+
type HitlPort = Pick<ApplicationPort, "subscribeToEvents" | "pendingProposals" | "resolveProposal" | "pendingClientInteractions" | "resolveClientInteraction">;
|
|
5
5
|
export interface HitlBatch {
|
|
6
6
|
readonly events: AguiEvent[];
|
|
7
7
|
readonly interrupts: Interrupt[];
|
|
8
8
|
}
|
|
9
9
|
export interface HitlDelivery {
|
|
10
|
+
readonly recipient: string;
|
|
10
11
|
readonly workerId: number;
|
|
11
12
|
readonly loopId: number;
|
|
12
13
|
readonly batch: HitlBatch;
|
|
13
14
|
}
|
|
14
15
|
export default class ProposalHitl {
|
|
15
16
|
#private;
|
|
16
|
-
constructor(seam:
|
|
17
|
+
constructor(seam: HitlPort, emit: (workspaceId: number, delivery: HitlDelivery) => void);
|
|
17
18
|
start(): void;
|
|
18
19
|
stop(): void;
|
|
19
|
-
resurface(workspaceId: number): Promise<HitlDelivery[]>;
|
|
20
|
-
resolve(workspaceId: number, entries: ResumeEntry[], beforeRelease?: (binding: {
|
|
20
|
+
resurface(workspaceId: number, address: string): Promise<HitlDelivery[]>;
|
|
21
|
+
resolve(workspaceId: number, address: string, entries: ResumeEntry[], beforeRelease?: (binding: {
|
|
21
22
|
loopId: number;
|
|
22
23
|
workerId: number;
|
|
23
24
|
}) => void | Promise<void>): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProposalHitl.d.ts","sourceRoot":"","sources":["../src/ProposalHitl.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAGH,KAAK,eAAe,EAKvB,MAAM,0BAA0B,CAAC;AASlC,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,YAAY,CAAC;AAElE,KAAK,QAAQ,GAAG,IAAI,CAChB,eAAe,EACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,0BAA0B,CAC/B,CAAC;AAEF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"ProposalHitl.d.ts","sourceRoot":"","sources":["../src/ProposalHitl.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAGH,KAAK,eAAe,EAKvB,MAAM,0BAA0B,CAAC;AASlC,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,YAAY,CAAC;AAElE,KAAK,QAAQ,GAAG,IAAI,CAChB,eAAe,EACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,0BAA0B,CAC/B,CAAC;AAEF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC7B;AA6HD,MAAM,CAAC,OAAO,OAAO,YAAY;;IAK7B,YACI,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,EAI9D;IAED,KAAK,IAAI,IAAI,CAwBZ;IAED,IAAI,IAAI,IAAI,CAGX;IAgBK,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAiB7E;IAEK,OAAO,CACT,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EAAE,EACtB,aAAa,GAAE,CACX,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAC5C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAY,GACrC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAqF/C;CACJ"}
|
package/dist/ProposalHitl.js
CHANGED
|
@@ -45,6 +45,7 @@ const comparePending = (left, right) => left.workerId - right.workerId
|
|
|
45
45
|
|| left.turnId - right.turnId
|
|
46
46
|
|| left.kind.localeCompare(right.kind)
|
|
47
47
|
|| left.id - right.id;
|
|
48
|
+
const recipient = (item) => item.kind === "proposal" ? item.projection.owner : item.projection.recipient;
|
|
48
49
|
const render = (item) => item.kind === "proposal"
|
|
49
50
|
? {
|
|
50
51
|
events: proposalToolCall(item.projection),
|
|
@@ -97,9 +98,10 @@ export default class ProposalHitl {
|
|
|
97
98
|
return;
|
|
98
99
|
if (method === "loop/proposal") {
|
|
99
100
|
const item = proposalItem(params);
|
|
100
|
-
if (item.kind !== "proposal" || item.projection.disposition.
|
|
101
|
+
if (item.kind !== "proposal" || item.projection.disposition.decision !== "review")
|
|
101
102
|
return;
|
|
102
103
|
this.#emit(workspaceId, {
|
|
104
|
+
recipient: recipient(item),
|
|
103
105
|
workerId: item.workerId,
|
|
104
106
|
loopId: item.loopId,
|
|
105
107
|
batch: render(item),
|
|
@@ -109,6 +111,7 @@ export default class ProposalHitl {
|
|
|
109
111
|
if (method === "loop/interaction") {
|
|
110
112
|
const item = interactionItem(params);
|
|
111
113
|
this.#emit(workspaceId, {
|
|
114
|
+
recipient: recipient(item),
|
|
112
115
|
workerId: item.workerId,
|
|
113
116
|
loopId: item.loopId,
|
|
114
117
|
batch: render(item),
|
|
@@ -128,13 +131,13 @@ export default class ProposalHitl {
|
|
|
128
131
|
return [
|
|
129
132
|
...proposals
|
|
130
133
|
.map(proposalItem)
|
|
131
|
-
.filter((item) => item.kind === "proposal" && item.projection.disposition.
|
|
134
|
+
.filter((item) => item.kind === "proposal" && item.projection.disposition.decision === "review"),
|
|
132
135
|
...interactions.map(interactionItem),
|
|
133
136
|
]
|
|
134
137
|
.sort(comparePending);
|
|
135
138
|
}
|
|
136
|
-
async resurface(workspaceId) {
|
|
137
|
-
const pending = await this.#pending(workspaceId);
|
|
139
|
+
async resurface(workspaceId, address) {
|
|
140
|
+
const pending = (await this.#pending(workspaceId)).filter((item) => recipient(item) === address);
|
|
138
141
|
const workerIds = [...new Set(pending.map(({ workerId }) => workerId))];
|
|
139
142
|
return workerIds.map((workerId) => {
|
|
140
143
|
const workerPending = pending.filter((item) => item.workerId === workerId);
|
|
@@ -144,14 +147,15 @@ export default class ProposalHitl {
|
|
|
144
147
|
throw new Error(`worker ${workerId} has pending interrupts across multiple loops`);
|
|
145
148
|
}
|
|
146
149
|
return {
|
|
150
|
+
recipient: address,
|
|
147
151
|
workerId,
|
|
148
152
|
loopId: first.loopId,
|
|
149
153
|
batch: combine(workerPending),
|
|
150
154
|
};
|
|
151
155
|
});
|
|
152
156
|
}
|
|
153
|
-
async resolve(workspaceId, entries, beforeRelease = () => { }) {
|
|
154
|
-
const allPending = await this.#pending(workspaceId);
|
|
157
|
+
async resolve(workspaceId, address, entries, beforeRelease = () => { }) {
|
|
158
|
+
const allPending = (await this.#pending(workspaceId)).filter((item) => recipient(item) === address);
|
|
155
159
|
const entryKeys = entries.map(({ interruptId }) => interruptId);
|
|
156
160
|
if (new Set(entryKeys).size !== entryKeys.length) {
|
|
157
161
|
throw new InterruptInputError("interrupt-duplicate", 400, "The resume contains the same interrupt more than once.", {
|
|
@@ -199,14 +203,14 @@ export default class ProposalHitl {
|
|
|
199
203
|
await beforeRelease(binding);
|
|
200
204
|
await Promise.all(resolved.map(async (resolution) => {
|
|
201
205
|
if (resolution.kind === "proposal") {
|
|
202
|
-
this.#seam.resolveProposal(resolution.id, {
|
|
206
|
+
await this.#seam.resolveProposal(resolution.id, {
|
|
203
207
|
decision: resolution.decision,
|
|
204
208
|
...(resolution.body !== undefined ? { body: resolution.body } : {}),
|
|
205
209
|
...(resolution.outcome !== undefined ? { outcome: resolution.outcome } : {}),
|
|
206
|
-
});
|
|
210
|
+
}, { workspaceId, address });
|
|
207
211
|
return;
|
|
208
212
|
}
|
|
209
|
-
await this.#seam.resolveClientInteraction(resolution.id, resolution.resolution);
|
|
213
|
+
await this.#seam.resolveClientInteraction(resolution.id, resolution.resolution, { workspaceId, address });
|
|
210
214
|
}));
|
|
211
215
|
return binding;
|
|
212
216
|
}
|
package/dist/ProposalHitl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProposalHitl.js","sourceRoot":"","sources":["../src/ProposalHitl.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,2EAA2E;AAG3E,OAAO,EACH,QAAQ,EACR,SAAS,GAMZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EACpB,+BAA+B,EAC/B,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ProposalHitl.js","sourceRoot":"","sources":["../src/ProposalHitl.ts"],"names":[],"mappings":"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"}
|
package/dist/RunHandler.d.ts
CHANGED
|
@@ -4,10 +4,11 @@ import { type ActionRequest, type ActionOutcome, type AguiStatusState } from "./
|
|
|
4
4
|
import { type RunAgentInput } from "./types.ts";
|
|
5
5
|
import { type ApplicationPort, type ClientEnvelope } from "@plurnk/plurnk-contracts";
|
|
6
6
|
import { type ResolvedModuleOptions } from "./config.ts";
|
|
7
|
+
export type RunPort = Pick<ApplicationPort, "cancelDrain" | "configurationNotices" | "listProviders" | "readLog" | "registerWorkerOwner" | "claimWorkerOwner">;
|
|
7
8
|
export default class RunHandler {
|
|
8
9
|
#private;
|
|
9
10
|
constructor({ seam, opts, portal, requiresWorkspace, controlRun, envelope, conversationWorker, workerStatus, action }: {
|
|
10
|
-
seam: () =>
|
|
11
|
+
seam: () => RunPort;
|
|
11
12
|
opts: () => ResolvedModuleOptions;
|
|
12
13
|
portal: () => Portal;
|
|
13
14
|
requiresWorkspace: (kind: string) => boolean;
|
|
@@ -22,6 +23,6 @@ export default class RunHandler {
|
|
|
22
23
|
workerStatus: (workspaceId: number, workerId: number) => Promise<AguiStatusState>;
|
|
23
24
|
action: (a: ActionRequest, input: RunAgentInput, env: ClientEnvelope | null, conversationWorkerId?: number) => Promise<ActionOutcome>;
|
|
24
25
|
});
|
|
25
|
-
run(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
26
|
+
run(req: IncomingMessage, res: ServerResponse, connect?: boolean): Promise<void>;
|
|
26
27
|
}
|
|
27
28
|
//# sourceMappingURL=RunHandler.d.ts.map
|
package/dist/RunHandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunHandler.d.ts","sourceRoot":"","sources":["../src/RunHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,EAAwD,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnJ,OAAO,EAA6B,KAAK,aAAa,EAAoB,MAAM,YAAY,CAAC;AAG7F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"RunHandler.d.ts","sourceRoot":"","sources":["../src/RunHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,EAAwD,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnJ,OAAO,EAA6B,KAAK,aAAa,EAAoB,MAAM,YAAY,CAAC;AAG7F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAOzD,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,sBAAsB,GAAG,eAAe,GAAG,SAAS,GAAG,qBAAqB,GAAG,kBAAkB,CAAC,CAAC;AAE/J,MAAM,CAAC,OAAO,OAAO,UAAU;;IAW3B,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE;QACnH,IAAI,EAAE,MAAM,OAAO,CAAC;QACpB,IAAI,EAAE,MAAM,qBAAqB,CAAC;QAClC,MAAM,EAAE,MAAM,MAAM,CAAC;QACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAC7C,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAChG,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC;YAAE,GAAG,EAAE,cAAc,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACpK,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/E,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;QAClF,MAAM,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,EAAE,oBAAoB,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;KACzI,EAUA;IAEK,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAqTnF;CAmBJ"}
|
package/dist/RunHandler.js
CHANGED
|
@@ -34,7 +34,7 @@ export default class RunHandler {
|
|
|
34
34
|
this.#workerStatus = workerStatus;
|
|
35
35
|
this.#action = action;
|
|
36
36
|
}
|
|
37
|
-
async run(req, res) {
|
|
37
|
+
async run(req, res, connect = false) {
|
|
38
38
|
let decoded;
|
|
39
39
|
try {
|
|
40
40
|
decoded = JSON.parse(await RunHandler.#body(req));
|
|
@@ -52,11 +52,17 @@ export default class RunHandler {
|
|
|
52
52
|
}
|
|
53
53
|
const input = parsed.data;
|
|
54
54
|
const forwarded = input.forwardedProps?.plurnk;
|
|
55
|
+
if (forwarded?.control !== undefined && typeof forwarded.control !== "boolean") {
|
|
56
|
+
throw new HttpProblemError(httpProblem("control-invalid", 400, "control must be a boolean.", { stage: "request-validation", retryable: false }));
|
|
57
|
+
}
|
|
58
|
+
if (forwarded?.interactive !== undefined && typeof forwarded.interactive !== "boolean") {
|
|
59
|
+
throw new HttpProblemError(httpProblem("interactive-invalid", 400, "interactive must be a boolean.", { stage: "request-validation", retryable: false }));
|
|
60
|
+
}
|
|
55
61
|
const mode = forwarded?.mode;
|
|
56
62
|
if (mode !== undefined && mode !== "sync") {
|
|
57
63
|
throw new HttpProblemError(httpProblem("unsupported-run-mode", 400, 'forwardedProps.plurnk.mode must be "sync" when present.', { stage: "request-validation", retryable: false }));
|
|
58
64
|
}
|
|
59
|
-
const synchronize = mode === "sync";
|
|
65
|
+
const synchronize = connect || mode === "sync";
|
|
60
66
|
// Control plane FIRST: a management action that doesn't live in a world (and an
|
|
61
67
|
// unknown kind, which is no worker at all) answers without binding — or forging — a
|
|
62
68
|
// workspace. Only world-scoped actions and conversations reach #envelope below.
|
|
@@ -90,6 +96,19 @@ export default class RunHandler {
|
|
|
90
96
|
// a distinct threadId names its own worker: found by name, else minted via
|
|
91
97
|
// createConversationWorker. The name is the identity at BOTH levels.
|
|
92
98
|
const workerId = await this.#conversationWorker(input.threadId, env);
|
|
99
|
+
const control = forwarded?.control === true || (!synchronize && action === null)
|
|
100
|
+
|| action?.kind === "op.exec" || action?.kind === "op.parse";
|
|
101
|
+
const owner = control ? MessageAddress.owner(input.threadId) : undefined;
|
|
102
|
+
if (owner !== undefined) {
|
|
103
|
+
// {§agui-worker-owner} The Run declares the owner's capability set: the tools it
|
|
104
|
+
// implements, and whether a person attends it. Unstated, nobody does.
|
|
105
|
+
await this.#seam().registerWorkerOwner(workspaceId, {
|
|
106
|
+
address: owner, tools: [...new Set(input.tools.map(({ name }) => name))], interactive: forwarded?.interactive === true,
|
|
107
|
+
});
|
|
108
|
+
for (const claim of [workerId, env.workerId]) {
|
|
109
|
+
await this.#seam().claimWorkerOwner({ workspaceId, workerId: claim, owner });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
93
112
|
res.writeHead(200, { "content-type": "text/event-stream", "cache-control": "no-cache", "connection": "keep-alive" });
|
|
94
113
|
let finished = false;
|
|
95
114
|
const interrupts = [];
|
|
@@ -142,6 +161,7 @@ export default class RunHandler {
|
|
|
142
161
|
workerId: lifecycleWorkerId,
|
|
143
162
|
threadId: input.threadId,
|
|
144
163
|
notificationScope,
|
|
164
|
+
...(owner === undefined ? {} : { owner }),
|
|
145
165
|
descendants,
|
|
146
166
|
emit,
|
|
147
167
|
modelWorkerId: workerId,
|
|
@@ -176,7 +196,7 @@ export default class RunHandler {
|
|
|
176
196
|
emit(this.#portal().replay(boundRun, history));
|
|
177
197
|
if (finished)
|
|
178
198
|
return;
|
|
179
|
-
const observing = await this.#portal().synchronize(workspaceId, boundRun);
|
|
199
|
+
const observing = await this.#portal().synchronize(workspaceId, boundRun, connect);
|
|
180
200
|
if (observing) {
|
|
181
201
|
// This Run observes work it did not start. Disconnect detaches the
|
|
182
202
|
// observer; it must not cancel the independently-owned Loop.
|
|
@@ -244,9 +264,6 @@ export default class RunHandler {
|
|
|
244
264
|
...(forwarded !== undefined && Object.hasOwn(forwarded, "maxTurns")
|
|
245
265
|
? { maxTurns: forwarded.maxTurns }
|
|
246
266
|
: this.#opts().maxTurns !== undefined ? { maxTurns: this.#opts().maxTurns } : {}),
|
|
247
|
-
...(forwarded !== undefined && Object.hasOwn(forwarded, "policy")
|
|
248
|
-
? { policy: forwarded.policy }
|
|
249
|
-
: {}),
|
|
250
267
|
...(forwarded !== undefined && Object.hasOwn(forwarded, "openPaths")
|
|
251
268
|
? { openPaths: forwarded.openPaths }
|
|
252
269
|
: {}),
|