observability-toolkit 1.8.2 → 1.8.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 (259) hide show
  1. package/README.md +60 -0
  2. package/dist/backends/index.d.ts +43 -0
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/index.js +41 -0
  5. package/dist/backends/index.js.map +1 -1
  6. package/dist/backends/index.test.d.ts +5 -0
  7. package/dist/backends/index.test.d.ts.map +1 -0
  8. package/dist/backends/index.test.js +156 -0
  9. package/dist/backends/index.test.js.map +1 -0
  10. package/dist/backends/local-jsonl-boolean-search.test.js +15 -12
  11. package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
  12. package/dist/backends/local-jsonl-cache.test.d.ts +2 -0
  13. package/dist/backends/local-jsonl-cache.test.d.ts.map +1 -0
  14. package/dist/backends/local-jsonl-cache.test.js +295 -0
  15. package/dist/backends/local-jsonl-cache.test.js.map +1 -0
  16. package/dist/backends/local-jsonl-circuit-breaker.test.d.ts +2 -0
  17. package/dist/backends/local-jsonl-circuit-breaker.test.d.ts.map +1 -0
  18. package/dist/backends/local-jsonl-circuit-breaker.test.js +180 -0
  19. package/dist/backends/local-jsonl-circuit-breaker.test.js.map +1 -0
  20. package/dist/backends/local-jsonl-export.test.d.ts +2 -0
  21. package/dist/backends/local-jsonl-export.test.d.ts.map +1 -0
  22. package/dist/backends/local-jsonl-export.test.js +704 -0
  23. package/dist/backends/local-jsonl-export.test.js.map +1 -0
  24. package/dist/backends/local-jsonl-index.test.d.ts +2 -0
  25. package/dist/backends/local-jsonl-index.test.d.ts.map +1 -0
  26. package/dist/backends/local-jsonl-index.test.js +554 -0
  27. package/dist/backends/local-jsonl-index.test.js.map +1 -0
  28. package/dist/backends/local-jsonl-logs.test.d.ts +2 -0
  29. package/dist/backends/local-jsonl-logs.test.d.ts.map +1 -0
  30. package/dist/backends/local-jsonl-logs.test.js +612 -0
  31. package/dist/backends/local-jsonl-logs.test.js.map +1 -0
  32. package/dist/backends/local-jsonl-metrics.test.d.ts +2 -0
  33. package/dist/backends/local-jsonl-metrics.test.d.ts.map +1 -0
  34. package/dist/backends/local-jsonl-metrics.test.js +876 -0
  35. package/dist/backends/local-jsonl-metrics.test.js.map +1 -0
  36. package/dist/backends/local-jsonl-traces.test.d.ts +2 -0
  37. package/dist/backends/local-jsonl-traces.test.d.ts.map +1 -0
  38. package/dist/backends/local-jsonl-traces.test.js +1729 -0
  39. package/dist/backends/local-jsonl-traces.test.js.map +1 -0
  40. package/dist/backends/local-jsonl.d.ts +9 -0
  41. package/dist/backends/local-jsonl.d.ts.map +1 -1
  42. package/dist/backends/local-jsonl.js +348 -227
  43. package/dist/backends/local-jsonl.js.map +1 -1
  44. package/dist/backends/local-jsonl.test.js +290 -21
  45. package/dist/backends/local-jsonl.test.js.map +1 -1
  46. package/dist/backends/signoz-api-circuit-breaker.test.d.ts +6 -0
  47. package/dist/backends/signoz-api-circuit-breaker.test.d.ts.map +1 -0
  48. package/dist/backends/signoz-api-circuit-breaker.test.js +548 -0
  49. package/dist/backends/signoz-api-circuit-breaker.test.js.map +1 -0
  50. package/dist/backends/signoz-api-rate-limiter.test.d.ts +6 -0
  51. package/dist/backends/signoz-api-rate-limiter.test.d.ts.map +1 -0
  52. package/dist/backends/signoz-api-rate-limiter.test.js +389 -0
  53. package/dist/backends/signoz-api-rate-limiter.test.js.map +1 -0
  54. package/dist/backends/signoz-api-ssrf.test.d.ts +6 -0
  55. package/dist/backends/signoz-api-ssrf.test.d.ts.map +1 -0
  56. package/dist/backends/signoz-api-ssrf.test.js +216 -0
  57. package/dist/backends/signoz-api-ssrf.test.js.map +1 -0
  58. package/dist/backends/signoz-api-test-helpers.d.ts +80 -0
  59. package/dist/backends/signoz-api-test-helpers.d.ts.map +1 -0
  60. package/dist/backends/signoz-api-test-helpers.js +79 -0
  61. package/dist/backends/signoz-api-test-helpers.js.map +1 -0
  62. package/dist/backends/signoz-api.d.ts +16 -0
  63. package/dist/backends/signoz-api.d.ts.map +1 -1
  64. package/dist/backends/signoz-api.js +71 -9
  65. package/dist/backends/signoz-api.js.map +1 -1
  66. package/dist/backends/signoz-api.test.d.ts +9 -0
  67. package/dist/backends/signoz-api.test.d.ts.map +1 -1
  68. package/dist/backends/signoz-api.test.js +14 -1027
  69. package/dist/backends/signoz-api.test.js.map +1 -1
  70. package/dist/lib/cache.d.ts +47 -1
  71. package/dist/lib/cache.d.ts.map +1 -1
  72. package/dist/lib/cache.js +40 -3
  73. package/dist/lib/cache.js.map +1 -1
  74. package/dist/lib/circuit-breaker.d.ts +83 -0
  75. package/dist/lib/circuit-breaker.d.ts.map +1 -0
  76. package/dist/lib/circuit-breaker.js +125 -0
  77. package/dist/lib/circuit-breaker.js.map +1 -0
  78. package/dist/lib/circuit-breaker.test.d.ts +2 -0
  79. package/dist/lib/circuit-breaker.test.d.ts.map +1 -0
  80. package/dist/lib/circuit-breaker.test.js +263 -0
  81. package/dist/lib/circuit-breaker.test.js.map +1 -0
  82. package/dist/lib/constants-symlink.test.d.ts +12 -0
  83. package/dist/lib/constants-symlink.test.d.ts.map +1 -0
  84. package/dist/lib/constants-symlink.test.js +357 -0
  85. package/dist/lib/constants-symlink.test.js.map +1 -0
  86. package/dist/lib/constants.d.ts +43 -0
  87. package/dist/lib/constants.d.ts.map +1 -1
  88. package/dist/lib/constants.js +154 -24
  89. package/dist/lib/constants.js.map +1 -1
  90. package/dist/lib/constants.test.js +156 -7
  91. package/dist/lib/constants.test.js.map +1 -1
  92. package/dist/lib/edge-cases.test.d.ts +11 -0
  93. package/dist/lib/edge-cases.test.d.ts.map +1 -0
  94. package/dist/lib/edge-cases.test.js +634 -0
  95. package/dist/lib/edge-cases.test.js.map +1 -0
  96. package/dist/lib/error-sanitizer.d.ts.map +1 -1
  97. package/dist/lib/error-sanitizer.js +62 -26
  98. package/dist/lib/error-sanitizer.js.map +1 -1
  99. package/dist/lib/error-sanitizer.test.js +186 -0
  100. package/dist/lib/error-sanitizer.test.js.map +1 -1
  101. package/dist/lib/error-types.d.ts +54 -0
  102. package/dist/lib/error-types.d.ts.map +1 -0
  103. package/dist/lib/error-types.js +154 -0
  104. package/dist/lib/error-types.js.map +1 -0
  105. package/dist/lib/error-types.test.d.ts +2 -0
  106. package/dist/lib/error-types.test.d.ts.map +1 -0
  107. package/dist/lib/error-types.test.js +196 -0
  108. package/dist/lib/error-types.test.js.map +1 -0
  109. package/dist/lib/file-utils.test.js +3 -3
  110. package/dist/lib/file-utils.test.js.map +1 -1
  111. package/dist/lib/indexer.test.js +157 -24
  112. package/dist/lib/indexer.test.js.map +1 -1
  113. package/dist/lib/input-validator.d.ts +17 -0
  114. package/dist/lib/input-validator.d.ts.map +1 -1
  115. package/dist/lib/input-validator.fuzz.test.d.ts +12 -0
  116. package/dist/lib/input-validator.fuzz.test.d.ts.map +1 -0
  117. package/dist/lib/input-validator.fuzz.test.js +290 -0
  118. package/dist/lib/input-validator.fuzz.test.js.map +1 -0
  119. package/dist/lib/input-validator.js +62 -3
  120. package/dist/lib/input-validator.js.map +1 -1
  121. package/dist/lib/input-validator.test.js +129 -1
  122. package/dist/lib/input-validator.test.js.map +1 -1
  123. package/dist/lib/logger.d.ts +46 -0
  124. package/dist/lib/logger.d.ts.map +1 -0
  125. package/dist/lib/logger.js +81 -0
  126. package/dist/lib/logger.js.map +1 -0
  127. package/dist/lib/logger.test.d.ts +2 -0
  128. package/dist/lib/logger.test.d.ts.map +1 -0
  129. package/dist/lib/logger.test.js +122 -0
  130. package/dist/lib/logger.test.js.map +1 -0
  131. package/dist/lib/query-sanitizer.d.ts +51 -3
  132. package/dist/lib/query-sanitizer.d.ts.map +1 -1
  133. package/dist/lib/query-sanitizer.js +105 -31
  134. package/dist/lib/query-sanitizer.js.map +1 -1
  135. package/dist/lib/query-sanitizer.test.js +102 -1
  136. package/dist/lib/query-sanitizer.test.js.map +1 -1
  137. package/dist/lib/server-utils.d.ts +88 -0
  138. package/dist/lib/server-utils.d.ts.map +1 -0
  139. package/dist/lib/server-utils.js +173 -0
  140. package/dist/lib/server-utils.js.map +1 -0
  141. package/dist/lib/shared-schemas.d.ts +81 -0
  142. package/dist/lib/shared-schemas.d.ts.map +1 -0
  143. package/dist/lib/shared-schemas.js +80 -0
  144. package/dist/lib/shared-schemas.js.map +1 -0
  145. package/dist/lib/shared-schemas.test.d.ts +5 -0
  146. package/dist/lib/shared-schemas.test.d.ts.map +1 -0
  147. package/dist/lib/shared-schemas.test.js +106 -0
  148. package/dist/lib/shared-schemas.test.js.map +1 -0
  149. package/dist/lib/toon-encoder.d.ts +26 -0
  150. package/dist/lib/toon-encoder.d.ts.map +1 -0
  151. package/dist/lib/toon-encoder.js +61 -0
  152. package/dist/lib/toon-encoder.js.map +1 -0
  153. package/dist/lib/toon-encoder.test.d.ts +5 -0
  154. package/dist/lib/toon-encoder.test.d.ts.map +1 -0
  155. package/dist/lib/toon-encoder.test.js +85 -0
  156. package/dist/lib/toon-encoder.test.js.map +1 -0
  157. package/dist/server.d.ts +1 -49
  158. package/dist/server.d.ts.map +1 -1
  159. package/dist/server.js +154 -162
  160. package/dist/server.js.map +1 -1
  161. package/dist/server.test.js +198 -7
  162. package/dist/server.test.js.map +1 -1
  163. package/dist/test-helpers/env-utils.d.ts +87 -0
  164. package/dist/test-helpers/env-utils.d.ts.map +1 -0
  165. package/dist/test-helpers/env-utils.js +132 -0
  166. package/dist/test-helpers/env-utils.js.map +1 -0
  167. package/dist/test-helpers/file-utils.d.ts +67 -0
  168. package/dist/test-helpers/file-utils.d.ts.map +1 -1
  169. package/dist/test-helpers/file-utils.js +165 -2
  170. package/dist/test-helpers/file-utils.js.map +1 -1
  171. package/dist/test-helpers/fuzz-generators.d.ts +58 -0
  172. package/dist/test-helpers/fuzz-generators.d.ts.map +1 -0
  173. package/dist/test-helpers/fuzz-generators.js +216 -0
  174. package/dist/test-helpers/fuzz-generators.js.map +1 -0
  175. package/dist/test-helpers/index.d.ts +11 -0
  176. package/dist/test-helpers/index.d.ts.map +1 -0
  177. package/dist/test-helpers/index.js +30 -0
  178. package/dist/test-helpers/index.js.map +1 -0
  179. package/dist/test-helpers/memfs-utils.d.ts +181 -0
  180. package/dist/test-helpers/memfs-utils.d.ts.map +1 -0
  181. package/dist/test-helpers/memfs-utils.js +292 -0
  182. package/dist/test-helpers/memfs-utils.js.map +1 -0
  183. package/dist/test-helpers/memfs-utils.test.d.ts +5 -0
  184. package/dist/test-helpers/memfs-utils.test.d.ts.map +1 -0
  185. package/dist/test-helpers/memfs-utils.test.js +338 -0
  186. package/dist/test-helpers/memfs-utils.test.js.map +1 -0
  187. package/dist/test-helpers/mock-backends.d.ts +113 -2
  188. package/dist/test-helpers/mock-backends.d.ts.map +1 -1
  189. package/dist/test-helpers/mock-backends.js +199 -3
  190. package/dist/test-helpers/mock-backends.js.map +1 -1
  191. package/dist/test-helpers/mock-backends.test.d.ts +5 -0
  192. package/dist/test-helpers/mock-backends.test.d.ts.map +1 -0
  193. package/dist/test-helpers/mock-backends.test.js +368 -0
  194. package/dist/test-helpers/mock-backends.test.js.map +1 -0
  195. package/dist/test-helpers/race-condition-helpers.d.ts +85 -0
  196. package/dist/test-helpers/race-condition-helpers.d.ts.map +1 -0
  197. package/dist/test-helpers/race-condition-helpers.js +279 -0
  198. package/dist/test-helpers/race-condition-helpers.js.map +1 -0
  199. package/dist/test-helpers/schema-validators.d.ts +32 -0
  200. package/dist/test-helpers/schema-validators.d.ts.map +1 -0
  201. package/dist/test-helpers/schema-validators.js +125 -0
  202. package/dist/test-helpers/schema-validators.js.map +1 -0
  203. package/dist/test-helpers/test-data-builders.d.ts +260 -0
  204. package/dist/test-helpers/test-data-builders.d.ts.map +1 -0
  205. package/dist/test-helpers/test-data-builders.js +337 -0
  206. package/dist/test-helpers/test-data-builders.js.map +1 -0
  207. package/dist/test-helpers/test-data-builders.test.d.ts +2 -0
  208. package/dist/test-helpers/test-data-builders.test.d.ts.map +1 -0
  209. package/dist/test-helpers/test-data-builders.test.js +306 -0
  210. package/dist/test-helpers/test-data-builders.test.js.map +1 -0
  211. package/dist/test-helpers/tool-validators.d.ts +28 -0
  212. package/dist/test-helpers/tool-validators.d.ts.map +1 -0
  213. package/dist/test-helpers/tool-validators.js +71 -0
  214. package/dist/test-helpers/tool-validators.js.map +1 -0
  215. package/dist/tools/context-stats.d.ts +1 -0
  216. package/dist/tools/context-stats.d.ts.map +1 -1
  217. package/dist/tools/context-stats.js +9 -5
  218. package/dist/tools/context-stats.js.map +1 -1
  219. package/dist/tools/context-stats.test.js +24 -10
  220. package/dist/tools/context-stats.test.js.map +1 -1
  221. package/dist/tools/get-trace-url.js +2 -2
  222. package/dist/tools/get-trace-url.js.map +1 -1
  223. package/dist/tools/health-check.js +2 -2
  224. package/dist/tools/health-check.js.map +1 -1
  225. package/dist/tools/query-evaluations.d.ts +21 -18
  226. package/dist/tools/query-evaluations.d.ts.map +1 -1
  227. package/dist/tools/query-evaluations.js +33 -19
  228. package/dist/tools/query-evaluations.js.map +1 -1
  229. package/dist/tools/query-evaluations.test.js +60 -63
  230. package/dist/tools/query-evaluations.test.js.map +1 -1
  231. package/dist/tools/query-llm-events.d.ts +19 -15
  232. package/dist/tools/query-llm-events.d.ts.map +1 -1
  233. package/dist/tools/query-llm-events.js +31 -15
  234. package/dist/tools/query-llm-events.js.map +1 -1
  235. package/dist/tools/query-llm-events.test.js +277 -12
  236. package/dist/tools/query-llm-events.test.js.map +1 -1
  237. package/dist/tools/query-logs.d.ts +22 -22
  238. package/dist/tools/query-logs.d.ts.map +1 -1
  239. package/dist/tools/query-logs.js +9 -9
  240. package/dist/tools/query-logs.js.map +1 -1
  241. package/dist/tools/query-logs.test.js +19 -72
  242. package/dist/tools/query-logs.test.js.map +1 -1
  243. package/dist/tools/query-metrics.d.ts +14 -14
  244. package/dist/tools/query-metrics.d.ts.map +1 -1
  245. package/dist/tools/query-metrics.js +9 -9
  246. package/dist/tools/query-metrics.js.map +1 -1
  247. package/dist/tools/query-metrics.test.js +12 -25
  248. package/dist/tools/query-metrics.test.js.map +1 -1
  249. package/dist/tools/query-traces.d.ts +28 -28
  250. package/dist/tools/query-traces.d.ts.map +1 -1
  251. package/dist/tools/query-traces.js +18 -18
  252. package/dist/tools/query-traces.js.map +1 -1
  253. package/dist/tools/query-traces.test.js +58 -54
  254. package/dist/tools/query-traces.test.js.map +1 -1
  255. package/dist/tools/setup-claudeignore.js +7 -7
  256. package/dist/tools/setup-claudeignore.js.map +1 -1
  257. package/dist/tools/setup-claudeignore.test.js +4 -25
  258. package/dist/tools/setup-claudeignore.test.js.map +1 -1
  259. package/package.json +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-symlink.test.js","sourceRoot":"","sources":["../../src/lib/constants-symlink.test.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,49 @@ export declare const RATE_LIMITER: {
30
30
  };
