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
@@ -1 +1 @@
1
- {"version":3,"file":"signoz-api.test.js","sourceRoot":"","sources":["../../src/backends/signoz-api.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signoz-api.test.js","sourceRoot":"","sources":["../../src/backends/signoz-api.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,55 @@
1
1
  /**
2
- * Simple LRU cache with TTL for query result caching
2
+ * LRU (Least Recently Used) cache with TTL for query result caching.
3
+ *
4
+ * ## Memory Characteristics (M1)
5
+ * - **Bounded memory**: Fixed maxSize prevents unbounded growth
6
+ * - **Default capacity**: 100 entries per cache instance
7
+ * - **TTL expiration**: Entries expire after 60 seconds (configurable via CACHE_TTL_MS)
8
+ * - **LRU eviction**: Oldest entries removed when capacity reached
9
+ *
10
+ * ## Usage in MultiDirectoryBackend
11
+ * The backend uses 5 separate cache instances:
12
+ * - traceCache, logCache, metricCache, llmEventCache, evaluationCache
13
+ * - Total capacity: 5 × 100 = 500 entries max
14
+ * - Each entry contains query results (arrays of records)
15
+ *
16
+ * ## Monitoring
17
+ * Use `getStats()` to monitor cache performance:
18
+ * - hitRate: Cache efficiency (0-1, higher is better)
19
+ * - evictions: Count of LRU evictions (indicates capacity pressure)
20
+ * - size: Current number of cached entries
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const cache = new QueryCache<TraceSpan[]>(100, 60000);
25
+ * const stats = cache.getStats();
26
+ * console.log(`Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`);
27
+ * ```
28
+ */
29
+ /**
30
+ * Cache statistics for monitoring and observability
3
31
  */
4
32
  export interface CacheStats {
33
+ /** Number of cache hits (successful retrievals) */
5
34
  hits: number;
35
+ /** Number of cache misses (key not found or expired) */
6
36
  misses: number;
37
+ /** Number of LRU evictions (entries removed due to capacity) */
7
38
  evictions: number;
39
+ /** Current number of entries in cache */
8
40
  size: number;
41
+ /** Hit rate: hits / (hits + misses), 0 if no requests */
9
42
  hitRate: number;
10
43
  }
44
+ /** Default TTL: 60 seconds, configurable via CACHE_TTL_MS env var */
11
45
  export declare const CACHE_TTL_MS: number;
46
+ /** Default cache size: 100 entries per instance (L-STYLE-1) */
47
+ export declare const DEFAULT_CACHE_SIZE = 100;
48
+ /**
49
+ * LRU cache with TTL expiration.
50
+ *
51
+ * @typeParam T - Type of cached data (typically arrays of query results)
52
+ */
12
53
  export declare class QueryCache<T> {
13
54
  private cache;
14
55
  private maxSize;
@@ -16,6 +57,11 @@ export declare class QueryCache<T> {
16
57
  private hits;
17
58
  private misses;
18
59
  private evictions;
60
+ /**
61
+ * Create a new QueryCache instance.
62
+ * @param maxSize - Maximum number of entries (default: DEFAULT_CACHE_SIZE)
63
+ * @param ttlMs - Time-to-live in milliseconds (default: CACHE_TTL_MS)
64
+ */
19
65
  constructor(maxSize?: number, ttlMs?: number);
20
66
  get(key: string): T | undefined;
21
67
  set(key: string, data: T): void;
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,eAAO,MAAM,YAAY,QAAoD,CAAC;AAE9E,qBAAa,UAAU,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAK;gBAEV,OAAO,SAAM,EAAE,KAAK,SAAe;IAK/C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAkB/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAe/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,QAAQ,IAAI,UAAU;CAUvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAOH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qEAAqE;AACrE,eAAO,MAAM,YAAY,QAAoD,CAAC;AAE9E,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;GAIG;AACH,qBAAa,UAAU,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAK;IAEtB;;;;OAIG;gBACS,OAAO,SAAqB,EAAE,KAAK,SAAe;IAK9D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAkB/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAe/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,QAAQ,IAAI,UAAU;CAUvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE"}
package/dist/lib/cache.js CHANGED
@@ -1,8 +1,40 @@
1
1
  /**
2
- * Simple LRU cache with TTL for query result caching
2
+ * LRU (Least Recently Used) cache with TTL for query result caching.
3
+ *
4
+ * ## Memory Characteristics (M1)
5
+ * - **Bounded memory**: Fixed maxSize prevents unbounded growth
6
+ * - **Default capacity**: 100 entries per cache instance
7
+ * - **TTL expiration**: Entries expire after 60 seconds (configurable via CACHE_TTL_MS)
8
+ * - **LRU eviction**: Oldest entries removed when capacity reached
9
+ *
10
+ * ## Usage in MultiDirectoryBackend
11
+ * The backend uses 5 separate cache instances:
12
+ * - traceCache, logCache, metricCache, llmEventCache, evaluationCache
13
+ * - Total capacity: 5 × 100 = 500 entries max
14
+ * - Each entry contains query results (arrays of records)
15
+ *
16
+ * ## Monitoring
17
+ * Use `getStats()` to monitor cache performance:
18
+ * - hitRate: Cache efficiency (0-1, higher is better)
19
+ * - evictions: Count of LRU evictions (indicates capacity pressure)
20
+ * - size: Current number of cached entries
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const cache = new QueryCache<TraceSpan[]>(100, 60000);
25
+ * const stats = cache.getStats();
26
+ * console.log(`Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`);
27
+ * ```
3
28
  */
4
- // Default TTL: 60 seconds, configurable via CACHE_TTL_MS env var
29
+ /** Default TTL: 60 seconds, configurable via CACHE_TTL_MS env var */
5
30
  export const CACHE_TTL_MS = parseInt(process.env.CACHE_TTL_MS || '60000', 10);
31
+ /** Default cache size: 100 entries per instance (L-STYLE-1) */
32
+ export const DEFAULT_CACHE_SIZE = 100;
33
+ /**
34
+ * LRU cache with TTL expiration.
35
+ *
36
+ * @typeParam T - Type of cached data (typically arrays of query results)
37
+ */
6
38
  export class QueryCache {
7
39
  cache = new Map();
8
40
  maxSize;
@@ -10,7 +42,12 @@ export class QueryCache {
10
42
  hits = 0;
11
43
  misses = 0;
12
44
  evictions = 0;
13
- constructor(maxSize = 100, ttlMs = CACHE_TTL_MS) {
45
+ /**
46
+ * Create a new QueryCache instance.
47
+ * @param maxSize - Maximum number of entries (default: DEFAULT_CACHE_SIZE)
48
+ * @param ttlMs - Time-to-live in milliseconds (default: CACHE_TTL_MS)
49
+ */
50
+ constructor(maxSize = DEFAULT_CACHE_SIZE, ttlMs = CACHE_TTL_MS) {
14
51
  this.maxSize = maxSize;
15
52
  this.ttlMs = ttlMs;
16
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Circuit breaker pattern implementation for resilient I/O operations
3
+ *
4
+ * Prevents cascading failures by temporarily stopping requests to a failing service.
5
+ * States:
6
+ * - CLOSED: Normal operation, requests pass through
7
+ * - OPEN: Service failing, requests are rejected immediately
8
+ * - HALF-OPEN: Testing if service recovered, allows one request through
9
+ */
10
+ export type CircuitState = 'closed' | 'open' | 'half-open';
11
+ export interface CircuitBreakerOptions {
12
+ /** Number of consecutive failures before opening circuit (default: 3) */
13
+ maxFailures?: number;
14
+ /** Time in ms before attempting recovery (default: 60000) */
15
+ resetMs?: number;
16
+ /** Name for logging purposes */
17
+ name?: string;
18
+ }
19
+ /**
20
+ * Simple circuit breaker for I/O operations (API calls, file operations)
21
+ *
22
+ * Usage:
23
+ * ```ts
24
+ * const breaker = new CircuitBreaker({ name: 'local-file' });
25
+ *
26
+ * if (!breaker.canRequest()) {
27
+ * return []; // Circuit is open, fail fast
28
+ * }
29
+ *
30
+ * try {
31
+ * const result = await riskyOperation();
32
+ * breaker.recordSuccess();
33
+ * return result;
34
+ * } catch (error) {
35
+ * breaker.recordFailure();
36
+ * throw error;
37
+ * }
38
+ * ```
39
+ */
40
+ export declare class CircuitBreaker {
41
+ private failures;
42
+ private lastFailure;
43
+ private state;
44
+ /** Prevents multiple concurrent requests during half-open state */
45
+ private halfOpenRequestInFlight;
46
+ private readonly maxFailures;
47
+ private readonly resetMs;
48
+ private readonly name;
49
+ constructor(options?: CircuitBreakerOptions);
50
+ /**
51
+ * Check if a request can proceed
52
+ * Returns false if circuit is open (and not ready to retry)
53
+ * In half-open state, only one request is allowed through at a time
54
+ */
55
+ canRequest(): boolean;
56
+ /**
57
+ * Record a successful operation
58
+ * Closes the circuit if in half-open state
59
+ */
60
+ recordSuccess(): void;
61
+ /**
62
+ * Record a failed operation
63
+ * Opens the circuit after maxFailures consecutive failures
64
+ */
65
+ recordFailure(): void;
66
+ /**
67
+ * Get current circuit state
68
+ */
69
+ getState(): CircuitState;
70
+ /**
71
+ * Get current failure count
72
+ */
73
+ getFailureCount(): number;
74
+ /**
75
+ * Reset circuit to closed state (useful for testing)
76
+ */
77
+ reset(): void;
78
+ /**
79
+ * Check if a half-open request is in flight (for testing)
80
+ */
81
+ isHalfOpenRequestInFlight(): boolean;
82
+ }
83
+ //# sourceMappingURL=circuit-breaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/lib/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,KAAK,CAA0B;IACvC,mEAAmE;IACnE,OAAO,CAAC,uBAAuB,CAAS;IAExC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,OAAO,GAAE,qBAA0B;IAM/C;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAqBrB;;;OAGG;IACH,aAAa,IAAI,IAAI;IASrB;;;OAGG;IACH,aAAa,IAAI,IAAI;IAWrB;;OAEG;IACH,QAAQ,IAAI,YAAY;IAIxB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,yBAAyB,IAAI,OAAO;CAGrC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Circuit breaker pattern implementation for resilient I/O operations
3
+ *
4
+ * Prevents cascading failures by temporarily stopping requests to a failing service.
5
+ * States:
6
+ * - CLOSED: Normal operation, requests pass through
7
+ * - OPEN: Service failing, requests are rejected immediately
8
+ * - HALF-OPEN: Testing if service recovered, allows one request through
9
+ */
10
+ import { CIRCUIT_BREAKER } from './constants.js';
11
+ /**
12
+ * Simple circuit breaker for I/O operations (API calls, file operations)
13
+ *
14
+ * Usage:
15
+ * ```ts
16
+ * const breaker = new CircuitBreaker({ name: 'local-file' });
17
+ *
18
+ * if (!breaker.canRequest()) {
19
+ * return []; // Circuit is open, fail fast
20
+ * }
21
+ *
22
+ * try {
23
+ * const result = await riskyOperation();
24
+ * breaker.recordSuccess();
25
+ * return result;
26
+ * } catch (error) {
27
+ * breaker.recordFailure();
28
+ * throw error;
29
+ * }
30
+ * ```
31
+ */
32
+ export class CircuitBreaker {
33
+ failures = 0;
34
+ lastFailure = 0;
35
+ state = 'closed';
36
+ /** Prevents multiple concurrent requests during half-open state */
37
+ halfOpenRequestInFlight = false;
38
+ maxFailures;
39
+ resetMs;
40
+ name;
41
+ constructor(options = {}) {
42
+ this.maxFailures = options.maxFailures ?? CIRCUIT_BREAKER.MAX_FAILURES;
43
+ this.resetMs = options.resetMs ?? CIRCUIT_BREAKER.RESET_MS;
44
+ this.name = options.name ?? 'circuit-breaker';
45
+ }
46
+ /**
47
+ * Check if a request can proceed
48
+ * Returns false if circuit is open (and not ready to retry)
49
+ * In half-open state, only one request is allowed through at a time
50
+ */
51
+ canRequest() {
52
+ if (this.state === 'open') {
53
+ if (Date.now() - this.lastFailure > this.resetMs) {
54
+ // Prevent race condition: only allow one request through during half-open
55
+ if (this.halfOpenRequestInFlight) {
56
+ return false; // Another half-open request is already testing
57
+ }
58
+ this.halfOpenRequestInFlight = true;
59
+ console.info(`[obs-toolkit] ${this.name}: entering HALF-OPEN state (reset timeout elapsed)`);
60
+ this.state = 'half-open';
61
+ return true;
62
+ }
63
+ return false;
64
+ }
65
+ // In half-open state, reject if a request is already in flight
66
+ if (this.state === 'half-open' && this.halfOpenRequestInFlight) {
67
+ return false;
68
+ }
69
+ return true;
70
+ }
71
+ /**
72
+ * Record a successful operation
73
+ * Closes the circuit if in half-open state
74
+ */
75
+ recordSuccess() {
76
+ this.halfOpenRequestInFlight = false;
77
+ if (this.state === 'half-open') {
78
+ console.info(`[obs-toolkit] ${this.name}: CLOSED after successful request`);
79
+ }
80
+ this.failures = 0;
81
+ this.state = 'closed';
82
+ }
83
+ /**
84
+ * Record a failed operation
85
+ * Opens the circuit after maxFailures consecutive failures
86
+ */
87
+ recordFailure() {
88
+ this.halfOpenRequestInFlight = false;
89
+ this.failures++;
90
+ this.lastFailure = Date.now();
91
+ if (this.failures >= this.maxFailures && this.state !== 'open') {
92
+ const previousState = this.state;
93
+ this.state = 'open';
94
+ console.warn(`[obs-toolkit] ${this.name}: OPENED after ${this.failures} consecutive failures (was: ${previousState})`);
95
+ }
96
+ }
97
+ /**
98
+ * Get current circuit state
99
+ */
100
+ getState() {
101
+ return this.state;
102
+ }
103
+ /**
104
+ * Get current failure count
105
+ */
106
+ getFailureCount() {
107
+ return this.failures;
108
+ }
109
+ /**
110
+ * Reset circuit to closed state (useful for testing)
111
+ */
112
+ reset() {
113
+ this.failures = 0;
114
+ this.lastFailure = 0;
115
+ this.state = 'closed';
116
+ this.halfOpenRequestInFlight = false;
117
+ }
118
+ /**
119
+ * Check if a half-open request is in flight (for testing)
120
+ */
121
+ isHalfOpenRequestInFlight() {
122
+ return this.halfOpenRequestInFlight;
123
+ }
124
+ }
125
+ //# sourceMappingURL=circuit-breaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/lib/circuit-breaker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=circuit-breaker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.test.d.ts","sourceRoot":"","sources":["../../src/lib/circuit-breaker.test.ts"],"names":[],"mappings":""}