@raindrop-ai/ai-sdk 0.0.34 → 0.0.36
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/{chunk-OLOFN54C.mjs → chunk-NHSRCEYN.mjs} +58 -78
- package/dist/{index-HYjRP6nV.d.mts → index-Crm3oDAG.d.mts} +25 -1
- package/dist/{index-HYjRP6nV.d.ts → index-Crm3oDAG.d.ts} +25 -1
- package/dist/index.browser.d.mts +25 -1
- package/dist/index.browser.d.ts +25 -1
- package/dist/index.browser.js +58 -78
- package/dist/index.browser.mjs +58 -78
- package/dist/index.node.d.mts +1 -1
- package/dist/index.node.d.ts +1 -1
- package/dist/index.node.js +58 -78
- package/dist/index.node.mjs +1 -1
- package/dist/index.workers.d.mts +1 -1
- package/dist/index.workers.d.ts +1 -1
- package/dist/index.workers.js +58 -78
- package/dist/index.workers.mjs +1 -1
- package/package.json +2 -2
package/dist/index.node.js
CHANGED
|
@@ -4,7 +4,7 @@ var async_hooks = require('async_hooks');
|
|
|
4
4
|
|
|
5
5
|
// src/index.node.ts
|
|
6
6
|
|
|
7
|
-
// ../core/dist/chunk-
|
|
7
|
+
// ../core/dist/chunk-SK6EJEO7.js
|
|
8
8
|
function getCrypto() {
|
|
9
9
|
const c = globalThis.crypto;
|
|
10
10
|
return c;
|
|
@@ -401,6 +401,25 @@ function sendLocalDebuggerLiveEvent(event, options = {}) {
|
|
|
401
401
|
).catch(() => {
|
|
402
402
|
});
|
|
403
403
|
}
|
|
404
|
+
var PROJECT_ID_HEADER = "X-Raindrop-Project-Id";
|
|
405
|
+
var PROJECT_ID_SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
406
|
+
function isValidProjectIdSlug(value) {
|
|
407
|
+
return PROJECT_ID_SLUG_PATTERN.test(value);
|
|
408
|
+
}
|
|
409
|
+
function normalizeProjectId(raw, opts) {
|
|
410
|
+
if (typeof raw !== "string") return void 0;
|
|
411
|
+
const trimmed = raw.trim();
|
|
412
|
+
if (!trimmed) return void 0;
|
|
413
|
+
if (!isValidProjectIdSlug(trimmed) && opts.debug) {
|
|
414
|
+
console.warn(
|
|
415
|
+
`${opts.prefix} projectId "${trimmed}" does not match slug ${PROJECT_ID_SLUG_PATTERN.source}; sending anyway \u2014 backend may reject with HTTP 400`
|
|
416
|
+
);
|
|
417
|
+
}
|
|
418
|
+
return trimmed;
|
|
419
|
+
}
|
|
420
|
+
function projectIdHeaders(projectId) {
|
|
421
|
+
return projectId ? { [PROJECT_ID_HEADER]: projectId } : {};
|
|
422
|
+
}
|
|
404
423
|
var SHUTDOWN_DEADLINE_MS = 1e4;
|
|
405
424
|
var POST_SHUTDOWN_TIMEOUT_MS = 5e3;
|
|
406
425
|
function mergePatches(target, source) {
|
|
@@ -435,6 +454,10 @@ var EventShipper = class {
|
|
|
435
454
|
if (this.debug && this.localDebuggerUrl) {
|
|
436
455
|
console.log(`${this.prefix} Local debugger mirroring: ${this.localDebuggerUrl}`);
|
|
437
456
|
}
|
|
457
|
+
this.projectId = normalizeProjectId(opts.projectId, {
|
|
458
|
+
debug: this.debug,
|
|
459
|
+
prefix: this.prefix
|
|
460
|
+
});
|
|
438
461
|
const isNode = typeof process !== "undefined" && typeof process.version === "string";
|
|
439
462
|
this.context = {
|
|
440
463
|
library: {
|
|
@@ -453,6 +476,9 @@ var EventShipper = class {
|
|
|
453
476
|
authHeaders() {
|
|
454
477
|
return this.writeKey ? { Authorization: `Bearer ${this.writeKey}` } : {};
|
|
455
478
|
}
|
|
479
|
+
requestHeaders() {
|
|
480
|
+
return { ...this.authHeaders(), ...projectIdHeaders(this.projectId) };
|
|
481
|
+
}
|
|
456
482
|
/**
|
|
457
483
|
* Build the retry/timeout options for one POST, honoring the shutdown
|
|
458
484
|
* deadline. Returns `null` when the shutdown drain window is exhausted —
|
|
@@ -582,7 +608,7 @@ var EventShipper = class {
|
|
|
582
608
|
return;
|
|
583
609
|
}
|
|
584
610
|
try {
|
|
585
|
-
await postJson(url, body, this.
|
|
611
|
+
await postJson(url, body, this.requestHeaders(), opts);
|
|
586
612
|
} catch (err) {
|
|
587
613
|
const msg = err instanceof Error ? err.message : String(err);
|
|
588
614
|
rateLimitedLog(
|
|
@@ -618,7 +644,7 @@ var EventShipper = class {
|
|
|
618
644
|
return;
|
|
619
645
|
}
|
|
620
646
|
try {
|
|
621
|
-
await postJson(url, body, this.
|
|
647
|
+
await postJson(url, body, this.requestHeaders(), opts);
|
|
622
648
|
} catch (err) {
|
|
623
649
|
const msg = err instanceof Error ? err.message : String(err);
|
|
624
650
|
rateLimitedLog(
|
|
@@ -714,7 +740,7 @@ var EventShipper = class {
|
|
|
714
740
|
if (!isPending) this.sticky.delete(eventId);
|
|
715
741
|
return;
|
|
716
742
|
}
|
|
717
|
-
const p = postJson(url, payload, this.
|
|
743
|
+
const p = postJson(url, payload, this.requestHeaders(), opts);
|
|
718
744
|
this.inFlight.add(p);
|
|
719
745
|
try {
|
|
720
746
|
try {
|
|
@@ -861,6 +887,10 @@ var TraceShipper = class {
|
|
|
861
887
|
if (this.debug && this.localDebuggerUrl) {
|
|
862
888
|
console.log(`${this.prefix} Local debugger mirroring: ${this.localDebuggerUrl}`);
|
|
863
889
|
}
|
|
890
|
+
this.projectId = normalizeProjectId(opts.projectId, {
|
|
891
|
+
debug: this.debug,
|
|
892
|
+
prefix: this.prefix
|
|
893
|
+
});
|
|
864
894
|
this.transformSpanHook = opts.transformSpan;
|
|
865
895
|
this.disableDefaultRedaction = opts.disableDefaultRedaction === true;
|
|
866
896
|
this.maxTextFieldCharsOpt = opts.maxTextFieldChars;
|
|
@@ -937,6 +967,9 @@ var TraceShipper = class {
|
|
|
937
967
|
authHeaders() {
|
|
938
968
|
return this.writeKey ? { Authorization: `Bearer ${this.writeKey}` } : {};
|
|
939
969
|
}
|
|
970
|
+
requestHeaders() {
|
|
971
|
+
return { ...this.authHeaders(), ...projectIdHeaders(this.projectId) };
|
|
972
|
+
}
|
|
940
973
|
startSpan(args) {
|
|
941
974
|
var _a, _b;
|
|
942
975
|
const ids = createSpanIds(args.parent);
|
|
@@ -1068,7 +1101,7 @@ var TraceShipper = class {
|
|
|
1068
1101
|
endpoint: url
|
|
1069
1102
|
});
|
|
1070
1103
|
}
|
|
1071
|
-
const p = postJson(url, body, this.
|
|
1104
|
+
const p = postJson(url, body, this.requestHeaders(), opts);
|
|
1072
1105
|
this.inFlight.add(p);
|
|
1073
1106
|
try {
|
|
1074
1107
|
try {
|
|
@@ -1255,7 +1288,7 @@ globalThis.RAINDROP_ASYNC_LOCAL_STORAGE = async_hooks.AsyncLocalStorage;
|
|
|
1255
1288
|
// package.json
|
|
1256
1289
|
var package_default = {
|
|
1257
1290
|
name: "@raindrop-ai/ai-sdk",
|
|
1258
|
-
version: "0.0.
|
|
1291
|
+
version: "0.0.36"};
|
|
1259
1292
|
|
|
1260
1293
|
// src/internal/version.ts
|
|
1261
1294
|
var libraryName = package_default.name;
|
|
@@ -2168,10 +2201,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2168
2201
|
};
|
|
2169
2202
|
/** Flush and stop the background flush timers. */
|
|
2170
2203
|
this.shutdown = async () => {
|
|
2171
|
-
await Promise.all([
|
|
2172
|
-
this.eventShipper.shutdown(),
|
|
2173
|
-
this.traceShipper.shutdown()
|
|
2174
|
-
]);
|
|
2204
|
+
await Promise.all([this.eventShipper.shutdown(), this.traceShipper.shutdown()]);
|
|
2175
2205
|
};
|
|
2176
2206
|
// ── onStart ─────────────────────────────────────────────────────────────
|
|
2177
2207
|
this.onStart = (event) => {
|
|
@@ -2190,12 +2220,9 @@ var RaindropTelemetryIntegration = class {
|
|
|
2190
2220
|
const explicitEventId = callMeta.eventId && !eventIdGenerated ? callMeta.eventId : void 0;
|
|
2191
2221
|
const eventId = (_d = (_c = (_b = explicitEventId != null ? explicitEventId : (_a = this.defaultContext) == null ? void 0 : _a.eventId) != null ? _b : inherited == null ? void 0 : inherited.eventId) != null ? _c : callMeta.eventId) != null ? _d : randomUUID();
|
|
2192
2222
|
const inheritedParent = inherited && inherited.eventId === eventId ? { traceIdB64: inherited.traceIdB64, spanIdB64: inherited.spanIdB64 } : void 0;
|
|
2193
|
-
const { operationName, resourceName } = opName(
|
|
2194
|
-
event.operationId,
|
|
2195
|
-
functionId
|
|
2196
|
-
);
|
|
2223
|
+
const { operationName, resourceName } = opName(event.operationId, functionId);
|
|
2197
2224
|
const parentToolContext = !isEmbed && this.subagentWrapping ? getCurrentParentToolContext() : void 0;
|
|
2198
|
-
const metadataSubagentName = !isEmbed && this.subagentWrapping && parentToolContext === void 0 ? typeof (metadata == null ? void 0 : metadata["ash.subagent.name"]) === "string" ? metadata["ash.subagent.name"] : void 0 : void 0;
|
|
2225
|
+
const metadataSubagentName = !isEmbed && this.subagentWrapping && parentToolContext === void 0 ? typeof (metadata == null ? void 0 : metadata["eve.subagent.name"]) === "string" ? metadata["eve.subagent.name"] : typeof (metadata == null ? void 0 : metadata["ash.subagent.name"]) === "string" ? metadata["ash.subagent.name"] : void 0 : void 0;
|
|
2199
2226
|
const subagentName = (_e = parentToolContext == null ? void 0 : parentToolContext.toolName) != null ? _e : metadataSubagentName;
|
|
2200
2227
|
let subagentToolCallSpan;
|
|
2201
2228
|
let rootParentOverride;
|
|
@@ -2247,12 +2274,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2247
2274
|
})
|
|
2248
2275
|
)
|
|
2249
2276
|
] : [];
|
|
2250
|
-
const embedAttrs = isEmbed && recordInputs ? event.operationId === "ai.embedMany" ? [
|
|
2251
|
-
attrString(
|
|
2252
|
-
"ai.values",
|
|
2253
|
-
safeJsonWithUint8(event.value)
|
|
2254
|
-
)
|
|
2255
|
-
] : [attrString("ai.value", safeJsonWithUint8(event.value))] : [];
|
|
2277
|
+
const embedAttrs = isEmbed && recordInputs ? event.operationId === "ai.embedMany" ? [attrString("ai.values", safeJsonWithUint8(event.value))] : [attrString("ai.value", safeJsonWithUint8(event.value))] : [];
|
|
2256
2278
|
rootSpan = this.traceShipper.startSpan({
|
|
2257
2279
|
name: event.operationId,
|
|
2258
2280
|
parent: rootParentOverride != null ? rootParentOverride : inheritedParent,
|
|
@@ -2306,19 +2328,11 @@ var RaindropTelemetryIntegration = class {
|
|
|
2306
2328
|
if (!(state == null ? void 0 : state.rootSpan) || !state.rootParent) return;
|
|
2307
2329
|
const isStream = state.operationId === "ai.streamText" || state.operationId === "ai.streamObject";
|
|
2308
2330
|
const stepOperationId = isStream ? `${state.operationId}.doStream` : `${state.operationId}.doGenerate`;
|
|
2309
|
-
const { operationName, resourceName } = opName(
|
|
2310
|
-
stepOperationId,
|
|
2311
|
-
state.functionId
|
|
2312
|
-
);
|
|
2331
|
+
const { operationName, resourceName } = opName(stepOperationId, state.functionId);
|
|
2313
2332
|
const inputAttrs = [];
|
|
2314
2333
|
if (state.recordInputs) {
|
|
2315
2334
|
if (event.promptMessages) {
|
|
2316
|
-
inputAttrs.push(
|
|
2317
|
-
attrString(
|
|
2318
|
-
"ai.prompt.messages",
|
|
2319
|
-
safeJsonWithUint8(event.promptMessages)
|
|
2320
|
-
)
|
|
2321
|
-
);
|
|
2335
|
+
inputAttrs.push(attrString("ai.prompt.messages", safeJsonWithUint8(event.promptMessages)));
|
|
2322
2336
|
}
|
|
2323
2337
|
if (event.stepTools) {
|
|
2324
2338
|
inputAttrs.push(
|
|
@@ -2333,10 +2347,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2333
2347
|
}
|
|
2334
2348
|
if (event.stepToolChoice != null) {
|
|
2335
2349
|
inputAttrs.push(
|
|
2336
|
-
attrString(
|
|
2337
|
-
"ai.prompt.toolChoice",
|
|
2338
|
-
safeJsonWithUint8(event.stepToolChoice)
|
|
2339
|
-
)
|
|
2350
|
+
attrString("ai.prompt.toolChoice", safeJsonWithUint8(event.stepToolChoice))
|
|
2340
2351
|
);
|
|
2341
2352
|
}
|
|
2342
2353
|
}
|
|
@@ -2471,16 +2482,8 @@ var RaindropTelemetryIntegration = class {
|
|
|
2471
2482
|
this.onEmbedStart = (event) => {
|
|
2472
2483
|
const state = this.getState(event.callId);
|
|
2473
2484
|
if (!(state == null ? void 0 : state.rootSpan) || !state.rootParent) return;
|
|
2474
|
-
const { operationName, resourceName } = opName(
|
|
2475
|
-
|
|
2476
|
-
state.functionId
|
|
2477
|
-
);
|
|
2478
|
-
const inputAttrs = state.recordInputs ? [
|
|
2479
|
-
attrString(
|
|
2480
|
-
"ai.values",
|
|
2481
|
-
safeJsonWithUint8(event.values)
|
|
2482
|
-
)
|
|
2483
|
-
] : [];
|
|
2485
|
+
const { operationName, resourceName } = opName(event.operationId, state.functionId);
|
|
2486
|
+
const inputAttrs = state.recordInputs ? [attrString("ai.values", safeJsonWithUint8(event.values))] : [];
|
|
2484
2487
|
const embedSpan = this.traceShipper.startSpan({
|
|
2485
2488
|
name: event.operationId,
|
|
2486
2489
|
parent: state.rootParent,
|
|
@@ -2504,12 +2507,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2504
2507
|
if (!embedSpan) return;
|
|
2505
2508
|
const outputAttrs = [];
|
|
2506
2509
|
if (state.recordOutputs) {
|
|
2507
|
-
outputAttrs.push(
|
|
2508
|
-
attrString(
|
|
2509
|
-
"ai.embeddings",
|
|
2510
|
-
safeJsonWithUint8(event.embeddings)
|
|
2511
|
-
)
|
|
2512
|
-
);
|
|
2510
|
+
outputAttrs.push(attrString("ai.embeddings", safeJsonWithUint8(event.embeddings)));
|
|
2513
2511
|
}
|
|
2514
2512
|
if (((_a = event.usage) == null ? void 0 : _a.tokens) != null) {
|
|
2515
2513
|
outputAttrs.push(attrInt("ai.usage.tokens", event.usage.tokens));
|
|
@@ -2727,10 +2725,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2727
2725
|
toolExecutionStart(event) {
|
|
2728
2726
|
const { toolCall } = event;
|
|
2729
2727
|
const priorParent = getCurrentParentToolContext();
|
|
2730
|
-
this.priorParentContexts.set(
|
|
2731
|
-
toolCall.toolCallId,
|
|
2732
|
-
priorParent != null ? priorParent : null
|
|
2733
|
-
);
|
|
2728
|
+
this.priorParentContexts.set(toolCall.toolCallId, priorParent != null ? priorParent : null);
|
|
2734
2729
|
enterParentToolContext({
|
|
2735
2730
|
parentCallId: event.callId,
|
|
2736
2731
|
toolCallId: toolCall.toolCallId,
|
|
@@ -2739,10 +2734,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2739
2734
|
const state = this.getState(event.callId);
|
|
2740
2735
|
state == null ? void 0 : state.parentContextToolCallIds.add(toolCall.toolCallId);
|
|
2741
2736
|
if (!(state == null ? void 0 : state.stepParent)) return;
|
|
2742
|
-
const { operationName, resourceName } = opName(
|
|
2743
|
-
"ai.toolCall",
|
|
2744
|
-
state.functionId
|
|
2745
|
-
);
|
|
2737
|
+
const { operationName, resourceName } = opName("ai.toolCall", state.functionId);
|
|
2746
2738
|
const inputAttrs = state.recordInputs ? [attrString("ai.toolCall.args", safeJsonWithUint8(toolCall.input))] : [];
|
|
2747
2739
|
const toolSpan = this.traceShipper.startSpan({
|
|
2748
2740
|
name: "ai.toolCall",
|
|
@@ -2819,10 +2811,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2819
2811
|
}
|
|
2820
2812
|
}
|
|
2821
2813
|
for (const call of providerToolCalls) {
|
|
2822
|
-
const { operationName, resourceName } = opName(
|
|
2823
|
-
"ai.toolCall",
|
|
2824
|
-
state.functionId
|
|
2825
|
-
);
|
|
2814
|
+
const { operationName, resourceName } = opName("ai.toolCall", state.functionId);
|
|
2826
2815
|
const inputAttrs = state.recordInputs ? [attrString("ai.toolCall.args", safeJsonWithUint8(call.input))] : [];
|
|
2827
2816
|
const toolSpan = this.traceShipper.startSpan({
|
|
2828
2817
|
name: "ai.toolCall",
|
|
@@ -2845,12 +2834,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2845
2834
|
if ((resultPart == null ? void 0 : resultPart.type) === "tool-error") {
|
|
2846
2835
|
this.traceShipper.endSpan(toolSpan, { error: resultPart.error });
|
|
2847
2836
|
} else {
|
|
2848
|
-
const outputAttrs = state.recordOutputs && resultPart && "output" in resultPart ? [
|
|
2849
|
-
attrString(
|
|
2850
|
-
"ai.toolCall.result",
|
|
2851
|
-
safeJsonWithUint8(resultPart.output)
|
|
2852
|
-
)
|
|
2853
|
-
] : [];
|
|
2837
|
+
const outputAttrs = state.recordOutputs && resultPart && "output" in resultPart ? [attrString("ai.toolCall.result", safeJsonWithUint8(resultPart.output))] : [];
|
|
2854
2838
|
this.traceShipper.endSpan(toolSpan, { attributes: outputAttrs });
|
|
2855
2839
|
}
|
|
2856
2840
|
this.emitLive(state, "tool_result", call.toolName);
|
|
@@ -2900,9 +2884,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2900
2884
|
attrInt("ai.usage.cachedInputTokens", usage.cachedInputTokens)
|
|
2901
2885
|
);
|
|
2902
2886
|
}
|
|
2903
|
-
outputAttrs.push(
|
|
2904
|
-
attrInt("ai.toolCall.count", state.toolCallCount)
|
|
2905
|
-
);
|
|
2887
|
+
outputAttrs.push(attrInt("ai.toolCall.count", state.toolCallCount));
|
|
2906
2888
|
this.traceShipper.endSpan(state.rootSpan, { attributes: outputAttrs });
|
|
2907
2889
|
}
|
|
2908
2890
|
this.finalizeGenerateEvent(
|
|
@@ -2955,13 +2937,9 @@ var RaindropTelemetryIntegration = class {
|
|
|
2955
2937
|
const isMany = state.operationId === "ai.embedMany";
|
|
2956
2938
|
if (state.recordOutputs) {
|
|
2957
2939
|
if (isMany) {
|
|
2958
|
-
outputAttrs.push(
|
|
2959
|
-
attrString("ai.embeddings", safeJsonWithUint8(event.embedding))
|
|
2960
|
-
);
|
|
2940
|
+
outputAttrs.push(attrString("ai.embeddings", safeJsonWithUint8(event.embedding)));
|
|
2961
2941
|
} else {
|
|
2962
|
-
outputAttrs.push(
|
|
2963
|
-
attrString("ai.embedding", safeJsonWithUint8(event.embedding))
|
|
2964
|
-
);
|
|
2942
|
+
outputAttrs.push(attrString("ai.embedding", safeJsonWithUint8(event.embedding)));
|
|
2965
2943
|
}
|
|
2966
2944
|
}
|
|
2967
2945
|
if (((_a = event.usage) == null ? void 0 : _a.tokens) != null) {
|
|
@@ -5128,6 +5106,7 @@ function createRaindropAISDK(opts) {
|
|
|
5128
5106
|
enabled: eventsEnabled,
|
|
5129
5107
|
debug: ((_c = opts.events) == null ? void 0 : _c.debug) === true || envDebug,
|
|
5130
5108
|
partialFlushMs: (_d = opts.events) == null ? void 0 : _d.partialFlushMs,
|
|
5109
|
+
projectId: opts.projectId,
|
|
5131
5110
|
localDebuggerUrl
|
|
5132
5111
|
});
|
|
5133
5112
|
const traceShipper = new TraceShipper2({
|
|
@@ -5139,6 +5118,7 @@ function createRaindropAISDK(opts) {
|
|
|
5139
5118
|
flushIntervalMs: (_g = opts.traces) == null ? void 0 : _g.flushIntervalMs,
|
|
5140
5119
|
maxBatchSize: (_h = opts.traces) == null ? void 0 : _h.maxBatchSize,
|
|
5141
5120
|
maxQueueSize: (_i = opts.traces) == null ? void 0 : _i.maxQueueSize,
|
|
5121
|
+
projectId: opts.projectId,
|
|
5142
5122
|
localDebuggerUrl,
|
|
5143
5123
|
transformSpan: (_j = opts.traces) == null ? void 0 : _j.transformSpan,
|
|
5144
5124
|
disableDefaultRedaction: (_k = opts.traces) == null ? void 0 : _k.disableDefaultRedaction
|
package/dist/index.node.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DEFAULT_MAX_TEXT_FIELD_CHARS, DEFAULT_REDACT_ATTRIBUTE_KEYS, DEFAULT_SECRET_KEY_NAMES, REDACTED_PLACEHOLDER, RaindropTelemetryIntegration, TRUNCATION_MARKER, _resetParentToolContextStorage, _resetRaindropCallMetadataStorage, _resetWarnedMissingUserId, boundedStringify, capText, clearParentToolContext, createRaindropAISDK, currentSpan, defaultTransformSpan, enterParentToolContext, eventMetadata, eventMetadataFromChatRequest, getContextManager, getCurrentParentToolContext, getCurrentRaindropCallMetadata, raindrop, readRaindropCallMetadataFromArgs, redactJsonAttributeValue, redactSecretsInObject, runWithParentToolContext, runWithRaindropCallMetadata, withCurrent } from './chunk-
|
|
1
|
+
export { DEFAULT_MAX_TEXT_FIELD_CHARS, DEFAULT_REDACT_ATTRIBUTE_KEYS, DEFAULT_SECRET_KEY_NAMES, REDACTED_PLACEHOLDER, RaindropTelemetryIntegration, TRUNCATION_MARKER, _resetParentToolContextStorage, _resetRaindropCallMetadataStorage, _resetWarnedMissingUserId, boundedStringify, capText, clearParentToolContext, createRaindropAISDK, currentSpan, defaultTransformSpan, enterParentToolContext, eventMetadata, eventMetadataFromChatRequest, getContextManager, getCurrentParentToolContext, getCurrentRaindropCallMetadata, raindrop, readRaindropCallMetadataFromArgs, redactJsonAttributeValue, redactSecretsInObject, runWithParentToolContext, runWithRaindropCallMetadata, withCurrent } from './chunk-NHSRCEYN.mjs';
|
|
2
2
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
3
3
|
|
|
4
4
|
globalThis.RAINDROP_ASYNC_LOCAL_STORAGE = AsyncLocalStorage;
|
package/dist/index.workers.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AISDKChatRequestLike, a as AISDKChatRequestMessageLike, b as AISDKMessage, c as AgentCallMetadata, d as AgentWithMetadata, e as Attachment, B as BuildEventPatch, C as ContextManager, f as ContextSpan, g as CreateSpanArgs, D as DEFAULT_MAX_TEXT_FIELD_CHARS, h as DEFAULT_REDACT_ATTRIBUTE_KEYS, i as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, j as EventBuilder, k as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, l as OtlpSpan, P as ParentToolContext, R as REDACTED_PLACEHOLDER, m as RaindropAISDKClient, n as RaindropAISDKContext, o as RaindropAISDKOptions, p as RaindropCallMetadata, q as RaindropTelemetryIntegration, r as RaindropTelemetryIntegrationOptions, s as RaindropTelemetryOptions, S as SelfDiagnosticsOptions, t as SelfDiagnosticsSignalDefinition, u as SelfDiagnosticsSignalDefinitions, v as SelfDiagnosticsTool, w as SelfDiagnosticsToolInput, x as SelfDiagnosticsToolOptions, y as SelfDiagnosticsToolResult, z as StartSpanArgs, T as TRUNCATION_MARKER, F as TraceSpan, G as TransformSpanHook, W as WrapAISDKOptions, H as WrappedAI, J as WrappedAISDK, _ as _resetParentToolContextStorage, K as _resetRaindropCallMetadataStorage, L as _resetWarnedMissingUserId, M as boundedStringify, N as capText, Q as clearParentToolContext, U as createRaindropAISDK, V as currentSpan, X as defaultTransformSpan, Y as enterParentToolContext, Z as eventMetadata, $ as eventMetadataFromChatRequest, a0 as getContextManager, a1 as getCurrentParentToolContext, a2 as getCurrentRaindropCallMetadata, a3 as raindrop, a4 as readRaindropCallMetadataFromArgs, a5 as redactJsonAttributeValue, a6 as redactSecretsInObject, a7 as runWithParentToolContext, a8 as runWithRaindropCallMetadata, a9 as withCurrent } from './index-
|
|
1
|
+
export { A as AISDKChatRequestLike, a as AISDKChatRequestMessageLike, b as AISDKMessage, c as AgentCallMetadata, d as AgentWithMetadata, e as Attachment, B as BuildEventPatch, C as ContextManager, f as ContextSpan, g as CreateSpanArgs, D as DEFAULT_MAX_TEXT_FIELD_CHARS, h as DEFAULT_REDACT_ATTRIBUTE_KEYS, i as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, j as EventBuilder, k as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, l as OtlpSpan, P as ParentToolContext, R as REDACTED_PLACEHOLDER, m as RaindropAISDKClient, n as RaindropAISDKContext, o as RaindropAISDKOptions, p as RaindropCallMetadata, q as RaindropTelemetryIntegration, r as RaindropTelemetryIntegrationOptions, s as RaindropTelemetryOptions, S as SelfDiagnosticsOptions, t as SelfDiagnosticsSignalDefinition, u as SelfDiagnosticsSignalDefinitions, v as SelfDiagnosticsTool, w as SelfDiagnosticsToolInput, x as SelfDiagnosticsToolOptions, y as SelfDiagnosticsToolResult, z as StartSpanArgs, T as TRUNCATION_MARKER, F as TraceSpan, G as TransformSpanHook, W as WrapAISDKOptions, H as WrappedAI, J as WrappedAISDK, _ as _resetParentToolContextStorage, K as _resetRaindropCallMetadataStorage, L as _resetWarnedMissingUserId, M as boundedStringify, N as capText, Q as clearParentToolContext, U as createRaindropAISDK, V as currentSpan, X as defaultTransformSpan, Y as enterParentToolContext, Z as eventMetadata, $ as eventMetadataFromChatRequest, a0 as getContextManager, a1 as getCurrentParentToolContext, a2 as getCurrentRaindropCallMetadata, a3 as raindrop, a4 as readRaindropCallMetadataFromArgs, a5 as redactJsonAttributeValue, a6 as redactSecretsInObject, a7 as runWithParentToolContext, a8 as runWithRaindropCallMetadata, a9 as withCurrent } from './index-Crm3oDAG.mjs';
|
|
2
2
|
|
|
3
3
|
declare global {
|
|
4
4
|
var RAINDROP_ASYNC_LOCAL_STORAGE: (new <T>() => {
|
package/dist/index.workers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AISDKChatRequestLike, a as AISDKChatRequestMessageLike, b as AISDKMessage, c as AgentCallMetadata, d as AgentWithMetadata, e as Attachment, B as BuildEventPatch, C as ContextManager, f as ContextSpan, g as CreateSpanArgs, D as DEFAULT_MAX_TEXT_FIELD_CHARS, h as DEFAULT_REDACT_ATTRIBUTE_KEYS, i as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, j as EventBuilder, k as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, l as OtlpSpan, P as ParentToolContext, R as REDACTED_PLACEHOLDER, m as RaindropAISDKClient, n as RaindropAISDKContext, o as RaindropAISDKOptions, p as RaindropCallMetadata, q as RaindropTelemetryIntegration, r as RaindropTelemetryIntegrationOptions, s as RaindropTelemetryOptions, S as SelfDiagnosticsOptions, t as SelfDiagnosticsSignalDefinition, u as SelfDiagnosticsSignalDefinitions, v as SelfDiagnosticsTool, w as SelfDiagnosticsToolInput, x as SelfDiagnosticsToolOptions, y as SelfDiagnosticsToolResult, z as StartSpanArgs, T as TRUNCATION_MARKER, F as TraceSpan, G as TransformSpanHook, W as WrapAISDKOptions, H as WrappedAI, J as WrappedAISDK, _ as _resetParentToolContextStorage, K as _resetRaindropCallMetadataStorage, L as _resetWarnedMissingUserId, M as boundedStringify, N as capText, Q as clearParentToolContext, U as createRaindropAISDK, V as currentSpan, X as defaultTransformSpan, Y as enterParentToolContext, Z as eventMetadata, $ as eventMetadataFromChatRequest, a0 as getContextManager, a1 as getCurrentParentToolContext, a2 as getCurrentRaindropCallMetadata, a3 as raindrop, a4 as readRaindropCallMetadataFromArgs, a5 as redactJsonAttributeValue, a6 as redactSecretsInObject, a7 as runWithParentToolContext, a8 as runWithRaindropCallMetadata, a9 as withCurrent } from './index-
|
|
1
|
+
export { A as AISDKChatRequestLike, a as AISDKChatRequestMessageLike, b as AISDKMessage, c as AgentCallMetadata, d as AgentWithMetadata, e as Attachment, B as BuildEventPatch, C as ContextManager, f as ContextSpan, g as CreateSpanArgs, D as DEFAULT_MAX_TEXT_FIELD_CHARS, h as DEFAULT_REDACT_ATTRIBUTE_KEYS, i as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, j as EventBuilder, k as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, l as OtlpSpan, P as ParentToolContext, R as REDACTED_PLACEHOLDER, m as RaindropAISDKClient, n as RaindropAISDKContext, o as RaindropAISDKOptions, p as RaindropCallMetadata, q as RaindropTelemetryIntegration, r as RaindropTelemetryIntegrationOptions, s as RaindropTelemetryOptions, S as SelfDiagnosticsOptions, t as SelfDiagnosticsSignalDefinition, u as SelfDiagnosticsSignalDefinitions, v as SelfDiagnosticsTool, w as SelfDiagnosticsToolInput, x as SelfDiagnosticsToolOptions, y as SelfDiagnosticsToolResult, z as StartSpanArgs, T as TRUNCATION_MARKER, F as TraceSpan, G as TransformSpanHook, W as WrapAISDKOptions, H as WrappedAI, J as WrappedAISDK, _ as _resetParentToolContextStorage, K as _resetRaindropCallMetadataStorage, L as _resetWarnedMissingUserId, M as boundedStringify, N as capText, Q as clearParentToolContext, U as createRaindropAISDK, V as currentSpan, X as defaultTransformSpan, Y as enterParentToolContext, Z as eventMetadata, $ as eventMetadataFromChatRequest, a0 as getContextManager, a1 as getCurrentParentToolContext, a2 as getCurrentRaindropCallMetadata, a3 as raindrop, a4 as readRaindropCallMetadataFromArgs, a5 as redactJsonAttributeValue, a6 as redactSecretsInObject, a7 as runWithParentToolContext, a8 as runWithRaindropCallMetadata, a9 as withCurrent } from './index-Crm3oDAG.js';
|
|
2
2
|
|
|
3
3
|
declare global {
|
|
4
4
|
var RAINDROP_ASYNC_LOCAL_STORAGE: (new <T>() => {
|
package/dist/index.workers.js
CHANGED
|
@@ -4,7 +4,7 @@ var async_hooks = require('async_hooks');
|
|
|
4
4
|
|
|
5
5
|
// src/index.workers.ts
|
|
6
6
|
|
|
7
|
-
// ../core/dist/chunk-
|
|
7
|
+
// ../core/dist/chunk-SK6EJEO7.js
|
|
8
8
|
function getCrypto() {
|
|
9
9
|
const c = globalThis.crypto;
|
|
10
10
|
return c;
|
|
@@ -401,6 +401,25 @@ function sendLocalDebuggerLiveEvent(event, options = {}) {
|
|
|
401
401
|
).catch(() => {
|
|
402
402
|
});
|
|
403
403
|
}
|
|
404
|
+
var PROJECT_ID_HEADER = "X-Raindrop-Project-Id";
|
|
405
|
+
var PROJECT_ID_SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
406
|
+
function isValidProjectIdSlug(value) {
|
|
407
|
+
return PROJECT_ID_SLUG_PATTERN.test(value);
|
|
408
|
+
}
|
|
409
|
+
function normalizeProjectId(raw, opts) {
|
|
410
|
+
if (typeof raw !== "string") return void 0;
|
|
411
|
+
const trimmed = raw.trim();
|
|
412
|
+
if (!trimmed) return void 0;
|
|
413
|
+
if (!isValidProjectIdSlug(trimmed) && opts.debug) {
|
|
414
|
+
console.warn(
|
|
415
|
+
`${opts.prefix} projectId "${trimmed}" does not match slug ${PROJECT_ID_SLUG_PATTERN.source}; sending anyway \u2014 backend may reject with HTTP 400`
|
|
416
|
+
);
|
|
417
|
+
}
|
|
418
|
+
return trimmed;
|
|
419
|
+
}
|
|
420
|
+
function projectIdHeaders(projectId) {
|
|
421
|
+
return projectId ? { [PROJECT_ID_HEADER]: projectId } : {};
|
|
422
|
+
}
|
|
404
423
|
var SHUTDOWN_DEADLINE_MS = 1e4;
|
|
405
424
|
var POST_SHUTDOWN_TIMEOUT_MS = 5e3;
|
|
406
425
|
function mergePatches(target, source) {
|
|
@@ -435,6 +454,10 @@ var EventShipper = class {
|
|
|
435
454
|
if (this.debug && this.localDebuggerUrl) {
|
|
436
455
|
console.log(`${this.prefix} Local debugger mirroring: ${this.localDebuggerUrl}`);
|
|
437
456
|
}
|
|
457
|
+
this.projectId = normalizeProjectId(opts.projectId, {
|
|
458
|
+
debug: this.debug,
|
|
459
|
+
prefix: this.prefix
|
|
460
|
+
});
|
|
438
461
|
const isNode = typeof process !== "undefined" && typeof process.version === "string";
|
|
439
462
|
this.context = {
|
|
440
463
|
library: {
|
|
@@ -453,6 +476,9 @@ var EventShipper = class {
|
|
|
453
476
|
authHeaders() {
|
|
454
477
|
return this.writeKey ? { Authorization: `Bearer ${this.writeKey}` } : {};
|
|
455
478
|
}
|
|
479
|
+
requestHeaders() {
|
|
480
|
+
return { ...this.authHeaders(), ...projectIdHeaders(this.projectId) };
|
|
481
|
+
}
|
|
456
482
|
/**
|
|
457
483
|
* Build the retry/timeout options for one POST, honoring the shutdown
|
|
458
484
|
* deadline. Returns `null` when the shutdown drain window is exhausted —
|
|
@@ -582,7 +608,7 @@ var EventShipper = class {
|
|
|
582
608
|
return;
|
|
583
609
|
}
|
|
584
610
|
try {
|
|
585
|
-
await postJson(url, body, this.
|
|
611
|
+
await postJson(url, body, this.requestHeaders(), opts);
|
|
586
612
|
} catch (err) {
|
|
587
613
|
const msg = err instanceof Error ? err.message : String(err);
|
|
588
614
|
rateLimitedLog(
|
|
@@ -618,7 +644,7 @@ var EventShipper = class {
|
|
|
618
644
|
return;
|
|
619
645
|
}
|
|
620
646
|
try {
|
|
621
|
-
await postJson(url, body, this.
|
|
647
|
+
await postJson(url, body, this.requestHeaders(), opts);
|
|
622
648
|
} catch (err) {
|
|
623
649
|
const msg = err instanceof Error ? err.message : String(err);
|
|
624
650
|
rateLimitedLog(
|
|
@@ -714,7 +740,7 @@ var EventShipper = class {
|
|
|
714
740
|
if (!isPending) this.sticky.delete(eventId);
|
|
715
741
|
return;
|
|
716
742
|
}
|
|
717
|
-
const p = postJson(url, payload, this.
|
|
743
|
+
const p = postJson(url, payload, this.requestHeaders(), opts);
|
|
718
744
|
this.inFlight.add(p);
|
|
719
745
|
try {
|
|
720
746
|
try {
|
|
@@ -861,6 +887,10 @@ var TraceShipper = class {
|
|
|
861
887
|
if (this.debug && this.localDebuggerUrl) {
|
|
862
888
|
console.log(`${this.prefix} Local debugger mirroring: ${this.localDebuggerUrl}`);
|
|
863
889
|
}
|
|
890
|
+
this.projectId = normalizeProjectId(opts.projectId, {
|
|
891
|
+
debug: this.debug,
|
|
892
|
+
prefix: this.prefix
|
|
893
|
+
});
|
|
864
894
|
this.transformSpanHook = opts.transformSpan;
|
|
865
895
|
this.disableDefaultRedaction = opts.disableDefaultRedaction === true;
|
|
866
896
|
this.maxTextFieldCharsOpt = opts.maxTextFieldChars;
|
|
@@ -937,6 +967,9 @@ var TraceShipper = class {
|
|
|
937
967
|
authHeaders() {
|
|
938
968
|
return this.writeKey ? { Authorization: `Bearer ${this.writeKey}` } : {};
|
|
939
969
|
}
|
|
970
|
+
requestHeaders() {
|
|
971
|
+
return { ...this.authHeaders(), ...projectIdHeaders(this.projectId) };
|
|
972
|
+
}
|
|
940
973
|
startSpan(args) {
|
|
941
974
|
var _a, _b;
|
|
942
975
|
const ids = createSpanIds(args.parent);
|
|
@@ -1068,7 +1101,7 @@ var TraceShipper = class {
|
|
|
1068
1101
|
endpoint: url
|
|
1069
1102
|
});
|
|
1070
1103
|
}
|
|
1071
|
-
const p = postJson(url, body, this.
|
|
1104
|
+
const p = postJson(url, body, this.requestHeaders(), opts);
|
|
1072
1105
|
this.inFlight.add(p);
|
|
1073
1106
|
try {
|
|
1074
1107
|
try {
|
|
@@ -1255,7 +1288,7 @@ globalThis.RAINDROP_ASYNC_LOCAL_STORAGE = async_hooks.AsyncLocalStorage;
|
|
|
1255
1288
|
// package.json
|
|
1256
1289
|
var package_default = {
|
|
1257
1290
|
name: "@raindrop-ai/ai-sdk",
|
|
1258
|
-
version: "0.0.
|
|
1291
|
+
version: "0.0.36"};
|
|
1259
1292
|
|
|
1260
1293
|
// src/internal/version.ts
|
|
1261
1294
|
var libraryName = package_default.name;
|
|
@@ -2168,10 +2201,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2168
2201
|
};
|
|
2169
2202
|
/** Flush and stop the background flush timers. */
|
|
2170
2203
|
this.shutdown = async () => {
|
|
2171
|
-
await Promise.all([
|
|
2172
|
-
this.eventShipper.shutdown(),
|
|
2173
|
-
this.traceShipper.shutdown()
|
|
2174
|
-
]);
|
|
2204
|
+
await Promise.all([this.eventShipper.shutdown(), this.traceShipper.shutdown()]);
|
|
2175
2205
|
};
|
|
2176
2206
|
// ── onStart ─────────────────────────────────────────────────────────────
|
|
2177
2207
|
this.onStart = (event) => {
|
|
@@ -2190,12 +2220,9 @@ var RaindropTelemetryIntegration = class {
|
|
|
2190
2220
|
const explicitEventId = callMeta.eventId && !eventIdGenerated ? callMeta.eventId : void 0;
|
|
2191
2221
|
const eventId = (_d = (_c = (_b = explicitEventId != null ? explicitEventId : (_a = this.defaultContext) == null ? void 0 : _a.eventId) != null ? _b : inherited == null ? void 0 : inherited.eventId) != null ? _c : callMeta.eventId) != null ? _d : randomUUID();
|
|
2192
2222
|
const inheritedParent = inherited && inherited.eventId === eventId ? { traceIdB64: inherited.traceIdB64, spanIdB64: inherited.spanIdB64 } : void 0;
|
|
2193
|
-
const { operationName, resourceName } = opName(
|
|
2194
|
-
event.operationId,
|
|
2195
|
-
functionId
|
|
2196
|
-
);
|
|
2223
|
+
const { operationName, resourceName } = opName(event.operationId, functionId);
|
|
2197
2224
|
const parentToolContext = !isEmbed && this.subagentWrapping ? getCurrentParentToolContext() : void 0;
|
|
2198
|
-
const metadataSubagentName = !isEmbed && this.subagentWrapping && parentToolContext === void 0 ? typeof (metadata == null ? void 0 : metadata["ash.subagent.name"]) === "string" ? metadata["ash.subagent.name"] : void 0 : void 0;
|
|
2225
|
+
const metadataSubagentName = !isEmbed && this.subagentWrapping && parentToolContext === void 0 ? typeof (metadata == null ? void 0 : metadata["eve.subagent.name"]) === "string" ? metadata["eve.subagent.name"] : typeof (metadata == null ? void 0 : metadata["ash.subagent.name"]) === "string" ? metadata["ash.subagent.name"] : void 0 : void 0;
|
|
2199
2226
|
const subagentName = (_e = parentToolContext == null ? void 0 : parentToolContext.toolName) != null ? _e : metadataSubagentName;
|
|
2200
2227
|
let subagentToolCallSpan;
|
|
2201
2228
|
let rootParentOverride;
|
|
@@ -2247,12 +2274,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2247
2274
|
})
|
|
2248
2275
|
)
|
|
2249
2276
|
] : [];
|
|
2250
|
-
const embedAttrs = isEmbed && recordInputs ? event.operationId === "ai.embedMany" ? [
|
|
2251
|
-
attrString(
|
|
2252
|
-
"ai.values",
|
|
2253
|
-
safeJsonWithUint8(event.value)
|
|
2254
|
-
)
|
|
2255
|
-
] : [attrString("ai.value", safeJsonWithUint8(event.value))] : [];
|
|
2277
|
+
const embedAttrs = isEmbed && recordInputs ? event.operationId === "ai.embedMany" ? [attrString("ai.values", safeJsonWithUint8(event.value))] : [attrString("ai.value", safeJsonWithUint8(event.value))] : [];
|
|
2256
2278
|
rootSpan = this.traceShipper.startSpan({
|
|
2257
2279
|
name: event.operationId,
|
|
2258
2280
|
parent: rootParentOverride != null ? rootParentOverride : inheritedParent,
|
|
@@ -2306,19 +2328,11 @@ var RaindropTelemetryIntegration = class {
|
|
|
2306
2328
|
if (!(state == null ? void 0 : state.rootSpan) || !state.rootParent) return;
|
|
2307
2329
|
const isStream = state.operationId === "ai.streamText" || state.operationId === "ai.streamObject";
|
|
2308
2330
|
const stepOperationId = isStream ? `${state.operationId}.doStream` : `${state.operationId}.doGenerate`;
|
|
2309
|
-
const { operationName, resourceName } = opName(
|
|
2310
|
-
stepOperationId,
|
|
2311
|
-
state.functionId
|
|
2312
|
-
);
|
|
2331
|
+
const { operationName, resourceName } = opName(stepOperationId, state.functionId);
|
|
2313
2332
|
const inputAttrs = [];
|
|
2314
2333
|
if (state.recordInputs) {
|
|
2315
2334
|
if (event.promptMessages) {
|
|
2316
|
-
inputAttrs.push(
|
|
2317
|
-
attrString(
|
|
2318
|
-
"ai.prompt.messages",
|
|
2319
|
-
safeJsonWithUint8(event.promptMessages)
|
|
2320
|
-
)
|
|
2321
|
-
);
|
|
2335
|
+
inputAttrs.push(attrString("ai.prompt.messages", safeJsonWithUint8(event.promptMessages)));
|
|
2322
2336
|
}
|
|
2323
2337
|
if (event.stepTools) {
|
|
2324
2338
|
inputAttrs.push(
|
|
@@ -2333,10 +2347,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2333
2347
|
}
|
|
2334
2348
|
if (event.stepToolChoice != null) {
|
|
2335
2349
|
inputAttrs.push(
|
|
2336
|
-
attrString(
|
|
2337
|
-
"ai.prompt.toolChoice",
|
|
2338
|
-
safeJsonWithUint8(event.stepToolChoice)
|
|
2339
|
-
)
|
|
2350
|
+
attrString("ai.prompt.toolChoice", safeJsonWithUint8(event.stepToolChoice))
|
|
2340
2351
|
);
|
|
2341
2352
|
}
|
|
2342
2353
|
}
|
|
@@ -2471,16 +2482,8 @@ var RaindropTelemetryIntegration = class {
|
|
|
2471
2482
|
this.onEmbedStart = (event) => {
|
|
2472
2483
|
const state = this.getState(event.callId);
|
|
2473
2484
|
if (!(state == null ? void 0 : state.rootSpan) || !state.rootParent) return;
|
|
2474
|
-
const { operationName, resourceName } = opName(
|
|
2475
|
-
|
|
2476
|
-
state.functionId
|
|
2477
|
-
);
|
|
2478
|
-
const inputAttrs = state.recordInputs ? [
|
|
2479
|
-
attrString(
|
|
2480
|
-
"ai.values",
|
|
2481
|
-
safeJsonWithUint8(event.values)
|
|
2482
|
-
)
|
|
2483
|
-
] : [];
|
|
2485
|
+
const { operationName, resourceName } = opName(event.operationId, state.functionId);
|
|
2486
|
+
const inputAttrs = state.recordInputs ? [attrString("ai.values", safeJsonWithUint8(event.values))] : [];
|
|
2484
2487
|
const embedSpan = this.traceShipper.startSpan({
|
|
2485
2488
|
name: event.operationId,
|
|
2486
2489
|
parent: state.rootParent,
|
|
@@ -2504,12 +2507,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2504
2507
|
if (!embedSpan) return;
|
|
2505
2508
|
const outputAttrs = [];
|
|
2506
2509
|
if (state.recordOutputs) {
|
|
2507
|
-
outputAttrs.push(
|
|
2508
|
-
attrString(
|
|
2509
|
-
"ai.embeddings",
|
|
2510
|
-
safeJsonWithUint8(event.embeddings)
|
|
2511
|
-
)
|
|
2512
|
-
);
|
|
2510
|
+
outputAttrs.push(attrString("ai.embeddings", safeJsonWithUint8(event.embeddings)));
|
|
2513
2511
|
}
|
|
2514
2512
|
if (((_a = event.usage) == null ? void 0 : _a.tokens) != null) {
|
|
2515
2513
|
outputAttrs.push(attrInt("ai.usage.tokens", event.usage.tokens));
|
|
@@ -2727,10 +2725,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2727
2725
|
toolExecutionStart(event) {
|
|
2728
2726
|
const { toolCall } = event;
|
|
2729
2727
|
const priorParent = getCurrentParentToolContext();
|
|
2730
|
-
this.priorParentContexts.set(
|
|
2731
|
-
toolCall.toolCallId,
|
|
2732
|
-
priorParent != null ? priorParent : null
|
|
2733
|
-
);
|
|
2728
|
+
this.priorParentContexts.set(toolCall.toolCallId, priorParent != null ? priorParent : null);
|
|
2734
2729
|
enterParentToolContext({
|
|
2735
2730
|
parentCallId: event.callId,
|
|
2736
2731
|
toolCallId: toolCall.toolCallId,
|
|
@@ -2739,10 +2734,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2739
2734
|
const state = this.getState(event.callId);
|
|
2740
2735
|
state == null ? void 0 : state.parentContextToolCallIds.add(toolCall.toolCallId);
|
|
2741
2736
|
if (!(state == null ? void 0 : state.stepParent)) return;
|
|
2742
|
-
const { operationName, resourceName } = opName(
|
|
2743
|
-
"ai.toolCall",
|
|
2744
|
-
state.functionId
|
|
2745
|
-
);
|
|
2737
|
+
const { operationName, resourceName } = opName("ai.toolCall", state.functionId);
|
|
2746
2738
|
const inputAttrs = state.recordInputs ? [attrString("ai.toolCall.args", safeJsonWithUint8(toolCall.input))] : [];
|
|
2747
2739
|
const toolSpan = this.traceShipper.startSpan({
|
|
2748
2740
|
name: "ai.toolCall",
|
|
@@ -2819,10 +2811,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2819
2811
|
}
|
|
2820
2812
|
}
|
|
2821
2813
|
for (const call of providerToolCalls) {
|
|
2822
|
-
const { operationName, resourceName } = opName(
|
|
2823
|
-
"ai.toolCall",
|
|
2824
|
-
state.functionId
|
|
2825
|
-
);
|
|
2814
|
+
const { operationName, resourceName } = opName("ai.toolCall", state.functionId);
|
|
2826
2815
|
const inputAttrs = state.recordInputs ? [attrString("ai.toolCall.args", safeJsonWithUint8(call.input))] : [];
|
|
2827
2816
|
const toolSpan = this.traceShipper.startSpan({
|
|
2828
2817
|
name: "ai.toolCall",
|
|
@@ -2845,12 +2834,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2845
2834
|
if ((resultPart == null ? void 0 : resultPart.type) === "tool-error") {
|
|
2846
2835
|
this.traceShipper.endSpan(toolSpan, { error: resultPart.error });
|
|
2847
2836
|
} else {
|
|
2848
|
-
const outputAttrs = state.recordOutputs && resultPart && "output" in resultPart ? [
|
|
2849
|
-
attrString(
|
|
2850
|
-
"ai.toolCall.result",
|
|
2851
|
-
safeJsonWithUint8(resultPart.output)
|
|
2852
|
-
)
|
|
2853
|
-
] : [];
|
|
2837
|
+
const outputAttrs = state.recordOutputs && resultPart && "output" in resultPart ? [attrString("ai.toolCall.result", safeJsonWithUint8(resultPart.output))] : [];
|
|
2854
2838
|
this.traceShipper.endSpan(toolSpan, { attributes: outputAttrs });
|
|
2855
2839
|
}
|
|
2856
2840
|
this.emitLive(state, "tool_result", call.toolName);
|
|
@@ -2900,9 +2884,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2900
2884
|
attrInt("ai.usage.cachedInputTokens", usage.cachedInputTokens)
|
|
2901
2885
|
);
|
|
2902
2886
|
}
|
|
2903
|
-
outputAttrs.push(
|
|
2904
|
-
attrInt("ai.toolCall.count", state.toolCallCount)
|
|
2905
|
-
);
|
|
2887
|
+
outputAttrs.push(attrInt("ai.toolCall.count", state.toolCallCount));
|
|
2906
2888
|
this.traceShipper.endSpan(state.rootSpan, { attributes: outputAttrs });
|
|
2907
2889
|
}
|
|
2908
2890
|
this.finalizeGenerateEvent(
|
|
@@ -2955,13 +2937,9 @@ var RaindropTelemetryIntegration = class {
|
|
|
2955
2937
|
const isMany = state.operationId === "ai.embedMany";
|
|
2956
2938
|
if (state.recordOutputs) {
|
|
2957
2939
|
if (isMany) {
|
|
2958
|
-
outputAttrs.push(
|
|
2959
|
-
attrString("ai.embeddings", safeJsonWithUint8(event.embedding))
|
|
2960
|
-
);
|
|
2940
|
+
outputAttrs.push(attrString("ai.embeddings", safeJsonWithUint8(event.embedding)));
|
|
2961
2941
|
} else {
|
|
2962
|
-
outputAttrs.push(
|
|
2963
|
-
attrString("ai.embedding", safeJsonWithUint8(event.embedding))
|
|
2964
|
-
);
|
|
2942
|
+
outputAttrs.push(attrString("ai.embedding", safeJsonWithUint8(event.embedding)));
|
|
2965
2943
|
}
|
|
2966
2944
|
}
|
|
2967
2945
|
if (((_a = event.usage) == null ? void 0 : _a.tokens) != null) {
|
|
@@ -5128,6 +5106,7 @@ function createRaindropAISDK(opts) {
|
|
|
5128
5106
|
enabled: eventsEnabled,
|
|
5129
5107
|
debug: ((_c = opts.events) == null ? void 0 : _c.debug) === true || envDebug,
|
|
5130
5108
|
partialFlushMs: (_d = opts.events) == null ? void 0 : _d.partialFlushMs,
|
|
5109
|
+
projectId: opts.projectId,
|
|
5131
5110
|
localDebuggerUrl
|
|
5132
5111
|
});
|
|
5133
5112
|
const traceShipper = new TraceShipper2({
|
|
@@ -5139,6 +5118,7 @@ function createRaindropAISDK(opts) {
|
|
|
5139
5118
|
flushIntervalMs: (_g = opts.traces) == null ? void 0 : _g.flushIntervalMs,
|
|
5140
5119
|
maxBatchSize: (_h = opts.traces) == null ? void 0 : _h.maxBatchSize,
|
|
5141
5120
|
maxQueueSize: (_i = opts.traces) == null ? void 0 : _i.maxQueueSize,
|
|
5121
|
+
projectId: opts.projectId,
|
|
5142
5122
|
localDebuggerUrl,
|
|
5143
5123
|
transformSpan: (_j = opts.traces) == null ? void 0 : _j.transformSpan,
|
|
5144
5124
|
disableDefaultRedaction: (_k = opts.traces) == null ? void 0 : _k.disableDefaultRedaction
|