@morsehq-dev/sdk 0.5.0-rc.4 → 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 (106) hide show
  1. package/README.md +17 -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-VOZBYSWK.cjs → chunk-26Q2QD5J.cjs} +5 -5
  17. package/dist/browser/{chunk-VOZBYSWK.cjs.map → chunk-26Q2QD5J.cjs.map} +1 -1
  18. package/dist/browser/{chunk-36QTJJT7.cjs → chunk-47GVOQB4.cjs} +12 -12
  19. package/dist/browser/{chunk-36QTJJT7.cjs.map → chunk-47GVOQB4.cjs.map} +1 -1
  20. package/dist/browser/{chunk-E2OVLWAF.js → chunk-64YI3IZS.js} +3 -3
  21. package/dist/browser/{chunk-E2OVLWAF.js.map → chunk-64YI3IZS.js.map} +1 -1
  22. package/dist/browser/{chunk-JR6JN7IZ.js → chunk-CI7M2GHD.js} +4 -4
  23. package/dist/browser/{chunk-JR6JN7IZ.js.map → chunk-CI7M2GHD.js.map} +1 -1
  24. package/dist/browser/{chunk-WIWUEI5Z.js → chunk-EH326H6U.js} +3 -3
  25. package/dist/browser/{chunk-WIWUEI5Z.js.map → chunk-EH326H6U.js.map} +1 -1
  26. package/dist/browser/{chunk-KXVSMY6L.js → chunk-GLL57K7P.js} +3 -3
  27. package/dist/browser/{chunk-KXVSMY6L.js.map → chunk-GLL57K7P.js.map} +1 -1
  28. package/dist/browser/{chunk-3H2OJLC2.cjs → chunk-IHIS62VS.cjs} +4 -4
  29. package/dist/browser/chunk-IHIS62VS.cjs.map +1 -0
  30. package/dist/browser/{chunk-PIWO5L5N.js → chunk-MIB3EOC4.js} +5 -5
  31. package/dist/browser/{chunk-PIWO5L5N.js.map → chunk-MIB3EOC4.js.map} +1 -1
  32. package/dist/browser/{chunk-3STFITZF.cjs → chunk-QAFFDJFK.cjs} +6 -6
  33. package/dist/browser/{chunk-3STFITZF.cjs.map → chunk-QAFFDJFK.cjs.map} +1 -1
  34. package/dist/{chunk-BNMTY7PE.js → browser/chunk-UL5TNXQL.js} +4 -4
  35. package/dist/browser/{chunk-VZA2EPY3.js.map → chunk-UL5TNXQL.js.map} +1 -1
  36. package/dist/browser/{chunk-XD4VWCAC.js → chunk-V7AUPQIJ.js} +4 -4
  37. package/dist/browser/chunk-V7AUPQIJ.js.map +1 -0
  38. package/dist/browser/{chunk-YD7TO4PD.cjs → chunk-WGWPCVYB.cjs} +18 -18
  39. package/dist/browser/{chunk-YD7TO4PD.cjs.map → chunk-WGWPCVYB.cjs.map} +1 -1
  40. package/dist/browser/{chunk-6J6F5LJI.cjs → chunk-WR2SQLKP.cjs} +7 -7
  41. package/dist/browser/{chunk-6J6F5LJI.cjs.map → chunk-WR2SQLKP.cjs.map} +1 -1
  42. package/dist/browser/{chunk-255AHH2W.cjs → chunk-ZVVUZRG7.cjs} +15 -15
  43. package/dist/browser/{chunk-255AHH2W.cjs.map → chunk-ZVVUZRG7.cjs.map} +1 -1
  44. package/dist/browser/index.cjs +91 -91
  45. package/dist/browser/index.js +8 -8
  46. package/dist/browser/integrations/pino.cjs +4 -4
  47. package/dist/browser/integrations/pino.js +3 -3
  48. package/dist/browser/langchain/index.cjs +17 -17
  49. package/dist/browser/langchain/index.js +2 -2
  50. package/dist/browser/langgraph/index.cjs +27 -27
  51. package/dist/browser/langgraph/index.js +5 -5
  52. package/dist/browser/openai/index.cjs +11 -11
  53. package/dist/browser/openai/index.js +2 -2
  54. package/dist/browser/openai-agents/index.cjs +34 -34
  55. package/dist/browser/openai-agents/index.js +4 -4
  56. package/dist/browser/vercel-ai/index.cjs +14 -14
  57. package/dist/browser/vercel-ai/index.js +3 -3
  58. package/dist/{chunk-MBOISGKD.js → chunk-7I4ILCLY.js} +4 -4
  59. package/dist/{chunk-MBOISGKD.js.map → chunk-7I4ILCLY.js.map} +1 -1
  60. package/dist/{chunk-7ZNGY236.cjs → chunk-DGBQ3UI6.cjs} +7 -7
  61. package/dist/{chunk-7ZNGY236.cjs.map → chunk-DGBQ3UI6.cjs.map} +1 -1
  62. package/dist/{chunk-VM3QM22Z.cjs → chunk-DPW4W7H7.cjs} +18 -18
  63. package/dist/{chunk-VM3QM22Z.cjs.map → chunk-DPW4W7H7.cjs.map} +1 -1
  64. package/dist/{chunk-HA5RY4N5.cjs → chunk-DQ4T2MJE.cjs} +4 -4
  65. package/dist/chunk-DQ4T2MJE.cjs.map +1 -0
  66. package/dist/{chunk-ELBY4SJ7.js → chunk-ELVBOJWY.js} +4 -4
  67. package/dist/chunk-ELVBOJWY.js.map +1 -0
  68. package/dist/{chunk-JFFZBCTP.js → chunk-HONYN2OI.js} +3 -3
  69. package/dist/{chunk-JFFZBCTP.js.map → chunk-HONYN2OI.js.map} +1 -1
  70. package/dist/{chunk-ULWGK6F5.cjs → chunk-I3P5CHBV.cjs} +12 -12
  71. package/dist/{chunk-ULWGK6F5.cjs.map → chunk-I3P5CHBV.cjs.map} +1 -1
  72. package/dist/{browser/chunk-VZA2EPY3.js → chunk-MNV4HASC.js} +4 -4
  73. package/dist/{chunk-BNMTY7PE.js.map → chunk-MNV4HASC.js.map} +1 -1
  74. package/dist/{chunk-2O2FFJLK.js → chunk-NR36TJMT.js} +5 -5
  75. package/dist/{chunk-2O2FFJLK.js.map → chunk-NR36TJMT.js.map} +1 -1
  76. package/dist/{chunk-YPP5DDPO.js → chunk-QZDUGEIR.js} +3 -3
  77. package/dist/{chunk-YPP5DDPO.js.map → chunk-QZDUGEIR.js.map} +1 -1
  78. package/dist/{chunk-RDFDPK2X.cjs → chunk-RRE2LX2A.cjs} +6 -6
  79. package/dist/{chunk-RDFDPK2X.cjs.map → chunk-RRE2LX2A.cjs.map} +1 -1
  80. package/dist/{chunk-WLNADB4J.cjs → chunk-SJ625SQS.cjs} +15 -15
  81. package/dist/{chunk-WLNADB4J.cjs.map → chunk-SJ625SQS.cjs.map} +1 -1
  82. package/dist/{chunk-Q6NQQ2LO.js → chunk-YKPZQPEW.js} +3 -3
  83. package/dist/{chunk-Q6NQQ2LO.js.map → chunk-YKPZQPEW.js.map} +1 -1
  84. package/dist/{chunk-HZKXILBF.cjs → chunk-Z5MFR7UE.cjs} +5 -5
  85. package/dist/{chunk-HZKXILBF.cjs.map → chunk-Z5MFR7UE.cjs.map} +1 -1
  86. package/dist/index.cjs +104 -99
  87. package/dist/index.cjs.map +1 -1
  88. package/dist/index.js +15 -10
  89. package/dist/index.js.map +1 -1
  90. package/dist/integrations/pino.cjs +4 -4
  91. package/dist/integrations/pino.js +3 -3
  92. package/dist/langchain/index.cjs +17 -17
  93. package/dist/langchain/index.js +2 -2
  94. package/dist/langgraph/index.cjs +27 -27
  95. package/dist/langgraph/index.js +5 -5
  96. package/dist/openai/index.cjs +11 -11
  97. package/dist/openai/index.js +2 -2
  98. package/dist/openai-agents/index.cjs +34 -34
  99. package/dist/openai-agents/index.js +4 -4
  100. package/dist/vercel-ai/index.cjs +14 -14
  101. package/dist/vercel-ai/index.js +3 -3
  102. package/package.json +1 -1
  103. package/dist/browser/chunk-3H2OJLC2.cjs.map +0 -1
  104. package/dist/browser/chunk-XD4VWCAC.js.map +0 -1
  105. package/dist/chunk-ELBY4SJ7.js.map +0 -1
  106. package/dist/chunk-HA5RY4N5.cjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunk3STFITZF_cjs = require('./chunk-3STFITZF.cjs');
