@morsehq-dev/sdk 0.5.0-rc.3 → 0.5.0-rc.5

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 (108) hide show
  1. package/README.md +51 -12
  2. package/dist/anthropic/index.cjs +11 -11
  3. package/dist/anthropic/index.js +4 -4
  4. package/dist/anthropic-agent-sdk/index.cjs +157 -102
  5. package/dist/anthropic-agent-sdk/index.cjs.map +1 -1
  6. package/dist/anthropic-agent-sdk/index.d.cts +57 -34
  7. package/dist/anthropic-agent-sdk/index.d.ts +57 -34
  8. package/dist/anthropic-agent-sdk/index.js +126 -72
  9. package/dist/anthropic-agent-sdk/index.js.map +1 -1
  10. package/dist/browser/anthropic/index.cjs +11 -11
  11. package/dist/browser/anthropic/index.js +4 -4
  12. package/dist/browser/anthropic-agent-sdk/index.cjs +157 -102
  13. package/dist/browser/anthropic-agent-sdk/index.cjs.map +1 -1
  14. package/dist/browser/anthropic-agent-sdk/index.js +126 -72
  15. package/dist/browser/anthropic-agent-sdk/index.js.map +1 -1
  16. package/dist/browser/{chunk-KFWCOUL3.cjs → chunk-26Q2QD5J.cjs} +5 -5
  17. package/dist/browser/{chunk-KFWCOUL3.cjs.map → chunk-26Q2QD5J.cjs.map} +1 -1
  18. package/dist/browser/{chunk-QCI2ZDQS.cjs → chunk-47GVOQB4.cjs} +12 -12
  19. package/dist/browser/{chunk-QCI2ZDQS.cjs.map → chunk-47GVOQB4.cjs.map} +1 -1
  20. package/dist/browser/{chunk-LGG5PL5U.js → chunk-64YI3IZS.js} +3 -3
  21. package/dist/browser/{chunk-LGG5PL5U.js.map → chunk-64YI3IZS.js.map} +1 -1
  22. package/dist/{chunk-HCEKAVDR.js → browser/chunk-CI7M2GHD.js} +4 -4
  23. package/dist/browser/{chunk-KGSLJLWW.js.map → chunk-CI7M2GHD.js.map} +1 -1
  24. package/dist/browser/{chunk-MI4OUWUZ.js → chunk-EH326H6U.js} +3 -3
  25. package/dist/browser/{chunk-MI4OUWUZ.js.map → chunk-EH326H6U.js.map} +1 -1
  26. package/dist/browser/{chunk-WUQXNRD3.js → chunk-GLL57K7P.js} +3 -3
  27. package/dist/browser/{chunk-WUQXNRD3.js.map → chunk-GLL57K7P.js.map} +1 -1
  28. package/dist/browser/{chunk-PM5D6VXF.cjs → chunk-IHIS62VS.cjs} +5 -4
  29. package/dist/browser/chunk-IHIS62VS.cjs.map +1 -0
  30. package/dist/browser/{chunk-N4Q2WMOE.js → chunk-MIB3EOC4.js} +5 -5
  31. package/dist/browser/{chunk-N4Q2WMOE.js.map → chunk-MIB3EOC4.js.map} +1 -1
  32. package/dist/browser/{chunk-P7XWSMFX.cjs → chunk-QAFFDJFK.cjs} +6 -6
  33. package/dist/browser/{chunk-P7XWSMFX.cjs.map → chunk-QAFFDJFK.cjs.map} +1 -1
  34. package/dist/{chunk-7PGR4NJG.js → browser/chunk-UL5TNXQL.js} +4 -4
  35. package/dist/browser/{chunk-MOBYR3AP.js.map → chunk-UL5TNXQL.js.map} +1 -1
  36. package/dist/browser/{chunk-Y3BOPSM3.js → chunk-V7AUPQIJ.js} +5 -5
  37. package/dist/browser/chunk-V7AUPQIJ.js.map +1 -0
  38. package/dist/browser/{chunk-VSG4EWNL.cjs → chunk-WGWPCVYB.cjs} +18 -18
  39. package/dist/browser/{chunk-VSG4EWNL.cjs.map → chunk-WGWPCVYB.cjs.map} +1 -1
  40. package/dist/browser/{chunk-YSJVJ3Z3.cjs → chunk-WR2SQLKP.cjs} +7 -7
  41. package/dist/browser/{chunk-YSJVJ3Z3.cjs.map → chunk-WR2SQLKP.cjs.map} +1 -1
  42. package/dist/browser/{chunk-XLQSSJUZ.cjs → chunk-ZVVUZRG7.cjs} +15 -15
  43. package/dist/browser/{chunk-XLQSSJUZ.cjs.map → chunk-ZVVUZRG7.cjs.map} +1 -1
  44. package/dist/browser/index.cjs +91 -90
  45. package/dist/browser/index.cjs.map +1 -1
  46. package/dist/browser/index.js +9 -8
  47. package/dist/browser/index.js.map +1 -1
  48. package/dist/browser/integrations/pino.cjs +4 -4
  49. package/dist/browser/integrations/pino.js +3 -3
  50. package/dist/browser/langchain/index.cjs +17 -17
  51. package/dist/browser/langchain/index.js +2 -2
  52. package/dist/browser/langgraph/index.cjs +27 -27
  53. package/dist/browser/langgraph/index.js +5 -5
  54. package/dist/browser/openai/index.cjs +11 -11
  55. package/dist/browser/openai/index.js +2 -2
  56. package/dist/browser/openai-agents/index.cjs +34 -34
  57. package/dist/browser/openai-agents/index.js +4 -4
  58. package/dist/browser/vercel-ai/index.cjs +14 -14
  59. package/dist/browser/vercel-ai/index.js +3 -3
  60. package/dist/{browser/chunk-KGSLJLWW.js → chunk-7I4ILCLY.js} +4 -4
  61. package/dist/{chunk-HCEKAVDR.js.map → chunk-7I4ILCLY.js.map} +1 -1
  62. package/dist/{chunk-3XQOZXJM.cjs → chunk-DGBQ3UI6.cjs} +7 -7
  63. package/dist/{chunk-3XQOZXJM.cjs.map → chunk-DGBQ3UI6.cjs.map} +1 -1
  64. package/dist/{chunk-YQ6ZA7OE.cjs → chunk-DPW4W7H7.cjs} +18 -18
  65. package/dist/{chunk-YQ6ZA7OE.cjs.map → chunk-DPW4W7H7.cjs.map} +1 -1
  66. package/dist/{chunk-E3G3IE6Y.cjs → chunk-DQ4T2MJE.cjs} +5 -4
  67. package/dist/chunk-DQ4T2MJE.cjs.map +1 -0
  68. package/dist/{chunk-XZRJXJFA.js → chunk-ELVBOJWY.js} +5 -5
  69. package/dist/chunk-ELVBOJWY.js.map +1 -0
  70. package/dist/{chunk-ZFE75G7S.js → chunk-HONYN2OI.js} +3 -3
  71. package/dist/{chunk-ZFE75G7S.js.map → chunk-HONYN2OI.js.map} +1 -1
  72. package/dist/{chunk-RK3JPX27.cjs → chunk-I3P5CHBV.cjs} +12 -12
  73. package/dist/{chunk-RK3JPX27.cjs.map → chunk-I3P5CHBV.cjs.map} +1 -1
  74. package/dist/{browser/chunk-MOBYR3AP.js → chunk-MNV4HASC.js} +4 -4
  75. package/dist/{chunk-7PGR4NJG.js.map → chunk-MNV4HASC.js.map} +1 -1
  76. package/dist/{chunk-XHOLQGN6.js → chunk-NR36TJMT.js} +5 -5
  77. package/dist/{chunk-XHOLQGN6.js.map → chunk-NR36TJMT.js.map} +1 -1
  78. package/dist/{chunk-T2NESDMT.js → chunk-QZDUGEIR.js} +3 -3
  79. package/dist/{chunk-T2NESDMT.js.map → chunk-QZDUGEIR.js.map} +1 -1
  80. package/dist/{chunk-TGHDV5MC.cjs → chunk-RRE2LX2A.cjs} +6 -6
  81. package/dist/{chunk-TGHDV5MC.cjs.map → chunk-RRE2LX2A.cjs.map} +1 -1
  82. package/dist/{chunk-DPGUBZVO.cjs → chunk-SJ625SQS.cjs} +15 -15
  83. package/dist/{chunk-DPGUBZVO.cjs.map → chunk-SJ625SQS.cjs.map} +1 -1
  84. package/dist/{chunk-UAJO6JM7.js → chunk-YKPZQPEW.js} +3 -3
  85. package/dist/{chunk-UAJO6JM7.js.map → chunk-YKPZQPEW.js.map} +1 -1
  86. package/dist/{chunk-NGBJJGOC.cjs → chunk-Z5MFR7UE.cjs} +5 -5
  87. package/dist/{chunk-NGBJJGOC.cjs.map → chunk-Z5MFR7UE.cjs.map} +1 -1
  88. package/dist/index.cjs +104 -98
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.js +16 -10
  91. package/dist/index.js.map +1 -1
  92. package/dist/integrations/pino.cjs +4 -4
  93. package/dist/integrations/pino.js +3 -3
  94. package/dist/langchain/index.cjs +17 -17
  95. package/dist/langchain/index.js +2 -2
  96. package/dist/langgraph/index.cjs +27 -27
  97. package/dist/langgraph/index.js +5 -5
  98. package/dist/openai/index.cjs +11 -11
  99. package/dist/openai/index.js +2 -2
  100. package/dist/openai-agents/index.cjs +34 -34
  101. package/dist/openai-agents/index.js +4 -4
  102. package/dist/vercel-ai/index.cjs +14 -14
  103. package/dist/vercel-ai/index.js +3 -3
  104. package/package.json +14 -13
  105. package/dist/browser/chunk-PM5D6VXF.cjs.map +0 -1
  106. package/dist/browser/chunk-Y3BOPSM3.js.map +0 -1
  107. package/dist/chunk-E3G3IE6Y.cjs.map +0 -1
  108. package/dist/chunk-XZRJXJFA.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkP7XWSMFX_cjs = require('./chunk-P7XWSMFX.cjs');
