@assistant-ui/react-a2a 0.2.36 → 0.2.37

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.
package/dist/types.d.ts CHANGED
@@ -1,290 +1,288 @@
1
- import { A2AClient, A2AClientOptions } from "./A2AClient.js";
2
- import { AttachmentAdapter, DictationAdapter, ExternalStoreSharedOptions, FeedbackAdapter, RealtimeVoiceAdapter, SpeechSynthesisAdapter, ThreadHistoryAdapter, ThreadMessage } from "@assistant-ui/core";
3
- //#region src/types.d.ts
1
+ import type { AttachmentAdapter, DictationAdapter, ExternalStoreSharedOptions, FeedbackAdapter, RealtimeVoiceAdapter, SpeechSynthesisAdapter, ThreadHistoryAdapter, ThreadMessage } from "@assistant-ui/core";
2
+ import type { A2AClient, A2AClientOptions } from "./A2AClient.js";
4
3
  export declare const A2A_PROTOCOL_VERSION = "1.0";
5
4
  export type A2ARole = "unspecified" | "user" | "agent";
6
5
  export type A2APart = {
7
- text?: string | undefined;
8
- raw?: string | undefined;
9
- url?: string | undefined;
10
- data?: unknown;
11
- metadata?: Record<string, unknown> | undefined;
12
- filename?: string | undefined;
13
- mediaType?: string | undefined;
6
+ text?: string | undefined;
7
+ raw?: string | undefined;
8
+ url?: string | undefined;
9
+ data?: unknown;
10
+ metadata?: Record<string, unknown> | undefined;
11
+ filename?: string | undefined;
12
+ mediaType?: string | undefined;
14
13
  };
15
14
  export type A2AMessage = {
16
- messageId: string;
17
- contextId?: string | undefined;
18
- taskId?: string | undefined;
19
- role: A2ARole;
20
- parts: A2APart[];
21
- metadata?: Record<string, unknown> | undefined;
22
- extensions?: string[] | undefined;
23
- referenceTaskIds?: string[] | undefined;
15
+ messageId: string;
16
+ contextId?: string | undefined;
17
+ taskId?: string | undefined;
18
+ role: A2ARole;
19
+ parts: A2APart[];
20
+ metadata?: Record<string, unknown> | undefined;
21
+ extensions?: string[] | undefined;
22
+ referenceTaskIds?: string[] | undefined;
24
23
  };
25
24
  export type A2ATaskState = "unspecified" | "submitted" | "working" | "completed" | "failed" | "canceled" | "input_required" | "rejected" | "auth_required";
26
25
  export type A2ATaskStatus = {
27
- state: A2ATaskState;
28
- message?: A2AMessage | undefined;
29
- timestamp?: string | undefined;
26
+ state: A2ATaskState;
27
+ message?: A2AMessage | undefined;
28
+ timestamp?: string | undefined;
30
29
  };
31
30
  export type A2AArtifact = {
32
- artifactId: string;
33
- name?: string | undefined;
34
- description?: string | undefined;
35
- parts: A2APart[];
36
- metadata?: Record<string, unknown> | undefined;
37
- extensions?: string[] | undefined;
31
+ artifactId: string;
32
+ name?: string | undefined;
33
+ description?: string | undefined;
34
+ parts: A2APart[];
35
+ metadata?: Record<string, unknown> | undefined;
36
+ extensions?: string[] | undefined;
38
37
  };
39
38
  export type A2ATask = {
40
- id: string;
41
- contextId?: string | undefined;
42
- status: A2ATaskStatus;
43
- artifacts?: A2AArtifact[] | undefined;
44
- history?: A2AMessage[] | undefined;
45
- metadata?: Record<string, unknown> | undefined;
39
+ id: string;
40
+ contextId?: string | undefined;
41
+ status: A2ATaskStatus;
42
+ artifacts?: A2AArtifact[] | undefined;
43
+ history?: A2AMessage[] | undefined;
44
+ metadata?: Record<string, unknown> | undefined;
46
45
  };
47
46
  export type A2ATaskStatusUpdateEvent = {
48
- taskId: string;
49
- contextId: string;
50
- status: A2ATaskStatus;
51
- metadata?: Record<string, unknown> | undefined;
47
+ taskId: string;
48
+ contextId: string;
49
+ status: A2ATaskStatus;
50
+ metadata?: Record<string, unknown> | undefined;
52
51
  };
53
52
  export type A2ATaskArtifactUpdateEvent = {
54
- taskId: string;
55
- contextId: string;
56
- artifact: A2AArtifact;
57
- append?: boolean | undefined;
58
- lastChunk?: boolean | undefined;
59
- metadata?: Record<string, unknown> | undefined;
53
+ taskId: string;
54
+ contextId: string;
55
+ artifact: A2AArtifact;
56
+ append?: boolean | undefined;
57
+ lastChunk?: boolean | undefined;
58
+ metadata?: Record<string, unknown> | undefined;
60
59
  };
61
60
  export type A2AStreamEvent = {
62
- type: "task";
63
- task: A2ATask;
61
+ type: "task";
62
+ task: A2ATask;
64
63
  } | {
65
- type: "message";
66
- message: A2AMessage;
64
+ type: "message";
65
+ message: A2AMessage;
67
66
  } | {
68
- type: "statusUpdate";
69
- event: A2ATaskStatusUpdateEvent;
67
+ type: "statusUpdate";
68
+ event: A2ATaskStatusUpdateEvent;
70
69
  } | {
71
- type: "artifactUpdate";
72
- event: A2ATaskArtifactUpdateEvent;
70
+ type: "artifactUpdate";
71
+ event: A2ATaskArtifactUpdateEvent;
73
72
  };
