@adonis-agora/agent 0.48.0 → 0.50.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 (105) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/providers/agent_provider.d.ts.map +1 -1
  3. package/dist/providers/agent_provider.js +225 -46
  4. package/dist/providers/agent_provider.js.map +1 -1
  5. package/dist/providers/dashboard_provider.js +1 -1
  6. package/dist/providers/dashboard_provider.js.map +1 -1
  7. package/dist/src/agent-loop.d.ts +18 -0
  8. package/dist/src/agent-loop.d.ts.map +1 -1
  9. package/dist/src/agent-loop.js +52 -8
  10. package/dist/src/agent-loop.js.map +1 -1
  11. package/dist/src/agent-service.d.ts +129 -9
  12. package/dist/src/agent-service.d.ts.map +1 -1
  13. package/dist/src/agent-service.js +284 -8
  14. package/dist/src/agent-service.js.map +1 -1
  15. package/dist/src/chat-queue-service.d.ts +153 -0
  16. package/dist/src/chat-queue-service.d.ts.map +1 -0
  17. package/dist/src/chat-queue-service.js +360 -0
  18. package/dist/src/chat-queue-service.js.map +1 -0
  19. package/dist/src/client/chat-client.d.ts +52 -0
  20. package/dist/src/client/chat-client.d.ts.map +1 -1
  21. package/dist/src/client/chat-client.js +51 -2
  22. package/dist/src/client/chat-client.js.map +1 -1
  23. package/dist/src/client/index.d.ts +1 -1
  24. package/dist/src/client/index.d.ts.map +1 -1
  25. package/dist/src/client/index.js +1 -1
  26. package/dist/src/client/index.js.map +1 -1
  27. package/dist/src/client/sse.d.ts +5 -0
  28. package/dist/src/client/sse.d.ts.map +1 -1
  29. package/dist/src/client/sse.js +5 -1
  30. package/dist/src/client/sse.js.map +1 -1
  31. package/dist/src/define_config.d.ts +3 -1
  32. package/dist/src/define_config.d.ts.map +1 -1
  33. package/dist/src/define_config.js.map +1 -1
  34. package/dist/src/durable/agent-run-context.d.ts +6 -0
  35. package/dist/src/durable/agent-run-context.d.ts.map +1 -1
  36. package/dist/src/durable/agent-run-context.js.map +1 -1
  37. package/dist/src/durable/agent-run-workflow.d.ts.map +1 -1
  38. package/dist/src/durable/agent-run-workflow.js +94 -6
  39. package/dist/src/durable/agent-run-workflow.js.map +1 -1
  40. package/dist/src/durable/durable-agent-runner.d.ts +19 -3
  41. package/dist/src/durable/durable-agent-runner.d.ts.map +1 -1
  42. package/dist/src/durable/durable-agent-runner.js +62 -3
  43. package/dist/src/durable/durable-agent-runner.js.map +1 -1
  44. package/dist/src/elicitation.d.ts +12 -0
  45. package/dist/src/elicitation.d.ts.map +1 -1
  46. package/dist/src/elicitation.js +9 -1
  47. package/dist/src/elicitation.js.map +1 -1
  48. package/dist/src/index.d.ts +8 -5
  49. package/dist/src/index.d.ts.map +1 -1
  50. package/dist/src/index.js +7 -4
  51. package/dist/src/index.js.map +1 -1
  52. package/dist/src/react/use-agent-chat.d.ts.map +1 -1
  53. package/dist/src/react/use-agent-chat.js +15 -1
  54. package/dist/src/react/use-agent-chat.js.map +1 -1
  55. package/dist/src/runners/inline-agent-runner.d.ts +30 -6
  56. package/dist/src/runners/inline-agent-runner.d.ts.map +1 -1
  57. package/dist/src/runners/inline-agent-runner.js +117 -21
  58. package/dist/src/runners/inline-agent-runner.js.map +1 -1
  59. package/dist/src/spi/agent-runner.d.ts +20 -1
  60. package/dist/src/spi/agent-runner.d.ts.map +1 -1
  61. package/dist/src/spi/chat-queue.d.ts +133 -0
  62. package/dist/src/spi/chat-queue.d.ts.map +1 -0
  63. package/dist/src/spi/chat-queue.js +48 -0
  64. package/dist/src/spi/chat-queue.js.map +1 -0
  65. package/dist/src/spi/model-catalog.d.ts +13 -0
  66. package/dist/src/spi/model-catalog.d.ts.map +1 -1
  67. package/dist/src/spi/model-catalog.js.map +1 -1
  68. package/dist/src/spi/quota-provider.d.ts +30 -1
  69. package/dist/src/spi/quota-provider.d.ts.map +1 -1
  70. package/dist/src/spi/quota-provider.js +34 -1
  71. package/dist/src/spi/quota-provider.js.map +1 -1
  72. package/dist/src/stores/ledger-quota-provider.d.ts +10 -1
  73. package/dist/src/stores/ledger-quota-provider.d.ts.map +1 -1
  74. package/dist/src/stores/ledger-quota-provider.js +14 -3
  75. package/dist/src/stores/ledger-quota-provider.js.map +1 -1
  76. package/dist/src/stores/lucid-schema.d.ts +8 -6
  77. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  78. package/dist/src/stores/lucid-schema.js +34 -7
  79. package/dist/src/stores/lucid-schema.js.map +1 -1
  80. package/dist/src/stores/lucid.d.ts +23 -1
  81. package/dist/src/stores/lucid.d.ts.map +1 -1
  82. package/dist/src/stores/lucid.js +192 -0
  83. package/dist/src/stores/lucid.js.map +1 -1
  84. package/dist/src/stream-events.d.ts +17 -0
  85. package/dist/src/stream-events.d.ts.map +1 -1
  86. package/dist/src/testing/chat-queue-store-contract.d.ts +26 -0
  87. package/dist/src/testing/chat-queue-store-contract.d.ts.map +1 -0
  88. package/dist/src/testing/chat-queue-store-contract.js +162 -0
  89. package/dist/src/testing/chat-queue-store-contract.js.map +1 -0
  90. package/dist/src/testing/in-memory-store.d.ts +20 -1
  91. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  92. package/dist/src/testing/in-memory-store.js +125 -0
  93. package/dist/src/testing/in-memory-store.js.map +1 -1
  94. package/dist/src/testing/index.d.ts +1 -0
  95. package/dist/src/testing/index.d.ts.map +1 -1
  96. package/dist/src/testing/index.js +1 -0
  97. package/dist/src/testing/index.js.map +1 -1
  98. package/dist/src/tool-presentation.d.ts +5 -0
  99. package/dist/src/tool-presentation.d.ts.map +1 -1
  100. package/dist/src/tool-presentation.js +5 -1
  101. package/dist/src/tool-presentation.js.map +1 -1
  102. package/dist/src/types.d.ts +25 -1
  103. package/dist/src/types.d.ts.map +1 -1
  104. package/dist/stubs/database/migrations/create_agent_tables.stub +2 -2
  105. package/package.json +1 -1
