dsh-a2a-server 0.1.1 → 0.2.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 (59) hide show
  1. package/README.md +57 -33
  2. package/README.zh-CN.md +50 -30
  3. package/lib/config.d.ts +15 -7
  4. package/lib/config.d.ts.map +1 -1
  5. package/lib/config.js +6 -1
  6. package/lib/config.js.map +1 -1
  7. package/lib/index.d.ts +9 -4
  8. package/lib/index.d.ts.map +1 -1
  9. package/lib/index.js +53 -20
  10. package/lib/index.js.map +1 -1
  11. package/lib/projection.d.ts +21 -19
  12. package/lib/projection.d.ts.map +1 -1
  13. package/lib/projection.js +15 -7
  14. package/lib/projection.js.map +1 -1
  15. package/lib/protocol/card.d.ts +25 -7
  16. package/lib/protocol/card.d.ts.map +1 -1
  17. package/lib/protocol/card.js +35 -14
  18. package/lib/protocol/card.js.map +1 -1
  19. package/lib/protocol/index.d.ts +10 -10
  20. package/lib/protocol/index.d.ts.map +1 -1
  21. package/lib/protocol/index.js +8 -8
  22. package/lib/protocol/index.js.map +1 -1
  23. package/lib/protocol/jsonrpc.d.ts +54 -6
  24. package/lib/protocol/jsonrpc.d.ts.map +1 -1
  25. package/lib/protocol/jsonrpc.js +70 -8
  26. package/lib/protocol/jsonrpc.js.map +1 -1
  27. package/lib/protocol/parse.d.ts +79 -0
  28. package/lib/protocol/parse.d.ts.map +1 -0
  29. package/lib/protocol/parse.js +249 -0
  30. package/lib/protocol/parse.js.map +1 -0
  31. package/lib/protocol/sse.d.ts +6 -3
  32. package/lib/protocol/sse.d.ts.map +1 -1
  33. package/lib/protocol/sse.js +4 -2
  34. package/lib/protocol/sse.js.map +1 -1
  35. package/lib/protocol/wire.d.ts +165 -54
  36. package/lib/protocol/wire.d.ts.map +1 -1
  37. package/lib/protocol/wire.js +54 -9
  38. package/lib/protocol/wire.js.map +1 -1
  39. package/lib/router.d.ts +10 -1
  40. package/lib/router.d.ts.map +1 -1
  41. package/lib/router.js +247 -107
  42. package/lib/router.js.map +1 -1
  43. package/lib/security.d.ts +33 -1
  44. package/lib/security.d.ts.map +1 -1
  45. package/lib/security.js +44 -2
  46. package/lib/security.js.map +1 -1
  47. package/lib/tasks.js +5 -5
  48. package/lib/tasks.js.map +1 -1
  49. package/lib/types.d.ts +3 -3
  50. package/lib/types.js +1 -1
  51. package/lib/version.d.ts +20 -0
  52. package/lib/version.d.ts.map +1 -0
  53. package/lib/version.js +20 -0
  54. package/lib/version.js.map +1 -0
  55. package/package.json +1 -1
  56. package/lib/protocol/normalize.d.ts +0 -72
  57. package/lib/protocol/normalize.d.ts.map +0 -1
  58. package/lib/protocol/normalize.js +0 -278
  59. package/lib/protocol/normalize.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/protocol/sse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAE7E"}
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/protocol/sse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAEvF"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * Server-Sent Events framing for `message/stream` and `tasks/resubscribe`.
2
+ * Server-Sent Events framing for `SendStreamingMessage` and `SubscribeToTask`.
3
3
  *
4
4
  * A2A streams JSON-RPC responses, not bare events: each frame carries the same
5
5
  * envelope the unary methods return, correlated by the original request id.
6
+ * The payload is always a `StreamResponse` — v1.0 identifies an event by the
7
+ * member it is wrapped in, so a bare event on the wire is unreadable.
6
8
  *
