@cogitator-ai/a2a 0.3.11 → 0.4.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 (68) hide show
  1. package/README.md +64 -7
  2. package/dist/adapters/express.d.ts.map +1 -1
  3. package/dist/adapters/express.js +22 -22
  4. package/dist/adapters/express.js.map +1 -1
  5. package/dist/adapters/fastify.d.ts.map +1 -1
  6. package/dist/adapters/fastify.js +23 -24
  7. package/dist/adapters/fastify.js.map +1 -1
  8. package/dist/adapters/hono.d.ts.map +1 -1
  9. package/dist/adapters/hono.js +25 -8
  10. package/dist/adapters/hono.js.map +1 -1
  11. package/dist/adapters/koa.d.ts.map +1 -1
  12. package/dist/adapters/koa.js +16 -23
  13. package/dist/adapters/koa.js.map +1 -1
  14. package/dist/adapters/next.d.ts.map +1 -1
  15. package/dist/adapters/next.js +22 -19
  16. package/dist/adapters/next.js.map +1 -1
  17. package/dist/adapters/shared.d.ts +18 -0
  18. package/dist/adapters/shared.d.ts.map +1 -0
  19. package/dist/adapters/shared.js +52 -0
  20. package/dist/adapters/shared.js.map +1 -0
  21. package/dist/adapters/sse-error-event.d.ts +3 -0
  22. package/dist/adapters/sse-error-event.d.ts.map +1 -0
  23. package/dist/adapters/sse-error-event.js +11 -0
  24. package/dist/adapters/sse-error-event.js.map +1 -0
  25. package/dist/agent-card.d.ts.map +1 -1
  26. package/dist/agent-card.js +15 -2
  27. package/dist/agent-card.js.map +1 -1
  28. package/dist/client.d.ts +24 -4
  29. package/dist/client.d.ts.map +1 -1
  30. package/dist/client.js +163 -83
  31. package/dist/client.js.map +1 -1
  32. package/dist/errors.d.ts +1 -0
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/errors.js +3 -0
  35. package/dist/errors.js.map +1 -1
  36. package/dist/index.d.ts +6 -5
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +3 -3
  39. package/dist/index.js.map +1 -1
  40. package/dist/json-rpc.d.ts +2 -2
  41. package/dist/json-rpc.d.ts.map +1 -1
  42. package/dist/json-rpc.js +11 -7
  43. package/dist/json-rpc.js.map +1 -1
  44. package/dist/push-notifications.d.ts +8 -1
  45. package/dist/push-notifications.d.ts.map +1 -1
  46. package/dist/push-notifications.js +178 -25
  47. package/dist/push-notifications.js.map +1 -1
  48. package/dist/redis-task-store.d.ts +1 -0
  49. package/dist/redis-task-store.d.ts.map +1 -1
  50. package/dist/redis-task-store.js +44 -4
  51. package/dist/redis-task-store.js.map +1 -1
  52. package/dist/server.d.ts +19 -2
  53. package/dist/server.d.ts.map +1 -1
  54. package/dist/server.js +287 -135
  55. package/dist/server.js.map +1 -1
  56. package/dist/task-manager.d.ts +27 -2
  57. package/dist/task-manager.d.ts.map +1 -1
  58. package/dist/task-manager.js +126 -36
  59. package/dist/task-manager.js.map +1 -1
  60. package/dist/task-store.d.ts +10 -0
  61. package/dist/task-store.d.ts.map +1 -1
  62. package/dist/task-store.js +28 -0
  63. package/dist/task-store.js.map +1 -1
  64. package/dist/types.d.ts +17 -0
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/types.js +7 -0
  67. package/dist/types.js.map +1 -1
  68. package/package.json +5 -5
