@traccia2/sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +503 -0
  3. package/dist/auto.d.ts +27 -0
  4. package/dist/auto.d.ts.map +1 -0
  5. package/dist/auto.js +171 -0
  6. package/dist/auto.js.map +1 -0
  7. package/dist/config/env-config.d.ts +21 -0
  8. package/dist/config/env-config.d.ts.map +1 -0
  9. package/dist/config/env-config.js +111 -0
  10. package/dist/config/env-config.js.map +1 -0
  11. package/dist/config/pricing-config.d.ts +27 -0
  12. package/dist/config/pricing-config.d.ts.map +1 -0
  13. package/dist/config/pricing-config.js +74 -0
  14. package/dist/config/pricing-config.js.map +1 -0
  15. package/dist/config/runtime-config.d.ts +65 -0
  16. package/dist/config/runtime-config.d.ts.map +1 -0
  17. package/dist/config/runtime-config.js +97 -0
  18. package/dist/config/runtime-config.js.map +1 -0
  19. package/dist/context/context.d.ts +29 -0
  20. package/dist/context/context.d.ts.map +1 -0
  21. package/dist/context/context.js +48 -0
  22. package/dist/context/context.js.map +1 -0
  23. package/dist/exporter/console-exporter.d.ts +18 -0
  24. package/dist/exporter/console-exporter.d.ts.map +1 -0
  25. package/dist/exporter/console-exporter.js +39 -0
  26. package/dist/exporter/console-exporter.js.map +1 -0
  27. package/dist/exporter/http-exporter.d.ts +57 -0
  28. package/dist/exporter/http-exporter.d.ts.map +1 -0
  29. package/dist/exporter/http-exporter.js +181 -0
  30. package/dist/exporter/http-exporter.js.map +1 -0
  31. package/dist/exporter/index.d.ts +7 -0
  32. package/dist/exporter/index.d.ts.map +1 -0
  33. package/dist/exporter/index.js +12 -0
  34. package/dist/exporter/index.js.map +1 -0
  35. package/dist/index.d.ts +10 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +32 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/integrations/index.d.ts +9 -0
  40. package/dist/integrations/index.d.ts.map +1 -0
  41. package/dist/integrations/index.js +16 -0
  42. package/dist/integrations/index.js.map +1 -0
  43. package/dist/integrations/langchain-callback.d.ts +72 -0
  44. package/dist/integrations/langchain-callback.d.ts.map +1 -0
  45. package/dist/integrations/langchain-callback.js +201 -0
  46. package/dist/integrations/langchain-callback.js.map +1 -0
  47. package/dist/integrations/langgraph-instrumentation.d.ts +57 -0
  48. package/dist/integrations/langgraph-instrumentation.d.ts.map +1 -0
  49. package/dist/integrations/langgraph-instrumentation.js +162 -0
  50. package/dist/integrations/langgraph-instrumentation.js.map +1 -0
  51. package/dist/processor/batch-processor.d.ts +68 -0
  52. package/dist/processor/batch-processor.d.ts.map +1 -0
  53. package/dist/processor/batch-processor.js +150 -0
  54. package/dist/processor/batch-processor.js.map +1 -0
  55. package/dist/processor/cost-processor.d.ts +16 -0
  56. package/dist/processor/cost-processor.d.ts.map +1 -0
  57. package/dist/processor/cost-processor.js +50 -0
  58. package/dist/processor/cost-processor.js.map +1 -0
  59. package/dist/processor/index.d.ts +9 -0
  60. package/dist/processor/index.d.ts.map +1 -0
  61. package/dist/processor/index.js +18 -0
  62. package/dist/processor/index.js.map +1 -0
  63. package/dist/processor/logging-processor.d.ts +13 -0
  64. package/dist/processor/logging-processor.d.ts.map +1 -0
  65. package/dist/processor/logging-processor.js +26 -0
  66. package/dist/processor/logging-processor.js.map +1 -0
  67. package/dist/processor/sampler.d.ts +20 -0
  68. package/dist/processor/sampler.d.ts.map +1 -0
  69. package/dist/processor/sampler.js +33 -0
  70. package/dist/processor/sampler.js.map +1 -0
  71. package/dist/processor/token-counter.d.ts +13 -0
  72. package/dist/processor/token-counter.d.ts.map +1 -0
  73. package/dist/processor/token-counter.js +40 -0
  74. package/dist/processor/token-counter.js.map +1 -0
  75. package/dist/tracer/index.d.ts +8 -0
  76. package/dist/tracer/index.d.ts.map +1 -0
  77. package/dist/tracer/index.js +15 -0
  78. package/dist/tracer/index.js.map +1 -0
  79. package/dist/tracer/provider.d.ts +59 -0
  80. package/dist/tracer/provider.d.ts.map +1 -0
  81. package/dist/tracer/provider.js +114 -0
  82. package/dist/tracer/provider.js.map +1 -0
  83. package/dist/tracer/span-context.d.ts +23 -0
  84. package/dist/tracer/span-context.d.ts.map +1 -0
  85. package/dist/tracer/span-context.js +34 -0
  86. package/dist/tracer/span-context.js.map +1 -0
  87. package/dist/tracer/span.d.ts +49 -0
  88. package/dist/tracer/span.d.ts.map +1 -0
  89. package/dist/tracer/span.js +118 -0
  90. package/dist/tracer/span.js.map +1 -0
  91. package/dist/tracer/tracer.d.ts +28 -0
  92. package/dist/tracer/tracer.d.ts.map +1 -0
  93. package/dist/tracer/tracer.js +75 -0
  94. package/dist/tracer/tracer.js.map +1 -0
  95. package/dist/types.d.ts +135 -0
  96. package/dist/types.d.ts.map +1 -0
  97. package/dist/types.js +16 -0
  98. package/dist/types.js.map +1 -0
  99. package/package.json +79 -0
  100. package/src/__tests__/exporter.test.ts +62 -0
  101. package/src/__tests__/integrations-langchain.test.ts +384 -0
  102. package/src/__tests__/integrations-langgraph.test.ts +479 -0
  103. package/src/__tests__/processor.test.ts +89 -0
  104. package/src/__tests__/span.test.ts +103 -0
  105. package/src/__tests__/tracer.test.ts +89 -0
  106. package/src/auto.ts +198 -0
  107. package/src/config/env-config.ts +93 -0
  108. package/src/config/pricing-config.ts +84 -0
  109. package/src/config/runtime-config.ts +108 -0
  110. package/src/context/context.ts +52 -0
  111. package/src/exporter/console-exporter.ts +38 -0
  112. package/src/exporter/http-exporter.ts +188 -0
  113. package/src/exporter/index.ts +7 -0
  114. package/src/index.ts +51 -0
  115. package/src/integrations/README.md +287 -0
  116. package/src/integrations/index.ts +13 -0
  117. package/src/integrations/langchain-callback.ts +229 -0
  118. package/src/integrations/langgraph-instrumentation.ts +174 -0
  119. package/src/processor/batch-processor.ts +180 -0
  120. package/src/processor/cost-processor.ts +57 -0
  121. package/src/processor/index.ts +9 -0
  122. package/src/processor/logging-processor.ts +26 -0
  123. package/src/processor/sampler.ts +35 -0
  124. package/src/processor/token-counter.ts +42 -0
  125. package/src/tracer/index.ts +8 -0
  126. package/src/tracer/provider.ts +130 -0
  127. package/src/tracer/span-context.ts +46 -0
  128. package/src/tracer/span.ts +145 -0
  129. package/src/tracer/tracer.ts +100 -0
  130. package/src/types.ts +155 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Cost annotation processor.