@@ -5,6 +5,29 @@ import { findCatalogModel, ModelNotAllowedError, } from './spi/model-catalog.js'
5
5
  import { QuotaBlockedError } from './spi/quota-provider.js';
6
6
  /** A feedback comment is stored with the message — bounded like any other stored text. */
7
7
  const MAX_FEEDBACK_COMMENT_LENGTH = 2000;
8
+ /**
9
+ * A queue request the service refuses — `status` and `code` are what the routes answer:
10
+ * `409 run_active` (a start-or-refuse {@link AgentService.chat}, or a regenerate, on a busy thread),
11
+ * `410` (a queued message that already started or was removed), `404` (no such queued message),
12
+ * `400` (a bad patch), `501` (the store cannot hold a queue).
13
+ */
14
+ export class ChatQueueError extends Error {
15
+ status;
16
+ code;
17
+ constructor(status, message, code) {
18
+ super(message);
19
+ this.status = status;
20
+ this.code = code;
21
+ this.name = 'ChatQueueError';
22
+ }
23
+ }
24
+ /** `regenerate: true` on a send without a `threadId` — there is no answer to regenerate. */
25
+ export class RegenerateNeedsThreadError extends Error {
26
+ constructor() {
27
+ super('regenerate requires an existing threadId');
28
+ this.name = 'RegenerateNeedsThreadError';
29
+ }
30
+ }
8
31
  /** A send's attachments were refused — `status` is what the chat route answers (`403`, `501`). */
9
32
  export class AttachmentRefusedError extends Error {
10
33
  status;
@@ -57,8 +80,21 @@ export class AgentService {
57
80
  }
58
81
  return entry.id;
59
82
  }