@@ -0,0 +1,52 @@
1
+ import { buildSseErrorEvent } from './sse-error-event.js';
2
+ /**
3
+ * A request streams only for the `message/stream` method; the Accept header
4
+ * alone does not switch a `message/send` request to SSE.
5
+ */
6
+ export function isStreamRequest(body) {
7
+ return (typeof body === 'object' &&
8
+ body !== null &&
9
+ !Array.isArray(body) &&
10
+ body.method === 'message/stream');
11
+ }
12
+ export function firstHeader(value) {
13
+ if (Array.isArray(value))
14
+ return value[0];
15
+ return value ?? undefined;
16
+ }
17
+ export function sseFrame(data) {
18
+ return `data: ${typeof data === 'string' ? data : JSON.stringify(data)}\n\n`;
19
+ }
20
+ export const SSE_HEADERS = {
21
+ 'Content-Type': 'text/event-stream',
22
+ 'Cache-Control': 'no-cache',
23
+ Connection: 'keep-alive',
24
+ 'X-Accel-Buffering': 'no',
25
+ };
26
+ /**
27
+ * Drive a JSON-RPC stream and write SSE frames until it ends, the client
28
+ * disconnects (signal aborted) or a write fails. Errors are reported as a
29
+ * final failed status-update frame.
30
+ */
31
+ export async function pipeJsonRpcStream(server, body, authToken, signal, write) {
32
+ try {
33
+ for await (const event of server.handleJsonRpcStream(body, authToken, signal)) {
34
+ if (signal.aborted)
35
+ return;
36
+ await write(sseFrame(event));
37
+ }
38
+ if (!signal.aborted)
39
+ await write(sseFrame('[DONE]'));
40
+ }
41
+ catch (error) {
42
+ if (signal.aborted)
43
+ return;
44
+ try {
45
+ await write(sseFrame(buildSseErrorEvent(error)));
46
+ }
47
+ catch {
48
+ return;
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAgC,CAAC,MAAM,KAAK,gBAAgB,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAA+B;IACtD,OAAO,SAAS,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,UAAU;IAC3B,UAAU,EAAE,YAAY;IACxB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiB,EACjB,IAAa,EACb,SAA6B,EAC7B,MAAmB,EACnB,KAA8C;IAE9C,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YAC9E,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO;YAC3B,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { A2AStreamEvent } from '../types.js';
2
+ export declare function buildSseErrorEvent(error: unknown): A2AStreamEvent;
3
+ //# sourceMappingURL=sse-error-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-error-event.d.ts","sourceRoot":"","sources":["../../src/adapters/sse-error-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CASjE"}
@@ -0,0 +1,11 @@
1
+ export function buildSseErrorEvent(error) {
2
+ const message = error instanceof Error ? error.message : 'Internal streaming error';
3
+ const timestamp = new Date().toISOString();
4
+ return {
5
+ type: 'status-update',
6
+ taskId: '',
7
+ status: { state: 'failed', timestamp, message },
8
+ timestamp,
9
+ };
10
+ }
11
+ //# sourceMappingURL=sse-error-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-error-event.js","sourceRoot":"","sources":["../../src/adapters/sse-error-event.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;IACpF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;QAC/C,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../src/agent-card.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,IAAI,MAAM,EAAQ,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAc,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAYD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAuBrF;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,uBAAuB,GAC/B,SAAS,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAKnC;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,MAAM,EAAE,MAAM,GACb,OAAO,CAcT"}
1
+ {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../src/agent-card.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,IAAI,MAAM,EAAQ,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAc,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAYD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAuBrF;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,uBAAuB,GAC/B,SAAS,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAKnC;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,MAAM,EAAE,MAAM,GACb,OAAO,CAcT"}
@@ -29,9 +29,22 @@ export function generateAgentCard(agent, options) {
29
29
  }
30
30
  return card;
31
31
  }
32
+ function sortedStringify(value) {
33
+ if (value === null || value === undefined || typeof value !== 'object') {
34
+ return JSON.stringify(value);
35
+ }
36
+ if (Array.isArray(value)) {
37
+ return `[${value.map((item) => sortedStringify(item)).join(',')}]`;
38
+ }
39
+ const sorted = Object.keys(value)
40
+ .sort((a, b) => a.localeCompare(b))
41
+ .map((key) => `${JSON.stringify(key)}:${sortedStringify(value[key])}`)
42
+ .join(',');
43
+ return `{${sorted}}`;
44
+ }
32
45
  export function signAgentCard(card, options) {
33
46
  const algorithm = options.algorithm ?? 'hmac-sha256';
34
- const payload = JSON.stringify(card, Object.keys(card).sort());
47
+ const payload = sortedStringify(card);
35
48
  const signature = createHmac('sha256', options.secret).update(payload).digest('hex');
36
49
  return { ...card, signature: `${algorithm}:${signature}` };
37
50
  }
@@ -46,7 +59,7 @@ export function verifyAgentCardSignature(card, secret) {
46
59
  if (algorithm !== 'hmac-sha256' || !sig)
47
60
  return false;
48
61
  const { signature: _, ...cardWithoutSig } = card;
49
- const payload = JSON.stringify(cardWithoutSig, Object.keys(cardWithoutSig).sort());
62
+ const payload = sortedStringify(cardWithoutSig);
50
63
  const expected = createHmac('sha256', secret).update(payload).digest('hex');
51
64
  const sigBuf = Buffer.from(sig, 'hex');
52
65
  const expectedBuf = Buffer.from(expected, 'hex');
@@ -1 +1 @@
1
- {"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../src/agent-card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../src/agent-card.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Tool } from '@cogitator-ai/types';
2
- import type { AgentCard, ExtendedAgentCard, A2AMessage, A2ATask, A2AStreamEvent, A2AClientConfig, SendMessageConfiguration, TaskFilter, PushNotificationConfig } from './types.js';
2
+ import type { AgentCard, ExtendedAgentCard, A2AMessage, A2ATask, A2AStreamEvent, A2AClientConfig, SendMessageConfiguration, TaskFilter, PushNotificationConfig, TaskState } from './types.js';
3
3
  export interface A2AToolOptions {
4
4
  name?: string;
5
5
  description?: string;
@@ -9,6 +9,16 @@ export interface A2AToolResult {
9
9
  output: string;
10
10
  success: boolean;
11
11
  error?: string;
12
+ /** Remote task id, set when the task needs follow-up (e.g. input-required) */
13
+ taskId?: string;
14
+ /** Final state of the remote task */
15
+ state?: TaskState;
16
+ }
17
+ export interface A2ARequestOptions {
18
+ /** Cancels the request (and an in-flight stream) */
19
+ signal?: AbortSignal;
20
+ /** Overrides the client timeout for this request; for streams it is the idle timeout between events */
21
+ timeout?: number;
12
22
  }
13
23
  export declare class A2AClient {
14
24
  private baseUrl;
@@ -19,11 +29,16 @@ export declare class A2AClient {
19
29
  private cachedCard;
20
30
  constructor(baseUrl: string, config?: A2AClientConfig);
21
31
  agentCard(): Promise<AgentCard>;
22
- sendMessage(message: A2AMessage, config?: SendMessageConfiguration): Promise<A2ATask>;
23
- sendMessageStream(message: A2AMessage, config?: SendMessageConfiguration): AsyncGenerator<A2AStreamEvent>;
32
+ refreshAgentCard(): Promise<AgentCard>;
33
+ sendMessage(message: A2AMessage, config?: SendMessageConfiguration, options?: A2ARequestOptions): Promise<A2ATask>;
34
+ /**
35
+ * Stream a message. The client timeout applies to the wait for the response
36
+ * and to the idle time between events, not to the total stream duration.
37
+ */
38
+ sendMessageStream(message: A2AMessage, config?: SendMessageConfiguration, options?: A2ARequestOptions): AsyncGenerator<A2AStreamEvent>;
24
39
  getTask(taskId: string, historyLength?: number): Promise<A2ATask>;
25
40
  cancelTask(taskId: string): Promise<A2ATask>;
26
- continueTask(taskId: string, text: string, config?: SendMessageConfiguration): Promise<A2ATask>;
41
+ continueTask(taskId: string, text: string, config?: SendMessageConfiguration, options?: A2ARequestOptions): Promise<A2ATask>;
27
42
  listTasks(filter?: TaskFilter): Promise<A2ATask[]>;
28
43
  asTool(options?: A2AToolOptions): Tool<{
29
44
  task: string;
@@ -38,8 +53,13 @@ export declare class A2AClient {
38
53
  task: string;
39
54
  }, A2AToolResult>;
40
55
  private rpc;
56
+ /**
57
+ * Surface a JSON-RPC error body when the server sent one with a non-2xx status
58
+ */
59
+ private throwHttpError;
41
60
  private httpGet;
42
61
  private parseSSEStream;
62
+ private extractSseData;
43
63
  private extractOutputFromTask;
44
64
  private generateRequestId;
45
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,qBAAqB,CAAC;AAEzE,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAA0B;gBAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe;IAQ/C,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAgB/B,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpF,iBAAiB,CACtB,OAAO,EAAE,UAAU,EACnB,MAAM,CAAC,EAAE,wBAAwB,GAChC,cAAc,CAAC,cAAc,CAAC;IA4B3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC;IAWb,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAKxD,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,aAAa,CAAC;IAoEjE,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAK5B,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAKnC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAKxE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjD,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKrD,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,aAAa,CAAC;YAQlF,GAAG;YA+BH,OAAO;YAaN,cAAc;IA8C7B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,iBAAiB;CAG1B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,8 +1,23 @@
1
+ import { randomUUID } from 'node:crypto';
1
2
  import { z } from 'zod';
2
- import { isTerminalState } from './types.js';
3
+ import { isStreamFinalState } from './types.js';
3
4
  import { A2AError } from './errors.js';
4
5
  import * as errors from './errors.js';
5
6
  import { verifyAgentCardSignature } from './agent-card.js';
7
+ function combineSignals(a, b) {
8
+ const controller = new AbortController();
9
+ for (const signal of [a, b]) {
10
+ if (signal.aborted) {
11
+ controller.abort(signal.reason);
12
+ return controller.signal;
13
+ }
14
+ signal.addEventListener('abort', () => controller.abort(signal.reason), {
15
+ once: true,
16
+ signal: controller.signal,
17
+ });
18
+ }
19
+ return controller.signal;
20
+ }
6
21
  export class A2AClient {
7
22
  baseUrl;
8
23
  headers;
@@ -21,63 +36,101 @@ export class A2AClient {
21
36
  if (this.cachedCard)
22
37
  return this.cachedCard;
23
38
  const response = await this.httpGet(this.agentCardPath);
24
- const data = await response.json();
39
+ const data = (await response.json());
40
+ let card;
25
41
  if (Array.isArray(data)) {
26
42
  if (data.length === 0) {
27
43
  throw new A2AError(errors.internalError('Agent card response is empty array'));
28
44
  }
29
- this.cachedCard = data[0];
45
+ card = data[0];
30
46
  }
31
47
  else {
32
- this.cachedCard = data;
48
+ card = data;
33
49
  }
34
- return this.cachedCard;
50
+ this.cachedCard = card;
51
+ return card;
35
52
  }
36
- async sendMessage(message, config) {
37
- const result = await this.rpc('message/send', {
38
- message,
39
- configuration: config,
40
- });
53
+ async refreshAgentCard() {
54
+ this.cachedCard = null;
55
+ return this.agentCard();
56
+ }
57
+ async sendMessage(message, config, options) {
58
+ const result = await this.rpc('message/send', { message, configuration: config }, options);
41
59
  return result;
42
60
  }
43
- async *sendMessageStream(message, config) {
61
+ /**
62
+ * Stream a message. The client timeout applies to the wait for the response
63
+ * and to the idle time between events, not to the total stream duration.
64
+ */
65
+ async *sendMessageStream(message, config, options) {
44
66
  const body = JSON.stringify({
45
67
  jsonrpc: '2.0',
46
68
  method: 'message/stream',
47
69
  params: { message, configuration: config },
48
70
  id: this.generateRequestId(),
49
71
  });
50
- const response = await fetch(`${this.baseUrl}${this.rpcPath}`, {
51
- method: 'POST',
52
- headers: {
53
- 'Content-Type': 'application/json',
54
- Accept: 'text/event-stream',
55
- ...this.headers,
56
- },
57
- body,
58
- signal: AbortSignal.timeout(this.timeout),
59
- });
60
- if (!response.ok) {
61
- throw new A2AError(errors.internalError(`HTTP ${response.status}: ${response.statusText}`));
72
+ const idleTimeout = options?.timeout ?? this.timeout;
73
+ const controller = new AbortController();
74
+ let timedOut = false;
75
+ let timer;
76
+ const armTimer = () => {
77
+ if (timer !== undefined)
78
+ clearTimeout(timer);
79
+ timer = setTimeout(() => {
80
+ timedOut = true;
81
+ controller.abort(new DOMException('A2A stream timed out', 'TimeoutError'));
82
+ }, idleTimeout);
83
+ };
84
+ const onExternalAbort = () => controller.abort(options?.signal?.reason);
85
+ if (options?.signal?.aborted)
86
+ onExternalAbort();
87
+ options?.signal?.addEventListener('abort', onExternalAbort, { once: true });
88
+ try {
89
+ armTimer();
90
+ const response = await fetch(`${this.baseUrl}${this.rpcPath}`, {
91
+ method: 'POST',
92
+ headers: {
93
+ 'Content-Type': 'application/json',
94
+ Accept: 'text/event-stream',
95
+ ...this.headers,
96
+ },
97
+ body,
98
+ signal: controller.signal,
99
+ });
100
+ if (!response.ok) {
101
+ await this.throwHttpError(response);
102
+ }
103
+ if (!response.body)
104
+ return;
105
+ yield* this.parseSSEStream(response.body, armTimer);
106
+ }
107
+ catch (error) {
108
+ if (timedOut) {
109
+ throw new A2AError(errors.internalError(`Stream idle for more than ${idleTimeout}ms`));
110
+ }
111
+ throw error;
112
+ }
113
+ finally {
114
+ if (timer !== undefined)
115
+ clearTimeout(timer);
116
+ options?.signal?.removeEventListener('abort', onExternalAbort);
117
+ controller.abort();
62
118
  }
63
- if (!response.body)
64
- return;
65
- yield* this.parseSSEStream(response.body);
66
119
  }
67
120
  async getTask(taskId, historyLength) {
68
- const result = await this.rpc('tasks/get', { id: taskId, historyLength });
121
+ const result = await this.rpc('tasks/get', historyLength === undefined ? { id: taskId } : { id: taskId, historyLength });
69
122
  return result;
70
123
  }
71
124
  async cancelTask(taskId) {
72
125
  const result = await this.rpc('tasks/cancel', { id: taskId });
73
126
  return result;
74
127
  }
75
- async continueTask(taskId, text, config) {
128
+ async continueTask(taskId, text, config, options) {
76
129
  return this.sendMessage({
77
130
  role: 'user',
78
131
  parts: [{ type: 'text', text }],
79
132
  taskId,
80
- }, config);
133
+ }, config, options);
81
134
  }
82
135
  async listTasks(filter) {
83
136
  const result = (await this.rpc('tasks/list', filter ?? {}));
@@ -96,28 +149,36 @@ export class A2AClient {
96
149
  parameters,
97
150
  timeout: toolTimeout,
98
151
  sideEffects: ['external'],
99
- execute: async (params, _context) => {
152
+ execute: async (params, context) => {
100
153
  try {
101
154
  const message = {
102
155
  role: 'user',
103
156
  parts: [{ type: 'text', text: params.task }],
104
157
  };
105
- const task = await this.sendMessage(message);
106
- if (task.status.state === 'completed') {
107
- const output = this.extractOutputFromTask(task);
108
- return { output, success: true };
158
+ const task = await this.sendMessage(message, undefined, {
159
+ signal: context?.signal,
160
+ timeout: toolTimeout,
161
+ });
162
+ const state = task.status.state;
163
+ const output = this.extractOutputFromTask(task);
164
+ if (state === 'completed') {
165
+ return { output, success: true, state };
109
166
  }
110
- if (task.status.state === 'failed') {
167
+ if (state === 'input-required') {
111
168
  return {
112
- output: '',
169
+ output,
113
170
  success: false,
114
- error: task.status.message ?? 'Task failed',
171
+ error: 'Remote agent requires more input to continue this task',
172
+ taskId: task.id,
173
+ state,
115
174
  };
116
175
  }
117
176
  return {
118
- output: '',
177
+ output,
119
178
  success: false,
120
- error: `Unexpected task state: ${task.status.state}`,
179
+ error: task.status.message ?? `Remote task ended in state: ${state}`,
180
+ taskId: task.id,
181
+ state,
121
182
  };
122
183
  }
123
184
  catch (error) {
@@ -173,13 +234,14 @@ export class A2AClient {
173
234
  timeout: options?.timeout,
174
235
  });
175
236
  }
176
- async rpc(method, params) {
237
+ async rpc(method, params, options) {
177
238
  const body = JSON.stringify({
178
239
  jsonrpc: '2.0',
179
240
  method,
180
241
  params,
181
242
  id: this.generateRequestId(),
182
243
  });
244
+ const timeoutSignal = AbortSignal.timeout(options?.timeout ?? this.timeout);
183
245
  const response = await fetch(`${this.baseUrl}${this.rpcPath}`, {
184
246
  method: 'POST',
185
247
  headers: {
@@ -187,10 +249,10 @@ export class A2AClient {
187
249
  ...this.headers,
188
250
  },
189
251
  body,
190
- signal: AbortSignal.timeout(this.timeout),
252
+ signal: options?.signal ? combineSignals(options.signal, timeoutSignal) : timeoutSignal,
191
253
  });
192
254
  if (!response.ok) {
193
- throw new A2AError(errors.internalError(`HTTP ${response.status}: ${response.statusText}`));
255
+ await this.throwHttpError(response);
194
256
  }
195
257
  const json = (await response.json());
196
258
  if (json.error) {
@@ -198,17 +260,34 @@ export class A2AClient {
198
260
  }
199
261
  return json.result;
200
262
  }
263
+ /**
264
+ * Surface a JSON-RPC error body when the server sent one with a non-2xx status
265
+ */
266
+ async throwHttpError(response) {
267
+ const text = await response.text().catch(() => '');
268
+ try {
269
+ const parsed = JSON.parse(text);
270
+ if (parsed.error && typeof parsed.error.code === 'number') {
271
+ throw new A2AError(parsed.error);
272
+ }
273
+ }
274
+ catch (error) {
275
+ if (error instanceof A2AError)
276
+ throw error;
277
+ }
278
+ throw new A2AError(errors.internalError(`HTTP ${response.status}: ${response.statusText}`));
279
+ }
201
280
  async httpGet(path) {
202
281
  const response = await fetch(`${this.baseUrl}${path}`, {
203
282
  headers: this.headers,
204
283
  signal: AbortSignal.timeout(this.timeout),
205
284
  });
206
285
  if (!response.ok) {
207
- throw new A2AError(errors.internalError(`HTTP ${response.status}: ${response.statusText}`));
286
+ await this.throwHttpError(response);
208
287
  }
209
288
  return response;
210
289
  }
211
- async *parseSSEStream(body) {
290
+ async *parseSSEStream(body, onActivity) {
212
291
  const reader = body.getReader();
213
292
  const decoder = new TextDecoder();
214
293
  let buffer = '';
@@ -217,64 +296,65 @@ export class A2AClient {
217
296
  const { done, value } = await reader.read();
218
297
  if (done)
219
298
  break;
299
+ onActivity?.();
220
300
  buffer += decoder.decode(value, { stream: true });
221
- const frames = buffer.split('\n\n');
222
- buffer = frames.pop() ?? '';
301
+ const pendingCarriageReturn = buffer.endsWith('\r');
302
+ const normalized = (pendingCarriageReturn ? buffer.slice(0, -1) : buffer).replace(/\r\n?/g, '\n');
303
+ const frames = normalized.split('\n\n');
304
+ buffer = (frames.pop() ?? '') + (pendingCarriageReturn ? '\r' : '');
223
305
  for (const frame of frames) {
224
- if (!frame.trim())
225
- continue;
226
- const lines = frame.split('\n');
227
- const dataLines = [];
228
- for (const line of lines) {
229
- if (line.startsWith('data: ')) {
230
- dataLines.push(line.slice(6));
231
- }
232
- else if (line.startsWith('data:')) {
233
- dataLines.push(line.slice(5));
234
- }
235
- }
236
- const data = dataLines.join('\n');
306
+ const data = this.extractSseData(frame);
237
307
  if (!data || data === '[DONE]')
238
308
  continue;
309
+ let event;
239
310
  try {
240
- const event = JSON.parse(data);
241
- yield event;
242
- if (event.type === 'status-update' && isTerminalState(event.status.state)) {
243
- return;
244
- }
311
+ event = JSON.parse(data);
312
+ }
313
+ catch {
314
+ process.stderr.write(`[a2a] Failed to parse SSE event: ${data.slice(0, 200)}\n`);
315
+ continue;
316
+ }
317
+ yield event;
318
+ if (event.type === 'status-update' && isStreamFinalState(event.status.state)) {
319
+ return;
245
320
  }
246
- catch { }
247
321
  }
248
322
  }
249
323
  }
250
324
  finally {
325
+ await reader.cancel().catch(() => { });
251
326
  reader.releaseLock();
252
327
  }
253
328
  }
254
- extractOutputFromTask(task) {
255
- if (task.artifacts) {
256
- for (const artifact of task.artifacts) {
257
- for (const part of artifact.parts) {
258
- if (part.type === 'text')
259
- return part.text;
260
- }
329
+ extractSseData(frame) {
330
+ const dataLines = [];
331
+ for (const line of frame.split('\n')) {
332
+ if (line.startsWith('data:')) {
333
+ dataLines.push(line.slice(line.startsWith('data: ') ? 6 : 5));
261
334
  }
262
335
  }
263
- if (task.history) {
264
- for (let i = task.history.length - 1; i >= 0; i--) {
265
- const msg = task.history[i];
266
- if (msg.role === 'agent') {
267
- for (const part of msg.parts) {
268
- if (part.type === 'text')
269
- return part.text;
270
- }
271
- }
336
+ return dataLines.join('\n');
337
+ }
338
+ extractOutputFromTask(task) {
339
+ const history = task.history ?? [];
340
+ for (let i = history.length - 1; i >= 0; i--) {
341
+ const msg = history[i];
342
+ if (msg.role === 'agent') {
343
+ const text = msg.parts.find((part) => part.type === 'text');
344
+ if (text)
345
+ return text.text;
272
346
  }
273
347
  }
274
- return '';
348
+ const artifacts = task.artifacts ?? [];
349
+ for (let i = artifacts.length - 1; i >= 0; i--) {
350
+ const text = artifacts[i].parts.find((part) => part.type === 'text');
351
+ if (text)
352
+ return text.text;
353
+ }
354
+ return task.status.message ?? '';
275
355
  }
276
356
  generateRequestId() {
277
- return `req_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
357
+ return `req_${randomUUID()}`;
278
358
  }
279
359
  }
280
360
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -8,6 +8,7 @@ export declare function unsupportedOperation(method: string): JsonRpcError;
8
8
  export declare function contentTypeNotSupported(contentType: string): JsonRpcError;
9
9
  export declare function invalidAgentResponse(detail: string): JsonRpcError;
10
10
  export declare function agentNotFound(agentName: string): JsonRpcError;
11
+ export declare function unauthorized(detail?: string): JsonRpcError;
11
12
  export declare function parseError(detail?: string): JsonRpcError;
12
13
  export declare function invalidRequest(detail?: string): JsonRpcError;
13
14
  export declare function methodNotFound(method: string): JsonRpcError;