@axiom-lattice/client-sdk 2.1.9 → 2.1.11
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/ChunkMessageMerger.d.ts.map +1 -1
- package/dist/ChunkMessageMerger.js +73 -84
- package/dist/ChunkMessageMerger.js.map +1 -1
- package/dist/index.js +27 -34
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -34
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChunkMessageMerger.d.ts","sourceRoot":"","sources":["../src/ChunkMessageMerger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"ChunkMessageMerger.d.ts","sourceRoot":"","sources":["../src/ChunkMessageMerger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,YAAY,EACb,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,wBAAgB,yBAAyB;kBA8IlB,YAAY;4BAXF,GAAG,EAAE;uBA+HZ,GAAG,EAAE;uCAkDW,GAAG,EAAE;mCAaP,MAAM,KAAG,OAAO;;EAyCvD"}
|
|
@@ -11,6 +11,7 @@ import { parse } from "best-effort-json-parser";
|
|
|
11
11
|
export function createSimpleMessageMerger() {
|
|
12
12
|
let messages = [];
|
|
13
13
|
const messageMap = new Map();
|
|
14
|
+
const toolId_MessageIdMap = new Map();
|
|
14
15
|
// Tool call builder: messageId -> index -> build state
|
|
15
16
|
const toolBuilders = new Map();
|
|
16
17
|
/**
|
|
@@ -77,8 +78,11 @@ export function createSimpleMessageMerger() {
|
|
|
77
78
|
default:
|
|
78
79
|
newMessage = { id, role: "ai", content: "" };
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
if (newMessage.role !== "tool") {
|
|
82
|
+
// tool message always append to the ai message
|
|
83
|
+
messages.push(newMessage);
|
|
84
|
+
messageMap.set(id, messages.length - 1);
|
|
85
|
+
}
|
|
82
86
|
return newMessage;
|
|
83
87
|
}
|
|
84
88
|
/**
|
|
@@ -116,49 +120,7 @@ export function createSimpleMessageMerger() {
|
|
|
116
120
|
* @param msgs - Initial messages
|
|
117
121
|
*/
|
|
118
122
|
function initialMessages(msgs) {
|
|
119
|
-
|
|
120
|
-
//messages = msgs;
|
|
121
|
-
// Build messageMap: map message IDs to their indices
|
|
122
|
-
messageMap.clear();
|
|
123
|
-
// messages.forEach((msg, index) => {
|
|
124
|
-
// if (msg.id) {
|
|
125
|
-
// messageMap.set(msg.id, index);
|
|
126
|
-
// }
|
|
127
|
-
// });
|
|
128
|
-
// Build toolBuilders for messages with tool_calls (for incremental updates)
|
|
129
|
-
toolBuilders.clear();
|
|
130
|
-
// messages.forEach((msg) => {
|
|
131
|
-
// if (
|
|
132
|
-
// msg.role === "ai" &&
|
|
133
|
-
// msg.tool_calls &&
|
|
134
|
-
// Array.isArray(msg.tool_calls)
|
|
135
|
-
// ) {
|
|
136
|
-
// const builders = new Map<
|
|
137
|
-
// number,
|
|
138
|
-
// {
|
|
139
|
-
// id?: string;
|
|
140
|
-
// name?: string;
|
|
141
|
-
// args: string;
|
|
142
|
-
// }
|
|
143
|
-
// >();
|
|
144
|
-
// msg.tool_calls.forEach((toolCall: any, index: number) => {
|
|
145
|
-
// if (toolCall.id && toolCall.name) {
|
|
146
|
-
// const argsStr =
|
|
147
|
-
// typeof toolCall.args === "object"
|
|
148
|
-
// ? JSON.stringify(toolCall.args)
|
|
149
|
-
// : String(toolCall.args || "");
|
|
150
|
-
// builders.set(index, {
|
|
151
|
-
// id: toolCall.id,
|
|
152
|
-
// name: toolCall.name,
|
|
153
|
-
// args: argsStr,
|
|
154
|
-
// });
|
|
155
|
-
// }
|
|
156
|
-
// });
|
|
157
|
-
// if (builders.size > 0) {
|
|
158
|
-
// toolBuilders.set(msg.id, builders);
|
|
159
|
-
// }
|
|
160
|
-
// }
|
|
161
|
-
// });
|
|
123
|
+
reset();
|
|
162
124
|
msgs.forEach((msg) => {
|
|
163
125
|
push({ type: msg.role, data: msg });
|
|
164
126
|
});
|
|
@@ -168,15 +130,21 @@ export function createSimpleMessageMerger() {
|
|
|
168
130
|
* @param chunk - Message chunk to process
|
|
169
131
|
*/
|
|
170
132
|
function push(chunk) {
|
|
133
|
+
// console.log("push chunk", chunk);
|
|
171
134
|
const role = normalizeRole(chunk.type);
|
|
172
135
|
const message = ensureMessage(chunk.data.id, role);
|
|
173
136
|
// Accumulate content
|
|
174
137
|
if (chunk.data.content) {
|
|
175
138
|
message.content = (message.content || "") + chunk.data.content;
|
|
176
139
|
}
|
|
177
|
-
// Handle
|
|
178
|
-
if (message.role === "
|
|
179
|
-
|
|
140
|
+
// Handle tool start call ID
|
|
141
|
+
if (message.role === "ai" &&
|
|
142
|
+
chunk.data.tool_calls &&
|
|
143
|
+
chunk.data.tool_calls.length > 0) {
|
|
144
|
+
for (const toolCall of chunk.data.tool_calls) {
|
|
145
|
+
toolId_MessageIdMap.set(toolCall.id, message.id);
|
|
146
|
+
}
|
|
147
|
+
message.tool_calls = chunk.data.tool_calls;
|
|
180
148
|
}
|
|
181
149
|
// Handle tool call chunks (incremental)
|
|
182
150
|
if (chunk.data.tool_call_chunks && message.role === "ai") {
|
|
@@ -200,51 +168,71 @@ export function createSimpleMessageMerger() {
|
|
|
200
168
|
}
|
|
201
169
|
updateToolCalls(message);
|
|
202
170
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
171
|
+
if (message.role === "tool" && chunk.data.tool_call_id) {
|
|
172
|
+
const messageId = toolId_MessageIdMap.get(chunk.data.tool_call_id);
|
|
173
|
+
if (!messageId)
|
|
174
|
+
return;
|
|
175
|
+
const messageIndex = messageMap.get(messageId);
|
|
176
|
+
if (messageIndex !== undefined) {
|
|
177
|
+
const message = messages[messageIndex];
|
|
178
|
+
message.tool_calls = message.tool_calls?.map((tc) => {
|
|
179
|
+
if (tc.id === chunk.data.tool_call_id) {
|
|
180
|
+
return { ...tc, response: chunk.data.content, status: "success" };
|
|
181
|
+
}
|
|
182
|
+
return tc;
|
|
183
|
+
});
|
|
184
|
+
messages[messageIndex] = message;
|
|
217
185
|
}
|
|
218
186
|
}
|
|
187
|
+
// // Handle complete tool calls (overwrite)
|
|
188
|
+
// if (chunk.data.tool_calls && message.role === "ai") {
|
|
189
|
+
// const toolCalls: any[] = chunk.data.tool_calls
|
|
190
|
+
// .filter((tc) => tc.name && tc.id)
|
|
191
|
+
// .map((tc) => ({
|
|
192
|
+
// id: tc.id,
|
|
193
|
+
// name: tc.name,
|
|
194
|
+
// args: tc.args,
|
|
195
|
+
// type: "tool_call",
|
|
196
|
+
// response: tc.response,
|
|
197
|
+
// status: "success",
|
|
198
|
+
// }));
|
|
199
|
+
// if (toolCalls.length > 0) {
|
|
200
|
+
// message.tool_calls = toolCalls;
|
|
201
|
+
// }
|
|
202
|
+
// }
|
|
219
203
|
// Handle tool calls in additional_kwargs
|
|
220
|
-
if (
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
204
|
+
// if (
|
|
205
|
+
// chunk.data.additional_kwargs?.tool_calls &&
|
|
206
|
+
// message.role === "ai" &&
|
|
207
|
+
// !message.tool_calls
|
|
208
|
+
// ) {
|
|
209
|
+
// const toolCalls: any[] = [];
|
|
210
|
+
// for (const tc of chunk.data.additional_kwargs.tool_calls) {
|
|
211
|
+
// if (tc.function?.name && tc.id) {
|
|
212
|
+
// // Convert to our format
|
|
213
|
+
// const args =
|
|
214
|
+
// typeof tc.function.arguments === "string"
|
|
215
|
+
// ? safeJsonParse(tc.function.arguments)
|
|
216
|
+
// : tc.function.arguments || {};
|
|
217
|
+
// toolCalls.push({
|
|
218
|
+
// id: tc.id,
|
|
219
|
+
// name: tc.function.name,
|
|
220
|
+
// args,
|
|
221
|
+
// type: "tool_call",
|
|
222
|
+
// });
|
|
223
|
+
// }
|
|
224
|
+
// }
|
|
225
|
+
// if (toolCalls.length > 0) {
|
|
226
|
+
// message.tool_calls = toolCalls;
|
|
227
|
+
// }
|
|
228
|
+
// }
|
|
242
229
|
}
|
|
243
230
|
/**
|
|
244
231
|
* Gets all messages with tool responses merged into tool calls
|
|
245
232
|
* @returns Array of messages with tool responses merged into tool calls
|
|
246
233
|
*/
|
|
247
234
|
function getMessages() {
|
|
235
|
+
return [...messages];
|
|
248
236
|
// Create a map to store tool responses by their tool_call_id
|
|
249
237
|
const toolResponsesMap = {};
|
|
250
238
|
// First pass: collect all tool responses
|
|
@@ -321,6 +309,7 @@ export function createSimpleMessageMerger() {
|
|
|
321
309
|
messages = [];
|
|
322
310
|
messageMap.clear();
|
|
323
311
|
toolBuilders.clear();
|
|
312
|
+
toolId_MessageIdMap.clear();
|
|
324
313
|
}
|
|
325
314
|
return {
|
|
326
315
|
push,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChunkMessageMerger.js","sourceRoot":"","sources":["../src/ChunkMessageMerger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ChunkMessageMerger.js","sourceRoot":"","sources":["../src/ChunkMessageMerger.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2976,6 +2976,7 @@ var import_best_effort_json_parser = require("best-effort-json-parser");
|
|
|
2976
2976
|
function createSimpleMessageMerger() {
|
|
2977
2977
|
let messages = [];
|
|
2978
2978
|
const messageMap = /* @__PURE__ */ new Map();
|
|
2979
|
+
const toolId_MessageIdMap = /* @__PURE__ */ new Map();
|
|
2979
2980
|
const toolBuilders = /* @__PURE__ */ new Map();
|
|
2980
2981
|
function normalizeRole(type) {
|
|
2981
2982
|
switch (type) {
|
|
@@ -3023,8 +3024,10 @@ function createSimpleMessageMerger() {
|
|
|
3023
3024
|
default:
|
|
3024
3025
|
newMessage = { id, role: "ai", content: "" };
|
|
3025
3026
|
}
|
|
3026
|
-
|
|
3027
|
-
|
|
3027
|
+
if (newMessage.role !== "tool") {
|
|
3028
|
+
messages.push(newMessage);
|
|
3029
|
+
messageMap.set(id, messages.length - 1);
|
|
3030
|
+
}
|
|
3028
3031
|
return newMessage;
|
|
3029
3032
|
}
|
|
3030
3033
|
function updateToolCalls(message) {
|
|
@@ -3051,8 +3054,7 @@ function createSimpleMessageMerger() {
|
|
|
3051
3054
|
}
|
|
3052
3055
|
}
|
|
3053
3056
|
function initialMessages(msgs) {
|
|
3054
|
-
|
|
3055
|
-
toolBuilders.clear();
|
|
3057
|
+
reset();
|
|
3056
3058
|
msgs.forEach((msg) => {
|
|
3057
3059
|
push({ type: msg.role, data: msg });
|
|
3058
3060
|
});
|
|
@@ -3063,8 +3065,11 @@ function createSimpleMessageMerger() {
|
|
|
3063
3065
|
if (chunk.data.content) {
|
|
3064
3066
|
message.content = (message.content || "") + chunk.data.content;
|
|
3065
3067
|
}
|
|
3066
|
-
if (message.role === "
|
|
3067
|
-
|
|
3068
|
+
if (message.role === "ai" && chunk.data.tool_calls && chunk.data.tool_calls.length > 0) {
|
|
3069
|
+
for (const toolCall of chunk.data.tool_calls) {
|
|
3070
|
+
toolId_MessageIdMap.set(toolCall.id, message.id);
|
|
3071
|
+
}
|
|
3072
|
+
message.tool_calls = chunk.data.tool_calls;
|
|
3068
3073
|
}
|
|
3069
3074
|
if (chunk.data.tool_call_chunks && message.role === "ai") {
|
|
3070
3075
|
let builders = toolBuilders.get(message.id);
|
|
@@ -3087,38 +3092,25 @@ function createSimpleMessageMerger() {
|
|
|
3087
3092
|
}
|
|
3088
3093
|
updateToolCalls(message);
|
|
3089
3094
|
}
|
|
3090
|
-
if (
|
|
3091
|
-
const
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
const toolCalls = [];
|
|
3105
|
-
for (const tc of chunk.data.additional_kwargs.tool_calls) {
|
|
3106
|
-
if (tc.function?.name && tc.id) {
|
|
3107
|
-
const args = typeof tc.function.arguments === "string" ? safeJsonParse(tc.function.arguments) : tc.function.arguments || {};
|
|
3108
|
-
toolCalls.push({
|
|
3109
|
-
id: tc.id,
|
|
3110
|
-
name: tc.function.name,
|
|
3111
|
-
args,
|
|
3112
|
-
type: "tool_call"
|
|
3113
|
-
});
|
|
3114
|
-
}
|
|
3115
|
-
}
|
|
3116
|
-
if (toolCalls.length > 0) {
|
|
3117
|
-
message.tool_calls = toolCalls;
|
|
3095
|
+
if (message.role === "tool" && chunk.data.tool_call_id) {
|
|
3096
|
+
const messageId = toolId_MessageIdMap.get(chunk.data.tool_call_id);
|
|
3097
|
+
if (!messageId)
|
|
3098
|
+
return;
|
|
3099
|
+
const messageIndex = messageMap.get(messageId);
|
|
3100
|
+
if (messageIndex !== void 0) {
|
|
3101
|
+
const message2 = messages[messageIndex];
|
|
3102
|
+
message2.tool_calls = message2.tool_calls?.map((tc) => {
|
|
3103
|
+
if (tc.id === chunk.data.tool_call_id) {
|
|
3104
|
+
return { ...tc, response: chunk.data.content, status: "success" };
|
|
3105
|
+
}
|
|
3106
|
+
return tc;
|
|
3107
|
+
});
|
|
3108
|
+
messages[messageIndex] = message2;
|
|
3118
3109
|
}
|
|
3119
3110
|
}
|
|
3120
3111
|
}
|
|
3121
3112
|
function getMessages() {
|
|
3113
|
+
return [...messages];
|
|
3122
3114
|
const toolResponsesMap = {};
|
|
3123
3115
|
messages.forEach((message) => {
|
|
3124
3116
|
if (message.role === "tool" && message.tool_call_id) {
|
|
@@ -3174,6 +3166,7 @@ function createSimpleMessageMerger() {
|
|
|
3174
3166
|
messages = [];
|
|
3175
3167
|
messageMap.clear();
|
|
3176
3168
|
toolBuilders.clear();
|
|
3169
|
+
toolId_MessageIdMap.clear();
|
|
3177
3170
|
}
|
|
3178
3171
|
return {
|
|
3179
3172
|
push,
|