@morsehq-dev/sdk 0.4.0-rc.1

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 (161) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +294 -0
  3. package/dist/anthropic/index.cjs +39 -0
  4. package/dist/anthropic/index.cjs.map +1 -0
  5. package/dist/anthropic/index.d.cts +213 -0
  6. package/dist/anthropic/index.d.ts +213 -0
  7. package/dist/anthropic/index.js +6 -0
  8. package/dist/anthropic/index.js.map +1 -0
  9. package/dist/anthropic-agent-sdk/index.cjs +744 -0
  10. package/dist/anthropic-agent-sdk/index.cjs.map +1 -0
  11. package/dist/anthropic-agent-sdk/index.d.cts +371 -0
  12. package/dist/anthropic-agent-sdk/index.d.ts +371 -0
  13. package/dist/anthropic-agent-sdk/index.js +735 -0
  14. package/dist/anthropic-agent-sdk/index.js.map +1 -0
  15. package/dist/browser/anthropic/index.cjs +39 -0
  16. package/dist/browser/anthropic/index.cjs.map +1 -0
  17. package/dist/browser/anthropic/index.js +6 -0
  18. package/dist/browser/anthropic/index.js.map +1 -0
  19. package/dist/browser/anthropic-agent-sdk/index.cjs +744 -0
  20. package/dist/browser/anthropic-agent-sdk/index.cjs.map +1 -0
  21. package/dist/browser/anthropic-agent-sdk/index.js +735 -0
  22. package/dist/browser/anthropic-agent-sdk/index.js.map +1 -0
  23. package/dist/browser/chunk-3643DC7K.cjs +365 -0
  24. package/dist/browser/chunk-3643DC7K.cjs.map +1 -0
  25. package/dist/browser/chunk-4FALQMOZ.js +232 -0
  26. package/dist/browser/chunk-4FALQMOZ.js.map +1 -0
  27. package/dist/browser/chunk-5J2QBK75.js +884 -0
  28. package/dist/browser/chunk-5J2QBK75.js.map +1 -0
  29. package/dist/browser/chunk-7MSXWGAH.js +53 -0
  30. package/dist/browser/chunk-7MSXWGAH.js.map +1 -0
  31. package/dist/browser/chunk-A24L5N5N.js +596 -0
  32. package/dist/browser/chunk-A24L5N5N.js.map +1 -0
  33. package/dist/browser/chunk-B7DEUDP6.cjs +177 -0
  34. package/dist/browser/chunk-B7DEUDP6.cjs.map +1 -0
  35. package/dist/browser/chunk-F6CJACNH.cjs +604 -0
  36. package/dist/browser/chunk-F6CJACNH.cjs.map +1 -0
  37. package/dist/browser/chunk-JBOYFQSB.js +412 -0
  38. package/dist/browser/chunk-JBOYFQSB.js.map +1 -0
  39. package/dist/browser/chunk-KRBADE6R.cjs +183 -0
  40. package/dist/browser/chunk-KRBADE6R.cjs.map +1 -0
  41. package/dist/browser/chunk-MCJYZH6W.cjs +415 -0
  42. package/dist/browser/chunk-MCJYZH6W.cjs.map +1 -0
  43. package/dist/browser/chunk-NQG2IAQS.js +178 -0
  44. package/dist/browser/chunk-NQG2IAQS.js.map +1 -0
  45. package/dist/browser/chunk-O4HG3OSK.cjs +929 -0
  46. package/dist/browser/chunk-O4HG3OSK.cjs.map +1 -0
  47. package/dist/browser/chunk-QWRQJO57.js +363 -0
  48. package/dist/browser/chunk-QWRQJO57.js.map +1 -0
  49. package/dist/browser/chunk-SWQOPFE4.cjs +234 -0
  50. package/dist/browser/chunk-SWQOPFE4.cjs.map +1 -0
  51. package/dist/browser/chunk-TYDG747E.js +171 -0
  52. package/dist/browser/chunk-TYDG747E.js.map +1 -0
  53. package/dist/browser/chunk-TZRSDDFP.cjs +56 -0
  54. package/dist/browser/chunk-TZRSDDFP.cjs.map +1 -0
  55. package/dist/browser/index.cjs +587 -0
  56. package/dist/browser/index.cjs.map +1 -0
  57. package/dist/browser/index.js +522 -0
  58. package/dist/browser/index.js.map +1 -0
  59. package/dist/browser/integrations/pino.cjs +89 -0
  60. package/dist/browser/integrations/pino.cjs.map +1 -0
  61. package/dist/browser/integrations/pino.js +86 -0
  62. package/dist/browser/integrations/pino.js.map +1 -0
  63. package/dist/browser/langchain/index.cjs +535 -0
  64. package/dist/browser/langchain/index.cjs.map +1 -0
  65. package/dist/browser/langchain/index.js +528 -0
  66. package/dist/browser/langchain/index.js.map +1 -0
  67. package/dist/browser/langgraph/index.cjs +377 -0
  68. package/dist/browser/langgraph/index.cjs.map +1 -0
  69. package/dist/browser/langgraph/index.js +371 -0
  70. package/dist/browser/langgraph/index.js.map +1 -0
  71. package/dist/browser/openai/index.cjs +125 -0
  72. package/dist/browser/openai/index.cjs.map +1 -0
  73. package/dist/browser/openai/index.js +122 -0
  74. package/dist/browser/openai/index.js.map +1 -0
  75. package/dist/browser/openai-agents/index.cjs +689 -0
  76. package/dist/browser/openai-agents/index.cjs.map +1 -0
  77. package/dist/browser/openai-agents/index.js +678 -0
  78. package/dist/browser/openai-agents/index.js.map +1 -0
  79. package/dist/browser/vercel-ai/index.cjs +233 -0
  80. package/dist/browser/vercel-ai/index.cjs.map +1 -0
  81. package/dist/browser/vercel-ai/index.js +231 -0
  82. package/dist/browser/vercel-ai/index.js.map +1 -0
  83. package/dist/chunk-4R4SHGOK.js +363 -0
  84. package/dist/chunk-4R4SHGOK.js.map +1 -0
  85. package/dist/chunk-7EO7MQBA.cjs +183 -0
  86. package/dist/chunk-7EO7MQBA.cjs.map +1 -0
  87. package/dist/chunk-7YCENA54.cjs +604 -0
  88. package/dist/chunk-7YCENA54.cjs.map +1 -0
  89. package/dist/chunk-CKFOGDUF.js +596 -0
  90. package/dist/chunk-CKFOGDUF.js.map +1 -0
  91. package/dist/chunk-FJUNILZT.cjs +1324 -0
  92. package/dist/chunk-FJUNILZT.cjs.map +1 -0
  93. package/dist/chunk-HDAFUKQ3.js +171 -0
  94. package/dist/chunk-HDAFUKQ3.js.map +1 -0
  95. package/dist/chunk-KBWPNIH4.cjs +234 -0
  96. package/dist/chunk-KBWPNIH4.cjs.map +1 -0
  97. package/dist/chunk-KJEO52QS.cjs +365 -0
  98. package/dist/chunk-KJEO52QS.cjs.map +1 -0
  99. package/dist/chunk-KZBCOZIQ.cjs +177 -0
  100. package/dist/chunk-KZBCOZIQ.cjs.map +1 -0
  101. package/dist/chunk-ME5JALGT.js +53 -0
  102. package/dist/chunk-ME5JALGT.js.map +1 -0
  103. package/dist/chunk-PVHDEPRE.cjs +56 -0
  104. package/dist/chunk-PVHDEPRE.cjs.map +1 -0
  105. package/dist/chunk-RTL23YOQ.js +178 -0
  106. package/dist/chunk-RTL23YOQ.js.map +1 -0
  107. package/dist/chunk-TQWI4UYO.js +1277 -0
  108. package/dist/chunk-TQWI4UYO.js.map +1 -0
  109. package/dist/chunk-VXDBDPDR.cjs +415 -0
  110. package/dist/chunk-VXDBDPDR.cjs.map +1 -0
  111. package/dist/chunk-XTKMUJWI.js +232 -0
  112. package/dist/chunk-XTKMUJWI.js.map +1 -0
  113. package/dist/chunk-ZKUGOWER.js +412 -0
  114. package/dist/chunk-ZKUGOWER.js.map +1 -0
  115. package/dist/index.cjs +843 -0
  116. package/dist/index.cjs.map +1 -0
  117. package/dist/index.d.cts +464 -0
  118. package/dist/index.d.ts +464 -0
  119. package/dist/index.js +778 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/integrations/pino.cjs +89 -0
  122. package/dist/integrations/pino.cjs.map +1 -0
  123. package/dist/integrations/pino.d.cts +65 -0
  124. package/dist/integrations/pino.d.ts +65 -0
  125. package/dist/integrations/pino.js +86 -0
  126. package/dist/integrations/pino.js.map +1 -0
  127. package/dist/langchain/index.cjs +535 -0
  128. package/dist/langchain/index.cjs.map +1 -0
  129. package/dist/langchain/index.d.cts +265 -0
  130. package/dist/langchain/index.d.ts +265 -0
  131. package/dist/langchain/index.js +528 -0
  132. package/dist/langchain/index.js.map +1 -0
  133. package/dist/langgraph/index.cjs +377 -0
  134. package/dist/langgraph/index.cjs.map +1 -0
  135. package/dist/langgraph/index.d.cts +324 -0
  136. package/dist/langgraph/index.d.ts +324 -0
  137. package/dist/langgraph/index.js +371 -0
  138. package/dist/langgraph/index.js.map +1 -0
  139. package/dist/openai/index.cjs +125 -0
  140. package/dist/openai/index.cjs.map +1 -0
  141. package/dist/openai/index.d.cts +136 -0
  142. package/dist/openai/index.d.ts +136 -0
  143. package/dist/openai/index.js +122 -0
  144. package/dist/openai/index.js.map +1 -0
  145. package/dist/openai-agents/index.cjs +689 -0
  146. package/dist/openai-agents/index.cjs.map +1 -0
  147. package/dist/openai-agents/index.d.cts +502 -0
  148. package/dist/openai-agents/index.d.ts +502 -0
  149. package/dist/openai-agents/index.js +678 -0
  150. package/dist/openai-agents/index.js.map +1 -0
  151. package/dist/spans-DZtMuBvc.d.cts +73 -0
  152. package/dist/spans-DZtMuBvc.d.ts +73 -0
  153. package/dist/tracing-BYAqjT5Q.d.cts +114 -0
  154. package/dist/tracing-rz9cWQ8d.d.ts +114 -0
  155. package/dist/vercel-ai/index.cjs +233 -0
  156. package/dist/vercel-ai/index.cjs.map +1 -0
  157. package/dist/vercel-ai/index.d.cts +93 -0
  158. package/dist/vercel-ai/index.d.ts +93 -0
  159. package/dist/vercel-ai/index.js +231 -0
  160. package/dist/vercel-ai/index.js.map +1 -0
  161. package/package.json +182 -0
