@axiom-lattice/client-sdk 1.0.43 → 1.0.45

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.
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ChunkMessageMerger
3
+ *
4
+ * A utility for handling streaming message chunks and merging them into complete messages.
5
+ */
6
+ import { MessageChunk } from "@axiom-lattice/protocols";
7
+ /**
8
+ * Creates a simple message merger for handling streaming message chunks
9
+ * @returns An object with methods to push chunks and retrieve merged messages
10
+ */
11
+ export declare function createSimpleMessageMerger(): {
12
+ push: (chunk: MessageChunk) => void;
13
+ initialMessages: (msgs: any[]) => void;
14
+ getMessages: () => any[];
15
+ getMessagesWithoutToolCalls: () => any[];
16
+ reset: () => void;
17
+ };
18
+ //# sourceMappingURL=ChunkMessageMerger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChunkMessageMerger.d.ts","sourceRoot":"","sources":["../src/ChunkMessageMerger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAW,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,yBAAyB;kBAwIlB,YAAY;4BATF,GAAG,EAAE;uBAmGZ,GAAG,EAAE;uCAiDW,GAAG,EAAE;;EAwB9C"}
@@ -0,0 +1,264 @@
1
+ /**
2
+ * ChunkMessageMerger
3
+ *
4
+ * A utility for handling streaming message chunks and merging them into complete messages.
5
+ */
6
+ /**
7
+ * Creates a simple message merger for handling streaming message chunks
8
+ * @returns An object with methods to push chunks and retrieve merged messages
9
+ */
10
+ export function createSimpleMessageMerger() {
11
+ let messages = [];
12
+ const messageMap = new Map();
13
+ // Tool call builder: messageId -> index -> build state
14
+ const toolBuilders = new Map();
15
+ /**
16
+ * Normalizes role string to standard role
17
+ * @param type - Role string from the input
18
+ * @returns Normalized role
19
+ */
20
+ function normalizeRole(type) {
21
+ switch (type) {
22
+ case "ai":
23
+ return "ai";
24
+ case "human":
25
+ case "user":
26
+ return "human";
27
+ case "system":
28
+ return "system";
29
+ case "tool":
30
+ return "tool";
31
+ case "developer":
32
+ return "developer";
33
+ default:
34
+ return "ai";
35
+ }
36
+ }
37
+ /**
38
+ * Safely parses JSON string
39
+ * @param str - JSON string to parse
40
+ * @returns Parsed object or original string if parsing fails
41
+ */
42
+ function safeJsonParse(str) {
43
+ try {
44
+ return JSON.parse(str);
45
+ }
46
+ catch {
47
+ return str; // Return original string if parsing fails
48
+ }
49
+ }
50
+ /**
51
+ * Ensures a message exists, creating it if needed
52
+ * @param id - Message ID
53
+ * @param role - Message role
54
+ * @returns The message object
55
+ */
56
+ function ensureMessage(id, role) {
57
+ const index = messageMap.get(id);
58
+ if (index !== undefined) {
59
+ return messages[index];
60
+ }
61
+ // Create new message
62
+ let newMessage;
63
+ switch (role) {
64
+ case "human":
65
+ newMessage = { id, role: "human", content: "" };
66
+ break;
67
+ case "system":
68
+ newMessage = { id, role: "system", content: "" };
69
+ break;
70
+ case "tool":
71
+ newMessage = { id, role: "tool", content: "", tool_call_id: "" };
72
+ break;
73
+ case "developer":
74
+ newMessage = { id, role: "developer", content: "" };
75
+ break;
76
+ default:
77
+ newMessage = { id, role: "ai", content: "" };
78
+ }
79
+ messages.push(newMessage);
80
+ messageMap.set(id, messages.length - 1);
81
+ return newMessage;
82
+ }
83
+ /**
84
+ * Updates tool calls for a message
85
+ * @param message - Message to update
86
+ */
87
+ function updateToolCalls(message) {
88
+ if (message.role !== "ai")
89
+ return;
90
+ const builders = toolBuilders.get(message.id);
91
+ if (!builders || builders.size === 0)
92
+ return;
93
+ const toolCalls = [];
94
+ for (const [index, builder] of Array.from(builders.entries())) {
95
+ if (builder.name && builder.id) {
96
+ // Try to parse arguments as JSON object
97
+ const args = builder.args.trim();
98
+ const parsedArgs = safeJsonParse(args);
99
+ // Create ToolCall object
100
+ toolCalls.push({
101
+ id: builder.id,
102
+ name: builder.name,
103
+ args: typeof parsedArgs === "object" ? parsedArgs : { value: parsedArgs },
104
+ type: "tool_call",
105
+ });
106
+ }
107
+ }
108
+ // Only set tool_calls if there are any
109
+ if (toolCalls.length > 0) {
110
+ message.tool_calls = toolCalls;
111
+ }
112
+ }
113
+ /**
114
+ * Initialize messages
115
+ * @param msgs - Initial messages
116
+ */
117
+ function initialMessages(msgs) {
118
+ // Just store the messages as-is
119
+ messages = msgs;
120
+ }
121
+ /**
122
+ * Processes a message chunk
123
+ * @param chunk - Message chunk to process
124
+ */
125
+ function push(chunk) {
126
+ const role = normalizeRole(chunk.type);
127
+ const message = ensureMessage(chunk.data.id, role);
128
+ // Accumulate content
129
+ if (chunk.data.content) {
130
+ message.content = (message.content || "") + chunk.data.content;
131
+ }
132
+ // Handle tool call ID (for tool messages)
133
+ if (message.role === "tool" && chunk.data.tool_call_id) {
134
+ message.tool_call_id = chunk.data.tool_call_id;
135
+ }
136
+ // Handle tool call chunks (incremental)
137
+ if (chunk.data.tool_call_chunks && message.role === "ai") {
138
+ let builders = toolBuilders.get(message.id);
139
+ if (!builders) {
140
+ builders = new Map();
141
+ toolBuilders.set(message.id, builders);
142
+ }
143
+ for (const chunk_item of chunk.data.tool_call_chunks) {
144
+ let builder = builders.get(chunk_item.index);
145
+ if (!builder) {
146
+ builder = { args: "" };
147
+ builders.set(chunk_item.index, builder);
148
+ }
149
+ if (chunk_item.name)
150
+ builder.name = chunk_item.name;
151
+ if (chunk_item.id)
152
+ builder.id = chunk_item.id;
153
+ if (chunk_item.args)
154
+ builder.args += chunk_item.args;
155
+ }
156
+ updateToolCalls(message);
157
+ }
158
+ // Handle complete tool calls (overwrite)
159
+ if (chunk.data.tool_calls && message.role === "ai") {
160
+ const toolCalls = chunk.data.tool_calls
161
+ .filter((tc) => tc.name && tc.id)
162
+ .map((tc) => ({
163
+ id: tc.id,
164
+ name: tc.name,
165
+ args: tc.args,
166
+ type: "tool_call",
167
+ response: tc.response,
168
+ status: "success",
169
+ }));
170
+ if (toolCalls.length > 0) {
171
+ message.tool_calls = toolCalls;
172
+ }
173
+ }
174
+ // Handle tool calls in additional_kwargs
175
+ if (chunk.data.additional_kwargs?.tool_calls &&
176
+ message.role === "ai" &&
177
+ !message.tool_calls) {
178
+ const toolCalls = [];
179
+ for (const tc of chunk.data.additional_kwargs.tool_calls) {
180
+ if (tc.function?.name && tc.id) {
181
+ // Convert to our format
182
+ const args = typeof tc.function.arguments === "string"
183
+ ? safeJsonParse(tc.function.arguments)
184
+ : tc.function.arguments || {};
185
+ toolCalls.push({
186
+ id: tc.id,
187
+ name: tc.function.name,
188
+ args,
189
+ type: "tool_call",
190
+ });
191
+ }
192
+ }
193
+ if (toolCalls.length > 0) {
194
+ message.tool_calls = toolCalls;
195
+ }
196
+ }
197
+ }
198
+ /**
199
+ * Gets all messages with tool responses merged into tool calls
200
+ * @returns Array of messages with tool responses merged into tool calls
201
+ */
202
+ function getMessages() {
203
+ // Create a map to store tool responses by their tool_call_id
204
+ const toolResponsesMap = {};
205
+ // First pass: collect all tool responses
206
+ messages.forEach((message) => {
207
+ if (message.role === "tool" && message.tool_call_id) {
208
+ toolResponsesMap[message.tool_call_id] = message;
209
+ }
210
+ });
211
+ // Second pass: merge tool responses with their corresponding AI messages
212
+ return messages
213
+ .filter((message) => {
214
+ // Keep all messages except tool messages
215
+ return message.role !== "tool";
216
+ })
217
+ .map((message) => {
218
+ if (message.role === "ai" && message.tool_calls) {
219
+ // Create a new message object with merged tool responses
220
+ const mergedMessage = { ...message };
221
+ // Add tool responses to the corresponding tool calls
222
+ if (mergedMessage.tool_calls) {
223
+ mergedMessage.tool_calls = mergedMessage.tool_calls.map((toolCall) => {
224
+ const toolResponse = toolResponsesMap[toolCall.id];
225
+ if (toolResponse) {
226
+ return {
227
+ ...toolCall,
228
+ response: toolResponse.content,
229
+ status: "success",
230
+ };
231
+ }
232
+ return toolCall;
233
+ });
234
+ }
235
+ return mergedMessage;
236
+ }
237
+ return message;
238
+ });
239
+ }
240
+ /**
241
+ * Gets messages without tool calls
242
+ * @returns Array of messages without tool calls
243
+ */
244
+ function getMessagesWithoutToolCalls() {
245
+ return messages.filter((message) => message.role !== "tool" &&
246
+ (message.role !== "ai" || !message.tool_calls));
247
+ }
248
+ /**
249
+ * Resets the message merger state
250
+ */
251
+ function reset() {
252
+ messages.length = 0;
253
+ messageMap.clear();
254
+ toolBuilders.clear();
255
+ }
256
+ return {
257
+ push,
258
+ initialMessages,
259
+ getMessages,
260
+ getMessagesWithoutToolCalls,
261
+ reset,
262
+ };
263
+ }
264
+ //# sourceMappingURL=ChunkMessageMerger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChunkMessageMerger.js","sourceRoot":"","sources":["../src/ChunkMessageMerger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { Message, MessageChunk } from "@axiom-lattice/protocols";
2
+ import { AgentState, ChatResponse, ChatSendOptions, ChatStreamOptions, ClientConfig, CreateThreadOptions, GetMessagesOptions, ListThreadsOptions, RegisterToolOptions, RunOptions, Thread } from "./types";
3
+ /**
4
+ * Abstract client class for interacting with the Axiom Lattice Agent Service API
5
+ * Provides common functionality for different client implementations
6
+ */
7
+ export declare abstract class AbstractClient {
8
+ protected config: ClientConfig;
9
+ protected assistantId: string;
10
+ protected tenantId: string;
11
+ protected registeredTools: Map<string, RegisterToolOptions>;
12
+ /**
13
+ * Creates a new AbstractClient instance
14
+ * @param config - Configuration options for the client
15
+ */
16
+ constructor(config: ClientConfig);
17
+ /**
18
+ * Set tenant ID for multi-tenant environments
19
+ * @param tenantId - Tenant identifier
20
+ */
21
+ abstract setTenantId(tenantId: string): void;
22
+ /**
23
+ * Abstract method for making API requests
24
+ * To be implemented by concrete client classes
25
+ */
26
+ protected abstract makeRequest<T>(url: string, options?: {
27
+ method?: string;
28
+ body?: any;
29
+ headers?: Record<string, string>;
30
+ }): Promise<T>;
31
+ /**
32
+ * Abstract method for streaming API requests
33
+ * To be implemented by concrete client classes
34
+ */
35
+ /**
36
+ * Helper method to build stream request parameters
37
+ * @param options - Options for running the agent
38
+ * @returns The formatted request parameters
39
+ */
40
+ protected buildStreamRequestParams(options: RunOptions): {
41
+ url: string;
42
+ method: string;
43
+ body: any;
44
+ };
45
+ protected abstract streamRequest(options: RunOptions, onEvent: (event: MessageChunk) => void, onComplete?: (state?: AgentState) => void, onError?: (error: Error) => void): () => void;
46
+ /**
47
+ * Creates a new thread
48
+ * @param options - Options for creating a thread
49
+ * @returns A promise that resolves to the thread ID
50
+ */
51
+ createThread(options: CreateThreadOptions): Promise<string>;
52
+ /**
53
+ * Retrieves thread information
54
+ * @param threadId - Thread identifier
55
+ * @returns A promise that resolves to the thread information
56
+ */
57
+ getThread(threadId: string): Promise<Thread>;
58
+ /**
59
+ * Lists all threads
60
+ * @param options - Options for listing threads
61
+ * @returns A promise that resolves to an array of threads
62
+ */
63
+ listThreads(options?: ListThreadsOptions): Promise<Thread[]>;
64
+ /**
65
+ * Deletes a thread
66
+ * @param threadId - Thread identifier
67
+ * @returns A promise that resolves when the thread is deleted
68
+ */
69
+ deleteThread(threadId: string): Promise<void>;
70
+ /**
71
+ * Retrieves messages from a thread
72
+ * @param options - Options for retrieving messages
73
+ * @returns A promise that resolves to an array of messages
74
+ */
75
+ getMessages(options: GetMessagesOptions): Promise<Message[]>;
76
+ /**
77
+ * Retrieves agent state
78
+ * @param threadId - Thread identifier
79
+ * @returns A promise that resolves to the agent state
80
+ */
81
+ getAgentState(threadId: string): Promise<AgentState>;
82
+ /**
83
+ * Gets agent graph visualization
84
+ * @returns A promise that resolves to the graph visualization data
85
+ */
86
+ getAgentGraph(): Promise<string>;
87
+ /**
88
+ * Run agent with options
89
+ * @param options - Options for running the agent
90
+ * @returns A promise that resolves to the run result
91
+ */
92
+ run(options: RunOptions): Promise<ChatResponse>;
93
+ /**
94
+ * Chat namespace for sending messages and streaming responses
95
+ */
96
+ chat: {
97
+ /**
98
+ * Sends a message to a thread and receives a response
99
+ * @param options - Options for sending a message
100
+ * @returns A promise that resolves to the chat response
101
+ */
102
+ send: (options: ChatSendOptions) => Promise<ChatResponse>;
103
+ /**
104
+ * Sends a message to a thread and streams the response
105
+ * @param options - Options for streaming a message
106
+ * @param onEvent - Callback function that receives stream events
107
+ * @param onComplete - Optional callback function called when streaming completes
108
+ * @param onError - Optional callback function called when an error occurs
109
+ * @returns A function that can be called to stop the stream
110
+ */
111
+ stream: (options: ChatStreamOptions, onEvent: (event: MessageChunk) => void, onComplete?: (state?: AgentState) => void, onError?: (error: Error) => void) => (() => void);
112
+ };
113
+ /**
114
+ * Tools namespace for registering and unregistering client-side tools
115
+ */
116
+ tools: {
117
+ /**
118
+ * Registers a client-side tool
119
+ * @param options - Options for registering a tool
120
+ */
121
+ register: (options: RegisterToolOptions) => void;
122
+ /**
123
+ * Unregisters a client-side tool
124
+ * @param name - Tool name
125
+ */
126
+ unregister: (name: string) => void;
127
+ };
128
+ }
129
+ //# sourceMappingURL=abstract-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-client.d.ts","sourceRoot":"","sources":["../src/abstract-client.ts"],"names":[],"mappings":"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"}