@raindrop-ai/ai-sdk 0.0.38 → 0.0.40
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/README.md +16 -0
- package/dist/{chunk-PAB774MR.mjs → chunk-KTT4YMAW.mjs} +29 -4
- package/dist/{index-D-E1YSku.d.mts → index-D82pma6B.d.mts} +6 -0
- package/dist/{index-D-E1YSku.d.ts → index-D82pma6B.d.ts} +6 -0
- package/dist/index.browser.d.mts +6 -0
- package/dist/index.browser.d.ts +6 -0
- package/dist/index.browser.js +29 -4
- package/dist/index.browser.mjs +29 -4
- package/dist/index.node.d.mts +1 -1
- package/dist/index.node.d.ts +1 -1
- package/dist/index.node.js +29 -4
- 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 +29 -4
- package/dist/index.workers.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,6 +55,22 @@ await raindrop.users.identify({
|
|
|
55
55
|
await raindrop.flush();
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
## Projects
|
|
59
|
+
|
|
60
|
+
If your org has multiple projects, route events to a specific one by passing its
|
|
61
|
+
slug as `projectId`:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
const raindrop = createRaindropAISDK({
|
|
65
|
+
writeKey: process.env.RAINDROP_WRITE_KEY!,
|
|
66
|
+
projectId: "support-prod",
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This sets the `X-Raindrop-Project-Id` header on every event and trace. Omit it
|
|
71
|
+
(or pass `"default"`) to use your org's default **Production** project — the
|
|
72
|
+
existing behavior. Single-project orgs need nothing new.
|
|
73
|
+
|
|
58
74
|
## Payload size limits
|
|
59
75
|
|
|
60
76
|
Text fields (event input/output, tool/LLM span payloads such as `ai.prompt`,
|
|
@@ -2142,6 +2142,24 @@ function runWithParentToolContext(ctx, fn) {
|
|
|
2142
2142
|
}
|
|
2143
2143
|
|
|
2144
2144
|
// src/internal/raindrop-telemetry-integration.ts
|
|
2145
|
+
function hasUnresolvedToolApproval(event) {
|
|
2146
|
+
var _a;
|
|
2147
|
+
const content = Array.isArray(event == null ? void 0 : event.content) ? event.content : Array.isArray((_a = event == null ? void 0 : event.finalStep) == null ? void 0 : _a.content) ? event.finalStep.content : void 0;
|
|
2148
|
+
if (!content) return false;
|
|
2149
|
+
const respondedApprovalIds = /* @__PURE__ */ new Set();
|
|
2150
|
+
let hasRequest = false;
|
|
2151
|
+
for (const part of content) {
|
|
2152
|
+
if ((part == null ? void 0 : part.type) === "tool-approval-response" && typeof part.approvalId === "string") {
|
|
2153
|
+
respondedApprovalIds.add(part.approvalId);
|
|
2154
|
+
} else if ((part == null ? void 0 : part.type) === "tool-approval-request") {
|
|
2155
|
+
hasRequest = true;
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
if (!hasRequest) return false;
|
|
2159
|
+
return content.some(
|
|
2160
|
+
(part) => (part == null ? void 0 : part.type) === "tool-approval-request" && !(typeof part.approvalId === "string" && respondedApprovalIds.has(part.approvalId))
|
|
2161
|
+
);
|
|
2162
|
+
}
|
|
2145
2163
|
var RaindropTelemetryIntegration = class {
|
|
2146
2164
|
constructor(opts) {
|
|
2147
2165
|
this.callStates = /* @__PURE__ */ new Map();
|
|
@@ -2864,15 +2882,22 @@ var RaindropTelemetryIntegration = class {
|
|
|
2864
2882
|
this.finalizeGenerateEvent(
|
|
2865
2883
|
state,
|
|
2866
2884
|
(_e = event.text) != null ? _e : state.accumulatedText || void 0,
|
|
2867
|
-
(_f = event.response) == null ? void 0 : _f.modelId
|
|
2885
|
+
(_f = event.response) == null ? void 0 : _f.modelId,
|
|
2886
|
+
hasUnresolvedToolApproval(event)
|
|
2868
2887
|
);
|
|
2869
2888
|
}
|
|
2870
2889
|
/**
|
|
2871
2890
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
2872
2891
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
2873
2892
|
* `onAbort`, and `onError`.
|
|
2893
|
+
*
|
|
2894
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
2895
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
2896
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
2897
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
2898
|
+
* same event ID into a separate canonical row.
|
|
2874
2899
|
*/
|
|
2875
|
-
finalizeGenerateEvent(state, output, model) {
|
|
2900
|
+
finalizeGenerateEvent(state, output, model, keepPending = false) {
|
|
2876
2901
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2877
2902
|
const suppressSubagentEvent = state.subagentName !== void 0 && state.subagentToolCallSpan !== void 0;
|
|
2878
2903
|
if (!this.sendEvents || suppressSubagentEvent) return;
|
|
@@ -2895,7 +2920,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2895
2920
|
output: cappedOutput,
|
|
2896
2921
|
model,
|
|
2897
2922
|
properties: Object.keys(properties).length > 0 ? properties : void 0,
|
|
2898
|
-
isPending:
|
|
2923
|
+
isPending: keepPending
|
|
2899
2924
|
}).catch((err) => {
|
|
2900
2925
|
if (this.debug) {
|
|
2901
2926
|
console.warn(
|
|
@@ -4992,7 +5017,7 @@ function extractNestedTokens(usage, key) {
|
|
|
4992
5017
|
// package.json
|
|
4993
5018
|
var package_default = {
|
|
4994
5019
|
name: "@raindrop-ai/ai-sdk",
|
|
4995
|
-
version: "0.0.
|
|
5020
|
+
version: "0.0.40"};
|
|
4996
5021
|
|
|
4997
5022
|
// src/internal/version.ts
|
|
4998
5023
|
var libraryName = package_default.name;
|
|
@@ -592,6 +592,12 @@ declare class RaindropTelemetryIntegration implements TelemetryIntegration {
|
|
|
592
592
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
593
593
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
594
594
|
* `onAbort`, and `onError`.
|
|
595
|
+
*
|
|
596
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
597
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
598
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
599
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
600
|
+
* same event ID into a separate canonical row.
|
|
595
601
|
*/
|
|
596
602
|
private finalizeGenerateEvent;
|
|
597
603
|
private finishEmbed;
|
|
@@ -592,6 +592,12 @@ declare class RaindropTelemetryIntegration implements TelemetryIntegration {
|
|
|
592
592
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
593
593
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
594
594
|
* `onAbort`, and `onError`.
|
|
595
|
+
*
|
|
596
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
597
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
598
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
599
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
600
|
+
* same event ID into a separate canonical row.
|
|
595
601
|
*/
|
|
596
602
|
private finalizeGenerateEvent;
|
|
597
603
|
private finishEmbed;
|
package/dist/index.browser.d.mts
CHANGED
|
@@ -592,6 +592,12 @@ declare class RaindropTelemetryIntegration implements TelemetryIntegration {
|
|
|
592
592
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
593
593
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
594
594
|
* `onAbort`, and `onError`.
|
|
595
|
+
*
|
|
596
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
597
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
598
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
599
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
600
|
+
* same event ID into a separate canonical row.
|
|
595
601
|
*/
|
|
596
602
|
private finalizeGenerateEvent;
|
|
597
603
|
private finishEmbed;
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -592,6 +592,12 @@ declare class RaindropTelemetryIntegration implements TelemetryIntegration {
|
|
|
592
592
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
593
593
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
594
594
|
* `onAbort`, and `onError`.
|
|
595
|
+
*
|
|
596
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
597
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
598
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
599
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
600
|
+
* same event ID into a separate canonical row.
|
|
595
601
|
*/
|
|
596
602
|
private finalizeGenerateEvent;
|
|
597
603
|
private finishEmbed;
|
package/dist/index.browser.js
CHANGED
|
@@ -1283,7 +1283,7 @@ async function* asyncGeneratorWithCurrent(span, gen) {
|
|
|
1283
1283
|
// package.json
|
|
1284
1284
|
var package_default = {
|
|
1285
1285
|
name: "@raindrop-ai/ai-sdk",
|
|
1286
|
-
version: "0.0.
|
|
1286
|
+
version: "0.0.40"};
|
|
1287
1287
|
|
|
1288
1288
|
// src/internal/version.ts
|
|
1289
1289
|
var libraryName = package_default.name;
|
|
@@ -2163,6 +2163,24 @@ function runWithParentToolContext(ctx, fn) {
|
|
|
2163
2163
|
}
|
|
2164
2164
|
|
|
2165
2165
|
// src/internal/raindrop-telemetry-integration.ts
|
|
2166
|
+
function hasUnresolvedToolApproval(event) {
|
|
2167
|
+
var _a;
|
|
2168
|
+
const content = Array.isArray(event == null ? void 0 : event.content) ? event.content : Array.isArray((_a = event == null ? void 0 : event.finalStep) == null ? void 0 : _a.content) ? event.finalStep.content : void 0;
|
|
2169
|
+
if (!content) return false;
|
|
2170
|
+
const respondedApprovalIds = /* @__PURE__ */ new Set();
|
|
2171
|
+
let hasRequest = false;
|
|
2172
|
+
for (const part of content) {
|
|
2173
|
+
if ((part == null ? void 0 : part.type) === "tool-approval-response" && typeof part.approvalId === "string") {
|
|
2174
|
+
respondedApprovalIds.add(part.approvalId);
|
|
2175
|
+
} else if ((part == null ? void 0 : part.type) === "tool-approval-request") {
|
|
2176
|
+
hasRequest = true;
|
|
2177
|
+
}
|
|
2178
|
+
}
|
|
2179
|
+
if (!hasRequest) return false;
|
|
2180
|
+
return content.some(
|
|
2181
|
+
(part) => (part == null ? void 0 : part.type) === "tool-approval-request" && !(typeof part.approvalId === "string" && respondedApprovalIds.has(part.approvalId))
|
|
2182
|
+
);
|
|
2183
|
+
}
|
|
2166
2184
|
var RaindropTelemetryIntegration = class {
|
|
2167
2185
|
constructor(opts) {
|
|
2168
2186
|
this.callStates = /* @__PURE__ */ new Map();
|
|
@@ -2885,15 +2903,22 @@ var RaindropTelemetryIntegration = class {
|
|
|
2885
2903
|
this.finalizeGenerateEvent(
|
|
2886
2904
|
state,
|
|
2887
2905
|
(_e = event.text) != null ? _e : state.accumulatedText || void 0,
|
|
2888
|
-
(_f = event.response) == null ? void 0 : _f.modelId
|
|
2906
|
+
(_f = event.response) == null ? void 0 : _f.modelId,
|
|
2907
|
+
hasUnresolvedToolApproval(event)
|
|
2889
2908
|
);
|
|
2890
2909
|
}
|
|
2891
2910
|
/**
|
|
2892
2911
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
2893
2912
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
2894
2913
|
* `onAbort`, and `onError`.
|
|
2914
|
+
*
|
|
2915
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
2916
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
2917
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
2918
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
2919
|
+
* same event ID into a separate canonical row.
|
|
2895
2920
|
*/
|
|
2896
|
-
finalizeGenerateEvent(state, output, model) {
|
|
2921
|
+
finalizeGenerateEvent(state, output, model, keepPending = false) {
|
|
2897
2922
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2898
2923
|
const suppressSubagentEvent = state.subagentName !== void 0 && state.subagentToolCallSpan !== void 0;
|
|
2899
2924
|
if (!this.sendEvents || suppressSubagentEvent) return;
|
|
@@ -2916,7 +2941,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2916
2941
|
output: cappedOutput,
|
|
2917
2942
|
model,
|
|
2918
2943
|
properties: Object.keys(properties).length > 0 ? properties : void 0,
|
|
2919
|
-
isPending:
|
|
2944
|
+
isPending: keepPending
|
|
2920
2945
|
}).catch((err) => {
|
|
2921
2946
|
if (this.debug) {
|
|
2922
2947
|
console.warn(
|
package/dist/index.browser.mjs
CHANGED
|
@@ -1281,7 +1281,7 @@ async function* asyncGeneratorWithCurrent(span, gen) {
|
|
|
1281
1281
|
// package.json
|
|
1282
1282
|
var package_default = {
|
|
1283
1283
|
name: "@raindrop-ai/ai-sdk",
|
|
1284
|
-
version: "0.0.
|
|
1284
|
+
version: "0.0.40"};
|
|
1285
1285
|
|
|
1286
1286
|
// src/internal/version.ts
|
|
1287
1287
|
var libraryName = package_default.name;
|
|
@@ -2161,6 +2161,24 @@ function runWithParentToolContext(ctx, fn) {
|
|
|
2161
2161
|
}
|
|
2162
2162
|
|
|
2163
2163
|
// src/internal/raindrop-telemetry-integration.ts
|
|
2164
|
+
function hasUnresolvedToolApproval(event) {
|
|
2165
|
+
var _a;
|
|
2166
|
+
const content = Array.isArray(event == null ? void 0 : event.content) ? event.content : Array.isArray((_a = event == null ? void 0 : event.finalStep) == null ? void 0 : _a.content) ? event.finalStep.content : void 0;
|
|
2167
|
+
if (!content) return false;
|
|
2168
|
+
const respondedApprovalIds = /* @__PURE__ */ new Set();
|
|
2169
|
+
let hasRequest = false;
|
|
2170
|
+
for (const part of content) {
|
|
2171
|
+
if ((part == null ? void 0 : part.type) === "tool-approval-response" && typeof part.approvalId === "string") {
|
|
2172
|
+
respondedApprovalIds.add(part.approvalId);
|
|
2173
|
+
} else if ((part == null ? void 0 : part.type) === "tool-approval-request") {
|
|
2174
|
+
hasRequest = true;
|
|
2175
|
+
}
|
|
2176
|
+
}
|
|
2177
|
+
if (!hasRequest) return false;
|
|
2178
|
+
return content.some(
|
|
2179
|
+
(part) => (part == null ? void 0 : part.type) === "tool-approval-request" && !(typeof part.approvalId === "string" && respondedApprovalIds.has(part.approvalId))
|
|
2180
|
+
);
|
|
2181
|
+
}
|
|
2164
2182
|
var RaindropTelemetryIntegration = class {
|
|
2165
2183
|
constructor(opts) {
|
|
2166
2184
|
this.callStates = /* @__PURE__ */ new Map();
|
|
@@ -2883,15 +2901,22 @@ var RaindropTelemetryIntegration = class {
|
|
|
2883
2901
|
this.finalizeGenerateEvent(
|
|
2884
2902
|
state,
|
|
2885
2903
|
(_e = event.text) != null ? _e : state.accumulatedText || void 0,
|
|
2886
|
-
(_f = event.response) == null ? void 0 : _f.modelId
|
|
2904
|
+
(_f = event.response) == null ? void 0 : _f.modelId,
|
|
2905
|
+
hasUnresolvedToolApproval(event)
|
|
2887
2906
|
);
|
|
2888
2907
|
}
|
|
2889
2908
|
/**
|
|
2890
2909
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
2891
2910
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
2892
2911
|
* `onAbort`, and `onError`.
|
|
2912
|
+
*
|
|
2913
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
2914
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
2915
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
2916
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
2917
|
+
* same event ID into a separate canonical row.
|
|
2893
2918
|
*/
|
|
2894
|
-
finalizeGenerateEvent(state, output, model) {
|
|
2919
|
+
finalizeGenerateEvent(state, output, model, keepPending = false) {
|
|
2895
2920
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2896
2921
|
const suppressSubagentEvent = state.subagentName !== void 0 && state.subagentToolCallSpan !== void 0;
|
|
2897
2922
|
if (!this.sendEvents || suppressSubagentEvent) return;
|
|
@@ -2914,7 +2939,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2914
2939
|
output: cappedOutput,
|
|
2915
2940
|
model,
|
|
2916
2941
|
properties: Object.keys(properties).length > 0 ? properties : void 0,
|
|
2917
|
-
isPending:
|
|
2942
|
+
isPending: keepPending
|
|
2918
2943
|
}).catch((err) => {
|
|
2919
2944
|
if (this.debug) {
|
|
2920
2945
|
console.warn(
|
package/dist/index.node.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-D82pma6B.mjs';
|
|
2
2
|
|
|
3
3
|
declare global {
|
|
4
4
|
var RAINDROP_ASYNC_LOCAL_STORAGE: (new <T>() => {
|
package/dist/index.node.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-D82pma6B.js';
|
|
2
2
|
|
|
3
3
|
declare global {
|
|
4
4
|
var RAINDROP_ASYNC_LOCAL_STORAGE: (new <T>() => {
|
package/dist/index.node.js
CHANGED
|
@@ -1288,7 +1288,7 @@ globalThis.RAINDROP_ASYNC_LOCAL_STORAGE = async_hooks.AsyncLocalStorage;
|
|
|
1288
1288
|
// package.json
|
|
1289
1289
|
var package_default = {
|
|
1290
1290
|
name: "@raindrop-ai/ai-sdk",
|
|
1291
|
-
version: "0.0.
|
|
1291
|
+
version: "0.0.40"};
|
|
1292
1292
|
|
|
1293
1293
|
// src/internal/version.ts
|
|
1294
1294
|
var libraryName = package_default.name;
|
|
@@ -2168,6 +2168,24 @@ function runWithParentToolContext(ctx, fn) {
|
|
|
2168
2168
|
}
|
|
2169
2169
|
|
|
2170
2170
|
// src/internal/raindrop-telemetry-integration.ts
|
|
2171
|
+
function hasUnresolvedToolApproval(event) {
|
|
2172
|
+
var _a;
|
|
2173
|
+
const content = Array.isArray(event == null ? void 0 : event.content) ? event.content : Array.isArray((_a = event == null ? void 0 : event.finalStep) == null ? void 0 : _a.content) ? event.finalStep.content : void 0;
|
|
2174
|
+
if (!content) return false;
|
|
2175
|
+
const respondedApprovalIds = /* @__PURE__ */ new Set();
|
|
2176
|
+
let hasRequest = false;
|
|
2177
|
+
for (const part of content) {
|
|
2178
|
+
if ((part == null ? void 0 : part.type) === "tool-approval-response" && typeof part.approvalId === "string") {
|
|
2179
|
+
respondedApprovalIds.add(part.approvalId);
|
|
2180
|
+
} else if ((part == null ? void 0 : part.type) === "tool-approval-request") {
|
|
2181
|
+
hasRequest = true;
|
|
2182
|
+
}
|
|
2183
|
+
}
|
|
2184
|
+
if (!hasRequest) return false;
|
|
2185
|
+
return content.some(
|
|
2186
|
+
(part) => (part == null ? void 0 : part.type) === "tool-approval-request" && !(typeof part.approvalId === "string" && respondedApprovalIds.has(part.approvalId))
|
|
2187
|
+
);
|
|
2188
|
+
}
|
|
2171
2189
|
var RaindropTelemetryIntegration = class {
|
|
2172
2190
|
constructor(opts) {
|
|
2173
2191
|
this.callStates = /* @__PURE__ */ new Map();
|
|
@@ -2890,15 +2908,22 @@ var RaindropTelemetryIntegration = class {
|
|
|
2890
2908
|
this.finalizeGenerateEvent(
|
|
2891
2909
|
state,
|
|
2892
2910
|
(_e = event.text) != null ? _e : state.accumulatedText || void 0,
|
|
2893
|
-
(_f = event.response) == null ? void 0 : _f.modelId
|
|
2911
|
+
(_f = event.response) == null ? void 0 : _f.modelId,
|
|
2912
|
+
hasUnresolvedToolApproval(event)
|
|
2894
2913
|
);
|
|
2895
2914
|
}
|
|
2896
2915
|
/**
|
|
2897
2916
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
2898
2917
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
2899
2918
|
* `onAbort`, and `onError`.
|
|
2919
|
+
*
|
|
2920
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
2921
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
2922
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
2923
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
2924
|
+
* same event ID into a separate canonical row.
|
|
2900
2925
|
*/
|
|
2901
|
-
finalizeGenerateEvent(state, output, model) {
|
|
2926
|
+
finalizeGenerateEvent(state, output, model, keepPending = false) {
|
|
2902
2927
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2903
2928
|
const suppressSubagentEvent = state.subagentName !== void 0 && state.subagentToolCallSpan !== void 0;
|
|
2904
2929
|
if (!this.sendEvents || suppressSubagentEvent) return;
|
|
@@ -2921,7 +2946,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2921
2946
|
output: cappedOutput,
|
|
2922
2947
|
model,
|
|
2923
2948
|
properties: Object.keys(properties).length > 0 ? properties : void 0,
|
|
2924
|
-
isPending:
|
|
2949
|
+
isPending: keepPending
|
|
2925
2950
|
}).catch((err) => {
|
|
2926
2951
|
if (this.debug) {
|
|
2927
2952
|
console.warn(
|
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-KTT4YMAW.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-D82pma6B.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-D82pma6B.js';
|
|
2
2
|
|
|
3
3
|
declare global {
|
|
4
4
|
var RAINDROP_ASYNC_LOCAL_STORAGE: (new <T>() => {
|
package/dist/index.workers.js
CHANGED
|
@@ -1288,7 +1288,7 @@ globalThis.RAINDROP_ASYNC_LOCAL_STORAGE = async_hooks.AsyncLocalStorage;
|
|
|
1288
1288
|
// package.json
|
|
1289
1289
|
var package_default = {
|
|
1290
1290
|
name: "@raindrop-ai/ai-sdk",
|
|
1291
|
-
version: "0.0.
|
|
1291
|
+
version: "0.0.40"};
|
|
1292
1292
|
|
|
1293
1293
|
// src/internal/version.ts
|
|
1294
1294
|
var libraryName = package_default.name;
|
|
@@ -2168,6 +2168,24 @@ function runWithParentToolContext(ctx, fn) {
|
|
|
2168
2168
|
}
|
|
2169
2169
|
|
|
2170
2170
|
// src/internal/raindrop-telemetry-integration.ts
|
|
2171
|
+
function hasUnresolvedToolApproval(event) {
|
|
2172
|
+
var _a;
|
|
2173
|
+
const content = Array.isArray(event == null ? void 0 : event.content) ? event.content : Array.isArray((_a = event == null ? void 0 : event.finalStep) == null ? void 0 : _a.content) ? event.finalStep.content : void 0;
|
|
2174
|
+
if (!content) return false;
|
|
2175
|
+
const respondedApprovalIds = /* @__PURE__ */ new Set();
|
|
2176
|
+
let hasRequest = false;
|
|
2177
|
+
for (const part of content) {
|
|
2178
|
+
if ((part == null ? void 0 : part.type) === "tool-approval-response" && typeof part.approvalId === "string") {
|
|
2179
|
+
respondedApprovalIds.add(part.approvalId);
|
|
2180
|
+
} else if ((part == null ? void 0 : part.type) === "tool-approval-request") {
|
|
2181
|
+
hasRequest = true;
|
|
2182
|
+
}
|
|
2183
|
+
}
|
|
2184
|
+
if (!hasRequest) return false;
|
|
2185
|
+
return content.some(
|
|
2186
|
+
(part) => (part == null ? void 0 : part.type) === "tool-approval-request" && !(typeof part.approvalId === "string" && respondedApprovalIds.has(part.approvalId))
|
|
2187
|
+
);
|
|
2188
|
+
}
|
|
2171
2189
|
var RaindropTelemetryIntegration = class {
|
|
2172
2190
|
constructor(opts) {
|
|
2173
2191
|
this.callStates = /* @__PURE__ */ new Map();
|
|
@@ -2890,15 +2908,22 @@ var RaindropTelemetryIntegration = class {
|
|
|
2890
2908
|
this.finalizeGenerateEvent(
|
|
2891
2909
|
state,
|
|
2892
2910
|
(_e = event.text) != null ? _e : state.accumulatedText || void 0,
|
|
2893
|
-
(_f = event.response) == null ? void 0 : _f.modelId
|
|
2911
|
+
(_f = event.response) == null ? void 0 : _f.modelId,
|
|
2912
|
+
hasUnresolvedToolApproval(event)
|
|
2894
2913
|
);
|
|
2895
2914
|
}
|
|
2896
2915
|
/**
|
|
2897
2916
|
* Patch the Raindrop event for a completed, aborted, or errored text
|
|
2898
2917
|
* generation so it leaves the `isPending` state. Shared by `onFinish`/`onEnd`,
|
|
2899
2918
|
* `onAbort`, and `onError`.
|
|
2919
|
+
*
|
|
2920
|
+
* `keepPending` is set when a `streamText` execution finished only because it
|
|
2921
|
+
* is waiting on tool approval (human-in-the-loop). The logical turn resumes in
|
|
2922
|
+
* a later execution that shares this `eventId`, so the event stays pending and
|
|
2923
|
+
* is finalized by that resume — otherwise each execution would finalize the
|
|
2924
|
+
* same event ID into a separate canonical row.
|
|
2900
2925
|
*/
|
|
2901
|
-
finalizeGenerateEvent(state, output, model) {
|
|
2926
|
+
finalizeGenerateEvent(state, output, model, keepPending = false) {
|
|
2902
2927
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2903
2928
|
const suppressSubagentEvent = state.subagentName !== void 0 && state.subagentToolCallSpan !== void 0;
|
|
2904
2929
|
if (!this.sendEvents || suppressSubagentEvent) return;
|
|
@@ -2921,7 +2946,7 @@ var RaindropTelemetryIntegration = class {
|
|
|
2921
2946
|
output: cappedOutput,
|
|
2922
2947
|
model,
|
|
2923
2948
|
properties: Object.keys(properties).length > 0 ? properties : void 0,
|
|
2924
|
-
isPending:
|
|
2949
|
+
isPending: keepPending
|
|
2925
2950
|
}).catch((err) => {
|
|
2926
2951
|
if (this.debug) {
|
|
2927
2952
|
console.warn(
|
package/dist/index.workers.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-KTT4YMAW.mjs';
|
|
2
2
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
3
3
|
|
|
4
4
|
if (!globalThis.RAINDROP_ASYNC_LOCAL_STORAGE) {
|
package/package.json
CHANGED