74
73
  export type A2AAuthenticationInfo = {
75
- scheme: string;
76
- credentials?: string | undefined;
74
+ scheme: string;
75
+ credentials?: string | undefined;
77
76
  };
78
77
  export type A2ATaskPushNotificationConfig = {
79
- tenant?: string | undefined;
80
- id?: string | undefined;
81
- taskId?: string | undefined;
82
- url: string;
83
- token?: string | undefined;
84
- authentication?: A2AAuthenticationInfo | undefined;
78
+ tenant?: string | undefined;
79
+ id?: string | undefined;
80
+ taskId?: string | undefined;
81
+ url: string;
82
+ token?: string | undefined;
83
+ authentication?: A2AAuthenticationInfo | undefined;
85
84
  };
86
85
  export type A2AListTaskPushNotificationConfigsResponse = {
87
- configs: A2ATaskPushNotificationConfig[];
88
- nextPageToken?: string | undefined;
86
+ configs: A2ATaskPushNotificationConfig[];
87
+ nextPageToken?: string | undefined;
89
88
  };
90
89
  export type A2ASendMessageConfiguration = {
91
- acceptedOutputModes?: string[] | undefined;
92
- taskPushNotificationConfig?: A2ATaskPushNotificationConfig | undefined;
93
- historyLength?: number | undefined;
94
- returnImmediately?: boolean | undefined;
90
+ acceptedOutputModes?: string[] | undefined;
91
+ taskPushNotificationConfig?: A2ATaskPushNotificationConfig | undefined;
92
+ historyLength?: number | undefined;
93
+ returnImmediately?: boolean | undefined;
95
94
  };
96
95
  export type A2AListTasksRequest = {
97
- contextId?: string | undefined;
98
- status?: A2ATaskState | undefined;
99
- pageSize?: number | undefined;
100
- pageToken?: string | undefined;
101
- historyLength?: number | undefined;
102
- statusTimestampAfter?: string | undefined;
103
- includeArtifacts?: boolean | undefined;
96
+ contextId?: string | undefined;
97
+ status?: A2ATaskState | undefined;
98
+ pageSize?: number | undefined;
99
+ pageToken?: string | undefined;
100
+ historyLength?: number | undefined;
101
+ statusTimestampAfter?: string | undefined;
102
+ includeArtifacts?: boolean | undefined;
104
103
  };
105
104
  export type A2AListTasksResponse = {
106
- tasks: A2ATask[];
107
- nextPageToken: string;
108
- pageSize: number;
109
- totalSize: number;
105
+ tasks: A2ATask[];
106
+ nextPageToken: string;
107
+ pageSize: number;
108
+ totalSize: number;
110
109
  };
111
110
  export type A2AErrorInfo = {
112
- code: number;
113
- status: string;
114
- message: string;
115
- details?: unknown[] | undefined;
111
+ code: number;
112
+ status: string;
113
+ message: string;
114
+ details?: unknown[] | undefined;
116
115
  };
117
116
  export type A2AApiKeySecurityScheme = {
118
- description?: string | undefined;
119
- location: string;
120
- name: string;
117
+ description?: string | undefined;
118
+ location: string;
119
+ name: string;
121
120
  };
122
121
  export type A2AHttpAuthSecurityScheme = {
123
- description?: string | undefined;
124
- scheme: string;
125
- bearerFormat?: string | undefined;
122
+ description?: string | undefined;
123
+ scheme: string;
124
+ bearerFormat?: string | undefined;
126
125
  };
127
126
  export type A2AAuthorizationCodeOAuthFlow = {
128
- authorizationUrl: string;
129
- tokenUrl: string;
130
- refreshUrl?: string | undefined;
131
- scopes: Record<string, string>;
132
- pkceRequired?: boolean | undefined;
127
+ authorizationUrl: string;
128
+ tokenUrl: string;
129
+ refreshUrl?: string | undefined;
130
+ scopes: Record<string, string>;
131
+ pkceRequired?: boolean | undefined;
133
132
  };
134
133
  export type A2AClientCredentialsOAuthFlow = {
135
- tokenUrl: string;
136
- refreshUrl?: string | undefined;
137
- scopes: Record<string, string>;
134
+ tokenUrl: string;
135
+ refreshUrl?: string | undefined;
136
+ scopes: Record<string, string>;
138
137
  };
139
138
  export type A2ADeviceCodeOAuthFlow = {
140
- deviceAuthorizationUrl: string;
141
- tokenUrl: string;
142
- refreshUrl?: string | undefined;
143
- scopes: Record<string, string>;
139
+ deviceAuthorizationUrl: string;
140
+ tokenUrl: string;
141
+ refreshUrl?: string | undefined;
142
+ scopes: Record<string, string>;
144
143
  };
145
144
  /** @deprecated Use Authorization Code + PKCE instead. */
146
145
  export type A2AImplicitOAuthFlow = {
147
- authorizationUrl?: string | undefined;
148
- refreshUrl?: string | undefined;
149
- scopes?: Record<string, string> | undefined;
146
+ authorizationUrl?: string | undefined;
147
+ refreshUrl?: string | undefined;
148
+ scopes?: Record<string, string> | undefined;
150
149
  };
