@bitfab/sdk 0.52.5 → 0.52.6

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.
Files changed (36) hide show
  1. package/dist/autoTrace.cjs +84 -34
  2. package/dist/autoTrace.cjs.map +1 -1
  3. package/dist/autoTrace.d.cts +19 -4
  4. package/dist/autoTrace.d.ts +19 -4
  5. package/dist/autoTrace.js +9 -3
  6. package/dist/{chunk-BEAGKWXY.js → chunk-3TL4SATS.js} +136 -31
  7. package/dist/chunk-3TL4SATS.js.map +1 -0
  8. package/dist/{chunk-IHAB7SPF.js → chunk-7KIRLN47.js} +2 -2
  9. package/dist/{chunk-IHAB7SPF.js.map → chunk-7KIRLN47.js.map} +1 -1
  10. package/dist/{chunk-ITIMJ24H.js → chunk-A6KY2IFA.js} +3 -3
  11. package/dist/{chunk-ZUD7OFYB.js → chunk-E5BLYL5X.js} +81 -34
  12. package/dist/chunk-E5BLYL5X.js.map +1 -0
  13. package/dist/{chunk-VAIXHJ7O.js → chunk-RC6XLP6M.js} +2 -2
  14. package/dist/{chunk-VAIXHJ7O.js.map → chunk-RC6XLP6M.js.map} +1 -1
  15. package/dist/{chunk-THKLMOHS.js → chunk-WYC4QRK3.js} +2 -2
  16. package/dist/{http-KZU56HZA.js → http-EL26HG5B.js} +2 -2
  17. package/dist/{http-6Y3IQQ2Z.js → http-YMBQ4XJO.js} +2 -2
  18. package/dist/index.cjs +182 -48
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +4 -4
  23. package/dist/node.cjs +182 -48
  24. package/dist/node.cjs.map +1 -1
  25. package/dist/node.js +4 -4
  26. package/dist/{replay-LZ7DIY5L.js → replay-DXDWFFJK.js} +3 -3
  27. package/dist/replayCli.js +2 -2
  28. package/dist/seedCli.js +2 -2
  29. package/package.json +1 -1
  30. package/dist/chunk-BEAGKWXY.js.map +0 -1
  31. package/dist/chunk-ZUD7OFYB.js.map +0 -1
  32. /package/dist/{chunk-ITIMJ24H.js.map → chunk-A6KY2IFA.js.map} +0 -0
  33. /package/dist/{chunk-THKLMOHS.js.map → chunk-WYC4QRK3.js.map} +0 -0
  34. /package/dist/{http-6Y3IQQ2Z.js.map → http-EL26HG5B.js.map} +0 -0
  35. /package/dist/{http-KZU56HZA.js.map → http-YMBQ4XJO.js.map} +0 -0
  36. /package/dist/{replay-LZ7DIY5L.js.map → replay-DXDWFFJK.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BitfabError
3
- } from "./chunk-VAIXHJ7O.js";
3
+ } from "./chunk-RC6XLP6M.js";
4
4
 
5
5
  // src/codeChange.ts
6
6
  var NUL = String.fromCharCode(0);
@@ -207,7 +207,7 @@ async function seedFromRegistry(registry, pipeline, cases, options = {}) {
207
207
  sessionId: seedCase.sessionId
208
208
  })
209
209
  );
210
- const { flushTraces: flushTraces2 } = await import("./http-6Y3IQQ2Z.js");
210
+ const { flushTraces: flushTraces2 } = await import("./http-YMBQ4XJO.js");
211
211
  await flushTraces2(3e4);
212
212
  return { pipeline, traceFunctionKey, traceIds };
213
213
  }
@@ -744,4 +744,4 @@ export {
744
744
  runRegistryMain,
745
745
  runIfEntrypoint
746
746
  };
