@superblocksteam/telemetry 2.0.171 → 2.0.173-next.0

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 (304) hide show
  1. package/dist/browser/console-logging.js +2 -7
  2. package/dist/browser/console-logging.js.map +1 -1
  3. package/dist/browser/early-console-buffer.js +12 -14
  4. package/dist/browser/early-console-buffer.js.map +1 -1
  5. package/dist/browser/index.js +12 -41
  6. package/dist/browser/index.js.map +1 -1
  7. package/dist/browser/init.d.ts +1 -1
  8. package/dist/browser/init.d.ts.map +1 -1
  9. package/dist/browser/init.js +42 -52
  10. package/dist/browser/init.js.map +1 -1
  11. package/dist/browser/instrumentations.js +11 -15
  12. package/dist/browser/instrumentations.js.map +1 -1
  13. package/dist/browser/logs.d.ts +1 -1
  14. package/dist/browser/logs.d.ts.map +1 -1
  15. package/dist/browser/logs.js +11 -18
  16. package/dist/browser/logs.js.map +1 -1
  17. package/dist/browser/metrics.js +9 -12
  18. package/dist/browser/metrics.js.map +1 -1
  19. package/dist/browser/resilient-exporter.d.ts +1 -1
  20. package/dist/browser/resilient-exporter.d.ts.map +1 -1
  21. package/dist/browser/resilient-exporter.js +8 -12
  22. package/dist/browser/resilient-exporter.js.map +1 -1
  23. package/dist/browser/sanitizer.js +2 -6
  24. package/dist/browser/sanitizer.js.map +1 -1
  25. package/dist/browser/traced-socket.js +14 -18
  26. package/dist/browser/traced-socket.js.map +1 -1
  27. package/dist/common/contracts/tier2-traces.js +33 -44
  28. package/dist/common/contracts/tier2-traces.js.map +1 -1
  29. package/dist/common/deployment-type.js +5 -8
  30. package/dist/common/deployment-type.js.map +1 -1
  31. package/dist/common/guardrails.js +26 -38
  32. package/dist/common/guardrails.js.map +1 -1
  33. package/dist/common/index.js +8 -24
  34. package/dist/common/index.js.map +1 -1
  35. package/dist/common/log-sanitizer.js +37 -55
  36. package/dist/common/log-sanitizer.js.map +1 -1
  37. package/dist/common/policy-evaluator.d.ts +1 -1
  38. package/dist/common/policy-evaluator.d.ts.map +1 -1
  39. package/dist/common/policy-evaluator.js +5 -9
  40. package/dist/common/policy-evaluator.js.map +1 -1
  41. package/dist/common/resource.js +18 -25
  42. package/dist/common/resource.js.map +1 -1
  43. package/dist/common/tier-hints.js +12 -22
  44. package/dist/common/tier-hints.js.map +1 -1
  45. package/dist/common/trace-sanitizer.js +6 -10
  46. package/dist/common/trace-sanitizer.js.map +1 -1
  47. package/dist/common/traced-socket-types.js +1 -2
  48. package/dist/common/traced-socket-types.js.map +1 -1
  49. package/dist/index.js +6 -38
  50. package/dist/index.js.map +1 -1
  51. package/dist/lint/forbidden-attributes.js +19 -24
  52. package/dist/lint/forbidden-attributes.js.map +1 -1
  53. package/dist/lint/index.js +1 -8
  54. package/dist/lint/index.js.map +1 -1
  55. package/dist/llmobs/index.js +2 -9
  56. package/dist/llmobs/index.js.map +1 -1
  57. package/dist/llmobs/tier1-exporter.js +6 -12
  58. package/dist/llmobs/tier1-exporter.js.map +1 -1
  59. package/dist/llmobs/tier2-summarizer.js +1 -5
  60. package/dist/llmobs/tier2-summarizer.js.map +1 -1
  61. package/dist/node/dynamic-attribute-processor.js +2 -7
  62. package/dist/node/dynamic-attribute-processor.js.map +1 -1
  63. package/dist/node/exporters/resilient-exporter.d.ts +1 -1
  64. package/dist/node/exporters/resilient-exporter.d.ts.map +1 -1
  65. package/dist/node/exporters/resilient-exporter.js +8 -12
  66. package/dist/node/exporters/resilient-exporter.js.map +1 -1
  67. package/dist/node/index.js +7 -26
  68. package/dist/node/index.js.map +1 -1
  69. package/dist/node/init.d.ts +3 -3
  70. package/dist/node/init.d.ts.map +1 -1
  71. package/dist/node/init.js +66 -72
  72. package/dist/node/init.js.map +1 -1
  73. package/dist/node/local-obs-mode.js +1 -4
  74. package/dist/node/local-obs-mode.js.map +1 -1
  75. package/dist/node/log-processor.d.ts +1 -1
  76. package/dist/node/log-processor.d.ts.map +1 -1
  77. package/dist/node/log-processor.js +47 -55
  78. package/dist/node/log-processor.js.map +1 -1
  79. package/dist/node/metrics-client.js +1 -5
  80. package/dist/node/metrics-client.js.map +1 -1
  81. package/dist/node/safe-logger.js +8 -12
  82. package/dist/node/safe-logger.js.map +1 -1
  83. package/dist/node/sanitizing-processor.d.ts +2 -2
  84. package/dist/node/sanitizing-processor.d.ts.map +1 -1
  85. package/dist/node/sanitizing-processor.js +6 -10
  86. package/dist/node/sanitizing-processor.js.map +1 -1
  87. package/dist/node/service-tracers.js +7 -10
  88. package/dist/node/service-tracers.js.map +1 -1
  89. package/dist/node/traced-socket.d.ts +3 -3
  90. package/dist/node/traced-socket.d.ts.map +1 -1
  91. package/dist/node/traced-socket.js +48 -52
  92. package/dist/node/traced-socket.js.map +1 -1
  93. package/dist/npm-registry/emitter.js +34 -47
  94. package/dist/npm-registry/emitter.js.map +1 -1
  95. package/dist/npm-registry/index.js +3 -19
  96. package/dist/npm-registry/index.js.map +1 -1
  97. package/dist/npm-registry/sanitize.js +16 -27
  98. package/dist/npm-registry/sanitize.js.map +1 -1
  99. package/dist/npm-registry/spans.js +7 -12
  100. package/dist/npm-registry/spans.js.map +1 -1
  101. package/dist/testing/in-memory-exporter.d.ts +1 -1
  102. package/dist/testing/in-memory-exporter.d.ts.map +1 -1
  103. package/dist/testing/in-memory-exporter.js +6 -12
  104. package/dist/testing/in-memory-exporter.js.map +1 -1
  105. package/dist/testing/index.js +3 -15
  106. package/dist/testing/index.js.map +1 -1
  107. package/dist/testing/metrics-capture.js +12 -15
  108. package/dist/testing/metrics-capture.js.map +1 -1
  109. package/dist/testing/test-init.js +24 -31
  110. package/dist/testing/test-init.js.map +1 -1
  111. package/dist/types/index.js +1 -17
  112. package/dist/types/index.js.map +1 -1
  113. package/dist/types/policy.js +21 -24
  114. package/dist/types/policy.js.map +1 -1
  115. package/package.json +11 -17
  116. package/dist-esm/browser/console-logging.d.ts +0 -18
  117. package/dist-esm/browser/console-logging.d.ts.map +0 -1
  118. package/dist-esm/browser/console-logging.js +0 -27
  119. package/dist-esm/browser/console-logging.js.map +0 -1
  120. package/dist-esm/browser/early-console-buffer.d.ts +0 -49
  121. package/dist-esm/browser/early-console-buffer.d.ts.map +0 -1
  122. package/dist-esm/browser/early-console-buffer.js +0 -181
  123. package/dist-esm/browser/early-console-buffer.js.map +0 -1
  124. package/dist-esm/browser/index.d.ts +0 -18
  125. package/dist-esm/browser/index.d.ts.map +0 -1
  126. package/dist-esm/browser/index.js +0 -23
  127. package/dist-esm/browser/index.js.map +0 -1
  128. package/dist-esm/browser/init.d.ts +0 -100
  129. package/dist-esm/browser/init.d.ts.map +0 -1
  130. package/dist-esm/browser/init.js +0 -317
  131. package/dist-esm/browser/init.js.map +0 -1
  132. package/dist-esm/browser/instrumentations.d.ts +0 -67
  133. package/dist-esm/browser/instrumentations.d.ts.map +0 -1
  134. package/dist-esm/browser/instrumentations.js +0 -79
  135. package/dist-esm/browser/instrumentations.js.map +0 -1
  136. package/dist-esm/browser/logs.d.ts +0 -57
  137. package/dist-esm/browser/logs.d.ts.map +0 -1
  138. package/dist-esm/browser/logs.js +0 -80
  139. package/dist-esm/browser/logs.js.map +0 -1
  140. package/dist-esm/browser/metrics.d.ts +0 -29
  141. package/dist-esm/browser/metrics.d.ts.map +0 -1
  142. package/dist-esm/browser/metrics.js +0 -46
  143. package/dist-esm/browser/metrics.js.map +0 -1
  144. package/dist-esm/browser/resilient-exporter.d.ts +0 -43
  145. package/dist-esm/browser/resilient-exporter.d.ts.map +0 -1
  146. package/dist-esm/browser/resilient-exporter.js +0 -84
  147. package/dist-esm/browser/resilient-exporter.js.map +0 -1
  148. package/dist-esm/browser/sanitizer.d.ts +0 -35
  149. package/dist-esm/browser/sanitizer.d.ts.map +0 -1
  150. package/dist-esm/browser/sanitizer.js +0 -207
  151. package/dist-esm/browser/sanitizer.js.map +0 -1
  152. package/dist-esm/browser/traced-socket.d.ts +0 -102
  153. package/dist-esm/browser/traced-socket.d.ts.map +0 -1
  154. package/dist-esm/browser/traced-socket.js +0 -199
  155. package/dist-esm/browser/traced-socket.js.map +0 -1
  156. package/dist-esm/common/contracts/tier2-traces.d.ts +0 -116
  157. package/dist-esm/common/contracts/tier2-traces.d.ts.map +0 -1
  158. package/dist-esm/common/contracts/tier2-traces.js +0 -725
  159. package/dist-esm/common/contracts/tier2-traces.js.map +0 -1
  160. package/dist-esm/common/deployment-type.d.ts +0 -18
  161. package/dist-esm/common/deployment-type.d.ts.map +0 -1
  162. package/dist-esm/common/deployment-type.js +0 -27
  163. package/dist-esm/common/deployment-type.js.map +0 -1
  164. package/dist-esm/common/guardrails.d.ts +0 -132
  165. package/dist-esm/common/guardrails.d.ts.map +0 -1
  166. package/dist-esm/common/guardrails.js +0 -230
  167. package/dist-esm/common/guardrails.js.map +0 -1
  168. package/dist-esm/common/index.d.ts +0 -17
  169. package/dist-esm/common/index.d.ts.map +0 -1
  170. package/dist-esm/common/index.js +0 -17
  171. package/dist-esm/common/index.js.map +0 -1
  172. package/dist-esm/common/log-sanitizer.d.ts +0 -163
  173. package/dist-esm/common/log-sanitizer.d.ts.map +0 -1
  174. package/dist-esm/common/log-sanitizer.js +0 -745
  175. package/dist-esm/common/log-sanitizer.js.map +0 -1
  176. package/dist-esm/common/policy-evaluator.d.ts +0 -103
  177. package/dist-esm/common/policy-evaluator.d.ts.map +0 -1
  178. package/dist-esm/common/policy-evaluator.js +0 -196
  179. package/dist-esm/common/policy-evaluator.js.map +0 -1
  180. package/dist-esm/common/resource.d.ts +0 -79
  181. package/dist-esm/common/resource.d.ts.map +0 -1
  182. package/dist-esm/common/resource.js +0 -121
  183. package/dist-esm/common/resource.js.map +0 -1
  184. package/dist-esm/common/tier-hints.d.ts +0 -182
  185. package/dist-esm/common/tier-hints.d.ts.map +0 -1
  186. package/dist-esm/common/tier-hints.js +0 -199
  187. package/dist-esm/common/tier-hints.js.map +0 -1
  188. package/dist-esm/common/trace-sanitizer.d.ts +0 -82
  189. package/dist-esm/common/trace-sanitizer.d.ts.map +0 -1
  190. package/dist-esm/common/trace-sanitizer.js +0 -230
  191. package/dist-esm/common/trace-sanitizer.js.map +0 -1
  192. package/dist-esm/common/traced-socket-types.d.ts +0 -43
  193. package/dist-esm/common/traced-socket-types.d.ts.map +0 -1
  194. package/dist-esm/common/traced-socket-types.js +0 -16
  195. package/dist-esm/common/traced-socket-types.js.map +0 -1
  196. package/dist-esm/index.d.ts +0 -45
  197. package/dist-esm/index.d.ts.map +0 -1
  198. package/dist-esm/index.js +0 -56
  199. package/dist-esm/index.js.map +0 -1
  200. package/dist-esm/lint/forbidden-attributes.d.ts +0 -149
  201. package/dist-esm/lint/forbidden-attributes.d.ts.map +0 -1
  202. package/dist-esm/lint/forbidden-attributes.js +0 -210
  203. package/dist-esm/lint/forbidden-attributes.js.map +0 -1
  204. package/dist-esm/lint/index.d.ts +0 -9
  205. package/dist-esm/lint/index.d.ts.map +0 -1
  206. package/dist-esm/lint/index.js +0 -9
  207. package/dist-esm/lint/index.js.map +0 -1
  208. package/dist-esm/llmobs/index.d.ts +0 -22
  209. package/dist-esm/llmobs/index.d.ts.map +0 -1
  210. package/dist-esm/llmobs/index.js +0 -22
  211. package/dist-esm/llmobs/index.js.map +0 -1
  212. package/dist-esm/llmobs/tier1-exporter.d.ts +0 -146
  213. package/dist-esm/llmobs/tier1-exporter.d.ts.map +0 -1
  214. package/dist-esm/llmobs/tier1-exporter.js +0 -193
  215. package/dist-esm/llmobs/tier1-exporter.js.map +0 -1
  216. package/dist-esm/llmobs/tier2-summarizer.d.ts +0 -268
  217. package/dist-esm/llmobs/tier2-summarizer.d.ts.map +0 -1
  218. package/dist-esm/llmobs/tier2-summarizer.js +0 -652
  219. package/dist-esm/llmobs/tier2-summarizer.js.map +0 -1
  220. package/dist-esm/node/dynamic-attribute-processor.d.ts +0 -43
  221. package/dist-esm/node/dynamic-attribute-processor.d.ts.map +0 -1
  222. package/dist-esm/node/dynamic-attribute-processor.js +0 -74
  223. package/dist-esm/node/dynamic-attribute-processor.js.map +0 -1
  224. package/dist-esm/node/exporters/resilient-exporter.d.ts +0 -91
  225. package/dist-esm/node/exporters/resilient-exporter.d.ts.map +0 -1
  226. package/dist-esm/node/exporters/resilient-exporter.js +0 -132
  227. package/dist-esm/node/exporters/resilient-exporter.js.map +0 -1
  228. package/dist-esm/node/index.d.ts +0 -13
  229. package/dist-esm/node/index.d.ts.map +0 -1
  230. package/dist-esm/node/index.js +0 -13
  231. package/dist-esm/node/index.js.map +0 -1
  232. package/dist-esm/node/init.d.ts +0 -97
  233. package/dist-esm/node/init.d.ts.map +0 -1
  234. package/dist-esm/node/init.js +0 -359
  235. package/dist-esm/node/init.js.map +0 -1
  236. package/dist-esm/node/local-obs-mode.d.ts +0 -17
  237. package/dist-esm/node/local-obs-mode.d.ts.map +0 -1
  238. package/dist-esm/node/local-obs-mode.js +0 -19
  239. package/dist-esm/node/local-obs-mode.js.map +0 -1
  240. package/dist-esm/node/log-processor.d.ts +0 -132
  241. package/dist-esm/node/log-processor.d.ts.map +0 -1
  242. package/dist-esm/node/log-processor.js +0 -389
  243. package/dist-esm/node/log-processor.js.map +0 -1
  244. package/dist-esm/node/metrics-client.d.ts +0 -88
  245. package/dist-esm/node/metrics-client.d.ts.map +0 -1
  246. package/dist-esm/node/metrics-client.js +0 -205
  247. package/dist-esm/node/metrics-client.js.map +0 -1
  248. package/dist-esm/node/safe-logger.d.ts +0 -55
  249. package/dist-esm/node/safe-logger.d.ts.map +0 -1
  250. package/dist-esm/node/safe-logger.js +0 -154
  251. package/dist-esm/node/safe-logger.js.map +0 -1
  252. package/dist-esm/node/sanitizing-processor.d.ts +0 -67
  253. package/dist-esm/node/sanitizing-processor.d.ts.map +0 -1
  254. package/dist-esm/node/sanitizing-processor.js +0 -163
  255. package/dist-esm/node/sanitizing-processor.js.map +0 -1
  256. package/dist-esm/node/service-tracers.d.ts +0 -52
  257. package/dist-esm/node/service-tracers.d.ts.map +0 -1
  258. package/dist-esm/node/service-tracers.js +0 -78
  259. package/dist-esm/node/service-tracers.js.map +0 -1
  260. package/dist-esm/node/traced-socket.d.ts +0 -120
  261. package/dist-esm/node/traced-socket.d.ts.map +0 -1
  262. package/dist-esm/node/traced-socket.js +0 -334
  263. package/dist-esm/node/traced-socket.js.map +0 -1
  264. package/dist-esm/npm-registry/emitter.d.ts +0 -330
  265. package/dist-esm/npm-registry/emitter.d.ts.map +0 -1
  266. package/dist-esm/npm-registry/emitter.js +0 -546
  267. package/dist-esm/npm-registry/emitter.js.map +0 -1
  268. package/dist-esm/npm-registry/index.d.ts +0 -12
  269. package/dist-esm/npm-registry/index.d.ts.map +0 -1
  270. package/dist-esm/npm-registry/index.js +0 -12
  271. package/dist-esm/npm-registry/index.js.map +0 -1
  272. package/dist-esm/npm-registry/sanitize.d.ts +0 -174
  273. package/dist-esm/npm-registry/sanitize.d.ts.map +0 -1
  274. package/dist-esm/npm-registry/sanitize.js +0 -331
  275. package/dist-esm/npm-registry/sanitize.js.map +0 -1
  276. package/dist-esm/npm-registry/spans.d.ts +0 -61
  277. package/dist-esm/npm-registry/spans.d.ts.map +0 -1
  278. package/dist-esm/npm-registry/spans.js +0 -86
  279. package/dist-esm/npm-registry/spans.js.map +0 -1
  280. package/dist-esm/package.json +0 -1
  281. package/dist-esm/testing/in-memory-exporter.d.ts +0 -179
  282. package/dist-esm/testing/in-memory-exporter.d.ts.map +0 -1
  283. package/dist-esm/testing/in-memory-exporter.js +0 -250
  284. package/dist-esm/testing/in-memory-exporter.js.map +0 -1
  285. package/dist-esm/testing/index.d.ts +0 -9
  286. package/dist-esm/testing/index.d.ts.map +0 -1
  287. package/dist-esm/testing/index.js +0 -9
  288. package/dist-esm/testing/index.js.map +0 -1
  289. package/dist-esm/testing/metrics-capture.d.ts +0 -29
  290. package/dist-esm/testing/metrics-capture.d.ts.map +0 -1
  291. package/dist-esm/testing/metrics-capture.js +0 -71
  292. package/dist-esm/testing/metrics-capture.js.map +0 -1
  293. package/dist-esm/testing/test-init.d.ts +0 -80
  294. package/dist-esm/testing/test-init.d.ts.map +0 -1
  295. package/dist-esm/testing/test-init.js +0 -137
  296. package/dist-esm/testing/test-init.js.map +0 -1
  297. package/dist-esm/types/index.d.ts +0 -84
  298. package/dist-esm/types/index.d.ts.map +0 -1
  299. package/dist-esm/types/index.js +0 -7
  300. package/dist-esm/types/index.js.map +0 -1
  301. package/dist-esm/types/policy.d.ts +0 -92
  302. package/dist-esm/types/policy.d.ts.map +0 -1
  303. package/dist-esm/types/policy.js +0 -122
  304. package/dist-esm/types/policy.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-sanitizer.js","sourceRoot":"","sources":["../../src/common/log-sanitizer.ts"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- /**
