@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.js
CHANGED
|
@@ -1073,13 +1073,8 @@ function wrapStreamText(originalFn, client, config) {
|
|
|
1073
1073
|
return null;
|
|
1074
1074
|
}
|
|
1075
1075
|
})();
|
|
1076
|
-
const wrappedParams = {
|
|
1077
|
-
...params,
|
|
1078
|
-
tools: params.tools ? wrapToolsAsync(params.tools, sessionPromise, client) : void 0
|
|
1079
|
-
};
|
|
1080
|
-
const result = originalFn(wrappedParams);
|
|
1081
1076
|
let tracked = false;
|
|
1082
|
-
async function trackCompletion(fullText, error) {
|
|
1077
|
+
async function trackCompletion(fullText, usageInfo, error) {
|
|
1083
1078
|
if (tracked) return;
|
|
1084
1079
|
tracked = true;
|
|
1085
1080
|
const durationMs = Date.now() - startTime;
|
|
@@ -1099,14 +1094,9 @@ function wrapStreamText(originalFn, client, config) {
|
|
|
1099
1094
|
});
|
|
1100
1095
|
return;
|
|
1101
1096
|
}
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
} catch {
|
|
1106
|
-
}
|
|
1107
|
-
const promptTokens = usage?.promptTokens || 0;
|
|
1108
|
-
const completionTokens = usage?.completionTokens || 0;
|
|
1109
|
-
const totalTokens = usage?.totalTokens || promptTokens + completionTokens;
|
|
1097
|
+
const promptTokens = usageInfo?.promptTokens || 0;
|
|
1098
|
+
const completionTokens = usageInfo?.completionTokens || 0;
|
|
1099
|
+
const totalTokens = usageInfo?.totalTokens || promptTokens + completionTokens;
|
|
1110
1100
|
const cost = calculateCostForCall(provider, modelId, promptTokens, completionTokens);
|
|
1111
1101
|
await client.completeSession({
|
|
1112
1102
|
sessionId: sid,
|
|
@@ -1119,48 +1109,30 @@ function wrapStreamText(originalFn, client, config) {
|
|
|
1119
1109
|
totalTokens
|
|
1120
1110
|
});
|
|
1121
1111
|
}
|
|
1122
|
-
const
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
try {
|
|
1131
|
-
for await (const chunk of originalTextStream) {
|
|
1132
|
-
fullText += chunk;
|
|
1133
|
-
yield chunk;
|
|
1134
|
-
}
|
|
1135
|
-
await trackCompletion(fullText);
|
|
1136
|
-
} catch (error) {
|
|
1137
|
-
await trackCompletion(
|
|
1138
|
-
fullText,
|
|
1139
|
-
error instanceof Error ? error : new Error(String(error))
|
|
1140
|
-
);
|
|
1141
|
-
throw error;
|
|
1142
|
-
}
|
|
1143
|
-
})();
|
|
1144
|
-
}
|
|
1145
|
-
return wrappedTextStream;
|
|
1112
|
+
const userOnFinish = params.onFinish;
|
|
1113
|
+
const wrappedParams = {
|
|
1114
|
+
...params,
|
|
1115
|
+
tools: params.tools ? wrapToolsAsync(params.tools, sessionPromise, client) : void 0,
|
|
1116
|
+
onFinish: async (event) => {
|
|
1117
|
+
try {
|
|
1118
|
+
if (userOnFinish) await userOnFinish(event);
|
|
1119
|
+
} catch {
|
|
1146
1120
|
}
|
|
1147
|
-
|
|
1121
|
+
await trackCompletion(event.text, event.usage);
|
|
1148
1122
|
}
|
|
1149
|
-
}
|
|
1123
|
+
};
|
|
1124
|
+
const result = originalFn(wrappedParams);
|
|
1150
1125
|
const textProp = result.text;
|
|
1151
|
-
if (typeof textProp === "
|
|
1152
|
-
trackCompletion(textProp).catch(() => {
|
|
1153
|
-
});
|
|
1154
|
-
} else if (textProp != null && typeof textProp.then === "function") {
|
|
1126
|
+
if (textProp != null && typeof textProp.then === "function") {
|
|
1155
1127
|
textProp.then((text) => {
|
|
1156
1128
|
trackCompletion(text).catch(() => {
|
|
1157
1129
|
});
|
|
1158
1130
|
}).catch((err) => {
|
|
1159
|
-
trackCompletion("", err instanceof Error ? err : new Error(String(err))).catch(() => {
|
|
1131
|
+
trackCompletion("", void 0, err instanceof Error ? err : new Error(String(err))).catch(() => {
|
|
1160
1132
|
});
|
|
1161
1133
|
});
|
|
1162
1134
|
}
|
|
1163
|
-
return
|
|
1135
|
+
return result;
|
|
1164
1136
|
};
|
|
1165
1137
|
}
|
|
1166
1138
|
function wrapGenerateObject(originalFn, client, config) {
|
|
@@ -1246,68 +1218,52 @@ function wrapStreamObject(originalFn, client, config) {
|
|
|
1246
1218
|
return null;
|
|
1247
1219
|
}
|
|
1248
1220
|
})();
|
|
1249
|
-
|
|
1250
|
-
const
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
if (!wrappedObjectPromise) {
|
|
1258
|
-
wrappedObjectPromise = originalObjectPromise.then(async (obj) => {
|
|
1259
|
-
if (tracked) return obj;
|
|
1260
|
-
tracked = true;
|
|
1261
|
-
const durationMs = Date.now() - startTime;
|
|
1262
|
-
const sid = await sessionPromise;
|
|
1263
|
-
if (!sid) return obj;
|
|
1264
|
-
let usage;
|
|
1265
|
-
try {
|
|
1266
|
-
usage = result.usage ? await result.usage : void 0;
|
|
1267
|
-
} catch {
|
|
1268
|
-
}
|
|
1269
|
-
const promptTokens = usage?.promptTokens || 0;
|
|
1270
|
-
const completionTokens = usage?.completionTokens || 0;
|
|
1271
|
-
const totalTokens = usage?.totalTokens || promptTokens + completionTokens;
|
|
1272
|
-
const cost = calculateCostForCall(provider, modelId, promptTokens, completionTokens);
|
|
1273
|
-
await client.completeSession({
|
|
1274
|
-
sessionId: sid,
|
|
1275
|
-
success: true,
|
|
1276
|
-
output: JSON.stringify(obj),
|
|
1277
|
-
durationMs,
|
|
1278
|
-
estimatedCost: cost,
|
|
1279
|
-
promptTokens,
|
|
1280
|
-
completionTokens,
|
|
1281
|
-
totalTokens
|
|
1282
|
-
});
|
|
1283
|
-
return obj;
|
|
1284
|
-
}).catch(async (error) => {
|
|
1285
|
-
if (tracked) throw error;
|
|
1286
|
-
tracked = true;
|
|
1287
|
-
const durationMs = Date.now() - startTime;
|
|
1288
|
-
const sid = await sessionPromise;
|
|
1289
|
-
if (!sid) throw error;
|
|
1290
|
-
await client.trackError({
|
|
1291
|
-
sessionId: sid,
|
|
1292
|
-
errorType: error instanceof Error ? error.name : "Error",
|
|
1293
|
-
errorMessage: error instanceof Error ? error.message : "Unknown error"
|
|
1294
|
-
});
|
|
1295
|
-
await client.completeSession({
|
|
1296
|
-
sessionId: sid,
|
|
1297
|
-
success: false,
|
|
1298
|
-
failureReason: error instanceof Error ? error.message : "Unknown error",
|
|
1299
|
-
durationMs
|
|
1300
|
-
});
|
|
1301
|
-
throw error;
|
|
1302
|
-
});
|
|
1303
|
-
}
|
|
1304
|
-
return wrappedObjectPromise;
|
|
1305
|
-
}
|
|
1306
|
-
return Reflect.get(target, prop, receiver);
|
|
1221
|
+
let tracked = false;
|
|
1222
|
+
const userOnFinish = params.onFinish;
|
|
1223
|
+
const wrappedParams = {
|
|
1224
|
+
...params,
|
|
1225
|
+
onFinish: async (event) => {
|
|
1226
|
+
try {
|
|
1227
|
+
if (userOnFinish) await userOnFinish(event);
|
|
1228
|
+
} catch {
|
|
1307
1229
|
}
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1230
|
+
if (tracked) return;
|
|
1231
|
+
tracked = true;
|
|
1232
|
+
const durationMs = Date.now() - startTime;
|
|
1233
|
+
const sid = await sessionPromise;
|
|
1234
|
+
if (!sid) return;
|
|
1235
|
+
if (event.error) {
|
|
1236
|
+
const err = event.error instanceof Error ? event.error : new Error(String(event.error));
|
|
1237
|
+
await client.trackError({
|
|
1238
|
+
sessionId: sid,
|
|
1239
|
+
errorType: err.name || "Error",
|
|
1240
|
+
errorMessage: err.message || "Unknown error"
|
|
1241
|
+
});
|
|
1242
|
+
await client.completeSession({
|
|
1243
|
+
sessionId: sid,
|
|
1244
|
+
success: false,
|
|
1245
|
+
failureReason: err.message || "Unknown error",
|
|
1246
|
+
durationMs
|
|
1247
|
+
});
|
|
1248
|
+
return;
|
|
1249
|
+
}
|
|
1250
|
+
const promptTokens = event.usage?.promptTokens || 0;
|
|
1251
|
+
const completionTokens = event.usage?.completionTokens || 0;
|
|
1252
|
+
const totalTokens = event.usage?.totalTokens || promptTokens + completionTokens;
|
|
1253
|
+
const cost = calculateCostForCall(provider, modelId, promptTokens, completionTokens);
|
|
1254
|
+
await client.completeSession({
|
|
1255
|
+
sessionId: sid,
|
|
1256
|
+
success: true,
|
|
1257
|
+
output: event.object != null ? JSON.stringify(event.object) : "",
|
|
1258
|
+
durationMs,
|
|
1259
|
+
estimatedCost: cost,
|
|
1260
|
+
promptTokens,
|
|
1261
|
+
completionTokens,
|
|
1262
|
+
totalTokens
|
|
1263
|
+
});
|
|
1264
|
+
}
|
|
1265
|
+
};
|
|
1266
|
+
return originalFn(wrappedParams);
|
|
1311
1267
|
};
|
|
1312
1268
|
}
|
|
1313
1269
|
function wrapAISDK(ai, options) {
|