@assistant-ui/react-a2a 0.2.34 → 0.2.36

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,9 +1,9 @@
1
1
  import { A2AClient, A2AClientOptions } from "./A2AClient.js";
2
2
  import { AttachmentAdapter, DictationAdapter, ExternalStoreSharedOptions, FeedbackAdapter, RealtimeVoiceAdapter, SpeechSynthesisAdapter, ThreadHistoryAdapter, ThreadMessage } from "@assistant-ui/core";
3
3
  //#region src/types.d.ts
4
- declare const A2A_PROTOCOL_VERSION = "1.0";
5
- type A2ARole = "unspecified" | "user" | "agent";
6
- type A2APart = {
4
+ export declare const A2A_PROTOCOL_VERSION = "1.0";
5
+ export type A2ARole = "unspecified" | "user" | "agent";
6
+ export type A2APart = {
7
7
  text?: string | undefined;
8
8
  raw?: string | undefined;
9
9
  url?: string | undefined;
@@ -12,7 +12,7 @@ type A2APart = {
12
12
  filename?: string | undefined;
13
13
  mediaType?: string | undefined;
14
14
  };
15
- type A2AMessage = {
15
+ export type A2AMessage = {
16
16
  messageId: string;
17
17
  contextId?: string | undefined;
18
18
  taskId?: string | undefined;
@@ -22,13 +22,13 @@ type A2AMessage = {
22
22
  extensions?: string[] | undefined;
23
23
  referenceTaskIds?: string[] | undefined;
24
24
  };
25
- type A2ATaskState = "unspecified" | "submitted" | "working" | "completed" | "failed" | "canceled" | "input_required" | "rejected" | "auth_required";
26
- type A2ATaskStatus = {
25
+ export type A2ATaskState = "unspecified" | "submitted" | "working" | "completed" | "failed" | "canceled" | "input_required" | "rejected" | "auth_required";
26
+ export type A2ATaskStatus = {
27
27
  state: A2ATaskState;
28
28
  message?: A2AMessage | undefined;
29
29
  timestamp?: string | undefined;
30
30
  };
31
- type A2AArtifact = {
31
+ export type A2AArtifact = {
32
32
  artifactId: string;
33
33
  name?: string | undefined;
34
34
  description?: string | undefined;
@@ -36,7 +36,7 @@ type A2AArtifact = {
36
36
  metadata?: Record<string, unknown> | undefined;
37
37
  extensions?: string[] | undefined;
38
38
  };
39
- type A2ATask = {
39
+ export type A2ATask = {
40
40
  id: string;
41
41
  contextId?: string | undefined;
42
42
  status: A2ATaskStatus;
@@ -44,13 +44,13 @@ type A2ATask = {
44
44
  history?: A2AMessage[] | undefined;
45
45
  metadata?: Record<string, unknown> | undefined;
46
46
  };
47
- type A2ATaskStatusUpdateEvent = {
47
+ export type A2ATaskStatusUpdateEvent = {
48
48
  taskId: string;
49
49
  contextId: string;
50
50
  status: A2ATaskStatus;
51
51
  metadata?: Record<string, unknown> | undefined;
52
52
  };
53
- type A2ATaskArtifactUpdateEvent = {
53
+ export type A2ATaskArtifactUpdateEvent = {
54
54
  taskId: string;
55
55
  contextId: string;
56
56
  artifact: A2AArtifact;
@@ -58,7 +58,7 @@ type A2ATaskArtifactUpdateEvent = {
58
58
  lastChunk?: boolean | undefined;
59
59
  metadata?: Record<string, unknown> | undefined;
60
60
  };
61
- type A2AStreamEvent = {
61
+ export type A2AStreamEvent = {
62
62
  type: "task";
63
63
  task: A2ATask;
64
64
  } | {
@@ -71,11 +71,11 @@ type A2AStreamEvent = {
71
71
  type: "artifactUpdate";
72
72
  event: A2ATaskArtifactUpdateEvent;
73
73
  };
74
- type A2AAuthenticationInfo = {
74
+ export type A2AAuthenticationInfo = {
75
75
  scheme: string;
76
76
  credentials?: string | undefined;
77
77
  };
78
- type A2ATaskPushNotificationConfig = {
78
+ export type A2ATaskPushNotificationConfig = {
79
79
  tenant?: string | undefined;
80
80
  id?: string | undefined;
81
81
  taskId?: string | undefined;
@@ -83,17 +83,17 @@ type A2ATaskPushNotificationConfig = {
83
83
  token?: string | undefined;
84
84
  authentication?: A2AAuthenticationInfo | undefined;
85
85
  };
86
- type A2AListTaskPushNotificationConfigsResponse = {
86
+ export type A2AListTaskPushNotificationConfigsResponse = {
87
87
  configs: A2ATaskPushNotificationConfig[];
88
88
  nextPageToken?: string | undefined;
89
89
  };
90
- type A2ASendMessageConfiguration = {
90
+ export type A2ASendMessageConfiguration = {
91
91
  acceptedOutputModes?: string[] | undefined;
92
92
  taskPushNotificationConfig?: A2ATaskPushNotificationConfig | undefined;
93
93
  historyLength?: number | undefined;
94
94
  returnImmediately?: boolean | undefined;
95
95
  };
96
- type A2AListTasksRequest = {
96
+ export type A2AListTasksRequest = {
97
97
  contextId?: string | undefined;
98
98
  status?: A2ATaskState | undefined;
99
99
  pageSize?: number | undefined;
@@ -102,59 +102,59 @@ type A2AListTasksRequest = {
102
102
  statusTimestampAfter?: string | undefined;
103
103
  includeArtifacts?: boolean | undefined;
104
104
  };
105
- type A2AListTasksResponse = {
105
+ export type A2AListTasksResponse = {
106
106
  tasks: A2ATask[];
107
107
  nextPageToken: string;
108
108
  pageSize: number;
109
109
  totalSize: number;
110
110
  };
111
- type A2AErrorInfo = {
111
+ export type A2AErrorInfo = {
112
112
  code: number;
113
113
  status: string;
114
114
  message: string;
115
115
  details?: unknown[] | undefined;
116
116
  };
117
- type A2AApiKeySecurityScheme = {
117
+ export type A2AApiKeySecurityScheme = {
118
118
  description?: string | undefined;
119
119
  location: string;
120
120
  name: string;
121
121
  };
122
- type A2AHttpAuthSecurityScheme = {
122
+ export type A2AHttpAuthSecurityScheme = {
123
123
  description?: string | undefined;
124
124
  scheme: string;
125
125
  bearerFormat?: string | undefined;
126
126
  };
127
- type A2AAuthorizationCodeOAuthFlow = {
127
+ export type A2AAuthorizationCodeOAuthFlow = {
128
128
  authorizationUrl: string;
129
129
  tokenUrl: string;
130
130
  refreshUrl?: string | undefined;
131
131
  scopes: Record<string, string>;
132
132
  pkceRequired?: boolean | undefined;
133
133
  };
134
- type A2AClientCredentialsOAuthFlow = {
134
+ export type A2AClientCredentialsOAuthFlow = {
135
135
  tokenUrl: string;
136
136
  refreshUrl?: string | undefined;
137
137
  scopes: Record<string, string>;
138
138
  };
139
- type A2ADeviceCodeOAuthFlow = {
139
+ export type A2ADeviceCodeOAuthFlow = {
140
140
  deviceAuthorizationUrl: string;
141
141
  tokenUrl: string;
142
142
  refreshUrl?: string | undefined;
143
143
  scopes: Record<string, string>;
144
144
  };
145
145
  /** @deprecated Use Authorization Code + PKCE instead. */
146
- type A2AImplicitOAuthFlow = {
146
+ export type A2AImplicitOAuthFlow = {
147
147
  authorizationUrl?: string | undefined;
148
148
  refreshUrl?: string | undefined;
149
149
  scopes?: Record<string, string> | undefined;
150
150
  };
151
151
  /** @deprecated Use Authorization Code + PKCE or Device Code. */
152
- type A2APasswordOAuthFlow = {
152
+ export type A2APasswordOAuthFlow = {
153
153
  tokenUrl?: string | undefined;
154
154
  refreshUrl?: string | undefined;
155
155
  scopes?: Record<string, string> | undefined;
156
156
  };
157
- type A2AOAuthFlows = {
157
+ export type A2AOAuthFlows = {
158
158
  authorizationCode?: A2AAuthorizationCodeOAuthFlow | undefined;
159
159
  clientCredentials?: A2AClientCredentialsOAuthFlow | undefined;
160
160
  /** @deprecated */
@@ -163,36 +163,36 @@ type A2AOAuthFlows = {
163
163
  password?: A2APasswordOAuthFlow | undefined;
164
164
  deviceCode?: A2ADeviceCodeOAuthFlow | undefined;
165
165
  };
166
- type A2AOAuth2SecurityScheme = {
166
+ export type A2AOAuth2SecurityScheme = {
167
167
  description?: string | undefined;
168
168
  flows: A2AOAuthFlows;
169
169
  oauth2MetadataUrl?: string | undefined;
170
170
  };
171
- type A2AOpenIdConnectSecurityScheme = {
171
+ export type A2AOpenIdConnectSecurityScheme = {
172
172
  description?: string | undefined;
173
173
  openIdConnectUrl: string;
174
174
  };
175
- type A2AMutualTlsSecurityScheme = {
175
+ export type A2AMutualTlsSecurityScheme = {
176
176
  description?: string | undefined;
177
177
  };
178
- type A2ASecurityScheme = {
178
+ export type A2ASecurityScheme = {
179
179
  apiKeySecurityScheme?: A2AApiKeySecurityScheme | undefined;
180
180
  httpAuthSecurityScheme?: A2AHttpAuthSecurityScheme | undefined;
181
181
  oauth2SecurityScheme?: A2AOAuth2SecurityScheme | undefined;
182
182
  openIdConnectSecurityScheme?: A2AOpenIdConnectSecurityScheme | undefined;
183
183
  mtlsSecurityScheme?: A2AMutualTlsSecurityScheme | undefined;
184
184
  };
185
- type A2ASecurityRequirement = {
185
+ export type A2ASecurityRequirement = {
186
186
  schemes: Record<string, {
187
187
  list: string[];
188
188
  }>;
189
189
  };
190
- type A2AAgentCardSignature = {
190
+ export type A2AAgentCardSignature = {
191
191
  protected: string;
192
192
  signature: string;
193
193
  header?: Record<string, unknown> | undefined;
194
194
  };
195
- type A2AAgentSkill = {
195
+ export type A2AAgentSkill = {
196
196
  id: string;
197
197
  name: string;
198
198
  description: string;
@@ -202,7 +202,7 @@ type A2AAgentSkill = {
202
202
  outputModes?: string[] | undefined;
203
203
  securityRequirements?: A2ASecurityRequirement[] | undefined;
204
204
  };
205
- type A2AAgentCapabilities = {
205
+ export type A2AAgentCapabilities = {
206
206
  streaming?: boolean | undefined;
207
207
  pushNotifications?: boolean | undefined;
208
208
  extensions?: Array<{
@@ -213,13 +213,13 @@ type A2AAgentCapabilities = {
213
213
  }> | undefined;
214
214
  extendedAgentCard?: boolean | undefined;
215
215
  };
216
- type A2AAgentInterface = {
216
+ export type A2AAgentInterface = {
217
217
  url: string;
218
218
  protocolBinding: string;
219
219
  protocolVersion: string;
220
220
  tenant?: string | undefined;
221
221
  };
222
- type A2AAgentCard = {
222
+ export type A2AAgentCard = {
223
223
  name: string;
224
224
  description: string;
225
225
  supportedInterfaces: A2AAgentInterface[];
@@ -239,19 +239,19 @@ type A2AAgentCard = {
239
239
  iconUrl?: string | undefined;
240
240
  };
241
241
  /** Private state `useA2ARuntime` exposes through `thread.extras`. */
242
- type A2AExtras = {
242
+ export type A2AExtras = {
243
243
  task: A2ATask | undefined;
244
244
  artifacts: readonly A2AArtifact[];
245
245
  agentCard: A2AAgentCard | undefined;
246
246
  };
247
- type UseA2AThreadListAdapter = {
247
+ export type UseA2AThreadListAdapter = {
248
248
  threadId?: string;
249
249
  onSwitchToNewThread?: () => Promise<void> | void;
250
250
  onSwitchToThread?: (threadId: string) => Promise<{
251
251
  messages: readonly ThreadMessage[];
252
252
  }>;
253
253
  };
254
- type UseA2ARuntimeOptions = ExternalStoreSharedOptions & {
254
+ export type UseA2ARuntimeOptions = ExternalStoreSharedOptions & {
255
255
  /** Pre-built A2A client instance. Provide this OR baseUrl. */
256
256
  client?: A2AClient;
257
257
  /** Base URL of the A2A server. Used to create a client if `client` is not provided. */
@@ -287,5 +287,4 @@ type UseA2ARuntimeOptions = ExternalStoreSharedOptions & {
287
287
  };
288
288
  };
289
289
  //#endregion
290
- export { A2AAgentCapabilities, A2AAgentCard, A2AAgentCardSignature, A2AAgentInterface, A2AAgentSkill, A2AApiKeySecurityScheme, A2AArtifact, A2AAuthenticationInfo, A2AAuthorizationCodeOAuthFlow, A2AClientCredentialsOAuthFlow, A2ADeviceCodeOAuthFlow, A2AErrorInfo, A2AExtras, A2AHttpAuthSecurityScheme, A2AImplicitOAuthFlow, A2AListTaskPushNotificationConfigsResponse, A2AListTasksRequest, A2AListTasksResponse, A2AMessage, A2AMutualTlsSecurityScheme, A2AOAuth2SecurityScheme, A2AOAuthFlows, A2AOpenIdConnectSecurityScheme, A2APart, A2APasswordOAuthFlow, A2ARole, A2ASecurityRequirement, A2ASecurityScheme, A2ASendMessageConfiguration, A2AStreamEvent, A2ATask, A2ATaskArtifactUpdateEvent, A2ATaskPushNotificationConfig, A2ATaskState, A2ATaskStatus, A2ATaskStatusUpdateEvent, A2A_PROTOCOL_VERSION, UseA2ARuntimeOptions, UseA2AThreadListAdapter };
291
290
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";;;cAgBa;KAED;KAEA;EACV;EACA;EACA;EACA;EAEA,WAAW;EACX;EACA;;KAGU;EACV;EACA;EACA;EACA,MAAM;EACN,OAAO;EACP,WAAW;EACX;EACA;;KAGU;KAWA;EACV,OAAO;EACP,UAAU;EACV;;KAGU;EACV;EACA;EACA;EACA,OAAO;EACP,WAAW;EACX;;KAGU;EACV;EACA;EACA,QAAQ;EACR,YAAY;EACZ,UAAU;EACV,WAAW;;KAID;EACV;EACA;EACA,QAAQ;EACR,WAAW;;KAGD;EACV;EACA;EACA,UAAU;EACV;EACA;EACA,WAAW;;KAGD;EACN;EAAc,MAAM;;EACpB;EAAiB,SAAS;;EAC1B;EAAsB,OAAO;;EAC7B;EAAwB,OAAO;;KAEzB;EACV;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA,iBAAiB;;KAGP;EACV,SAAS;EACT;;KAGU;EACV;EACA,6BAA6B;EAC7B;EACA;;KAGU;EACV;EACA,SAAS;EACT;EACA;EACA;EACA;EACA;;KAGU;EACV,OAAO;EACP;EACA;EACA;;KAIU;EACV;EACA;EACA;EACA;;KAGU;EACV;EACA;EACA;;KAGU;EACV;EACA;EACA;;KAGU;EACV;EACA;EACA;EACA,QAAQ;EACR;;KAGU;EACV;EACA;EACA,QAAQ;;KAGE;EACV;EACA;EACA;EACA,QAAQ;;;KAIE;EACV;EACA;EACA,SAAS;;;KAIC;EACV;EACA;EACA,SAAS;;KAGC;EACV,oBAAoB;EACpB,oBAAoB;;EAEpB,WAAW;;EAEX,WAAW;EACX,aAAa;;KAGH;EACV;EACA,OAAO;EACP;;KAGU;EACV;EACA;;KAGU;EACV;;KAGU;EACV,uBAAuB;EACvB,yBAAyB;EACzB,uBAAuB;EACvB,8BAA8B;EAC9B,qBAAqB;;KAGX;EACV,SAAS;IAAiB;;;KAIhB;EACV;EACA;EACA,SAAS;;KAGC;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA,uBAAuB;;KAGb;EACV;EACA;EACA,aACI;IACE;IACA;IACA;IACA,SAAS;;EAGf;;KAGU;EACV;EACA;EACA;EACA;;KAGU;EACV;EACA;EACA,qBAAqB;EACrB;IAEM;IACA;;EAGN;EACA;EACA,cAAc;EACd,kBAAkB,eAAe;EACjC,uBAAuB;EACvB;EACA;EACA,QAAQ;EACR,aAAa;EACb;;;KAIU;EACV,MAAM;EACN,oBAAoB;EACpB,WAAW;;KAGD;EACV;EACA,4BAA4B;EAC5B,oBAAoB,qBAAqB;IACvC,mBAAmB;;;KAIX,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","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,7 +1,6 @@
1
1
  import { UseA2ARuntimeOptions } from "./types.js";
2
2
  import { AssistantRuntime } from "@assistant-ui/core";
3
3
  //#region src/useA2ARuntime.d.ts
4
- declare function useA2ARuntime(options: UseA2ARuntimeOptions): AssistantRuntime;
4
+ export declare function useA2ARuntime(options: UseA2ARuntimeOptions): AssistantRuntime;
5
5
  //#endregion
6
- export { useA2ARuntime };
7
6
  //# sourceMappingURL=useA2ARuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useA2ARuntime.d.ts","names":[],"sources":["../src/useA2ARuntime.ts"],"mappings":";;;iBA2CgB,cAAc,SAAS,uBAAuB"}
1
+ {"version":3,"file":"useA2ARuntime.d.ts","names":[],"sources":["../src/useA2ARuntime.ts"],"mappings":";;;wBA2CgB,cAAc,SAAS,uBAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/react-a2a",
3
- "version": "0.2.34",
3
+ "version": "0.2.36",
4
4
  "description": "A2A (Agent-to-Agent) v1.0 protocol adapter for assistant-ui",
5
5
  "keywords": [
6
6
  "a2a",
@@ -29,9 +29,9 @@
29
29
  ],
30
30
  "sideEffects": false,
31
31
  "dependencies": {
32
- "@assistant-ui/core": "^0.3.18",
33
- "@assistant-ui/store": "^0.3.13",
34
- "assistant-stream": "^0.3.42"
32
+ "@assistant-ui/core": "^0.3.20",
33
+ "@assistant-ui/store": "^0.3.14",
34
+ "assistant-stream": "^0.3.44"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@types/react": "*",
@@ -43,14 +43,14 @@
43
43
  }
44
44
  },
45
45
  "devDependencies": {
46
- "@assistant-ui/x-buildutils": "0.0.26",
47
- "@testing-library/dom": "^10.4.1",
46
+ "@assistant-ui/x-buildutils": "0.0.28",
47
+ "@testing-library/dom": "^10.4.2",
48
48
  "@testing-library/react": "^16.3.3",
49
- "@types/react": "^19.2.18",
49
+ "@types/react": "^19.3.0",
50
50
  "jsdom": "^30.0.1",
51
- "react": "^19.2.8",
52
- "react-dom": "^19.2.8",
53
- "vitest": "^4.1.11"
51
+ "react": "^19.3.0",
52
+ "react-dom": "^19.3.0",
53
+ "vitest": "^5.0.1"
54
54
  },
55
55
  "publishConfig": {
56
56
  "access": "public",
@@ -68,6 +68,7 @@
68
68
  "scripts": {
69
69
  "build": "aui-build",
70
70
  "test": "vitest run",
71
+ "typecheck": "tsc --noEmit",
71
72
  "test:watch": "vitest"
72
73
  }
73
74
  }