60
- /** The model a turn runs on: the send's own, else the thread's pinned one, else none. */
83
+ /**
84
+ * The model a turn runs on: the send's own (that turn only — never stored on the thread), else the
85
+ * thread's pinned one, else none. An agent the catalog locks to one model runs on it whatever was
86
+ * sent or pinned, and a send naming another model is refused.
87
+ */
61
88
  async resolveModel(actor, agent, requested, threadId) {
89
+ const locked = this.options.models !== undefined
90
+ ? (await this.options.models.list({ actor, agent })).locked
91
+ : undefined;
92
+ if (locked !== undefined) {
93
+ if (requested !== undefined && requested !== locked.model) {
94
+ throw new ModelNotAllowedError(`model "${requested}" cannot be selected: ${locked.reason ?? `this agent always uses "${locked.model}"`}`);
95
+ }
96
+ return locked.model;
97
+ }
62
98
  const pinned = requested === undefined && threadId !== undefined
63
99
  ? ((await this.store.getThread(threadId))?.model ?? null)
64
100
  : null;
@@ -81,8 +117,12 @@ export class AgentService {
81
117
  await this.store.updateThread(threadId, { model: pinned });
82
118
  return true;
83
119
  }
84
- /** The registered agents, for a picker (`GET <path>/agents`). */
85
- listAgents() {
120
+ /**
121
+ * The registered agents, for a picker (`GET <path>/agents`). With a model catalog, an agent it
122
+ * locks to one model for this actor carries `lockedModel` — the same lock `GET <path>/models`
123
+ * reports as `locked`.
124
+ */
125
+ async listAgents(actor) {
86
126
  const defaultName = this.deps.defaultAgentName();
87
127
  const listed = this.deps.agentDefinitions();
88
128
  const entries = listed.map((definition) => ({
@@ -90,9 +130,17 @@ export class AgentService {
90
130
  description: definition.description ?? '',
91
131
  ...(definition.name === defaultName ? { isDefault: true } : {}),
92
132
  }));
93
- return entries.some((entry) => entry.name === defaultName)
133
+ const all = entries.some((entry) => entry.name === defaultName)
94
134
  ? entries
95
135
  : [{ name: defaultName, description: '', isDefault: true }, ...entries];
136
+ const models = this.options.models;
137
+ if (models === undefined) {
138
+ return all;
139
+ }
140
+ return Promise.all(all.map(async (entry) => {
141
+ const locked = (await models.list({ actor, agent: entry.name })).locked;
142
+ return locked !== undefined ? { ...entry, lockedModel: locked.model } : entry;
143
+ }));
96
144
  }
97
145
  /** The actor's budget across windows (`GET <path>/quota`). */
98
146
  async quotaReport(actor) {
@@ -115,7 +163,48 @@ export class AgentService {
115
163
  throw new QuotaBlockedError(blocked.period, blocked.reason ?? `The ${blocked.period === 'day' ? 'daily' : 'monthly'} quota is used up`);
116
164
  }
117
165
  }
166
+ /** The queue service when the bound store can hold a queue, else `undefined`. */
167
+ queueing() {
168
+ return this.options.queue?.supported === true ? this.options.queue : undefined;
169
+ }
170
+ /** The queue service, or a `501` naming what is missing. */
171
+ requireQueue() {
172
+ const queue = this.queueing();
173
+ if (queue === undefined) {
174
+ throw new ChatQueueError(501, 'Queueing messages requires an AgentStore that implements ChatQueueStore; the bound store does not.');
175
+ }
176
+ return queue;
177
+ }
178
+ /**
179
+ * Start a turn — for in-process callers that need a run id back. A send that would have to wait
180
+ * (its thread already has a turn running) is refused with a `409 run_active`
181
+ * {@link ChatQueueError} instead; {@link send} is the form that queues it.
182
+ */
118
183
  async chat(params) {
184
+ const result = await this.send({ ...params, mode: 'auto' });
185
+ if (result.queued !== true) {
186
+ return result;
187
+ }
188
+ if (result.runId !== undefined) {
189
+ // The thread freed up while it was being queued, and it started straight away.
190
+ return { runId: result.runId, threadId: result.threadId };
191
+ }
192
+ // Take it back out, so this call has no effect — unless it started in the meantime.
193
+ const queue = this.requireQueue();
194
+ if (!(await queue.queueStore().removeQueuedMessage(result.messageId))) {
195
+ return { runId: result.messageId, threadId: result.threadId };
196
+ }
197
+ await queue.publish(result.threadId);
198
+ throw new ChatQueueError(409, `thread ${result.threadId} already has a turn running`, 'run_active');
199
+ }
200
+ /**
201
+ * Send a message: start a turn, or — when its thread already has one running — queue the message
202
+ * to run after it (see {@link ChatSendMode}). What `POST <path>/chat` calls.
203
+ */
204
+ async send(params) {
205
+ if (params.regenerate === true && params.threadId === undefined) {
206
+ throw new RegenerateNeedsThreadError();
207
+ }
119
208
  await this.assertWithinQuota(params.actor);
120
209
  const agentName = params.agentName ?? this.deps.defaultAgentName();
121
210
  // Before the thread exists, so a refused model or attachment leaves nothing behind.
@@ -140,10 +229,174 @@ export class AgentService {
140
229
  ...(params.pageContext !== undefined ? { pageContext: params.pageContext } : {}),
141
230
  ...(attachments.length > 0 ? { attachments } : {}),
142
231
  ...(model !== undefined ? { model } : {}),
232
+ ...(params.regenerate === true ? { regenerate: true } : {}),
233
+ };
234
+ const queue = this.queueing();
235
+ if (queue === undefined) {
236
+ // No admission to take: a store that predates the queue starts every send at once. The
237
+ // runner marks the thread's active run itself, before the turn can end.
238
+ const { runId } = await this.runner.start(input);
239
+ return { runId, threadId };
240
+ }
241
+ const mode = params.mode ?? 'auto';
242
+ const { live, stale } = await queue.holder(threadId, this.runner);
243
+ // `queue` always answers as a queued send (202), so a client that asked for it handles one
244
+ // shape; an idle thread starts it straight away all the same (`enqueue` kicks the queue).
245
+ if (live === null && mode !== 'queue') {
246
+ const runId = crypto.randomUUID();
247
+ if (await queue
248
+ .queueStore()
249
+ .claimActiveStream(threadId, runId, stale !== null ? { replacing: stale } : {})) {
250
+ return { runId: await this.startClaimed(queue, input, runId), threadId };
251
+ }
252
+ // Lost the race for the thread to another send: fall through and queue behind it.
253
+ }
254
+ if (params.regenerate === true) {
255
+ throw new ChatQueueError(409, 'cannot regenerate while a turn is running on this thread', 'run_active');
256
+ }
257
+ return this.enqueue(queue, input, mode, live);
258
+ }
259
+ /**
260
+ * Start a turn the thread is already claimed for, under the claimed id. A runner that minted an
261
+ * id of its own anyway gets the thread re-pointed at it; one that fails to start frees the thread.
262
+ */
263
+ async startClaimed(queue, input, runId) {
264
+ const store = queue.queueStore();
265
+ let started;
266
+ try {
267
+ started = (await this.runner.start(input, { runId })).runId;
268
+ }
269
+ catch (error) {
270
+ await store.releaseActiveStream(input.threadId, runId);
271
+ throw error;
272
+ }
273
+ if (started !== runId) {
274
+ await store.claimActiveStream(input.threadId, started, { replacing: runId });
275
+ }
276
+ return started;
277
+ }
278
+ /** Put a send in its thread's queue, then drain it if the thread turned out to be free. */
279
+ async enqueue(queue, input, mode, live) {
280
+ const store = queue.queueStore();
281
+ const threadId = input.threadId;
282
+ const interrupting = mode === 'interrupt' && live !== null ? live : undefined;
283
+ const queued = await store.enqueueMessage({
284
+ threadId,
285
+ actor: input.actor,
286
+ content: input.userText,
287
+ ...(input.attachments !== undefined ? { attachments: input.attachments } : {}),
288
+ ...(input.agentName !== undefined ? { agentName: input.agentName } : {}),
289
+ ...(input.model !== undefined ? { model: input.model } : {}),
290
+ ...(input.pageContext !== undefined ? { pageContext: input.pageContext } : {}),
291
+ ...(interrupting !== undefined ? { interrupt: true, at: 'head' } : {}),
292
+ });
293
+ let runId;
294
+ if (interrupting !== undefined) {
295
+ // An interrupt is a person choosing to run this now: whatever paused the queue, they are
296
+ // overriding it. The cancel settles into the queue, which starts this message.
297
+ await store.setQueuePause(threadId, null);
298
+ await queue.publish(threadId);
299
+ await this.runner.cancel(interrupting);
300
+ }
301
+ else {
302
+ // The run holding the thread may have settled between our look and our enqueue — its drain
303
+ // then found nothing. Starting the head here covers that; with a live holder it does nothing.
304
+ runId = await queue.kick(threadId, this.runner);
305
+ if (runId === undefined) {
306
+ await queue.publish(threadId);
307
+ }
308
+ }
309
+ const state = await queue.state(threadId);
310
+ const position = state.items.findIndex((item) => item.id === queued.id);
311
+ return {
312
+ threadId,
313
+ queued: true,
314
+ messageId: queued.id,
315
+ position: position === -1 ? 0 : position,
316
+ queue: state,
317
+ ...(runId !== undefined && runId === queued.id ? { runId } : {}),
318
+ ...(interrupting !== undefined ? { interrupting } : {}),
143
319
  };
144
- // The runner marks the thread's active run itself, before the turn can end.
145
- const { runId } = await this.runner.start(input);
146
- return { runId, threadId };
320
+ }
321
+ /** Can this deployment queue messages (the store is a `ChatQueueStore` and a queue is wired)? */
322
+ queueSupported() {
323
+ return this.queueing() !== undefined;
324
+ }
325
+ /** `GET <path>/threads/:id/queue` — the thread's waiting messages and whether it drains. */
326
+ getQueue(threadId) {
327
+ return this.requireQueue().state(threadId);
328
+ }
329
+ /** The thread a queued message waits on — `null` when there is no such message. */
330
+ async queuedMessageThread(messageId) {
331
+ const message = await this.requireQueue().queueStore().getQueuedMessage(messageId);
332
+ return message?.threadId ?? null;
333
+ }
334
+ /**
335
+ * `PATCH <path>/queue/:messageId` — change a waiting message's text and/or attachments, and/or
336
+ * move it to `position` in the queue. Answers the thread's queue.
337
+ */
338
+ async updateQueuedMessage(actor, messageId, patch) {
339
+ const queue = this.requireQueue();
340
+ const store = queue.queueStore();
341
+ const current = await store.getQueuedMessage(messageId);
342
+ if (current === null) {
343
+ throw new ChatQueueError(404, `queued message ${messageId} not found`);
344
+ }
345
+ if (patch.message !== undefined && patch.message.trim().length === 0) {
346
+ throw new ChatQueueError(400, 'message must not be empty');
347
+ }
348
+ if (patch.position !== undefined && (!Number.isInteger(patch.position) || patch.position < 0)) {
349
+ throw new ChatQueueError(400, 'position must be a non-negative integer');
350
+ }
351
+ const attachments = patch.attachments === undefined || patch.attachments === null
352
+ ? patch.attachments
353
+ : await this.resolveAttachments(actor, patch.attachments);
354
+ const gone = new ChatQueueError(410, `queued message ${messageId} already started or was removed`);
355
+ if (patch.message !== undefined || attachments !== undefined) {
356
+ const updated = await store.updateQueuedMessage(messageId, {
357
+ ...(patch.message !== undefined ? { content: patch.message } : {}),
358
+ ...(attachments !== undefined ? { attachments } : {}),
359
+ });
360
+ if (updated === null) {
361
+ throw gone;
362
+ }
363
+ }
364
+ if (patch.position !== undefined &&
365
+ !(await store.moveQueuedMessage(messageId, patch.position))) {
366
+ throw gone;
367
+ }
368
+ return queue.publish(current.threadId);
369
+ }
370
+ /** `DELETE <path>/queue/:messageId` — drop a waiting message. Answers the thread's queue. */
371
+ async removeQueuedMessage(messageId) {
372
+ const queue = this.requireQueue();
373
+ const store = queue.queueStore();
374
+ const current = await store.getQueuedMessage(messageId);
375
+ if (current === null) {
376
+ throw new ChatQueueError(404, `queued message ${messageId} not found`);
377
+ }
378
+ if (!(await store.removeQueuedMessage(messageId))) {
379
+ throw new ChatQueueError(410, `queued message ${messageId} already started or was removed`);
380
+ }
381
+ return queue.publish(current.threadId);
382
+ }
383
+ /** `DELETE <path>/threads/:id/queue` — drop every waiting message (and any pause). */
384
+ async clearQueue(threadId) {
385
+ const queue = this.requireQueue();
386
+ await queue.queueStore().clearQueue(threadId);
387
+ await queue.queueStore().setQueuePause(threadId, null);
388
+ return queue.publish(threadId);
389
+ }
390
+ /**
391
+ * `POST <path>/threads/:id/queue/resume` — lift a pause and start the head when nothing is
392
+ * running. Answers the queue, and the run the head started under, if it did.
393
+ */
394
+ async resumeQueue(threadId) {
395
+ const queue = this.requireQueue();
396
+ await queue.queueStore().setQueuePause(threadId, null);
397
+ const runId = await queue.kick(threadId, this.runner);
398
+ const state = runId === undefined ? await queue.publish(threadId) : await queue.state(threadId);
399
+ return { ...state, ...(runId !== undefined ? { runId } : {}) };
147
400
  }
148
401
  subscribe(runId) {
149
402
  return this.deps.forAgent().sink.subscribe(runId);
@@ -275,6 +528,7 @@ export class AgentService {
275
528
  return this.runner.signal(args.runId, args.toolCallId, {
276
529
  answers: args.answers,
277
530
  ...(args.answeredByRef !== undefined ? { answeredByRef: args.answeredByRef } : {}),
531
+ ...(args.answeredVia !== undefined ? { answeredVia: args.answeredVia } : {}),
278
532
  });
279
533
  }
280
534
  /**
@@ -288,6 +542,7 @@ export class AgentService {
288
542
  answers: {},
289
543
  skipped: true,
290
544
  ...(args.answeredByRef !== undefined ? { answeredByRef: args.answeredByRef } : {}),
545
+ ...(args.answeredVia !== undefined ? { answeredVia: args.answeredVia } : {}),
291
546
  });
292
547
  }
293
548
  cancel(runId) {
@@ -308,6 +563,22 @@ export class AgentService {
308
563
  ...(spec.presentation !== undefined ? { presentation: spec.presentation } : {}),
309
564
  }));
310
565
  }
566
+ /**
567
+ * `GET <path>/tools?agent=*`: the union of {@link toolCatalog} across the default agent and every
568
+ * registered one — each tool this actor reaches through ANY of them, once (first agent wins its
569
+ * entry), under the same gates.
570
+ */
571
+ async toolCatalogForAllAgents(actor) {
572
+ const names = [undefined, ...this.deps.agentDefinitions().map((definition) => definition.name)];
573
+ const entries = new Map();
574
+ for (const name of names) {
575
+ for (const entry of await this.toolCatalog(actor, name)) {
576
+ if (!entries.has(entry.name))
577
+ entries.set(entry.name, entry);
578
+ }
579
+ }
580
+ return [...entries.values()];
581
+ }
311
582
  resolvePersona(agentName, id) {
312
583
  const deps = this.deps.forAgent(agentName);
313
584
  return deps.personas.get(id ?? deps.defaultPersona);
@@ -328,7 +599,12 @@ export class AgentService {
328
599
  * this actor keeps the url it was stored with.
329
600
  */
330
601
  async getThread(threadId, actor) {
331
- const thread = await this.store.getThread(threadId);
602
+ const stored = await this.store.getThread(threadId);
603
+ const queue = this.queueing();
604
+ // The waiting messages ride along, so a reload shows them without a second request.
605
+ const thread = stored !== null && queue !== undefined
606
+ ? { ...stored, queue: await queue.state(threadId) }
607
+ : stored;
332
608
  const staging = this.options.attachments;
333
609
  if (thread === null || actor === undefined || staging === undefined)
334
610
  return thread;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-service.js","sourceRoot":"","sources":["../../src/agent-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAG7F,OAAO,EAEL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAGhB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAwC,MAAM,yBAAyB,CAAC;AAclG,0FAA0F;AAC1F,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAuCzC,kGAAkG;AAClG,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAEpC,MAAM;IADjB,YACW,MAAuB,EAChC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;sBAHN,MAAM;QAIf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IAEJ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IAJ1B,YACmB,MAAmB,EACnB,KAAiB,EACjB,IAAsB,EACtB,OAAO,GAAwB,EAAE;sBAHjC,MAAM;qBACN,KAAK;oBACL,IAAI;uBACJ,OAAO;IACvB,CAAC;IAEJ;;;OAGG;IACH,8EAA8E;IAC9E,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAY,EAAE,KAAc;QAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAAY,EAAE,KAAa,EAAE,KAAa;QACjE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,oBAAoB,CAC5B,UAAU,KAAK,kFAAkF,CAClG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACxF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,oBAAoB,CAAC,UAAU,KAAK,kBAAkB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,oBAAoB,CAC5B,UAAU,KAAK,qBAAqB,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACpG,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED,yFAAyF;IACjF,KAAK,CAAC,YAAY,CACxB,KAAY,EACZ,KAAa,EACb,SAA6B,EAC7B,QAA4B;QAE5B,MAAM,MAAM,GACV,SAAS,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAC/C,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,KAAK,GAAG,SAAS,IAAI,MAAM,CAAC;QAClC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAC1C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,KAAY,EAAE,QAAgB,EAAE,KAAoB;QACvE,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GACV,KAAK,KAAK,IAAI;YACZ,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;QAChF,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iEAAiE;IACjE,UAAU;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,EAAE;YACzC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;YACxD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,IAAa,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,WAAW,CAAC,KAAY;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpF,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAAC,KAAY;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAiB,CACzB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAkB;QAC3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnE,oFAAoF;QACpF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC1F,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC5C,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,cAAc;aAC1E,CAAC,CAAC;YACH,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,KAAK,GAAkB;YAC3B,QAAQ;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,GAAG,EAAE,MAAM,EAAE;YACb,SAAS;YACT,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC;QAEF,4EAA4E;QAC5E,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,KAA4C;QAI5C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;QACjF,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,OAAO,GAAI,KAAK,CAAC,OAA8B,EAAE,IAAI,EAAE,CAAC;QAC9D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;YAC1E,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,2BAA2B,2BAA2B,aAAa;aAC3E,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,KAAK,EACH,qGAAqG;aACxG,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GACZ,KAAK,KAAK,IAAI;YACZ,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,KAAK;gBACL,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS;YAC7C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IAChE,CAAC;IAED,yGAAyG;IACzG,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,qGAAqG;IACrG,+FAA+F;IAC/F,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC;IACnE,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,OAAO,CACL,KAAa,EACb,UAAkB,EAClB,IAAI,GAAiE,EAAE;QAEvE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE;YAC3C,QAAQ,EAAE,IAAI;YACd,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,KAAa,EACb,UAAkB,EAClB,MAAe,EACf,IAAI,GAA6C,EAAE;QAEnD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE;YAC3C,QAAQ,EAAE,KAAK;YACf,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,sGAAsG;IACtG,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QACvC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAY,EAAE,QAA6B;QACnD,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;OASG;IACH;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,UAAkB,EAClB,OAAiC;QAEjC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;QACvF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzF,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,EAAE,SAAS,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC1F,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,YAAY,QAAQ,CAAC,EAAE,MAAM,OAAO,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAKN;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACrD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAmE;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACrD,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAY,EAAE,SAAkB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,cAAc,CAAC,SAAkB,EAAE,EAAW;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,SAAkB;QAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5E,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,KAAa;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACzC,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACnF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;QAC9F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACpC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC;YAC1F,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC3C,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC;gBACvF,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC,CACH,CAAC;QACF,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,KAAY,EACZ,IAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,EACH,4FAA4F,CAC7F,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1E,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,sBAAsB,CAC9B,GAAG,EACH,cAAc,GAAG,CAAC,OAAO,iCAAiC,CAC3D,CAAC;YACJ,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,KAAa;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,aAAqB;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;CACF"}
1
+ {"version":3,"file":"agent-service.js","sourceRoot":"","sources":["../../src/agent-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ import type { AgentRunner } from './spi/agent-runner.js';
2
+ import type { AgentStore } from './spi/agent-store.js';
3
+ import type { AttachmentStagingStore } from './spi/attachment-staging.js';
4
+ import { type ChatQueueState, type ChatQueueStore, type QueuePauseReason } from './spi/chat-queue.js';
5
+ import type { QuotaProvider } from './spi/quota-provider.js';
6
+ import type { TokenStreamSink } from './spi/token-stream-sink.js';
7
+ import type { AgentStreamEvent } from './stream-events.js';
8
+ import type { Actor, AgentRunInput, Persona } from './types.js';
9
+ /** How the run that held a thread ended. */
10
+ export type QueueSettleOutcome = 'completed' | 'failed' | 'cancelled';
11
+ /** The next queued message a settling run handed the thread to — the caller starts it. */
12
+ export interface QueuedTurn {
13
+ /** The run id the thread is already claimed for: the queued message's own id. */
14
+ runId: string;
15
+ input: AgentRunInput;
16
+ messageId: string;
17
+ }
18
+ /**
19
+ * What {@link ChatQueueService.plan} decided. Plain data, so a durable workflow can journal it in a
20
+ * `localStep` and start `next` itself (`ctx.startChild`) — replay-safe, and never twice.
21
+ */
22
+ export interface QueuePlan {
23
+ next?: QueuedTurn;
24
+ /** The `queue` frame to write into the settling run's stream, before its terminal. */
25
+ frame?: AgentStreamEvent;
26
+ }
27
+ /** Starts a run under a pre-claimed id — a runner's own `start`, bound. */
28
+ export type QueuedTurnStarter = (input: AgentRunInput, runId: string) => Promise<unknown>;
29
+ /** What {@link ChatQueueService} needs beyond the store and the sink — all optional. */
30
+ export interface ChatQueueServiceOptions {
31
+ /** The budget a queued message's actor is checked against as it starts. Omitted → not checked. */
32
+ quota?: QuotaProvider;
33
+ /** Re-mints a queued message's attachment urls as it starts (they may have expired waiting). */
34
+ attachments?: AttachmentStagingStore;
35
+ /** The persona a turn of `agentName` runs with — what a send resolves when it names none. */
36
+ personaFor?: (agentName: string | undefined) => Persona | undefined;
37
+ }
38
+ /**
39
+ * The thread-level message queue: messages a person sends while a turn is running wait here, and
40
+ * the next one starts as soon as the running turn settles. A port of `@dudousxd/nestjs-agent`'s
41
+ * `ChatQueueService`; the wire is its `docs/stream-protocol.md`, *Message queue*.
42
+ *
43
+ * Everything that decides WHICH run holds a thread goes through the store's compare-and-set
44
+ * admission (`claimActiveStream` / `releaseActiveStream`), so two processes that both try to start
45
+ * the next turn — a settling run on a worker and a send on a web pod — cannot both win. The next
46
+ * run's id is the queued message's own id, which makes every step here idempotent: a retried claim
47
+ * for the same message succeeds again, and a durable start under the same id is a no-op.
48
+ *
49
+ * Policy, per outcome of the run that held the thread:
50
+ * - `completed` → the head starts.
51
+ * - `failed` → the queue pauses (`run_failed`), keeping every message.
52
+ * - `cancelled` → the queue pauses (`cancelled`), unless the head was queued by an interrupt — the
53
+ * cancel was made for it, so it starts.
54
+ * A paused queue starts nothing until it is resumed. A head whose actor is over quota pauses it
55
+ * (`quota_exceeded`) instead of starting.
56
+ */
57
+ export declare class ChatQueueService {
58
+ private readonly store;
59
+ private readonly sink;
60
+ private readonly options;
61
+ /**
62
+ * Runs this process claimed a thread for and has not handed to a runner yet. A holder in here is
63
+ * alive whatever the runner says — it simply has not registered the run yet.
64
+ */
65
+ private readonly starting;
66
+ constructor(store: AgentStore, sink: TokenStreamSink, options?: ChatQueueServiceOptions);
67
+ /** Whether the bound store can hold a queue. Without one, a busy thread is not queued. */
68
+ get supported(): boolean;
69
+ /** The bound store as a queue store; throws when it is not one (check {@link supported} first). */
70
+ queueStore(): AgentStore & ChatQueueStore;
71
+ state(threadId: string): Promise<ChatQueueState>;
72
+ /**
73
+ * Whether `holder` is still running. A run this process is about to start is; otherwise the
74
+ * runner decides, and a runner that cannot tell says yes.
75
+ */
76
+ isAlive(holder: string, runner: AgentRunner): Promise<boolean>;
77
+ /**
78
+ * The run holding `threadId`, or `null` when it is free — a holder the runner reports dead counts
79
+ * as free, and is returned as `stale` so the caller can claim over it.
80
+ */
81
+ holder(threadId: string, runner: AgentRunner): Promise<{
82
+ live: string | null;
83
+ stale: string | null;
84
+ }>;
85
+ /**
86
+ * Decide what follows a TOP-LEVEL run that is settling on `threadId`, and move the thread there:
87
+ * hand it to the next queued message (claimed and popped here, started by the caller), or pause
88
+ * the queue, or release the thread. Call it BEFORE the run's terminal frame, so a client reading
89
+ * the stream learns what comes next from the `queue` frame, and so the thread is already free
90
+ * when the client sees the run end.
91
+ *
92
+ * A no-op returning `{}` on a store without a queue.
93
+ */
94
+ plan(args: {
95
+ threadId: string;
96
+ /** The run that is settling; `null` when the thread is idle (a kick). */
97
+ runId: string | null;
98
+ outcome: QueueSettleOutcome;
99
+ error?: string;
100
+ }): Promise<QueuePlan>;
101
+ /**
102
+ * {@link plan}, then start what it picked with `start`. What an in-process settle (the inline
103
+ * runner, a durable cancel issued outside a workflow) calls; answers the frame to write.
104
+ */
105
+ handoff(args: {
106
+ threadId: string;
107
+ runId: string;
108
+ outcome: QueueSettleOutcome;
109
+ error?: string;
110
+ }, start: QueuedTurnStarter): Promise<AgentStreamEvent | undefined>;
111
+ /**
112
+ * Start the head of an IDLE thread's queue — after a send queued behind a run that turned out to
113
+ * be gone, after a resume, after a stale holder. Does nothing while a live run holds the thread
114
+ * (its settle drains) or while the queue is paused. Answers the started run's id, if any.
115
+ */
116
+ kick(threadId: string, runner: AgentRunner): Promise<string | undefined>;
117
+ /**
118
+ * Start a turn the thread is already claimed for. On failure the message goes back to the head of
119
+ * the queue, the queue pauses (`start_failed`), and the claim is released — nothing is lost and
120
+ * nothing is left holding the thread.
121
+ */
122
+ launch(threadId: string, next: QueuedTurn, start: QueuedTurnStarter): Promise<boolean>;
123
+ /** Put a turn that never started back at the head of its queue, paused, and free the thread. */
124
+ restore(threadId: string, next: QueuedTurn, reason: QueuePauseReason, message: string): Promise<void>;
125
+ /** A `queue` frame with the thread's current state. */
126
+ pausedFrame(threadId: string): Promise<AgentStreamEvent>;
127
+ /**
128
+ * Tell whoever is watching the thread that its queue changed: a `queue` frame into the stream of
129
+ * the run holding it. Best-effort — a thread nobody is streaming has no one to tell, and the next
130
+ * read of the thread carries the queue anyway.
131
+ */
132
+ publish(threadId: string): Promise<ChatQueueState>;
133
+ /** Write one agent-protocol event into `runId`'s stream. */
134
+ write(runId: string, frame: AgentStreamEvent): Promise<void>;
135
+ /** Why `actor` may not start a turn now (the quota message), or `null`. */
136
+ quotaBlock(actor: Actor): Promise<string | null>;
137
+ /**
138
+ * The turn a queued message starts: everything it was queued with, today's date, and its
139
+ * attachments' urls minted afresh — the ones stored at enqueue time may have expired while it
140
+ * waited. An attachment the store no longer resolves keeps its stored url.
141
+ */
142
+ private inputFor;
143
+ private freshAttachments;
144
+ }
145
+ /**
146
+ * A thread's own turn — not a sub-agent's run on a subthread, which neither holds its thread's
147
+ * queue nor answers to it.
148
+ */
149
+ export declare function isThreadTurn(input: {
150
+ sinkRunId?: unknown;
151
+ parentRunId?: unknown;
152
+ }): boolean;
153
+ //# sourceMappingURL=chat-queue-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-queue-service.d.ts","sourceRoot":"","sources":["../../src/chat-queue-service.ts"],"names":[],"mappings":"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"}