@@ -0,0 +1,929 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __esm = (fn, res, err) => function __init() {
8
+ if (err) throw err[0];
9
+ try {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ } catch (e) {
12
+ throw err = [e], e;
13
+ }
14
+ };
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/_internal/env.ts
30
+ function readEnv(key) {
31
+ if (typeof process !== "undefined" && process.env) {
32
+ const v = process.env[key];
33
+ if (typeof v === "string") return v;
34
+ }
35
+ const denoGlobal = globalThis.Deno;
36
+ if (denoGlobal?.env?.get) {
37
+ try {
38
+ const v = denoGlobal.env.get(key);
39
+ if (typeof v === "string") return v;
40
+ } catch {
41
+ }
42
+ }
43
+ return void 0;
44
+ }
45
+ function truthy(value) {
46
+ if (!value) return false;
47
+ return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase());
48
+ }
49
+ function getApiKey() {
50
+ const raw = readEnv("MORSE_API_KEY");
51
+ if (!raw) return void 0;
52
+ const trimmed = raw.trim();
53
+ return trimmed || void 0;
54
+ }
55
+ function getEndpoint() {
56
+ const raw = readEnv("MORSE_ENDPOINT");
57
+ if (!raw) return void 0;
58
+ const trimmed = raw.trim();
59
+ return trimmed || void 0;
60
+ }
61
+ function getFlushIntervalSeconds(defaultSeconds = 2) {
62
+ const raw = readEnv("MORSE_FLUSH_INTERVAL_SECONDS");
63
+ if (!raw) return defaultSeconds;
64
+ const parsed = Number.parseFloat(raw.trim());
65
+ if (!Number.isFinite(parsed) || parsed <= 0) return defaultSeconds;
66
+ return parsed;
67
+ }
68
+ function isDisabled() {
69
+ return truthy(readEnv("MORSE_DISABLED"));
70
+ }
71
+ function isDebug() {
72
+ return truthy(readEnv("MORSE_SDK_DEBUG"));
73
+ }
74
+ function isTelemetryDisabled() {
75
+ return truthy(readEnv("MORSE_SDK_DISABLE_TELEMETRY"));
76
+ }
77
+ function getInternalSource() {
78
+ const raw = readEnv("MORSE_INTERNAL_SOURCE");
79
+ if (!raw) return void 0;
80
+ const trimmed = raw.trim().toLowerCase();
81
+ if (!trimmed) return void 0;
82
+ return VALID_INTERNAL_SOURCES.has(trimmed) ? trimmed : void 0;
83
+ }
84
+ function isValidInternalSource(value) {
85
+ return typeof value === "string" && VALID_INTERNAL_SOURCES.has(value);
86
+ }
87
+ function getSampleRate(defaultRate = 1) {
88
+ const raw = readEnv("MORSE_SAMPLE_RATE");
89
+ if (!raw) return defaultRate;
90
+ const parsed = Number.parseFloat(raw.trim());
91
+ if (!Number.isFinite(parsed) || parsed < 0 || parsed > 1) return defaultRate;
92
+ return parsed;
93
+ }
94
+ function getMaxFieldBytes(defaultBytes = 65536) {
95
+ const raw = readEnv("MORSE_MAX_FIELD_BYTES");
96
+ if (!raw) return defaultBytes;
97
+ const parsed = Number.parseInt(raw.trim(), 10);
98
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : defaultBytes;
99
+ }
100
+ function getMaxQueueSize(defaultSize = 2048) {
101
+ const raw = readEnv("MORSE_MAX_QUEUE_SIZE");
102
+ if (!raw) return defaultSize;
103
+ const parsed = Number.parseInt(raw.trim(), 10);
104
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : defaultSize;
105
+ }
106
+ function getMaxBatchSize(defaultSize = 512) {
107
+ const raw = readEnv("MORSE_MAX_BATCH_SIZE");
108
+ if (!raw) return defaultSize;
109
+ const parsed = Number.parseInt(raw.trim(), 10);
110
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : defaultSize;
111
+ }
112
+ function isLegacyTransport() {
113
+ return truthy(readEnv("MORSE_LEGACY_TRANSPORT"));
114
+ }
115
+ exports.DEFAULT_ENDPOINT = void 0; var VALID_INTERNAL_SOURCES;
116
+ var init_env = __esm({
117
+ "src/_internal/env.ts"() {
118
+ exports.DEFAULT_ENDPOINT = "https://api.morsehq.dev/api/v1/traces/batch";
119
+ VALID_INTERNAL_SOURCES = /* @__PURE__ */ new Set(["copilot", "investigator", "refagent", "ui-bot"]);
120
+ }
121
+ });
122
+
123
+ // src/_internal/otel-provider.browser.ts
124
+ function noteBrowserRuntime() {
125
+ if (warned) return;
126
+ warned = true;
127
+ try {
128
+ console.info(
129
+ "[morse] Browser build active: OpenTelemetry span export and database capture are Node-only, so traces are sent via Morse's JSON transport instead. Everything else \u2014 run()/span()/track() and W3C traceparent propagation \u2014 behaves identically. Server-side code (Next.js route handlers, RSC, Node services) automatically gets the full OTel pipeline."
130
+ );
131
+ } catch {
132
+ }
133
+ }
134
+ function getEngine() {
135
+ return engine;
136
+ }
137
+ function withOtelSpanContext(traceIdHex, spanIdHex, fn) {
138
+ return fn();
139
+ }
140
+ var warned, OtelEngine, engine;
141
+ var init_otel_provider_browser = __esm({
142
+ "src/_internal/otel-provider.browser.ts"() {
143
+ warned = false;
144
+ OtelEngine = class {
145
+ // Params are declared (not dropped) so this class stays signature-compatible
146
+ // with the real `OtelEngine` — the build swaps the modules, but anything
147
+ // type-checking against this one must see the same shape. `void x` marks the
148
+ // deliberate non-use for @typescript-eslint/no-unused-vars.
149
+ configure(opts) {
150
+ noteBrowserRuntime();
151
+ }
152
+ shutdown() {
153
+ }
154
+ resetForTesting() {
155
+ warned = false;
156
+ }
157
+ async flush() {
158
+ }
159
+ resolveSampled(traceIdHex) {
160
+ return true;
161
+ }
162
+ registerInstrumentations(instrumentations) {
163
+ return null;
164
+ }
165
+ };
166
+ engine = new OtelEngine();
167
+ }
168
+ });
169
+
170
+ // src/_internal/redaction.ts
171
+ function buildRedactionConfig(options) {
172
+ const opts = options ?? {};
173
+ const enabled = opts.enabled !== false;
174
+ if (!enabled) {
175
+ return {
176
+ enabled: false,
177
+ enabledPatterns: /* @__PURE__ */ new Set(),
178
+ extraCompiled: []
179
+ };
180
+ }
181
+ const disabled = new Set(opts.disabledPatterns ?? []);
182
+ for (const key of disabled) {
183
+ if (MANDATORY_PATTERNS.has(key)) {
184
+ throw new Error(`redaction pattern '${key}' cannot be disabled (server-side mandatory)`);
185
+ }
186
+ }
187
+ const active = /* @__PURE__ */ new Set();
188
+ for (const key of PATTERN_ORDER) {
189
+ if (DEFAULT_OFF_PATTERNS.has(key)) continue;
190
+ if (disabled.has(key)) continue;
191
+ active.add(key);
192
+ }
193
+ const extraInput = opts.extraPatterns ?? [];
194
+ if (extraInput.length > EXTRA_PATTERN_CAP) {
195
+ throw new Error(
196
+ `too many redaction extra patterns: ${extraInput.length} (max ${EXTRA_PATTERN_CAP})`
197
+ );
198
+ }
199
+ const extraCompiled = [];
200
+ for (const raw of extraInput) {
201
+ if (typeof raw !== "string") {
202
+ throw new Error(`redaction extra pattern must be a string, got ${typeof raw}`);
203
+ }
204
+ if (raw.length > EXTRA_PATTERN_CHAR_CAP) {
205
+ throw new Error(`redaction extra pattern exceeds ${EXTRA_PATTERN_CHAR_CAP} chars`);
206
+ }
207
+ let compiled;
208
+ try {
209
+ compiled = new RegExp(raw, "g");
210
+ } catch (err) {
211
+ const msg = err instanceof Error ? err.message : String(err);
212
+ throw new Error(`redaction extra pattern failed to compile: ${JSON.stringify(raw)} \u2014 ${msg}`);
213
+ }
214
+ extraCompiled.push(compiled);
215
+ }
216
+ return {
217
+ enabled: true,
218
+ enabledPatterns: active,
219
+ extraCompiled
220
+ };
221
+ }
222
+ function luhnValid(s) {
223
+ let sum = 0;
224
+ let alt = false;
225
+ let digits = 0;
226
+ for (let i = s.length - 1; i >= 0; i--) {
227
+ const ch = s.charCodeAt(i);
228
+ if (ch < 48 || ch > 57) continue;
229
+ let n = ch - 48;
230
+ if (alt) {
231
+ n *= 2;
232
+ if (n > 9) n -= 9;
233
+ }
234
+ sum += n;
235
+ alt = !alt;
236
+ digits++;
237
+ }
238
+ if (digits < 13 || digits > 19) return false;
239
+ return sum % 10 === 0;
240
+ }
241
+ function resolveEnabled(config, override) {
242
+ return config.enabledPatterns;
243
+ }
244
+ function redactString(s, config, enabledOverride) {
245
+ if (!config.enabled && enabledOverride === void 0) {
246
+ return s;
247
+ }
248
+ if (s.length === 0) return s;
249
+ const enabled = resolveEnabled(config);
250
+ let out = s;
251
+ for (const key of PATTERN_ORDER) {
252
+ if (!enabled.has(key)) continue;
253
+ const re = PATTERNS[key];
254
+ if (re === void 0) continue;
255
+ re.lastIndex = 0;
256
+ const replacement = `[REDACTED:${SHORT_KEYS[key]}]`;
257
+ if (key === "credit_card") {
258
+ out = out.replace(re, (m) => luhnValid(m) ? replacement : m);
259
+ } else {
260
+ out = out.replace(re, replacement);
261
+ }
262
+ }
263
+ for (const re of config.extraCompiled) {
264
+ re.lastIndex = 0;
265
+ out = out.replace(re, "[REDACTED:custom]");
266
+ }
267
+ return out;
268
+ }
269
+ function redactValue(value, config, depth = 0) {
270
+ if (!config.enabled) return value;
271
+ if (value === null || value === void 0) return value;
272
+ if (typeof value === "string") return redactString(value, config);
273
+ if (typeof value === "number" || typeof value === "boolean") return value;
274
+ if (depth >= MAX_DEPTH) return value;
275
+ if (Array.isArray(value)) {
276
+ return value.map((item) => redactValue(item, config, depth + 1));
277
+ }
278
+ if (typeof value === "object") {
279
+ const proto = Object.getPrototypeOf(value);
280
+ if (proto === Object.prototype || proto === null) {
281
+ const out = {};
282
+ for (const [k, v] of Object.entries(value)) {
283
+ out[k] = redactValue(v, config, depth + 1);
284
+ }
285
+ return out;
286
+ }
287
+ }
288
+ return value;
289
+ }
290
+ var PATTERN_ORDER, MANDATORY_PATTERNS, DEFAULT_OFF_PATTERNS, SHORT_KEYS, PATTERNS, EXTRA_PATTERN_CAP, EXTRA_PATTERN_CHAR_CAP, MAX_DEPTH;
291
+ var init_redaction = __esm({
292
+ "src/_internal/redaction.ts"() {
293
+ PATTERN_ORDER = [
294
+ "api_key_prefixed",
295
+ "jwt",
296
+ "credit_card",
297
+ "email",
298
+ "phone_us",
299
+ "phone_e164",
300
+ "ssn_us",
301
+ "ip_address"
302
+ ];
303
+ MANDATORY_PATTERNS = /* @__PURE__ */ new Set([
304
+ "api_key_prefixed",
305
+ "jwt",
306
+ "credit_card",
307
+ "ssn_us"
308
+ ]);
309
+ DEFAULT_OFF_PATTERNS = /* @__PURE__ */ new Set(["ip_address"]);
310
+ SHORT_KEYS = {
311
+ api_key_prefixed: "api_key",
312
+ jwt: "jwt",
313
+ credit_card: "credit_card",
314
+ email: "email",
315
+ phone_us: "phone",
316
+ phone_e164: "phone",
317
+ ssn_us: "ssn",
318
+ ip_address: "ip"
319
+ };
320
+ PATTERNS = {
321
+ api_key_prefixed: new RegExp(
322
+ "\\b(?:sk-[A-Za-z0-9_-]{20,}|sk_(?:live|test)_[A-Za-z0-9]{20,}|mhq_[A-Za-z0-9]{20,}|av_[A-Za-z0-9]{20,}|ghp_[A-Za-z0-9]{36}|gho_[A-Za-z0-9]{36}|ghu_[A-Za-z0-9]{36}|ghs_[A-Za-z0-9]{36}|ghr_[A-Za-z0-9]{36}|xox[bopsa]-[0-9A-Za-z\\-]{10,}|(?:AKIA|ASIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASCA)[0-9A-Z]{16})\\b",
323
+ "g"
324
+ ),
325
+ jwt: new RegExp(
326
+ "\\beyJ[A-Za-z0-9_=-]{16,}\\.eyJ[A-Za-z0-9_=-]{16,}\\.[A-Za-z0-9_=-]{16,}\\b",
327
+ "g"
328
+ ),
329
+ credit_card: new RegExp("\\b(?:\\d[ -]?){12,18}\\d\\b", "g"),
330
+ email: new RegExp("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\\b", "gi"),
331
+ // The leading `(?<!\d)` and trailing `(?!\d)` lookarounds prevent
332
+ // the phone matcher from carving a 10-digit substring out of a longer
333
+ // continuous digit run (e.g., a 16-digit credit-card-shaped number that
334
+ // failed Luhn). Without them, `1234567890123456` would emit a
335
+ // `[REDACTED:phone]` for digits 7-16 even though the whole run was
336
+ // never a real phone number. The canonical Python regex needs the same
337
+ // shim — see redaction.py.
338
+ phone_us: new RegExp(
339
+ "(?<!\\d)(?:\\+?1[ \\-.])?\\(?[2-9]\\d{2}\\)?[ \\-.]?\\d{3}[ \\-.]?\\d{4}(?!\\d)",
340
+ "g"
341
+ ),
342
+ phone_e164: new RegExp("(?<!\\d)\\+(?:[0-9][ \\-.]?){8,14}[0-9](?!\\d)", "g"),
343
+ ssn_us: new RegExp(
344
+ "\\b(?!000|666|9\\d{2})\\d{3}[ \\-.](?!00)\\d{2}[ \\-.](?!0000)\\d{4}\\b",
345
+ "g"
346
+ ),
347
+ ip_address: new RegExp(
348
+ "\\b(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}|(?:[A-F0-9]{1,4}:){2,7}[A-F0-9]{1,4})\\b",
349
+ "gi"
350
+ )
351
+ };
352
+ EXTRA_PATTERN_CAP = 10;
353
+ EXTRA_PATTERN_CHAR_CAP = 256;
354
+ MAX_DEPTH = 10;
355
+ }
356
+ });
357
+
358
+ // src/_internal/spans.ts
359
+ function generateTraceId() {
360
+ return randomHex(32);
361
+ }
362
+ function generateSpanId() {
363
+ return randomHex(32);
364
+ }
365
+ function randomHex(chars) {
366
+ const bytes = new Uint8Array(Math.ceil(chars / 2));
367
+ const cryptoObj = globalThis.crypto;
368
+ if (cryptoObj?.getRandomValues) {
369
+ cryptoObj.getRandomValues(bytes);
370
+ } else {
371
+ for (let i = 0; i < bytes.length; i++) {
372
+ bytes[i] = Math.floor(Math.random() * 256);
373
+ }
374
+ }
375
+ let hex = "";
376
+ for (const b of bytes) {
377
+ hex += b.toString(16).padStart(2, "0");
378
+ }
379
+ return hex.slice(0, chars);
380
+ }
381
+ function nowIso() {
382
+ return (/* @__PURE__ */ new Date()).toISOString();
383
+ }
384
+ function spanToWire(span) {
385
+ const out = {};
386
+ for (const [k, v] of Object.entries(span)) {
387
+ if (v !== void 0 && v !== null) {
388
+ out[k] = v;
389
+ }
390
+ }
391
+ return out;
392
+ }
393
+ function buildTraceEntry(fields, spans) {
394
+ return {
395
+ trace: fields,
396
+ spans: spans.map(spanToWire)
397
+ };
398
+ }
399
+ exports.SpanType = void 0;
400
+ var init_spans = __esm({
401
+ "src/_internal/spans.ts"() {
402
+ exports.SpanType = {
403
+ AGENT: "agent",
404
+ LLM: "llm",
405
+ TOOL: "tool",
406
+ HTTP: "http",
407
+ DB: "db",
408
+ CUSTOM: "custom",
409
+ MEMORY: "memory",
410
+ // MHQ-482: matches Python's `SpanType.RETRIEVER` (apps/sdk/python/src/morse_ai/spans.py).
411
+ // @beta — retriever span type is subject to change before SDK v1.0 (see
412
+ // the plain-LangChain adapter's on_retriever_* callbacks in src/langchain/).
413
+ RETRIEVER: "retriever"
414
+ };
415
+ }
416
+ });
417
+
418
+ // src/_internal/tracing.ts
419
+ function tryLoadAls() {
420
+ if (alsLoaded) return als;
421
+ alsLoaded = true;
422
+ if (typeof process === "undefined" || !process.versions?.node) {
423
+ als = null;
424
+ return als;
425
+ }
426
+ try {
427
+ const dynamicRequire = Function("m", "return require(m)");
428
+ const mod = dynamicRequire("node:async_hooks");
429
+ if (mod?.AsyncLocalStorage) {
430
+ als = new mod.AsyncLocalStorage();
431
+ return als;
432
+ }
433
+ } catch {
434
+ }
435
+ als = null;
436
+ return als;
437
+ }
438
+ function getActiveTraceState() {
439
+ const store = tryLoadAls();
440
+ if (store) {
441
+ return store.getStore() ?? null;
442
+ }
443
+ return browserState;
444
+ }
445
+ function setActiveTraceState(state) {
446
+ const previous = browserState;
447
+ browserState = state;
448
+ return () => {
449
+ browserState = previous;
450
+ };
451
+ }
452
+ function setTransport(t) {
453
+ transport = t;
454
+ }
455
+ function getTransport() {
456
+ return transport;
457
+ }
458
+ function setRedactionConfig(config) {
459
+ redactionConfig = config;
460
+ }
461
+ function getRedactionConfig() {
462
+ return redactionConfig;
463
+ }
464
+ function setSource(value) {
465
+ _source = value && value.length > 0 ? value : null;
466
+ }
467
+ function getLastTrace() {
468
+ return lastTrace;
469
+ }
470
+ function nowMonotonic() {
471
+ if (typeof performance !== "undefined" && typeof performance.now === "function") {
472
+ return performance.now();
473
+ }
474
+ return Date.now();
475
+ }
476
+ function elapsedMs(startMonotonic) {
477
+ return Math.max(0, Math.round(nowMonotonic() - startMonotonic));
478
+ }
479
+ function finalizeSpan(span, startMono, status = "completed", errorMessage) {
480
+ span.ended_at = nowIso();
481
+ span.duration_ms = elapsedMs(startMono);
482
+ span.status = status;
483
+ if (errorMessage !== void 0) {
484
+ span.error_message = errorMessage;
485
+ }
486
+ }
487
+ function redactSpanDict(raw, config) {
488
+ if (!config.enabled) return raw;
489
+ const out = {};
490
+ for (const [k, v] of Object.entries(raw)) {
491
+ if (SPAN_REDACTABLE_FIELDS.has(k)) {
492
+ out[k] = redactValue(v, config);
493
+ } else {
494
+ out[k] = v;
495
+ }
496
+ }
497
+ return out;
498
+ }
499
+ function redactTraceDict(raw, config) {
500
+ if (!config.enabled) return raw;
501
+ const out = {};
502
+ for (const [k, v] of Object.entries(raw)) {
503
+ if (TRACE_REDACTABLE_FIELDS.has(k)) {
504
+ out[k] = redactValue(v, config);
505
+ } else {
506
+ out[k] = v;
507
+ }
508
+ }
509
+ return out;
510
+ }
511
+ function buildTraceDict(state, rootSpan) {
512
+ const trace = {
513
+ trace_id: state.traceId,
514
+ // Wire-format field is `agent` (matches backend TracePayloadIn schema +
515
+ // sibling Python SDK). Was `agent_name` historically — the mismatch
516
+ // caused dev ingest to reject every TS-emitted trace with a 422
517
+ // until Phase 13 Option A dogfood surfaced it.
518
+ agent: state.agentName,
519
+ status: rootSpan.status,
520
+ started_at: rootSpan.started_at
521
+ };
522
+ if (rootSpan.ended_at) trace.ended_at = rootSpan.ended_at;
523
+ if (rootSpan.duration_ms !== void 0) trace.duration_ms = rootSpan.duration_ms;
524
+ if (rootSpan.error_message) trace.error_message = rootSpan.error_message;
525
+ if (state.success !== void 0) trace.success = state.success;
526
+ if (state.outcome !== void 0) trace.outcome = state.outcome;
527
+ if (state.threadId !== void 0) trace.thread_id = state.threadId;
528
+ if (state.userId !== void 0) trace.user_id = state.userId;
529
+ if (state.userMetadata && Object.keys(state.userMetadata).length > 0) {
530
+ trace.user_metadata = state.userMetadata;
531
+ }
532
+ const allSpans = [rootSpan, ...state.completedSpans];
533
+ const spans = allSpans.map((s) => {
534
+ const out2 = {};
535
+ for (const [k, v] of Object.entries(s)) {
536
+ if (v !== void 0 && v !== null) {
537
+ out2[k] = v;
538
+ }
539
+ }
540
+ return out2;
541
+ });
542
+ const config = redactionConfig;
543
+ const out = {
544
+ trace: redactTraceDict(trace, config),
545
+ spans: spans.map((s) => redactSpanDict(s, config))
546
+ };
547
+ const effectiveSource = state.sourceOverride || _source;
548
+ if (effectiveSource) {
549
+ out.resource = { "morse_ai.source": effectiveSource };
550
+ }
551
+ return out;
552
+ }
553
+ function sendTrace(entry) {
554
+ lastTrace = entry;
555
+ if (isLegacyTransport() || true) {
556
+ if (transport !== null) {
557
+ try {
558
+ transport.track({ traces: [entry] });
559
+ } catch {
560
+ }
561
+ }
562
+ return;
563
+ }
564
+ }
565
+ function withDbCaptureContext(traceId, spanIdHex, fn) {
566
+ try {
567
+ return withOtelSpanContext(traceId, spanIdHex.slice(0, 16), fn);
568
+ } catch {
569
+ return fn();
570
+ }
571
+ }
572
+ function buildRunHandle(state) {
573
+ return {
574
+ setOutcome(success, outcome) {
575
+ state.success = success;
576
+ if (outcome !== void 0) state.outcome = outcome;
577
+ },
578
+ setError(message) {
579
+ state.errorMessage = message;
580
+ state.success = false;
581
+ },
582
+ _state: state
583
+ };
584
+ }
585
+ function startTrace(opts) {
586
+ let traceId;
587
+ if (opts.incomingTraceparent) {
588
+ const { extractTraceparent: extractTraceparent2 } = (init_propagation(), __toCommonJS(propagation_exports));
589
+ const ctx = extractTraceparent2(opts.incomingTraceparent);
590
+ if (ctx) {
591
+ traceId = ctx.traceId;
592
+ }
593
+ }
594
+ if (!traceId) traceId = generateTraceId();
595
+ const state = {
596
+ traceId,
597
+ agentName: opts.agentName,
598
+ spanStack: [],
599
+ completedSpans: []
600
+ };
601
+ if (opts.threadId !== void 0) state.threadId = opts.threadId;
602
+ if (opts.userId !== void 0) state.userId = opts.userId;
603
+ if (opts.userMetadata) {
604
+ state.userMetadata = Object.fromEntries(
605
+ Object.entries(opts.userMetadata).map(([k, v]) => [k, String(v)])
606
+ );
607
+ }
608
+ if (isValidInternalSource(opts.source)) {
609
+ state.sourceOverride = opts.source;
610
+ }
611
+ const rootSpan = {
612
+ trace_id: traceId,
613
+ span_id: generateSpanId(),
614
+ type: "agent",
615
+ name: opts.agentName,
616
+ started_at: nowIso(),
617
+ status: "completed"
618
+ };
619
+ state.spanStack.push(rootSpan);
620
+ return { state, rootSpan, startMono: nowMonotonic() };
621
+ }
622
+ function endTrace(state, rootSpan, startMono, threwError) {
623
+ state.spanStack.pop();
624
+ if (threwError !== void 0) {
625
+ const msg = state.errorMessage ?? errToString(threwError);
626
+ finalizeSpan(rootSpan, startMono, "failed", msg);
627
+ if (state.success === void 0) state.success = false;
628
+ } else if (state.errorMessage !== void 0) {
629
+ finalizeSpan(rootSpan, startMono, "failed", state.errorMessage);
630
+ } else {
631
+ finalizeSpan(rootSpan, startMono);
632
+ if (state.success === void 0) state.success = true;
633
+ }
634
+ const dict = buildTraceDict(state, rootSpan);
635
+ sendTrace(dict);
636
+ }
637
+ function errToString(e) {
638
+ if (e instanceof Error) return e.message;
639
+ return String(e);
640
+ }
641
+ function runSync(opts, fn) {
642
+ const { state, rootSpan, startMono } = startTrace(opts);
643
+ const handle = buildRunHandle(state);
644
+ const store = tryLoadAls();
645
+ const runFn = () => withDbCaptureContext(state.traceId, rootSpan.span_id, () => fn(handle));
646
+ if (store) {
647
+ try {
648
+ const result = store.run(state, runFn);
649
+ endTrace(state, rootSpan, startMono, void 0);
650
+ return result;
651
+ } catch (err) {
652
+ endTrace(state, rootSpan, startMono, err);
653
+ throw err;
654
+ }
655
+ } else {
656
+ const reset = setActiveTraceState(state);
657
+ try {
658
+ const result = runFn();
659
+ endTrace(state, rootSpan, startMono, void 0);
660
+ return result;
661
+ } catch (err) {
662
+ endTrace(state, rootSpan, startMono, err);
663
+ throw err;
664
+ } finally {
665
+ reset();
666
+ }
667
+ }
668
+ }
669
+ async function runAsync(opts, fn) {
670
+ const { state, rootSpan, startMono } = startTrace(opts);
671
+ const handle = buildRunHandle(state);
672
+ const store = tryLoadAls();
673
+ const runFn = () => withDbCaptureContext(state.traceId, rootSpan.span_id, () => fn(handle));
674
+ if (store) {
675
+ try {
676
+ const result = await store.run(state, runFn);
677
+ endTrace(state, rootSpan, startMono, void 0);
678
+ return result;
679
+ } catch (err) {
680
+ endTrace(state, rootSpan, startMono, err);
681
+ throw err;
682
+ }
683
+ } else {
684
+ const reset = setActiveTraceState(state);
685
+ try {
686
+ const result = await runFn();
687
+ endTrace(state, rootSpan, startMono, void 0);
688
+ return result;
689
+ } catch (err) {
690
+ endTrace(state, rootSpan, startMono, err);
691
+ throw err;
692
+ } finally {
693
+ reset();
694
+ }
695
+ }
696
+ }
697
+ function setContext(dims) {
698
+ const state = getActiveTraceState();
699
+ if (state === null) return;
700
+ if (state.userMetadata === void 0) state.userMetadata = {};
701
+ for (const [k, v] of Object.entries(dims)) {
702
+ state.userMetadata[k] = String(v);
703
+ }
704
+ }
705
+ function startSpan(opts) {
706
+ const state = getActiveTraceState();
707
+ if (state === null) return null;
708
+ const parent = state.spanStack[state.spanStack.length - 1];
709
+ const span = {
710
+ trace_id: state.traceId,
711
+ span_id: generateSpanId(),
712
+ type: opts.type ?? "custom",
713
+ name: opts.name,
714
+ parent_span_id: parent?.span_id,
715
+ started_at: nowIso(),
716
+ status: "completed",
717
+ metadata: opts.metadata
718
+ };
719
+ const startMono = nowMonotonic();
720
+ state.spanStack.push(span);
721
+ return {
722
+ span,
723
+ end(error) {
724
+ if (state.spanStack[state.spanStack.length - 1] === span) {
725
+ state.spanStack.pop();
726
+ }
727
+ if (error !== void 0) {
728
+ finalizeSpan(span, startMono, "failed", errToString(error));
729
+ } else {
730
+ finalizeSpan(span, startMono);
731
+ }
732
+ state.completedSpans.push(span);
733
+ }
734
+ };
735
+ }
736
+ function spanSync(opts, fn) {
737
+ const handle = startSpan(opts);
738
+ try {
739
+ const result = handle ? withDbCaptureContext(handle.span.trace_id, handle.span.span_id, () => fn(handle)) : fn(handle);
740
+ handle?.end();
741
+ return result;
742
+ } catch (err) {
743
+ handle?.end(err);
744
+ throw err;
745
+ }
746
+ }
747
+ async function spanAsync(opts, fn) {
748
+ const handle = startSpan(opts);
749
+ try {
750
+ const result = handle ? await withDbCaptureContext(handle.span.trace_id, handle.span.span_id, () => fn(handle)) : await fn(handle);
751
+ handle?.end();
752
+ return result;
753
+ } catch (err) {
754
+ handle?.end(err);
755
+ throw err;
756
+ }
757
+ }
758
+ function _resetForTesting() {
759
+ browserState = null;
760
+ lastTrace = null;
761
+ redactionConfig = buildRedactionConfig();
762
+ }
763
+ var als, alsLoaded, browserState, transport, redactionConfig, _source, lastTrace, SPAN_REDACTABLE_FIELDS, TRACE_REDACTABLE_FIELDS;
764
+ var init_tracing = __esm({
765
+ "src/_internal/tracing.ts"() {
766
+ init_env();
767
+ init_otel_provider_browser();
768
+ init_redaction();
769
+ init_spans();
770
+ als = null;
771
+ alsLoaded = false;
772
+ browserState = null;
773
+ transport = null;
774
+ redactionConfig = buildRedactionConfig();
775
+ _source = null;
776
+ lastTrace = null;
777
+ SPAN_REDACTABLE_FIELDS = /* @__PURE__ */ new Set([
778
+ "name",
779
+ "input_data",
780
+ "output_data",
781
+ "error_message",
782
+ "metadata"
783
+ ]);
784
+ TRACE_REDACTABLE_FIELDS = /* @__PURE__ */ new Set(["agent", "outcome", "error_message"]);
785
+ }
786
+ });
787
+
788
+ // src/propagation.ts
789
+ var propagation_exports = {};
790
+ __export(propagation_exports, {
791
+ W3C_FLAGS_SAMPLED: () => W3C_FLAGS_SAMPLED,
792
+ W3C_TRACEPARENT_HEADER: () => exports.W3C_TRACEPARENT_HEADER,
793
+ W3C_VERSION: () => W3C_VERSION,
794
+ extractFromRequest: () => extractFromRequest,
795
+ extractTraceparent: () => extractTraceparent,
796
+ formatTraceparent: () => formatTraceparent,
797
+ injectIntoRequestInit: () => injectIntoRequestInit,
798
+ injectTraceparent: () => injectTraceparent
799
+ });
800
+ function formatTraceparent(traceId, spanId) {
801
+ const tid = traceId.slice(0, TRACE_ID_LEN).padStart(TRACE_ID_LEN, "0").toLowerCase();
802
+ const sid = spanId.slice(0, SPAN_ID_LEN).padStart(SPAN_ID_LEN, "0").toLowerCase();
803
+ return `${W3C_VERSION}-${tid}-${sid}-${W3C_FLAGS_SAMPLED}`;
804
+ }
805
+ function injectTraceparent(headers) {
806
+ const state = getActiveTraceState();
807
+ if (state === null) return headers;
808
+ const traceId = state.traceId;
809
+ const span = state.spanStack.length > 0 ? state.spanStack[state.spanStack.length - 1] : state.completedSpans[state.completedSpans.length - 1];
810
+ const rawSpanId = span?.span_id ?? traceId;
811
+ const spanId = rawSpanId.slice(0, SPAN_ID_LEN);
812
+ const value = formatTraceparent(traceId, spanId);
813
+ setHeader(headers, exports.W3C_TRACEPARENT_HEADER, value);
814
+ return headers;
815
+ }
816
+ function extractTraceparent(headers) {
817
+ if (headers === null || headers === void 0) return null;
818
+ const raw = typeof headers === "string" ? headers : getHeader(headers, exports.W3C_TRACEPARENT_HEADER);
819
+ if (!raw) return null;
820
+ const parts = raw.split("-");
821
+ if (parts.length !== 4) return null;
822
+ const [version, traceId, spanId] = parts;
823
+ if (version !== W3C_VERSION) return null;
824
+ if (traceId.length !== TRACE_ID_LEN) return null;
825
+ if (spanId.length !== SPAN_ID_LEN) return null;
826
+ if (!/^[0-9a-f]+$/.test(traceId)) return null;
827
+ if (!/^[0-9a-f]+$/.test(spanId)) return null;
828
+ if (/^0+$/.test(traceId)) return null;
829
+ if (/^0+$/.test(spanId)) return null;
830
+ return { traceId, parentSpanId: spanId };
831
+ }
832
+ function extractFromRequest(req) {
833
+ return extractTraceparent(req.headers);
834
+ }
835
+ function injectIntoRequestInit(init) {
836
+ const merged = new Headers(init?.headers ?? {});
837
+ injectTraceparent(merged);
838
+ return { ...init ?? {}, headers: merged };
839
+ }
840
+ function getHeader(headers, name) {
841
+ if (headers instanceof Headers) {
842
+ return headers.get(name);
843
+ }
844
+ const maybeGet = headers.get;
845
+ if (typeof maybeGet === "function") {
846
+ const v = maybeGet.call(headers, name);
847
+ if (typeof v === "string") return v;
848
+ if (v === null || v === void 0) return null;
849
+ }
850
+ const lower = name.toLowerCase();
851
+ for (const [k, v] of Object.entries(headers)) {
852
+ if (k.toLowerCase() === lower) {
853
+ if (typeof v === "string") return v;
854
+ if (Array.isArray(v) && v.length > 0 && typeof v[0] === "string") return v[0];
855
+ return null;
856
+ }
857
+ }
858
+ return null;
859
+ }
860
+ function setHeader(headers, name, value) {
861
+ if (headers instanceof Headers) {
862
+ headers.set(name, value);
863
+ return;
864
+ }
865
+ const maybeSet = headers.set;
866
+ if (typeof maybeSet === "function") {
867
+ maybeSet.call(headers, name, value);
868
+ return;
869
+ }
870
+ headers[name] = value;
871
+ }
872
+ exports.W3C_TRACEPARENT_HEADER = void 0; var W3C_VERSION, W3C_FLAGS_SAMPLED, TRACE_ID_LEN, SPAN_ID_LEN;
873
+ var init_propagation = __esm({
874
+ "src/propagation.ts"() {
875
+ init_tracing();
876
+ exports.W3C_TRACEPARENT_HEADER = "traceparent";
877
+ W3C_VERSION = "00";
878
+ W3C_FLAGS_SAMPLED = "01";
879
+ TRACE_ID_LEN = 32;
880
+ SPAN_ID_LEN = 16;
881
+ }
882
+ });
883
+
884
+ exports._resetForTesting = _resetForTesting;
885
+ exports.buildRedactionConfig = buildRedactionConfig;
886
+ exports.buildTraceEntry = buildTraceEntry;
887
+ exports.extractTraceparent = extractTraceparent;
888
+ exports.formatTraceparent = formatTraceparent;
889
+ exports.generateSpanId = generateSpanId;
890
+ exports.generateTraceId = generateTraceId;
891
+ exports.getActiveTraceState = getActiveTraceState;
892
+ exports.getApiKey = getApiKey;
893
+ exports.getEndpoint = getEndpoint;
894
+ exports.getEngine = getEngine;
895
+ exports.getFlushIntervalSeconds = getFlushIntervalSeconds;
896
+ exports.getInternalSource = getInternalSource;
897
+ exports.getLastTrace = getLastTrace;
898
+ exports.getMaxBatchSize = getMaxBatchSize;
899
+ exports.getMaxFieldBytes = getMaxFieldBytes;
900
+ exports.getMaxQueueSize = getMaxQueueSize;
901
+ exports.getRedactionConfig = getRedactionConfig;
902
+ exports.getSampleRate = getSampleRate;
903
+ exports.getTransport = getTransport;
904
+ exports.init_env = init_env;
905
+ exports.init_otel_provider_browser = init_otel_provider_browser;
906
+ exports.init_propagation = init_propagation;
907
+ exports.init_redaction = init_redaction;
908
+ exports.init_spans = init_spans;
909
+ exports.init_tracing = init_tracing;
910
+ exports.injectIntoRequestInit = injectIntoRequestInit;
911
+ exports.injectTraceparent = injectTraceparent;
912
+ exports.isDebug = isDebug;
913
+ exports.isDisabled = isDisabled;
914
+ exports.isTelemetryDisabled = isTelemetryDisabled;
915
+ exports.isValidInternalSource = isValidInternalSource;
916
+ exports.nowIso = nowIso;
917
+ exports.redactValue = redactValue;
918
+ exports.runAsync = runAsync;
919
+ exports.runSync = runSync;
920
+ exports.sendTrace = sendTrace;
921
+ exports.setContext = setContext;
922
+ exports.setRedactionConfig = setRedactionConfig;
923
+ exports.setSource = setSource;
924
+ exports.setTransport = setTransport;
925
+ exports.spanAsync = spanAsync;
926
+ exports.spanSync = spanSync;
927
+ exports.startSpan = startSpan;
928
+ //# sourceMappingURL=chunk-O4HG3OSK.cjs.map
929
+ //# sourceMappingURL=chunk-O4HG3OSK.cjs.map