4
- var chunk3H2OJLC2_cjs = require('./chunk-3H2OJLC2.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
- chunk3H2OJLC2_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 = chunk3H2OJLC2_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 = chunk3STFITZF_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 = chunk3H2OJLC2_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 = chunk3STFITZF_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 chunk3H2OJLC2_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 = chunk3STFITZF_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 chunk3H2OJLC2_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 = chunk3STFITZF_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 chunk3H2OJLC2_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 = chunk3STFITZF_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-255AHH2W.cjs.map
179
- //# sourceMappingURL=chunk-255AHH2W.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-255AHH2W.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 chunkYD7TO4PD_cjs = require('./chunk-YD7TO4PD.cjs');
4
- var chunk36QTJJT7_cjs = require('./chunk-36QTJJT7.cjs');
5
- require('./chunk-VOZBYSWK.cjs');
6
- var chunk3STFITZF_cjs = require('./chunk-3STFITZF.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 chunk3H2OJLC2_cjs = require('./chunk-3H2OJLC2.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
- chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.init_otel_provider_browser();
24
- chunk3H2OJLC2_cjs.init_redaction();
23
+ chunkIHIS62VS_cjs.init_otel_provider_browser();
24
+ chunkIHIS62VS_cjs.init_redaction();
25
25
 
26
26
  // src/_internal/transport.ts
27
- chunk3H2OJLC2_cjs.init_diagnostics();
28
- var SDK_VERSION = "0.5.0-rc.4" ;
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
- chunk3H2OJLC2_cjs.recordDrop(chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.recordDrop(chunk3H2OJLC2_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
- chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.recordDrop(chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.recordDrop(chunk3H2OJLC2_cjs.REASON_RETRY_EXHAUSTED, droppedCategory, droppedCount);
239
+ chunkIHIS62VS_cjs.recordDrop(chunkIHIS62VS_cjs.REASON_RETRY_EXHAUSTED, droppedCategory, droppedCount);
240
240
  }
241
- chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.recordDrop(chunk3H2OJLC2_cjs.REASON_RETRY_EXHAUSTED, categoryOf(payload), countPayloadEntries(payload));
251
- chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.init_tracing();
296
- chunk3H2OJLC2_cjs.init_diagnostics();
297
- chunk3H2OJLC2_cjs.init_spans();
298
- chunk3H2OJLC2_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 = chunk3H2OJLC2_cjs.getEndpoint();
318
+ const fromEnv = chunkIHIS62VS_cjs.getEndpoint();
319
319
  if (fromEnv) return fromEnv;
320
- return chunk3H2OJLC2_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 (chunk3H2OJLC2_cjs.isDisabled()) {
335
+ if (chunkIHIS62VS_cjs.isDisabled()) {
336
336
  return null;
337
337
  }
338
- const apiKey = opts.apiKey ?? chunk3H2OJLC2_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 ?? chunk3H2OJLC2_cjs.getFlushIntervalSeconds();
350
+ const flushIntervalSeconds = opts.flushIntervalSeconds ?? chunkIHIS62VS_cjs.getFlushIntervalSeconds();
351
351
  const transport = transportFactory({ apiKey, endpoint, flushIntervalSeconds });
352
- chunk3H2OJLC2_cjs.setTransport(transport);
353
- chunk3H2OJLC2_cjs.setRedactionConfig(redaction);
354
- chunk3H2OJLC2_cjs.setDiagnosticsClientConfig({ apiKey, endpoint });
355
- const explicitSource = chunk3H2OJLC2_cjs.isValidInternalSource(opts.source) ? opts.source : void 0;
356
- const resolvedSource = explicitSource ?? chunk3H2OJLC2_cjs.getInternalSource() ?? null;
357
- chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.getEngine().configure({
360
+ chunkIHIS62VS_cjs.getEngine().configure({
361
361
  endpoint: deriveOtlpEndpoint(endpoint),
362
362
  apiKey,
363
- sampleRate: chunk3H2OJLC2_cjs.getSampleRate(),
363
+ sampleRate: chunkIHIS62VS_cjs.getSampleRate(),
364
364
  scheduleDelayMillis: flushIntervalSeconds * 1e3,
365
- maxQueueSize: chunk3H2OJLC2_cjs.getMaxQueueSize(),
366
- maxExportBatchSize: chunk3H2OJLC2_cjs.getMaxBatchSize(),
367
- maxFieldBytes: chunk3H2OJLC2_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
- chunk3H2OJLC2_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
- chunk3H2OJLC2_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 (chunk3H2OJLC2_cjs.isDisabled()) return null;
388
+ if (chunkIHIS62VS_cjs.isDisabled()) return null;
389
389
  if (singleton !== null) return singleton;
390
- singleton = buildSingleton({}, chunk3H2OJLC2_cjs.buildRedactionConfig());
390
+ singleton = buildSingleton({}, chunkIHIS62VS_cjs.buildRedactionConfig());
391
391
  return singleton;
392
392
  }
393
- chunk36QTJJT7_cjs._setEnsureInitialized(() => {
393
+ chunk47GVOQB4_cjs._setEnsureInitialized(() => {
394
394
  ensureInitialized();
395
395
  });
396
396
  function init(options = {}) {
397
- if (chunk3H2OJLC2_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 = chunk3H2OJLC2_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
- chunk3H2OJLC2_cjs.report(err, { fingerprint: "morse.init" });
409
+ chunkIHIS62VS_cjs.report(err, { fingerprint: "morse.init" });
410
410
  }
411
411
  }
412
- var track = chunk3STFITZF_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 = chunk3STFITZF_cjs.absorbErrorsSync(
417
417
  agent_id: options.agentId,
418
418
  ...options.runData
419
419
  };
420
- const redacted = chunk3H2OJLC2_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 = chunk3STFITZF_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 = chunk3H2OJLC2_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 = chunk3STFITZF_cjs.absorbErrorsSync(
436
+ var record = chunkQAFFDJFK_cjs.absorbErrorsSync(
437
437
  (rec) => {
438
438
  const state = ensureInitialized();
439
439
  if (!state) return;
440
- const traceId = chunk3H2OJLC2_cjs.generateTraceId();
441
- const now = chunk3H2OJLC2_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: chunk3H2OJLC2_cjs.generateSpanId(),
446
- type: chunk3H2OJLC2_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,58 +468,58 @@ var record = chunk3STFITZF_cjs.absorbErrorsSync(
468
468
  success: rec.success,
469
469
  outcome: rec.outcome
470
470
  };
471
- const entry = chunk3H2OJLC2_cjs.buildTraceEntry(traceFields, [span2]);
472
- const redacted = chunk3H2OJLC2_cjs.redactValue(entry, state.redaction);
473
- chunk3H2OJLC2_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 chunk3H2OJLC2_cjs.runSync(opts, fn);
480
+ return chunkIHIS62VS_cjs.runSync(opts, fn);
481
481
  }
482
482
  function runTraced(options, fn) {
483
483
  ensureInitialized();
484
- return chunk3H2OJLC2_cjs.runAsync(options, fn);
484
+ return chunkIHIS62VS_cjs.runAsync(options, fn);
485
485
  }
486
486
  function setContext2(dims) {
487
- chunk3H2OJLC2_cjs.setContext(dims);
487
+ chunkIHIS62VS_cjs.setContext(dims);
488
488
  }
489
489
  function startSpan2(options) {
490
- return chunk3H2OJLC2_cjs.startSpan(options);
490
+ return chunkIHIS62VS_cjs.startSpan(options);
491
491
  }
492
492
  function span(options, fn) {
493
- return chunk3H2OJLC2_cjs.spanSync(options, fn);
493
+ return chunkIHIS62VS_cjs.spanSync(options, fn);
494
494
  }
495
495
  function spanAsync2(options, fn) {
496
- return chunk3H2OJLC2_cjs.spanAsync(options, fn);
496
+ return chunkIHIS62VS_cjs.spanAsync(options, fn);
497
497
  }
498
- var flush = chunk3STFITZF_cjs.absorbErrorsAsync(
498
+ var flush = chunkQAFFDJFK_cjs.absorbErrorsAsync(
499
499
  async () => {
500
500
  if (singleton !== null) {
501
501
  await singleton.transport.flush();
502
- await chunk3H2OJLC2_cjs.getEngine().flush();
502
+ await chunkIHIS62VS_cjs.getEngine().flush();
503
503
  }
504
504
  },
505
505
  { fingerprint: "morse.flush" }
506
506
  );
507
- var quotaState2 = chunk3STFITZF_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 = chunk3STFITZF_cjs.absorbErrorsAsync(
514
+ var shutdown = chunkQAFFDJFK_cjs.absorbErrorsAsync(
515
515
  async () => {
516
516
  if (singleton !== null) {
517
517
  await singleton.transport.shutdown();
518
- await chunk3H2OJLC2_cjs.getEngine().flush();
519
- chunk3H2OJLC2_cjs.getEngine().shutdown();
520
- await chunk3H2OJLC2_cjs.flushOnce();
518
+ await chunkIHIS62VS_cjs.getEngine().flush();
519
+ chunkIHIS62VS_cjs.getEngine().shutdown();
520
+ await chunkIHIS62VS_cjs.flushOnce();
521
521
  singleton = null;
522
- chunk3H2OJLC2_cjs.setTransport(null);
522
+ chunkIHIS62VS_cjs.setTransport(null);
523
523
  }
524
524
  },
525
525
  { fingerprint: "morse.shutdown" }
@@ -528,14 +528,14 @@ function _resetForTesting4() {
528
528
  if (singleton !== null) {
529
529
  void singleton.transport.shutdown();
530
530
  singleton = null;
531
- chunk3H2OJLC2_cjs.setTransport(null);
531
+ chunkIHIS62VS_cjs.setTransport(null);
532
532
  }
533
- chunk3H2OJLC2_cjs.getEngine().resetForTesting();
533
+ chunkIHIS62VS_cjs.getEngine().resetForTesting();
534
534
  noApiKeyWarningEmitted = false;
535
535
  lastLoggedEndpoint = null;
536
- chunk3H2OJLC2_cjs.setSource(null);
537
- chunk3H2OJLC2_cjs._resetForTesting2();
538
- chunk3H2OJLC2_cjs._resetForTesting();
536
+ chunkIHIS62VS_cjs.setSource(null);
537
+ chunkIHIS62VS_cjs._resetForTesting2();
538
+ chunkIHIS62VS_cjs._resetForTesting();
539
539
  _resetQuotaStateForTesting();
540
540
  transportFactory = (opts) => new BatchTransport(opts);
541
541
  }
@@ -543,59 +543,59 @@ function _setTransportFactoryForTesting(factory) {
543
543
  transportFactory = factory;
544
544
  }
545
545
  function _getLastTraceForTesting() {
546
- return chunk3H2OJLC2_cjs.getLastTrace();
546
+ return chunkIHIS62VS_cjs.getLastTrace();
547
547
  }
548
548
  function _getActiveTraceStateForTesting() {
549
- return chunk3H2OJLC2_cjs.getActiveTraceState();
549
+ return chunkIHIS62VS_cjs.getActiveTraceState();
550
550
  }
551
551
 
552
552
  Object.defineProperty(exports, "MAX_SEGMENT_CONTENT_BYTES", {
553
553
  enumerable: true,
554
- get: function () { return chunkYD7TO4PD_cjs.MAX_SEGMENT_CONTENT_BYTES; }
554
+ get: function () { return chunkWGWPCVYB_cjs.MAX_SEGMENT_CONTENT_BYTES; }
555
555
  });
556
556
  Object.defineProperty(exports, "extractAnthropicSegments", {
557
557
  enumerable: true,
558
- get: function () { return chunkYD7TO4PD_cjs.extractAnthropicSegments; }
558
+ get: function () { return chunkWGWPCVYB_cjs.extractAnthropicSegments; }
559
559
  });
560
560
  Object.defineProperty(exports, "instrumentAnthropic", {
561
561
  enumerable: true,
562
- get: function () { return chunkYD7TO4PD_cjs.instrumentAnthropic; }
562
+ get: function () { return chunkWGWPCVYB_cjs.instrumentAnthropic; }
563
563
  });
564
564
  Object.defineProperty(exports, "isAnthropicWrapped", {
565
565
  enumerable: true,
566
- get: function () { return chunkYD7TO4PD_cjs.isAnthropicWrapped; }
566
+ get: function () { return chunkWGWPCVYB_cjs.isAnthropicWrapped; }
567
567
  });
568
568
  Object.defineProperty(exports, "uninstallAnthropic", {
569
569
  enumerable: true,
570
- get: function () { return chunkYD7TO4PD_cjs.uninstallAnthropic; }
570
+ get: function () { return chunkWGWPCVYB_cjs.uninstallAnthropic; }
571
571
  });
572
572
  Object.defineProperty(exports, "wrapAnthropic", {
573
573
  enumerable: true,
574
- get: function () { return chunkYD7TO4PD_cjs.wrapAnthropic; }
574
+ get: function () { return chunkWGWPCVYB_cjs.wrapAnthropic; }
575
575
  });
576
576
  Object.defineProperty(exports, "log", {
577
577
  enumerable: true,
578
- get: function () { return chunk36QTJJT7_cjs.log; }
578
+ get: function () { return chunk47GVOQB4_cjs.log; }
579
579
  });
580
580
  Object.defineProperty(exports, "W3C_TRACEPARENT_HEADER", {
581
581
  enumerable: true,
582
- get: function () { return chunk3H2OJLC2_cjs.W3C_TRACEPARENT_HEADER; }
582
+ get: function () { return chunkIHIS62VS_cjs.W3C_TRACEPARENT_HEADER; }
583
583
  });
584
584
  Object.defineProperty(exports, "extractTraceparent", {
585
585
  enumerable: true,
586
- get: function () { return chunk3H2OJLC2_cjs.extractTraceparent; }
586
+ get: function () { return chunkIHIS62VS_cjs.extractTraceparent; }
587
587
  });
588
588
  Object.defineProperty(exports, "formatTraceparent", {
589
589
  enumerable: true,
590
- get: function () { return chunk3H2OJLC2_cjs.formatTraceparent; }
590
+ get: function () { return chunkIHIS62VS_cjs.formatTraceparent; }
591
591
  });
592
592
  Object.defineProperty(exports, "injectIntoRequestInit", {
593
593
  enumerable: true,
594
- get: function () { return chunk3H2OJLC2_cjs.injectIntoRequestInit; }
594
+ get: function () { return chunkIHIS62VS_cjs.injectIntoRequestInit; }
595
595
  });
596
596
  Object.defineProperty(exports, "injectTraceparent", {
597
597
  enumerable: true,
598
- get: function () { return chunk3H2OJLC2_cjs.injectTraceparent; }
598
+ get: function () { return chunkIHIS62VS_cjs.injectTraceparent; }
599
599
  });
600
600
  exports._getActiveTraceStateForTesting = _getActiveTraceStateForTesting;
601
601
  exports._getLastTraceForTesting = _getLastTraceForTesting;
@@ -1,12 +1,12 @@
1
- export { MAX_SEGMENT_CONTENT_BYTES, extractAnthropicSegments, instrumentAnthropic, isAnthropicWrapped, uninstallAnthropic, wrapAnthropic } from './chunk-PIWO5L5N.js';
2
- import { _setEnsureInitialized } from './chunk-JR6JN7IZ.js';
3
- export { log } from './chunk-JR6JN7IZ.js';
4
- import './chunk-KXVSMY6L.js';
5
- import { absorbErrorsSync, absorbErrorsAsync } from './chunk-WIWUEI5Z.js';
1
+ export { MAX_SEGMENT_CONTENT_BYTES, extractAnthropicSegments, instrumentAnthropic, isAnthropicWrapped, uninstallAnthropic, wrapAnthropic } from './chunk-MIB3EOC4.js';
2
+ import { _setEnsureInitialized } from './chunk-CI7M2GHD.js';
3
+ export { log } from './chunk-CI7M2GHD.js';
4
+ import './chunk-GLL57K7P.js';
5
+ import { absorbErrorsSync, absorbErrorsAsync } from './chunk-EH326H6U.js';
6
6
  import './chunk-4FALQMOZ.js';
7
7
  import './chunk-MLDVXMQD.js';
8
- import { init_env, init_otel_provider_browser, init_redaction, init_diagnostics, init_tracing, init_spans, init_propagation, redactValue, generateTraceId, nowIso, SpanType, generateSpanId, buildTraceEntry, sendTrace, isDisabled, buildRedactionConfig, getApiKey, getFlushIntervalSeconds, setTransport, setRedactionConfig, setDiagnosticsClientConfig, isValidInternalSource, getInternalSource, setSource, getEngine, getMaxFieldBytes, getMaxBatchSize, getMaxQueueSize, getSampleRate, report, getEndpoint, DEFAULT_ENDPOINT, recordDrop, REASON_SHUTDOWN_DROP, REASON_QUEUE_FULL, setLevel, REASON_QUOTA_REJECTED, REASON_RETRY_EXHAUSTED, runSync, runAsync, setContext, startSpan, spanSync, spanAsync, flushOnce, _resetForTesting2, _resetForTesting, getLastTrace, getActiveTraceState } from './chunk-XD4VWCAC.js';
9
- export { W3C_TRACEPARENT_HEADER, extractTraceparent, formatTraceparent, injectIntoRequestInit, injectTraceparent } from './chunk-XD4VWCAC.js';
8
+ import { init_env, init_otel_provider_browser, init_redaction, init_diagnostics, init_tracing, init_spans, init_propagation, redactValue, generateTraceId, nowIso, SpanType, generateSpanId, buildTraceEntry, sendTrace, isDisabled, buildRedactionConfig, getApiKey, getFlushIntervalSeconds, setTransport, setRedactionConfig, setDiagnosticsClientConfig, isValidInternalSource, getInternalSource, setSource, getEngine, getMaxFieldBytes, getMaxBatchSize, getMaxQueueSize, getSampleRate, report, getEndpoint, DEFAULT_ENDPOINT, recordDrop, REASON_SHUTDOWN_DROP, REASON_QUEUE_FULL, setLevel, REASON_QUOTA_REJECTED, REASON_RETRY_EXHAUSTED, runSync, runAsync, setContext, startSpan, spanSync, spanAsync, flushOnce, _resetForTesting2, _resetForTesting, getLastTrace, getActiveTraceState } from './chunk-V7AUPQIJ.js';
9
+ export { W3C_TRACEPARENT_HEADER, extractTraceparent, formatTraceparent, injectIntoRequestInit, injectTraceparent } from './chunk-V7AUPQIJ.js';
10
10
 
11
11
  // src/_internal/auto-detect.browser.ts
12
12
  async function installAdapters() {
@@ -25,7 +25,7 @@ init_redaction();
25
25
 
26
26
  // src/_internal/transport.ts
27
27
  init_diagnostics();
28
- var SDK_VERSION = "0.5.0-rc.4" ;
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;