31
31
  export declare const CONTEXT_WINDOW_SIZE = 200000;
32
32
  export declare const TOKENS_PER_CHAR = 0.25;
33
+ /**
34
+ * Model pricing metadata for staleness detection
35
+ */
36
+ export declare const MODEL_PRICING_METADATA: {
37
+ /** ISO date when pricing was last updated */
38
+ readonly lastUpdated: "2026-01-30";
39
+ /** Days after which pricing is considered stale */
40
+ readonly staleThresholdDays: 90;
41
+ /** Pricing sources for verification */
42
+ readonly sources: {
43
+ readonly anthropic: "https://www.anthropic.com/pricing";
44
+ readonly openai: "https://openai.com/pricing";
45
+ readonly google: "https://ai.google.dev/pricing";
46
+ readonly mistral: "https://mistral.ai/pricing";
47
+ readonly cohere: "https://cohere.com/pricing";
48
+ readonly groq: "https://groq.com/pricing";
49
+ readonly together: "https://www.together.ai/pricing";
50
+ readonly perplexity: "https://www.perplexity.ai/pricing";
51
+ };
52
+ };
53
+ /**
54
+ * Check if pricing data is stale (>90 days old)
55
+ * @returns { isStale: boolean, daysSinceUpdate: number }
56
+ */
57
+ export declare function checkPricingStaleness(): {
58
+ isStale: boolean;
59
+ daysSinceUpdate: number;
60
+ };
61
+ /**
62
+ * Model pricing per 1M tokens (as of Jan 2026)
63
+ *
64
+ * Pricing sources:
65
+ * - Anthropic: https://www.anthropic.com/pricing
66
+ * - OpenAI: https://openai.com/pricing
67
+ * - Google: https://ai.google.dev/pricing
68
+ * - Mistral: https://mistral.ai/pricing
69
+ * - Cohere: https://cohere.com/pricing
70
+ *
71
+ * Note: Pricing changes frequently. These are approximate values for cost estimation.
72
+ * For batch API pricing, multiply by 0.5 (50% discount typically).
73
+ *
74
+ * @see MODEL_PRICING_METADATA.lastUpdated for when this data was last verified
75
+ */
33
76
  export declare const MODEL_PRICING: Record<string, {
34
77
  input: number;
35
78
  output: number;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,aAAa,QAAiF,CAAC;AAsG5G;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAC,CA0CzG;AAID,eAAO,MAAM,UAAU,QAA0E,CAAC;AAElG,eAAO,MAAM,gBAAgB,QAAqC,CAAC;AAGnE,eAAO,MAAM,cAAc,QAAmC,CAAC;AAG/D,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAGX,eAAO,MAAM,YAAY;IACvB,sCAAsC;;IAEtC,kCAAkC;;CAE1B,CAAC;AAGX,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAG1C,eAAO,MAAM,eAAe,OAAO,CAAC;AAGpC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAI3E,CAAC;AAGF,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAGtD,eAAO,MAAM,UAAU,mEAAoE,CAAC;AAE5F;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKxE;AAID,eAAO,MAAM,YAAY,mCAAoC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAKlF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOvD;AAGD,eAAO,MAAM,eAAe,OAAO,CAAC;AAGpC,eAAO,MAAM,cAAc,QAAkD,CAAC;AAG9E,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAGxC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,aAAa,QAAiF,CAAC;AAgJ5G;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAC,CA0CzG;AAID,eAAO,MAAM,UAAU,QAA0E,CAAC;AAElG,eAAO,MAAM,gBAAgB,QAAqC,CAAC;AAGnE,eAAO,MAAM,cAAc,QAAmC,CAAC;AAG/D,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAGX,eAAO,MAAM,YAAY;IACvB,sCAAsC;;IAEtC,kCAAkC;;CAE1B,CAAC;AAGX,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAG1C,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,sBAAsB;IACjC,6CAA6C;;IAE7C,mDAAmD;;IAEnD,uCAAuC;;;;;;;;;;;CAW/B,CAAC;AAEX;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAQrF;AAQD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmD3E,CAAC;AAGF,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAGtD,eAAO,MAAM,UAAU,mEAAoE,CAAC;AAE5F;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKxE;AAID,eAAO,MAAM,YAAY,mCAAoC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAKlF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOvD;AAGD,eAAO,MAAM,eAAe,OAAO,CAAC;AAGpC,eAAO,MAAM,cAAc,QAAkD,CAAC;AAG9E,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAGxC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,WAAW,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Constants for observability-toolkit MCP server
3
3
  */
4
- import { join, resolve } from 'path';
5
- import { existsSync, realpathSync, lstatSync } from 'fs';
4
+ import { join, resolve, dirname } from 'path';
5
+ import { existsSync, realpathSync, lstatSync, readlinkSync, openSync, fstatSync, closeSync, constants as fsConstants } from 'fs';
6
6
  import { expandTilde } from './file-utils.js';
7
7
  import { homedir } from 'os';
8
8
  // Paths - expand tilde in case TELEMETRY_DIR is set to ~/... (tilde doesn't expand in JSON/env)
@@ -19,37 +19,75 @@ const LOCAL_TELEMETRY_PATHS = [
19
19
  * Returns { exists: false } if path doesn't exist or is inaccessible.
20
20
  * Returns { exists: true, isSymlink, realPath } with atomically resolved data.
21
21
  *
22
- * Security: Uses file descriptor-based operations to ensure the path
23
- * checked is the same path resolved, preventing symlink swap attacks.
22
+ * Security: Uses file descriptor-based operations to prevent symlink swap attacks.
23
+ * For regular directories, opens with O_DIRECTORY to verify it's a directory.
24
+ * For symlinks, reads target directly then verifies the resolved target exists.
24
25
  */
25
26
  function atomicPathCheck(path) {
27
+ let fd;
26
28
  try {
27
29
  // Step 1: Get lstat info (does not follow symlinks)
28
30
  const lstats = lstatSync(path);
29
31
  const isSymbolicLink = lstats.isSymbolicLink();
30
- // Step 2: Atomically resolve and verify using file descriptor
31
- // Open the path with O_RDONLY | O_NOFOLLOW for symlinks check,
32
- // but we need to follow symlinks to get the real target for directories.
33
- // Instead, we use a single realpathSync call immediately after lstat
34
- // within the same try block - if the symlink is swapped between calls,
35
- // we'll detect it by verifying the resolved path matches expectations.
36
- // For non-symlinks, just resolve any parent symlinks
37
- const realPath = realpathSync(path);
38
- // Step 3: Verify consistency - if this was a symlink, verify the target
39
- // still matches what we expect by checking the resolved path is a directory
40
32
  if (isSymbolicLink) {
41
- // Verify the resolved target is actually a directory
42
- // This uses a separate stat call but on the RESOLVED path
43
- const targetStats = lstatSync(realPath);
44
- if (!targetStats.isDirectory()) {
33
+ // Step 2a: For symlinks, read and verify the target
34
+ const target = readlinkSync(path);
35
+ // Resolve the target (handles both relative and absolute paths)
36
+ const parentDir = dirname(path);
37
+ const resolvedTarget = resolve(parentDir, target);
38
+ // Verify the target exists and is a directory
39
+ try {
40
+ const targetStats = lstatSync(resolvedTarget);
41
+ // If target is also a symlink, we need to follow the chain
42
+ // Use realpathSync to get the final destination
43
+ const realPath = targetStats.isSymbolicLink()
44
+ ? realpathSync(resolvedTarget)
45
+ : (targetStats.isDirectory() ? realpathSync(resolvedTarget) : null);
46
+ if (!realPath) {
47
+ return { exists: false };
48
+ }
49
+ // Final verification that the resolved path is a directory
50
+ const finalStats = lstatSync(realPath);
51
+ if (!finalStats.isDirectory()) {
52
+ return { exists: false };
53
+ }
54
+ return {
55
+ exists: true,
56
+ isSymlink: true,
57
+ realPath,
58
+ };
59
+ }
60
+ catch {
61
+ return { exists: false };
62
+ }
63
+ }
64
+ // Step 2b: For non-symlinks, use file descriptor for atomic verification
65
+ // Open with O_RDONLY | O_DIRECTORY to ensure it's a directory
66
+ try {
67
+ fd = openSync(path, fsConstants.O_RDONLY | fsConstants.O_DIRECTORY);
68
+ const fdStats = fstatSync(fd);
69
+ if (!fdStats.isDirectory()) {
45
70
  return { exists: false };
46
71
  }
72
+ // Path is verified to be a directory via file descriptor
73
+ // Resolve any parent symlinks (safe since we hold FD to the actual dir)
74
+ const realPath = realpathSync(path);
75
+ return {
76
+ exists: true,
77
+ isSymlink: false,
78
+ realPath,
79
+ };
80
+ }
81
+ finally {
82
+ if (fd !== undefined) {
83
+ try {
84
+ closeSync(fd);
85
+ }
86
+ catch {
87
+ // Ignore close errors
88
+ }
89
+ }
47
90
  }
48
- return {
49
- exists: true,
50
- isSymlink: isSymbolicLink,
51
- realPath,
52
- };
53
91
  }
54
92
  catch {
55
93
  return { exists: false };
@@ -159,11 +197,103 @@ export const RATE_LIMITER = {
159
197
  export const CONTEXT_WINDOW_SIZE = 200000;
160
198
  // Approximate tokens per character
161
199
  export const TOKENS_PER_CHAR = 0.25;
162
- // Model pricing per 1M tokens (as of Jan 2026)
200
+ /**
201
+ * Model pricing metadata for staleness detection
202
+ */
203
+ export const MODEL_PRICING_METADATA = {
204
+ /** ISO date when pricing was last updated */
205
+ lastUpdated: '2026-01-30',
206
+ /** Days after which pricing is considered stale */
207
+ staleThresholdDays: 90,
208
+ /** Pricing sources for verification */
209
+ sources: {
210
+ anthropic: 'https://www.anthropic.com/pricing',
211
+ openai: 'https://openai.com/pricing',
212
+ google: 'https://ai.google.dev/pricing',
213
+ mistral: 'https://mistral.ai/pricing',
214
+ cohere: 'https://cohere.com/pricing',
215
+ groq: 'https://groq.com/pricing',
216
+ together: 'https://www.together.ai/pricing',
217
+ perplexity: 'https://www.perplexity.ai/pricing',
218
+ },
219
+ };
220
+ /**
221
+ * Check if pricing data is stale (>90 days old)
222
+ * @returns { isStale: boolean, daysSinceUpdate: number }
223
+ */
224
+ export function checkPricingStaleness() {
225
+ const lastUpdate = new Date(MODEL_PRICING_METADATA.lastUpdated);
226
+ const now = new Date();
227
+ const daysSinceUpdate = Math.floor((now.getTime() - lastUpdate.getTime()) / (1000 * 60 * 60 * 24));
228
+ return {
229
+ isStale: daysSinceUpdate > MODEL_PRICING_METADATA.staleThresholdDays,
230
+ daysSinceUpdate,
231
+ };
232
+ }
233
+ // Check pricing staleness on module load (M13 fix)
234
+ const pricingStatus = checkPricingStaleness();
235
+ if (pricingStatus.isStale) {
236
+ console.warn(`[WARN] Model pricing data is ${pricingStatus.daysSinceUpdate} days old (last updated: ${MODEL_PRICING_METADATA.lastUpdated}). Consider updating MODEL_PRICING in constants.ts.`);
237
+ }
238
+ /**
239
+ * Model pricing per 1M tokens (as of Jan 2026)
240
+ *
241
+ * Pricing sources:
242
+ * - Anthropic: https://www.anthropic.com/pricing
243
+ * - OpenAI: https://openai.com/pricing
244
+ * - Google: https://ai.google.dev/pricing
245
+ * - Mistral: https://mistral.ai/pricing
246
+ * - Cohere: https://cohere.com/pricing
247
+ *
248
+ * Note: Pricing changes frequently. These are approximate values for cost estimation.
249
+ * For batch API pricing, multiply by 0.5 (50% discount typically).
250
+ *
251
+ * @see MODEL_PRICING_METADATA.lastUpdated for when this data was last verified
252
+ */
163
253
  export const MODEL_PRICING = {
254
+ // Anthropic Claude models
164
255
  'claude-opus-4-5-20251101': { input: 15.0, output: 75.0 },
165
256
  'claude-sonnet-4-20250514': { input: 3.0, output: 15.0 },
166
257
  'claude-3-5-haiku-20241022': { input: 0.80, output: 4.0 },
258
+ // Aliases for common model names
259
+ 'claude-3-opus': { input: 15.0, output: 75.0 },
260
+ 'claude-3-sonnet': { input: 3.0, output: 15.0 },
261
+ 'claude-3-haiku': { input: 0.25, output: 1.25 },
262
+ // OpenAI GPT models
263
+ 'gpt-4o': { input: 2.50, output: 10.0 },
264
+ 'gpt-4o-mini': { input: 0.15, output: 0.60 },
265
+ 'gpt-4-turbo': { input: 10.0, output: 30.0 },
266
+ 'gpt-4': { input: 30.0, output: 60.0 },
267
+ 'gpt-3.5-turbo': { input: 0.50, output: 1.50 },
268
+ 'o1': { input: 15.0, output: 60.0 },
269
+ 'o1-mini': { input: 3.0, output: 12.0 },
270
+ 'o3-mini': { input: 1.10, output: 4.40 },
271
+ // Google Gemini models
272
+ 'gemini-1.5-pro': { input: 1.25, output: 5.0 },
273
+ 'gemini-1.5-flash': { input: 0.075, output: 0.30 },
274
+ 'gemini-2.0-flash': { input: 0.10, output: 0.40 },
275
+ 'gemini-1.0-pro': { input: 0.50, output: 1.50 },
276
+ // Mistral AI models
277
+ 'mistral-large': { input: 2.0, output: 6.0 },
278
+ 'mistral-medium': { input: 2.7, output: 8.1 },
279
+ 'mistral-small': { input: 0.2, output: 0.6 },
280
+ 'mixtral-8x7b': { input: 0.7, output: 0.7 },
281
+ 'codestral': { input: 0.2, output: 0.6 },
282
+ // Cohere models
283
+ 'command-r-plus': { input: 2.50, output: 10.0 },
284
+ 'command-r': { input: 0.15, output: 0.60 },
285
+ 'command': { input: 1.0, output: 2.0 },
286
+ 'command-light': { input: 0.30, output: 0.60 },
287
+ // Groq models (competitive pricing)
288
+ 'llama-3.3-70b': { input: 0.59, output: 0.79 },
289
+ 'llama-3.1-8b': { input: 0.05, output: 0.08 },
290
+ 'mixtral-8x7b-groq': { input: 0.24, output: 0.24 },
291
+ // Together AI models (approximate)
292
+ 'llama-3-70b': { input: 0.90, output: 0.90 },
293
+ 'llama-3-8b': { input: 0.20, output: 0.20 },
294
+ // Perplexity models
295
+ 'sonar-pro': { input: 3.0, output: 15.0 },
296
+ 'sonar': { input: 1.0, output: 1.0 },
167
297
  };
168
298
  // File patterns
169
299
  export const TRACES_FILE_PATTERN = 'traces-*.jsonl';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Unit tests for constants.ts
3
3
  */
4
- import { describe, it, beforeEach, afterEach } from 'node:test';
4
+ import { describe, it, before, after, beforeEach } from 'node:test';
5
5
  import assert from 'node:assert';
6
6
  import * as fs from 'fs';
7
7
  import * as os from 'os';
8
8
  import { join } from 'path';
9
9
  import * as constants from './constants.js';
10
- import { createTempDir, removeTempDir } from '../test-helpers/file-utils.js';
10
+ import { getSharedTempDir, clearTempDir, removeSharedTempDir } from '../test-helpers/file-utils.js';
11
11
  describe('Constants', () => {
12
12
  describe('CLAUDE_HOME', () => {
13
13
  it('should be a string', () => {
@@ -156,11 +156,157 @@ describe('Constants', () => {
156
156
  assert(sonnet.input > haiku.input);
157
157
  assert(sonnet.output > haiku.output);
158
158
  });
159
- it('output pricing should be higher than input pricing for all models', () => {
159
+ it('output pricing should be >= input pricing for all models', () => {
160
160
  Object.values(constants.MODEL_PRICING).forEach(pricing => {
161
- assert(pricing.output > pricing.input);
161
+ assert(pricing.output >= pricing.input, `Expected output (${pricing.output}) >= input (${pricing.input})`);
162
162
  });
163
163
  });
164
+ // Multi-provider support tests
165
+ describe('OpenAI models', () => {
166
+ it('should contain gpt-4o', () => {
167
+ assert('gpt-4o' in constants.MODEL_PRICING);
168
+ });
169
+ it('should contain gpt-4o-mini', () => {
170
+ assert('gpt-4o-mini' in constants.MODEL_PRICING);
171
+ });
172
+ it('should contain gpt-4-turbo', () => {
173
+ assert('gpt-4-turbo' in constants.MODEL_PRICING);
174
+ });
175
+ it('should contain gpt-3.5-turbo', () => {
176
+ assert('gpt-3.5-turbo' in constants.MODEL_PRICING);
177
+ });
178
+ it('should contain o1 reasoning model', () => {
179
+ assert('o1' in constants.MODEL_PRICING);
180
+ });
181
+ it('should contain o1-mini', () => {
182
+ assert('o1-mini' in constants.MODEL_PRICING);
183
+ });
184
+ });
185
+ describe('Google Gemini models', () => {
186
+ it('should contain gemini-1.5-pro', () => {
187
+ assert('gemini-1.5-pro' in constants.MODEL_PRICING);
188
+ });
189
+ it('should contain gemini-1.5-flash', () => {
190
+ assert('gemini-1.5-flash' in constants.MODEL_PRICING);
191
+ });
192
+ it('should contain gemini-2.0-flash', () => {
193
+ assert('gemini-2.0-flash' in constants.MODEL_PRICING);
194
+ });
195
+ it('Gemini Pro should have higher pricing than Flash', () => {
196
+ const pro = constants.MODEL_PRICING['gemini-1.5-pro'];
197
+ const flash = constants.MODEL_PRICING['gemini-1.5-flash'];
198
+ assert(pro.input > flash.input);
199
+ assert(pro.output > flash.output);
200
+ });
201
+ });
202
+ describe('Mistral AI models', () => {
203
+ it('should contain mistral-large', () => {
204
+ assert('mistral-large' in constants.MODEL_PRICING);
205
+ });
206
+ it('should contain mistral-small', () => {
207
+ assert('mistral-small' in constants.MODEL_PRICING);
208
+ });
209
+ it('should contain codestral', () => {
210
+ assert('codestral' in constants.MODEL_PRICING);
211
+ });
212
+ it('Mistral large should have higher pricing than small', () => {
213
+ const large = constants.MODEL_PRICING['mistral-large'];
214
+ const small = constants.MODEL_PRICING['mistral-small'];
215
+ assert(large.input > small.input);
216
+ assert(large.output > small.output);
217
+ });
218
+ });
219
+ describe('Cohere models', () => {
220
+ it('should contain command-r-plus', () => {
221
+ assert('command-r-plus' in constants.MODEL_PRICING);
222
+ });
223
+ it('should contain command-r', () => {
224
+ assert('command-r' in constants.MODEL_PRICING);
225
+ });
226
+ it('Command R Plus should have higher pricing than Command R', () => {
227
+ const plus = constants.MODEL_PRICING['command-r-plus'];
228
+ const r = constants.MODEL_PRICING['command-r'];
229
+ assert(plus.input > r.input);
230
+ assert(plus.output > r.output);
231
+ });
232
+ });
233
+ describe('Groq models', () => {
234
+ it('should contain llama-3.3-70b', () => {
235
+ assert('llama-3.3-70b' in constants.MODEL_PRICING);
236
+ });
237
+ it('should contain llama-3.1-8b', () => {
238
+ assert('llama-3.1-8b' in constants.MODEL_PRICING);
239
+ });
240
+ it('Larger llama model should have higher pricing', () => {
241
+ const large = constants.MODEL_PRICING['llama-3.3-70b'];
242
+ const small = constants.MODEL_PRICING['llama-3.1-8b'];
243
+ assert(large.input > small.input);
244
+ assert(large.output > small.output);
245
+ });
246
+ });
247
+ describe('Perplexity models', () => {
248
+ it('should contain sonar-pro', () => {
249
+ assert('sonar-pro' in constants.MODEL_PRICING);
250
+ });
251
+ it('should contain sonar', () => {
252
+ assert('sonar' in constants.MODEL_PRICING);
253
+ });
254
+ });
255
+ describe('model count', () => {
256
+ it('should have at least 30 models defined', () => {
257
+ const modelCount = Object.keys(constants.MODEL_PRICING).length;
258
+ assert(modelCount >= 30, `Expected at least 30 models, got ${modelCount}`);
259
+ });
260
+ });
261
+ });
262
+ describe('MODEL_PRICING_METADATA', () => {
263
+ it('should have lastUpdated as valid ISO date', () => {
264
+ const date = new Date(constants.MODEL_PRICING_METADATA.lastUpdated);
265
+ assert.ok(!isNaN(date.getTime()), 'lastUpdated should be a valid date');
266
+ });
267
+ it('should have staleThresholdDays as positive number', () => {
268
+ assert.ok(constants.MODEL_PRICING_METADATA.staleThresholdDays > 0);
269
+ });
270
+ it('should have staleThresholdDays default to 90', () => {
271
+ assert.strictEqual(constants.MODEL_PRICING_METADATA.staleThresholdDays, 90);
272
+ });
273
+ it('should have sources object with provider URLs', () => {
274
+ const sources = constants.MODEL_PRICING_METADATA.sources;
275
+ assert.ok(typeof sources === 'object');
276
+ assert.ok(sources.anthropic.includes('anthropic.com'));
277
+ assert.ok(sources.openai.includes('openai.com'));
278
+ assert.ok(sources.google.includes('google'));
279
+ assert.ok(sources.mistral.includes('mistral.ai'));
280
+ assert.ok(sources.cohere.includes('cohere.com'));
281
+ });
282
+ });
283
+ describe('checkPricingStaleness', () => {
284
+ it('should return isStale and daysSinceUpdate', () => {
285
+ const result = constants.checkPricingStaleness();
286
+ assert.ok('isStale' in result);
287
+ assert.ok('daysSinceUpdate' in result);
288
+ assert.strictEqual(typeof result.isStale, 'boolean');
289
+ assert.strictEqual(typeof result.daysSinceUpdate, 'number');
290
+ });
291
+ it('should calculate daysSinceUpdate correctly', () => {
292
+ const result = constants.checkPricingStaleness();
293
+ const lastUpdate = new Date(constants.MODEL_PRICING_METADATA.lastUpdated);
294
+ const now = new Date();
295
+ const expectedDays = Math.floor((now.getTime() - lastUpdate.getTime()) / (1000 * 60 * 60 * 24));
296
+ assert.strictEqual(result.daysSinceUpdate, expectedDays);
297
+ });
298
+ it('should return isStale: true when data is >90 days old', () => {
299
+ // Note: This test documents expected behavior
300
+ // When data is fresh (<90 days), isStale should be false
301
+ // When data is old (>90 days), isStale should be true
302
+ const result = constants.checkPricingStaleness();
303
+ const expectedStale = result.daysSinceUpdate > constants.MODEL_PRICING_METADATA.staleThresholdDays;
304
+ assert.strictEqual(result.isStale, expectedStale);
305
+ });
306
+ it('should return non-negative daysSinceUpdate', () => {
307
+ const result = constants.checkPricingStaleness();
308
+ assert.ok(result.daysSinceUpdate >= 0);
309
+ });
164
310
  });
165
311
  describe('File patterns', () => {
166
312
  describe('TRACES_FILE_PATTERN', () => {
@@ -288,11 +434,14 @@ describe('Constants', () => {
288
434
  });
289
435
  describe('getTelemetryDirectories', () => {
290
436
  let tempDir;
437
+ before(() => {
438
+ tempDir = getSharedTempDir('ConstantsTelemetryDirs');
439
+ });
291
440
  beforeEach(() => {
292
- tempDir = createTempDir();
441
+ clearTempDir(tempDir);
293
442
  });
294
- afterEach(() => {
295
- removeTempDir(tempDir);
443
+ after(() => {
444
+ removeSharedTempDir('ConstantsTelemetryDirs');
296
445
  });
297
446
  it('should return array of directories', () => {
298
447
  const dirs = constants.getTelemetryDirectories(tempDir);