4
- var chunkPM5D6VXF_cjs = require('./chunk-PM5D6VXF.cjs');
3
+ var chunkQAFFDJFK_cjs = require('./chunk-QAFFDJFK.cjs');
4
+ var chunkIHIS62VS_cjs = require('./chunk-IHIS62VS.cjs');
5
5
 
6
6
  // src/_agent-sdk-common/span-emitter.ts
7
- chunkPM5D6VXF_cjs.init_tracing();
7
+ chunkIHIS62VS_cjs.init_tracing();
8
8
  var MAX_NAME_BYTES = 256;
9
9
  var MAX_DESCRIPTION_BYTES = 2048;
10
10
  function truncate(value, maxBytes) {
@@ -25,7 +25,7 @@ var _emitAgentSpan = (opts) => {
25
25
  adapter,
26
26
  agent_name: agentName
27
27
  };
28
- const handle = chunkPM5D6VXF_cjs.startSpan({
28
+ const handle = chunkIHIS62VS_cjs.startSpan({
29
29
  name: `${adapter}.agent`,
30
30
  type: "agent",
31
31
  metadata
@@ -37,7 +37,7 @@ var _emitAgentSpan = (opts) => {
37
37
  }
38
38
  return handle;
39
39
  };
40
- var emitAgentSpan = chunkP7XWSMFX_cjs.absorbErrorsSync(
40
+ var emitAgentSpan = chunkQAFFDJFK_cjs.absorbErrorsSync(
41
41
  _emitAgentSpan,
42
42
  {
43
43
  fingerprint: "morse.adapters.shared.emitAgentSpan"
@@ -54,7 +54,7 @@ var _emitLlmSpan = (opts) => {
54
54
  if (typeof opts.provider === "string" && opts.provider.length > 0) {
55
55
  metadata.provider = opts.provider;
56
56
  }
57
- const handle = chunkPM5D6VXF_cjs.startSpan({
57
+ const handle = chunkIHIS62VS_cjs.startSpan({
58
58
  name: `${adapter}.llm`,
59
59
  type: "llm",
60
60
  metadata
@@ -80,7 +80,7 @@ var _emitLlmSpan = (opts) => {
80
80
  if (opts.outputData !== void 0) span.output_data = opts.outputData;
81
81
  return handle;
82
82
  };
83
- var emitLlmSpan = chunkP7XWSMFX_cjs.absorbErrorsSync(
83
+ var emitLlmSpan = chunkQAFFDJFK_cjs.absorbErrorsSync(
84
84
  _emitLlmSpan,
85
85
  {
86
86
  fingerprint: "morse.adapters.shared.emitLlmSpan"
@@ -101,13 +101,13 @@ var _emitToolSpan = (opts) => {
101
101
  adapter,
102
102
  tool
103
103
  };
104
- return chunkPM5D6VXF_cjs.startSpan({
104
+ return chunkIHIS62VS_cjs.startSpan({
105
105
  name: `${adapter}.tool.${toolName}`,
106
106
  type: "tool",
107
107
  metadata
108
108
  });
109
109
  };
110
- var emitToolSpan = chunkP7XWSMFX_cjs.absorbErrorsSync(
110
+ var emitToolSpan = chunkQAFFDJFK_cjs.absorbErrorsSync(
111
111
  _emitToolSpan,
112
112
  {
113
113
  fingerprint: "morse.adapters.shared.emitToolSpan"
@@ -127,13 +127,13 @@ var _emitSubagentSpan = (opts) => {
127
127
  if (typeof opts.taskDescription === "string" && opts.taskDescription.length > 0) {
128
128
  metadata.task_description = truncate(opts.taskDescription, MAX_DESCRIPTION_BYTES);
129
129
  }
130
- return chunkPM5D6VXF_cjs.startSpan({
130
+ return chunkIHIS62VS_cjs.startSpan({
131
131
  name: `${adapter}.subagent.${subagentName}`,
132
132
  type: "agent",
133
133
  metadata
134
134
  });
135
135
  };
136
- var emitSubagentSpan = chunkP7XWSMFX_cjs.absorbErrorsSync(_emitSubagentSpan, {
136
+ var emitSubagentSpan = chunkQAFFDJFK_cjs.absorbErrorsSync(_emitSubagentSpan, {
137
137
  fingerprint: "morse.adapters.shared.emitSubagentSpan"
138
138
  });
139
139
  var _emitHookSpan = (opts) => {
@@ -157,13 +157,13 @@ var _emitHookSpan = (opts) => {
157
157
  tool_kind: "hook",
158
158
  hook
159
159
  };
160
- return chunkPM5D6VXF_cjs.startSpan({
160
+ return chunkIHIS62VS_cjs.startSpan({
161
161
  name: `${adapter}.hook.${hookKind}.${hookName}`,
162
162
  type: "tool",
163
163
  metadata
164
164
  });
165
165
  };
166
- var emitHookSpan = chunkP7XWSMFX_cjs.absorbErrorsSync(
166
+ var emitHookSpan = chunkQAFFDJFK_cjs.absorbErrorsSync(
167
167
  _emitHookSpan,
168
168
  {
169
169
  fingerprint: "morse.adapters.shared.emitHookSpan"
@@ -175,5 +175,5 @@ exports.emitHookSpan = emitHookSpan;
175
175
  exports.emitLlmSpan = emitLlmSpan;
176
176
  exports.emitSubagentSpan = emitSubagentSpan;
177
177
  exports.emitToolSpan = emitToolSpan;
178
- //# sourceMappingURL=chunk-XLQSSJUZ.cjs.map
179
- //# sourceMappingURL=chunk-XLQSSJUZ.cjs.map
178
+ //# sourceMappingURL=chunk-ZVVUZRG7.cjs.map
179
+ //# sourceMappingURL=chunk-ZVVUZRG7.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/_agent-sdk-common/span-emitter.ts"],"names":["init_tracing","startSpan","absorbErrorsSync"],"mappings":";;;;;;AAqCAA,8BAAA,EAAA;AASA,IAAM,cAAA,GAAiB,GAAA;AAGvB,IAAM,qBAAA,GAAwB,IAAA;AAG9B,SAAS,QAAA,CAAS,OAAe,QAAA,EAA0B;AACzD,EAAA,IAAI,KAAA,CAAM,MAAA,IAAU,QAAA,EAAU,OAAO,KAAA;AACrC,EAAA,OAAO,CAAA,EAAG,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,QAAQ,CAAC,CAAA,iBAAA,CAAA;AACpC;AAEA,SAAS,eAAA,CAAgB,OAAgB,KAAA,EAAuB;AAC9D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,WAAW,CAAA,EAAG;AACnD,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,KAAK,CAAA,2BAAA,CAA6B,CAAA;AAAA,EAC3E;AACA,EAAA,OAAO,KAAA;AACT;AAaA,IAAM,cAAA,GAAiB,CAAC,IAAA,KAAkD;AACxE,EAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,IAAA,CAAK,OAAA,EAAS,SAAS,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,eAAA,CAAgB,IAAA,CAAK,SAAA,EAAW,WAAW,CAAA;AAC7D,EAAA,MAAM,QAAA,GAAoC;AAAA,IACxC,GAAI,IAAA,CAAK,UAAA,IAAc,EAAC;AAAA,IACxB,OAAA;AAAA,IACA,UAAA,EAAY;AAAA,GACd;AACA,EAAA,MAAM,SAASC,2BAAA,CAAU;AAAA,IACvB,IAAA,EAAM,GAAG,OAAO,CAAA,MAAA,CAAA;AAAA,IAChB,IAAA,EAAM,OAAA;AAAA,IACN;AAAA,GACD,CAAA;AACD,EAAA,IAAI,MAAA,KAAW,MAAM,OAAO,IAAA;AAC5B,EAAA,IAAI,OAAO,IAAA,CAAK,KAAA,KAAU,YAAY,IAAA,CAAK,KAAA,CAAM,SAAS,CAAA,EAAG;AAC3D,IAAA,MAAA,CAAO,IAAA,CAAK,QAAQ,IAAA,CAAK,KAAA;AACzB,IAAA,QAAA,CAAS,QAAQ,IAAA,CAAK,KAAA;AAAA,EACxB;AACA,EAAA,OAAO,MAAA;AACT,CAAA;AAMO,IAAM,aAAA,GAAmEC,kCAAA;AAAA,EAC9E,cAAA;AAAA,EACA;AAAA,IACE,WAAA,EAAa;AAAA;AAEjB;AAqBA,IAAM,YAAA,GAAe,CAAC,IAAA,KAAgD;AACpE,EAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,IAAA,CAAK,OAAA,EAAS,SAAS,CAAA;AACvD,EAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,IAAA,CAAK,KAAA,EAAO,OAAO,CAAA;AACjD,EAAA,MAAM,QAAA,GAAoC;AAAA,IACxC,GAAI,IAAA,CAAK,UAAA,IAAc,EAAC;AAAA,IACxB,OAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,IAAI,OAAO,IAAA,CAAK,QAAA,KAAa,YAAY,IAAA,CAAK,QAAA,CAAS,SAAS,CAAA,EAAG;AACjE,IAAA,QAAA,CAAS,WAAW,IAAA,CAAK,QAAA;AAAA,EAC3B;AACA,EAAA,MAAM,SAASD,2BAAA,CAAU;AAAA,IACvB,IAAA,EAAM,GAAG,OAAO,CAAA,IAAA,CAAA;AAAA,IAChB,IAAA,EAAM,KAAA;AAAA,IACN;AAAA,GACD,CAAA;AACD,EAAA,IAAI,MAAA,KAAW,MAAM,OAAO,IAAA;AAC5B,EAAA,MAAM,OAAiB,MAAA,CAAO,IAAA;AAC9B,EAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,EAAA,IAAI,OAAO,KAAK,WAAA,KAAgB,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,WAAW,CAAA,EAAG;AAC7E,IAAA,IAAA,CAAK,eAAe,IAAA,CAAK,WAAA;AAAA,EAC3B;AACA,EAAA,IAAI,OAAO,KAAK,YAAA,KAAiB,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,YAAY,CAAA,EAAG;AAC/E,IAAA,IAAA,CAAK,gBAAgB,IAAA,CAAK,YAAA;AAAA,EAC5B;AACA,EAAA,IAAI,OAAO,KAAK,WAAA,KAAgB,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,WAAW,CAAA,EAAG;AAC7E,IAAA,IAAA,CAAK,eAAe,IAAA,CAAK,WAAA;AAAA,EAC3B,WAAW,IAAA,CAAK,YAAA,KAAiB,MAAA,IAAa,IAAA,CAAK,kBAAkB,MAAA,EAAW;AAC9E,IAAA,IAAA,CAAK,YAAA,GAAe,IAAA,CAAK,YAAA,GAAe,IAAA,CAAK,aAAA;AAAA,EAC/C;AACA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,eAAe,CAAA,EAAG;AACvC,IAAA,IAAA,CAAK,mBAAmB,IAAA,CAAK,eAAA;AAAA,EAC/B;AACA,EAAA,IAAI,IAAA,CAAK,SAAA,KAAc,MAAA,EAAW,IAAA,CAAK,aAAa,IAAA,CAAK,SAAA;AACzD,EAAA,IAAI,IAAA,CAAK,UAAA,KAAe,MAAA,EAAW,IAAA,CAAK,cAAc,IAAA,CAAK,UAAA;AAC3D,EAAA,OAAO,MAAA;AACT,CAAA;AASO,IAAM,WAAA,GAA+DC,kCAAA;AAAA,EAC1E,YAAA;AAAA,EACA;AAAA,IACE,WAAA,EAAa;AAAA;AAEjB;AAgBA,IAAM,aAAA,GAAgB,CAAC,IAAA,KAAiD;AACtE,EAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,IAAA,CAAK,OAAA,EAAS,SAAS,CAAA;AACvD,EAAA,MAAM,WAAW,QAAA,CAAS,eAAA,CAAgB,KAAK,QAAA,EAAU,UAAU,GAAG,cAAc,CAAA;AACpF,EAAA,MAAM,IAAA,GAAgC,EAAE,IAAA,EAAM,QAAA,EAAS;AACvD,EAAA,IAAI,IAAA,CAAK,YAAA,KAAiB,MAAA,EAAW,IAAA,CAAK,gBAAgB,IAAA,CAAK,YAAA;AAC/D,EAAA,IAAI,IAAA,CAAK,aAAA,KAAkB,MAAA,EAAW,IAAA,CAAK,iBAAiB,IAAA,CAAK,aAAA;AACjE,EAAA,IAAI,OAAO,KAAK,UAAA,KAAe,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,UAAU,CAAA,EAAG;AAC3E,IAAA,IAAA,CAAK,cAAc,IAAA,CAAK,UAAA;AAAA,EAC1B;AACA,EAAA,IAAI,OAAO,IAAA,CAAK,OAAA,KAAY,SAAA,EAAW,IAAA,CAAK,UAAU,IAAA,CAAK,OAAA;AAC3D,EAAA,MAAM,QAAA,GAAoC;AAAA,IACxC,GAAI,IAAA,CAAK,UAAA,IAAc,EAAC;AAAA,IACxB,OAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAOD,2BAAA,CAAU;AAAA,IACf,IAAA,EAAM,CAAA,EAAG,OAAO,CAAA,MAAA,EAAS,QAAQ,CAAA,CAAA;AAAA,IACjC,IAAA,EAAM,MAAA;AAAA,IACN;AAAA,GACD,CAAA;AACH,CAAA;AAMO,IAAM,YAAA,GAAiEC,kCAAA;AAAA,EAC5E,aAAA;AAAA,EACA;AAAA,IACE,WAAA,EAAa;AAAA;AAEjB;AAcA,IAAM,iBAAA,GAAoB,CAAC,IAAA,KAAqD;AAC9E,EAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,IAAA,CAAK,OAAA,EAAS,SAAS,CAAA;AACvD,EAAA,MAAM,eAAA,GAAkB,eAAA,CAAgB,IAAA,CAAK,eAAA,EAAiB,iBAAiB,CAAA;AAC/E,EAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,IAAA,CAAK,YAAA,EAAc,cAAc,CAAA;AACtE,EAAA,MAAM,QAAA,GAAoC;AAAA,IACxC,GAAI,IAAA,CAAK,UAAA,IAAc,EAAC;AAAA,IACxB,OAAA;AAAA,IACA,UAAA,EAAY,UAAA;AAAA,IACZ,iBAAA,EAAmB,eAAA;AAAA,IACnB,aAAA,EAAe;AAAA,GACjB;AACA,EAAA,IAAI,OAAO,IAAA,CAAK,eAAA,KAAoB,YAAY,IAAA,CAAK,eAAA,CAAgB,SAAS,CAAA,EAAG;AAC/E,IAAA,QAAA,CAAS,gBAAA,GAAmB,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,qBAAqB,CAAA;AAAA,EAClF;AACA,EAAA,OAAOD,2BAAA,CAAU;AAAA,IACf,IAAA,EAAM,CAAA,EAAG,OAAO,CAAA,UAAA,EAAa,YAAY,CAAA,CAAA;AAAA,IACzC,IAAA,EAAM,OAAA;AAAA,IACN;AAAA,GACD,CAAA;AACH,CAAA;AAQO,IAAM,gBAAA,GACXC,mCAAiB,iBAAA,EAAmB;AAAA,EAClC,WAAA,EAAa;AACf,CAAC;AAcH,IAAM,aAAA,GAAgB,CAAC,IAAA,KAAiD;AACtE,EAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,IAAA,CAAK,OAAA,EAAS,SAAS,CAAA;AACvD,EAAA,MAAM,WAAW,QAAA,CAAS,eAAA,CAAgB,KAAK,QAAA,EAAU,UAAU,GAAG,cAAc,CAAA;AACpF,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AACtB,EAAA,IAAI,QAAA,KAAa,UAAA,IAAc,QAAA,KAAa,WAAA,IAAe,aAAa,UAAA,EAAY;AAClF,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,6EAAA,EAAgF,MAAA;AAAA,QAC9E;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,EACF;AACA,EAAA,MAAM,IAAA,GAAgC,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,QAAA,EAAS;AACvE,EAAA,IAAI,OAAO,KAAK,UAAA,KAAe,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,UAAU,CAAA,EAAG;AAC3E,IAAA,IAAA,CAAK,cAAc,IAAA,CAAK,UAAA;AAAA,EAC1B;AACA,EAAA,MAAM,QAAA,GAAoC;AAAA,IACxC,GAAI,IAAA,CAAK,UAAA,IAAc,EAAC;AAAA,IACxB,OAAA;AAAA,IACA,SAAA,EAAW,MAAA;AAAA,IACX;AAAA,GACF;AACA,EAAA,OAAOD,2BAAA,CAAU;AAAA,IACf,MAAM,CAAA,EAAG,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,QAAQ,CAAA,CAAA;AAAA,IAC7C,IAAA,EAAM,MAAA;AAAA,IACN;AAAA,GACD,CAAA;AACH,CAAA;AAOO,IAAM,YAAA,GAAiEC,kCAAA;AAAA,EAC5E,aAAA;AAAA,EACA;AAAA,IACE,WAAA,EAAa;AAAA;AAEjB","file":"chunk-XLQSSJUZ.cjs","sourcesContent":["/**\n * `_agent-sdk-common/span-emitter.ts` — shared span-emission helpers used by\n * all three agent-SDK adapters (`anthropic-agent-sdk`, `openai-agents`,\n * `langgraph-js`).\n *\n * Each helper:\n *\n * 1. Validates the required metadata for its logical span type.\n * 2. Calls `startSpan(...)` from `_internal/tracing.ts` to allocate the\n * wire-format span and push it onto the active trace's span stack.\n * 3. Tags `metadata.adapter` on every span so the UI can attribute spans\n * back to their adapter origin.\n * 4. Hydrates type-specific top-level fields (`model`, `input_tokens`,\n * `output_tokens`, `total_tokens`, `context_segments`) onto `SpanData`.\n * 5. Returns the `SpanHandle` so callers can later call `.end(err?)`.\n *\n * All helpers are wrapped in `absorbErrorsSync` — telemetry MUST NOT throw\n * at the caller. If `startSpan` returns `null` (no active trace), the\n * helper also returns `null`; callers must tolerate this case.\n *\n * Logical → wire `type` mapping (per `design.md` §Span schema):\n *\n * agent → \"agent\"\n * llm → \"llm\"\n * tool → \"tool\"\n * subagent → \"agent\" + metadata.spawn_kind = \"subagent\"\n * hook → \"tool\" + metadata.tool_kind = \"hook\"\n *\n * Adapter-flavoured redaction (tool-arg truncation, base64/image\n * stripping) lives in a sibling `redaction.ts` (W1.2). This file is\n * intentionally agnostic: the only redaction it applies is a minimal\n * string-length guard on free-form fields that would otherwise blow up\n * the wire payload (task descriptions, hook names, tool names).\n */\n\nimport { absorbErrorsSync } from \"../_internal/errors\";\nimport type { ContextSegment, SpanData } from \"../_internal/spans\";\nimport { startSpan, type SpanHandle } from \"../_internal/tracing\";\n\n/* ------------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------------ */\n\nexport type AdapterName = \"anthropic-agent-sdk\" | \"openai-agents\" | \"langgraph-js\" | \"vercel-ai\";\n\n/** Soft cap for free-form identifier-ish strings (tool names, hook names, etc.). */\nconst MAX_NAME_BYTES = 256;\n\n/** Soft cap for free-form description strings (task descriptions). */\nconst MAX_DESCRIPTION_BYTES = 2048;\n\n/** Trim a string to `maxBytes` bytes (UTF-8 codepoint-safe at the JS-string level). */\nfunction truncate(value: string, maxBytes: number): string {\n if (value.length <= maxBytes) return value;\n return `${value.slice(0, maxBytes)}…[truncated]`;\n}\n\nfunction requireNonEmpty(value: unknown, field: string): string {\n if (typeof value !== \"string\" || value.length === 0) {\n throw new Error(`morse span-emitter: ${field} must be a non-empty string`);\n }\n return value;\n}\n\n/* ------------------------------------------------------------------------ */\n/* emitAgentSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitAgentSpanOptions {\n adapter: AdapterName;\n agentName: string;\n model?: string;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitAgentSpan = (opts: EmitAgentSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const agentName = requireNonEmpty(opts.agentName, \"agentName\");\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n agent_name: agentName,\n };\n const handle = startSpan({\n name: `${adapter}.agent`,\n type: \"agent\",\n metadata,\n });\n if (handle === null) return null;\n if (typeof opts.model === \"string\" && opts.model.length > 0) {\n handle.span.model = opts.model;\n metadata.model = opts.model;\n }\n return handle;\n};\n\n/**\n * Emit a wire `type=agent` span. Returns `null` when no active trace exists\n * (callers MUST tolerate this); never throws.\n */\nexport const emitAgentSpan: (opts: EmitAgentSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitAgentSpan,\n {\n fingerprint: \"morse.adapters.shared.emitAgentSpan\",\n },\n) as (opts: EmitAgentSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitLlmSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitLlmSpanOptions {\n adapter: AdapterName;\n model: string;\n provider?: string;\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n contextSegments?: ContextSegment[];\n attributes?: Record<string, unknown>;\n // MHQ-858: prompt/response capture. Adapters pass already-truncated\n // values (see `_internal/llm-io.ts`); this emitter does not truncate.\n inputData?: unknown;\n outputData?: unknown;\n}\n\nconst _emitLlmSpan = (opts: EmitLlmSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const model = requireNonEmpty(opts.model, \"model\");\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n model,\n };\n if (typeof opts.provider === \"string\" && opts.provider.length > 0) {\n metadata.provider = opts.provider;\n }\n const handle = startSpan({\n name: `${adapter}.llm`,\n type: \"llm\",\n metadata,\n });\n if (handle === null) return null;\n const span: SpanData = handle.span;\n span.model = model;\n if (typeof opts.inputTokens === \"number\" && Number.isFinite(opts.inputTokens)) {\n span.input_tokens = opts.inputTokens;\n }\n if (typeof opts.outputTokens === \"number\" && Number.isFinite(opts.outputTokens)) {\n span.output_tokens = opts.outputTokens;\n }\n if (typeof opts.totalTokens === \"number\" && Number.isFinite(opts.totalTokens)) {\n span.total_tokens = opts.totalTokens;\n } else if (span.input_tokens !== undefined && span.output_tokens !== undefined) {\n span.total_tokens = span.input_tokens + span.output_tokens;\n }\n if (Array.isArray(opts.contextSegments)) {\n span.context_segments = opts.contextSegments;\n }\n if (opts.inputData !== undefined) span.input_data = opts.inputData;\n if (opts.outputData !== undefined) span.output_data = opts.outputData;\n return handle;\n};\n\n/**\n * Emit a wire `type=llm` span. Returns `null` when no active trace exists;\n * never throws. Hydrates `model`, `input_tokens`, `output_tokens`,\n * `total_tokens` (derived if absent), and `context_segments` onto the\n * underlying `SpanData` so downstream consumers see them at the top level\n * — not buried in `metadata`.\n */\nexport const emitLlmSpan: (opts: EmitLlmSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitLlmSpan,\n {\n fingerprint: \"morse.adapters.shared.emitLlmSpan\",\n },\n) as (opts: EmitLlmSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitToolSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitToolSpanOptions {\n adapter: AdapterName;\n toolName: string;\n inputSummary?: unknown;\n outputSummary?: unknown;\n durationMs?: number;\n success?: boolean;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitToolSpan = (opts: EmitToolSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const toolName = truncate(requireNonEmpty(opts.toolName, \"toolName\"), MAX_NAME_BYTES);\n const tool: Record<string, unknown> = { name: toolName };\n if (opts.inputSummary !== undefined) tool.input_summary = opts.inputSummary;\n if (opts.outputSummary !== undefined) tool.output_summary = opts.outputSummary;\n if (typeof opts.durationMs === \"number\" && Number.isFinite(opts.durationMs)) {\n tool.duration_ms = opts.durationMs;\n }\n if (typeof opts.success === \"boolean\") tool.success = opts.success;\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n tool,\n };\n return startSpan({\n name: `${adapter}.tool.${toolName}`,\n type: \"tool\",\n metadata,\n });\n};\n\n/**\n * Emit a wire `type=tool` span. Returns `null` when no active trace exists;\n * never throws.\n */\nexport const emitToolSpan: (opts: EmitToolSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitToolSpan,\n {\n fingerprint: \"morse.adapters.shared.emitToolSpan\",\n },\n) as (opts: EmitToolSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitSubagentSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitSubagentSpanOptions {\n adapter: AdapterName;\n parentAgentName: string;\n subagentName: string;\n taskDescription?: string;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitSubagentSpan = (opts: EmitSubagentSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const parentAgentName = requireNonEmpty(opts.parentAgentName, \"parentAgentName\");\n const subagentName = requireNonEmpty(opts.subagentName, \"subagentName\");\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n spawn_kind: \"subagent\",\n parent_agent_name: parentAgentName,\n subagent_name: subagentName,\n };\n if (typeof opts.taskDescription === \"string\" && opts.taskDescription.length > 0) {\n metadata.task_description = truncate(opts.taskDescription, MAX_DESCRIPTION_BYTES);\n }\n return startSpan({\n name: `${adapter}.subagent.${subagentName}`,\n type: \"agent\",\n metadata,\n });\n};\n\n/**\n * Emit a wire `type=agent` span with `metadata.spawn_kind=\"subagent\"` — the\n * UI inspects this metadata key to render subagent-spawn relationships\n * until the backend gains a native `subagent` enum value. Returns `null`\n * when no active trace exists; never throws.\n */\nexport const emitSubagentSpan: (opts: EmitSubagentSpanOptions) => SpanHandle | null =\n absorbErrorsSync(_emitSubagentSpan, {\n fingerprint: \"morse.adapters.shared.emitSubagentSpan\",\n }) as (opts: EmitSubagentSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitHookSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitHookSpanOptions {\n adapter: AdapterName;\n hookName: string;\n hookKind: \"pre_tool\" | \"post_tool\" | \"on_error\";\n durationMs?: number;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitHookSpan = (opts: EmitHookSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const hookName = truncate(requireNonEmpty(opts.hookName, \"hookName\"), MAX_NAME_BYTES);\n const hookKind = opts.hookKind;\n if (hookKind !== \"pre_tool\" && hookKind !== \"post_tool\" && hookKind !== \"on_error\") {\n throw new Error(\n `morse span-emitter: hookKind must be one of pre_tool|post_tool|on_error (got ${String(\n hookKind,\n )})`,\n );\n }\n const hook: Record<string, unknown> = { name: hookName, kind: hookKind };\n if (typeof opts.durationMs === \"number\" && Number.isFinite(opts.durationMs)) {\n hook.duration_ms = opts.durationMs;\n }\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n tool_kind: \"hook\",\n hook,\n };\n return startSpan({\n name: `${adapter}.hook.${hookKind}.${hookName}`,\n type: \"tool\",\n metadata,\n });\n};\n\n/**\n * Emit a wire `type=tool` span with `metadata.tool_kind=\"hook\"` — the UI\n * inspects this metadata key to render hook spans separately from regular\n * tool spans. Returns `null` when no active trace exists; never throws.\n */\nexport const emitHookSpan: (opts: EmitHookSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitHookSpan,\n {\n fingerprint: \"morse.adapters.shared.emitHookSpan\",\n },\n) as (opts: EmitHookSpanOptions) => SpanHandle | null;\n"]}
1
+ {"version":3,"sources":["../../src/_agent-sdk-common/span-emitter.ts"],"names":["init_tracing","startSpan","absorbErrorsSync"],"mappings":"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","file":"chunk-ZVVUZRG7.cjs","sourcesContent":["/**\n * `_agent-sdk-common/span-emitter.ts` — shared span-emission helpers used by\n * all three agent-SDK adapters (`anthropic-agent-sdk`, `openai-agents`,\n * `langgraph-js`).\n *\n * Each helper:\n *\n * 1. Validates the required metadata for its logical span type.\n * 2. Calls `startSpan(...)` from `_internal/tracing.ts` to allocate the\n * wire-format span and push it onto the active trace's span stack.\n * 3. Tags `metadata.adapter` on every span so the UI can attribute spans\n * back to their adapter origin.\n * 4. Hydrates type-specific top-level fields (`model`, `input_tokens`,\n * `output_tokens`, `total_tokens`, `context_segments`) onto `SpanData`.\n * 5. Returns the `SpanHandle` so callers can later call `.end(err?)`.\n *\n * All helpers are wrapped in `absorbErrorsSync` — telemetry MUST NOT throw\n * at the caller. If `startSpan` returns `null` (no active trace), the\n * helper also returns `null`; callers must tolerate this case.\n *\n * Logical → wire `type` mapping (per `design.md` §Span schema):\n *\n * agent → \"agent\"\n * llm → \"llm\"\n * tool → \"tool\"\n * subagent → \"agent\" + metadata.spawn_kind = \"subagent\"\n * hook → \"tool\" + metadata.tool_kind = \"hook\"\n *\n * Adapter-flavoured redaction (tool-arg truncation, base64/image\n * stripping) lives in a sibling `redaction.ts` (W1.2). This file is\n * intentionally agnostic: the only redaction it applies is a minimal\n * string-length guard on free-form fields that would otherwise blow up\n * the wire payload (task descriptions, hook names, tool names).\n */\n\nimport { absorbErrorsSync } from \"../_internal/errors\";\nimport type { ContextSegment, SpanData } from \"../_internal/spans\";\nimport { startSpan, type SpanHandle } from \"../_internal/tracing\";\n\n/* ------------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------------ */\n\nexport type AdapterName = \"anthropic-agent-sdk\" | \"openai-agents\" | \"langgraph-js\" | \"vercel-ai\";\n\n/** Soft cap for free-form identifier-ish strings (tool names, hook names, etc.). */\nconst MAX_NAME_BYTES = 256;\n\n/** Soft cap for free-form description strings (task descriptions). */\nconst MAX_DESCRIPTION_BYTES = 2048;\n\n/** Trim a string to `maxBytes` bytes (UTF-8 codepoint-safe at the JS-string level). */\nfunction truncate(value: string, maxBytes: number): string {\n if (value.length <= maxBytes) return value;\n return `${value.slice(0, maxBytes)}…[truncated]`;\n}\n\nfunction requireNonEmpty(value: unknown, field: string): string {\n if (typeof value !== \"string\" || value.length === 0) {\n throw new Error(`morse span-emitter: ${field} must be a non-empty string`);\n }\n return value;\n}\n\n/* ------------------------------------------------------------------------ */\n/* emitAgentSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitAgentSpanOptions {\n adapter: AdapterName;\n agentName: string;\n model?: string;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitAgentSpan = (opts: EmitAgentSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const agentName = requireNonEmpty(opts.agentName, \"agentName\");\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n agent_name: agentName,\n };\n const handle = startSpan({\n name: `${adapter}.agent`,\n type: \"agent\",\n metadata,\n });\n if (handle === null) return null;\n if (typeof opts.model === \"string\" && opts.model.length > 0) {\n handle.span.model = opts.model;\n metadata.model = opts.model;\n }\n return handle;\n};\n\n/**\n * Emit a wire `type=agent` span. Returns `null` when no active trace exists\n * (callers MUST tolerate this); never throws.\n */\nexport const emitAgentSpan: (opts: EmitAgentSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitAgentSpan,\n {\n fingerprint: \"morse.adapters.shared.emitAgentSpan\",\n },\n) as (opts: EmitAgentSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitLlmSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitLlmSpanOptions {\n adapter: AdapterName;\n model: string;\n provider?: string;\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n contextSegments?: ContextSegment[];\n attributes?: Record<string, unknown>;\n // MHQ-858: prompt/response capture. Adapters pass already-truncated\n // values (see `_internal/llm-io.ts`); this emitter does not truncate.\n inputData?: unknown;\n outputData?: unknown;\n}\n\nconst _emitLlmSpan = (opts: EmitLlmSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const model = requireNonEmpty(opts.model, \"model\");\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n model,\n };\n if (typeof opts.provider === \"string\" && opts.provider.length > 0) {\n metadata.provider = opts.provider;\n }\n const handle = startSpan({\n name: `${adapter}.llm`,\n type: \"llm\",\n metadata,\n });\n if (handle === null) return null;\n const span: SpanData = handle.span;\n span.model = model;\n if (typeof opts.inputTokens === \"number\" && Number.isFinite(opts.inputTokens)) {\n span.input_tokens = opts.inputTokens;\n }\n if (typeof opts.outputTokens === \"number\" && Number.isFinite(opts.outputTokens)) {\n span.output_tokens = opts.outputTokens;\n }\n if (typeof opts.totalTokens === \"number\" && Number.isFinite(opts.totalTokens)) {\n span.total_tokens = opts.totalTokens;\n } else if (span.input_tokens !== undefined && span.output_tokens !== undefined) {\n span.total_tokens = span.input_tokens + span.output_tokens;\n }\n if (Array.isArray(opts.contextSegments)) {\n span.context_segments = opts.contextSegments;\n }\n if (opts.inputData !== undefined) span.input_data = opts.inputData;\n if (opts.outputData !== undefined) span.output_data = opts.outputData;\n return handle;\n};\n\n/**\n * Emit a wire `type=llm` span. Returns `null` when no active trace exists;\n * never throws. Hydrates `model`, `input_tokens`, `output_tokens`,\n * `total_tokens` (derived if absent), and `context_segments` onto the\n * underlying `SpanData` so downstream consumers see them at the top level\n * — not buried in `metadata`.\n */\nexport const emitLlmSpan: (opts: EmitLlmSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitLlmSpan,\n {\n fingerprint: \"morse.adapters.shared.emitLlmSpan\",\n },\n) as (opts: EmitLlmSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitToolSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitToolSpanOptions {\n adapter: AdapterName;\n toolName: string;\n inputSummary?: unknown;\n outputSummary?: unknown;\n durationMs?: number;\n success?: boolean;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitToolSpan = (opts: EmitToolSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const toolName = truncate(requireNonEmpty(opts.toolName, \"toolName\"), MAX_NAME_BYTES);\n const tool: Record<string, unknown> = { name: toolName };\n if (opts.inputSummary !== undefined) tool.input_summary = opts.inputSummary;\n if (opts.outputSummary !== undefined) tool.output_summary = opts.outputSummary;\n if (typeof opts.durationMs === \"number\" && Number.isFinite(opts.durationMs)) {\n tool.duration_ms = opts.durationMs;\n }\n if (typeof opts.success === \"boolean\") tool.success = opts.success;\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n tool,\n };\n return startSpan({\n name: `${adapter}.tool.${toolName}`,\n type: \"tool\",\n metadata,\n });\n};\n\n/**\n * Emit a wire `type=tool` span. Returns `null` when no active trace exists;\n * never throws.\n */\nexport const emitToolSpan: (opts: EmitToolSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitToolSpan,\n {\n fingerprint: \"morse.adapters.shared.emitToolSpan\",\n },\n) as (opts: EmitToolSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitSubagentSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitSubagentSpanOptions {\n adapter: AdapterName;\n parentAgentName: string;\n subagentName: string;\n taskDescription?: string;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitSubagentSpan = (opts: EmitSubagentSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const parentAgentName = requireNonEmpty(opts.parentAgentName, \"parentAgentName\");\n const subagentName = requireNonEmpty(opts.subagentName, \"subagentName\");\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n spawn_kind: \"subagent\",\n parent_agent_name: parentAgentName,\n subagent_name: subagentName,\n };\n if (typeof opts.taskDescription === \"string\" && opts.taskDescription.length > 0) {\n metadata.task_description = truncate(opts.taskDescription, MAX_DESCRIPTION_BYTES);\n }\n return startSpan({\n name: `${adapter}.subagent.${subagentName}`,\n type: \"agent\",\n metadata,\n });\n};\n\n/**\n * Emit a wire `type=agent` span with `metadata.spawn_kind=\"subagent\"` — the\n * UI inspects this metadata key to render subagent-spawn relationships\n * until the backend gains a native `subagent` enum value. Returns `null`\n * when no active trace exists; never throws.\n */\nexport const emitSubagentSpan: (opts: EmitSubagentSpanOptions) => SpanHandle | null =\n absorbErrorsSync(_emitSubagentSpan, {\n fingerprint: \"morse.adapters.shared.emitSubagentSpan\",\n }) as (opts: EmitSubagentSpanOptions) => SpanHandle | null;\n\n/* ------------------------------------------------------------------------ */\n/* emitHookSpan */\n/* ------------------------------------------------------------------------ */\n\nexport interface EmitHookSpanOptions {\n adapter: AdapterName;\n hookName: string;\n hookKind: \"pre_tool\" | \"post_tool\" | \"on_error\";\n durationMs?: number;\n attributes?: Record<string, unknown>;\n}\n\nconst _emitHookSpan = (opts: EmitHookSpanOptions): SpanHandle | null => {\n const adapter = requireNonEmpty(opts.adapter, \"adapter\");\n const hookName = truncate(requireNonEmpty(opts.hookName, \"hookName\"), MAX_NAME_BYTES);\n const hookKind = opts.hookKind;\n if (hookKind !== \"pre_tool\" && hookKind !== \"post_tool\" && hookKind !== \"on_error\") {\n throw new Error(\n `morse span-emitter: hookKind must be one of pre_tool|post_tool|on_error (got ${String(\n hookKind,\n )})`,\n );\n }\n const hook: Record<string, unknown> = { name: hookName, kind: hookKind };\n if (typeof opts.durationMs === \"number\" && Number.isFinite(opts.durationMs)) {\n hook.duration_ms = opts.durationMs;\n }\n const metadata: Record<string, unknown> = {\n ...(opts.attributes ?? {}),\n adapter,\n tool_kind: \"hook\",\n hook,\n };\n return startSpan({\n name: `${adapter}.hook.${hookKind}.${hookName}`,\n type: \"tool\",\n metadata,\n });\n};\n\n/**\n * Emit a wire `type=tool` span with `metadata.tool_kind=\"hook\"` — the UI\n * inspects this metadata key to render hook spans separately from regular\n * tool spans. Returns `null` when no active trace exists; never throws.\n */\nexport const emitHookSpan: (opts: EmitHookSpanOptions) => SpanHandle | null = absorbErrorsSync(\n _emitHookSpan,\n {\n fingerprint: \"morse.adapters.shared.emitHookSpan\",\n },\n) as (opts: EmitHookSpanOptions) => SpanHandle | null;\n"]}
@@ -1,31 +1,31 @@
1
1
  'use strict';
2
2
 
3
- var chunkVSG4EWNL_cjs = require('./chunk-VSG4EWNL.cjs');
4
- var chunkQCI2ZDQS_cjs = require('./chunk-QCI2ZDQS.cjs');
5
- require('./chunk-KFWCOUL3.cjs');
6
- var chunkP7XWSMFX_cjs = require('./chunk-P7XWSMFX.cjs');
3
+ var chunkWGWPCVYB_cjs = require('./chunk-WGWPCVYB.cjs');
4
+ var chunk47GVOQB4_cjs = require('./chunk-47GVOQB4.cjs');
5
+ require('./chunk-26Q2QD5J.cjs');
6
+ var chunkQAFFDJFK_cjs = require('./chunk-QAFFDJFK.cjs');
7
7
  require('./chunk-SWQOPFE4.cjs');
8
8
  require('./chunk-RBNCTHK3.cjs');
9
- var chunkPM5D6VXF_cjs = require('./chunk-PM5D6VXF.cjs');
9
+ var chunkIHIS62VS_cjs = require('./chunk-IHIS62VS.cjs');
10
10
 
11
11
  // src/_internal/auto-detect.browser.ts
12
12
  async function installAdapters() {
13
13
  }
14
14
 
15
15
  // src/index.ts
16
- chunkPM5D6VXF_cjs.init_env();
16
+ chunkIHIS62VS_cjs.init_env();
17
17
 
18
18
  // src/_internal/db-capture.browser.ts
19
19
  function maybeEnableDbCaptureFromEnv() {
20
20
  }
21
21
 
22
22
  // src/index.ts
23
- chunkPM5D6VXF_cjs.init_otel_provider_browser();
24
- chunkPM5D6VXF_cjs.init_redaction();
23
+ chunkIHIS62VS_cjs.init_otel_provider_browser();
24
+ chunkIHIS62VS_cjs.init_redaction();
25
25
 
26
26
  // src/_internal/transport.ts
27
- chunkPM5D6VXF_cjs.init_diagnostics();
28
- var SDK_VERSION = "0.5.0-rc.3" ;
27
+ chunkIHIS62VS_cjs.init_diagnostics();
28
+ var SDK_VERSION = "0.5.0-rc.5" ;
29
29
  var RETRY_AFTER_CAP_SECONDS = 30;
30
30
  function parseRetryAfter(value) {
31
31
  if (!value) return null;
@@ -130,11 +130,11 @@ var BatchTransport = class {
130
130
  /** Enqueue an event. Non-blocking. Returns false if the queue is full. */
131
131
  track(event) {
132
132
  if (this.closed) {
133
- chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_SHUTDOWN_DROP, "trace");
133
+ chunkIHIS62VS_cjs.recordDrop(chunkIHIS62VS_cjs.REASON_SHUTDOWN_DROP, "trace");
134
134
  return false;
135
135
  }
136
136
  if (this.queue.length >= this.maxQueueSize) {
137
- chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_QUEUE_FULL, "trace");
137
+ chunkIHIS62VS_cjs.recordDrop(chunkIHIS62VS_cjs.REASON_QUEUE_FULL, "trace");
138
138
  return false;
139
139
  }
140
140
  this.queue.push(event);
@@ -221,12 +221,12 @@ var BatchTransport = class {
221
221
  body: JSON.stringify(payload),
222
222
  signal: controller.signal
223
223
  });
224
- chunkPM5D6VXF_cjs.setLevel(resp.headers.get("X-Morse-Diagnostics"));
224
+ chunkIHIS62VS_cjs.setLevel(resp.headers.get("X-Morse-Diagnostics"));
225
225
  const droppedCount = countPayloadEntries(payload);
226
226
  const droppedCategory = categoryOf(payload);
227
227
  if (resp.status === 429) {
228
228
  await recordQuotaState(resp);
229
- chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_QUOTA_REJECTED, droppedCategory, droppedCount);
229
+ chunkIHIS62VS_cjs.recordDrop(chunkIHIS62VS_cjs.REASON_QUOTA_REJECTED, droppedCategory, droppedCount);
230
230
  }
231
231
  if (!resp.ok) {
232
232
  let bodySnippet = "";
@@ -236,9 +236,9 @@ var BatchTransport = class {
236
236
  } catch {
237
237
  }
238
238
  if (resp.status !== 429) {
239
- chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_RETRY_EXHAUSTED, droppedCategory, droppedCount);
239
+ chunkIHIS62VS_cjs.recordDrop(chunkIHIS62VS_cjs.REASON_RETRY_EXHAUSTED, droppedCategory, droppedCount);
240
240
  }
241
- chunkPM5D6VXF_cjs.report(new Error(`morse: batch POST returned ${resp.status} ${bodySnippet}`), {
241
+ chunkIHIS62VS_cjs.report(new Error(`morse: batch POST returned ${resp.status} ${bodySnippet}`), {
242
242
  fingerprint: "morse.transport.post.non_2xx",
243
243
  extra: {
244
244
  endpoint_host: hostnameOf(url),
@@ -247,8 +247,8 @@ var BatchTransport = class {
247
247
  });
248
248
  }
249
249
  } catch (err) {
250
- chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_RETRY_EXHAUSTED, categoryOf(payload), countPayloadEntries(payload));
251
- chunkPM5D6VXF_cjs.report(err, {
250
+ chunkIHIS62VS_cjs.recordDrop(chunkIHIS62VS_cjs.REASON_RETRY_EXHAUSTED, categoryOf(payload), countPayloadEntries(payload));
251
+ chunkIHIS62VS_cjs.report(err, {
252
252
  fingerprint: "morse.transport.post.network",
253
253
  extra: {
254
254
  endpoint_host: hostnameOf(url),
@@ -292,10 +292,10 @@ function categoryOf(payload) {
292
292
  }
293
293
 
294
294
  // src/index.ts
295
- chunkPM5D6VXF_cjs.init_tracing();
296
- chunkPM5D6VXF_cjs.init_diagnostics();
297
- chunkPM5D6VXF_cjs.init_spans();
298
- chunkPM5D6VXF_cjs.init_propagation();
295
+ chunkIHIS62VS_cjs.init_tracing();
296
+ chunkIHIS62VS_cjs.init_diagnostics();
297
+ chunkIHIS62VS_cjs.init_spans();
298
+ chunkIHIS62VS_cjs.init_propagation();
299
299
  var version = SDK_VERSION;
300
300
  var singleton = null;
301
301
  var transportFactory = (opts) => new BatchTransport(opts);
@@ -315,9 +315,9 @@ function logDestinationOnce(endpoint) {
315
315
  }
316
316
  function resolveEndpoint(explicit) {
317
317
  if (explicit && explicit.length > 0) return explicit;
318
- const fromEnv = chunkPM5D6VXF_cjs.getEndpoint();
318
+ const fromEnv = chunkIHIS62VS_cjs.getEndpoint();
319
319
  if (fromEnv) return fromEnv;
320
- return chunkPM5D6VXF_cjs.DEFAULT_ENDPOINT;
320
+ return chunkIHIS62VS_cjs.DEFAULT_ENDPOINT;
321
321
  }
322
322
  var OTLP_TRACES_PATH = "/api/v1/otlp/v1/traces";
323
323
  function deriveOtlpEndpoint(tracesEndpoint) {
@@ -332,10 +332,10 @@ function deriveOtlpEndpoint(tracesEndpoint) {
332
332
  }
333
333
  }
334
334
  function buildSingleton(opts, redaction) {
335
- if (chunkPM5D6VXF_cjs.isDisabled()) {
335
+ if (chunkIHIS62VS_cjs.isDisabled()) {
336
336
  return null;
337
337
  }
338
- const apiKey = opts.apiKey ?? chunkPM5D6VXF_cjs.getApiKey();
338
+ const apiKey = opts.apiKey ?? chunkIHIS62VS_cjs.getApiKey();
339
339
  if (!apiKey) {
340
340
  if (!noApiKeyWarningEmitted) {
341
341
  logger(
@@ -347,24 +347,24 @@ function buildSingleton(opts, redaction) {
347
347
  return null;
348
348
  }
349
349
  const endpoint = resolveEndpoint(opts.endpoint);
350
- const flushIntervalSeconds = opts.flushIntervalSeconds ?? chunkPM5D6VXF_cjs.getFlushIntervalSeconds();
350
+ const flushIntervalSeconds = opts.flushIntervalSeconds ?? chunkIHIS62VS_cjs.getFlushIntervalSeconds();
351
351
  const transport = transportFactory({ apiKey, endpoint, flushIntervalSeconds });
352
- chunkPM5D6VXF_cjs.setTransport(transport);
353
- chunkPM5D6VXF_cjs.setRedactionConfig(redaction);
354
- chunkPM5D6VXF_cjs.setDiagnosticsClientConfig({ apiKey, endpoint });
355
- const explicitSource = chunkPM5D6VXF_cjs.isValidInternalSource(opts.source) ? opts.source : void 0;
356
- const resolvedSource = explicitSource ?? chunkPM5D6VXF_cjs.getInternalSource() ?? null;
357
- chunkPM5D6VXF_cjs.setSource(resolvedSource);
352
+ chunkIHIS62VS_cjs.setTransport(transport);
353
+ chunkIHIS62VS_cjs.setRedactionConfig(redaction);
354
+ chunkIHIS62VS_cjs.setDiagnosticsClientConfig({ apiKey, endpoint });
355
+ const explicitSource = chunkIHIS62VS_cjs.isValidInternalSource(opts.source) ? opts.source : void 0;
356
+ const resolvedSource = explicitSource ?? chunkIHIS62VS_cjs.getInternalSource() ?? null;
357
+ chunkIHIS62VS_cjs.setSource(resolvedSource);
358
358
  logDestinationOnce(endpoint);
359
359
  try {
360
- chunkPM5D6VXF_cjs.getEngine().configure({
360
+ chunkIHIS62VS_cjs.getEngine().configure({
361
361
  endpoint: deriveOtlpEndpoint(endpoint),
362
362
  apiKey,
363
- sampleRate: chunkPM5D6VXF_cjs.getSampleRate(),
363
+ sampleRate: chunkIHIS62VS_cjs.getSampleRate(),
364
364
  scheduleDelayMillis: flushIntervalSeconds * 1e3,
365
- maxQueueSize: chunkPM5D6VXF_cjs.getMaxQueueSize(),
366
- maxExportBatchSize: chunkPM5D6VXF_cjs.getMaxBatchSize(),
367
- maxFieldBytes: chunkPM5D6VXF_cjs.getMaxFieldBytes(),
365
+ maxQueueSize: chunkIHIS62VS_cjs.getMaxQueueSize(),
366
+ maxExportBatchSize: chunkIHIS62VS_cjs.getMaxBatchSize(),
367
+ maxFieldBytes: chunkIHIS62VS_cjs.getMaxFieldBytes(),
368
368
  // 10s (not the exporter's un-overridden 30s ceiling): a genuine
369
369
  // network blip still gets several retries with backoff; a fully dead
370
370
  // endpoint fails within a bounded, shutdown-friendly window instead
@@ -373,32 +373,32 @@ function buildSingleton(opts, redaction) {
373
373
  redactionConfig: redaction
374
374
  });
375
375
  } catch (err) {
376
- chunkPM5D6VXF_cjs.report(err, { fingerprint: "morse.otel_provider.configure" });
376
+ chunkIHIS62VS_cjs.report(err, { fingerprint: "morse.otel_provider.configure" });
377
377
  }
378
378
  void installAdapters().catch(() => {
379
379
  });
380
380
  try {
381
381
  maybeEnableDbCaptureFromEnv();
382
382
  } catch (err) {
383
- chunkPM5D6VXF_cjs.report(err, { fingerprint: "morse.db_capture.register" });
383
+ chunkIHIS62VS_cjs.report(err, { fingerprint: "morse.db_capture.register" });
384
384
  }
385
385
  return { apiKey, endpoint, transport, redaction };
386
386
  }
387
387
  function ensureInitialized() {
388
- if (chunkPM5D6VXF_cjs.isDisabled()) return null;
388
+ if (chunkIHIS62VS_cjs.isDisabled()) return null;
389
389
  if (singleton !== null) return singleton;
390
- singleton = buildSingleton({}, chunkPM5D6VXF_cjs.buildRedactionConfig());
390
+ singleton = buildSingleton({}, chunkIHIS62VS_cjs.buildRedactionConfig());
391
391
  return singleton;
392
392
  }
393
- chunkQCI2ZDQS_cjs._setEnsureInitialized(() => {
393
+ chunk47GVOQB4_cjs._setEnsureInitialized(() => {
394
394
  ensureInitialized();
395
395
  });
396
396
  function init(options = {}) {
397
- if (chunkPM5D6VXF_cjs.isDisabled()) {
397
+ if (chunkIHIS62VS_cjs.isDisabled()) {
398
398
  logger("info", "morse: MORSE_DISABLED=1 \u2014 SDK is a no-op");
399
399
  return;
400
400
  }
401
- const redaction = chunkPM5D6VXF_cjs.buildRedactionConfig(options.redaction);
401
+ const redaction = chunkIHIS62VS_cjs.buildRedactionConfig(options.redaction);
402
402
  try {
403
403
  if (singleton !== null) {
404
404
  void singleton.transport.shutdown();
@@ -406,10 +406,10 @@ function init(options = {}) {
406
406
  }
407
407
  singleton = buildSingleton(options, redaction);
408
408
  } catch (err) {
409
- chunkPM5D6VXF_cjs.report(err, { fingerprint: "morse.init" });
409
+ chunkIHIS62VS_cjs.report(err, { fingerprint: "morse.init" });
410
410
  }
411
411
  }
412
- var track = chunkP7XWSMFX_cjs.absorbErrorsSync(
412
+ var track = chunkQAFFDJFK_cjs.absorbErrorsSync(
413
413
  (options) => {
414
414
  const state = ensureInitialized();
415
415
  if (!state) return;
@@ -417,33 +417,33 @@ var track = chunkP7XWSMFX_cjs.absorbErrorsSync(
417
417
  agent_id: options.agentId,
418
418
  ...options.runData
419
419
  };
420
- const redacted = chunkPM5D6VXF_cjs.redactValue(payload, state.redaction);
420
+ const redacted = chunkIHIS62VS_cjs.redactValue(payload, state.redaction);
421
421
  state.transport.track(redacted);
422
422
  },
423
423
  { fingerprint: "morse.track" }
424
424
  );
425
- var batchTrack = chunkP7XWSMFX_cjs.absorbErrorsSync(
425
+ var batchTrack = chunkQAFFDJFK_cjs.absorbErrorsSync(
426
426
  (runs) => {
427
427
  const state = ensureInitialized();
428
428
  if (!state) return;
429
429
  for (const run2 of runs) {
430
- const redacted = chunkPM5D6VXF_cjs.redactValue(run2, state.redaction);
430
+ const redacted = chunkIHIS62VS_cjs.redactValue(run2, state.redaction);
431
431
  state.transport.track(redacted);
432
432
  }
433
433
  },
434
434
  { fingerprint: "morse.batch_track" }
435
435
  );
436
- var record = chunkP7XWSMFX_cjs.absorbErrorsSync(
436
+ var record = chunkQAFFDJFK_cjs.absorbErrorsSync(
437
437
  (rec) => {
438
438
  const state = ensureInitialized();
439
439
  if (!state) return;
440
- const traceId = chunkPM5D6VXF_cjs.generateTraceId();
441
- const now = chunkPM5D6VXF_cjs.nowIso();
440
+ const traceId = chunkIHIS62VS_cjs.generateTraceId();
441
+ const now = chunkIHIS62VS_cjs.nowIso();
442
442
  const resolvedStatus = rec.errorMessage ? "failed" : rec.status ?? "completed";
443
443
  const span2 = {
444
444
  trace_id: traceId,
445
- span_id: chunkPM5D6VXF_cjs.generateSpanId(),
446
- type: chunkPM5D6VXF_cjs.SpanType.AGENT,
445
+ span_id: chunkIHIS62VS_cjs.generateSpanId(),
446
+ type: chunkIHIS62VS_cjs.SpanType.AGENT,
447
447
  name: rec.agent,
448
448
  started_at: now,
449
449
  ended_at: now,
@@ -468,57 +468,58 @@ var record = chunkP7XWSMFX_cjs.absorbErrorsSync(
468
468
  success: rec.success,
469
469
  outcome: rec.outcome
470
470
  };
471
- const entry = chunkPM5D6VXF_cjs.buildTraceEntry(traceFields, [span2]);
472
- const redacted = chunkPM5D6VXF_cjs.redactValue(entry, state.redaction);
473
- chunkPM5D6VXF_cjs.sendTrace(redacted);
471
+ const entry = chunkIHIS62VS_cjs.buildTraceEntry(traceFields, [span2]);
472
+ const redacted = chunkIHIS62VS_cjs.redactValue(entry, state.redaction);
473
+ chunkIHIS62VS_cjs.sendTrace(redacted);
474
474
  },
475
475
  { fingerprint: "morse.record" }
476
476
  );
477
477
  function run(nameOrOpts, fn) {
478
478
  const opts = typeof nameOrOpts === "string" ? { agentName: nameOrOpts } : nameOrOpts;
479
479
  ensureInitialized();
480
- return chunkPM5D6VXF_cjs.runSync(opts, fn);
480
+ return chunkIHIS62VS_cjs.runSync(opts, fn);
481
481
  }
482
482
  function runTraced(options, fn) {
483
483
  ensureInitialized();
484
- return chunkPM5D6VXF_cjs.runAsync(options, fn);
484
+ return chunkIHIS62VS_cjs.runAsync(options, fn);
485
485
  }
486
486
  function setContext2(dims) {
487
- chunkPM5D6VXF_cjs.setContext(dims);
487
+ chunkIHIS62VS_cjs.setContext(dims);
488
488
  }
489
489
  function startSpan2(options) {
490
- return chunkPM5D6VXF_cjs.startSpan(options);
490
+ return chunkIHIS62VS_cjs.startSpan(options);
491
491
  }
492
492
  function span(options, fn) {
493
- return chunkPM5D6VXF_cjs.spanSync(options, fn);
493
+ return chunkIHIS62VS_cjs.spanSync(options, fn);
494
494
  }
495
495
  function spanAsync2(options, fn) {
496
- return chunkPM5D6VXF_cjs.spanAsync(options, fn);
496
+ return chunkIHIS62VS_cjs.spanAsync(options, fn);
497
497
  }
498
- var flush = chunkP7XWSMFX_cjs.absorbErrorsAsync(
498
+ var flush = chunkQAFFDJFK_cjs.absorbErrorsAsync(
499
499
  async () => {
500
500
  if (singleton !== null) {
501
501
  await singleton.transport.flush();
502
- await chunkPM5D6VXF_cjs.getEngine().flush();
502
+ await chunkIHIS62VS_cjs.getEngine().flush();
503
503
  }
504
504
  },
505
505
  { fingerprint: "morse.flush" }
506
506
  );
507
- var quotaState2 = chunkP7XWSMFX_cjs.absorbErrorsSync(
507
+ var quotaState2 = chunkQAFFDJFK_cjs.absorbErrorsSync(
508
508
  () => {
509
509
  if (singleton === null) return null;
510
510
  return getQuotaState();
511
511
  },
512
512
  { fingerprint: "morse.quota_state" }
513
513
  );
514
- var shutdown = chunkP7XWSMFX_cjs.absorbErrorsAsync(
514
+ var shutdown = chunkQAFFDJFK_cjs.absorbErrorsAsync(
515
515
  async () => {
516
516
  if (singleton !== null) {
517
517
  await singleton.transport.shutdown();
518
- await chunkPM5D6VXF_cjs.getEngine().flush();
519
- chunkPM5D6VXF_cjs.getEngine().shutdown();
518
+ await chunkIHIS62VS_cjs.getEngine().flush();
519
+ chunkIHIS62VS_cjs.getEngine().shutdown();
520
+ await chunkIHIS62VS_cjs.flushOnce();
520
521
  singleton = null;
521
- chunkPM5D6VXF_cjs.setTransport(null);
522
+ chunkIHIS62VS_cjs.setTransport(null);
522
523
  }
523
524
  },
524
525
  { fingerprint: "morse.shutdown" }
@@ -527,14 +528,14 @@ function _resetForTesting4() {
527
528
  if (singleton !== null) {
528
529
  void singleton.transport.shutdown();
529
530
  singleton = null;
530
- chunkPM5D6VXF_cjs.setTransport(null);
531
+ chunkIHIS62VS_cjs.setTransport(null);
531
532
  }
532
- chunkPM5D6VXF_cjs.getEngine().resetForTesting();
533
+ chunkIHIS62VS_cjs.getEngine().resetForTesting();
533
534
  noApiKeyWarningEmitted = false;
534
535
  lastLoggedEndpoint = null;
535
- chunkPM5D6VXF_cjs.setSource(null);
536
- chunkPM5D6VXF_cjs._resetForTesting2();
537
- chunkPM5D6VXF_cjs._resetForTesting();
536
+ chunkIHIS62VS_cjs.setSource(null);
537
+ chunkIHIS62VS_cjs._resetForTesting2();
538
+ chunkIHIS62VS_cjs._resetForTesting();
538
539
  _resetQuotaStateForTesting();
539
540
  transportFactory = (opts) => new BatchTransport(opts);
540
541
  }
@@ -542,59 +543,59 @@ function _setTransportFactoryForTesting(factory) {
542
543
  transportFactory = factory;
543
544
  }
544
545
  function _getLastTraceForTesting() {
545
- return chunkPM5D6VXF_cjs.getLastTrace();
546
+ return chunkIHIS62VS_cjs.getLastTrace();
546
547
  }
547
548
  function _getActiveTraceStateForTesting() {
548
- return chunkPM5D6VXF_cjs.getActiveTraceState();
549
+ return chunkIHIS62VS_cjs.getActiveTraceState();
549
550
  }
550
551
 
551
552
  Object.defineProperty(exports, "MAX_SEGMENT_CONTENT_BYTES", {
552
553
  enumerable: true,
553
- get: function () { return chunkVSG4EWNL_cjs.MAX_SEGMENT_CONTENT_BYTES; }
554
+ get: function () { return chunkWGWPCVYB_cjs.MAX_SEGMENT_CONTENT_BYTES; }
554
555
  });
555
556
  Object.defineProperty(exports, "extractAnthropicSegments", {
556
557
  enumerable: true,
557
- get: function () { return chunkVSG4EWNL_cjs.extractAnthropicSegments; }
558
+ get: function () { return chunkWGWPCVYB_cjs.extractAnthropicSegments; }
558
559
  });
559
560
  Object.defineProperty(exports, "instrumentAnthropic", {
560
561
  enumerable: true,
561
- get: function () { return chunkVSG4EWNL_cjs.instrumentAnthropic; }
562
+ get: function () { return chunkWGWPCVYB_cjs.instrumentAnthropic; }
562
563
  });
563
564
  Object.defineProperty(exports, "isAnthropicWrapped", {
564
565
  enumerable: true,
565
- get: function () { return chunkVSG4EWNL_cjs.isAnthropicWrapped; }
566
+ get: function () { return chunkWGWPCVYB_cjs.isAnthropicWrapped; }
566
567
  });
567
568
  Object.defineProperty(exports, "uninstallAnthropic", {
568
569
  enumerable: true,
569
- get: function () { return chunkVSG4EWNL_cjs.uninstallAnthropic; }
570
+ get: function () { return chunkWGWPCVYB_cjs.uninstallAnthropic; }
570
571
  });
571
572
  Object.defineProperty(exports, "wrapAnthropic", {
572
573
  enumerable: true,
573
- get: function () { return chunkVSG4EWNL_cjs.wrapAnthropic; }
574
+ get: function () { return chunkWGWPCVYB_cjs.wrapAnthropic; }
574
575
  });
575
576
  Object.defineProperty(exports, "log", {
576
577
  enumerable: true,
577
- get: function () { return chunkQCI2ZDQS_cjs.log; }
578
+ get: function () { return chunk47GVOQB4_cjs.log; }
578
579
  });
579
580
  Object.defineProperty(exports, "W3C_TRACEPARENT_HEADER", {
580
581
  enumerable: true,
581
- get: function () { return chunkPM5D6VXF_cjs.W3C_TRACEPARENT_HEADER; }
582
+ get: function () { return chunkIHIS62VS_cjs.W3C_TRACEPARENT_HEADER; }
582
583
  });
583
584
  Object.defineProperty(exports, "extractTraceparent", {
584
585
  enumerable: true,
585
- get: function () { return chunkPM5D6VXF_cjs.extractTraceparent; }
586
+ get: function () { return chunkIHIS62VS_cjs.extractTraceparent; }
586
587
  });
587
588
  Object.defineProperty(exports, "formatTraceparent", {
588
589
  enumerable: true,
589
- get: function () { return chunkPM5D6VXF_cjs.formatTraceparent; }
590
+ get: function () { return chunkIHIS62VS_cjs.formatTraceparent; }
590
591
  });
591
592
  Object.defineProperty(exports, "injectIntoRequestInit", {
592
593
  enumerable: true,
593
- get: function () { return chunkPM5D6VXF_cjs.injectIntoRequestInit; }
594
+ get: function () { return chunkIHIS62VS_cjs.injectIntoRequestInit; }
594
595
  });
595
596
  Object.defineProperty(exports, "injectTraceparent", {
596
597
  enumerable: true,
597
- get: function () { return chunkPM5D6VXF_cjs.injectTraceparent; }
598
+ get: function () { return chunkIHIS62VS_cjs.injectTraceparent; }
598
599
  });
599
600
  exports._getActiveTraceStateForTesting = _getActiveTraceStateForTesting;
600
601
  exports._getLastTraceForTesting = _getLastTraceForTesting;