@raindrop-ai/ai-sdk 0.0.29 → 0.0.30

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.
@@ -1017,7 +1017,7 @@ async function* asyncGeneratorWithCurrent(span, gen) {
1017
1017
  // package.json
1018
1018
  var package_default = {
1019
1019
  name: "@raindrop-ai/ai-sdk",
1020
- version: "0.0.29"};
1020
+ version: "0.0.30"};
1021
1021
 
1022
1022
  // src/internal/version.ts
1023
1023
  var libraryName = package_default.name;
@@ -1733,13 +1733,76 @@ function readRaindropCallMetadataFromArgs(args) {
1733
1733
  return meta;
1734
1734
  }
1735
1735
 
1736
+ // src/internal/parent-tool-context.ts
1737
+ var SyncFallbackStorage2 = class {
1738
+ constructor() {
1739
+ this._stack = [];
1740
+ }
1741
+ getStore() {
1742
+ return this._stack[this._stack.length - 1];
1743
+ }
1744
+ run(store, callback) {
1745
+ this._stack.push(store);
1746
+ try {
1747
+ return callback();
1748
+ } finally {
1749
+ this._stack.pop();
1750
+ }
1751
+ }
1752
+ // `enterWith` is intentionally absent on the sync fallback — the
1753
+ // event-driven enter/clear pattern only makes sense when the runtime
1754
+ // can propagate state across awaits, which the sync stack cannot.
1755
+ };
1756
+ var _storage2 = null;
1757
+ function getStorage2() {
1758
+ if (_storage2) return _storage2;
1759
+ const Ctor = globalThis.RAINDROP_ASYNC_LOCAL_STORAGE;
1760
+ _storage2 = Ctor ? new Ctor() : new SyncFallbackStorage2();
1761
+ return _storage2;
1762
+ }
1763
+ function _resetParentToolContextStorage() {
1764
+ _storage2 = null;
1765
+ }
1766
+ function getCurrentParentToolContext() {
1767
+ return getStorage2().getStore();
1768
+ }
1769
+ function enterParentToolContext(ctx) {
1770
+ var _a;
1771
+ const storage = getStorage2();
1772
+ (_a = storage.enterWith) == null ? void 0 : _a.call(storage, ctx);
1773
+ }
1774
+ function clearParentToolContext() {
1775
+ var _a;
1776
+ const storage = getStorage2();
1777
+ (_a = storage.enterWith) == null ? void 0 : _a.call(storage, void 0);
1778
+ }
1779
+ function runWithParentToolContext(ctx, fn) {
1780
+ return getStorage2().run(ctx, fn);
1781
+ }
1782
+
1736
1783
  // src/internal/raindrop-telemetry-integration.ts