2
- * Policy Evaluator
3
- *
4
- * Evaluates telemetry routing decisions based on policy configuration.
5
- */
6
- import { TelemetryPolicy, TelemetryTier } from "../types/policy.js";
7
- /**
8
- * Result of a policy evaluation.
9
- */
10
- export interface PolicyDecision {
11
- /** Should this data be retained locally? */
12
- retainLocal: boolean;
13
- /** Should this data be exported? */
14
- export: boolean;
15
- /** Sampling decision */
16
- sampled: boolean;
17
- /** If blocked, the reason */
18
- blockReason?: string;
19
- }
20
- /**
21
- * Evaluator for telemetry policy decisions.
22
- *
23
- * IMPORTANT: This evaluator determines ROUTING eligibility, not trace sampling.
24
- *
25
- * For TRACES: Sampling must be handled by the OTel SDK Sampler (parent-based,
26
- * trace-ID ratio) to ensure trace consistency.
27
- *
28
- * For METRICS/LOGS: sampleRate applies with deterministic trace-ID-based logic.
29
- */
30
- export declare class TelemetryPolicyEvaluator {
31
- private readonly policy;
32
- constructor(policy: TelemetryPolicy);
33
- /**
34
- * Get the current policy.
35
- */
36
- getPolicy(): TelemetryPolicy;
37
- /**
38
- * Evaluate whether a telemetry signal should be processed/exported.
39
- *
40
- * @param tier - The tier this signal belongs to
41
- * @param orgId - Optional org ID for org-specific overrides
42
- * @param traceId - Optional trace ID for deterministic sampling
43
- * @returns PolicyDecision
44
- */
45
- evaluate(tier: TelemetryTier, orgId?: string, traceId?: string): PolicyDecision;
46
- /**
47
- * Check if export infrastructure should be created for a tier.
48
- *
49
- * This checks ONLY whether export is enabled in policy configuration.
50
- * It does NOT apply sampling - use this for SDK initialization decisions.
51
- *
52
- * @param tier - The tier to check
53
- * @param orgId - Optional org ID for org-specific overrides
54
- * @returns true if export infrastructure should be created
55
- */
56
- isExportEnabled(tier: TelemetryTier, orgId?: string): boolean;
57
- /**
58
- * Check if an export attempt is allowed (includes sampling).
59
- *
60
- * This applies sampling logic and should be used for per-span/per-signal
61
- * decisions at runtime, NOT for infrastructure initialization.
62
- *
63
- * @param tier - The tier to check
64
- * @param orgId - Optional org ID for org-specific overrides
65
- * @param traceId - Optional trace ID for deterministic sampling
66
- * @returns true if export is allowed for this specific signal
67
- */
68
- canExport(tier: TelemetryTier, orgId?: string, traceId?: string): boolean;
69
- /**
70
- * Assert export is allowed, throwing or logging based on enforcement mode.
71
- *
72
- * @param tier - The tier to check
73
- * @param orgId - Optional org ID for org-specific overrides
74
- * @throws Error if in ENFORCE mode and export is blocked
75
- */
76
- assertCanExport(tier: TelemetryTier, orgId?: string): void;
77
- /**
78
- * Check if Tier 3 content export is enabled.
79
- *
80
- * @returns true if Tier 3 prompts/responses can be exported
81
- */
82
- canExportTier3Content(): boolean;
83
- /**
84
- * Get the effective policy for an org (applying overrides if present).
85
- *
86
- * Performs deep merge for nested objects (tiers, tier3Content) to ensure
87
- * partial overrides don't clobber unspecified configurations.
88
- *
89
- * @param orgId - Optional org ID
90
- * @returns Effective policy
91
- */
92
- private getEffectivePolicy;
93
- /**
94
- * Deterministic sampling based on trace ID (W3C TraceContext recommendation).
95
- * Uses last 8 hex chars for uniform distribution in [0, 1).
96
- *
97
- * @param traceId - The trace ID (must be at least 8 hex characters)
98
- * @param sampleRate - Sample rate (0.0 - 1.0)
99
- * @returns true if sampled
100
- */
101
- private traceIdBasedSample;
102
- }
103
- //# sourceMappingURL=policy-evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy-evaluator.d.ts","sourceRoot":"","sources":["../../src/common/policy-evaluator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAC;IACrB,oCAAoC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAEpD;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;;;;;;OAOG;IACH,QAAQ,CACN,IAAI,EAAE,aAAa,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,cAAc;IAoCjB;;;;;;;;;OASG;IACH,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAM7D;;;;;;;;;;OAUG;IACH,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAKzE;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAW1D;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAOhC;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IA2C1B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;CAwB3B"}
@@ -1,196 +0,0 @@
1
- /**
2
- * Policy Evaluator
3
- *
4
- * Evaluates telemetry routing decisions based on policy configuration.
5
- */
6
- import { TelemetryTier, EnforcementMode, } from "../types/policy.js";
7
- /**
8
- * Evaluator for telemetry policy decisions.
9
- *
10
- * IMPORTANT: This evaluator determines ROUTING eligibility, not trace sampling.
11
- *
12
- * For TRACES: Sampling must be handled by the OTel SDK Sampler (parent-based,
13
- * trace-ID ratio) to ensure trace consistency.
14
- *
15
- * For METRICS/LOGS: sampleRate applies with deterministic trace-ID-based logic.
16
- */
17
- export class TelemetryPolicyEvaluator {
18
- policy;
19
- constructor(policy) {
20
- this.policy = policy;
21
- }
22
- /**
23
- * Get the current policy.
24
- */
25
- getPolicy() {
26
- return this.policy;
27
- }
28
- /**
29
- * Evaluate whether a telemetry signal should be processed/exported.
30
- *
31
- * @param tier - The tier this signal belongs to
32
- * @param orgId - Optional org ID for org-specific overrides
33
- * @param traceId - Optional trace ID for deterministic sampling
34
- * @returns PolicyDecision
35
- */
36
- evaluate(tier, orgId, traceId) {
37
- const effectivePolicy = this.getEffectivePolicy(orgId);
38
- const tierConfig = effectivePolicy.tiers[tier];
39
- if (!tierConfig.enabled) {
40
- return {
41
- retainLocal: false,
42
- export: false,
43
- sampled: false,
44
- blockReason: `Tier ${tier} is disabled`,
45
- };
46
- }
47
- // Use trace-ID-based deterministic sampling (NOT Math.random)
48
- // This ensures same trace ID = same decision across all services.
49
- //
50
- // SAMPLING FALLBACK BEHAVIOR:
51
- // When no traceId is provided (e.g., for standalone metrics or logs),
52
- // we only sample if sampleRate >= 1.0. This is intentionally conservative:
53
- // - For traces: traceId should always be available from span context
54
- // - For metrics: typically want 100% capture (sampleRate = 1.0) or explicit control
55
- // - For logs: same as metrics
56
- //
57
- // If probabilistic sampling without traceId is needed, callers should generate
58
- // a synthetic traceId or use a different sampling mechanism.
59
- const sampled = traceId
60
- ? this.traceIdBasedSample(traceId, tierConfig.sampleRate)
61
- : tierConfig.sampleRate >= 1.0;
62
- return {
63
- retainLocal: tierConfig.enabled,
64
- export: tierConfig.exportEnabled && sampled,
65
- sampled,
66
- };
67
- }
68
- /**
69
- * Check if export infrastructure should be created for a tier.
70
- *
71
- * This checks ONLY whether export is enabled in policy configuration.
72
- * It does NOT apply sampling - use this for SDK initialization decisions.
73
- *
74
- * @param tier - The tier to check
75
- * @param orgId - Optional org ID for org-specific overrides
76
- * @returns true if export infrastructure should be created
77
- */
78
- isExportEnabled(tier, orgId) {
79
- const effectivePolicy = this.getEffectivePolicy(orgId);
80
- const tierConfig = effectivePolicy.tiers[tier];
81
- return tierConfig.enabled && tierConfig.exportEnabled;
82
- }
83
- /**
84
- * Check if an export attempt is allowed (includes sampling).
85
- *
86
- * This applies sampling logic and should be used for per-span/per-signal
87
- * decisions at runtime, NOT for infrastructure initialization.
88
- *
89
- * @param tier - The tier to check
90
- * @param orgId - Optional org ID for org-specific overrides
91
- * @param traceId - Optional trace ID for deterministic sampling
92
- * @returns true if export is allowed for this specific signal
93
- */
94
- canExport(tier, orgId, traceId) {
95
- const decision = this.evaluate(tier, orgId, traceId);
96
- return decision.export;
97
- }
98
- /**
99
- * Assert export is allowed, throwing or logging based on enforcement mode.
100
- *
101
- * @param tier - The tier to check
102
- * @param orgId - Optional org ID for org-specific overrides
103
- * @throws Error if in ENFORCE mode and export is blocked
104
- */
105
- assertCanExport(tier, orgId) {
106
- if (!this.canExport(tier, orgId)) {
107
- const msg = `Export blocked for tier ${tier}`;
108
- if (this.policy.enforcementMode === EnforcementMode.ENFORCE) {
109
- throw new Error(msg);
110
- }
111
- else {
112
- console.warn(`[AUDIT] ${msg}`);
113
- }
114
- }
115
- }
116
- /**
117
- * Check if Tier 3 content export is enabled.
118
- *
119
- * @returns true if Tier 3 prompts/responses can be exported
120
- */
121
- canExportTier3Content() {
122
- return (this.canExport(TelemetryTier.TIER_3_AI_EXPERIENCE) &&
123
- this.policy.tier3Content.contentExportEnabled);
124
- }
125
- /**
126
- * Get the effective policy for an org (applying overrides if present).
127
- *
128
- * Performs deep merge for nested objects (tiers, tier3Content) to ensure
129
- * partial overrides don't clobber unspecified configurations.
130
- *
131
- * @param orgId - Optional org ID
132
- * @returns Effective policy
133
- */
134
- getEffectivePolicy(orgId) {
135
- if (!orgId || !this.policy.orgOverrides?.[orgId]) {
136
- return this.policy;
137
- }
138
- const override = this.policy.orgOverrides[orgId];
139
- // Valid tier keys for filtering
140
- const validTiers = new Set(Object.values(TelemetryTier));
141
- // Deep merge tiers: only override specified tiers, preserve others
142
- // Filter out invalid tier keys and null/undefined configs
143
- const mergedTiers = override.tiers
144
- ? {
145
- ...this.policy.tiers,
146
- ...Object.fromEntries(Object.entries(override.tiers)
147
- .filter(([tier, config]) => validTiers.has(tier) && config != null)
148
- .map(([tier, config]) => [
149
- tier,
150
- { ...this.policy.tiers[tier], ...config },
151
- ])),
152
- }
153
- : this.policy.tiers;
154
- // Deep merge tier3Content if present and not null
155
- const mergedTier3Content = override.tier3Content != null
156
- ? { ...this.policy.tier3Content, ...override.tier3Content }
157
- : this.policy.tier3Content;
158
- return {
159
- ...this.policy,
160
- ...override,
161
- tiers: mergedTiers,
162
- tier3Content: mergedTier3Content,
163
- };
164
- }
165
- /**
166
- * Deterministic sampling based on trace ID (W3C TraceContext recommendation).
167
- * Uses last 8 hex chars for uniform distribution in [0, 1).
168
- *
169
- * @param traceId - The trace ID (must be at least 8 hex characters)
170
- * @param sampleRate - Sample rate (0.0 - 1.0)
171
- * @returns true if sampled
172
- */
173
- traceIdBasedSample(traceId, sampleRate) {
174
- if (sampleRate >= 1.0)
175
- return true;
176
- if (sampleRate <= 0.0)
177
- return false;
178
- // Validate trace ID has sufficient hex characters
179
- if (!traceId || traceId.length < 8) {
180
- // Malformed trace ID - fail safe by not sampling
181
- return false;
182
- }
183
- const sampleHex = traceId.slice(-8);
184
- // Validate hex characters
185
- if (!/^[0-9a-fA-F]{8}$/.test(sampleHex)) {
186
- // Non-hex characters in trace ID - fail safe by not sampling
187
- return false;
188
- }
189
- // Parse last 8 hex chars as 32-bit unsigned int (range: 0 to 0xFFFFFFFF)
190
- // Divide by 2^32 (0x100000000) to get uniform distribution in [0, 1)
191
- // Using 0xFFFFFFFF would incorrectly produce 1.0 for max trace IDs
192
- const sampleValue = parseInt(sampleHex, 16) / 0x100000000;
193
- return sampleValue < sampleRate;
194
- }
195
- }
196
- //# sourceMappingURL=policy-evaluator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy-evaluator.js","sourceRoot":"","sources":["../../src/common/policy-evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- /**
2
- * Resource Builder
3
- *
4
- * Standardized resource attributes for all Superblocks services.
5
- *
6
- * CRITICAL: Resource Attributes vs Span Attributes
7
- *
8
- * `service.name`, `service.version`, and `deployment.environment.name` MUST be set as
9
- * **resource attributes** (once, at SDK initialization), NOT as span attributes (per-span).
10
- *
11
- * - Resource attributes: Set once, inherited by all spans/metrics/logs
12
- * - Span attributes: Set per-span, for request-specific data
13
- */
14
- import { type Resource } from "@opentelemetry/resources";
15
- import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
16
- import type { BaseTelemetryConfig } from "../types/index.js";
17
- /** Re-export for use in log/trace attribute keys (e.g. server logger base). */
18
- export { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION };
19
- /**
20
- * Required RESOURCE attributes for correlation.
21
- * These must NOT be added as span attributes (they're inherited from resource).
22
- */
23
- export declare const REQUIRED_RESOURCE_ATTRIBUTES: readonly ["service.name", "service.version", "deployment.environment.name"];
24
- /**
25
- * Attributes that should NEVER be set at span level (use resource instead).
26
- * Used by linting/validation to catch misuse.
27
- */
28
- export declare const RESOURCE_ONLY_ATTRIBUTES: Set<string>;
29
- /**
30
- * Superblocks namespace for custom resource attributes.
31
- */
32
- export declare const SUPERBLOCKS_NAMESPACE = "superblocks";
33
- /**
34
- * Build standardized resource for a Superblocks service.
35
- *
36
- * IMPORTANT: These are RESOURCE attributes (set once at init), not span attributes.
37
- * They are inherited by ALL telemetry from this SDK instance.
38
- *
39
- * Semantic conventions used:
40
- * - service.name (required)
41
- * - service.version (required)
42
- * - deployment.environment.name (required)
43
- * - superblocks.* (custom namespace)
44
- *
45
- * @param config - Service configuration
46
- * @returns Resource with standardized attributes
47
- */
48
- export declare function buildResource(config: BaseTelemetryConfig): Resource;
49
- /**
50
- * Derive a resource identical to `base` but with a different `service.name`.
51
- *
52
- * Used to emit a subset of a service's spans under a secondary service identity
53
- * (e.g. server LLM-Obs spans under `superblocks-ai-code-gen`) while every other
54
- * resource attribute — version, environment, superblocks.* — is inherited.
55
- * Datadog maps the OTel resource `service.name` to LLM-Obs `ml_app`, so this is
56
- * the only sanctioned way to change `ml_app` for those spans. See APPS-5082.
57
- *
58
- * @param base - Resource to derive from (not mutated)
59
- * @param serviceName - Service name to apply
60
- * @returns A new resource with the overridden service.name
61
- */
62
- export declare function withServiceName(base: Resource, serviceName: string): Resource;
63
- /**
64
- * Validate that a resource has all required attributes.
65
- *
66
- * @param resource - Resource to validate
67
- * @throws Error if missing required attributes
68
- */
69
- export declare function validateResource(resource: Resource): void;
70
- /**
71
- * Assert that span attributes don't include resource-only attributes.
72
- * Throws an error if resource-only attributes are present.
73
- * For use in linting/CI or development mode.
74
- *
75
- * @param spanAttrs - Span attributes to validate
76
- * @throws Error if resource-only attributes are present
77
- */
78
- export declare function assertNoResourceAttributes(spanAttrs: Record<string, unknown>): void;
79
- //# sourceMappingURL=resource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/common/resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;AAKnD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,6EAI/B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,aAKnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,QAAQ,CAiBnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAS7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAOzD;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CASN"}
@@ -1,121 +0,0 @@
1
- /**
2
- * Resource Builder
3
- *
4
- * Standardized resource attributes for all Superblocks services.
5
- *
6
- * CRITICAL: Resource Attributes vs Span Attributes
7
- *
8
- * `service.name`, `service.version`, and `deployment.environment.name` MUST be set as
9
- * **resource attributes** (once, at SDK initialization), NOT as span attributes (per-span).
10
- *
11
- * - Resource attributes: Set once, inherited by all spans/metrics/logs
12
- * - Span attributes: Set per-span, for request-specific data
13
- */
14
- import { resourceFromAttributes, defaultResource, } from "@opentelemetry/resources";
15
- import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION, } from "@opentelemetry/semantic-conventions";
16
- /** Re-export for use in log/trace attribute keys (e.g. server logger base). */
17
- export { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION };
18
- /** OTEL semantic convention for deployment environment. */
19
- const ATTR_DEPLOYMENT_ENVIRONMENT_NAME = "deployment.environment.name";
20
- /**
21
- * Required RESOURCE attributes for correlation.
22
- * These must NOT be added as span attributes (they're inherited from resource).
23
- */
24
- export const REQUIRED_RESOURCE_ATTRIBUTES = [
25
- "service.name",
26
- "service.version",
27
- "deployment.environment.name",
28
- ];
29
- /**
30
- * Attributes that should NEVER be set at span level (use resource instead).
31
- * Used by linting/validation to catch misuse.
32
- */
33
- export const RESOURCE_ONLY_ATTRIBUTES = new Set([
34
- "service.name",
35
- "service.version",
36
- "deployment.environment.name",
37
- "superblocks.environment",
38
- ]);
39
- /**
40
- * Superblocks namespace for custom resource attributes.
41
- */
42
- export const SUPERBLOCKS_NAMESPACE = "superblocks";
43
- /**
44
- * Build standardized resource for a Superblocks service.
45
- *
46
- * IMPORTANT: These are RESOURCE attributes (set once at init), not span attributes.
47
- * They are inherited by ALL telemetry from this SDK instance.
48
- *
49
- * Semantic conventions used:
50
- * - service.name (required)
51
- * - service.version (required)
52
- * - deployment.environment.name (required)
53
- * - superblocks.* (custom namespace)
54
- *
55
- * @param config - Service configuration
56
- * @returns Resource with standardized attributes
57
- */
58
- export function buildResource(config) {
59
- const baseAttributes = {
60
- // OTEL semantic conventions — RESOURCE level, not span level
61
- [ATTR_SERVICE_NAME]: config.serviceName,
62
- [ATTR_SERVICE_VERSION]: config.serviceVersion,
63
- [ATTR_DEPLOYMENT_ENVIRONMENT_NAME]: config.environment,
64
- // Superblocks namespace for compatibility
65
- [`${SUPERBLOCKS_NAMESPACE}.environment`]: config.environment,
66
- };
67
- return defaultResource().merge(resourceFromAttributes({
68
- ...baseAttributes,
69
- ...config.resourceAttributes,
70
- }));
71
- }
72
- /**
73
- * Derive a resource identical to `base` but with a different `service.name`.
74
- *
75
- * Used to emit a subset of a service's spans under a secondary service identity
76
- * (e.g. server LLM-Obs spans under `superblocks-ai-code-gen`) while every other
77
- * resource attribute — version, environment, superblocks.* — is inherited.
78
- * Datadog maps the OTel resource `service.name` to LLM-Obs `ml_app`, so this is
79
- * the only sanctioned way to change `ml_app` for those spans. See APPS-5082.
80
- *
81
- * @param base - Resource to derive from (not mutated)
82
- * @param serviceName - Service name to apply
83
- * @returns A new resource with the overridden service.name
84
- */
85
- export function withServiceName(base, serviceName) {
86
- if (!serviceName?.trim()) {
87
- throw new Error("[Telemetry] withServiceName: serviceName must be a non-empty string");
88
- }
89
- return base.merge(resourceFromAttributes({ [ATTR_SERVICE_NAME]: serviceName }));
90
- }
91
- /**
92
- * Validate that a resource has all required attributes.
93
- *
94
- * @param resource - Resource to validate
95
- * @throws Error if missing required attributes
96
- */
97
- export function validateResource(resource) {
98
- const attributes = resource.attributes;
99
- for (const attr of REQUIRED_RESOURCE_ATTRIBUTES) {
100
- if (!attributes[attr]) {
101
- throw new Error(`Missing required resource attribute: ${attr}`);
102
- }
103
- }
104
- }
105
- /**
106
- * Assert that span attributes don't include resource-only attributes.
107
- * Throws an error if resource-only attributes are present.
108
- * For use in linting/CI or development mode.
109
- *
110
- * @param spanAttrs - Span attributes to validate
111
- * @throws Error if resource-only attributes are present
112
- */
113
- export function assertNoResourceAttributes(spanAttrs) {
114
- for (const key of Object.keys(spanAttrs)) {
115
- if (RESOURCE_ONLY_ATTRIBUTES.has(key)) {
116
- throw new Error(`Attribute '${key}' should be a RESOURCE attribute, not a span attribute. ` +
117
- `Set it in ResourceConfig at SDK init, not per-span.`);
118
- }
119
- }
120
- }
121
- //# sourceMappingURL=resource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/common/resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,sBAAsB,EACtB,eAAe,GAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAI7C,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;AAEnD,2DAA2D;AAC3D,MAAM,gCAAgC,GAAG,6BAA6B,CAAC;AAEvE;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,cAAc;IACd,iBAAiB;IACjB,6BAA6B;CACrB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IAC9C,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,MAAM,cAAc,GAAe;QACjC,6DAA6D;QAC7D,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,WAAW;QACvC,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,cAAc;QAC7C,CAAC,gCAAgC,CAAC,EAAE,MAAM,CAAC,WAAW;QAEtD,0CAA0C;QAC1C,CAAC,GAAG,qBAAqB,cAAc,CAAC,EAAE,MAAM,CAAC,WAAW;KAC7D,CAAC;IAEF,OAAO,eAAe,EAAE,CAAC,KAAK,CAC5B,sBAAsB,CAAC;QACrB,GAAG,cAAc;QACjB,GAAG,MAAM,CAAC,kBAAkB;KAC7B,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc,EAAE,WAAmB;IACjE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CACf,sBAAsB,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAkB;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,4BAA4B,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAkC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,IAAI,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,cAAc,GAAG,0DAA0D;gBACzE,qDAAqD,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}