@cogitator-ai/a2a 0.7.8 → 0.8.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 (82) hide show
  1. package/README.md +173 -151
  2. package/dist/adapters/express.d.ts +5 -0
  3. package/dist/adapters/express.d.ts.map +1 -1
  4. package/dist/adapters/express.js +53 -30
  5. package/dist/adapters/express.js.map +1 -1
  6. package/dist/adapters/fastify.d.ts +5 -0
  7. package/dist/adapters/fastify.d.ts.map +1 -1
  8. package/dist/adapters/fastify.js +51 -35
  9. package/dist/adapters/fastify.js.map +1 -1
  10. package/dist/adapters/hono.d.ts +5 -0
  11. package/dist/adapters/hono.d.ts.map +1 -1
  12. package/dist/adapters/hono.js +41 -49
  13. package/dist/adapters/hono.js.map +1 -1
  14. package/dist/adapters/koa.d.ts +5 -0
  15. package/dist/adapters/koa.d.ts.map +1 -1
  16. package/dist/adapters/koa.js +39 -32
  17. package/dist/adapters/koa.js.map +1 -1
  18. package/dist/adapters/next.d.ts +13 -2
  19. package/dist/adapters/next.d.ts.map +1 -1
  20. package/dist/adapters/next.js +75 -51
  21. package/dist/adapters/next.js.map +1 -1
  22. package/dist/adapters/shared.d.ts +43 -10
  23. package/dist/adapters/shared.d.ts.map +1 -1
  24. package/dist/adapters/shared.js +156 -23
  25. package/dist/adapters/shared.js.map +1 -1
  26. package/dist/agent-card.d.ts +22 -7
  27. package/dist/agent-card.d.ts.map +1 -1
  28. package/dist/agent-card.js +71 -34
  29. package/dist/agent-card.js.map +1 -1
  30. package/dist/approvals.d.ts +46 -0
  31. package/dist/approvals.d.ts.map +1 -0
  32. package/dist/approvals.js +105 -0
  33. package/dist/approvals.js.map +1 -0
  34. package/dist/client.d.ts +59 -17
  35. package/dist/client.d.ts.map +1 -1
  36. package/dist/client.js +237 -142
  37. package/dist/client.js.map +1 -1
  38. package/dist/errors.d.ts +24 -1
  39. package/dist/errors.d.ts.map +1 -1
  40. package/dist/errors.js +90 -19
  41. package/dist/errors.js.map +1 -1
  42. package/dist/index.d.ts +11 -7
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +7 -5
  45. package/dist/index.js.map +1 -1
  46. package/dist/ownership.d.ts +7 -1
  47. package/dist/ownership.d.ts.map +1 -1
  48. package/dist/ownership.js +24 -3
  49. package/dist/ownership.js.map +1 -1
  50. package/dist/protocol.d.ts +70 -0
  51. package/dist/protocol.d.ts.map +1 -0
  52. package/dist/protocol.js +187 -0
  53. package/dist/protocol.js.map +1 -0
  54. package/dist/push-notifications.d.ts +5 -2
  55. package/dist/push-notifications.d.ts.map +1 -1
  56. package/dist/push-notifications.js +33 -23
  57. package/dist/push-notifications.js.map +1 -1
  58. package/dist/redis-task-store.js +3 -3
  59. package/dist/redis-task-store.js.map +1 -1
  60. package/dist/server.d.ts +75 -12
  61. package/dist/server.d.ts.map +1 -1
  62. package/dist/server.js +324 -270
  63. package/dist/server.js.map +1 -1
  64. package/dist/task-manager.d.ts +57 -11
  65. package/dist/task-manager.d.ts.map +1 -1
  66. package/dist/task-manager.js +264 -116
  67. package/dist/task-manager.js.map +1 -1
  68. package/dist/task-store.js +4 -4
  69. package/dist/task-store.js.map +1 -1
  70. package/dist/types.d.ts +226 -85
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/types.js +10 -3
  73. package/dist/types.js.map +1 -1
  74. package/dist/url.d.ts +7 -0
  75. package/dist/url.d.ts.map +1 -0
  76. package/dist/url.js +12 -0
  77. package/dist/url.js.map +1 -0
  78. package/package.json +19 -9
  79. package/dist/adapters/sse-error-event.d.ts +0 -3
  80. package/dist/adapters/sse-error-event.d.ts.map +0 -1
  81. package/dist/adapters/sse-error-event.js +0 -12
  82. package/dist/adapters/sse-error-event.js.map +0 -1