7
9
  * @module dsh-a2a/protocol/sse
8
10
  */
@@ -14,7 +16,7 @@ import { jsonRpcResult } from "./jsonrpc.js";
14
16
  * serialized compactly (JSON.stringify emits no raw newlines) and terminated
15
17
  * with the blank line SSE requires.
16
18
  * @param id - the JSON-RPC id of the request this stream answers.
17
- * @param payload - the already-dialect-rendered event.
19
+ * @param payload - the StreamResponse to carry.
18
20
  * @returns the wire text of one frame.
19
21
  */
20
22
  export function sseFrame(id, payload) {
@@ -1 +1 @@
1
- {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/protocol/sse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,EAA0B,EAAE,OAAgB;IACnE,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAA;AAClE,CAAC"}
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/protocol/sse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,EAA0B,EAAE,OAA0B;IAC7E,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAA;AAClE,CAAC"}
@@ -1,16 +1,27 @@
1
1
  /**
2
- * A2A wire vocabulary, normalized to the v0.3.0 spelling.
2
+ * The A2A v1.0 wire vocabulary.
3
3
  *
4
- * The server speaks one internal shape. Requests in either dialect are parsed
5
- * into these types on the way in ({@link ./normalize.ts}), and responses are
6
- * rendered back into the caller's dialect on the way out. No plugin module
7
- * outside `protocol/` sees a v1.0 spelling.
4
+ * There is exactly ONE shape in this server. v1.0 removed the `kind`
5
+ * discriminator, renamed every enum to its ProtoJSON spelling, and flattened
6
+ * `Part` into a single unified message — so the JSON these types describe is
7
+ * the JSON that goes on the wire, with no translation layer between them.
8
+ * That is the whole reason the v0.3 dialect machinery is gone: it existed only
9
+ * to bridge two spellings, and this server now speaks one.
8
10
  *
9
11
  * @module dsh-a2a/protocol/wire
10
12
  */
11
13
  import type { A2AContextId, A2ATaskId } from './brand.ts';
12
- /** Task lifecycle state, in the v0.3 JSON spelling. */
13
- export type A2ATaskState = 'submitted' | 'working' | 'input-required' | 'auth-required' | 'completed' | 'canceled' | 'failed' | 'rejected';
14
+ /**
15
+ * The single A2A protocol version this server implements.
16
+ *
17
+ * Major.Minor only: the spec states patch numbers do not affect compatibility
18
+ * and SHOULD NOT appear in requests, responses, or Agent Cards.
19
+ */
20
+ export declare const A2A_PROTOCOL_VERSION = "1.0";
21
+ /** Task lifecycle state, in the ProtoJSON enum spelling v1.0 requires. */
22
+ export type A2ATaskState = 'TASK_STATE_UNSPECIFIED' | 'TASK_STATE_SUBMITTED' | 'TASK_STATE_WORKING' | 'TASK_STATE_INPUT_REQUIRED' | 'TASK_STATE_AUTH_REQUIRED' | 'TASK_STATE_COMPLETED' | 'TASK_STATE_CANCELED' | 'TASK_STATE_FAILED' | 'TASK_STATE_REJECTED';
23
+ /** Every state a peer may name, e.g. as the `ListTasks` status filter. */
24
+ export declare const TASK_STATES: readonly A2ATaskState[];
14
25
  /** States after which a task accepts no further transition. */
15
26
  export declare const TERMINAL_STATES: ReadonlySet<A2ATaskState>;
16
27
  /**
@@ -19,41 +30,46 @@ export declare const TERMINAL_STATES: ReadonlySet<A2ATaskState>;
19
30
  * @returns true when no further transition is accepted.
20
31
  */
21
32
  export declare function isTerminal(state: A2ATaskState): boolean;
22
- /** Message author, in the v0.3 JSON spelling. */
23
- export type A2ARole = 'user' | 'agent';
24
- /** Which spelling a peer used; every response echoes the request's dialect. */
25
- export type A2ADialect = 'v0.3' | 'v1.0';
26
- /** A text segment of a message or artifact. */
33
+ /** Message author, in the ProtoJSON enum spelling. */
34
+ export type A2ARole = 'ROLE_USER' | 'ROLE_AGENT';
35
+ /**
36
+ * A text segment of a message or artifact.
37
+ *
38
+ * v1.0 unified the three part types into one message whose content member IS
39
+ * the discriminator, so these three interfaces narrow on member presence
40
+ * (`'text' in part`) rather than on a `kind` tag that no longer exists.
41
+ */
27
42
  export interface A2ATextPart {
28
- kind: 'text';
29
43
  text: string;
44
+ mediaType?: string;
45
+ metadata?: Record<string, unknown>;
30
46
  }
31
- /** A file reference or inline payload. */
47
+ /** A file reference (`url`) or inline base64 payload (`raw`). */
32
48
  export interface A2AFilePart {
33
- kind: 'file';
34
- file: {
35
- name?: string;
36
- mimeType?: string;
37
- uri?: string;
38
- bytes?: string;
39
- };
49
+ url?: string;
50
+ raw?: string;
51
+ filename?: string;
52
+ mediaType?: string;
53
+ metadata?: Record<string, unknown>;
40
54
  }
41
55
  /** Structured JSON carried beside the text. */
42
56
  export interface A2ADataPart {
43
- kind: 'data';
44
57
  data: unknown;
58
+ mediaType?: string;
59
+ metadata?: Record<string, unknown>;
45
60
  }
46
- /** Any message or artifact segment. */
61
+ /** Any message or artifact segment. Exactly one content member is set. */
47
62
  export type A2APart = A2ATextPart | A2AFilePart | A2ADataPart;
48
63
  /** One message in a task's history. */
49
64
  export interface A2AMessage {
50
- kind: 'message';
51
65
  messageId: string;
52
66
  role: A2ARole;
53
67
  parts: A2APart[];
54
68
  taskId?: A2ATaskId;
55
69
  contextId?: A2AContextId;
56
70
  metadata?: Record<string, unknown>;
71
+ extensions?: string[];
72
+ referenceTaskIds?: string[];
57
73
  }
58
74
  /** A named output the agent produced for a task. */
59
75
  export interface A2AArtifact {
@@ -62,6 +78,7 @@ export interface A2AArtifact {
62
78
  description?: string;
63
79
  parts: A2APart[];
64
80
  metadata?: Record<string, unknown>;
81
+ extensions?: string[];
65
82
  }
66
83
  /** Current state plus the message that explains it. */
67
84
  export interface A2ATaskStatus {
@@ -71,7 +88,6 @@ export interface A2ATaskStatus {
71
88
  }
72
89
  /** The unit of work a peer submits and polls. */
73
90
  export interface A2ATask {
74
- kind: 'task';
75
91
  id: A2ATaskId;
76
92
  contextId: A2AContextId;
77
93
  status: A2ATaskStatus;
@@ -79,27 +95,69 @@ export interface A2ATask {
79
95
  artifacts?: A2AArtifact[];
80
96
  metadata?: Record<string, unknown>;
81
97
  }
82
- /** A streamed state transition. `final` closes the stream. */
98
+ /**
99
+ * A streamed state transition.
100
+ *
101
+ * v1.0 removed the `final` flag: the stream's own closure is what tells a peer
102
+ * the task reached a terminal state, so a server that keeps a stream open after
103
+ * a terminal status is the bug, not a missing boolean.
104
+ */
83
105
  export interface A2ATaskStatusUpdateEvent {
84
- kind: 'status-update';
85
106
  taskId: A2ATaskId;
86
107
  contextId: A2AContextId;
87
108
  status: A2ATaskStatus;
88
- final: boolean;
89
109
  metadata?: Record<string, unknown>;
90
110
  }
91
111
  /** A streamed artifact, optionally appended to an earlier chunk. */
92
112
  export interface A2ATaskArtifactUpdateEvent {
93
- kind: 'artifact-update';
94
113
  taskId: A2ATaskId;
95
114
  contextId: A2AContextId;
96
115
  artifact: A2AArtifact;
116
+ /** Position of this artifact in the task's `artifacts` array. */
117
+ index?: number;
97
118
  append?: boolean;
98
119
  lastChunk?: boolean;
99
120
  metadata?: Record<string, unknown>;
100
121
  }
101
- /** Anything the server may push over an SSE stream. */
102
- export type A2AStreamEvent = A2ATask | A2AMessage | A2ATaskStatusUpdateEvent | A2ATaskArtifactUpdateEvent;
122
+ /**
123
+ * One frame of a stream, wrapped so the member name identifies the event type.
124
+ *
125
+ * Exactly one member is set. This replaces v0.3's `kind` tag, and it is why
126
+ * the router never writes a bare event onto a stream.
127
+ */
128
+ export type A2AStreamResponse = {
129
+ task: A2ATask;
130
+ } | {
131
+ message: A2AMessage;
132
+ } | {
133
+ statusUpdate: A2ATaskStatusUpdateEvent;
134
+ } | {
135
+ artifactUpdate: A2ATaskArtifactUpdateEvent;
136
+ };
137
+ /**
138
+ * Wrap a task as the opening frame of a stream.
139
+ * @param task - the task the stream follows.
140
+ * @returns the StreamResponse to serialize.
141
+ */
142
+ export declare function streamTask(task: A2ATask): A2AStreamResponse;
143
+ /**
144
+ * Wrap a status transition as a stream frame.
145
+ * @param event - the transition.
146
+ * @returns the StreamResponse to serialize.
147
+ */
148
+ export declare function streamStatusUpdate(event: A2ATaskStatusUpdateEvent): A2AStreamResponse;
149
+ /**
150
+ * Wrap an artifact as a stream frame.
151
+ * @param event - the artifact event.
152
+ * @returns the StreamResponse to serialize.
153
+ */
154
+ export declare function streamArtifactUpdate(event: A2ATaskArtifactUpdateEvent): A2AStreamResponse;
155
+ /** The result of `SendMessage`: a task to track, or a direct reply. */
156
+ export type A2ASendMessageResponse = {
157
+ task: A2ATask;
158
+ } | {
159
+ message: A2AMessage;
160
+ };
103
161
  /** Webhook registration a peer supplies for terminal-state callbacks. */
104
162
  export interface A2APushNotificationConfig {
105
163
  id?: string;
@@ -110,19 +168,49 @@ export interface A2APushNotificationConfig {
110
168
  credentials?: string;
111
169
  };
112
170
  }
113
- /** Per-request knobs carried beside the message on `message/send`. */
114
- export interface A2AMessageSendConfiguration {
171
+ /** A push configuration bound to a task. Flattened in v1.0. */
172
+ export interface A2ATaskPushNotificationConfig {
173
+ taskId?: string;
174
+ id?: string;
175
+ pushNotificationConfig?: A2APushNotificationConfig;
176
+ }
177
+ /** Per-request knobs carried beside the message on `SendMessage`. */
178
+ export interface A2ASendMessageConfiguration {
115
179
  acceptedOutputModes?: string[];
116
180
  historyLength?: number;
117
- pushNotificationConfig?: A2APushNotificationConfig;
118
- blocking?: boolean;
181
+ taskPushNotificationConfig?: A2ATaskPushNotificationConfig;
182
+ /**
183
+ * Whether to answer before the task settles.
184
+ *
185
+ * v1.0 inverted v0.3's `blocking`: operations are BLOCKING by default, and a
186
+ * client opts out. Unset therefore means "wait", not "return now".
187
+ */
188
+ returnImmediately?: boolean;
119
189
  }
120
- /** Parameters of `message/send` and `message/stream`. */
121
- export interface A2AMessageSendParams {
190
+ /** Parameters of `SendMessage` and `SendStreamingMessage`. */
191
+ export interface A2ASendMessageRequest {
122
192
  message: A2AMessage;
123
- configuration?: A2AMessageSendConfiguration;
193
+ configuration?: A2ASendMessageConfiguration;
124
194
  metadata?: Record<string, unknown>;
125
195
  }
196
+ /** Parameters of `ListTasks`. */
197
+ export interface A2AListTasksParams {
198
+ contextId?: string;
199
+ status?: A2ATaskState;
200
+ pageSize?: number;
201
+ pageToken?: string;
202
+ historyLength?: number;
203
+ statusTimestampAfter?: string;
204
+ includeArtifacts?: boolean;
205
+ }
206
+ /** The result of `ListTasks`. Cursor-paginated, newest first. */
207
+ export interface A2AListTasksResult {
208
+ tasks: A2ATask[];
209
+ /** Empty string, never absent, when this is the last page. */
210
+ nextPageToken: string;
211
+ pageSize: number;
212
+ totalSize: number;
213
+ }
126
214
  /** One capability this agent advertises on its card. */
127
215
  export interface A2AAgentSkill {
128
216
  id: string;
@@ -133,32 +221,55 @@ export interface A2AAgentSkill {
133
221
  inputModes?: string[];
134
222
  outputModes?: string[];
135
223
  }
224
+ /**
225
+ * One transport this agent answers on.
226
+ *
227
+ * v1.0 folded `url`, `preferredTransport`, `additionalInterfaces`, and the
228
+ * card-level `protocolVersion` into this one repeated field: a version is a
229
+ * property of an interface, not of an agent.
230
+ */
231
+ export interface A2AAgentInterface {
232
+ url: string;
233
+ protocolBinding: string;
234
+ protocolVersion: string;
235
+ tenant?: string;
236
+ }
237
+ /** Which schemes a caller must satisfy, and with which scopes. */
238
+ export interface A2ASecurityRequirement {
239
+ schemes: Record<string, {
240
+ list: string[];
241
+ }>;
242
+ }
243
+ /** Optional features a peer may rely on. */
244
+ export interface A2AAgentCapabilities {
245
+ streaming?: boolean;
246
+ pushNotifications?: boolean;
247
+ extensions?: {
248
+ uri: string;
249
+ description?: string;
250
+ required?: boolean;
251
+ }[];
252
+ /** v1.0 home of what v0.3 spelled `supportsAuthenticatedExtendedCard`. */
253
+ extendedAgentCard?: boolean;
254
+ }
136
255
  /** The public description a peer fetches before talking to us. */
137
256
  export interface A2AAgentCard {
138
- protocolVersion: string;
139
257
  name: string;
140
258
  description: string;
141
- version: string;
142
- url: string;
143
- preferredTransport: string;
144
- supportedInterfaces?: {
145
- url: string;
146
- protocolBinding: string;
147
- protocolVersion: string;
148
- }[];
259
+ /** Ordered; the first entry is the preferred interface. Required in v1.0. */
260
+ supportedInterfaces: A2AAgentInterface[];
149
261
  provider?: {
150
262
  organization: string;
151
263
  url: string;
152
264
  };
153
- capabilities: {
154
- streaming: boolean;
155
- pushNotifications: boolean;
156
- stateTransitionHistory: boolean;
157
- };
265
+ version: string;
266
+ documentationUrl?: string;
267
+ capabilities: A2AAgentCapabilities;
268
+ securitySchemes?: Record<string, unknown>;
269
+ securityRequirements?: A2ASecurityRequirement[];
158
270
  defaultInputModes: string[];
159
271
  defaultOutputModes: string[];
160
272
  skills: A2AAgentSkill[];
161
- securitySchemes?: Record<string, unknown>;
162
- security?: Record<string, string[]>[];
273
+ iconUrl?: string;
163
274
  }
164
275
  //# sourceMappingURL=wire.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/protocol/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/protocol/wire.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,40 @@
1
1
  /**
2
- * A2A wire vocabulary, normalized to the v0.3.0 spelling.
2
+ * The A2A v1.0 wire vocabulary.
3
3
  *
4
- * The server speaks one internal shape. Requests in either dialect are parsed
5
- * into these types on the way in ({@link ./normalize.ts}), and responses are
6
- * rendered back into the caller's dialect on the way out. No plugin module
7
- * outside `protocol/` sees a v1.0 spelling.
4
+ * There is exactly ONE shape in this server. v1.0 removed the `kind`
5
+ * discriminator, renamed every enum to its ProtoJSON spelling, and flattened
6
+ * `Part` into a single unified message — so the JSON these types describe is
7
+ * the JSON that goes on the wire, with no translation layer between them.
8
+ * That is the whole reason the v0.3 dialect machinery is gone: it existed only
9
+ * to bridge two spellings, and this server now speaks one.
8
10
  *
9
11
  * @module dsh-a2a/protocol/wire
10
12
  */
13
+ /**
14
+ * The single A2A protocol version this server implements.
15
+ *
16
+ * Major.Minor only: the spec states patch numbers do not affect compatibility
17
+ * and SHOULD NOT appear in requests, responses, or Agent Cards.
18
+ */
19
+ export const A2A_PROTOCOL_VERSION = '1.0';
20
+ /** Every state a peer may name, e.g. as the `ListTasks` status filter. */
21
+ export const TASK_STATES = [
22
+ 'TASK_STATE_UNSPECIFIED',
23
+ 'TASK_STATE_SUBMITTED',
24
+ 'TASK_STATE_WORKING',
25
+ 'TASK_STATE_INPUT_REQUIRED',
26
+ 'TASK_STATE_AUTH_REQUIRED',
27
+ 'TASK_STATE_COMPLETED',
28
+ 'TASK_STATE_CANCELED',
29
+ 'TASK_STATE_FAILED',
30
+ 'TASK_STATE_REJECTED',
31
+ ];
11
32
  /** States after which a task accepts no further transition. */
12
33
  export const TERMINAL_STATES = new Set([
13
- 'completed',
14
- 'canceled',
15
- 'failed',
16
- 'rejected',
34
+ 'TASK_STATE_COMPLETED',
35
+ 'TASK_STATE_CANCELED',
36
+ 'TASK_STATE_FAILED',
37
+ 'TASK_STATE_REJECTED',
17
38
  ]);
18
39
  /**
19
40
  * Whether a state is terminal.
@@ -23,4 +44,28 @@ export const TERMINAL_STATES = new Set([
23
44
  export function isTerminal(state) {
24
45
  return TERMINAL_STATES.has(state);
25
46
  }
47
+ /**
48
+ * Wrap a task as the opening frame of a stream.
49
+ * @param task - the task the stream follows.
50
+ * @returns the StreamResponse to serialize.
51
+ */
52
+ export function streamTask(task) {
53
+ return { task };
54
+ }
55
+ /**
56
+ * Wrap a status transition as a stream frame.
57
+ * @param event - the transition.
58
+ * @returns the StreamResponse to serialize.
59
+ */
60
+ export function streamStatusUpdate(event) {
61
+ return { statusUpdate: event };
62
+ }
63
+ /**
64
+ * Wrap an artifact as a stream frame.
65
+ * @param event - the artifact event.
66
+ * @returns the StreamResponse to serialize.
67
+ */
68
+ export function streamArtifactUpdate(event) {
69
+ return { artifactUpdate: event };
70
+ }
26
71
  //# sourceMappingURL=wire.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/protocol/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAA8B,IAAI,GAAG,CAAe;IAC9E,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;CACX,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAmB;IAC5C,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/protocol/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAczC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAA4B;IAClD,wBAAwB;IACxB,sBAAsB;IACtB,oBAAoB;IACpB,2BAA2B;IAC3B,0BAA0B;IAC1B,sBAAsB;IACtB,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;CACtB,CAAA;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAA8B,IAAI,GAAG,CAAe;IAC9E,sBAAsB;IACtB,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;CACtB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAmB;IAC5C,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAkHD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA+B;IAChE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAiC;IACpE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAA;AAClC,CAAC"}
package/lib/router.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * HTTP + JSON-RPC dispatch.
2
+ * HTTP + JSON-RPC dispatch for the A2A v1.0 binding.
3
3
  *
4
4
  * Deliberately free of Cordis: everything it needs arrives through
5
5
  * {@link RouterDeps}, so the RPC semantics can be unit-tested without booting a
@@ -28,6 +28,8 @@ export interface RouterDeps {
28
28
  resolvePeerSecrets: () => Promise<Map<PeerIdentity, string>>;
29
29
  identify: (token: string | undefined, secrets: ReadonlyMap<PeerIdentity, string>) => PeerIdentity | undefined;
30
30
  cardFor: (hostHeader: string | undefined) => A2AAgentCard;
31
+ /** The authenticated extended card, or undefined when none is configured. */
32
+ extendedCardFor: (hostHeader: string | undefined) => A2AAgentCard | undefined;
31
33
  createActivation: (peer: PeerIdentity) => Promise<Activation>;
32
34
  submit: (activation: Activation, text: string, peer: PeerIdentity) => Promise<TaskSlot>;
33
35
  cancel: (activation: Activation, slot: TaskSlot) => void;
@@ -39,6 +41,13 @@ export interface RouterDeps {
39
41
  * settled task is simply unreadable — the pre-projection behavior.
40
42
  */
41
43
  readProjectedTask?: (activation: Activation, taskId: A2ATaskId) => A2ATask | undefined;
44
+ /**
45
+ * Every settled task the projection holds for one context.
46
+ *
47
+ * Only `ListTasks` needs this; `GetTask` addresses a single id and uses
48
+ * {@link readProjectedTask}.
49
+ */
50
+ readProjectedTasks?: (activation: Activation) => A2ATask[];
42
51
  }
43
52
  /** The router surface the plugin body wires into routes and teardown. */
44
53
  export interface Router {
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAoBL,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAiC,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AACpH,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAA;AAK1D,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,eAAe,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC7E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,kBAAkB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,YAAY,GAAG,SAAS,CAAA;IAC7G,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,YAAY,CAAA;IACzD,gBAAgB,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7D,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvF,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IACxD,YAAY,EAAE,CACZ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,WAAW,EAAE,EACxB,UAAU,CAAC,EAAE,MAAM,KAChB,OAAO,CAAA;IACZ;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,CAAA;CACvF;AAWD,yEAAyE;AACzE,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;IAC9D,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,8DAA8D;IAC9D,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA0brD"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EA2BL,KAAK,YAAY,EACjB,KAAK,WAAW,EAGhB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAiC,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AACpH,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAA;AAQ1D,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,eAAe,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC7E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,kBAAkB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,YAAY,GAAG,SAAS,CAAA;IAC7G,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,YAAY,CAAA;IACzD,6EAA6E;IAC7E,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,YAAY,GAAG,SAAS,CAAA;IAC7E,gBAAgB,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7D,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvF,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IACxD,YAAY,EAAE,CACZ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,WAAW,EAAE,EACxB,UAAU,CAAC,EAAE,MAAM,KAChB,OAAO,CAAA;IACZ;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,CAAA;IACtF;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,EAAE,CAAA;CAC3D;AAUD,yEAAyE;AACzE,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;IAC9D,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,8DAA8D;IAC9D,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAmkBrD"}