3
+ */
4
+ import { ISpan, ISpanProcessor } from '../types';
5
+ import { PricingTable } from '../config/pricing-config';
6
+ /**
7
+ * Cost annotation processor.
8
+ */
9
+ export declare class CostAnnotatingProcessor implements ISpanProcessor {
10
+ private pricingTable;
11
+ constructor(pricingTable: PricingTable);
12
+ onEnd(span: ISpan): void;
13
+ shutdown(): Promise<void>;
14
+ forceFlush(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=cost-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-processor.d.ts","sourceRoot":"","sources":["../../src/processor/cost-processor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;GAEG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IAC5D,OAAO,CAAC,YAAY,CAAe;gBAEvB,YAAY,EAAE,YAAY;IAItC,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAgClB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Cost annotation processor.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CostAnnotatingProcessor = void 0;
7
+ /**
8
+ * Cost annotation processor.
9
+ */
10
+ class CostAnnotatingProcessor {
11
+ constructor(pricingTable) {
12
+ this.pricingTable = pricingTable;
13
+ }
14
+ onEnd(span) {
15
+ try {
16
+ const model = span.attributes['model'];
17
+ if (!model) {
18
+ return;
19
+ }
20
+ const pricing = this.pricingTable[model];
21
+ if (!pricing) {
22
+ return;
23
+ }
24
+ const inputTokens = span.attributes['input_tokens'];
25
+ const outputTokens = span.attributes['output_tokens'];
26
+ let cost = 0;
27
+ if (inputTokens) {
28
+ cost += (inputTokens / 1000) * pricing.inputCost;
29
+ }
30
+ if (outputTokens) {
31
+ cost += (outputTokens / 1000) * pricing.outputCost;
32
+ }
33
+ if (cost > 0) {
34
+ // Direct attribute modification for processors (after span ends)
35
+ span.attributes['cost_usd'] = cost;
36
+ }
37
+ }
38
+ catch {
39
+ // Silently fail
40
+ }
41
+ }
42
+ async shutdown() {
43
+ // No-op
44
+ }
45
+ async forceFlush() {
46
+ // No-op
47
+ }
48
+ }
49
+ exports.CostAnnotatingProcessor = CostAnnotatingProcessor;
50
+ //# sourceMappingURL=cost-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-processor.js","sourceRoot":"","sources":["../../src/processor/cost-processor.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH;;GAEG;AACH,MAAa,uBAAuB;IAGlC,YAAY,YAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAW;QACf,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAuB,CAAC;YAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAuB,CAAC;YAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAuB,CAAC;YAE5E,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;YACnD,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YACrD,CAAC;YAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,iEAAiE;gBACjE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,UAAU;QACd,QAAQ;IACV,CAAC;CACF;AA9CD,0DA8CC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Processor module exports.
3
+ */
4
+ export { Sampler } from './sampler';
5
+ export { BatchSpanProcessor, DropPolicy } from './batch-processor';
6
+ export { TokenCountingProcessor } from './token-counter';
7
+ export { CostAnnotatingProcessor } from './cost-processor';
8
+ export { LoggingSpanProcessor } from './logging-processor';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/processor/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * Processor module exports.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LoggingSpanProcessor = exports.CostAnnotatingProcessor = exports.TokenCountingProcessor = exports.DropPolicy = exports.BatchSpanProcessor = exports.Sampler = void 0;
7
+ var sampler_1 = require("./sampler");
8
+ Object.defineProperty(exports, "Sampler", { enumerable: true, get: function () { return sampler_1.Sampler; } });
9
+ var batch_processor_1 = require("./batch-processor");
10
+ Object.defineProperty(exports, "BatchSpanProcessor", { enumerable: true, get: function () { return batch_processor_1.BatchSpanProcessor; } });
11
+ Object.defineProperty(exports, "DropPolicy", { enumerable: true, get: function () { return batch_processor_1.DropPolicy; } });
12
+ var token_counter_1 = require("./token-counter");
13
+ Object.defineProperty(exports, "TokenCountingProcessor", { enumerable: true, get: function () { return token_counter_1.TokenCountingProcessor; } });
14
+ var cost_processor_1 = require("./cost-processor");
15
+ Object.defineProperty(exports, "CostAnnotatingProcessor", { enumerable: true, get: function () { return cost_processor_1.CostAnnotatingProcessor; } });
16
+ var logging_processor_1 = require("./logging-processor");
17
+ Object.defineProperty(exports, "LoggingSpanProcessor", { enumerable: true, get: function () { return logging_processor_1.LoggingSpanProcessor; } });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processor/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qDAAmE;AAA1D,qHAAA,kBAAkB,OAAA;AAAE,6GAAA,UAAU,OAAA;AACvC,iDAAyD;AAAhD,uHAAA,sBAAsB,OAAA;AAC/B,mDAA2D;AAAlD,yHAAA,uBAAuB,OAAA;AAChC,yDAA2D;AAAlD,yHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Logging span processor for debugging.
3
+ */
4
+ import { ISpan, ISpanProcessor } from '../types';
5
+ /**
6
+ * Logging span processor.
7
+ */
8
+ export declare class LoggingSpanProcessor implements ISpanProcessor {
9
+ onEnd(span: ISpan): void;
10
+ shutdown(): Promise<void>;
11
+ forceFlush(): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=logging-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-processor.d.ts","sourceRoot":"","sources":["../../src/processor/logging-processor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEjD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAQlB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Logging span processor for debugging.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LoggingSpanProcessor = void 0;
7
+ /**
8
+ * Logging span processor.
9
+ */
10
+ class LoggingSpanProcessor {
11
+ onEnd(span) {
12
+ console.log(`[Span] ${span.name} (${span.context.traceId})`, {
13
+ spanId: span.context.spanId,
14
+ duration: span.durationNs,
15
+ attributes: span.attributes,
16
+ });
17
+ }
18
+ async shutdown() {
19
+ // No-op
20
+ }
21
+ async forceFlush() {
22
+ // No-op
23
+ }
24
+ }
25
+ exports.LoggingSpanProcessor = LoggingSpanProcessor;
26
+ //# sourceMappingURL=logging-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-processor.js","sourceRoot":"","sources":["../../src/processor/logging-processor.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACH,MAAa,oBAAoB;IAC/B,KAAK,CAAC,IAAW;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE;YAC3D,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,UAAU;QACd,QAAQ;IACV,CAAC;CACF;AAhBD,oDAgBC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Sampler for making sampling decisions.
3
+ */
4
+ import { ISampler, SamplingResult } from '../types';
5
+ /**
6
+ * Probability-based sampler.
7
+ */
8
+ export declare class Sampler implements ISampler {
9
+ private sampleRate;
10
+ constructor(sampleRate?: number);
11
+ /**
12
+ * Decide whether to sample.
13
+ */
14
+ shouldSample(): SamplingResult;
15
+ /**
16
+ * Get the current sample rate.
17
+ */
18
+ getSampleRate(): number;
19
+ }
20
+ //# sourceMappingURL=sampler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampler.d.ts","sourceRoot":"","sources":["../../src/processor/sampler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEpD;;GAEG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IACtC,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAAY;IAOpC;;OAEG;IACH,YAAY,IAAI,cAAc;IAM9B;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * Sampler for making sampling decisions.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Sampler = void 0;
7
+ /**
8
+ * Probability-based sampler.
9
+ */
10
+ class Sampler {
11
+ constructor(sampleRate = 1.0) {
12
+ if (sampleRate < 0 || sampleRate > 1) {
13
+ throw new Error('sampleRate must be between 0.0 and 1.0');
14
+ }
15
+ this.sampleRate = sampleRate;
16
+ }
17
+ /**
18
+ * Decide whether to sample.
19
+ */
20
+ shouldSample() {
21
+ return {
22
+ sampled: Math.random() <= this.sampleRate,
23
+ };
24
+ }
25
+ /**
26
+ * Get the current sample rate.
27
+ */
28
+ getSampleRate() {
29
+ return this.sampleRate;
30
+ }
31
+ }
32
+ exports.Sampler = Sampler;
33
+ //# sourceMappingURL=sampler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampler.js","sourceRoot":"","sources":["../../src/processor/sampler.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACH,MAAa,OAAO;IAGlB,YAAY,aAAqB,GAAG;QAClC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU;SAC1C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAzBD,0BAyBC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Token counting processor for LLM spans.
3
+ */
4
+ import { ISpan, ISpanProcessor } from '../types';
5
+ /**
6
+ * Token counting processor.
7
+ */
8
+ export declare class TokenCountingProcessor implements ISpanProcessor {
9
+ onEnd(span: ISpan): void;
10
+ shutdown(): Promise<void>;
11
+ forceFlush(): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=token-counter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-counter.d.ts","sourceRoot":"","sources":["../../src/processor/token-counter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIjD;;GAEG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAsBlB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * Token counting processor for LLM spans.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TokenCountingProcessor = void 0;
7
+ const BYTES_PER_TOKEN = 4; // Rough approximation
8
+ /**
9
+ * Token counting processor.
10
+ */
11
+ class TokenCountingProcessor {
12
+ onEnd(span) {
13
+ try {
14
+ // Estimate tokens from attributes if available
15
+ const promptText = span.attributes['prompt'];
16
+ const completionText = span.attributes['completion'];
17
+ if (promptText) {
18
+ const inputTokens = Math.ceil(promptText.length / BYTES_PER_TOKEN);
19
+ // Direct attribute modification for processors (after span ends)
20
+ span.attributes['input_tokens'] = inputTokens;
21
+ }
22
+ if (completionText) {
23
+ const outputTokens = Math.ceil(completionText.length / BYTES_PER_TOKEN);
24
+ // Direct attribute modification for processors (after span ends)
25
+ span.attributes['output_tokens'] = outputTokens;
26
+ }
27
+ }
28
+ catch {
29
+ // Silently fail
30
+ }
31
+ }
32
+ async shutdown() {
33
+ // No-op
34
+ }
35
+ async forceFlush() {
36
+ // No-op
37
+ }
38
+ }
39
+ exports.TokenCountingProcessor = TokenCountingProcessor;
40
+ //# sourceMappingURL=token-counter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-counter.js","sourceRoot":"","sources":["../../src/processor/token-counter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,MAAM,eAAe,GAAG,CAAC,CAAC,CAAC,sBAAsB;AAEjD;;GAEG;AACH,MAAa,sBAAsB;IACjC,KAAK,CAAC,IAAW;QACf,IAAI,CAAC;YACH,+CAA+C;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAuB,CAAC;YACnE,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAuB,CAAC;YAE3E,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;gBACnE,iEAAiE;gBACjE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;YAChD,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;gBACxE,iEAAiE;gBACjE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,UAAU;QACd,QAAQ;IACV,CAAC;CACF;AA9BD,wDA8BC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tracer module exports.
3
+ */
4
+ export { Span } from './span';
5
+ export { SpanContext } from './span-context';
6
+ export { Tracer } from './tracer';
7
+ export { TracerProvider } from './provider';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tracer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Tracer module exports.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TracerProvider = exports.Tracer = exports.SpanContext = exports.Span = void 0;
7
+ var span_1 = require("./span");
8
+ Object.defineProperty(exports, "Span", { enumerable: true, get: function () { return span_1.Span; } });
9
+ var span_context_1 = require("./span-context");
10
+ Object.defineProperty(exports, "SpanContext", { enumerable: true, get: function () { return span_context_1.SpanContext; } });
11
+ var tracer_1 = require("./tracer");
12
+ Object.defineProperty(exports, "Tracer", { enumerable: true, get: function () { return tracer_1.Tracer; } });
13
+ var provider_1 = require("./provider");
14
+ Object.defineProperty(exports, "TracerProvider", { enumerable: true, get: function () { return provider_1.TracerProvider; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracer/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,uCAA4C;AAAnC,0GAAA,cAAc,OAAA"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Tracer provider for managing tracers and span processors.
3
+ */
4
+ import { ITracerProvider, ITracer, ISpanProcessor, ISampler, ISpan } from '../types';
5
+ /**
6
+ * TracerProvider manages tracers and span processors.
7
+ */
8
+ export declare class TracerProvider implements ITracerProvider {
9
+ private tracers;
10
+ private spanProcessors;
11
+ private sampler?;
12
+ private resource;
13
+ constructor(resource?: Record<string, string | number | boolean>);
14
+ /**
15
+ * Get or create a tracer.
16
+ */
17
+ getTracer(name: string, version?: string): ITracer;
18
+ /**
19
+ * Add a span processor.
20
+ */
21
+ addSpanProcessor(processor: ISpanProcessor): void;
22
+ /**
23
+ * Remove a span processor.
24
+ */
25
+ removeSpanProcessor(processor: ISpanProcessor): void;
26
+ /**
27
+ * Set the sampler.
28
+ */
29
+ setSampler(sampler: ISampler): void;
30
+ /**
31
+ * Get the sampler.
32
+ */
33
+ getSampler(): ISampler | undefined;
34
+ /**
35
+ * Notify all processors that a span has ended.
36
+ */
37
+ notifySpanEnd(span: ISpan): void;
38
+ /**
39
+ * Force flush all processors.
40
+ */
41
+ forceFlush(timeout?: number): Promise<void>;
42
+ /**
43
+ * Shutdown all processors.
44
+ */
45
+ shutdown(): Promise<void>;
46
+ /**
47
+ * Generate a random trace ID.
48
+ */
49
+ generateTraceId(): string;
50
+ /**
51
+ * Generate a random span ID.
52
+ */
53
+ generateSpanId(): string;
54
+ /**
55
+ * Get the resource attributes.
56
+ */
57
+ getResource(): Record<string, string | number | boolean>;
58
+ }
59
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/tracer/provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGrF;;GAEG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,OAAO,CAAC,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAiD;gBAErD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAIhE;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAYlD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAIjD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAOpD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAInC;;OAEG;IACH,UAAU,IAAI,QAAQ,GAAG,SAAS;IAIlC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAWhC;;OAEG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAGzD"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * Tracer provider for managing tracers and span processors.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TracerProvider = void 0;
7
+ const crypto_1 = require("crypto");
8
+ const tracer_1 = require("./tracer");
9
+ /**
10
+ * TracerProvider manages tracers and span processors.
11
+ */
12
+ class TracerProvider {
13
+ constructor(resource) {
14
+ this.tracers = new Map();
15
+ this.spanProcessors = [];
16
+ this.resource = {};
17
+ this.resource = resource || {};
18
+ }
19
+ /**
20
+ * Get or create a tracer.
21
+ */
22
+ getTracer(name, version) {
23
+ const key = version ? `${name}@${version}` : name;
24
+ let tracer = this.tracers.get(key);
25
+ if (!tracer) {
26
+ tracer = new tracer_1.Tracer(this, key);
27
+ this.tracers.set(key, tracer);
28
+ }
29
+ return tracer;
30
+ }
31
+ /**
32
+ * Add a span processor.
33
+ */
34
+ addSpanProcessor(processor) {
35
+ this.spanProcessors.push(processor);
36
+ }
37
+ /**
38
+ * Remove a span processor.
39
+ */
40
+ removeSpanProcessor(processor) {
41
+ const index = this.spanProcessors.indexOf(processor);
42
+ if (index > -1) {
43
+ this.spanProcessors.splice(index, 1);
44
+ }
45
+ }
46
+ /**
47
+ * Set the sampler.
48
+ */
49
+ setSampler(sampler) {
50
+ this.sampler = sampler;
51
+ }
52
+ /**
53
+ * Get the sampler.
54
+ */
55
+ getSampler() {
56
+ return this.sampler;
57
+ }
58
+ /**
59
+ * Notify all processors that a span has ended.
60
+ */
61
+ notifySpanEnd(span) {
62
+ for (const processor of this.spanProcessors) {
63
+ try {
64
+ processor.onEnd(span);
65
+ }
66
+ catch {
67
+ // Processors should not crash the tracing system
68
+ // Errors are silently swallowed for resilience
69
+ }
70
+ }
71
+ }
72
+ /**
73
+ * Force flush all processors.
74
+ */
75
+ async forceFlush(timeout) {
76
+ const promises = [];
77
+ for (const processor of this.spanProcessors) {
78
+ const promise = Promise.resolve(processor.forceFlush(timeout));
79
+ promises.push(promise);
80
+ }
81
+ await Promise.all(promises);
82
+ }
83
+ /**
84
+ * Shutdown all processors.
85
+ */
86
+ async shutdown() {
87
+ const promises = [];
88
+ for (const processor of this.spanProcessors) {
89
+ const promise = Promise.resolve(processor.shutdown());
90
+ promises.push(promise);
91
+ }
92
+ await Promise.all(promises);
93
+ }
94
+ /**
95
+ * Generate a random trace ID.
96
+ */
97
+ generateTraceId() {
98
+ return (0, crypto_1.randomBytes)(16).toString('hex');
99
+ }
100
+ /**
101
+ * Generate a random span ID.
102
+ */
103
+ generateSpanId() {
104
+ return (0, crypto_1.randomBytes)(8).toString('hex');
105
+ }
106
+ /**
107
+ * Get the resource attributes.
108
+ */
109
+ getResource() {
110
+ return this.resource;
111
+ }
112
+ }
113
+ exports.TracerProvider = TracerProvider;
114
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/tracer/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Span context implementation.
3
+ */
4
+ import { ISpanContext } from '../types';
5
+ /**
6
+ * Implementation of span context carrying trace and span identification.
7
+ */
8
+ export declare class SpanContext implements ISpanContext {
9
+ readonly traceId: string;
10
+ readonly spanId: string;
11
+ readonly traceFlags: number;
12
+ readonly traceState?: string;
13
+ constructor(traceId: string, spanId: string, traceFlags?: number, traceState?: string);
14
+ /**
15
+ * Check if this span context is valid.
16
+ */
17
+ isValid(): boolean;
18
+ /**
19
+ * Check if this context is sampled.
20
+ */
21
+ isSampled(): boolean;
22
+ }
23
+ //# sourceMappingURL=span-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-context.d.ts","sourceRoot":"","sources":["../../src/tracer/span-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAGlC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAU,EACtB,UAAU,CAAC,EAAE,MAAM;IAQrB;;OAEG;IACH,OAAO,IAAI,OAAO;IASlB;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Span context implementation.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SpanContext = void 0;
7
+ /**
8
+ * Implementation of span context carrying trace and span identification.
9
+ */
10
+ class SpanContext {
11
+ constructor(traceId, spanId, traceFlags = 1, traceState) {
12
+ this.traceId = traceId;
13
+ this.spanId = spanId;
14
+ this.traceFlags = traceFlags;
15
+ this.traceState = traceState;
16
+ }
17
+ /**
18
+ * Check if this span context is valid.
19
+ */
20
+ isValid() {
21
+ return (this.traceId.length > 0 &&
22
+ this.spanId.length > 0 &&
23
+ this.traceId !== '0'.repeat(32) &&
24
+ this.spanId !== '0'.repeat(16));
25
+ }
26
+ /**
27
+ * Check if this context is sampled.
28
+ */
29
+ isSampled() {
30
+ return this.traceFlags === 1;
31
+ }
32
+ }
33
+ exports.SpanContext = SpanContext;
34
+ //# sourceMappingURL=span-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-context.js","sourceRoot":"","sources":["../../src/tracer/span-context.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACH,MAAa,WAAW;IAMtB,YACE,OAAe,EACf,MAAc,EACd,aAAqB,CAAC,EACtB,UAAmB;QAEnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACtB,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF;AApCD,kCAoCC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Span implementation with lifecycle management.
3
+ */
4
+ import { ISpan, ITracer, SpanStatus, SpanEvent, ISpanContext } from '../types';
5
+ /**
6
+ * Span implementation representing a unit of work.
7
+ */
8
+ export declare class Span implements ISpan {
9
+ context: ISpanContext;
10
+ name: string;
11
+ parentSpanId?: string;
12
+ attributes: Record<string, unknown>;
13
+ events: SpanEvent[];
14
+ status: SpanStatus;
15
+ statusDescription?: string;
16
+ startTimeNs: number;
17
+ endTimeNs?: number;
18
+ private ended;
19
+ constructor(name: string, _tracer: ITracer, context: ISpanContext, parentSpanId?: string, attributes?: Record<string, unknown>);
20
+ /**
21
+ * Get the duration in nanoseconds.
22
+ */
23
+ get durationNs(): number | undefined;
24
+ /**
25
+ * Set an attribute on the span.
26
+ */
27
+ setAttribute(key: string, value: unknown): void;
28
+ /**
29
+ * Add an event to the span.
30
+ */
31
+ addEvent(name: string, attributes?: Record<string, unknown>): void;
32
+ /**
33
+ * Record an exception on the span.
34
+ */
35
+ recordException(error: Error, attributes?: Record<string, unknown>): void;
36
+ /**
37
+ * End the span.
38
+ */
39
+ end(): void;
40
+ /**
41
+ * Check if the span is still recording.
42
+ */
43
+ isRecording(): boolean;
44
+ /**
45
+ * Enrich the trace state with runtime metadata.
46
+ */
47
+ private enrichTraceState;
48
+ }
49
+ //# sourceMappingURL=span.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span.d.ts","sourceRoot":"","sources":["../../src/tracer/span.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI/E;;GAEG;AACH,qBAAa,IAAK,YAAW,KAAK;IACzB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,CAAM;IACzB,MAAM,EAAE,UAAU,CAAoB;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,KAAK,CAAS;gBAGpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,EACrB,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYtC;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAKnC;IAED;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAO/C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAWlE;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAczE;;OAEG;IACH,GAAG,IAAI,IAAI;IAQX;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA+BzB"}