@@ -1,11 +1,67 @@
1
1
  import { EventEmitter } from 'node:events';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { InMemoryTaskStore } from './task-store.js';
4
- import { isTerminalState } from './types.js';
4
+ import { isStreamFinalState, isTerminalState } from './types.js';
5
5
  import { A2AError } from './errors.js';
6
6
  import * as errors from './errors.js';
7
- import { TASK_OWNER_KEY } from './ownership.js';
8
- const CONTINUABLE_STATES = ['input-required', 'completed'];
7
+ import { TASK_CREATED_AT_KEY, TASK_OWNER_KEY, taskCreatedAt } from './ownership.js';
8
+ import { TASK_PENDING_APPROVALS_KEY, readToolApprovalResponse, taskPendingApprovals, toolApprovalRequestPart, } from './approvals.js';
9
+ import { agentMessage, newArtifactId, textPart } from './protocol.js';
10
+ /** States a task takes a new message in: those where it waits on the client. */
11
+ const CONTINUABLE_STATES = ['input-required', 'auth-required'];
12
+ /**
13
+ * Streams the reply of a run as chunks of one artifact. The last token is held back, so the
14
+ * chunk that completes the artifact (`lastChunk`) still carries content, and when the final reply
15
+ * differs from what was streamed (text the model wrote before a tool call, for instance) the
16
+ * closing chunk replaces the artifact with the reply instead.
17
+ */
18
+ class ReplyStreamer {
19
+ emitChunk;
20
+ artifactId = newArtifactId();
21
+ sent = '';
22
+ pending;
23
+ chunks = 0;
24
+ constructor(emitChunk) {
25
+ this.emitChunk = emitChunk;
26
+ }
27
+ get started() {
28
+ return this.pending !== undefined;
29
+ }
30
+ push(task, token) {
31
+ if (!token)
32
+ return;
33
+ if (this.pending !== undefined) {
34
+ this.emitChunk(this.chunk(task, this.pending, false));
35
+ this.sent += this.pending;
36
+ this.chunks++;
37
+ }
38
+ this.pending = token;
39
+ }
40
+ /** The chunk that completes the reply artifact. */
41
+ finish(task, output) {
42
+ const pending = this.pending ?? '';
43
+ if (this.sent + pending === output)
44
+ return this.chunk(task, pending, true);
45
+ return {
46
+ kind: 'artifact-update',
47
+ taskId: task.id,
48
+ contextId: task.contextId,
49
+ artifact: { artifactId: this.artifactId, parts: [textPart(output)] },
50
+ append: false,
51
+ lastChunk: true,
52
+ };
53
+ }
54
+ chunk(task, text, lastChunk) {
55
+ return {
56
+ kind: 'artifact-update',
57
+ taskId: task.id,
58
+ contextId: task.contextId,
59
+ artifact: { artifactId: this.artifactId, parts: [textPart(text)] },
60
+ ...(this.chunks > 0 && { append: true }),
61
+ lastChunk,
62
+ };
63
+ }
64
+ }
9
65
  export class TaskManager extends EventEmitter {
10
66
  store;
11
67
  activeTasks = new Map();
@@ -15,15 +71,22 @@ export class TaskManager extends EventEmitter {
15
71
  this.setMaxListeners(100);
16
72
  this.store = config?.taskStore ?? new InMemoryTaskStore();
17
73
  }
18
- /** A new task; `ownerId` keeps it visible only to that user. */
74
+ /** A new `submitted` task; `ownerId` keeps it visible only to that user. */
19
75
  async createTask(message, contextId, ownerId) {
76
+ const id = `task_${randomUUID()}`;
77
+ const resolvedContextId = contextId ?? `ctx_${randomUUID()}`;
78
+ const now = new Date().toISOString();
20
79
  const task = {
21
- id: `task_${randomUUID()}`,
22
- contextId: contextId ?? `ctx_${randomUUID()}`,
23
- status: { state: 'working', timestamp: new Date().toISOString() },
24
- history: [message],
80
+ kind: 'task',
81
+ id,
82
+ contextId: resolvedContextId,
83
+ status: { state: 'submitted', timestamp: now },
84
+ history: [{ ...message, taskId: id, contextId: resolvedContextId }],
25
85
  artifacts: [],
26
- ...(ownerId !== undefined && { metadata: { [TASK_OWNER_KEY]: ownerId } }),
86
+ metadata: {
87
+ [TASK_CREATED_AT_KEY]: now,
88
+ ...(ownerId !== undefined && { [TASK_OWNER_KEY]: ownerId }),
89
+ },
27
90
  };
28
91
  await this.store.create(task);
29
92
  this.emitStatusUpdate(task);
@@ -35,22 +98,53 @@ export class TaskManager extends EventEmitter {
35
98
  : (onTokenOrOptions ?? {});
36
99
  const abortController = new AbortController();
37
100
  this.activeTasks.set(task.id, abortController);
101
+ const streamer = options.stream ? new ReplyStreamer((event) => this.emitEvent(event)) : null;
102
+ const onToken = streamer || options.onToken
103
+ ? (token) => {
104
+ options.onToken?.(token);
105
+ streamer?.push(task, token);
106
+ }
107
+ : undefined;
38
108
  try {
39
- const priorHistory = this.historyBefore(task.history, message);
40
- const result = await cogitator.run(agent, {
41
- input: this.buildInput(priorHistory, message),
42
- signal: abortController.signal,
43
- stream: !!options.onToken,
44
- onToken: options.onToken,
45
- threadId: task.contextId,
46
- timeout: options.timeout,
47
- ...(options.userId !== undefined && { userId: options.userId }),
48
- ...(priorHistory.length > 0 && { loadHistory: false }),
49
- });
109
+ if (task.status.state !== 'working') {
110
+ await this.setStatus(task.id, { state: 'working', timestamp: new Date().toISOString() });
111
+ }
112
+ abortController.signal.throwIfAborted();
113
+ const decisions = taskPendingApprovals(task) && readToolApprovalResponse(message);
114
+ let result;
115
+ if (decisions) {
116
+ if (!cogitator.resume) {
117
+ throw new A2AError(errors.unsupportedOperation('resuming a run paused for tool approvals (the server Cogitator has no resume)'));
118
+ }
119
+ result = await cogitator.resume(agent, task.contextId, {
120
+ ...decisions,
121
+ signal: abortController.signal,
122
+ stream: !!onToken,
123
+ onToken,
124
+ timeout: options.timeout,
125
+ ...(options.userId !== undefined && { userId: options.userId }),
126
+ });
127
+ }
128
+ else {
129
+ const priorHistory = await this.priorHistory(task, message);
130
+ result = await cogitator.run(agent, {
131
+ input: this.buildInput(priorHistory, message),
132
+ signal: abortController.signal,
133
+ stream: !!onToken,
134
+ onToken,
135
+ threadId: task.contextId,
136
+ timeout: options.timeout,
137
+ ...(options.userId !== undefined && { userId: options.userId }),
138
+ ...(priorHistory.length > 0 && { loadHistory: false }),
139
+ });
140
+ }
141
+ if (result.status === 'paused') {
142
+ return await this.requestApproval(task.id, result, streamer);
143
+ }
50
144
  if (result.requiresInput) {
51
- return await this.requestInput(task.id, result);
145
+ return await this.requestInput(task.id, result, streamer);
52
146
  }
53
- return await this.completeTask(task.id, result);
147
+ return await this.completeTask(task.id, result, streamer);
54
148
  }
55
149
  catch (error) {
56
150
  if (abortController.signal.aborted) {
@@ -66,44 +160,31 @@ export class TaskManager extends EventEmitter {
66
160
  this.activeTasks.delete(task.id);
67
161
  }
68
162
  }
69
- async completeTask(taskId, result) {
163
+ async completeTask(taskId, result, streamer) {
70
164
  const existing = await this.store.get(taskId);
71
165
  if (!existing)
72
166
  throw new A2AError(errors.taskNotFound(taskId));
73
- const artifacts = this.buildArtifacts(result);
74
- const agentMessage = {
75
- role: 'agent',
76
- parts: [{ type: 'text', text: result.output }],
77
- taskId,
78
- };
79
- if (result.structured &&
80
- typeof result.structured === 'object' &&
81
- !Array.isArray(result.structured)) {
82
- agentMessage.parts.push({
83
- type: 'data',
84
- mimeType: 'application/json',
85
- data: result.structured,
86
- });
87
- }
167
+ const reply = agentMessage(existing, [textPart(result.output)]);
168
+ const structured = this.structuredOutput(result);
169
+ if (structured)
170
+ reply.parts.push({ kind: 'data', data: structured });
88
171
  const status = {
89
172
  state: 'completed',
173
+ message: reply,
90
174
  timestamp: new Date().toISOString(),
91
175
  };
92
- return this.finishTurn(existing, status, agentMessage, artifacts);
176
+ return this.finishTurn(existing, status, reply, result, streamer);
93
177
  }
94
178
  async failTask(taskId, errorMessage) {
179
+ const existing = await this.store.get(taskId);
180
+ if (!existing)
181
+ throw new A2AError(errors.taskNotFound(taskId));
95
182
  const status = {
96
183
  state: 'failed',
184
+ message: agentMessage(existing, [textPart(errorMessage)]),
97
185
  timestamp: new Date().toISOString(),
98
- message: errorMessage,
99
- errorDetails: { code: -1, message: errorMessage },
100
186
  };
101
- await this.store.update(taskId, { status });
102
- const task = await this.store.get(taskId);
103
- if (!task)
104
- throw new A2AError(errors.taskNotFound(taskId));
105
- this.emitStatusUpdate(task);
106
- return task;
187
+ return this.setStatus(taskId, status);
107
188
  }
108
189
  async cancelTask(taskId) {
109
190
  const task = await this.store.get(taskId);
@@ -121,17 +202,13 @@ export class TaskManager extends EventEmitter {
121
202
  if (isTerminalState(rechecked.status.state)) {
122
203
  return rechecked;
123
204
  }
124
- const status = {
125
- state: 'canceled',
126
- timestamp: new Date().toISOString(),
127
- };
128
- await this.store.update(taskId, { status });
129
- const updated = await this.store.get(taskId);
130
- if (!updated)
131
- throw new A2AError(errors.taskNotFound(taskId));
132
- this.emitStatusUpdate(updated);
133
- return updated;
205
+ return this.setStatus(taskId, { state: 'canceled', timestamp: new Date().toISOString() });
134
206
  }
207
+ /**
208
+ * Add the client's answer to a task waiting on it (`input-required` or `auth-required`) and set
209
+ * it working again. A task in a terminal state can't be restarted: the client sends a new
210
+ * message in the same context instead.
211
+ */
135
212
  async continueTask(taskId, message) {
136
213
  if (this.continuing.has(taskId) || this.activeTasks.has(taskId)) {
137
214
  throw new A2AError(errors.taskNotContinuable(taskId, 'working'));
@@ -144,7 +221,7 @@ export class TaskManager extends EventEmitter {
144
221
  if (!CONTINUABLE_STATES.includes(task.status.state)) {
145
222
  throw new A2AError(errors.taskNotContinuable(taskId, task.status.state));
146
223
  }
147
- const history = [...task.history, { ...message, taskId, contextId: task.contextId }];
224
+ const history = [...(task.history ?? []), { ...message, taskId, contextId: task.contextId }];
148
225
  const status = {
149
226
  state: 'working',
150
227
  timestamp: new Date().toISOString(),
@@ -165,6 +242,10 @@ export class TaskManager extends EventEmitter {
165
242
  if (controller)
166
243
  controller.abort();
167
244
  }
245
+ /** Whether the task's run is executing in this process. */
246
+ isExecuting(taskId) {
247
+ return this.activeTasks.has(taskId);
248
+ }
168
249
  async listTasks(filter) {
169
250
  return this.store.list(filter);
170
251
  }
@@ -175,17 +256,23 @@ export class TaskManager extends EventEmitter {
175
256
  return task;
176
257
  }
177
258
  /**
178
- * History preceding the message being executed (the message itself is the
179
- * last history entry for both new and continued tasks).
259
+ * The conversation before the message being executed: the earlier turns of the task, or for a
260
+ * new task in a context that already has tasks, their transcripts in the order they were
261
+ * created. The agent keeps the context even without a memory adapter.
180
262
  */
181
- historyBefore(history, message) {
263
+ async priorHistory(task, message) {
264
+ const history = task.history ?? [];
182
265
  const last = history.at(-1);
183
- return last?.role === message.role ? history.slice(0, -1) : history;
266
+ const before = last?.messageId === message.messageId || last?.role === message.role
267
+ ? history.slice(0, -1)
268
+ : history;
269
+ if (before.length > 0)
270
+ return before;
271
+ const earlier = (await this.store.list({ contextId: task.contextId }))
272
+ .filter((other) => other.id !== task.id)
273
+ .sort((a, b) => taskCreatedAt(a) - taskCreatedAt(b));
274
+ return earlier.flatMap((other) => other.history ?? []);
184
275
  }
185
- /**
186
- * Build the agent input. Continuations replay the task transcript so the
187
- * agent keeps the conversation context even without a memory adapter.
188
- */
189
276
  buildInput(priorHistory, message) {
190
277
  const current = this.renderParts(message.parts);
191
278
  if (priorHistory.length === 0) {
@@ -199,97 +286,158 @@ export class TaskManager extends EventEmitter {
199
286
  renderParts(parts) {
200
287
  return parts
201
288
  .map((part) => {
202
- switch (part.type) {
289
+ switch (part.kind) {
203
290
  case 'text':
204
291
  return part.text;
205
292
  case 'data':
206
293
  return `\`\`\`json\n${JSON.stringify(part.data, null, 2)}\n\`\`\``;
207
- case 'file':
208
- return `[file${part.name ? ` ${part.name}` : ''} (${part.mimeType}): ${part.uri}]`;
294
+ case 'file': {
295
+ const { file } = part;
296
+ const label = `file${file.name ? ` ${file.name}` : ''} (${file.mimeType ?? 'application/octet-stream'})`;
297
+ return 'uri' in file
298
+ ? `[${label}: ${file.uri}]`
299
+ : `[${label}: ${Math.floor((file.bytes.length * 3) / 4)} bytes inline]`;
300
+ }
209
301
  }
210
302
  })
211
303
  .filter((text) => text.length > 0)
212
304
  .join('\n');
213
305
  }
214
- buildArtifacts(result) {
215
- const artifacts = [];
216
- if (result.output) {
217
- artifacts.push({
218
- id: `art_${randomUUID()}`,
219
- parts: [{ type: 'text', text: result.output }],
220
- mimeType: 'text/plain',
306
+ structuredOutput(result) {
307
+ const { structured } = result;
308
+ return structured && typeof structured === 'object' && !Array.isArray(structured)
309
+ ? structured
310
+ : undefined;
311
+ }
312
+ /**
313
+ * The artifacts a turn adds: the reply text (under the id it was streamed with) and the
314
+ * structured output, each with the event that delivers it.
315
+ */
316
+ buildArtifacts(task, result, streamer) {
317
+ const built = [];
318
+ if (streamer?.started) {
319
+ const event = streamer.finish(task, result.output);
320
+ built.push({
321
+ artifact: { artifactId: streamer.artifactId, parts: [textPart(result.output)] },
322
+ event,
221
323
  });
222
324
  }
223
- if (result.structured &&
224
- typeof result.structured === 'object' &&
225
- !Array.isArray(result.structured)) {
226
- artifacts.push({
227
- id: `art_${randomUUID()}`,
228
- parts: [
229
- {
230
- type: 'data',
231
- mimeType: 'application/json',
232
- data: result.structured,
233
- },
234
- ],
235
- mimeType: 'application/json',
236
- });
325
+ else if (result.output) {
326
+ built.push(this.wholeArtifact(task, [textPart(result.output)]));
327
+ }
328
+ const structured = this.structuredOutput(result);
329
+ if (structured) {
330
+ built.push(this.wholeArtifact(task, [{ kind: 'data', data: structured }]));
237
331
  }
238
- return artifacts;
332
+ return built;
333
+ }
334
+ wholeArtifact(task, parts) {
335
+ const artifact = { artifactId: newArtifactId(), parts };
336
+ return {
337
+ artifact,
338
+ event: {
339
+ kind: 'artifact-update',
340
+ taskId: task.id,
341
+ contextId: task.contextId,
342
+ artifact,
343
+ lastChunk: true,
344
+ },
345
+ };
239
346
  }
240
- async requestInput(taskId, result) {
347
+ /**
348
+ * A run that paused for tool approvals: the task waits in `input-required`, its status message
349
+ * carries the calls in a tool approval request data part, and the client's decisions (a tool
350
+ * approval response data part in the message that continues the task) resume the run.
351
+ */
352
+ async requestApproval(taskId, result, streamer) {
241
353
  const existing = await this.store.get(taskId);
242
354
  if (!existing)
243
355
  throw new A2AError(errors.taskNotFound(taskId));
244
- const artifacts = this.buildArtifacts(result);
245
- const agentMessage = {
246
- role: 'agent',
247
- parts: [{ type: 'text', text: result.output }],
248
- taskId,
356
+ const pending = result.pendingApprovals ?? [];
357
+ const calls = pending.map((approval) => approval.toolName).join(', ') || 'tool calls';
358
+ const reply = agentMessage(existing, [
359
+ ...(result.output ? [textPart(result.output)] : []),
360
+ toolApprovalRequestPart(pending),
361
+ ]);
362
+ const status = {
363
+ state: 'input-required',
364
+ message: agentMessage(existing, [
365
+ textPart(`Waiting for approval of ${calls}`),
366
+ toolApprovalRequestPart(pending),
367
+ ]),
368
+ timestamp: new Date().toISOString(),
249
369
  };
370
+ return this.finishTurn(existing, status, reply, { ...result, output: streamer?.started ? result.output : '', structured: undefined }, streamer, pending);
371
+ }
372
+ async requestInput(taskId, result, streamer) {
373
+ const existing = await this.store.get(taskId);
374
+ if (!existing)
375
+ throw new A2AError(errors.taskNotFound(taskId));
376
+ const question = agentMessage(existing, [textPart(result.output)]);
250
377
  const status = {
251
378
  state: 'input-required',
379
+ message: question,
252
380
  timestamp: new Date().toISOString(),
253
- message: result.output || undefined,
254
381
  };
255
- return this.finishTurn(existing, status, agentMessage, artifacts);
382
+ return this.finishTurn(existing, status, question, result, streamer);
383
+ }
384
+ /**
385
+ * The metadata update that records the calls a task waits on, or drops the record once the
386
+ * task stopped waiting; nothing when there is nothing to change.
387
+ */
388
+ withPendingApprovals(task, pending) {
389
+ const metadata = { ...task.metadata };
390
+ if (pending && pending.length > 0) {
391
+ metadata[TASK_PENDING_APPROVALS_KEY] = pending.map((approval) => ({ ...approval }));
392
+ }
393
+ else if (TASK_PENDING_APPROVALS_KEY in metadata) {
394
+ delete metadata[TASK_PENDING_APPROVALS_KEY];
395
+ }
396
+ else {
397
+ return {};
398
+ }
399
+ return { metadata };
256
400
  }
257
401
  /**
258
402
  * Persist the outcome of an agent turn. Artifacts accumulate across turns,
259
403
  * and artifact events are emitted before the status event so streaming
260
404
  * consumers (which stop at the final status) never miss them.
261
405
  */
262
- async finishTurn(existing, status, agentMessage, newArtifacts) {
406
+ async finishTurn(existing, status, reply, result, streamer, pendingApprovals) {
407
+ const built = this.buildArtifacts(existing, result, streamer);
263
408
  await this.store.update(existing.id, {
264
409
  status,
265
- artifacts: [...(existing.artifacts ?? []), ...newArtifacts],
266
- history: [...existing.history, agentMessage],
410
+ artifacts: [...(existing.artifacts ?? []), ...built.map(({ artifact }) => artifact)],
411
+ history: [...(existing.history ?? []), reply],
412
+ ...this.withPendingApprovals(existing, pendingApprovals),
267
413
  });
268
414
  const updatedTask = await this.store.get(existing.id);
269
415
  if (!updatedTask)
270
416
  throw new A2AError(errors.taskNotFound(existing.id));
271
- for (const artifact of newArtifacts) {
272
- this.emitArtifactUpdate(updatedTask.id, artifact);
417
+ for (const { event } of built) {
418
+ this.emitEvent(event);
273
419
  }
274
420
  this.emitStatusUpdate(updatedTask);
275
421
  return updatedTask;
276
422
  }
423
+ async setStatus(taskId, status) {
424
+ await this.store.update(taskId, { status });
425
+ const task = await this.store.get(taskId);
426
+ if (!task)
427
+ throw new A2AError(errors.taskNotFound(taskId));
428
+ this.emitStatusUpdate(task);
429
+ return task;
430
+ }
277
431
  emitStatusUpdate(task) {
278
- const event = {
279
- type: 'status-update',
432
+ this.emitEvent({
433
+ kind: 'status-update',
280
434
  taskId: task.id,
435
+ contextId: task.contextId,
281
436
  status: task.status,
282
- timestamp: new Date().toISOString(),
283
- };
284
- this.emit('event', event);
437
+ final: isStreamFinalState(task.status.state),
438
+ });
285
439
  }
286
- emitArtifactUpdate(taskId, artifact) {
287
- const event = {
288
- type: 'artifact-update',
289
- taskId,
290
- artifact,
291
- timestamp: new Date().toISOString(),
292
- };
440
+ emitEvent(event) {
293
441
  this.emit('event', event);
294
442
  }
295
443
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../src/task-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../src/task-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { isTerminalState } from './types.js';
2
- import { isTaskVisibleTo } from './ownership.js';
2
+ import { isTaskVisibleTo, taskTime } from './ownership.js';
3
3
  export class InMemoryTaskStore {
4
4
  tasks = new Map();
5
5
  maxSize;
@@ -33,8 +33,8 @@ export class InMemoryTaskStore {
33
33
  tasks = tasks.filter((t) => t.status.state === filter.state);
34
34
  }
35
35
  tasks.sort((a, b) => {
36
- const ta = new Date(a.status.timestamp).getTime();
37
- const tb = new Date(b.status.timestamp).getTime();
36
+ const ta = taskTime(a);
37
+ const tb = taskTime(b);
38
38
  return tb - ta;
39
39
  });
40
40
  const offset = filter?.offset ?? 0;
@@ -54,7 +54,7 @@ export class InMemoryTaskStore {
54
54
  let oldestFinished = null;
55
55
  let oldestAny = null;
56
56
  for (const [id, task] of this.tasks) {
57
- const time = new Date(task.status.timestamp).getTime();
57
+ const time = taskTime(task);
58
58
  if (!oldestAny || time < oldestAny.time)
59
59
  oldestAny = { id, time };
60
60
  if (isTerminalState(task.status.state) && (!oldestFinished || time < oldestFinished.time)) {
@@ -1 +1 @@
1
- {"version":3,"file":"task-store.js","sourceRoot":"","sources":["../src/task-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMjD,MAAM,OAAO,iBAAiB;IACpB,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACnC,OAAO,CAAS;IAExB,YAAY,MAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAa;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAAwB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAmB;QAC5B,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAE5C,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;YAChC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClB,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAClD,OAAO,EAAE,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;QAC5C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAE5C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,cAAc,GAAwC,IAAI,CAAC;YAC/D,IAAI,SAAS,GAAwC,IAAI,CAAC;YAC1D,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;gBACvD,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI;oBAAE,SAAS,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBAClE,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1F,cAAc,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,cAAc,IAAI,SAAS,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"task-store.js","sourceRoot":"","sources":["../src/task-store.ts"],"names":[],"mappings":"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"}