@automattic/agenttic-client 0.1.9 → 0.1.10
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/README.md +53 -0
- package/dist/client/index.d.ts +11 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/types/index.d.ts +1 -0
- package/dist/client/types/index.d.ts.map +1 -1
- package/dist/client/utils/core.d.ts +5 -0
- package/dist/client/utils/core.d.ts.map +1 -1
- package/dist/client/utils/internal/requests.d.ts +4 -2
- package/dist/client/utils/internal/requests.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +226 -57
- package/dist/message-actions/factories.d.ts.map +1 -1
- package/dist/message-actions/resolver.d.ts.map +1 -1
- package/dist/react/agentManager.d.ts.map +1 -1
- package/dist/react/useAgentChat.d.ts +7 -2
- package/dist/react/useAgentChat.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@ npm install @automattic/agenttic-client
|
|
|
15
15
|
- Tool execution system with automatic handling
|
|
16
16
|
- Context injection for each message
|
|
17
17
|
- Conversation persistence and management
|
|
18
|
+
- Request cancellation with abort controllers
|
|
18
19
|
- TypeScript support
|
|
19
20
|
- Message actions and markdown rendering
|
|
20
21
|
|
|
@@ -116,6 +117,7 @@ const {
|
|
|
116
117
|
|
|
117
118
|
// Core methods
|
|
118
119
|
onSubmit, // (message: string) => Promise<void>
|
|
120
|
+
abortCurrentRequest, // () => void - cancel in-flight request
|
|
119
121
|
|
|
120
122
|
// Configuration
|
|
121
123
|
registerSuggestions, // (suggestions: Suggestion[]) => void
|
|
@@ -217,6 +219,17 @@ for await (const update of client.sendMessageStream({
|
|
|
217
219
|
console.log(update.text);
|
|
218
220
|
if (update.final) break;
|
|
219
221
|
}
|
|
222
|
+
|
|
223
|
+
// With abort control
|
|
224
|
+
const abortController = new AbortController();
|
|
225
|
+
const task = await client.sendMessage({
|
|
226
|
+
message: createTextMessage('Hello'),
|
|
227
|
+
sessionId: 'session-123',
|
|
228
|
+
abortSignal: abortController.signal
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
// Cancel the request
|
|
232
|
+
abortController.abort();
|
|
220
233
|
```
|
|
221
234
|
|
|
222
235
|
### Agent Manager
|
|
@@ -251,6 +264,46 @@ await manager.resetConversation( 'my-agent' );
|
|
|
251
264
|
|
|
252
265
|
## Additional Features
|
|
253
266
|
|
|
267
|
+
### Request Cancellation
|
|
268
|
+
|
|
269
|
+
Cancel in-flight requests using the built-in abort functionality:
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
const { abortCurrentRequest, isProcessing } = useAgentChat(config);
|
|
273
|
+
|
|
274
|
+
// Cancel current request
|
|
275
|
+
if (isProcessing) {
|
|
276
|
+
abortCurrentRequest();
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
For low-level client usage, use `AbortController`:
|
|
281
|
+
|
|
282
|
+
```typescript
|
|
283
|
+
import { createClient, createAbortController } from '@automattic/agenttic-client';
|
|
284
|
+
|
|
285
|
+
const client = createClient(config);
|
|
286
|
+
const abortController = createAbortController();
|
|
287
|
+
|
|
288
|
+
// Start a request with abort signal
|
|
289
|
+
const requestPromise = client.sendMessage({
|
|
290
|
+
message: createTextMessage('Hello'),
|
|
291
|
+
abortSignal: abortController.signal
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
// Cancel the request
|
|
295
|
+
abortController.abort();
|
|
296
|
+
|
|
297
|
+
// Handle cancellation
|
|
298
|
+
try {
|
|
299
|
+
await requestPromise;
|
|
300
|
+
} catch (error) {
|
|
301
|
+
if (error.name === 'AbortError') {
|
|
302
|
+
console.log('Request was cancelled');
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
254
307
|
### Message Actions
|
|
255
308
|
|
|
256
309
|
Add interactive buttons to agent messages:
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import type { Client, ClientConfig, SendMessageParams, TaskUpdate } from './types/index';
|
|
2
|
+
/**
|
|
3
|
+
* Clear all entries from the tool result promises map
|
|
4
|
+
*/
|
|
5
|
+
declare function clearToolResultPromises(): void;
|
|
6
|
+
/**
|
|
7
|
+
* Update tool results with resolved promise values if they've resolved
|
|
8
|
+
* @param toolResults - Array of tool results that may have corresponding resolved promises
|
|
9
|
+
* @return Updated tool results with resolved values where available
|
|
10
|
+
*/
|
|
11
|
+
declare function updateToolResultsWithResolvedPromises(toolResults: any[]): any[];
|
|
2
12
|
/**
|
|
3
13
|
* Create an agent client instance
|
|
4
14
|
*
|
|
@@ -34,6 +44,7 @@ import type { Client, ClientConfig, SendMessageParams, TaskUpdate } from './type
|
|
|
34
44
|
*
|
|
35
45
|
* @param config
|
|
36
46
|
*/
|
|
47
|
+
export { updateToolResultsWithResolvedPromises, clearToolResultPromises };
|
|
37
48
|
export declare function createClient(config: ClientConfig): Client;
|
|
38
49
|
/**
|
|
39
50
|
* Helper function to send a message and wait for completion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,YAAY,EAGZ,iBAAiB,EAEjB,UAAU,EAIV,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,YAAY,EAGZ,iBAAiB,EAEjB,UAAU,EAIV,MAAM,eAAe,CAAC;AAqEvB;;GAEG;AACH,iBAAS,uBAAuB,IAAI,IAAI,CAEvC;AAED;;;;GAIG;AACH,iBAAS,qCAAqC,CAAE,WAAW,EAAE,GAAG,EAAE,GAAI,GAAG,EAAE,CA4B1E;AAsrBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,qCAAqC,EAAE,uBAAuB,EAAE,CAAC;AAE1E,wBAAgB,YAAY,CAAE,MAAM,EAAE,YAAY,GAAI,MAAM,CAmU3D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACvB,OAAO,CAAE,UAAU,CAAE,CAavB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,4 +79,9 @@ export declare function processToolExecutionResult(executionResult: any): {
|
|
|
79
79
|
* @param historyDataParts
|
|
80
80
|
*/
|
|
81
81
|
export declare function createToolResultMessage(toolResults: ToolResultDataPart[], historyDataParts?: any[]): Message;
|
|
82
|
+
/**
|
|
83
|
+
* Create an AbortController for canceling requests
|
|
84
|
+
* Utility function for consumers who want to abort requests
|
|
85
|
+
*/
|
|
86
|
+
export declare function createAbortController(): AbortController;
|
|
82
87
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/client/utils/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,eAAe,EACf,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAQzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAE,IAAI,EAAE,MAAM,GAAI,QAAQ,CAKvD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,iBAAiB,EACzB,MAAM,GAAE,MAAuB,GAC7B,kBAAkB,CAUpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAE,OAAO,EAAE,OAAO,GAAI,MAAM,CASjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAE,IAAI,EAAE,IAAI,GAAI,YAAY,CAW7D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAC1C,OAAO,EAAE,OAAO,GACd,gBAAgB,EAAE,CAYpB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAUpB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,aAAa,EAAE,aAAa,GAC1B,eAAe,CAQjB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,MAAM,GAAI,OAAO,CAUzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAE,IAAI,EAAE,MAAM,GAAI,OAAO,CAU9D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAE,eAAe,EAAE,GAAG,GAAI;IACnE,MAAM,EAAE,GAAG,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,kBAAkB,EAAE,EACjC,gBAAgB,GAAE,GAAG,EAAO,GAC1B,OAAO,CAUT"}
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/client/utils/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,eAAe,EACf,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAQzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAE,IAAI,EAAE,MAAM,GAAI,QAAQ,CAKvD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,iBAAiB,EACzB,MAAM,GAAE,MAAuB,GAC7B,kBAAkB,CAUpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAE,OAAO,EAAE,OAAO,GAAI,MAAM,CASjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAE,IAAI,EAAE,IAAI,GAAI,YAAY,CAW7D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAC1C,OAAO,EAAE,OAAO,GACd,gBAAgB,EAAE,CAYpB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAUpB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,aAAa,EAAE,aAAa,GAC1B,eAAe,CAQjB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,MAAM,GAAI,OAAO,CAUzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAE,IAAI,EAAE,MAAM,GAAI,OAAO,CAU9D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAE,eAAe,EAAE,GAAG,GAAI;IACnE,MAAM,EAAE,GAAG,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,kBAAkB,EAAE,EACjC,gBAAgB,GAAE,GAAG,EAAO,GAC1B,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
|
|
@@ -15,6 +15,7 @@ export interface RequestConfig {
|
|
|
15
15
|
export interface RequestOptions {
|
|
16
16
|
isStreaming?: boolean;
|
|
17
17
|
streamingTimeout?: number;
|
|
18
|
+
abortSignal?: AbortSignal;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* Prepare a request for execution
|
|
@@ -39,15 +40,16 @@ export declare function prepareRequest(params: SendMessageParams, config: Reques
|
|
|
39
40
|
*
|
|
40
41
|
* @param preparedRequest - Prepared request data
|
|
41
42
|
* @param config - Request configuration
|
|
43
|
+
* @param options - Request options (including external abort signal)
|
|
42
44
|
* @return Promise resolving to the response task
|
|
43
45
|
*/
|
|
44
|
-
export declare function executeRequest(preparedRequest: Awaited<ReturnType<typeof prepareRequest>>, config: RequestConfig): Promise<Task>;
|
|
46
|
+
export declare function executeRequest(preparedRequest: Awaited<ReturnType<typeof prepareRequest>>, config: RequestConfig, options?: RequestOptions): Promise<Task>;
|
|
45
47
|
/**
|
|
46
48
|
* Execute a streaming request
|
|
47
49
|
*
|
|
48
50
|
* @param preparedRequest - Prepared request data
|
|
49
51
|
* @param config - Request configuration
|
|
50
|
-
* @param options - Request options
|
|
52
|
+
* @param options - Request options (including external abort signal)
|
|
51
53
|
* @return Async iterable of task updates
|
|
52
54
|
*/
|
|
53
55
|
export declare function executeStreamingRequest(preparedRequest: Awaited<ReturnType<typeof prepareRequest>>, config: RequestConfig, options: RequestOptions): AsyncIterable<TaskUpdate>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../../src/client/utils/internal/requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EAEZ,iBAAiB,EACjB,IAAI,EACJ,UAAU,EACV,MAAM,mBAAmB,CAAC;AAa3B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAaD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../../src/client/utils/internal/requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EAEZ,iBAAiB,EACjB,IAAI,EACJ,UAAU,EACV,MAAM,mBAAmB,CAAC;AAa3B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAaD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC1B;AAkHD;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CACnC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,GAAG,EAClB,eAAe,CAAC,EAAE,GAAG,EACrB,gBAAgB,CAAC,EAAE,MAAM;;;;;;GAwCzB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,eAAe,EAAE,OAAO,CAAE,UAAU,CAAE,OAAO,cAAc,CAAE,CAAE,EAC/D,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,cAAmB,GAC1B,OAAO,CAAE,IAAI,CAAE,CAkDjB;AAED;;;;;;;GAOG;AACH,wBAAuB,uBAAuB,CAC7C,eAAe,EAAE,OAAO,CAAE,UAAU,CAAE,OAAO,cAAc,CAAE,CAAE,EAC/D,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,GACrB,aAAa,CAAE,UAAU,CAAE,CAkC7B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
export { useClientContext } from './react/useClientContext';
|
|
7
7
|
export { useClientTools } from './react/useClientTools';
|
|
8
8
|
export { useAgentChat } from './react/useAgentChat';
|
|
9
|
-
export { createRequestId, createTaskId, createTextMessage, extractToolCallsFromMessage, extractTextFromMessage, } from './client/utils/core';
|
|
9
|
+
export { createRequestId, createTaskId, createTextMessage, extractToolCallsFromMessage, extractTextFromMessage, createAbortController, } from './client/utils/core';
|
|
10
10
|
export { createMessageRenderer } from './utils/createMessageRenderer';
|
|
11
11
|
export type { JsonRpcId, JsonRpcRequest, JsonRpcResponse, JsonRpcError, TaskState, TextPart, FilePart, DataPart, ToolDataPart, ToolCallDataPart, ContextDataPart, Part, Message, TaskStatus, Artifact, Task, MessageSendParams, SendMessageRequest, SendMessageResponse, TaskStatusUpdateEvent, TaskArtifactUpdateEvent, Client, AuthProvider, ClientConfig, SendMessageParams, TaskUpdate, Tool, ToolProvider, ToolCallResult, ClientContext, ContextProvider, } from './client/types/index';
|
|
12
12
|
export type { UseAgentChatConfig, UseAgentChatReturn, UIMessage, Suggestion, MarkdownComponents, } from './react/useAgentChat';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EACN,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EACN,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,YAAY,EAEX,SAAS,EACT,cAAc,EACd,eAAe,EACf,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,IAAI,EACJ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EAGvB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,UAAU,EAGV,IAAI,EACJ,YAAY,EACZ,cAAc,EAGd,aAAa,EACb,eAAe,GACf,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACX,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,kBAAkB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG7E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/E,YAAY,EACX,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,WAAW,GACX,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,EACN,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -218,6 +218,9 @@ function createToolResultMessage(toolResults, historyDataParts = []) {
|
|
|
218
218
|
}
|
|
219
219
|
};
|
|
220
220
|
}
|
|
221
|
+
function createAbortController() {
|
|
222
|
+
return new AbortController();
|
|
223
|
+
}
|
|
221
224
|
|
|
222
225
|
// src/client/utils/internal/messages.ts
|
|
223
226
|
async function enhanceMessageWithTools(message, toolProvider) {
|
|
@@ -417,6 +420,32 @@ async function getHeaders(authProvider, isStreaming = false) {
|
|
|
417
420
|
}
|
|
418
421
|
return baseHeaders;
|
|
419
422
|
}
|
|
423
|
+
function combineSignals(signal1, signal2) {
|
|
424
|
+
if (!signal2) {
|
|
425
|
+
return signal1;
|
|
426
|
+
}
|
|
427
|
+
const controller = new AbortController();
|
|
428
|
+
const handleAbort = (signal) => {
|
|
429
|
+
if (!controller.signal.aborted) {
|
|
430
|
+
controller.abort(signal.reason);
|
|
431
|
+
}
|
|
432
|
+
};
|
|
433
|
+
if (signal1.aborted) {
|
|
434
|
+
controller.abort(signal1.reason);
|
|
435
|
+
} else {
|
|
436
|
+
signal1.addEventListener("abort", () => handleAbort(signal1), {
|
|
437
|
+
once: true
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
if (signal2.aborted) {
|
|
441
|
+
controller.abort(signal2.reason);
|
|
442
|
+
} else {
|
|
443
|
+
signal2.addEventListener("abort", () => handleAbort(signal2), {
|
|
444
|
+
once: true
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
return controller.signal;
|
|
448
|
+
}
|
|
420
449
|
function createFetchOptions(headers, body, signal) {
|
|
421
450
|
return {
|
|
422
451
|
method: "POST",
|
|
@@ -455,24 +484,26 @@ async function prepareRequest(params, config, options, toolProvider, contextProv
|
|
|
455
484
|
fullAgentUrl
|
|
456
485
|
};
|
|
457
486
|
}
|
|
458
|
-
async function executeRequest(preparedRequest, config) {
|
|
487
|
+
async function executeRequest(preparedRequest, config, options = {}) {
|
|
459
488
|
const { request, headers, fullAgentUrl } = preparedRequest;
|
|
460
489
|
const { timeout } = config;
|
|
461
|
-
const {
|
|
490
|
+
const { abortSignal: externalSignal } = options;
|
|
491
|
+
const { timeoutId, controller: timeoutController } = createTimeoutHandler(
|
|
462
492
|
timeout,
|
|
463
493
|
"request"
|
|
464
494
|
);
|
|
495
|
+
const signal = externalSignal ? combineSignals(timeoutController.signal, externalSignal) : timeoutController.signal;
|
|
465
496
|
try {
|
|
466
|
-
const
|
|
497
|
+
const fetchOptions = createFetchOptions(
|
|
467
498
|
headers,
|
|
468
499
|
JSON.stringify(request),
|
|
469
|
-
|
|
500
|
+
signal
|
|
470
501
|
);
|
|
471
502
|
logger("Making request to %s with options: %O", fullAgentUrl, {
|
|
472
|
-
method:
|
|
473
|
-
headers:
|
|
503
|
+
method: fetchOptions.method,
|
|
504
|
+
headers: fetchOptions.headers
|
|
474
505
|
});
|
|
475
|
-
const response = await fetch(fullAgentUrl,
|
|
506
|
+
const response = await fetch(fullAgentUrl, fetchOptions);
|
|
476
507
|
clearTimeout(timeoutId);
|
|
477
508
|
validateHttpResponse(response, "request");
|
|
478
509
|
const data = await response.json();
|
|
@@ -490,16 +521,17 @@ async function executeRequest(preparedRequest, config) {
|
|
|
490
521
|
async function* executeStreamingRequest(preparedRequest, config, options) {
|
|
491
522
|
const { request, headers, fullAgentUrl } = preparedRequest;
|
|
492
523
|
const {} = config;
|
|
493
|
-
const { streamingTimeout = 6e4 } = options;
|
|
524
|
+
const { streamingTimeout = 6e4, abortSignal: externalSignal } = options;
|
|
494
525
|
const { timeoutId, controller } = createTimeoutHandler(
|
|
495
526
|
streamingTimeout,
|
|
496
527
|
"streaming request"
|
|
497
528
|
);
|
|
529
|
+
const signal = externalSignal ? combineSignals(controller.signal, externalSignal) : controller.signal;
|
|
498
530
|
try {
|
|
499
531
|
const fetchOptions = createFetchOptions(
|
|
500
532
|
headers,
|
|
501
533
|
JSON.stringify(request),
|
|
502
|
-
|
|
534
|
+
signal
|
|
503
535
|
);
|
|
504
536
|
const response = await fetch(fullAgentUrl, fetchOptions);
|
|
505
537
|
clearTimeout(timeoutId);
|
|
@@ -512,6 +544,7 @@ async function* executeStreamingRequest(preparedRequest, config, options) {
|
|
|
512
544
|
|
|
513
545
|
// src/client/index.ts
|
|
514
546
|
var DEFAULT_TIMEOUT = 12e4;
|
|
547
|
+
var toolResultPromises = /* @__PURE__ */ new Map();
|
|
515
548
|
async function hasMatchingToolCallbacks(toolProvider, message) {
|
|
516
549
|
if (!toolProvider || !message || !toolProvider.getAvailableTools) {
|
|
517
550
|
return false;
|
|
@@ -535,6 +568,32 @@ async function hasMatchingToolCallbacks(toolProvider, message) {
|
|
|
535
568
|
}
|
|
536
569
|
return false;
|
|
537
570
|
}
|
|
571
|
+
function clearToolResultPromises() {
|
|
572
|
+
toolResultPromises.clear();
|
|
573
|
+
}
|
|
574
|
+
function updateToolResultsWithResolvedPromises(toolResults) {
|
|
575
|
+
return toolResults.map((toolResult) => {
|
|
576
|
+
const toolCallId = toolResult.data.toolCallId;
|
|
577
|
+
const promiseEntry = toolResultPromises.get(toolCallId);
|
|
578
|
+
if (promiseEntry && promiseEntry.resolvedValue !== null) {
|
|
579
|
+
const resolvedValue = promiseEntry.resolvedValue;
|
|
580
|
+
if (resolvedValue.error) {
|
|
581
|
+
return createToolResultDataPart(
|
|
582
|
+
toolCallId,
|
|
583
|
+
toolResult.data.toolId,
|
|
584
|
+
void 0,
|
|
585
|
+
resolvedValue.error
|
|
586
|
+
);
|
|
587
|
+
}
|
|
588
|
+
return createToolResultDataPart(
|
|
589
|
+
toolCallId,
|
|
590
|
+
toolResult.data.toolId,
|
|
591
|
+
resolvedValue
|
|
592
|
+
);
|
|
593
|
+
}
|
|
594
|
+
return toolResult;
|
|
595
|
+
});
|
|
596
|
+
}
|
|
538
597
|
async function executeToolCallBatch(toolCalls, toolProvider, messageId) {
|
|
539
598
|
const results = [];
|
|
540
599
|
const agentMessages = [];
|
|
@@ -595,7 +654,7 @@ function conversationHistoryToDataParts(conversationHistory) {
|
|
|
595
654
|
}
|
|
596
655
|
return historyParts;
|
|
597
656
|
}
|
|
598
|
-
async function continueTask(taskId, message, requestConfig, toolProvider, contextProvider, sessionId) {
|
|
657
|
+
async function continueTask(taskId, message, requestConfig, toolProvider, contextProvider, sessionId, abortSignal) {
|
|
599
658
|
const continueParams = {
|
|
600
659
|
message,
|
|
601
660
|
taskId,
|
|
@@ -605,14 +664,16 @@ async function continueTask(taskId, message, requestConfig, toolProvider, contex
|
|
|
605
664
|
const preparedRequest = await prepareRequest(
|
|
606
665
|
continueParams,
|
|
607
666
|
requestConfig,
|
|
608
|
-
{ isStreaming: false },
|
|
667
|
+
{ isStreaming: false, abortSignal },
|
|
609
668
|
toolProvider,
|
|
610
669
|
contextProvider,
|
|
611
670
|
sessionId
|
|
612
671
|
);
|
|
613
|
-
return await executeRequest(preparedRequest, requestConfig
|
|
672
|
+
return await executeRequest(preparedRequest, requestConfig, {
|
|
673
|
+
abortSignal
|
|
674
|
+
});
|
|
614
675
|
}
|
|
615
|
-
async function continueTaskStreamed(taskId, message, requestConfig, toolProvider, contextProvider, sessionId) {
|
|
676
|
+
async function continueTaskStreamed(taskId, message, requestConfig, toolProvider, contextProvider, sessionId, abortSignal) {
|
|
616
677
|
const continueParams = {
|
|
617
678
|
message,
|
|
618
679
|
taskId,
|
|
@@ -622,13 +683,14 @@ async function continueTaskStreamed(taskId, message, requestConfig, toolProvider
|
|
|
622
683
|
const preparedRequest = await prepareRequest(
|
|
623
684
|
continueParams,
|
|
624
685
|
requestConfig,
|
|
625
|
-
{ isStreaming: true },
|
|
686
|
+
{ isStreaming: true, abortSignal },
|
|
626
687
|
toolProvider,
|
|
627
688
|
contextProvider,
|
|
628
689
|
sessionId
|
|
629
690
|
);
|
|
630
691
|
const stream = executeStreamingRequest(preparedRequest, requestConfig, {
|
|
631
|
-
isStreaming: true
|
|
692
|
+
isStreaming: true,
|
|
693
|
+
abortSignal
|
|
632
694
|
});
|
|
633
695
|
return processAgentResponseStream(
|
|
634
696
|
stream,
|
|
@@ -638,11 +700,12 @@ async function continueTaskStreamed(taskId, message, requestConfig, toolProvider
|
|
|
638
700
|
sessionId,
|
|
639
701
|
true,
|
|
640
702
|
// withHistory
|
|
641
|
-
[]
|
|
703
|
+
[],
|
|
642
704
|
// newConversationParts - empty for continueTask
|
|
705
|
+
abortSignal
|
|
643
706
|
);
|
|
644
707
|
}
|
|
645
|
-
async function* processAgentResponseStream(stream, toolProvider, contextProvider, requestConfig, sessionId, withHistory = true, newConversationParts = []) {
|
|
708
|
+
async function* processAgentResponseStream(stream, toolProvider, contextProvider, requestConfig, sessionId, withHistory = true, newConversationParts = [], abortSignal) {
|
|
646
709
|
for await (const update of stream) {
|
|
647
710
|
yield update;
|
|
648
711
|
if (update.status.state === "running" && update.status.message && toolProvider && await hasMatchingToolCallbacks(
|
|
@@ -712,6 +775,28 @@ async function* processAgentResponseStream(stream, toolProvider, contextProvider
|
|
|
712
775
|
createAgentTextMessage(agentMessage)
|
|
713
776
|
);
|
|
714
777
|
}
|
|
778
|
+
if (result.result instanceof Promise) {
|
|
779
|
+
const promise = result.result;
|
|
780
|
+
const promiseEntry = {
|
|
781
|
+
promise,
|
|
782
|
+
resolvedValue: null
|
|
783
|
+
};
|
|
784
|
+
toolResultPromises.set(
|
|
785
|
+
toolCallId,
|
|
786
|
+
promiseEntry
|
|
787
|
+
);
|
|
788
|
+
promise.then((resolvedValue) => {
|
|
789
|
+
promiseEntry.resolvedValue = resolvedValue;
|
|
790
|
+
}).catch((error) => {
|
|
791
|
+
console.error(
|
|
792
|
+
`Promise rejected for tool call ${toolCallId}:`,
|
|
793
|
+
error
|
|
794
|
+
);
|
|
795
|
+
promiseEntry.resolvedValue = {
|
|
796
|
+
error: error instanceof Error ? error.message : String(error)
|
|
797
|
+
};
|
|
798
|
+
});
|
|
799
|
+
}
|
|
715
800
|
const toolResult = createToolResultDataPart(
|
|
716
801
|
toolCallId,
|
|
717
802
|
toolId,
|
|
@@ -752,7 +837,8 @@ async function* processAgentResponseStream(stream, toolProvider, contextProvider
|
|
|
752
837
|
requestConfig,
|
|
753
838
|
toolProvider,
|
|
754
839
|
contextProvider,
|
|
755
|
-
sessionId
|
|
840
|
+
sessionId,
|
|
841
|
+
abortSignal
|
|
756
842
|
);
|
|
757
843
|
let continuedTaskUpdate = null;
|
|
758
844
|
for await (const streamUpdate of continuedTaskStream) {
|
|
@@ -837,7 +923,8 @@ async function* processAgentResponseStream(stream, toolProvider, contextProvider
|
|
|
837
923
|
requestConfig,
|
|
838
924
|
toolProvider,
|
|
839
925
|
contextProvider,
|
|
840
|
-
sessionId
|
|
926
|
+
sessionId,
|
|
927
|
+
abortSignal
|
|
841
928
|
);
|
|
842
929
|
let moreFinalTask = null;
|
|
843
930
|
for await (const streamUpdate of moreTaskStream) {
|
|
@@ -940,21 +1027,22 @@ function createClient(config) {
|
|
|
940
1027
|
};
|
|
941
1028
|
return {
|
|
942
1029
|
async sendMessage(params) {
|
|
943
|
-
const { withHistory = true } = params;
|
|
1030
|
+
const { withHistory = true, abortSignal } = params;
|
|
944
1031
|
const sessionId = params.sessionId || defaultSessionId || void 0;
|
|
945
1032
|
const newConversationParts = [];
|
|
946
1033
|
newConversationParts.push(params.message);
|
|
947
1034
|
const preparedRequest = await prepareRequest(
|
|
948
1035
|
params,
|
|
949
1036
|
requestConfig,
|
|
950
|
-
{ isStreaming: false },
|
|
1037
|
+
{ isStreaming: false, abortSignal },
|
|
951
1038
|
toolProvider,
|
|
952
1039
|
contextProvider,
|
|
953
1040
|
sessionId
|
|
954
1041
|
);
|
|
955
1042
|
let currentTask = await executeRequest(
|
|
956
1043
|
preparedRequest,
|
|
957
|
-
requestConfig
|
|
1044
|
+
requestConfig,
|
|
1045
|
+
{ abortSignal }
|
|
958
1046
|
);
|
|
959
1047
|
const allToolParts = [];
|
|
960
1048
|
const agentMessages = [];
|
|
@@ -1015,7 +1103,8 @@ function createClient(config) {
|
|
|
1015
1103
|
requestConfig,
|
|
1016
1104
|
toolProvider,
|
|
1017
1105
|
contextProvider,
|
|
1018
|
-
sessionId
|
|
1106
|
+
sessionId,
|
|
1107
|
+
abortSignal
|
|
1019
1108
|
);
|
|
1020
1109
|
} else {
|
|
1021
1110
|
break;
|
|
@@ -1061,14 +1150,14 @@ function createClient(config) {
|
|
|
1061
1150
|
};
|
|
1062
1151
|
},
|
|
1063
1152
|
async *sendMessageStream(params) {
|
|
1064
|
-
const { withHistory = true } = params;
|
|
1153
|
+
const { withHistory = true, abortSignal } = params;
|
|
1065
1154
|
const sessionId = params.sessionId || defaultSessionId || void 0;
|
|
1066
1155
|
const newConversationParts = [];
|
|
1067
1156
|
newConversationParts.push(params.message);
|
|
1068
1157
|
const preparedRequest = await prepareRequest(
|
|
1069
1158
|
params,
|
|
1070
1159
|
requestConfig,
|
|
1071
|
-
{ isStreaming: true, streamingTimeout: timeout },
|
|
1160
|
+
{ isStreaming: true, streamingTimeout: timeout, abortSignal },
|
|
1072
1161
|
toolProvider,
|
|
1073
1162
|
contextProvider,
|
|
1074
1163
|
sessionId
|
|
@@ -1078,7 +1167,8 @@ function createClient(config) {
|
|
|
1078
1167
|
requestConfig,
|
|
1079
1168
|
{
|
|
1080
1169
|
isStreaming: true,
|
|
1081
|
-
streamingTimeout: timeout
|
|
1170
|
+
streamingTimeout: timeout,
|
|
1171
|
+
abortSignal
|
|
1082
1172
|
}
|
|
1083
1173
|
);
|
|
1084
1174
|
yield* processAgentResponseStream(
|
|
@@ -1088,7 +1178,8 @@ function createClient(config) {
|
|
|
1088
1178
|
requestConfig,
|
|
1089
1179
|
sessionId,
|
|
1090
1180
|
withHistory,
|
|
1091
|
-
newConversationParts
|
|
1181
|
+
newConversationParts,
|
|
1182
|
+
abortSignal
|
|
1092
1183
|
);
|
|
1093
1184
|
},
|
|
1094
1185
|
async continueTask(taskId, userInput, sessionId) {
|
|
@@ -1378,6 +1469,31 @@ function extractToolResultsFromMessage(message) {
|
|
|
1378
1469
|
}
|
|
1379
1470
|
|
|
1380
1471
|
// src/react/agentManager.ts
|
|
1472
|
+
async function resolvePromisesInConversationHistory(conversationHistory) {
|
|
1473
|
+
const resolvedHistory = [];
|
|
1474
|
+
for (const message of conversationHistory) {
|
|
1475
|
+
if (message.parts && Array.isArray(message.parts)) {
|
|
1476
|
+
const hasToolResults = message.parts.some(
|
|
1477
|
+
(part) => part.type === "data" && "toolCallId" in part.data && "result" in part.data
|
|
1478
|
+
);
|
|
1479
|
+
if (hasToolResults) {
|
|
1480
|
+
const updatedParts = updateToolResultsWithResolvedPromises(
|
|
1481
|
+
message.parts
|
|
1482
|
+
);
|
|
1483
|
+
resolvedHistory.push({
|
|
1484
|
+
...message,
|
|
1485
|
+
parts: updatedParts
|
|
1486
|
+
});
|
|
1487
|
+
} else {
|
|
1488
|
+
resolvedHistory.push(message);
|
|
1489
|
+
}
|
|
1490
|
+
} else {
|
|
1491
|
+
resolvedHistory.push(message);
|
|
1492
|
+
}
|
|
1493
|
+
}
|
|
1494
|
+
clearToolResultPromises();
|
|
1495
|
+
return resolvedHistory;
|
|
1496
|
+
}
|
|
1381
1497
|
function createAgentManager() {
|
|
1382
1498
|
const agents = /* @__PURE__ */ new Map();
|
|
1383
1499
|
async function persistConversationHistory(key, messages) {
|
|
@@ -1506,9 +1622,20 @@ function createAgentManager() {
|
|
|
1506
1622
|
...managedAgent.conversationHistory
|
|
1507
1623
|
];
|
|
1508
1624
|
let currentToolCallIds = [];
|
|
1625
|
+
const resolvedConversationHistory = await resolvePromisesInConversationHistory(
|
|
1626
|
+
currentConversationHistory
|
|
1627
|
+
);
|
|
1628
|
+
managedAgent.conversationHistory = resolvedConversationHistory;
|
|
1629
|
+
currentConversationHistory = resolvedConversationHistory;
|
|
1630
|
+
if (withHistory) {
|
|
1631
|
+
await persistConversationHistory(
|
|
1632
|
+
key,
|
|
1633
|
+
resolvedConversationHistory
|
|
1634
|
+
);
|
|
1635
|
+
}
|
|
1509
1636
|
const messageObj = options.message || createTextMessageWithHistory(
|
|
1510
1637
|
message,
|
|
1511
|
-
|
|
1638
|
+
resolvedConversationHistory
|
|
1512
1639
|
);
|
|
1513
1640
|
const userMessage = createTextMessage(message);
|
|
1514
1641
|
currentConversationHistory = [
|
|
@@ -1699,30 +1826,40 @@ var createFeedbackActions = (config) => {
|
|
|
1699
1826
|
}
|
|
1700
1827
|
const feedbackState = feedbackByMessageId[message.id];
|
|
1701
1828
|
const actions = [];
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1829
|
+
actions.push({
|
|
1830
|
+
id: "feedback-up",
|
|
1831
|
+
icon: config.icons.up,
|
|
1832
|
+
label: "Good response",
|
|
1833
|
+
onClick: async () => {
|
|
1834
|
+
if (feedbackState === "up") {
|
|
1835
|
+
delete feedbackByMessageId[message.id];
|
|
1836
|
+
} else {
|
|
1708
1837
|
await handleFeedback(message.id, "up");
|
|
1709
|
-
}
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1838
|
+
}
|
|
1839
|
+
notifyListeners();
|
|
1840
|
+
},
|
|
1841
|
+
tooltip: "This response was helpful",
|
|
1842
|
+
pressed: feedbackState === "up",
|
|
1843
|
+
disabled: feedbackState === "down"
|
|
1844
|
+
// Disable if other is selected
|
|
1845
|
+
});
|
|
1846
|
+
actions.push({
|
|
1847
|
+
id: "feedback-down",
|
|
1848
|
+
icon: config.icons.down,
|
|
1849
|
+
label: "Bad response",
|
|
1850
|
+
onClick: async () => {
|
|
1851
|
+
if (feedbackState === "down") {
|
|
1852
|
+
delete feedbackByMessageId[message.id];
|
|
1853
|
+
} else {
|
|
1720
1854
|
await handleFeedback(message.id, "down");
|
|
1721
|
-
}
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1855
|
+
}
|
|
1856
|
+
notifyListeners();
|
|
1857
|
+
},
|
|
1858
|
+
tooltip: "This response was not helpful",
|
|
1859
|
+
pressed: feedbackState === "down",
|
|
1860
|
+
disabled: feedbackState === "up"
|
|
1861
|
+
// Disable if other is selected
|
|
1862
|
+
});
|
|
1726
1863
|
return actions;
|
|
1727
1864
|
},
|
|
1728
1865
|
clearFeedback: (messageId) => {
|
|
@@ -1800,7 +1937,9 @@ function resolveActionsForMessage(message, registrations) {
|
|
|
1800
1937
|
icon: action.icon,
|
|
1801
1938
|
onClick: action.onClick,
|
|
1802
1939
|
tooltip: action.tooltip,
|
|
1803
|
-
disabled: action.disabled || false
|
|
1940
|
+
disabled: action.disabled || false,
|
|
1941
|
+
pressed: action.pressed,
|
|
1942
|
+
showLabel: action.showLabel
|
|
1804
1943
|
}));
|
|
1805
1944
|
return filteredActions;
|
|
1806
1945
|
}
|
|
@@ -1904,7 +2043,8 @@ function useAgentChat(config) {
|
|
|
1904
2043
|
error: isValidConfig ? null : "Invalid agent configuration",
|
|
1905
2044
|
suggestions: [],
|
|
1906
2045
|
markdownComponents: {},
|
|
1907
|
-
markdownExtensions: {}
|
|
2046
|
+
markdownExtensions: {},
|
|
2047
|
+
currentAbortController: null
|
|
1908
2048
|
});
|
|
1909
2049
|
const {
|
|
1910
2050
|
registerMessageActions,
|
|
@@ -1979,17 +2119,22 @@ function useAgentChat(config) {
|
|
|
1979
2119
|
archived: false,
|
|
1980
2120
|
showIcon: false
|
|
1981
2121
|
};
|
|
2122
|
+
const abortController = new AbortController();
|
|
1982
2123
|
setState((prev) => ({
|
|
1983
2124
|
...prev,
|
|
1984
2125
|
uiMessages: [...prev.uiMessages, userMessage],
|
|
1985
2126
|
isProcessing: true,
|
|
1986
|
-
error: null
|
|
2127
|
+
error: null,
|
|
2128
|
+
currentAbortController: abortController
|
|
1987
2129
|
}));
|
|
1988
2130
|
try {
|
|
1989
2131
|
let lastUpdate = null;
|
|
1990
2132
|
for await (const update of agentManager.sendMessageStream(
|
|
1991
2133
|
agentKey,
|
|
1992
|
-
message
|
|
2134
|
+
message,
|
|
2135
|
+
{
|
|
2136
|
+
abortSignal: abortController.signal
|
|
2137
|
+
}
|
|
1993
2138
|
)) {
|
|
1994
2139
|
lastUpdate = update;
|
|
1995
2140
|
}
|
|
@@ -2015,15 +2160,28 @@ function useAgentChat(config) {
|
|
|
2015
2160
|
...prev,
|
|
2016
2161
|
clientMessages: updatedClientHistory,
|
|
2017
2162
|
uiMessages: mergedUIMessages,
|
|
2018
|
-
isProcessing: false
|
|
2163
|
+
isProcessing: false,
|
|
2164
|
+
currentAbortController: null
|
|
2019
2165
|
};
|
|
2020
2166
|
});
|
|
2021
2167
|
} catch (error) {
|
|
2168
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
2169
|
+
console.log("Request was aborted by user");
|
|
2170
|
+
setState((prev) => ({
|
|
2171
|
+
...prev,
|
|
2172
|
+
isProcessing: false,
|
|
2173
|
+
error: null,
|
|
2174
|
+
// Don't show error for user-initiated abort
|
|
2175
|
+
currentAbortController: null
|
|
2176
|
+
}));
|
|
2177
|
+
return;
|
|
2178
|
+
}
|
|
2022
2179
|
const errorMessage = error instanceof Error ? error.message : "Failed to send message";
|
|
2023
2180
|
setState((prev) => ({
|
|
2024
2181
|
...prev,
|
|
2025
2182
|
isProcessing: false,
|
|
2026
|
-
error: errorMessage
|
|
2183
|
+
error: errorMessage,
|
|
2184
|
+
currentAbortController: null
|
|
2027
2185
|
}));
|
|
2028
2186
|
throw error;
|
|
2029
2187
|
}
|
|
@@ -2142,6 +2300,14 @@ function useAgentChat(config) {
|
|
|
2142
2300
|
}),
|
|
2143
2301
|
[state.markdownComponents, state.markdownExtensions]
|
|
2144
2302
|
);
|
|
2303
|
+
const abortCurrentRequest = useCallback3(() => {
|
|
2304
|
+
setState((currentState) => {
|
|
2305
|
+
if (currentState.currentAbortController) {
|
|
2306
|
+
currentState.currentAbortController.abort();
|
|
2307
|
+
}
|
|
2308
|
+
return currentState;
|
|
2309
|
+
});
|
|
2310
|
+
}, []);
|
|
2145
2311
|
return {
|
|
2146
2312
|
// AgentUI props
|
|
2147
2313
|
messages: state.uiMessages,
|
|
@@ -2161,7 +2327,9 @@ function useAgentChat(config) {
|
|
|
2161
2327
|
clearAllMessageActions,
|
|
2162
2328
|
createFeedbackActions: createFeedbackActions2,
|
|
2163
2329
|
// Tool integration
|
|
2164
|
-
addMessage
|
|
2330
|
+
addMessage,
|
|
2331
|
+
// Abort control
|
|
2332
|
+
abortCurrentRequest
|
|
2165
2333
|
};
|
|
2166
2334
|
}
|
|
2167
2335
|
|
|
@@ -2266,6 +2434,7 @@ export {
|
|
|
2266
2434
|
BarChart,
|
|
2267
2435
|
ChartBlock,
|
|
2268
2436
|
LineChart,
|
|
2437
|
+
createAbortController,
|
|
2269
2438
|
createClient,
|
|
2270
2439
|
createFeedbackActions,
|
|
2271
2440
|
createJetpackAuthProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/message-actions/factories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACtC,oBAAoB,EAAE,CAAE,OAAO,EAAE,SAAS,KAAM,uBAAuB,EAAE,CAAC;IAC1E,aAAa,EAAE,CAAE,SAAS,EAAE,MAAM,KAAM,IAAI,CAAC;IAC7C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAE,QAAQ,EAAE,MAAM,IAAI,KAAM,IAAI,CAAC;IAC3C,SAAS,EAAE,CAAE,QAAQ,EAAE,MAAM,IAAI,KAAM,IAAI,CAAC;CAC5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GACjC,QAAQ,qBAAqB,KAC3B,
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/message-actions/factories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACtC,oBAAoB,EAAE,CAAE,OAAO,EAAE,SAAS,KAAM,uBAAuB,EAAE,CAAC;IAC1E,aAAa,EAAE,CAAE,SAAS,EAAE,MAAM,KAAM,IAAI,CAAC;IAC7C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAE,QAAQ,EAAE,MAAM,IAAI,KAAM,IAAI,CAAC;IAC3C,SAAS,EAAE,CAAE,QAAQ,EAAE,MAAM,IAAI,KAAM,IAAI,CAAC;CAC5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GACjC,QAAQ,qBAAqB,KAC3B,sBA8FF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/message-actions/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,SAAS,EACT,eAAe,EACf,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,SAAS,EAClB,aAAa,EAAE,0BAA0B,EAAE,GACzC,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/message-actions/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,SAAS,EACT,eAAe,EACf,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,SAAS,EAClB,aAAa,EAAE,0BAA0B,EAAE,GACzC,eAAe,EAAE,CA2BnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentManager.d.ts","sourceRoot":"","sources":["../../src/react/agentManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,YAAY,EAEZ,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,UAAU,EAEV,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"agentManager.d.ts","sourceRoot":"","sources":["../../src/react/agentManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,YAAY,EAEZ,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,UAAU,EAEV,MAAM,uBAAuB,CAAC;AA+D/B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,CACZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,kBAAkB,KACtB,OAAO,CAAE,MAAM,CAAE,CAAC;IACvB,QAAQ,EAAE,CAAE,GAAG,EAAE,MAAM,KAAM,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAE,GAAG,EAAE,MAAM,KAAM,OAAO,CAAC;IACrC,WAAW,EAAE,CAAE,GAAG,EAAE,MAAM,KAAM,OAAO,CAAC;IACxC,WAAW,EAAE,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAE,iBAAiB,CAAE,KAClC,OAAO,CAAE,IAAI,CAAE,CAAC;IACrB,iBAAiB,EAAE,CAClB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAE,iBAAiB,CAAE,KAClC,aAAa,CAAE,UAAU,CAAE,CAAC;IACjC,iBAAiB,EAAE,CAAE,GAAG,EAAE,MAAM,KAAM,OAAO,CAAE,IAAI,CAAE,CAAC;IACtD,sBAAsB,EAAE,CAAE,GAAG,EAAE,MAAM,KAAM,OAAO,EAAE,CAAC;IACrD,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAwYD;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C"}
|
|
@@ -28,19 +28,23 @@ export interface UIMessage {
|
|
|
28
28
|
export interface UIMessageAction {
|
|
29
29
|
id: string;
|
|
30
30
|
label: string;
|
|
31
|
-
icon
|
|
31
|
+
icon?: React.ReactNode;
|
|
32
32
|
onClick: (message: UIMessage) => void | Promise<void>;
|
|
33
33
|
disabled?: boolean;
|
|
34
34
|
tooltip?: string;
|
|
35
|
+
pressed?: boolean;
|
|
36
|
+
showLabel?: boolean;
|
|
35
37
|
}
|
|
36
38
|
export interface MessageActionDefinition {
|
|
37
39
|
id: string;
|
|
38
40
|
label: string;
|
|
39
|
-
icon
|
|
41
|
+
icon?: ReactNode;
|
|
40
42
|
onClick: (message: UIMessage) => void | Promise<void>;
|
|
41
43
|
condition?: (message: UIMessage) => boolean;
|
|
42
44
|
disabled?: boolean;
|
|
43
45
|
tooltip?: string;
|
|
46
|
+
pressed?: boolean;
|
|
47
|
+
showLabel?: boolean;
|
|
44
48
|
}
|
|
45
49
|
export interface MessageActionsRegistration {
|
|
46
50
|
id: string;
|
|
@@ -86,6 +90,7 @@ export interface UseAgentChatReturn {
|
|
|
86
90
|
clearAllMessageActions: () => void;
|
|
87
91
|
createFeedbackActions: typeof createFeedbackActions;
|
|
88
92
|
addMessage: (message: UIMessage) => void;
|
|
93
|
+
abortCurrentRequest: () => void;
|
|
89
94
|
}
|
|
90
95
|
/**
|
|
91
96
|
* React hook for agent chat functionality
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentChat.d.ts","sourceRoot":"","sources":["../../src/react/useAgentChat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACX,YAAY,EAEZ,eAAe,EACf,YAAY,EACZ,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQ1E,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAGD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,CAAE;QACf,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;QACzC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAChC,cAAc,CAAC,EAAE,GAAG,CAAC;KACrB,CAAE,CAAC;IACJ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAGD,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useAgentChat.d.ts","sourceRoot":"","sources":["../../src/react/useAgentChat.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automattic/agenttic-client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A TypeScript client library for A2A (Agent2Agent) protocol communication",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"author": "Automattic",
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"engines": {
|
|
36
|
-
"node": ">=
|
|
36
|
+
"node": ">=20.0.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@wordpress/api-fetch": "^7.0.0",
|