151
150
  /** @deprecated Use Authorization Code + PKCE or Device Code. */
152
151
  export type A2APasswordOAuthFlow = {
153
- tokenUrl?: string | undefined;
154
- refreshUrl?: string | undefined;
155
- scopes?: Record<string, string> | undefined;
152
+ tokenUrl?: string | undefined;
153
+ refreshUrl?: string | undefined;
154
+ scopes?: Record<string, string> | undefined;
156
155
  };
157
156
  export type A2AOAuthFlows = {
158
- authorizationCode?: A2AAuthorizationCodeOAuthFlow | undefined;
159
- clientCredentials?: A2AClientCredentialsOAuthFlow | undefined;
160
- /** @deprecated */
161
- implicit?: A2AImplicitOAuthFlow | undefined;
162
- /** @deprecated */
163
- password?: A2APasswordOAuthFlow | undefined;
164
- deviceCode?: A2ADeviceCodeOAuthFlow | undefined;
157
+ authorizationCode?: A2AAuthorizationCodeOAuthFlow | undefined;
158
+ clientCredentials?: A2AClientCredentialsOAuthFlow | undefined;
159
+ /** @deprecated */
160
+ implicit?: A2AImplicitOAuthFlow | undefined;
161
+ /** @deprecated */
162
+ password?: A2APasswordOAuthFlow | undefined;
163
+ deviceCode?: A2ADeviceCodeOAuthFlow | undefined;
165
164
  };
166
165
  export type A2AOAuth2SecurityScheme = {
167
- description?: string | undefined;
168
- flows: A2AOAuthFlows;
169
- oauth2MetadataUrl?: string | undefined;
166
+ description?: string | undefined;
167
+ flows: A2AOAuthFlows;
168
+ oauth2MetadataUrl?: string | undefined;
170
169
  };
171
170
  export type A2AOpenIdConnectSecurityScheme = {
172
- description?: string | undefined;
173
- openIdConnectUrl: string;
171
+ description?: string | undefined;
172
+ openIdConnectUrl: string;
174
173
  };
175
174
  export type A2AMutualTlsSecurityScheme = {
176
- description?: string | undefined;
175
+ description?: string | undefined;
177
176
  };
178
177
  export type A2ASecurityScheme = {
179
- apiKeySecurityScheme?: A2AApiKeySecurityScheme | undefined;
180
- httpAuthSecurityScheme?: A2AHttpAuthSecurityScheme | undefined;
181
- oauth2SecurityScheme?: A2AOAuth2SecurityScheme | undefined;
182
- openIdConnectSecurityScheme?: A2AOpenIdConnectSecurityScheme | undefined;
183
- mtlsSecurityScheme?: A2AMutualTlsSecurityScheme | undefined;
178
+ apiKeySecurityScheme?: A2AApiKeySecurityScheme | undefined;
179
+ httpAuthSecurityScheme?: A2AHttpAuthSecurityScheme | undefined;
180
+ oauth2SecurityScheme?: A2AOAuth2SecurityScheme | undefined;
181
+ openIdConnectSecurityScheme?: A2AOpenIdConnectSecurityScheme | undefined;
182
+ mtlsSecurityScheme?: A2AMutualTlsSecurityScheme | undefined;
184
183
  };
185
184
  export type A2ASecurityRequirement = {
186
- schemes: Record<string, {
187
- list: string[];
188
- }>;
185
+ schemes: Record<string, {
186
+ list: string[];
187
+ }>;
189
188
  };
190
189
  export type A2AAgentCardSignature = {
191
- protected: string;
192
- signature: string;
193
- header?: Record<string, unknown> | undefined;
190
+ protected: string;
191
+ signature: string;
192
+ header?: Record<string, unknown> | undefined;
194
193
  };
195
194
  export type A2AAgentSkill = {
196
- id: string;
197
- name: string;
198
- description: string;
199
- tags: string[];
200
- examples?: string[] | undefined;
201
- inputModes?: string[] | undefined;
202
- outputModes?: string[] | undefined;
203
- securityRequirements?: A2ASecurityRequirement[] | undefined;
195
+ id: string;
196
+ name: string;
197
+ description: string;
198
+ tags: string[];
199
+ examples?: string[] | undefined;
200
+ inputModes?: string[] | undefined;
201
+ outputModes?: string[] | undefined;
202
+ securityRequirements?: A2ASecurityRequirement[] | undefined;
204
203
  };
205
204
  export type A2AAgentCapabilities = {
206
- streaming?: boolean | undefined;
207
- pushNotifications?: boolean | undefined;
208
- extensions?: Array<{
209
- uri: string;
210
- description?: string | undefined;
211
- required?: boolean | undefined;
212
- params?: Record<string, unknown> | undefined;
213
- }> | undefined;
214
- extendedAgentCard?: boolean | undefined;
205
+ streaming?: boolean | undefined;
206
+ pushNotifications?: boolean | undefined;
207
+ extensions?: Array<{
208
+ uri: string;
209
+ description?: string | undefined;
210
+ required?: boolean | undefined;
211
+ params?: Record<string, unknown> | undefined;
212
+ }> | undefined;
213
+ extendedAgentCard?: boolean | undefined;
215
214
  };