747
- //# sourceMappingURL=chunk-ITIMJ24H.js.map
747
+ //# sourceMappingURL=chunk-A6KY2IFA.js.map
@@ -4,19 +4,18 @@ import {
4
4
 
5
5
  // src/autoTrace.ts
6
6
  var autoTraceGlobal = globalThis;
7
- var autoTraceState = autoTraceGlobal.__bitfabAutoTraceStateV3 ?? {
7
+ var autoTraceState = autoTraceGlobal.__bitfabAutoTraceStateV4 ?? {
8
8
  storage: null,
9
9
  browserScope: void 0,
10
10
  capturePolicies: /* @__PURE__ */ new WeakMap(),
11
11
  activeRoots: 0
12
12
  };
13
- autoTraceGlobal.__bitfabAutoTraceStateV3 = autoTraceState;
13
+ autoTraceGlobal.__bitfabAutoTraceStateV4 = autoTraceState;
14
14
  function initializeAutoTraceStorage() {
15
15
  autoTraceState.storage ?? (autoTraceState.storage = createAsyncLocalStorage());
16
16
  }
17
- function runWithAutoTraceContext(context, fn, depth = 0) {
17
+ function runWithAutoTraceScope(scope, fn) {
18
18
  initializeAutoTraceStorage();
19
- const scope = { context, depth };
20
19
  if (autoTraceState.storage) {
21
20
  return autoTraceState.storage.run(scope, fn);
22
21
  }
@@ -28,41 +27,65 @@ function runWithAutoTraceContext(context, fn, depth = 0) {
28
27
  autoTraceState.browserScope = previous;
29
28
  }
30
29
  }
30
+ function currentAutoTraceEntries() {
31
+ return currentAutoTraceScope()?.entries ?? [];
32
+ }
33
+ function replaceEntry(entries, previous, updated) {
34
+ return entries.map((entry) => entry === previous ? updated : entry);
35
+ }
36
+ function runWithAutoTraceEntry(previous, updated, fn) {
37
+ const result = runWithAutoTraceScope(
38
+ { entries: replaceEntry(currentAutoTraceEntries(), previous, updated) },
39
+ fn
40
+ );
41
+ if (isAutoTraceAsyncGenerator(result)) {
42
+ return wrapAutoTraceEntryAsyncGenerator(previous, updated, result);
43
+ }
44
+ return result;
45
+ }
46
+ function wrapAutoTraceEntryAsyncGenerator(previous, updated, source) {
47
+ const step = (method, value) => runWithAutoTraceScope(
48
+ { entries: replaceEntry(currentAutoTraceEntries(), previous, updated) },
49
+ () => source[method](value)
50
+ );
51
+ const wrapped = {
52
+ next: (value) => step("next", value),
53
+ return: (value) => step("return", value),
54
+ throw: (error) => step("throw", error),
55
+ [Symbol.asyncIterator]: () => wrapped
56
+ };
57
+ return wrapped;
58
+ }
59
+ function clearAutoTraceNodeConfiguration(fn) {
60
+ return runWithAutoTraceScope({ entries: currentAutoTraceEntries() }, fn);
61
+ }
31
62
  function runWithAutoTraceNodeConfiguration(nodeConfiguration, fn) {
32
63
  const scope = currentAutoTraceScope();
33
- if (!scope) {
64
+ if (!scope || scope.entries.length === 0) {
34
65
  return fn();
35
66
  }
36
- const configuredScope = { ...scope, nodeConfiguration };
37
- let result;
38
- if (autoTraceState.storage) {
39
- result = autoTraceState.storage.run(configuredScope, fn);
40
- } else {
41
- const previous = autoTraceState.browserScope;
42
- autoTraceState.browserScope = configuredScope;
43
- try {
44
- result = fn();
45
- } finally {
46
- autoTraceState.browserScope = previous;
47
- }
48
- }
67
+ const result = runWithAutoTraceScope({ ...scope, nodeConfiguration }, fn);
49
68
  if (isAutoTraceAsyncGenerator(result)) {
50
69
  return wrapAutoTraceNodeAsyncGenerator(nodeConfiguration, result);
51
70
  }
52
71
  return result;
53
72
  }
54
- function runWithAutoTraceRootContext(context, fn) {
73
+ function runWithAutoTraceRootContext(context, spanStack, fn) {
55
74
  autoTraceState.activeRoots += 1;
75
+ const entries = [
76
+ ...currentAutoTraceEntries(),
77
+ { context, depth: 0, spanStack }
78
+ ];
56
79
  let result;
57
80
  try {
58
- result = runWithAutoTraceContext(context, fn);
81
+ result = runWithAutoTraceScope({ entries }, fn);
59
82
  } catch (error) {
60
83
  autoTraceState.activeRoots -= 1;
61
84
  throw error;
62
85
  }
63
86
  if (isAutoTraceAsyncGenerator(result)) {
64
87
  autoTraceState.activeRoots -= 1;
65
- return wrapAutoTraceAsyncGenerator(context, result);
88
+ return wrapAutoTraceAsyncGenerator(context, spanStack, result);
66
89
  }
67
90
  if (result instanceof Promise) {
68
91
  return result.finally(() => {
@@ -72,6 +95,15 @@ function runWithAutoTraceRootContext(context, fn) {
72
95
  autoTraceState.activeRoots -= 1;
73
96
  return result;
74
97
  }
98
+ function invokeThroughAutoTraceEntries(entries, step, fn) {
99
+ let run = fn;
100
+ for (let index = entries.length - 1; index >= 0; index -= 1) {
101
+ const entry = entries[index];
102
+ const next = run;
103
+ run = () => step(entry, next);
104
+ }
105
+ return run();
106
+ }
75
107
  function isAutoTraceAsyncGenerator(value) {
76
108
  if (value === null || typeof value !== "object") {
77
109
  return false;
@@ -79,8 +111,8 @@ function isAutoTraceAsyncGenerator(value) {
79
111
  const candidate = value;
80
112
  return typeof candidate.next === "function" && typeof candidate.return === "function" && typeof candidate.throw === "function" && typeof candidate[Symbol.asyncIterator] === "function";
81
113
  }
82
- function wrapAutoTraceAsyncGenerator(context, source) {
83
- const step = (method, value) => runWithAutoTraceRootContext(context, () => source[method](value));
114
+ function wrapAutoTraceAsyncGenerator(context, spanStack, source) {
115
+ const step = (method, value) => runWithAutoTraceRootContext(context, spanStack, () => source[method](value));
84
116
  const wrapped = {
85
117
  next: (value) => step("next", value),
86
118
  return: (value) => step("return", value),
@@ -102,20 +134,32 @@ function wrapAutoTraceNodeAsyncGenerator(nodeConfiguration, source) {
102
134
  };
103
135
  return wrapped;
104
136
  }
137
+ function shareFinalize(configuration) {
138
+ const finalize = configuration.finalize;
139
+ if (finalize === void 0) {
140
+ return configuration;
141
+ }
142
+ let settled;
143
+ return {
144
+ ...configuration,
145
+ finalize: (result) => {
146
+ settled ?? (settled = Promise.resolve().then(() => finalize(result)));
147
+ return settled;
148
+ }
149
+ };
150
+ }
105
151
  function __bitfabAutoSpan(definition, inputs, fn) {
106
152
  const scope = currentAutoTraceScope();
107
- if (!scope) {
153
+ if (!scope || scope.entries.length === 0) {
108
154
  return fn();
109
155
  }
110
156
  const nameParts = definition.name.split(".");
111
157
  const simpleName = nameParts[nameParts.length - 1];
112
- const nodeConfiguration = simpleName === scope.nodeConfiguration?.functionName ? scope.nodeConfiguration : void 0;
113
- return scope.context.invoke(
114
- definition,
115
- inputs,
116
- fn,
117
- scope.depth,
118
- nodeConfiguration
158
+ const nodeConfiguration = simpleName === scope.nodeConfiguration?.functionName ? shareFinalize(scope.nodeConfiguration) : void 0;
159
+ return invokeThroughAutoTraceEntries(
160
+ scope.entries,
161
+ (entry, next) => entry.context.invoke(definition, inputs, next, entry, nodeConfiguration),
162
+ fn
119
163
  );
120
164
  }
121
165
  function __bitfabAutoWrap(definition, fn) {
@@ -147,7 +191,7 @@ function __bitfabAutoTraceActive() {
147
191
  if (autoTraceState.activeRoots === 0) {
148
192
  return false;
149
193
  }
150
- return currentAutoTraceScope() !== void 0;
194
+ return currentAutoTraceEntries().length > 0;
151
195
  }
152
196
  function currentAutoTraceScope() {
153
197
  initializeAutoTraceStorage();
@@ -170,13 +214,16 @@ function getAutoTraceCapturePolicy(client, traceFunctionKey) {
170
214
  }
171
215
 
172
216
  export {
173
- runWithAutoTraceContext,
217
+ currentAutoTraceEntries,
218
+ runWithAutoTraceEntry,
219
+ clearAutoTraceNodeConfiguration,
174
220
  runWithAutoTraceNodeConfiguration,
175
221
  runWithAutoTraceRootContext,
222
+ invokeThroughAutoTraceEntries,
176
223
  __bitfabAutoSpan,
177
224
  __bitfabAutoWrap,
178
225
  __bitfabAutoTraceActive,
179
226
  __setBitfabAutoTraceCapturePolicy,
180
227
  getAutoTraceCapturePolicy
181
228
  };
182
- //# sourceMappingURL=chunk-ZUD7OFYB.js.map
229
+ //# sourceMappingURL=chunk-E5BLYL5X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/autoTrace.ts"],"sourcesContent":["import {\n type AsyncLocalStorageLike,\n createAsyncLocalStorage,\n} from \"./asyncStorage.js\"\n\nexport interface AutoTraceFunctionDefinition {\n id: string\n name: string\n file: string\n line: number\n column: number\n async?: boolean\n wrapper?: boolean\n}\n\nexport interface AutoTraceNodeConfiguration {\n functionName: string\n name?: string\n type?: \"llm\" | \"agent\" | \"function\" | \"guardrail\" | \"handoff\" | \"custom\"\n capture: boolean\n testRunId?: string\n mockOnReplay?: boolean\n // biome-ignore lint/suspicious/noExplicitAny: node finalizers receive the configured function's result, whose type is owned by the caller\n finalize?: (result: any) => unknown | Promise<unknown>\n}\n\nexport interface NestedTraceLink {\n traceFunctionKey: string\n traceId?: string\n rootSpanId?: string\n}\n\nexport interface AutoTraceEntry {\n context: AutoTraceContext\n depth: number\n spanStack: unknown\n}\n\nexport interface AutoTraceContext {\n readonly traceFunctionKey: string\n invoke<T>(\n definition: AutoTraceFunctionDefinition,\n inputs: unknown[],\n fn: () => T,\n entry: AutoTraceEntry,\n nodeConfiguration?: AutoTraceNodeConfiguration,\n ): T\n invokeNestedRoot<T>(\n name: string,\n functionName: string,\n inputs: unknown[],\n fn: () => T,\n entry: AutoTraceEntry,\n link: NestedTraceLink | undefined,\n ): T\n}\n\ninterface AutoTraceScope {\n entries: readonly AutoTraceEntry[]\n nodeConfiguration?: AutoTraceNodeConfiguration\n}\n\ninterface AutoTraceState {\n storage: AsyncLocalStorageLike<AutoTraceScope> | null\n browserScope: AutoTraceScope | undefined\n capturePolicies: WeakMap<object, Map<string, ReadonlySet<string>>>\n activeRoots: number\n}\n\ninterface AutoTraceGlobal {\n __bitfabAutoTraceStateV4?: AutoTraceState\n}\n\ninterface AutoTraceAsyncGenerator {\n next(value?: unknown): Promise<IteratorResult<unknown, unknown>>\n return(value?: unknown): Promise<IteratorResult<unknown, unknown>>\n throw(error?: unknown): Promise<IteratorResult<unknown, unknown>>\n [Symbol.asyncIterator](): AutoTraceAsyncGenerator\n}\n\nconst autoTraceGlobal = globalThis as unknown as AutoTraceGlobal\nconst autoTraceState: AutoTraceState =\n autoTraceGlobal.__bitfabAutoTraceStateV4 ?? {\n storage: null,\n browserScope: undefined,\n capturePolicies: new WeakMap(),\n activeRoots: 0,\n }\nautoTraceGlobal.__bitfabAutoTraceStateV4 = autoTraceState\n\nfunction initializeAutoTraceStorage(): void {\n autoTraceState.storage ??= createAsyncLocalStorage<AutoTraceScope>()\n}\n\nfunction runWithAutoTraceScope<T>(scope: AutoTraceScope, fn: () => T): T {\n initializeAutoTraceStorage()\n if (autoTraceState.storage) {\n return autoTraceState.storage.run(scope, fn)\n }\n\n const previous = autoTraceState.browserScope\n autoTraceState.browserScope = scope\n try {\n return fn()\n } finally {\n autoTraceState.browserScope = previous\n }\n}\n\nexport function currentAutoTraceEntries(): readonly AutoTraceEntry[] {\n return currentAutoTraceScope()?.entries ?? []\n}\n\nfunction replaceEntry(\n entries: readonly AutoTraceEntry[],\n previous: AutoTraceEntry,\n updated: AutoTraceEntry,\n): readonly AutoTraceEntry[] {\n return entries.map((entry) => (entry === previous ? updated : entry))\n}\n\nexport function runWithAutoTraceEntry<T>(\n previous: AutoTraceEntry,\n updated: AutoTraceEntry,\n fn: () => T,\n): T {\n const result = runWithAutoTraceScope(\n { entries: replaceEntry(currentAutoTraceEntries(), previous, updated) },\n fn,\n )\n if (isAutoTraceAsyncGenerator(result)) {\n return wrapAutoTraceEntryAsyncGenerator(previous, updated, result) as T\n }\n return result\n}\n\nfunction wrapAutoTraceEntryAsyncGenerator(\n previous: AutoTraceEntry,\n updated: AutoTraceEntry,\n source: AutoTraceAsyncGenerator,\n): AutoTraceAsyncGenerator {\n const step = (\n method: \"next\" | \"return\" | \"throw\",\n value?: unknown,\n ): Promise<IteratorResult<unknown, unknown>> =>\n runWithAutoTraceScope(\n { entries: replaceEntry(currentAutoTraceEntries(), previous, updated) },\n () => source[method](value),\n )\n const wrapped: AutoTraceAsyncGenerator = {\n next: (value) => step(\"next\", value),\n return: (value) => step(\"return\", value),\n throw: (error) => step(\"throw\", error),\n [Symbol.asyncIterator]: () => wrapped,\n }\n return wrapped\n}\n\nexport function clearAutoTraceNodeConfiguration<T>(fn: () => T): T {\n return runWithAutoTraceScope({ entries: currentAutoTraceEntries() }, fn)\n}\n\nexport function runWithAutoTraceNodeConfiguration<T>(\n nodeConfiguration: AutoTraceNodeConfiguration,\n fn: () => T,\n): T {\n const scope = currentAutoTraceScope()\n if (!scope || scope.entries.length === 0) {\n return fn()\n }\n\n const result = runWithAutoTraceScope({ ...scope, nodeConfiguration }, fn)\n if (isAutoTraceAsyncGenerator(result)) {\n return wrapAutoTraceNodeAsyncGenerator(nodeConfiguration, result) as T\n }\n return result\n}\n\nexport function runWithAutoTraceRootContext<T>(\n context: AutoTraceContext,\n spanStack: unknown,\n fn: () => T,\n): T {\n autoTraceState.activeRoots += 1\n const entries = [\n ...currentAutoTraceEntries(),\n { context, depth: 0, spanStack },\n ]\n let result: T\n try {\n result = runWithAutoTraceScope({ entries }, fn)\n } catch (error) {\n autoTraceState.activeRoots -= 1\n throw error\n }\n\n if (isAutoTraceAsyncGenerator(result)) {\n autoTraceState.activeRoots -= 1\n return wrapAutoTraceAsyncGenerator(context, spanStack, result) as T\n }\n\n if (result instanceof Promise) {\n return result.finally(() => {\n autoTraceState.activeRoots -= 1\n }) as T\n }\n\n autoTraceState.activeRoots -= 1\n return result\n}\n\nexport function invokeThroughAutoTraceEntries<T>(\n entries: readonly AutoTraceEntry[],\n step: (entry: AutoTraceEntry, next: () => T) => T,\n fn: () => T,\n): T {\n let run = fn\n for (let index = entries.length - 1; index >= 0; index -= 1) {\n const entry = entries[index] as AutoTraceEntry\n const next = run\n run = () => step(entry, next)\n }\n return run()\n}\n\nfunction isAutoTraceAsyncGenerator(\n value: unknown,\n): value is AutoTraceAsyncGenerator {\n if (value === null || typeof value !== \"object\") {\n return false\n }\n const candidate = value as Record<PropertyKey, unknown>\n return (\n typeof candidate.next === \"function\" &&\n typeof candidate.return === \"function\" &&\n typeof candidate.throw === \"function\" &&\n typeof candidate[Symbol.asyncIterator] === \"function\"\n )\n}\n\nfunction wrapAutoTraceAsyncGenerator(\n context: AutoTraceContext,\n spanStack: unknown,\n source: AutoTraceAsyncGenerator,\n): AutoTraceAsyncGenerator {\n const step = (\n method: \"next\" | \"return\" | \"throw\",\n value?: unknown,\n ): Promise<IteratorResult<unknown, unknown>> =>\n runWithAutoTraceRootContext(context, spanStack, () => source[method](value))\n const wrapped: AutoTraceAsyncGenerator = {\n next: (value) => step(\"next\", value),\n return: (value) => step(\"return\", value),\n throw: (error) => step(\"throw\", error),\n [Symbol.asyncIterator]: () => wrapped,\n }\n return wrapped\n}\n\nfunction wrapAutoTraceNodeAsyncGenerator(\n nodeConfiguration: AutoTraceNodeConfiguration,\n source: AutoTraceAsyncGenerator,\n): AutoTraceAsyncGenerator {\n const step = (\n method: \"next\" | \"return\" | \"throw\",\n value?: unknown,\n ): Promise<IteratorResult<unknown, unknown>> =>\n runWithAutoTraceNodeConfiguration(nodeConfiguration, () =>\n source[method](value),\n )\n const wrapped: AutoTraceAsyncGenerator = {\n next: (value) => step(\"next\", value),\n return: (value) => step(\"return\", value),\n throw: (error) => step(\"throw\", error),\n [Symbol.asyncIterator]: () => wrapped,\n }\n return wrapped\n}\n\nfunction shareFinalize(\n configuration: AutoTraceNodeConfiguration,\n): AutoTraceNodeConfiguration {\n const finalize = configuration.finalize\n if (finalize === undefined) {\n return configuration\n }\n let settled: Promise<unknown> | undefined\n return {\n ...configuration,\n finalize: (result: unknown) => {\n settled ??= Promise.resolve().then(() => finalize(result))\n return settled\n },\n }\n}\n\nexport function __bitfabAutoSpan<T>(\n definition: AutoTraceFunctionDefinition,\n inputs: unknown[],\n fn: () => T,\n): T {\n const scope = currentAutoTraceScope()\n if (!scope || scope.entries.length === 0) {\n return fn()\n }\n const nameParts = definition.name.split(\".\")\n const simpleName = nameParts[nameParts.length - 1]\n const nodeConfiguration =\n simpleName === scope.nodeConfiguration?.functionName\n ? shareFinalize(scope.nodeConfiguration)\n : undefined\n return invokeThroughAutoTraceEntries(\n scope.entries,\n (entry, next) =>\n entry.context.invoke(definition, inputs, next, entry, nodeConfiguration),\n fn,\n )\n}\n\n/**\n * Preserve a function's original call arguments for transform cases where\n * parameter bindings discard them, such as destructured arrow parameters.\n *\n * This helper is internal transform/runtime protocol. The proxy preserves the\n * target's callability, arity, async identity, and non-constructibility while\n * only allocating a trace closure beneath an active automatic trace root.\n *\n * @experimental The automatic tracing protocol may change.\n */\nexport function __bitfabAutoWrap<T extends (...args: never[]) => unknown>(\n definition: AutoTraceFunctionDefinition,\n fn: T,\n): T {\n if (fn.name === \"\") {\n const nameParts = definition.name.split(\".\")\n const inferredName = nameParts[nameParts.length - 1]\n if (inferredName !== undefined) {\n Object.defineProperty(fn, \"name\", {\n configurable: true,\n value: inferredName,\n })\n }\n }\n\n const target = fn as unknown as (...args: unknown[]) => unknown\n return new Proxy(target, {\n apply(callTarget, thisArg, args) {\n if (!__bitfabAutoTraceActive()) {\n return Reflect.apply(callTarget, thisArg, args)\n }\n return __bitfabAutoSpan(definition, args, () =>\n Reflect.apply(callTarget, thisArg, args),\n )\n },\n }) as unknown as T\n}\n\n/**\n * Return whether the current call is inside an automatic trace root.\n *\n * Build transforms use this before allocating function metadata, captured\n * inputs, or an invocation closure. It is internal transform/runtime protocol,\n * not a supported application API.\n *\n * @experimental The automatic tracing protocol may change.\n */\nexport function __bitfabAutoTraceActive(): boolean {\n if (autoTraceState.activeRoots === 0) {\n return false\n }\n return currentAutoTraceEntries().length > 0\n}\n\nfunction currentAutoTraceScope(): AutoTraceScope | undefined {\n initializeAutoTraceStorage()\n return autoTraceState.storage?.getStore() ?? autoTraceState.browserScope\n}\n\nexport function __setBitfabAutoTraceCapturePolicy(\n client: object,\n traceFunctionKey: string,\n functionIds: Iterable<string> | undefined,\n): void {\n const policies = autoTraceState.capturePolicies.get(client) ?? new Map()\n if (functionIds === undefined) {\n policies.delete(traceFunctionKey)\n if (policies.size === 0) {\n autoTraceState.capturePolicies.delete(client)\n }\n return\n }\n policies.set(traceFunctionKey, new Set(functionIds))\n autoTraceState.capturePolicies.set(client, policies)\n}\n\nexport function getAutoTraceCapturePolicy(\n client: object,\n traceFunctionKey: string,\n): ReadonlySet<string> | undefined {\n return autoTraceState.capturePolicies.get(client)?.get(traceFunctionKey)\n}\n"],"mappings":";;;;;AAgFA,IAAM,kBAAkB;AACxB,IAAM,iBACJ,gBAAgB,4BAA4B;AAAA,EAC1C,SAAS;AAAA,EACT,cAAc;AAAA,EACd,iBAAiB,oBAAI,QAAQ;AAAA,EAC7B,aAAa;AACf;AACF,gBAAgB,2BAA2B;AAE3C,SAAS,6BAAmC;AAC1C,iBAAe,YAAf,eAAe,UAAY,wBAAwC;AACrE;AAEA,SAAS,sBAAyB,OAAuB,IAAgB;AACvE,6BAA2B;AAC3B,MAAI,eAAe,SAAS;AAC1B,WAAO,eAAe,QAAQ,IAAI,OAAO,EAAE;AAAA,EAC7C;AAEA,QAAM,WAAW,eAAe;AAChC,iBAAe,eAAe;AAC9B,MAAI;AACF,WAAO,GAAG;AAAA,EACZ,UAAE;AACA,mBAAe,eAAe;AAAA,EAChC;AACF;AAEO,SAAS,0BAAqD;AACnE,SAAO,sBAAsB,GAAG,WAAW,CAAC;AAC9C;AAEA,SAAS,aACP,SACA,UACA,SAC2B;AAC3B,SAAO,QAAQ,IAAI,CAAC,UAAW,UAAU,WAAW,UAAU,KAAM;AACtE;AAEO,SAAS,sBACd,UACA,SACA,IACG;AACH,QAAM,SAAS;AAAA,IACb,EAAE,SAAS,aAAa,wBAAwB,GAAG,UAAU,OAAO,EAAE;AAAA,IACtE;AAAA,EACF;AACA,MAAI,0BAA0B,MAAM,GAAG;AACrC,WAAO,iCAAiC,UAAU,SAAS,MAAM;AAAA,EACnE;AACA,SAAO;AACT;AAEA,SAAS,iCACP,UACA,SACA,QACyB;AACzB,QAAM,OAAO,CACX,QACA,UAEA;AAAA,IACE,EAAE,SAAS,aAAa,wBAAwB,GAAG,UAAU,OAAO,EAAE;AAAA,IACtE,MAAM,OAAO,MAAM,EAAE,KAAK;AAAA,EAC5B;AACF,QAAM,UAAmC;AAAA,IACvC,MAAM,CAAC,UAAU,KAAK,QAAQ,KAAK;AAAA,IACnC,QAAQ,CAAC,UAAU,KAAK,UAAU,KAAK;AAAA,IACvC,OAAO,CAAC,UAAU,KAAK,SAAS,KAAK;AAAA,IACrC,CAAC,OAAO,aAAa,GAAG,MAAM;AAAA,EAChC;AACA,SAAO;AACT;AAEO,SAAS,gCAAmC,IAAgB;AACjE,SAAO,sBAAsB,EAAE,SAAS,wBAAwB,EAAE,GAAG,EAAE;AACzE;AAEO,SAAS,kCACd,mBACA,IACG;AACH,QAAM,QAAQ,sBAAsB;AACpC,MAAI,CAAC,SAAS,MAAM,QAAQ,WAAW,GAAG;AACxC,WAAO,GAAG;AAAA,EACZ;AAEA,QAAM,SAAS,sBAAsB,EAAE,GAAG,OAAO,kBAAkB,GAAG,EAAE;AACxE,MAAI,0BAA0B,MAAM,GAAG;AACrC,WAAO,gCAAgC,mBAAmB,MAAM;AAAA,EAClE;AACA,SAAO;AACT;AAEO,SAAS,4BACd,SACA,WACA,IACG;AACH,iBAAe,eAAe;AAC9B,QAAM,UAAU;AAAA,IACd,GAAG,wBAAwB;AAAA,IAC3B,EAAE,SAAS,OAAO,GAAG,UAAU;AAAA,EACjC;AACA,MAAI;AACJ,MAAI;AACF,aAAS,sBAAsB,EAAE,QAAQ,GAAG,EAAE;AAAA,EAChD,SAAS,OAAO;AACd,mBAAe,eAAe;AAC9B,UAAM;AAAA,EACR;AAEA,MAAI,0BAA0B,MAAM,GAAG;AACrC,mBAAe,eAAe;AAC9B,WAAO,4BAA4B,SAAS,WAAW,MAAM;AAAA,EAC/D;AAEA,MAAI,kBAAkB,SAAS;AAC7B,WAAO,OAAO,QAAQ,MAAM;AAC1B,qBAAe,eAAe;AAAA,IAChC,CAAC;AAAA,EACH;AAEA,iBAAe,eAAe;AAC9B,SAAO;AACT;AAEO,SAAS,8BACd,SACA,MACA,IACG;AACH,MAAI,MAAM;AACV,WAAS,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG;AAC3D,UAAM,QAAQ,QAAQ,KAAK;AAC3B,UAAM,OAAO;AACb,UAAM,MAAM,KAAK,OAAO,IAAI;AAAA,EAC9B;AACA,SAAO,IAAI;AACb;AAEA,SAAS,0BACP,OACkC;AAClC,MAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;AAC/C,WAAO;AAAA,EACT;AACA,QAAM,YAAY;AAClB,SACE,OAAO,UAAU,SAAS,cAC1B,OAAO,UAAU,WAAW,cAC5B,OAAO,UAAU,UAAU,cAC3B,OAAO,UAAU,OAAO,aAAa,MAAM;AAE/C;AAEA,SAAS,4BACP,SACA,WACA,QACyB;AACzB,QAAM,OAAO,CACX,QACA,UAEA,4BAA4B,SAAS,WAAW,MAAM,OAAO,MAAM,EAAE,KAAK,CAAC;AAC7E,QAAM,UAAmC;AAAA,IACvC,MAAM,CAAC,UAAU,KAAK,QAAQ,KAAK;AAAA,IACnC,QAAQ,CAAC,UAAU,KAAK,UAAU,KAAK;AAAA,IACvC,OAAO,CAAC,UAAU,KAAK,SAAS,KAAK;AAAA,IACrC,CAAC,OAAO,aAAa,GAAG,MAAM;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,gCACP,mBACA,QACyB;AACzB,QAAM,OAAO,CACX,QACA,UAEA;AAAA,IAAkC;AAAA,IAAmB,MACnD,OAAO,MAAM,EAAE,KAAK;AAAA,EACtB;AACF,QAAM,UAAmC;AAAA,IACvC,MAAM,CAAC,UAAU,KAAK,QAAQ,KAAK;AAAA,IACnC,QAAQ,CAAC,UAAU,KAAK,UAAU,KAAK;AAAA,IACvC,OAAO,CAAC,UAAU,KAAK,SAAS,KAAK;AAAA,IACrC,CAAC,OAAO,aAAa,GAAG,MAAM;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,cACP,eAC4B;AAC5B,QAAM,WAAW,cAAc;AAC/B,MAAI,aAAa,QAAW;AAC1B,WAAO;AAAA,EACT;AACA,MAAI;AACJ,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,CAAC,WAAoB;AAC7B,4BAAY,QAAQ,QAAQ,EAAE,KAAK,MAAM,SAAS,MAAM,CAAC;AACzD,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,SAAS,iBACd,YACA,QACA,IACG;AACH,QAAM,QAAQ,sBAAsB;AACpC,MAAI,CAAC,SAAS,MAAM,QAAQ,WAAW,GAAG;AACxC,WAAO,GAAG;AAAA,EACZ;AACA,QAAM,YAAY,WAAW,KAAK,MAAM,GAAG;AAC3C,QAAM,aAAa,UAAU,UAAU,SAAS,CAAC;AACjD,QAAM,oBACJ,eAAe,MAAM,mBAAmB,eACpC,cAAc,MAAM,iBAAiB,IACrC;AACN,SAAO;AAAA,IACL,MAAM;AAAA,IACN,CAAC,OAAO,SACN,MAAM,QAAQ,OAAO,YAAY,QAAQ,MAAM,OAAO,iBAAiB;AAAA,IACzE;AAAA,EACF;AACF;AAYO,SAAS,iBACd,YACA,IACG;AACH,MAAI,GAAG,SAAS,IAAI;AAClB,UAAM,YAAY,WAAW,KAAK,MAAM,GAAG;AAC3C,UAAM,eAAe,UAAU,UAAU,SAAS,CAAC;AACnD,QAAI,iBAAiB,QAAW;AAC9B,aAAO,eAAe,IAAI,QAAQ;AAAA,QAChC,cAAc;AAAA,QACd,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,SAAS;AACf,SAAO,IAAI,MAAM,QAAQ;AAAA,IACvB,MAAM,YAAY,SAAS,MAAM;AAC/B,UAAI,CAAC,wBAAwB,GAAG;AAC9B,eAAO,QAAQ,MAAM,YAAY,SAAS,IAAI;AAAA,MAChD;AACA,aAAO;AAAA,QAAiB;AAAA,QAAY;AAAA,QAAM,MACxC,QAAQ,MAAM,YAAY,SAAS,IAAI;AAAA,MACzC;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAWO,SAAS,0BAAmC;AACjD,MAAI,eAAe,gBAAgB,GAAG;AACpC,WAAO;AAAA,EACT;AACA,SAAO,wBAAwB,EAAE,SAAS;AAC5C;AAEA,SAAS,wBAAoD;AAC3D,6BAA2B;AAC3B,SAAO,eAAe,SAAS,SAAS,KAAK,eAAe;AAC9D;AAEO,SAAS,kCACd,QACA,kBACA,aACM;AACN,QAAM,WAAW,eAAe,gBAAgB,IAAI,MAAM,KAAK,oBAAI,IAAI;AACvE,MAAI,gBAAgB,QAAW;AAC7B,aAAS,OAAO,gBAAgB;AAChC,QAAI,SAAS,SAAS,GAAG;AACvB,qBAAe,gBAAgB,OAAO,MAAM;AAAA,IAC9C;AACA;AAAA,EACF;AACA,WAAS,IAAI,kBAAkB,IAAI,IAAI,WAAW,CAAC;AACnD,iBAAe,gBAAgB,IAAI,QAAQ,QAAQ;AACrD;AAEO,SAAS,0BACd,QACA,kBACiC;AACjC,SAAO,eAAe,gBAAgB,IAAI,MAAM,GAAG,IAAI,gBAAgB;AACzE;","names":[]}
@@ -94,7 +94,7 @@ function encodeRequestBody(body) {
94
94
  }
95
95
 
96
96
  // src/version.generated.ts
97
- var __version__ = "0.52.5";
97
+ var __version__ = "0.52.6";
98
98
  var __packageName__ = "@bitfab/sdk";
99
99
 
100
100
  // src/errors.ts
@@ -1943,4 +1943,4 @@ export {
1943
1943
  parseRetryAfterMs,
1944
1944
  HttpClient
1945
1945
  };
1946
- //# sourceMappingURL=chunk-VAIXHJ7O.js.map
1946
+ //# sourceMappingURL=chunk-RC6XLP6M.js.map