1737
1784
  var RaindropTelemetryIntegration = class {
1738
1785
  constructor(opts) {
1739
1786
  this.callStates = /* @__PURE__ */ new Map();
1787
+ /**
1788
+ * Per-tool-call snapshot of the parent-tool ALS context taken right
1789
+ * before `enterParentToolContext` overwrites it in `toolExecutionStart`.
1790
+ * Kept at the integration level (rather than on `CallState`) so the
1791
+ * snapshot survives even when the parent generation has no tracked
1792
+ * `CallState` — e.g. the AI SDK dispatches a tool callback for a
1793
+ * `callId` we never registered via `onStart`. Without this, the
1794
+ * unconditional ALS enter in `toolExecutionStart` would leave
1795
+ * `toolExecutionEnd` no way to restore the prior context, so it would
1796
+ * clear and wipe whatever the outer scope had set.
1797
+ *
1798
+ * Keyed by `toolCallId` because that's the only identifier guaranteed
1799
+ * to round-trip between `toolExecutionStart` and `toolExecutionEnd`
1800
+ * (the `event.callId` can be the same for parallel sibling tools).
1801
+ */
1802
+ this.priorParentContexts = /* @__PURE__ */ new Map();
1740
1803
  // ── onStart ─────────────────────────────────────────────────────────────
1741
1804
  this.onStart = (event) => {
1742
- var _a, _b, _c, _d;
1805
+ var _a, _b, _c, _d, _e;
1743
1806
  if (event.isEnabled === false) return;
1744
1807
  const isEmbed = event.operationId === "ai.embed" || event.operationId === "ai.embedMany";
1745
1808
  const recordInputs = event.recordInputs !== false;
@@ -1758,6 +1821,47 @@ var RaindropTelemetryIntegration = class {
1758
1821
  event.operationId,
1759
1822
  functionId
1760
1823
  );
1824
+ const parentToolContext = !isEmbed && this.subagentWrapping ? getCurrentParentToolContext() : void 0;
1825
+ 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;
1826
+ const subagentName = (_e = parentToolContext == null ? void 0 : parentToolContext.toolName) != null ? _e : metadataSubagentName;
1827
+ let subagentToolCallSpan;
1828
+ let rootParentOverride;
1829
+ if (subagentName && this.sendTraces) {
1830
+ const parentAttrs = parentToolContext ? [
1831
+ attrString("raindrop.parent.callId", parentToolContext.parentCallId),
1832
+ attrString("raindrop.parent.toolCallId", parentToolContext.toolCallId),
1833
+ attrString("raindrop.parent.toolName", parentToolContext.toolName)
1834
+ ] : [];
1835
+ subagentToolCallSpan = this.traceShipper.startSpan({
1836
+ name: subagentName,
1837
+ parent: inheritedParent,
1838
+ eventId,
1839
+ operationId: "ai.toolCall",
1840
+ attributes: [
1841
+ attrString("operation.name", "ai.toolCall"),
1842
+ attrString("resource.name", subagentName),
1843
+ attrString("raindrop.span.kind", "tool_call"),
1844
+ attrString("ai.toolCall.name", subagentName),
1845
+ attrString("raindrop.subagent.name", subagentName),
1846
+ attrString("raindrop.agent.role", "subagent"),
1847
+ ...parentAttrs
1848
+ ]
1849
+ });
1850
+ const subagentParentRef = this.spanParentRef(subagentToolCallSpan);
1851
+ const markerSpan = this.traceShipper.startSpan({
1852
+ name: "agent.subagent",
1853
+ parent: subagentParentRef,
1854
+ eventId,
1855
+ operationId: "agent.subagent",
1856
+ attributes: [
1857
+ attrString("operation.name", "agent.subagent"),
1858
+ attrString("raindrop.span.kind", "llm_call"),
1859
+ attrString("raindrop.subagent.name", subagentName)
1860
+ ]
1861
+ });
1862
+ this.traceShipper.endSpan(markerSpan);
1863
+ rootParentOverride = subagentParentRef;
1864
+ }
1761
1865
  let rootSpan;
1762
1866
  if (this.sendTraces) {
1763
1867
  const promptAttrs = !isEmbed && recordInputs ? [
@@ -1778,7 +1882,7 @@ var RaindropTelemetryIntegration = class {
1778
1882
  ] : [attrString("ai.value", safeJsonWithUint8(event.value))] : [];
1779
1883
  rootSpan = this.traceShipper.startSpan({
1780
1884
  name: event.operationId,
1781
- parent: inheritedParent,
1885
+ parent: rootParentOverride != null ? rootParentOverride : inheritedParent,
1782
1886
  eventId,
1783
1887
  operationId: event.operationId,
1784
1888
  attributes: [
@@ -1806,18 +1910,21 @@ var RaindropTelemetryIntegration = class {
1806
1910
  operationId: event.operationId,
1807
1911
  eventId,
1808
1912
  rootSpan,
1809
- rootParent: rootSpan ? this.spanParentRef(rootSpan) : inheritedParent,
1913
+ rootParent: rootSpan ? this.spanParentRef(rootSpan) : rootParentOverride != null ? rootParentOverride : inheritedParent,
1810
1914
  stepSpan: void 0,
1811
1915
  stepParent: void 0,
1812
1916
  toolSpans: /* @__PURE__ */ new Map(),
1813
1917
  embedSpans: /* @__PURE__ */ new Map(),
1918
+ parentContextToolCallIds: /* @__PURE__ */ new Set(),
1814
1919
  recordInputs,
1815
1920
  recordOutputs,
1816
1921
  functionId,
1817
1922
  metadata,
1818
1923
  accumulatedText: "",
1819
1924
  inputText: isEmbed ? void 0 : this.extractInputText(event),
1820
- toolCallCount: 0
1925
+ toolCallCount: 0,
1926
+ subagentName,
1927
+ subagentToolCallSpan
1821
1928
  });
1822
1929
  };
1823
1930
  // ── onStepStart ─────────────────────────────────────────────────────────
@@ -2041,6 +2148,9 @@ var RaindropTelemetryIntegration = class {
2041
2148
  } else {
2042
2149
  this.finishGenerate(event, state);
2043
2150
  }
2151
+ if (state.subagentToolCallSpan) {
2152
+ this.traceShipper.endSpan(state.subagentToolCallSpan);
2153
+ }
2044
2154
  this.cleanup(event.callId);
2045
2155
  };
2046
2156
  // ── onError ─────────────────────────────────────────────────────────────
@@ -2058,6 +2168,10 @@ var RaindropTelemetryIntegration = class {
2058
2168
  this.traceShipper.endSpan(embedSpan, { error: actualError });
2059
2169
  }
2060
2170
  state.embedSpans.clear();
2171
+ for (const toolCallId of state.parentContextToolCallIds) {
2172
+ this.priorParentContexts.delete(toolCallId);
2173
+ }
2174
+ state.parentContextToolCallIds.clear();
2061
2175
  for (const toolSpan of state.toolSpans.values()) {
2062
2176
  this.traceShipper.endSpan(toolSpan, { error: actualError });
2063
2177
  }
@@ -2065,6 +2179,9 @@ var RaindropTelemetryIntegration = class {
2065
2179
  if (state.rootSpan) {
2066
2180
  this.traceShipper.endSpan(state.rootSpan, { error: actualError });
2067
2181
  }
2182
+ if (state.subagentToolCallSpan) {
2183
+ this.traceShipper.endSpan(state.subagentToolCallSpan, { error: actualError });
2184
+ }
2068
2185
  this.cleanup(event.callId);
2069
2186
  };
2070
2187
  // ── executeTool ─────────────────────────────────────────────────────────
@@ -2089,6 +2206,7 @@ var RaindropTelemetryIntegration = class {
2089
2206
  this.eventShipper = opts.eventShipper;
2090
2207
  this.sendTraces = opts.sendTraces !== false;
2091
2208
  this.sendEvents = opts.sendEvents !== false;
2209
+ this.subagentWrapping = opts.subagentWrapping !== false;
2092
2210
  this.debug = opts.debug === true;
2093
2211
  this.defaultContext = opts.context;
2094
2212
  }
@@ -2170,9 +2288,20 @@ var RaindropTelemetryIntegration = class {
2170
2288
  // (see https://github.com/vercel/ai/pull/14589). Event shape is identical.
2171
2289
  // Both names are exposed and forward to a single implementation.
2172
2290
  toolExecutionStart(event) {
2291
+ const { toolCall } = event;
2292
+ const priorParent = getCurrentParentToolContext();
2293
+ this.priorParentContexts.set(
2294
+ toolCall.toolCallId,
2295
+ priorParent != null ? priorParent : null
2296
+ );
2297
+ enterParentToolContext({
2298
+ parentCallId: event.callId,
2299
+ toolCallId: toolCall.toolCallId,
2300
+ toolName: toolCall.toolName
2301
+ });
2173
2302
  const state = this.getState(event.callId);
2303
+ state == null ? void 0 : state.parentContextToolCallIds.add(toolCall.toolCallId);
2174
2304
  if (!(state == null ? void 0 : state.stepParent)) return;
2175
- const { toolCall } = event;
2176
2305
  const { operationName, resourceName } = opName(
2177
2306
  "ai.toolCall",
2178
2307
  state.functionId
@@ -2196,6 +2325,17 @@ var RaindropTelemetryIntegration = class {
2196
2325
  this.emitLive(state, "tool_start", toolCall.toolName, { args: toolCall.input });
2197
2326
  }
2198
2327
  toolExecutionEnd(event) {
2328
+ var _a;
2329
+ const toolCallId = (_a = event.toolCall) == null ? void 0 : _a.toolCallId;
2330
+ if (toolCallId && this.priorParentContexts.has(toolCallId)) {
2331
+ const prior = this.priorParentContexts.get(toolCallId);
2332
+ this.priorParentContexts.delete(toolCallId);
2333
+ if (prior) {
2334
+ enterParentToolContext(prior);
2335
+ } else {
2336
+ clearParentToolContext();
2337
+ }
2338
+ }
2199
2339
  const state = this.getState(event.callId);
2200
2340
  if (!state) return;
2201
2341
  const toolSpan = state.toolSpans.get(event.toolCall.toolCallId);
@@ -2259,7 +2399,8 @@ var RaindropTelemetryIntegration = class {
2259
2399
  );
2260
2400
  this.traceShipper.endSpan(state.rootSpan, { attributes: outputAttrs });
2261
2401
  }
2262
- if (this.sendEvents) {
2402
+ const suppressSubagentEvent = state.subagentName !== void 0 && state.subagentToolCallSpan !== void 0;
2403
+ if (this.sendEvents && !suppressSubagentEvent) {
2263
2404
  const callMeta = this.extractRaindropMetadata(state.metadata);
2264
2405
  const userId = (_f = callMeta.userId) != null ? _f : (_e = this.defaultContext) == null ? void 0 : _e.userId;
2265
2406
  if (userId) {
@@ -4421,12 +4562,16 @@ function createRaindropAISDK(opts) {
4421
4562
  const writeKey = opts.writeKey;
4422
4563
  const eventsRequested = ((_a = opts.events) == null ? void 0 : _a.enabled) !== false;
4423
4564
  const tracesRequested = ((_b = opts.traces) == null ? void 0 : _b.enabled) !== false;
4424
- const eventsEnabled = eventsRequested && !!writeKey;
4425
- const tracesEnabled = tracesRequested && !!writeKey;
4426
4565
  const envDebug = envDebugEnabled();
4427
- if (!writeKey && (eventsRequested || tracesRequested)) {
4566
+ const localWorkshopInput = opts.localWorkshopUrl === false ? null : opts.localWorkshopUrl;
4567
+ const resolvedLocalDebuggerUrl = resolveLocalDebuggerBaseUrl(localWorkshopInput);
4568
+ const localDebuggerUrl = localWorkshopInput === null ? null : resolvedLocalDebuggerUrl != null ? resolvedLocalDebuggerUrl : void 0;
4569
+ const hasDestination = !!writeKey || !!resolvedLocalDebuggerUrl;
4570
+ const eventsEnabled = eventsRequested && hasDestination;
4571
+ const tracesEnabled = tracesRequested && hasDestination;
4572
+ if (!hasDestination && (eventsRequested || tracesRequested)) {
4428
4573
  console.warn(
4429
- "[raindrop-ai/ai-sdk] writeKey not provided; telemetry shipping is disabled"
4574
+ "[raindrop-ai/ai-sdk] writeKey not provided and no local Workshop reachable; telemetry shipping is disabled"
4430
4575
  );
4431
4576
  }
4432
4577
  const eventShipper = new EventShipper2({
@@ -4434,9 +4579,9 @@ function createRaindropAISDK(opts) {
4434
4579
  endpoint: opts.endpoint,
4435
4580
  enabled: eventsEnabled,
4436
4581
  debug: ((_c = opts.events) == null ? void 0 : _c.debug) === true || envDebug,
4437
- partialFlushMs: (_d = opts.events) == null ? void 0 : _d.partialFlushMs
4582
+ partialFlushMs: (_d = opts.events) == null ? void 0 : _d.partialFlushMs,
4583
+ localDebuggerUrl
4438
4584
  });
4439
- const localDebuggerUrl = opts.localWorkshopUrl === false ? null : opts.localWorkshopUrl;
4440
4585
  const traceShipper = new TraceShipper2({
4441
4586
  writeKey,
4442
4587
  endpoint: opts.endpoint,
@@ -4458,12 +4603,30 @@ function createRaindropAISDK(opts) {
4458
4603
  traceShipper
4459
4604
  });
4460
4605
  },
4461
- createTelemetryIntegration(context) {
4606
+ createTelemetryIntegration(contextOrOptions) {
4607
+ const FLAT_CONTEXT_KEYS = [
4608
+ "userId",
4609
+ "eventId",
4610
+ "eventName",
4611
+ "convoId",
4612
+ "properties"
4613
+ ];
4614
+ let context;
4615
+ let subagentWrapping;
4616
+ if (contextOrOptions === void 0) ; else if ("context" in contextOrOptions) {
4617
+ context = contextOrOptions.context;
4618
+ subagentWrapping = contextOrOptions.subagentWrapping;
4619
+ } else if ("subagentWrapping" in contextOrOptions && !FLAT_CONTEXT_KEYS.some((k) => k in contextOrOptions)) {
4620
+ subagentWrapping = contextOrOptions.subagentWrapping;
4621
+ } else {
4622
+ context = contextOrOptions;
4623
+ }
4462
4624
  return new RaindropTelemetryIntegration({
4463
4625
  traceShipper,
4464
4626
  eventShipper,
4465
4627
  sendTraces: tracesEnabled,
4466
4628
  sendEvents: eventsEnabled,
4629
+ subagentWrapping,
4467
4630
  debug: envDebug,
4468
4631
  context
4469
4632
  });
@@ -4571,4 +4734,4 @@ function createRaindropAISDK(opts) {
4571
4734
  };
4572
4735
  }
4573
4736
 
4574
- export { DEFAULT_REDACT_ATTRIBUTE_KEYS, DEFAULT_SECRET_KEY_NAMES, REDACTED_PLACEHOLDER, RaindropTelemetryIntegration, _resetRaindropCallMetadataStorage, _resetWarnedMissingUserId, createRaindropAISDK, currentSpan, defaultTransformSpan, eventMetadata, eventMetadataFromChatRequest, getContextManager, getCurrentRaindropCallMetadata, readRaindropCallMetadataFromArgs, redactJsonAttributeValue, redactSecretsInObject, runWithRaindropCallMetadata, withCurrent };
4737
+ export { DEFAULT_REDACT_ATTRIBUTE_KEYS, DEFAULT_SECRET_KEY_NAMES, REDACTED_PLACEHOLDER, RaindropTelemetryIntegration, _resetParentToolContextStorage, _resetRaindropCallMetadataStorage, _resetWarnedMissingUserId, clearParentToolContext, createRaindropAISDK, currentSpan, defaultTransformSpan, enterParentToolContext, eventMetadata, eventMetadataFromChatRequest, getContextManager, getCurrentParentToolContext, getCurrentRaindropCallMetadata, readRaindropCallMetadataFromArgs, redactJsonAttributeValue, redactSecretsInObject, runWithParentToolContext, runWithRaindropCallMetadata, withCurrent };
@@ -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_REDACT_ATTRIBUTE_KEYS, h as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, i as EventBuilder, j as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, k as OtlpSpan, R as REDACTED_PLACEHOLDER, l as RaindropAISDKClient, m as RaindropAISDKContext, n as RaindropAISDKOptions, o as RaindropCallMetadata, p as RaindropTelemetryIntegration, q as RaindropTelemetryIntegrationOptions, S as SelfDiagnosticsOptions, r as SelfDiagnosticsSignalDefinition, s as SelfDiagnosticsSignalDefinitions, t as StartSpanArgs, T as TraceSpan, u as TransformSpanHook, W as WrapAISDKOptions, v as WrappedAI, w as WrappedAISDK, _ as _resetRaindropCallMetadataStorage, x as _resetWarnedMissingUserId, y as createRaindropAISDK, z as currentSpan, F as defaultTransformSpan, G as eventMetadata, H as eventMetadataFromChatRequest, J as getContextManager, K as getCurrentRaindropCallMetadata, L as readRaindropCallMetadataFromArgs, M as redactJsonAttributeValue, N as redactSecretsInObject, P as runWithRaindropCallMetadata, Q as withCurrent } from './index-DKdCelJA.mjs';
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_REDACT_ATTRIBUTE_KEYS, h as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, i as EventBuilder, j as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, k as OtlpSpan, P as ParentToolContext, R as REDACTED_PLACEHOLDER, l as RaindropAISDKClient, m as RaindropAISDKContext, n as RaindropAISDKOptions, o as RaindropCallMetadata, p as RaindropTelemetryIntegration, q as RaindropTelemetryIntegrationOptions, S as SelfDiagnosticsOptions, r as SelfDiagnosticsSignalDefinition, s as SelfDiagnosticsSignalDefinitions, t as StartSpanArgs, T as TraceSpan, u as TransformSpanHook, W as WrapAISDKOptions, v as WrappedAI, w as WrappedAISDK, _ as _resetParentToolContextStorage, x as _resetRaindropCallMetadataStorage, y as _resetWarnedMissingUserId, z as clearParentToolContext, F as createRaindropAISDK, G as currentSpan, H as defaultTransformSpan, J as enterParentToolContext, K as eventMetadata, L as eventMetadataFromChatRequest, M as getContextManager, N as getCurrentParentToolContext, Q as getCurrentRaindropCallMetadata, U as readRaindropCallMetadataFromArgs, V as redactJsonAttributeValue, X as redactSecretsInObject, Y as runWithParentToolContext, Z as runWithRaindropCallMetadata, $ as withCurrent } from './index-Ba_ZzUH4.mjs';
2
2
 
3
3
  declare global {
4
4
  var RAINDROP_ASYNC_LOCAL_STORAGE: (new <T>() => {
@@ -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_REDACT_ATTRIBUTE_KEYS, h as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, i as EventBuilder, j as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, k as OtlpSpan, R as REDACTED_PLACEHOLDER, l as RaindropAISDKClient, m as RaindropAISDKContext, n as RaindropAISDKOptions, o as RaindropCallMetadata, p as RaindropTelemetryIntegration, q as RaindropTelemetryIntegrationOptions, S as SelfDiagnosticsOptions, r as SelfDiagnosticsSignalDefinition, s as SelfDiagnosticsSignalDefinitions, t as StartSpanArgs, T as TraceSpan, u as TransformSpanHook, W as WrapAISDKOptions, v as WrappedAI, w as WrappedAISDK, _ as _resetRaindropCallMetadataStorage, x as _resetWarnedMissingUserId, y as createRaindropAISDK, z as currentSpan, F as defaultTransformSpan, G as eventMetadata, H as eventMetadataFromChatRequest, J as getContextManager, K as getCurrentRaindropCallMetadata, L as readRaindropCallMetadataFromArgs, M as redactJsonAttributeValue, N as redactSecretsInObject, P as runWithRaindropCallMetadata, Q as withCurrent } from './index-DKdCelJA.js';
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_REDACT_ATTRIBUTE_KEYS, h as DEFAULT_SECRET_KEY_NAMES, E as EndSpanArgs, i as EventBuilder, j as EventMetadataOptions, I as IdentifyInput, O as OtlpAnyValue, k as OtlpSpan, P as ParentToolContext, R as REDACTED_PLACEHOLDER, l as RaindropAISDKClient, m as RaindropAISDKContext, n as RaindropAISDKOptions, o as RaindropCallMetadata, p as RaindropTelemetryIntegration, q as RaindropTelemetryIntegrationOptions, S as SelfDiagnosticsOptions, r as SelfDiagnosticsSignalDefinition, s as SelfDiagnosticsSignalDefinitions, t as StartSpanArgs, T as TraceSpan, u as TransformSpanHook, W as WrapAISDKOptions, v as WrappedAI, w as WrappedAISDK, _ as _resetParentToolContextStorage, x as _resetRaindropCallMetadataStorage, y as _resetWarnedMissingUserId, z as clearParentToolContext, F as createRaindropAISDK, G as currentSpan, H as defaultTransformSpan, J as enterParentToolContext, K as eventMetadata, L as eventMetadataFromChatRequest, M as getContextManager, N as getCurrentParentToolContext, Q as getCurrentRaindropCallMetadata, U as readRaindropCallMetadataFromArgs, V as redactJsonAttributeValue, X as redactSecretsInObject, Y as runWithParentToolContext, Z as runWithRaindropCallMetadata, $ as withCurrent } from './index-Ba_ZzUH4.js';
2
2
 
3
3
  declare global {
4
4
  var RAINDROP_ASYNC_LOCAL_STORAGE: (new <T>() => {