@plurnk/plurnk-agui 2.0.0 → 3.1.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 (44) hide show
  1. package/README.md +12 -7
  2. package/SPEC.md +117 -49
  3. package/dist/AguiPlus.js +1 -1
  4. package/dist/AguiPlus.js.map +1 -1
  5. package/dist/AguiSurface.d.ts +1 -0
  6. package/dist/AguiSurface.d.ts.map +1 -1
  7. package/dist/AguiSurface.js +4 -1
  8. package/dist/AguiSurface.js.map +1 -1
  9. package/dist/BuiltinActions.d.ts +1 -1
  10. package/dist/BuiltinActions.d.ts.map +1 -1
  11. package/dist/BuiltinActions.js +17 -0
  12. package/dist/BuiltinActions.js.map +1 -1
  13. package/dist/MessageAddress.d.ts +1 -0
  14. package/dist/MessageAddress.d.ts.map +1 -1
  15. package/dist/MessageAddress.js +4 -1
  16. package/dist/MessageAddress.js.map +1 -1
  17. package/dist/Module.d.ts.map +1 -1
  18. package/dist/Module.js +13 -13
  19. package/dist/Module.js.map +1 -1
  20. package/dist/Portal.d.ts +4 -1
  21. package/dist/Portal.d.ts.map +1 -1
  22. package/dist/Portal.js +137 -123
  23. package/dist/Portal.js.map +1 -1
  24. package/dist/ProposalHitl.d.ts +4 -2
  25. package/dist/ProposalHitl.d.ts.map +1 -1
  26. package/dist/ProposalHitl.js +16 -9
  27. package/dist/ProposalHitl.js.map +1 -1
  28. package/dist/RunHandler.d.ts +2 -2
  29. package/dist/RunHandler.d.ts.map +1 -1
  30. package/dist/RunHandler.js +66 -48
  31. package/dist/RunHandler.js.map +1 -1
  32. package/dist/Translator.d.ts +1 -1
  33. package/dist/Translator.d.ts.map +1 -1
  34. package/dist/Translator.js +3 -6
  35. package/dist/Translator.js.map +1 -1
  36. package/dist/observe.d.ts +1 -1
  37. package/dist/observe.d.ts.map +1 -1
  38. package/dist/observe.js +3 -1
  39. package/dist/observe.js.map +1 -1
  40. package/dist/run-events.d.ts +1 -0
  41. package/dist/run-events.d.ts.map +1 -1
  42. package/dist/run-events.js +1 -0
  43. package/dist/run-events.js.map +1 -1
  44. package/package.json +8 -8
package/dist/Portal.js CHANGED
@@ -7,7 +7,9 @@
7
7
  var _a;
8
8
  import EventRouter from "./EventRouter.js";
9
9
  import { aliveChildren, descendantsState, stateDelta } from "./AguiPlus.js";
10
- import { selectWorkerLoop } from "@plurnk/plurnk-contracts";
10
+ import { Problems, selectWorkerLoop } from "@plurnk/plurnk-contracts";
11
+ import { HttpProblemError } from "./action-results.js";
12
+ import { runErrorEvents, serviceStoppingProblem } from "./run-events.js";
11
13
  import ProposalHitl, {} from "./ProposalHitl.js";
12
14
  import { EventType } from "./types.js";