216
215
  export type A2AAgentInterface = {
217
- url: string;
218
- protocolBinding: string;
219
- protocolVersion: string;
220
- tenant?: string | undefined;
216
+ url: string;
217
+ protocolBinding: string;
218
+ protocolVersion: string;
219
+ tenant?: string | undefined;
221
220
  };
222
221
  export type A2AAgentCard = {
223
- name: string;
224
- description: string;
225
- supportedInterfaces: A2AAgentInterface[];
226
- provider?: {
227
- organization: string;
228
- url: string;
229
- } | undefined;
230
- version: string;
231
- documentationUrl?: string | undefined;
232
- capabilities: A2AAgentCapabilities;
233
- securitySchemes?: Record<string, A2ASecurityScheme> | undefined;
234
- securityRequirements?: A2ASecurityRequirement[] | undefined;
235
- defaultInputModes: string[];
236
- defaultOutputModes: string[];
237
- skills: A2AAgentSkill[];
238
- signatures?: A2AAgentCardSignature[] | undefined;
239
- iconUrl?: string | undefined;
222
+ name: string;
223
+ description: string;
224
+ supportedInterfaces: A2AAgentInterface[];
225
+ provider?: {
226
+ organization: string;
227
+ url: string;
228
+ } | undefined;
229
+ version: string;
230
+ documentationUrl?: string | undefined;
231
+ capabilities: A2AAgentCapabilities;
232
+ securitySchemes?: Record<string, A2ASecurityScheme> | undefined;
233
+ securityRequirements?: A2ASecurityRequirement[] | undefined;
234
+ defaultInputModes: string[];
235
+ defaultOutputModes: string[];
236
+ skills: A2AAgentSkill[];
237
+ signatures?: A2AAgentCardSignature[] | undefined;
238
+ iconUrl?: string | undefined;
240
239
  };
241
240
  /** Private state `useA2ARuntime` exposes through `thread.extras`. */
242
241
  export type A2AExtras = {
243
- task: A2ATask | undefined;
244
- artifacts: readonly A2AArtifact[];
245
- agentCard: A2AAgentCard | undefined;
242
+ task: A2ATask | undefined;
243
+ artifacts: readonly A2AArtifact[];
244
+ agentCard: A2AAgentCard | undefined;
246
245
  };
247
246
  export type UseA2AThreadListAdapter = {
248
- threadId?: string;
249
- onSwitchToNewThread?: () => Promise<void> | void;
250
- onSwitchToThread?: (threadId: string) => Promise<{
251
- messages: readonly ThreadMessage[];
252
- }>;
247
+ threadId?: string;
248
+ onSwitchToNewThread?: () => Promise<void> | void;
249
+ onSwitchToThread?: (threadId: string) => Promise<{
250
+ messages: readonly ThreadMessage[];
251
+ }>;
253
252
  };
