@sentrial/sdk 0.3.2 → 0.3.3
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/index.cjs +63 -107
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +63 -107
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1143,13 +1143,8 @@ function wrapStreamText(originalFn, client, config) {
|
|
|
1143
1143
|
return null;
|
|
1144
1144
|
}
|
|
1145
1145
|
})();
|
|
1146
|
-
const wrappedParams = {
|
|
1147
|
-
...params,
|
|
1148
|
-
tools: params.tools ? wrapToolsAsync(params.tools, sessionPromise, client) : void 0
|
|
1149
|
-
};
|
|
1150
|
-
const result = originalFn(wrappedParams);
|
|
1151
1146
|
let tracked = false;
|
|
1152
|
-
async function trackCompletion(fullText, error) {
|
|
1147
|
+
async function trackCompletion(fullText, usageInfo, error) {
|
|
1153
1148
|
if (tracked) return;
|
|
1154
1149
|
tracked = true;
|
|
1155
1150
|
const durationMs = Date.now() - startTime;
|
|
@@ -1169,14 +1164,9 @@ function wrapStreamText(originalFn, client, config) {
|
|
|
1169
1164
|
});
|
|
1170
1165
|
return;
|
|
1171
1166
|
}
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
} catch {
|
|
1176
|
-
}
|
|
1177
|
-
const promptTokens = usage?.promptTokens || 0;
|
|
1178
|
-
const completionTokens = usage?.completionTokens || 0;
|
|
1179
|
-
const totalTokens = usage?.totalTokens || promptTokens + completionTokens;
|
|
1167
|
+
const promptTokens = usageInfo?.promptTokens || 0;
|
|
1168
|
+
const completionTokens = usageInfo?.completionTokens || 0;
|
|
1169
|
+
const totalTokens = usageInfo?.totalTokens || promptTokens + completionTokens;
|
|
1180
1170
|
const cost = calculateCostForCall(provider, modelId, promptTokens, completionTokens);
|
|
1181
1171
|
await client.completeSession({
|
|
1182
1172
|
sessionId: sid,
|
|
@@ -1189,48 +1179,30 @@ function wrapStreamText(originalFn, client, config) {
|
|
|
1189
1179
|
totalTokens
|
|
1190
1180
|
});
|
|
1191
1181
|
}
|
|
1192
|
-
const
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
try {
|
|
1201
|
-
for await (const chunk of originalTextStream) {
|
|
1202
|
-
fullText += chunk;
|
|
1203
|
-
yield chunk;
|
|
1204
|
-
}
|
|
1205
|
-
await trackCompletion(fullText);
|
|
1206
|
-
} catch (error) {
|
|
1207
|
-
await trackCompletion(
|
|
1208
|
-
fullText,
|
|
1209
|
-
error instanceof Error ? error : new Error(String(error))
|
|
1210
|
-
);
|
|
1211
|
-
throw error;
|
|
1212
|
-
}
|
|
1213
|
-
})();
|
|
1214
|
-
}
|
|
1215
|
-
return wrappedTextStream;
|
|
1182
|
+
const userOnFinish = params.onFinish;
|
|
1183
|
+
const wrappedParams = {
|
|
1184
|
+
...params,
|
|
1185
|
+
tools: params.tools ? wrapToolsAsync(params.tools, sessionPromise, client) : void 0,
|
|
1186
|
+
onFinish: async (event) => {
|
|
1187
|
+
try {
|
|
1188
|
+
if (userOnFinish) await userOnFinish(event);
|
|
1189
|
+
} catch {
|
|
1216
1190
|
}
|
|
1217
|
-
|
|
1191
|
+
await trackCompletion(event.text, event.usage);
|
|
1218
1192
|
}
|
|
1219
|
-
}
|
|
1193
|
+
};
|
|
1194
|
+
const result = originalFn(wrappedParams);
|
|
1220
1195
|
const textProp = result.text;
|
|
1221
|
-
if (typeof textProp === "
|
|
1222
|
-
trackCompletion(textProp).catch(() => {
|
|
1223
|
-
});
|
|
1224
|
-
} else if (textProp != null && typeof textProp.then === "function") {
|
|
1196
|
+
if (textProp != null && typeof textProp.then === "function") {
|
|
1225
1197
|
textProp.then((text) => {
|
|
1226
1198
|
trackCompletion(text).catch(() => {
|
|
1227
1199
|
});
|
|
1228
1200
|
}).catch((err) => {
|
|
1229
|
-
trackCompletion("", err instanceof Error ? err : new Error(String(err))).catch(() => {
|
|
1201
|
+
trackCompletion("", void 0, err instanceof Error ? err : new Error(String(err))).catch(() => {
|
|
1230
1202
|
});
|
|
1231
1203
|
});
|
|
1232
1204
|
}
|
|
1233
|
-
return
|
|
1205
|
+
return result;
|
|
1234
1206
|
};
|
|
1235
1207
|
}
|
|
1236
1208
|
function wrapGenerateObject(originalFn, client, config) {
|
|
@@ -1316,68 +1288,52 @@ function wrapStreamObject(originalFn, client, config) {
|
|
|
1316
1288
|
return null;
|
|
1317
1289
|
}
|
|
1318
1290
|
})();
|
|
1319
|
-
|
|
1320
|
-
const
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
if (!wrappedObjectPromise) {
|
|
1328
|
-
wrappedObjectPromise = originalObjectPromise.then(async (obj) => {
|
|
1329
|
-
if (tracked) return obj;
|
|
1330
|
-
tracked = true;
|
|
1331
|
-
const durationMs = Date.now() - startTime;
|
|
1332
|
-
const sid = await sessionPromise;
|
|
1333
|
-
if (!sid) return obj;
|
|
1334
|
-
let usage;
|
|
1335
|
-
try {
|
|
1336
|
-
usage = result.usage ? await result.usage : void 0;
|
|
1337
|
-
} catch {
|
|
1338
|
-
}
|
|
1339
|
-
const promptTokens = usage?.promptTokens || 0;
|
|
1340
|
-
const completionTokens = usage?.completionTokens || 0;
|
|
1341
|
-
const totalTokens = usage?.totalTokens || promptTokens + completionTokens;
|
|
1342
|
-
const cost = calculateCostForCall(provider, modelId, promptTokens, completionTokens);
|
|
1343
|
-
await client.completeSession({
|
|
1344
|
-
sessionId: sid,
|
|
1345
|
-
success: true,
|
|
1346
|
-
output: JSON.stringify(obj),
|
|
1347
|
-
durationMs,
|
|
1348
|
-
estimatedCost: cost,
|
|
1349
|
-
promptTokens,
|
|
1350
|
-
completionTokens,
|
|
1351
|
-
totalTokens
|
|
1352
|
-
});
|
|
1353
|
-
return obj;
|
|
1354
|
-
}).catch(async (error) => {
|
|
1355
|
-
if (tracked) throw error;
|
|
1356
|
-
tracked = true;
|
|
1357
|
-
const durationMs = Date.now() - startTime;
|
|
1358
|
-
const sid = await sessionPromise;
|
|
1359
|
-
if (!sid) throw error;
|
|
1360
|
-
await client.trackError({
|
|
1361
|
-
sessionId: sid,
|
|
1362
|
-
errorType: error instanceof Error ? error.name : "Error",
|
|
1363
|
-
errorMessage: error instanceof Error ? error.message : "Unknown error"
|
|
1364
|
-
});
|
|
1365
|
-
await client.completeSession({
|
|
1366
|
-
sessionId: sid,
|
|
1367
|
-
success: false,
|
|
1368
|
-
failureReason: error instanceof Error ? error.message : "Unknown error",
|
|
1369
|
-
durationMs
|
|
1370
|
-
});
|
|
1371
|
-
throw error;
|
|
1372
|
-
});
|
|
1373
|
-
}
|
|
1374
|
-
return wrappedObjectPromise;
|
|
1375
|
-
}
|
|
1376
|
-
return Reflect.get(target, prop, receiver);
|
|
1291
|
+
let tracked = false;
|
|
1292
|
+
const userOnFinish = params.onFinish;
|
|
1293
|
+
const wrappedParams = {
|
|
1294
|
+
...params,
|
|
1295
|
+
onFinish: async (event) => {
|
|
1296
|
+
try {
|
|
1297
|
+
if (userOnFinish) await userOnFinish(event);
|
|
1298
|
+
} catch {
|
|
1377
1299
|
}
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1300
|
+
if (tracked) return;
|
|
1301
|
+
tracked = true;
|
|
1302
|
+
const durationMs = Date.now() - startTime;
|
|
1303
|
+
const sid = await sessionPromise;
|
|
1304
|
+
if (!sid) return;
|
|
1305
|
+
if (event.error) {
|
|
1306
|
+
const err = event.error instanceof Error ? event.error : new Error(String(event.error));
|
|
1307
|
+
await client.trackError({
|
|
1308
|
+
sessionId: sid,
|
|
1309
|
+
errorType: err.name || "Error",
|
|
1310
|
+
errorMessage: err.message || "Unknown error"
|
|
1311
|
+
});
|
|
1312
|
+
await client.completeSession({
|
|
1313
|
+
sessionId: sid,
|
|
1314
|
+
success: false,
|
|
1315
|
+
failureReason: err.message || "Unknown error",
|
|
1316
|
+
durationMs
|
|
1317
|
+
});
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1320
|
+
const promptTokens = event.usage?.promptTokens || 0;
|
|
1321
|
+
const completionTokens = event.usage?.completionTokens || 0;
|
|
1322
|
+
const totalTokens = event.usage?.totalTokens || promptTokens + completionTokens;
|
|
1323
|
+
const cost = calculateCostForCall(provider, modelId, promptTokens, completionTokens);
|
|
1324
|
+
await client.completeSession({
|
|
1325
|
+
sessionId: sid,
|
|
1326
|
+
success: true,
|
|
1327
|
+
output: event.object != null ? JSON.stringify(event.object) : "",
|
|
1328
|
+
durationMs,
|
|
1329
|
+
estimatedCost: cost,
|
|
1330
|
+
promptTokens,
|
|
1331
|
+
completionTokens,
|
|
1332
|
+
totalTokens
|
|
1333
|
+
});
|
|
1334
|
+
}
|
|
1335
|
+
};
|
|
1336
|
+
return originalFn(wrappedParams);
|
|
1381
1337
|
};
|
|
1382
1338
|
}
|
|
1383
1339
|
function wrapAISDK(ai, options) {
|