@axiom-lattice/client-sdk 1.0.22 → 1.0.24
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 +64 -0
- package/dist/index.d.ts +137 -8
- package/dist/index.js +542 -115
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +541 -105
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ The Client SDK provides a simple interface for interacting with the Axiom Lattic
|
|
|
14
14
|
- Register client-side tools
|
|
15
15
|
- Handle tool calls and responses
|
|
16
16
|
- Process streaming message chunks with ChunkMessageMerger
|
|
17
|
+
- Standardized HTTP client using axios for all API calls
|
|
17
18
|
|
|
18
19
|
## Installation
|
|
19
20
|
|
|
@@ -32,6 +33,7 @@ const client = new Client({
|
|
|
32
33
|
apiKey: "your-api-key",
|
|
33
34
|
assistantId: "your-assistant-id",
|
|
34
35
|
transport: "sse",
|
|
36
|
+
environment: "web", // Optional: "web" (default) or "wechat-miniprogram"
|
|
35
37
|
});
|
|
36
38
|
|
|
37
39
|
// Create a thread
|
|
@@ -121,6 +123,35 @@ const messages = merger.getMessages();
|
|
|
121
123
|
|
|
122
124
|
## Migration Notes
|
|
123
125
|
|
|
126
|
+
### Runtime Environment Support
|
|
127
|
+
|
|
128
|
+
As of version 1.0.13, the client SDK now supports different runtime environments through the `environment` configuration option. Currently supported environments are:
|
|
129
|
+
|
|
130
|
+
- `"web"` (default): Uses axios for all HTTP requests, including streaming responses
|
|
131
|
+
- `"wechat-miniprogram"`: Uses a custom WeChat Mini Program HTTP client implementation for compatibility with WeChat Mini Programs
|
|
132
|
+
|
|
133
|
+
To specify the environment:
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
const client = new Client({
|
|
137
|
+
// ... other options
|
|
138
|
+
environment: "wechat-miniprogram", // For WeChat Mini Program environments
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The WeChat Mini Program environment uses a different approach for streaming responses since true streaming is not supported in that environment. It uses a polling mechanism instead.
|
|
143
|
+
|
|
144
|
+
### HTTP Client Standardization
|
|
145
|
+
|
|
146
|
+
As of version 1.0.12, the client SDK now uses axios exclusively for all HTTP requests, including streaming responses. Previously, the SDK used a combination of axios for regular requests and the native fetch API for streaming. This change standardizes the HTTP client implementation across the SDK.
|
|
147
|
+
|
|
148
|
+
Benefits:
|
|
149
|
+
|
|
150
|
+
- Consistent error handling
|
|
151
|
+
- Unified request/response interceptors
|
|
152
|
+
- Simplified maintenance and debugging
|
|
153
|
+
- Better compatibility with different JavaScript environments
|
|
154
|
+
|
|
124
155
|
### ChunkMessageMerger
|
|
125
156
|
|
|
126
157
|
The `ChunkMessageMerger` module has been moved from the web project to the client-sdk package. It provides functionality for processing streaming message chunks and merging them into complete messages.
|
|
@@ -151,6 +182,39 @@ Steps for future migration:
|
|
|
151
182
|
|
|
152
183
|
The main client class for interacting with the Axiom Lattice Agent Service API.
|
|
153
184
|
|
|
185
|
+
### WeChatClient
|
|
186
|
+
|
|
187
|
+
A specialized client implementation for WeChat Mini Programs that uses the native `wx` API for network requests.
|
|
188
|
+
|
|
189
|
+
```typescript
|
|
190
|
+
import { WeChatClient } from "@axiom-lattice/client-sdk";
|
|
191
|
+
|
|
192
|
+
// Create a WeChat client
|
|
193
|
+
const client = new WeChatClient({
|
|
194
|
+
baseURL: "https://api.example.com",
|
|
195
|
+
apiKey: "your-api-key",
|
|
196
|
+
assistantId: "your-assistant-id",
|
|
197
|
+
transport: "sse",
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
// Use the same API methods as the standard Client
|
|
201
|
+
const threadId = await client.createThread({
|
|
202
|
+
metadata: { user: "user123" },
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
// Send a message
|
|
206
|
+
const response = await client.chat.send({
|
|
207
|
+
threadId,
|
|
208
|
+
messages: [
|
|
209
|
+
{
|
|
210
|
+
role: "user",
|
|
211
|
+
content: "Hello, how can you help me?",
|
|
212
|
+
id: "msg-1",
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
});
|
|
216
|
+
```
|
|
217
|
+
|
|
154
218
|
### ChunkMessageMerger
|
|
155
219
|
|
|
156
220
|
A utility for processing streaming message chunks and merging them into complete messages.
|
package/dist/index.d.ts
CHANGED
|
@@ -110,6 +110,10 @@ interface ChatStreamOptions extends ChatSendOptions {
|
|
|
110
110
|
* Whether to run in background (optional)
|
|
111
111
|
*/
|
|
112
112
|
background?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Whether to return agent state when stream completes (optional)
|
|
115
|
+
*/
|
|
116
|
+
enableReturnStateWhenSteamCompleted?: boolean;
|
|
113
117
|
}
|
|
114
118
|
/**
|
|
115
119
|
* Stream callbacks interface
|
|
@@ -120,9 +124,9 @@ interface StreamCallbacks {
|
|
|
120
124
|
*/
|
|
121
125
|
onEvent: (event: MessageChunk) => void;
|
|
122
126
|
/**
|
|
123
|
-
* Called when the stream completes
|
|
127
|
+
* Called when the stream completes, with optional agent state
|
|
124
128
|
*/
|
|
125
|
-
onComplete?: () => void;
|
|
129
|
+
onComplete?: (state?: AgentState) => void;
|
|
126
130
|
/**
|
|
127
131
|
* Called when an error occurs
|
|
128
132
|
*/
|
|
@@ -220,6 +224,10 @@ interface RunOptions {
|
|
|
220
224
|
* Whether to run in background (optional)
|
|
221
225
|
*/
|
|
222
226
|
background?: boolean;
|
|
227
|
+
/**
|
|
228
|
+
* Whether to return agent state when stream completes (optional)
|
|
229
|
+
*/
|
|
230
|
+
enableReturnStateWhenSteamCompleted?: boolean;
|
|
223
231
|
}
|
|
224
232
|
/**
|
|
225
233
|
* Agent state
|
|
@@ -254,21 +262,26 @@ declare class AuthenticationError extends Error {
|
|
|
254
262
|
* Main client class for interacting with the Axiom Lattice Agent Service API
|
|
255
263
|
*/
|
|
256
264
|
declare class Client {
|
|
257
|
-
private client;
|
|
258
265
|
private config;
|
|
259
266
|
private assistantId;
|
|
260
267
|
private tenantId;
|
|
261
268
|
private registeredTools;
|
|
269
|
+
private headers;
|
|
262
270
|
/**
|
|
263
271
|
* Creates a new Client instance
|
|
264
272
|
* @param config - Configuration options for the client
|
|
265
273
|
*/
|
|
266
274
|
constructor(config: ClientConfig);
|
|
267
275
|
/**
|
|
268
|
-
*
|
|
276
|
+
* Helper method to handle fetch responses and errors
|
|
269
277
|
* @private
|
|
270
278
|
*/
|
|
271
|
-
private
|
|
279
|
+
private handleResponse;
|
|
280
|
+
/**
|
|
281
|
+
* Helper method to make fetch requests
|
|
282
|
+
* @private
|
|
283
|
+
*/
|
|
284
|
+
private fetchWithTimeout;
|
|
272
285
|
/**
|
|
273
286
|
* Set tenant ID for multi-tenant environments
|
|
274
287
|
* @param tenantId - Tenant identifier
|
|
@@ -318,7 +331,7 @@ declare class Client {
|
|
|
318
331
|
/**
|
|
319
332
|
* Run agent with options
|
|
320
333
|
* @param options - Options for running the agent
|
|
321
|
-
* @returns A promise that resolves to the run result
|
|
334
|
+
* @returns A promise that resolves to the run result
|
|
322
335
|
*/
|
|
323
336
|
run(options: RunOptions): Promise<any>;
|
|
324
337
|
/**
|
|
@@ -348,7 +361,123 @@ declare class Client {
|
|
|
348
361
|
* @param onError - Optional callback function called when an error occurs
|
|
349
362
|
* @returns A function that can be called to stop the stream
|
|
350
363
|
*/
|
|
351
|
-
stream: (options: ChatStreamOptions, onEvent: (event: MessageChunk) => void, onComplete?: () => void, onError?: (error: Error) => void) => (() => void);
|
|
364
|
+
stream: (options: ChatStreamOptions, onEvent: (event: MessageChunk) => void, onComplete?: (state?: AgentState) => void, onError?: (error: Error) => void) => (() => void);
|
|
365
|
+
};
|
|
366
|
+
/**
|
|
367
|
+
* Tools namespace for registering and unregistering client-side tools
|
|
368
|
+
*/
|
|
369
|
+
tools: {
|
|
370
|
+
/**
|
|
371
|
+
* Registers a client-side tool
|
|
372
|
+
* @param options - Options for registering a tool
|
|
373
|
+
*/
|
|
374
|
+
register: (options: RegisterToolOptions) => void;
|
|
375
|
+
/**
|
|
376
|
+
* Unregisters a client-side tool
|
|
377
|
+
* @param name - Tool name
|
|
378
|
+
*/
|
|
379
|
+
unregister: (name: string) => void;
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* WeChat Mini Program client for interacting with the Axiom Lattice Agent Service API
|
|
385
|
+
*/
|
|
386
|
+
declare class WeChatClient {
|
|
387
|
+
private config;
|
|
388
|
+
private assistantId;
|
|
389
|
+
private tenantId;
|
|
390
|
+
private registeredTools;
|
|
391
|
+
/**
|
|
392
|
+
* Creates a new WeChatClient instance
|
|
393
|
+
* @param config - Configuration options for the client
|
|
394
|
+
*/
|
|
395
|
+
constructor(config: ClientConfig);
|
|
396
|
+
/**
|
|
397
|
+
* Set tenant ID for multi-tenant environments
|
|
398
|
+
* @param tenantId - Tenant identifier
|
|
399
|
+
*/
|
|
400
|
+
setTenantId(tenantId: string): void;
|
|
401
|
+
/**
|
|
402
|
+
* Helper method to make WeChat HTTP requests
|
|
403
|
+
* @private
|
|
404
|
+
*/
|
|
405
|
+
private request;
|
|
406
|
+
/**
|
|
407
|
+
* Creates a new thread
|
|
408
|
+
* @param options - Options for creating a thread
|
|
409
|
+
* @returns A promise that resolves to the thread ID
|
|
410
|
+
*/
|
|
411
|
+
createThread(options: CreateThreadOptions): Promise<string>;
|
|
412
|
+
/**
|
|
413
|
+
* Retrieves thread information
|
|
414
|
+
* @param threadId - Thread identifier
|
|
415
|
+
* @returns A promise that resolves to the thread information
|
|
416
|
+
*/
|
|
417
|
+
getThread(threadId: string): Promise<Thread>;
|
|
418
|
+
/**
|
|
419
|
+
* Lists all threads
|
|
420
|
+
* @param options - Options for listing threads
|
|
421
|
+
* @returns A promise that resolves to an array of threads
|
|
422
|
+
*/
|
|
423
|
+
listThreads(options?: ListThreadsOptions): Promise<Thread[]>;
|
|
424
|
+
/**
|
|
425
|
+
* Deletes a thread
|
|
426
|
+
* @param threadId - Thread identifier
|
|
427
|
+
* @returns A promise that resolves when the thread is deleted
|
|
428
|
+
*/
|
|
429
|
+
deleteThread(threadId: string): Promise<void>;
|
|
430
|
+
/**
|
|
431
|
+
* Retrieves messages from a thread
|
|
432
|
+
* @param options - Options for retrieving messages
|
|
433
|
+
* @returns A promise that resolves to an array of messages
|
|
434
|
+
*/
|
|
435
|
+
getMessages(options: GetMessagesOptions): Promise<Message[]>;
|
|
436
|
+
/**
|
|
437
|
+
* Retrieves agent state
|
|
438
|
+
* @param threadId - Thread identifier
|
|
439
|
+
* @returns A promise that resolves to the agent state
|
|
440
|
+
*/
|
|
441
|
+
getAgentState(threadId: string): Promise<AgentState>;
|
|
442
|
+
/**
|
|
443
|
+
* Gets agent graph visualization
|
|
444
|
+
* @returns A promise that resolves to the graph visualization data
|
|
445
|
+
*/
|
|
446
|
+
getAgentGraph(): Promise<string>;
|
|
447
|
+
/**
|
|
448
|
+
* Run agent with options
|
|
449
|
+
* @param options - Options for running the agent
|
|
450
|
+
* @returns A promise that resolves to the run result
|
|
451
|
+
*/
|
|
452
|
+
run(options: RunOptions): Promise<any>;
|
|
453
|
+
/**
|
|
454
|
+
* Stream run results using WeChat's downloadFile API
|
|
455
|
+
* @param options - Options for streaming run results
|
|
456
|
+
* @param onEvent - Callback function that receives stream events
|
|
457
|
+
* @param onComplete - Optional callback function called when streaming completes
|
|
458
|
+
* @param onError - Optional callback function called when an error occurs
|
|
459
|
+
* @returns A function that can be called to stop the stream
|
|
460
|
+
*/
|
|
461
|
+
private streamRun;
|
|
462
|
+
/**
|
|
463
|
+
* Chat namespace for sending messages and streaming responses
|
|
464
|
+
*/
|
|
465
|
+
chat: {
|
|
466
|
+
/**
|
|
467
|
+
* Sends a message to a thread and receives a response
|
|
468
|
+
* @param options - Options for sending a message
|
|
469
|
+
* @returns A promise that resolves to the chat response
|
|
470
|
+
*/
|
|
471
|
+
send: (options: ChatSendOptions) => Promise<ChatResponse>;
|
|
472
|
+
/**
|
|
473
|
+
* Sends a message to a thread and streams the response
|
|
474
|
+
* @param options - Options for streaming a message
|
|
475
|
+
* @param onEvent - Callback function that receives stream events
|
|
476
|
+
* @param onComplete - Optional callback function called when streaming completes
|
|
477
|
+
* @param onError - Optional callback function called when an error occurs
|
|
478
|
+
* @returns A function that can be called to stop the stream
|
|
479
|
+
*/
|
|
480
|
+
stream: (options: ChatStreamOptions, onEvent: (event: MessageChunk) => void, onComplete?: (state?: AgentState) => void, onError?: (error: Error) => void) => (() => void);
|
|
352
481
|
};
|
|
353
482
|
/**
|
|
354
483
|
* Tools namespace for registering and unregistering client-side tools
|
|
@@ -385,4 +514,4 @@ declare function createSimpleMessageMerger(): {
|
|
|
385
514
|
reset: () => void;
|
|
386
515
|
};
|
|
387
516
|
|
|
388
|
-
export { AgentState, ApiError, AuthenticationError, ChatResponse, ChatSendOptions, ChatStreamOptions, Client, ClientConfig, CreateThreadOptions, GetMessagesOptions, ListThreadsOptions, NetworkError, RegisterToolOptions, RetryConfig, RunOptions, StreamCallbacks, Thread, Transport, createSimpleMessageMerger };
|
|
517
|
+
export { AgentState, ApiError, AuthenticationError, ChatResponse, ChatSendOptions, ChatStreamOptions, Client, ClientConfig, CreateThreadOptions, GetMessagesOptions, ListThreadsOptions, NetworkError, RegisterToolOptions, RetryConfig, RunOptions, StreamCallbacks, Thread, Transport, WeChatClient, createSimpleMessageMerger };
|