254
253
  export type UseA2ARuntimeOptions = ExternalStoreSharedOptions & {
255
- /** Pre-built A2A client instance. Provide this OR baseUrl. */
256
- client?: A2AClient;
257
- /** Base URL of the A2A server. Used to create a client if `client` is not provided. */
258
- baseUrl?: string;
259
- /** Optional path prefix for all API endpoints (e.g. "/v1"). Does not affect agent card discovery. Only used with baseUrl. */
260
- basePath?: string;
261
- /** Optional tenant ID for multi-tenant servers. Only used with baseUrl. */
262
- tenant?: string;
263
- /** Headers for the A2A client (only used with baseUrl). */
264
- headers?: A2AClientOptions["headers"];
265
- /** A2A extension URIs to negotiate. Only used with baseUrl. */
266
- extensions?: string[];
267
- /** Extra fetch options (e.g. `{ credentials: 'include' }`). Only used with `baseUrl`. */
268
- fetchOptions?: A2AClientOptions["fetchOptions"];
269
- /** Initial context ID for the conversation. */
270
- contextId?: string;
271
- /** Default send message configuration. */
272
- configuration?: A2ASendMessageConfiguration;
273
- /** Called when an error occurs. */
274
- onError?: (error: Error) => void;
275
- /** Called when a run is cancelled. */
276
- onCancel?: () => void;
277
- /** Called when an artifact is fully received (lastChunk). */
278
- onArtifactComplete?: (artifact: A2AArtifact) => void;
279
- adapters?: {
280
- attachments?: AttachmentAdapter;
281
- speech?: SpeechSynthesisAdapter;
282
- dictation?: DictationAdapter;
283
- voice?: RealtimeVoiceAdapter;
284
- feedback?: FeedbackAdapter;
285
- history?: ThreadHistoryAdapter;
286
- threadList?: UseA2AThreadListAdapter;
287
- };
288
- };
289
- //#endregion
254
+ /** Pre-built A2A client instance. Provide this OR baseUrl. */
255
+ client?: A2AClient;
256
+ /** Base URL of the A2A server. Used to create a client if `client` is not provided. */
257
+ baseUrl?: string;
258
+ /** Optional path prefix for all API endpoints (e.g. "/v1"). Does not affect agent card discovery. Only used with baseUrl. */
259
+ basePath?: string;
260
+ /** Optional tenant ID for multi-tenant servers. Only used with baseUrl. */
261
+ tenant?: string;
262
+ /** Headers for the A2A client (only used with baseUrl). */
263
+ headers?: A2AClientOptions["headers"];
264
+ /** A2A extension URIs to negotiate. Only used with baseUrl. */
265
+ extensions?: string[];
266
+ /** Extra fetch options (e.g. `{ credentials: 'include' }`). Only used with `baseUrl`. */
267
+ fetchOptions?: A2AClientOptions["fetchOptions"];
268
+ /** Initial context ID for the conversation. */
269
+ contextId?: string;
270
+ /** Default send message configuration. */
271
+ configuration?: A2ASendMessageConfiguration;
272
+ /** Called when an error occurs. */
273
+ onError?: (error: Error) => void;
274
+ /** Called when a run is cancelled. */
275
+ onCancel?: () => void;
276
+ /** Called when an artifact is fully received (lastChunk). */
277
+ onArtifactComplete?: (artifact: A2AArtifact) => void;
278
+ adapters?: {
279
+ attachments?: AttachmentAdapter;
280
+ speech?: SpeechSynthesisAdapter;
281
+ dictation?: DictationAdapter;
282
+ voice?: RealtimeVoiceAdapter;
283
+ feedback?: FeedbackAdapter;
284
+ history?: ThreadHistoryAdapter;
285
+ threadList?: UseA2AThreadListAdapter;
286
+ };
287
+ };
290
288
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";;;qBAgBa;YAED;YAEA;EACV;EACA;EACA;EACA;EAEA,WAAW;EACX;EACA;;YAGU;EACV;EACA;EACA;EACA,MAAM;EACN,OAAO;EACP,WAAW;EACX;EACA;;YAGU;YAWA;EACV,OAAO;EACP,UAAU;EACV;;YAGU;EACV;EACA;EACA;EACA,OAAO;EACP,WAAW;EACX;;YAGU;EACV;EACA;EACA,QAAQ;EACR,YAAY;EACZ,UAAU;EACV,WAAW;;YAID;EACV;EACA;EACA,QAAQ;EACR,WAAW;;YAGD;EACV;EACA;EACA,UAAU;EACV;EACA;EACA,WAAW;;YAGD;EACN;EAAc,MAAM;;EACpB;EAAiB,SAAS;;EAC1B;EAAsB,OAAO;;EAC7B;EAAwB,OAAO;;YAEzB;EACV;EACA;;YAGU;EACV;EACA;EACA;EACA;EACA;EACA,iBAAiB;;YAGP;EACV,SAAS;EACT;;YAGU;EACV;EACA,6BAA6B;EAC7B;EACA;;YAGU;EACV;EACA,SAAS;EACT;EACA;EACA;EACA;EACA;;YAGU;EACV,OAAO;EACP;EACA;EACA;;YAIU;EACV;EACA;EACA;EACA;;YAGU;EACV;EACA;EACA;;YAGU;EACV;EACA;EACA;;YAGU;EACV;EACA;EACA;EACA,QAAQ;EACR;;YAGU;EACV;EACA;EACA,QAAQ;;YAGE;EACV;EACA;EACA;EACA,QAAQ;;;YAIE;EACV;EACA;EACA,SAAS;;;YAIC;EACV;EACA;EACA,SAAS;;YAGC;EACV,oBAAoB;EACpB,oBAAoB;;EAEpB,WAAW;;EAEX,WAAW;EACX,aAAa;;YAGH;EACV;EACA,OAAO;EACP;;YAGU;EACV;EACA;;YAGU;EACV;;YAGU;EACV,uBAAuB;EACvB,yBAAyB;EACzB,uBAAuB;EACvB,8BAA8B;EAC9B,qBAAqB;;YAGX;EACV,SAAS;IAAiB;;;YAIhB;EACV;EACA;EACA,SAAS;;YAGC;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA,uBAAuB;;YAGb;EACV;EACA;EACA,aACI;IACE;IACA;IACA;IACA,SAAS;;EAGf;;YAGU;EACV;EACA;EACA;EACA;;YAGU;EACV;EACA;EACA,qBAAqB;EACrB;IAEM;IACA;;EAGN;EACA;EACA,cAAc;EACd,kBAAkB,eAAe;EACjC,uBAAuB;EACvB;EACA;EACA,QAAQ;EACR,aAAa;EACb;;;YAIU;EACV,MAAM;EACN,oBAAoB;EACpB,WAAW;;YAGD;EACV;EACA,4BAA4B;EAC5B,oBAAoB,qBAAqB;IACvC,mBAAmB;;;YAIX,uBAAuB;;EAEjC,SAAS;;EAET;;EAEA;;EAEA;;EAEA,UAAU;;EAEV;;EAEA,eAAe;;EAGf;;EAEA,gBAAgB;;EAGhB,WAAW,OAAO;;EAElB;;EAEA,sBAAsB,UAAU;EAEhC;IACE,cAAc;IACd,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,UAAU;IACV,aAAa"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,4 @@
1
- import { UseA2ARuntimeOptions } from "./types.js";
2
- import { AssistantRuntime } from "@assistant-ui/core";
3
- //#region src/useA2ARuntime.d.ts
1
+ import type { AssistantRuntime } from "@assistant-ui/core";
2
+ import type { UseA2ARuntimeOptions } from "./types.js";
4
3
  export declare function useA2ARuntime(options: UseA2ARuntimeOptions): AssistantRuntime;
5
- //#endregion
6
4
  //# sourceMappingURL=useA2ARuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useA2ARuntime.d.ts","names":[],"sources":["../src/useA2ARuntime.ts"],"mappings":";;;wBA2CgB,cAAc,SAAS,uBAAuB"}