13
15
  class Portal {
@@ -20,6 +22,7 @@ class Portal {
20
22
  #continuations = new Map();
21
23
  #deliveryTails = new Map();
22
24
  #off = null;
25
+ #stopped = false;
23
26
  constructor(seam) {
24
27
  this.#seam = seam;
25
28
  this.#hitl = new ProposalHitl(seam, (workspaceId, delivery) => this.#routeHitl(workspaceId, delivery));
@@ -49,6 +52,11 @@ class Portal {
49
52
  }
50
53
  if (!_a.#ownsNotification(thread, method, params))
51
54
  continue;
55
+ if (method === "loop/packet" && thread.loopId === null) {
56
+ const loopId = params.loopId;
57
+ if (typeof loopId === "number")
58
+ thread.loopId = loopId;
59
+ }
52
60
  if (method === "loop/terminated") {
53
61
  const loopId = params.loopId;
54
62
  if (typeof loopId !== "number")
@@ -181,7 +189,10 @@ class Portal {
181
189
  // obligation ({§worker-obligations}) and opens nothing.
182
190
  static #openedStream(method, params) {
183
191
  if (method === "log/entry") {
184
- const attrs = params.entry?.attrs;
192
+ const entry = params.entry;
193
+ if (entry?.rx?.status !== 200 && entry?.rx?.status !== 202)
194
+ return null;
195
+ const attrs = entry.attrs;
185
196
  return typeof attrs?.stream === "string" && attrs.detached !== true ? attrs.stream : null;
186
197
  }
187
198
  return method === "stream/event" ? _a.#streamTarget(params) : null;
@@ -215,16 +226,20 @@ class Portal {
215
226
  }
216
227
  }
217
228
  stop() {
229
+ if (this.#stopped)
230
+ return;
231
+ this.#stopped = true;
218
232
  this.#hitl.stop();
219
233
  this.#off?.();
220
234
  this.#off = null;
221
235
  this.#continuations.clear();
222
- }
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;
236
+ // {§agui-shutdown} Module close follows core settlement; remaining Runs are
237
+ // transport lifetimes, not unfinished worker obligations to await again.
238
+ for (const threads of this.#threads.values()) {
239
+ for (const thread of threads)
240
+ this.failThread(thread, runErrorEvents(serviceStoppingProblem()));
241
+ }
242
+ this.#threads.clear();
228
243
  }
229
244
  #emitDelivery(workspaceId, delivery, threads) {
230
245
  if (delivery.batch.events.length === 0)
@@ -232,9 +247,6 @@ class Portal {
232
247
  for (const thread of threads) {
233
248
  const controlLoopId = thread.loopId
234
249
  ?? (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
250
  // {§agui-gate-deferral} — the first gate waits on the open lifecycle; a later one stays durable
239
251
  // and re-surfaces after the first resolves.
240
252
  if (thread.router.reasoningOpen) {
@@ -242,18 +254,31 @@ class Portal {
242
254
  continue;
243
255
  }
244
256
  const paused = thread.router.interrupt();
245
- for (const interrupt of delivery.batch.interrupts) {
246
- 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,
257
+ const continuation = {
258
+ cancelOnDisconnect: thread.cancelOnDisconnect,
259
+ workspaceId,
260
+ owner: delivery.recipient,
261
+ gate: { workerId: delivery.workerId, loopId: delivery.loopId },
262
+ binding: { workerId: thread.workerId, loopId: controlLoopId },
263
+ threadId: thread.threadId,
264
+ notificationScope: thread.notificationScope,
265
+ state: {
266
+ ...paused.continuation,
267
+ currentTurn: paused.continuation.currentTurn
268
+ ?? (thread.workerId === delivery.workerId ? delivery.turnId : null),
269
+ },
270
+ };
271
+ const interrupts = delivery.batch.interrupts.map((original) => {
272
+ const interrupt = { ...original, id: crypto.randomUUID() };
273
+ this.#continuations.set(interrupt.id, {
274
+ toolCallId: original.toolCallId ?? original.id,
275
+ continuation,
254
276
  });
255
- }
256
- thread.emit([...delivery.batch.events, ...paused.events]);
277
+ return interrupt;
278
+ });
279
+ this.#withHitl({ events: delivery.batch.events, interrupts }, () => {
280
+ thread.emit([...delivery.batch.events, ...paused.events]);
281
+ });
257
282
  }
258
283
  }
259
284
  #presentDeferred(workspaceId, thread) {
@@ -261,7 +286,7 @@ class Portal {
261
286
  if (delivery === null || thread.router.reasoningOpen)
262
287
  return;
263
288
  thread.deferredDelivery = null;
264
- this.#withHitl(delivery.batch, () => this.#emitDelivery(workspaceId, delivery, [thread]));
289
+ this.#emitDelivery(workspaceId, delivery, [thread]);
265
290
  }
266
291
  #withHitl(batch, emit) {
267
292
  for (const interrupt of batch.interrupts) {
@@ -277,30 +302,11 @@ class Portal {
277
302
  }
278
303
  }
279
304
  #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
- });
305
+ const threads = [...(this.#threads.get(workspaceId) ?? [])]
306
+ .filter((thread) => thread.owner === delivery.recipient && thread.notificationScope !== "result");
307
+ const exact = threads.filter((thread) => thread.workerId === delivery.workerId);
308
+ const recipients = exact.length > 0 ? exact : threads.filter((thread) => thread.notificationScope === "conversation");
309
+ this.#emitDelivery(workspaceId, delivery, recipients);
304
310
  }
305
311
  #enqueueDelivery(workspaceId, task) {
306
312
  const prior = this.#deliveryTails.get(workspaceId) ?? Promise.resolve();
@@ -347,25 +353,10 @@ class Portal {
347
353
  }
348
354
  return ancestors;
349
355
  }
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
356
  async #activeLoopId(workspaceId, workerId) {
363
357
  const active = selectWorkerLoop((await this.#seam.listWorkerLoops({ workspaceId, workerId }))
364
358
  .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;
359
+ return active?.id ?? null;
369
360
  }
370
361
  interruptForToolCall(toolCallId) {
371
362
  return this.#activeInterrupts.get(toolCallId) ?? null;
@@ -378,11 +369,14 @@ class Portal {
378
369
  // adopts the first model-origin row's worker — a fresh workspace's model worker is born
379
370
  // at the drain).
380
371
  openThread(args) {
372
+ if (this.#stopped)
373
+ throw new HttpProblemError(serviceStoppingProblem());
381
374
  const candidates = args.resume
382
- ?.map(({ interruptId }) => this.#continuations.get(interruptId)) ?? [];
383
- const restored = candidates.find((candidate) => candidate !== undefined
384
- && candidate.workspaceId === args.workspaceId
385
- && candidate.threadId === args.threadId);
375
+ ?.map(({ interruptId }) => this.#continuations.get(interruptId)?.continuation) ?? [];
376
+ const first = candidates[0];
377
+ const restored = first !== undefined && candidates.every((candidate) => candidate === first)
378
+ && first.workspaceId === args.workspaceId && first.owner === args.owner && first.threadId === args.threadId
379
+ ? first : undefined;
386
380
  const continuation = restored?.state;
387
381
  const router = new EventRouter({
388
382
  threadId: args.threadId,
@@ -392,8 +386,9 @@ class Portal {
392
386
  ...(continuation === undefined ? {} : { continuation }),
393
387
  });
394
388
  const t = {
395
- workerId: restored?.control.workerId ?? args.workerId,
396
- loopId: restored?.control.loopId ?? null,
389
+ owner: args.owner ?? null,
390
+ workerId: restored?.binding.workerId ?? args.workerId,
391
+ loopId: restored?.binding.loopId ?? null,
397
392
  notificationScope: restored?.notificationScope ?? args.notificationScope,
398
393
  router,
399
394
  emit: args.emit,
@@ -403,6 +398,8 @@ class Portal {
403
398
  deferredFinish: null,
404
399
  pendingTerminations: [],
405
400
  resolvingInterrupts: args.resume !== undefined,
401
+ cancelOnDisconnect: restored?.cancelOnDisconnect ?? args.cancelOnDisconnect === true,
402
+ disconnected: false,
406
403
  deferredDelivery: null,
407
404
  descendants: args.descendants === true,
408
405
  tree: null,
@@ -420,6 +417,14 @@ class Portal {
420
417
  return t;
421
418
  }
422
419
  closeRun(workspaceId, t) { this.#threads.get(workspaceId)?.delete(t); }
420
+ disconnect(thread) {
421
+ const bound = thread;
422
+ if (bound.disconnected)
423
+ return;
424
+ bound.disconnected = true;
425
+ if (bound.cancelOnDisconnect)
426
+ this.#seam.cancelDrain(bound.workerId, "client_disconnected");
427
+ }
423
428
  runStarted(thread, state) {
424
429
  return thread.router.runStarted(state);
425
430
  }
@@ -454,13 +459,18 @@ class Portal {
454
459
  }
455
460
  }
456
461
  async #resurfaceControlled(workspaceId, thread) {
457
- const deliveries = await this.#hitl.resurface(workspaceId);
462
+ if (thread.owner === null)
463
+ return false;
464
+ const deliveries = await this.#hitl.resurface(workspaceId, thread.owner);
465
+ const pendingIds = new Set(deliveries.flatMap(({ batch }) => batch.interrupts.map(({ toolCallId, id }) => toolCallId ?? id)));
466
+ for (const [id, candidate] of this.#continuations) {
467
+ if (candidate.continuation.workspaceId === workspaceId && candidate.continuation.owner === thread.owner
468
+ && !pendingIds.has(candidate.toolCallId))
469
+ this.#continuations.delete(id);
470
+ }
458
471
  if (deliveries.length === 0)
459
472
  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));
473
+ const delivery = deliveries.find(({ workerId }) => thread.workerId === workerId) ?? deliveries[0];
464
474
  if (delivery === undefined)
465
475
  return false;
466
476
  if (thread.loopId === null) {
@@ -468,7 +478,7 @@ class Portal {
468
478
  ? delivery.loopId
469
479
  : await this.#activeLoopId(workspaceId, thread.workerId);
470
480
  }
471
- this.#withHitl(delivery.batch, () => this.#emitDelivery(workspaceId, delivery, [thread]));
481
+ this.#emitDelivery(workspaceId, delivery, [thread]);
472
482
  return true;
473
483
  }
474
484
  #bindLoop(thread, loopId) {
@@ -486,13 +496,15 @@ class Portal {
486
496
  // stopped-world is re-presented first; otherwise an active Loop stays attached
487
497
  // and an idle conversation settles immediately. Returns true only while this
488
498
  // thread remains attached to independently-owned live work.
489
- async synchronize(workspaceId, thread) {
499
+ async synchronize(workspaceId, thread, waitForWork = false) {
490
500
  const bound = thread;
491
501
  if (await this.#resurfaceControlled(workspaceId, bound))
492
502
  return false;
493
503
  const loop = selectWorkerLoop((await this.#seam.listWorkerLoops({ workspaceId, workerId: bound.workerId }))
494
504
  .filter(({ terminatedAt, terminalResult }) => terminatedAt === null && terminalResult === null));
495
505
  if (loop === null) {
506
+ if (waitForWork)
507
+ return true;
496
508
  this.finishThread(bound, []);
497
509
  return false;
498
510
  }
@@ -504,72 +516,74 @@ class Portal {
504
516
  async run(thread, args) {
505
517
  const bound = thread;
506
518
  const ack = await this.#seam.runLoop(args);
519
+ if (bound.disconnected) {
520
+ if (bound.cancelOnDisconnect)
521
+ this.#seam.cancelDrain(bound.workerId, "client_disconnected");
522
+ return null;
523
+ }
524
+ if (!this.#threads.get(args.workspaceId)?.has(bound))
525
+ return null;
507
526
  if (await this.#resurfaceControlled(args.workspaceId, bound))
508
527
  return null;
509
528
  this.#bindLoop(bound, ack.loopId);
510
529
  return { loopId: ack.loopId };
511
530
  }
512
531
  cancel(workerId) { return this.#seam.cancelDrain(workerId); }
513
- // A standard resume AG-UI Run binds to the persisted continuation before
532
+ // A standard resume AG-UI Run binds to its presentation's continuation before
514
533
  // releasing every addressed interrupt.
515
534
  async resolve(workspaceId, thread, entries) {
516
535
  const bound = thread;
536
+ if (bound.owner === null)
537
+ throw new Error("an observer cannot resolve interrupts");
517
538
  bound.resolvingInterrupts = true;
518
539
  const continuations = entries.map(({ interruptId }) => this.#continuations.get(interruptId));
519
- const persisted = continuations.filter((continuation) => continuation !== undefined);
520
- if (persisted.length > 0 && persisted.length !== entries.length) {
521
- throw new Error("resume mixes persisted and unbound interrupts");
540
+ const recorded = continuations.filter((continuation) => continuation !== undefined);
541
+ if (recorded.length !== entries.length || recorded.length === 0) {
542
+ throw new HttpProblemError(Problems.create("agui:interrupt", "interrupt-not-pending", 409, "The resume addresses an unknown interrupt presentation.", {
543
+ stage: "interrupt-resolution", retryable: false,
544
+ recovery: "Refresh pending interrupts before resuming.",
545
+ }));
522
546
  }
523
- const continuation = persisted[0];
524
- if (continuation !== undefined) {
525
- for (const candidate of persisted) {
526
- if (candidate.workspaceId !== continuation.workspaceId
527
- || candidate.threadId !== continuation.threadId
528
- || candidate.gate.workerId !== continuation.gate.workerId
529
- || candidate.gate.loopId !== continuation.gate.loopId
530
- || candidate.control.workerId !== continuation.control.workerId
531
- || candidate.control.loopId !== continuation.control.loopId) {
532
- throw new Error("resume interrupts do not share one persisted control binding");
533
- }
534
- }
547
+ const continuation = recorded[0].continuation;
548
+ if (recorded.some((candidate) => candidate.continuation !== continuation)) {
549
+ throw new HttpProblemError(Problems.create("agui:interrupt", "interrupt-binding-invalid", 400, "The resume combines interrupts from different Runs."));
535
550
  }
536
- await this.#hitl.resolve(workspaceId, entries, async (resolution) => {
537
- if (continuation !== undefined) {
538
- if (continuation.workspaceId !== workspaceId
539
- || continuation.threadId !== bound.threadId
540
- || continuation.gate.workerId !== resolution.workerId
541
- || continuation.gate.loopId !== resolution.loopId) {
542
- throw new Error("resume does not match its persisted interrupt binding");
543
- }
544
- bound.workerId = continuation.control.workerId;
545
- bound.loopId = continuation.control.loopId;
546
- bound.notificationScope = continuation.notificationScope;
547
- }
548
- else {
549
- 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
- bound.loopId = exact
559
- ? resolution.loopId
560
- : await this.#activeLoopId(workspaceId, bound.workerId);
551
+ const resolutions = entries.map((entry, index) => ({ ...entry, interruptId: recorded[index].toolCallId }));
552
+ await this.#hitl.resolve(workspaceId, bound.owner, resolutions, (resolution) => {
553
+ if (continuation.workspaceId !== workspaceId
554
+ || continuation.owner !== bound.owner
555
+ || continuation.threadId !== bound.threadId
556
+ || continuation.gate.workerId !== resolution.workerId
557
+ || continuation.gate.loopId !== resolution.loopId) {
558
+ throw new HttpProblemError(Problems.create("agui:interrupt", "interrupt-binding-invalid", 400, "The resume does not match its interrupt's conversation."));
561
559
  }
560
+ bound.workerId = continuation.binding.workerId;
561
+ bound.loopId = continuation.binding.loopId;
562
+ bound.notificationScope = continuation.notificationScope;
563
+ bound.cancelOnDisconnect = continuation.cancelOnDisconnect;
564
+ if (bound.disconnected)
565
+ throw new HttpProblemError(Problems.create("agui:interrupt", "connection-closed", 499, "The connection closed before the interrupt was resolved."));
562
566
  });
567
+ bound.emit(resolutions.map((entry) => ({
568
+ type: EventType.TOOL_CALL_RESULT,
569
+ toolCallId: entry.interruptId,
570
+ messageId: `${entry.interruptId}/result`,
571
+ content: JSON.stringify({ status: entry.status, payload: entry.payload ?? null }),
572
+ })));
563
573
  // {§agui-proposal-resolve} A stale or expired answer owns its failure,
564
574
  // even when the previously interrupted loop has already terminated.
565
575
  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);
569
- for (const { interruptId } of entries)
570
- this.#continuations.delete(interruptId);
576
+ if (bound.loopId !== null)
577
+ this.#bindLoop(bound, bound.loopId);
578
+ const resolvedIds = new Set(resolutions.map(({ interruptId }) => interruptId));
579
+ for (const [id, candidate] of this.#continuations) {
580
+ if (candidate.continuation.workspaceId === workspaceId && resolvedIds.has(candidate.toolCallId))
581
+ this.#continuations.delete(id);
582
+ }
571
583
  if (this.#threads.get(workspaceId)?.has(bound)) {
572
- await this.#resurfaceControlled(workspaceId, bound);
584
+ const surfaced = await this.#resurfaceControlled(workspaceId, bound);
585
+ if (!surfaced && bound.loopId === null)
586
+ this.finishThread(bound, []);
573
587
  }
574
588
  }
575
589
  }
@@ -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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"}
@@ -7,8 +7,10 @@ export interface HitlBatch {
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;
13
+ readonly turnId: number;
12
14
  readonly batch: HitlBatch;
13
15
  }
14
16
  export default class ProposalHitl {
@@ -16,8 +18,8 @@ export default class ProposalHitl {
16
18
  constructor(seam: HitlPort, emit: (workspaceId: number, delivery: HitlDelivery) => void);
17
19
  start(): void;
18
20
  stop(): void;
19
- resurface(workspaceId: number): Promise<HitlDelivery[]>;
20
- resolve(workspaceId: number, entries: ResumeEntry[], beforeRelease?: (binding: {
21
+ resurface(workspaceId: number, address: string): Promise<HitlDelivery[]>;
22
+ resolve(workspaceId: number, address: string, entries: ResumeEntry[], beforeRelease?: (binding: {
21
23
  loopId: number;
22
24
  workerId: number;
23
25
  }) => 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,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,CA0BZ;IAED,IAAI,IAAI,IAAI,CAGX;IAgBK,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkB7E;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"}