@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.
Files changed (49) hide show
  1. package/README.md +12 -22
  2. package/SPEC.md +80 -52
  3. package/dist/AguiPlus.js +1 -1
  4. package/dist/AguiPlus.js.map +1 -1
  5. package/dist/AguiSurface.d.ts.map +1 -1
  6. package/dist/AguiSurface.js +2 -1
  7. package/dist/AguiSurface.js.map +1 -1
  8. package/dist/BuiltinActions.d.ts +2 -1
  9. package/dist/BuiltinActions.d.ts.map +1 -1
  10. package/dist/BuiltinActions.js.map +1 -1
  11. package/dist/MessageAddress.d.ts +1 -0
  12. package/dist/MessageAddress.d.ts.map +1 -1
  13. package/dist/MessageAddress.js +4 -1
  14. package/dist/MessageAddress.js.map +1 -1
  15. package/dist/Module.d.ts +12 -26
  16. package/dist/Module.d.ts.map +1 -1
  17. package/dist/Module.js +24 -105
  18. package/dist/Module.js.map +1 -1
  19. package/dist/Portal.d.ts +4 -4
  20. package/dist/Portal.d.ts.map +1 -1
  21. package/dist/Portal.js +52 -77
  22. package/dist/Portal.js.map +1 -1
  23. package/dist/ProposalHitl.d.ts +5 -4
  24. package/dist/ProposalHitl.d.ts.map +1 -1
  25. package/dist/ProposalHitl.js +13 -9
  26. package/dist/ProposalHitl.js.map +1 -1
  27. package/dist/RunHandler.d.ts +3 -2
  28. package/dist/RunHandler.d.ts.map +1 -1
  29. package/dist/RunHandler.js +23 -6
  30. package/dist/RunHandler.js.map +1 -1
  31. package/dist/Translator.js +1 -1
  32. package/dist/Translator.js.map +1 -1
  33. package/dist/config.d.ts +0 -4
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +0 -2
  36. package/dist/config.js.map +1 -1
  37. package/dist/daemon-module.d.ts +4 -0
  38. package/dist/daemon-module.d.ts.map +1 -0
  39. package/dist/daemon-module.js +5 -0
  40. package/dist/daemon-module.js.map +1 -0
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +4 -4
  44. package/dist/index.js.map +1 -1
  45. package/dist/observe.d.ts +1 -1
  46. package/dist/observe.d.ts.map +1 -1
  47. package/dist/observe.js +3 -1
  48. package/dist/observe.js.map +1 -1
  49. 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 attrs = params.entry?.attrs;
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.set(key, {
248
- workspaceId,
249
- gate: { workerId: delivery.workerId, loopId: delivery.loopId },
250
- control: { workerId: thread.workerId, loopId: controlLoopId },
251
- threadId: thread.threadId,
252
- notificationScope: thread.notificationScope,
253
- state: paused.continuation,
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 exact = this.#exactThreads(workspaceId, delivery);
281
- if (exact.length > 0) {
282
- this.#withHitl(delivery.batch, () => this.#emitDelivery(workspaceId, delivery, exact));
283
- return;
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
- if (active === null) {
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
- const deliveries = await this.#hitl.resurface(workspaceId);
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 workerIds = thread.notificationScope === "conversation"
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 === null)
567
- throw new Error("resolved interrupts did not bind a loop");
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
  }
@@ -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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"}
@@ -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 HitlSeam = Pick<ApplicationPort, "subscribeToEvents" | "pendingProposals" | "resolveProposal" | "pendingClientInteractions" | "resolveClientInteraction">;
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: HitlSeam, emit: (workspaceId: number, delivery: HitlDelivery) => void);
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;AA2HD,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,CAsBZ;IAED,IAAI,IAAI,IAAI,CAGX;IAgBK,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgB5D;IAEK,OAAO,CACT,WAAW,EAAE,MAAM,EACnB,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"}
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"}
@@ -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.owner !== "client")
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.owner === "client"),
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProposalHitl.js","sourceRoot":"","sources":["../src/ProposalHitl.ts"],"names":[],"mappings":"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"}
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;AAyDvB,MAAM,mBAAoB,SAAQ,KAAK;IAC1B,OAAO,CAAiB;IAEjC,YAAY,IAAY,EAAE,MAAc,EAAE,MAAc,EAAE,UAA6C;QACnG,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;YACpE,KAAK,EAAE,sBAAsB;YAC7B,SAAS,EAAE,KAAK;YAChB,GAAG,UAAU;SAChB,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAED,MAAM,YAAY,GAAG,CAAC,KAA2B,EAAe,EAAE;IAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,UAAU,CAAC,UAAU;QACzB,GAAG,EAAE,QAAQ,UAAU,CAAC,UAAU,EAAE;QACpC,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,UAAU;KACb,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAkC,EAAe,EAAE;IACxE,MAAM,UAAU,GAAG,SAAS,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO;QACH,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,UAAU,CAAC,aAAa;QAC5B,GAAG,EAAE,OAAO,UAAU,CAAC,aAAa,EAAE;QACtC,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,UAAU;KACb,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAiB,EAAE,KAAkB,EAAU,EAAE,CACrE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;OAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;OAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;OAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;OACnC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AAE1B,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AAE9H,MAAM,MAAM,GAAG,CAAC,IAAiB,EAAa,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;IACrE,CAAC,CAAC;QACE,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;QACzC,UAAU,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3C;IACD,CAAC,CAAC;QACE,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,UAAU,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtD,CAAC;AAEN,MAAM,OAAO,GAAG,CAAC,KAA6B,EAAa,EAAE;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO;QACH,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;QAC/C,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;KAC9D,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAkB,EAA2B,EAAE;IACpE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,KAAK,CAAC,WAAW;YACtB,EAAE,EAAE,QAAQ,CAAC,UAAU;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,CAAC;IACN,CAAC;IACD,MAAM,WAAW,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO;QACH,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,KAAK,CAAC,WAAW;QACtB,EAAE,EAAE,WAAW,CAAC,aAAa;QAC7B,UAAU,EAAE,WAAW,CAAC,UAAU;KACrC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAY;IACpB,KAAK,CAAW;IAChB,KAAK,CAAwD;IACtE,IAAI,GAAwB,IAAI,CAAC;IAEjC,YACI,IAAc,EACd,IAA2D;QAE3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACrE,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO;YACjC,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,MAA8B,CAAC,CAAC;gBAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ;oBAAE,OAAO;gBAC1F,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBACpB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC;oBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;iBACtB,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YACD,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAqC,CAAC,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBACpB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC;oBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;iBACtB,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,WAAmB;QAC9B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,WAAW,CAAC;SACpD,CAAC,CAAC;QACH,OAAO;YACH,GAAG,SAAS;iBACP,GAAG,CAAC,YAAY,CAAC;iBACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACpG,GAAG,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC;SACvC;aACI,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,OAAe;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC;QACjG,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACnE,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,+CAA+C,CAAC,CAAC;YACvF,CAAC;YACD,OAAO;gBACH,SAAS,EAAE,OAAO;gBAClB,QAAQ;gBACR,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC;aAChC,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CACT,WAAmB,EACnB,OAAe,EACf,OAAsB,EACtB,aAAa,GAEe,GAAG,EAAE,GAAE,CAAC;QAEpC,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC;QACpG,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,mBAAmB,CACzB,qBAAqB,EACrB,GAAG,EACH,wDAAwD,EACxD;gBACI,oBAAoB,EAAE,SAAS;gBAC/B,QAAQ,EAAE,8CAA8C;aAC3D,CACJ,CAAC;QACN,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,mBAAmB,CACzB,mBAAmB,EACnB,GAAG,EACH,kDAAkD,EAClD,EAAE,QAAQ,EAAE,uFAAuF,EAAE,CACxG,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAG,WAAiC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,mBAAmB,CACzB,uBAAuB,EACvB,GAAG,EACH,wDAAwD,EACxD;gBACI,oBAAoB,EAAE,CAAC,GAAG,QAAQ,CAAC;gBACnC,mBAAmB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;gBACrD,QAAQ,EAAE,6CAA6C;aAC1D,CACJ,CAAC;QACN,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,mBAAmB,CACzB,sBAAsB,EACtB,GAAG,EACH,4DAA4D,EAC5D;gBACI,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;gBACzB,QAAQ,EAAE,gCAAgC;aAC7C,CACJ,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,mBAAmB,CACzB,0BAA0B,EAC1B,GAAG,EACH,kEAAkE,QAAQ,GAAG,EAC7E;gBACI,QAAQ;gBACR,oBAAoB,EAAE,CAAC,GAAG,QAAQ,CAAC;gBACnC,mBAAmB,EAAE,CAAC,GAAG,QAAQ,CAAC;gBAClC,QAAQ,EAAE,gEAAgE;aAC7E,CACJ,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,+CAA+C,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QACtD,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YAChD,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE;oBAC5C,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/E,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7B,OAAO;YACX,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -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: () => ApplicationPort;
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
@@ -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;AAMzD,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,eAAe,CAAC;QAC5B,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,GAAG,OAAO,CAAC,IAAI,CAAC,CAkSlE;CAmBJ"}
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"}
@@ -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
  : {}),