1
+ {"version":3,"file":"useA2ARuntime.d.ts","sourceRoot":"","sources":["../src/useA2ARuntime.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAgB;AAmBpD,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CA0K7E"}
@@ -72,6 +72,8 @@ function useA2ARuntime(options) {
72
72
  threadId: threadListAdapter.threadId,
73
73
  onSwitchToNewThread: onSwitchToNewThread ? async () => {
74
74
  const generation = ++threadSwitchGenerationRef.current;
75
+ core.applyExternalMessages([]);
76
+ core.resetContext();
75
77
  await onSwitchToNewThread();
76
78
  if (generation !== threadSwitchGenerationRef.current) return;
77
79
  core.applyExternalMessages([]);
@@ -79,8 +81,11 @@ function useA2ARuntime(options) {
79
81
  } : void 0,
80
82
  onSwitchToThread: onSwitchToThread ? async (threadId) => {
81
83
  const generation = ++threadSwitchGenerationRef.current;
84
+ core.applyExternalMessages([]);
85
+ core.resetContext();
82
86
  const result = await onSwitchToThread(threadId);
83
87
  if (generation !== threadSwitchGenerationRef.current) return;
88
+ core.applyExternalMessages([]);
84
89
  core.applyExternalMessages(result.messages);
85
90
  core.resetContext();
86
91
  } : void 0
@@ -106,15 +111,18 @@ function useA2ARuntime(options) {
106
111
  isLoading: core.isLoading,
107
112
  messageRepository: core.getMessageRepository(),
108
113
  isRunning: core.isRunning(),
114
+ unstable_persistsHistory: true,
109
115
  extras: a2aExtras.provide({
110
116
  task: core.getTask(),
111
117
  artifacts: core.getArtifacts(),
112
118
  agentCard: core.getAgentCard()
113
119
  }),
114
120
  onNew: (message) => core.append(message),
121
+ onVoiceTranscript: (message) => core.appendVoiceTranscript(message),
115
122
  onEdit: (message) => core.edit(message),
116
123
  onReload: (parentId) => core.reload(parentId),
117
124
  onCancel: () => core.cancel(),
125
+ unstable_onRecordToolInteraction: (options) => core.recordToolInteraction(options),
118
126
  setMessages: (messages) => core.applyExternalMessages(messages),
119
127
  onImport: (messages) => core.applyExternalMessages(messages),
120
128
  adapters: adapterAdapters
@@ -1 +1 @@
1
- {"version":3,"file":"useA2ARuntime.js","names":[],"sources":["../src/useA2ARuntime.ts"],"sourcesContent":["\"use client\";\n\nimport {\n useCallback,\n useEffect,\n useInsertionEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n useExternalStoreRuntime,\n useExternalStoreSharedOptions,\n useRuntimeAdapters,\n} from \"@assistant-ui/core/react\";\nimport type {\n AssistantRuntime,\n AppendMessage,\n ExternalStoreAdapter,\n ThreadMessage,\n} from \"@assistant-ui/core\";\nimport { A2AClient, type A2AClientOptions } from \"./A2AClient\";\nimport { A2AThreadRuntimeCore } from \"./A2AThreadRuntimeCore\";\nimport { a2aExtras } from \"./a2aExtras\";\nimport type { UseA2ARuntimeOptions } from \"./types\";\n\ntype ManagedA2AClientOptions = Omit<A2AClientOptions, \"headers\">;\n\nconst serializeManagedClientOptions = (\n options: ManagedA2AClientOptions,\n): string => {\n const fetchOptions = Object.fromEntries(\n Object.entries(options.fetchOptions ?? {}).sort(([a], [b]) =>\n a.localeCompare(b),\n ),\n );\n\n return JSON.stringify({\n ...options,\n fetchOptions,\n });\n};\n\nexport function useA2ARuntime(options: UseA2ARuntimeOptions): AssistantRuntime {\n const [_version, setVersion] = useState(0);\n const notifyUpdate = useCallback(() => setVersion((v) => v + 1), []);\n const runtimeAdapters = useRuntimeAdapters();\n const historyAdapter = options.adapters?.history ?? runtimeAdapters?.history;\n const threadListAdapter = options.adapters?.threadList;\n\n const headersRef = useRef(options.headers);\n useInsertionEffect(() => {\n headersRef.current = options.headers;\n });\n const resolveHeaders = useCallback(() => {\n const headers = headersRef.current;\n return typeof headers === \"function\" ? headers() : (headers ?? {});\n }, []);\n\n const managedClientOptionsKey = options.client\n ? null\n : options.baseUrl\n ? serializeManagedClientOptions({\n baseUrl: options.baseUrl,\n basePath: options.basePath,\n tenant: options.tenant,\n extensions: options.extensions,\n fetchOptions: options.fetchOptions,\n })\n : null;\n\n const client = useMemo(() => {\n if (options.client) return options.client;\n if (!managedClientOptionsKey) {\n throw new Error(\"useA2ARuntime requires either `client` or `baseUrl`\");\n }\n\n return new A2AClient({\n ...(JSON.parse(managedClientOptionsKey) as ManagedA2AClientOptions),\n headers: resolveHeaders,\n });\n }, [managedClientOptionsKey, options.client, resolveHeaders]);\n\n const coreOptions = {\n client,\n contextId: options.contextId,\n configuration: options.configuration,\n ...(options.onError && { onError: options.onError }),\n ...(options.onCancel && { onCancel: options.onCancel }),\n ...(options.onArtifactComplete && {\n onArtifactComplete: options.onArtifactComplete,\n }),\n ...(historyAdapter && { history: historyAdapter }),\n };\n const coreOptionsRef = useRef(coreOptions);\n coreOptionsRef.current = coreOptions;\n\n const core = useMemo(\n () =>\n new A2AThreadRuntimeCore({\n ...coreOptionsRef.current,\n client,\n notifyUpdate,\n }),\n [client, notifyUpdate],\n );\n\n useEffect(() => {\n core.updateOptions(coreOptions);\n });\n\n // Thread list\n const threadSwitchGenerationRef = useRef(0);\n const threadList = useMemo(() => {\n if (!threadListAdapter) return undefined;\n\n const { onSwitchToNewThread, onSwitchToThread } = threadListAdapter;\n\n return {\n threadId: threadListAdapter.threadId,\n onSwitchToNewThread: onSwitchToNewThread\n ? async () => {\n const generation = ++threadSwitchGenerationRef.current;\n await onSwitchToNewThread();\n if (generation !== threadSwitchGenerationRef.current) return;\n // Apply first so the abort inside resetContext finds an already\n // cleared repository and cannot persist the old thread's partial\n // assistant message.\n core.applyExternalMessages([]);\n core.resetContext();\n }\n : undefined,\n onSwitchToThread: onSwitchToThread\n ? async (threadId: string) => {\n const generation = ++threadSwitchGenerationRef.current;\n const result = await onSwitchToThread(threadId);\n if (generation !== threadSwitchGenerationRef.current) return;\n core.applyExternalMessages(result.messages);\n core.resetContext();\n }\n : undefined,\n };\n }, [threadListAdapter, core]);\n\n // Adapters\n const adapters = options.adapters;\n const adapterAdapters = useMemo(\n () => ({\n attachments: adapters?.attachments ?? runtimeAdapters?.attachments,\n speech: adapters?.speech,\n dictation: adapters?.dictation,\n voice: adapters?.voice,\n feedback: adapters?.feedback,\n threadList,\n }),\n [adapters, runtimeAdapters, threadList],\n );\n\n // Build store adapter\n const shared = useExternalStoreSharedOptions(options);\n const store = useMemo(() => {\n void _version;\n\n return {\n ...shared,\n isLoading: core.isLoading,\n messageRepository: core.getMessageRepository(),\n isRunning: core.isRunning(),\n extras: a2aExtras.provide({\n task: core.getTask(),\n artifacts: core.getArtifacts(),\n agentCard: core.getAgentCard(),\n }),\n onNew: (message: AppendMessage) => core.append(message),\n onEdit: (message: AppendMessage) => core.edit(message),\n onReload: (parentId: string | null) => core.reload(parentId),\n onCancel: () => core.cancel(),\n setMessages: (messages: readonly ThreadMessage[]) =>\n core.applyExternalMessages(messages),\n onImport: (messages: readonly ThreadMessage[]) =>\n core.applyExternalMessages(messages),\n adapters: adapterAdapters,\n } satisfies ExternalStoreAdapter<ThreadMessage>;\n }, [adapterAdapters, core, _version, shared]);\n\n const runtime = useExternalStoreRuntime(store);\n\n useEffect(() => {\n core.attachRuntime(runtime);\n return () => {\n core.detachRuntime();\n };\n }, [core, runtime]);\n\n useEffect(() => {\n core.__internal_load();\n }, [core]);\n\n return runtime;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useA2ARuntime.js","names":[],"sources":["../src/useA2ARuntime.ts"],"sourcesContent":["\"use client\";\n\nimport {\n useCallback,\n useEffect,\n useInsertionEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n useExternalStoreRuntime,\n useExternalStoreSharedOptions,\n useRuntimeAdapters,\n} from \"@assistant-ui/core/react\";\nimport type {\n AssistantRuntime,\n AppendMessage,\n ExternalStoreAdapter,\n ThreadMessage,\n} from \"@assistant-ui/core\";\nimport { A2AClient, type A2AClientOptions } from \"./A2AClient\";\nimport { A2AThreadRuntimeCore } from \"./A2AThreadRuntimeCore\";\nimport { a2aExtras } from \"./a2aExtras\";\nimport type { UseA2ARuntimeOptions } from \"./types\";\n\ntype ManagedA2AClientOptions = Omit<A2AClientOptions, \"headers\">;\n\nconst serializeManagedClientOptions = (\n options: ManagedA2AClientOptions,\n): string => {\n const fetchOptions = Object.fromEntries(\n Object.entries(options.fetchOptions ?? {}).sort(([a], [b]) =>\n a.localeCompare(b),\n ),\n );\n\n return JSON.stringify({\n ...options,\n fetchOptions,\n });\n};\n\nexport function useA2ARuntime(options: UseA2ARuntimeOptions): AssistantRuntime {\n const [_version, setVersion] = useState(0);\n const notifyUpdate = useCallback(() => setVersion((v) => v + 1), []);\n const runtimeAdapters = useRuntimeAdapters();\n const historyAdapter = options.adapters?.history ?? runtimeAdapters?.history;\n const threadListAdapter = options.adapters?.threadList;\n\n const headersRef = useRef(options.headers);\n useInsertionEffect(() => {\n headersRef.current = options.headers;\n });\n const resolveHeaders = useCallback(() => {\n const headers = headersRef.current;\n return typeof headers === \"function\" ? headers() : (headers ?? {});\n }, []);\n\n const managedClientOptionsKey = options.client\n ? null\n : options.baseUrl\n ? serializeManagedClientOptions({\n baseUrl: options.baseUrl,\n basePath: options.basePath,\n tenant: options.tenant,\n extensions: options.extensions,\n fetchOptions: options.fetchOptions,\n })\n : null;\n\n const client = useMemo(() => {\n if (options.client) return options.client;\n if (!managedClientOptionsKey) {\n throw new Error(\"useA2ARuntime requires either `client` or `baseUrl`\");\n }\n\n return new A2AClient({\n ...(JSON.parse(managedClientOptionsKey) as ManagedA2AClientOptions),\n headers: resolveHeaders,\n });\n }, [managedClientOptionsKey, options.client, resolveHeaders]);\n\n const coreOptions = {\n client,\n contextId: options.contextId,\n configuration: options.configuration,\n ...(options.onError && { onError: options.onError }),\n ...(options.onCancel && { onCancel: options.onCancel }),\n ...(options.onArtifactComplete && {\n onArtifactComplete: options.onArtifactComplete,\n }),\n ...(historyAdapter && { history: historyAdapter }),\n };\n const coreOptionsRef = useRef(coreOptions);\n coreOptionsRef.current = coreOptions;\n\n const core = useMemo(\n () =>\n new A2AThreadRuntimeCore({\n ...coreOptionsRef.current,\n client,\n notifyUpdate,\n }),\n [client, notifyUpdate],\n );\n\n useEffect(() => {\n core.updateOptions(coreOptions);\n });\n\n // Thread list\n const threadSwitchGenerationRef = useRef(0);\n const threadList = useMemo(() => {\n if (!threadListAdapter) return undefined;\n\n const { onSwitchToNewThread, onSwitchToThread } = threadListAdapter;\n\n return {\n threadId: threadListAdapter.threadId,\n onSwitchToNewThread: onSwitchToNewThread\n ? async () => {\n const generation = ++threadSwitchGenerationRef.current;\n // Clear before the thread id flips, or the old messages leak\n // into the new thread as a sibling branch.\n core.applyExternalMessages([]);\n core.resetContext();\n await onSwitchToNewThread();\n if (generation !== threadSwitchGenerationRef.current) return;\n // Apply first so the abort inside resetContext finds an already\n // cleared repository and cannot persist the old thread's partial\n // assistant message.\n core.applyExternalMessages([]);\n core.resetContext();\n }\n : undefined,\n onSwitchToThread: onSwitchToThread\n ? async (threadId: string) => {\n const generation = ++threadSwitchGenerationRef.current;\n // Clear before the thread id flips, or the old messages leak\n // into the new thread as a sibling branch.\n core.applyExternalMessages([]);\n core.resetContext();\n const result = await onSwitchToThread(threadId);\n if (generation !== threadSwitchGenerationRef.current) return;\n core.applyExternalMessages([]);\n core.applyExternalMessages(result.messages);\n core.resetContext();\n }\n : undefined,\n };\n }, [threadListAdapter, core]);\n\n // Adapters\n const adapters = options.adapters;\n const adapterAdapters = useMemo(\n () => ({\n attachments: adapters?.attachments ?? runtimeAdapters?.attachments,\n speech: adapters?.speech,\n dictation: adapters?.dictation,\n voice: adapters?.voice,\n feedback: adapters?.feedback,\n threadList,\n }),\n [adapters, runtimeAdapters, threadList],\n );\n\n // Build store adapter\n const shared = useExternalStoreSharedOptions(options);\n const store = useMemo(() => {\n void _version;\n\n return {\n ...shared,\n isLoading: core.isLoading,\n messageRepository: core.getMessageRepository(),\n isRunning: core.isRunning(),\n unstable_persistsHistory: true,\n extras: a2aExtras.provide({\n task: core.getTask(),\n artifacts: core.getArtifacts(),\n agentCard: core.getAgentCard(),\n }),\n onNew: (message: AppendMessage) => core.append(message),\n onVoiceTranscript: (message: ThreadMessage) =>\n core.appendVoiceTranscript(message),\n onEdit: (message: AppendMessage) => core.edit(message),\n onReload: (parentId: string | null) => core.reload(parentId),\n onCancel: () => core.cancel(),\n unstable_onRecordToolInteraction: (options) =>\n core.recordToolInteraction(options),\n setMessages: (messages: readonly ThreadMessage[]) =>\n core.applyExternalMessages(messages),\n onImport: (messages: readonly ThreadMessage[]) =>\n core.applyExternalMessages(messages),\n adapters: adapterAdapters,\n } satisfies ExternalStoreAdapter<ThreadMessage>;\n }, [adapterAdapters, core, _version, shared]);\n\n const runtime = useExternalStoreRuntime(store);\n\n useEffect(() => {\n core.attachRuntime(runtime);\n return () => {\n core.detachRuntime();\n };\n }, [core, runtime]);\n\n useEffect(() => {\n core.__internal_load();\n }, [core]);\n\n return runtime;\n}\n"],"mappings":"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"}