atabey 0.0.13 → 0.0.14

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 (271) hide show
  1. package/ATABEY.md +1 -1
  2. package/README.md +252 -52
  3. package/dist/framework-mcp/src/index.js +914 -62
  4. package/dist/framework-mcp/src/index.js.map +1 -1
  5. package/dist/framework-mcp/src/tools/compliance/mask_pii.d.ts +17 -0
  6. package/dist/framework-mcp/src/tools/compliance/mask_pii.js +56 -0
  7. package/dist/framework-mcp/src/tools/compliance/mask_pii.js.map +1 -0
  8. package/dist/framework-mcp/src/tools/definitions.js +10 -9
  9. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  10. package/dist/framework-mcp/src/tools/framework/run_tests.js +25 -0
  11. package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -1
  12. package/dist/framework-mcp/src/tools/index.js +7 -8
  13. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  14. package/dist/framework-mcp/src/tools/messaging/approve_operation.d.ts +22 -0
  15. package/dist/framework-mcp/src/tools/messaging/approve_operation.js +81 -0
  16. package/dist/framework-mcp/src/tools/messaging/approve_operation.js.map +1 -0
  17. package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +15 -0
  18. package/dist/framework-mcp/src/tools/messaging/ask_human.js +89 -20
  19. package/dist/framework-mcp/src/tools/messaging/ask_human.js.map +1 -1
  20. package/dist/framework-mcp/src/tools/observability/check_ports.js +3 -1
  21. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  22. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +13 -64
  23. package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js.map +1 -1
  24. package/dist/framework-mcp/src/tools/schemas.d.ts +48 -53
  25. package/dist/framework-mcp/src/tools/schemas.js +18 -22
  26. package/dist/framework-mcp/src/tools/schemas.js.map +1 -1
  27. package/dist/framework-mcp/src/tools/shell/run_command.js +10 -0
  28. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
  29. package/dist/framework-mcp/src/tools/types.d.ts +11 -105
  30. package/dist/framework-mcp/src/tools/types.js +1 -0
  31. package/dist/framework-mcp/src/tools/types.js.map +1 -1
  32. package/dist/framework-mcp/src/utils/auth.d.ts +36 -0
  33. package/dist/framework-mcp/src/utils/auth.js +79 -0
  34. package/dist/framework-mcp/src/utils/auth.js.map +1 -0
  35. package/dist/framework-mcp/src/utils/auto-rollback.d.ts +71 -0
  36. package/dist/framework-mcp/src/utils/auto-rollback.js +266 -0
  37. package/dist/framework-mcp/src/utils/auto-rollback.js.map +1 -0
  38. package/dist/framework-mcp/src/utils/compliance.js +12 -4
  39. package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
  40. package/dist/framework-mcp/src/utils/context-optimizer.d.ts +69 -0
  41. package/dist/framework-mcp/src/utils/context-optimizer.js +157 -0
  42. package/dist/framework-mcp/src/utils/context-optimizer.js.map +1 -0
  43. package/dist/framework-mcp/src/utils/discipline.d.ts +68 -0
  44. package/dist/framework-mcp/src/utils/discipline.js +218 -0
  45. package/dist/framework-mcp/src/utils/discipline.js.map +1 -0
  46. package/dist/framework-mcp/src/utils/finops.d.ts +143 -0
  47. package/dist/framework-mcp/src/utils/finops.js +326 -0
  48. package/dist/framework-mcp/src/utils/finops.js.map +1 -0
  49. package/dist/framework-mcp/src/utils/human-in-loop.d.ts +95 -0
  50. package/dist/framework-mcp/src/utils/human-in-loop.js +216 -0
  51. package/dist/framework-mcp/src/utils/human-in-loop.js.map +1 -0
  52. package/dist/framework-mcp/src/utils/license-scanner.d.ts +71 -0
  53. package/dist/framework-mcp/src/utils/license-scanner.js +284 -0
  54. package/dist/framework-mcp/src/utils/license-scanner.js.map +1 -0
  55. package/dist/framework-mcp/src/utils/loop-detector.d.ts +105 -0
  56. package/dist/framework-mcp/src/utils/loop-detector.js +362 -0
  57. package/dist/framework-mcp/src/utils/loop-detector.js.map +1 -0
  58. package/dist/framework-mcp/src/utils/quality.d.ts +19 -0
  59. package/dist/framework-mcp/src/utils/quality.js +124 -0
  60. package/dist/framework-mcp/src/utils/quality.js.map +1 -0
  61. package/dist/framework-mcp/src/utils/rules-engine.d.ts +78 -0
  62. package/dist/framework-mcp/src/utils/rules-engine.js +232 -0
  63. package/dist/framework-mcp/src/utils/rules-engine.js.map +1 -0
  64. package/dist/framework-mcp/src/utils/silent-router.d.ts +47 -0
  65. package/dist/framework-mcp/src/utils/silent-router.js +129 -0
  66. package/dist/framework-mcp/src/utils/silent-router.js.map +1 -0
  67. package/dist/framework-mcp/src/utils/storage.d.ts +1 -0
  68. package/dist/framework-mcp/src/utils/storage.js +2 -2
  69. package/dist/framework-mcp/src/utils/storage.js.map +1 -1
  70. package/dist/framework-mcp/src/utils/telemetry-streamer.d.ts +133 -0
  71. package/dist/framework-mcp/src/utils/telemetry-streamer.js +397 -0
  72. package/dist/framework-mcp/src/utils/telemetry-streamer.js.map +1 -0
  73. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +2 -2
  74. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
  75. package/dist/framework-mcp/tests/tools/framework/run_tests.test.d.ts +1 -0
  76. package/dist/framework-mcp/tests/tools/framework/run_tests.test.js +49 -0
  77. package/dist/framework-mcp/tests/tools/framework/run_tests.test.js.map +1 -0
  78. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +14 -5
  79. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  80. package/dist/framework-mcp/tests/tools/observability/check_ports.test.d.ts +1 -0
  81. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js +30 -0
  82. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js.map +1 -0
  83. package/dist/framework-mcp/tests/tools/shell/run_command.test.js +7 -0
  84. package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -1
  85. package/dist/framework-mcp/tests/utils/auto-rollback.test.d.ts +7 -0
  86. package/dist/framework-mcp/tests/utils/auto-rollback.test.js +178 -0
  87. package/dist/framework-mcp/tests/utils/auto-rollback.test.js.map +1 -0
  88. package/dist/framework-mcp/tests/utils/context-optimizer.test.d.ts +1 -0
  89. package/dist/framework-mcp/tests/utils/context-optimizer.test.js +62 -0
  90. package/dist/framework-mcp/tests/utils/context-optimizer.test.js.map +1 -0
  91. package/dist/framework-mcp/tests/utils/finops.test.d.ts +7 -0
  92. package/dist/framework-mcp/tests/utils/finops.test.js +157 -0
  93. package/dist/framework-mcp/tests/utils/finops.test.js.map +1 -0
  94. package/dist/framework-mcp/tests/utils/human-in-loop.test.d.ts +1 -0
  95. package/dist/framework-mcp/tests/utils/human-in-loop.test.js +59 -0
  96. package/dist/framework-mcp/tests/utils/human-in-loop.test.js.map +1 -0
  97. package/dist/framework-mcp/tests/utils/license-scanner.test.d.ts +7 -0
  98. package/dist/framework-mcp/tests/utils/license-scanner.test.js +131 -0
  99. package/dist/framework-mcp/tests/utils/license-scanner.test.js.map +1 -0
  100. package/dist/framework-mcp/tests/utils/loop-detector.test.d.ts +7 -0
  101. package/dist/framework-mcp/tests/utils/loop-detector.test.js +204 -0
  102. package/dist/framework-mcp/tests/utils/loop-detector.test.js.map +1 -0
  103. package/dist/framework-mcp/tests/utils/rules-engine.test.d.ts +1 -0
  104. package/dist/framework-mcp/tests/utils/rules-engine.test.js +106 -0
  105. package/dist/framework-mcp/tests/utils/rules-engine.test.js.map +1 -0
  106. package/dist/framework-mcp/tests/utils/telemetry-streamer.test.d.ts +7 -0
  107. package/dist/framework-mcp/tests/utils/telemetry-streamer.test.js +201 -0
  108. package/dist/framework-mcp/tests/utils/telemetry-streamer.test.js.map +1 -0
  109. package/dist/src/cli/commands/check.js +16 -1
  110. package/dist/src/cli/commands/check.js.map +1 -1
  111. package/dist/src/cli/commands/dashboard.js +188 -164
  112. package/dist/src/cli/commands/dashboard.js.map +1 -1
  113. package/dist/src/cli/commands/gateway.js +2 -2
  114. package/dist/src/cli/commands/gateway.js.map +1 -1
  115. package/dist/src/cli/commands/init/scaffold-core.d.ts +2 -0
  116. package/dist/src/cli/commands/init/scaffold-core.js +16 -1
  117. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  118. package/dist/src/cli/commands/init/scaffold-ops.js +2 -2
  119. package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -1
  120. package/dist/src/cli/commands/init/scaffold-standards.js +13 -1
  121. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  122. package/dist/src/cli/commands/init.d.ts +4 -0
  123. package/dist/src/cli/commands/init.js +80 -24
  124. package/dist/src/cli/commands/init.js.map +1 -1
  125. package/dist/src/cli/commands/quickstart.d.ts +1 -1
  126. package/dist/src/cli/commands/quickstart.js +12 -24
  127. package/dist/src/cli/commands/quickstart.js.map +1 -1
  128. package/dist/src/cli/index.js +24 -23
  129. package/dist/src/cli/index.js.map +1 -1
  130. package/dist/src/cli/shims.js +7 -7
  131. package/dist/src/cli/utils/pkg.js +2 -3
  132. package/dist/src/cli/utils/pkg.js.map +1 -1
  133. package/dist/src/cli/utils/quality.d.ts +10 -0
  134. package/dist/src/cli/utils/quality.js +10 -0
  135. package/dist/src/cli/utils/quality.js.map +1 -0
  136. package/dist/src/modules/agents/definitions.js +45 -40
  137. package/dist/src/modules/agents/definitions.js.map +1 -1
  138. package/dist/src/modules/agents/registry/manager.js +6 -1
  139. package/dist/src/modules/agents/registry/manager.js.map +1 -1
  140. package/dist/src/modules/engines/agent-executor.d.ts +6 -10
  141. package/dist/src/modules/engines/agent-executor.js +53 -21
  142. package/dist/src/modules/engines/agent-executor.js.map +1 -1
  143. package/dist/src/modules/engines/agent-loop.d.ts +34 -0
  144. package/dist/src/modules/engines/agent-loop.js +102 -0
  145. package/dist/src/modules/engines/agent-loop.js.map +1 -0
  146. package/dist/src/modules/engines/evaluation-engine.js +2 -2
  147. package/dist/src/modules/engines/evaluation-engine.js.map +1 -1
  148. package/dist/src/modules/engines/quality-gate.d.ts +13 -5
  149. package/dist/src/modules/engines/quality-gate.js +39 -31
  150. package/dist/src/modules/engines/quality-gate.js.map +1 -1
  151. package/dist/src/modules/engines/routing-engine.d.ts +5 -3
  152. package/dist/src/modules/engines/routing-engine.js +16 -9
  153. package/dist/src/modules/engines/routing-engine.js.map +1 -1
  154. package/dist/src/modules/gateway/cost-tracker.d.ts +5 -0
  155. package/dist/src/modules/gateway/cost-tracker.js +71 -0
  156. package/dist/src/modules/gateway/cost-tracker.js.map +1 -1
  157. package/dist/src/modules/gateway/gateway.d.ts +4 -0
  158. package/dist/src/modules/gateway/gateway.js +8 -0
  159. package/dist/src/modules/gateway/gateway.js.map +1 -1
  160. package/dist/src/shared/audit.js +3 -2
  161. package/dist/src/shared/audit.js.map +1 -1
  162. package/dist/src/shared/pii.d.ts +41 -9
  163. package/dist/src/shared/pii.js +122 -31
  164. package/dist/src/shared/pii.js.map +1 -1
  165. package/dist/src/shared/storage.d.ts +19 -0
  166. package/dist/src/shared/storage.js +46 -6
  167. package/dist/src/shared/storage.js.map +1 -1
  168. package/dist/tests/embedding.test.d.ts +1 -0
  169. package/dist/tests/embedding.test.js +82 -0
  170. package/dist/tests/embedding.test.js.map +1 -0
  171. package/dist/tests/engines/evaluation-engine.test.d.ts +1 -0
  172. package/dist/tests/engines/evaluation-engine.test.js +71 -0
  173. package/dist/tests/engines/evaluation-engine.test.js.map +1 -0
  174. package/dist/tests/engines/planning-engine.test.d.ts +1 -0
  175. package/dist/tests/engines/planning-engine.test.js +100 -0
  176. package/dist/tests/engines/planning-engine.test.js.map +1 -0
  177. package/dist/tests/engines/quality-gate.test.d.ts +1 -0
  178. package/dist/tests/engines/quality-gate.test.js +59 -0
  179. package/dist/tests/engines/quality-gate.test.js.map +1 -0
  180. package/dist/tests/engines/risk-engine.test.d.ts +1 -0
  181. package/dist/tests/engines/risk-engine.test.js +80 -0
  182. package/dist/tests/engines/risk-engine.test.js.map +1 -0
  183. package/dist/tests/engines/routing-engine.test.d.ts +1 -0
  184. package/dist/tests/engines/routing-engine.test.js +78 -0
  185. package/dist/tests/engines/routing-engine.test.js.map +1 -0
  186. package/dist/tests/integration/hermes_locking.test.js +1 -0
  187. package/dist/tests/integration/hermes_locking.test.js.map +1 -1
  188. package/dist/tests/modules/gateway/cost-tracker.test.js +20 -1
  189. package/dist/tests/modules/gateway/cost-tracker.test.js.map +1 -1
  190. package/dist/tests/shared/lock.test.d.ts +1 -0
  191. package/dist/tests/shared/lock.test.js +95 -0
  192. package/dist/tests/shared/lock.test.js.map +1 -0
  193. package/dist/tests/shared/pii.test.d.ts +1 -0
  194. package/dist/tests/shared/pii.test.js +183 -0
  195. package/dist/tests/shared/pii.test.js.map +1 -0
  196. package/framework-mcp/README.md +307 -35
  197. package/framework-mcp/dist/dashboard/assets/index-B2mYld0c.js +1221 -0
  198. package/framework-mcp/dist/dashboard/index.html +1 -1
  199. package/framework-mcp/dist/framework-mcp/src/index.js +914 -62
  200. package/framework-mcp/dist/framework-mcp/src/tools/compliance/mask_pii.js +55 -0
  201. package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +10 -9
  202. package/framework-mcp/dist/framework-mcp/src/tools/framework/run_tests.js +25 -0
  203. package/framework-mcp/dist/framework-mcp/src/tools/index.js +7 -8
  204. package/framework-mcp/dist/framework-mcp/src/tools/messaging/approve_operation.js +80 -0
  205. package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +89 -20
  206. package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +3 -1
  207. package/framework-mcp/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +13 -64
  208. package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +18 -22
  209. package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +10 -0
  210. package/framework-mcp/dist/framework-mcp/src/tools/types.js +1 -0
  211. package/framework-mcp/dist/framework-mcp/src/utils/auth.js +78 -0
  212. package/framework-mcp/dist/framework-mcp/src/utils/auto-rollback.js +265 -0
  213. package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +12 -4
  214. package/framework-mcp/dist/framework-mcp/src/utils/context-optimizer.js +156 -0
  215. package/framework-mcp/dist/framework-mcp/src/utils/discipline.js +217 -0
  216. package/framework-mcp/dist/framework-mcp/src/utils/finops.js +325 -0
  217. package/framework-mcp/dist/framework-mcp/src/utils/human-in-loop.js +215 -0
  218. package/framework-mcp/dist/framework-mcp/src/utils/license-scanner.js +283 -0
  219. package/framework-mcp/dist/framework-mcp/src/utils/loop-detector.js +361 -0
  220. package/framework-mcp/dist/framework-mcp/src/utils/quality.js +123 -0
  221. package/framework-mcp/dist/framework-mcp/src/utils/rules-engine.js +231 -0
  222. package/framework-mcp/dist/framework-mcp/src/utils/silent-router.js +128 -0
  223. package/framework-mcp/dist/framework-mcp/src/utils/storage.js +2 -2
  224. package/framework-mcp/dist/framework-mcp/src/utils/telemetry-streamer.js +396 -0
  225. package/framework-mcp/dist/src/cli/platforms/core.js +72 -0
  226. package/framework-mcp/dist/src/cli/platforms/index.js +5 -0
  227. package/framework-mcp/dist/src/cli/platforms/paths.js +101 -0
  228. package/framework-mcp/dist/src/cli/platforms/scaffold.js +72 -0
  229. package/framework-mcp/dist/src/cli/platforms/utils.js +75 -0
  230. package/framework-mcp/dist/src/cli/utils/claude.js +57 -0
  231. package/framework-mcp/dist/src/cli/utils/compliance.js +12 -0
  232. package/framework-mcp/dist/src/cli/utils/fs.js +138 -0
  233. package/framework-mcp/dist/src/cli/utils/pkg.js +282 -0
  234. package/framework-mcp/dist/src/cli/utils/quality.js +9 -0
  235. package/framework-mcp/dist/src/modules/agents/definitions.js +563 -0
  236. package/framework-mcp/dist/src/modules/agents/registry/analyst.js +39 -0
  237. package/framework-mcp/dist/src/modules/agents/registry/architect.js +42 -0
  238. package/framework-mcp/dist/src/modules/agents/registry/backend.js +50 -0
  239. package/framework-mcp/dist/src/modules/agents/registry/database.js +45 -0
  240. package/framework-mcp/dist/src/modules/agents/registry/devops.js +45 -0
  241. package/framework-mcp/dist/src/modules/agents/registry/explorer.js +37 -0
  242. package/framework-mcp/dist/src/modules/agents/registry/frontend.js +52 -0
  243. package/framework-mcp/dist/src/modules/agents/registry/git.js +36 -0
  244. package/framework-mcp/dist/src/modules/agents/registry/manager.js +64 -0
  245. package/framework-mcp/dist/src/modules/agents/registry/mobile.js +41 -0
  246. package/framework-mcp/dist/src/modules/agents/registry/native.js +41 -0
  247. package/framework-mcp/dist/src/modules/agents/registry/quality.js +43 -0
  248. package/framework-mcp/dist/src/modules/agents/registry/security.js +42 -0
  249. package/framework-mcp/dist/src/modules/agents/types.js +1 -0
  250. package/framework-mcp/dist/src/modules/engines/quality-gate.js +92 -0
  251. package/framework-mcp/dist/src/modules/engines/risk-engine.js +105 -0
  252. package/framework-mcp/dist/src/modules/engines/routing-engine.js +408 -0
  253. package/framework-mcp/dist/src/modules/engines/types.js +1 -0
  254. package/framework-mcp/dist/src/modules/providers/definitions.js +140 -0
  255. package/framework-mcp/dist/src/modules/providers/registry.js +18 -0
  256. package/framework-mcp/dist/src/modules/providers/shared.js +104 -0
  257. package/framework-mcp/dist/src/modules/providers/types.js +1 -0
  258. package/framework-mcp/dist/src/modules/skills/adapter-skills.js +449 -0
  259. package/framework-mcp/dist/src/modules/skills/definitions.js +70 -0
  260. package/framework-mcp/dist/src/shared/audit.js +220 -0
  261. package/framework-mcp/dist/src/shared/errors.js +68 -0
  262. package/framework-mcp/dist/src/shared/lock.js +159 -0
  263. package/framework-mcp/dist/src/shared/pii.js +122 -31
  264. package/framework-mcp/dist/src/shared/retention.js +170 -0
  265. package/framework-mcp/dist/src/shared/storage.js +46 -6
  266. package/framework-mcp/dist/src/shared/string.js +29 -0
  267. package/framework-mcp/package.json +8 -2
  268. package/mcp.json +11 -6
  269. package/package.json +13 -6
  270. package/templates/full/ATABEY_FULL.md +1 -1
  271. package/framework-mcp/dist/dashboard/assets/index-BAPGLiWE.js +0 -267
@@ -0,0 +1,201 @@
1
+ /**
2
+ * ─── TELEMETRY STREAMER TEST ──────────────────────────────────────
3
+ *
4
+ * Tests the asynchronous telemetry streaming to enterprise server.
5
+ * Covers: enqueue, batching, PII masking, rate limiting, fallback.
6
+ */
7
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
8
+ // Mock fetch globally
9
+ const mockFetch = vi.fn();
10
+ globalThis.fetch = mockFetch;
11
+ // Mock WebSocket
12
+ globalThis.WebSocket = vi.fn();
13
+ // We need to test the module by resetting state between tests
14
+ describe("TelemetryStreamer", () => {
15
+ let TelemetryStreamer;
16
+ let streamer;
17
+ beforeEach(async () => {
18
+ vi.resetAllMocks();
19
+ // Clear module state
20
+ vi.resetModules();
21
+ // Set test env vars
22
+ process.env.ATABEY_TELEMETRY_ENABLED = "true";
23
+ process.env.ATABEY_SERVER_URL = "https://test-server.company.com";
24
+ process.env.ATABEY_SERVER_TOKEN = "test-token-123";
25
+ process.env.ATABEY_TELEMETRY_BATCH_SIZE = "5";
26
+ process.env.ATABEY_TELEMETRY_FLUSH_INTERVAL = "10000";
27
+ process.env.ATABEY_TELEMETRY_RATE_LIMIT = "200";
28
+ const mod = await import("../../src/utils/telemetry-streamer.js");
29
+ TelemetryStreamer = mod.TelemetryStreamer;
30
+ streamer = TelemetryStreamer.getInstance();
31
+ });
32
+ afterEach(() => {
33
+ streamer.stop();
34
+ vi.restoreAllMocks();
35
+ });
36
+ describe("Singleton & Initialization", () => {
37
+ it("should return the same instance", () => {
38
+ const instance1 = TelemetryStreamer.getInstance();
39
+ const instance2 = TelemetryStreamer.getInstance();
40
+ expect(instance1).toBe(instance2);
41
+ });
42
+ it("should have correct initial disabled state when no URL set", async () => {
43
+ delete process.env.ATABEY_SERVER_URL;
44
+ vi.resetModules();
45
+ const mod = await import("../../src/utils/telemetry-streamer.js");
46
+ const localStreamer = mod.TelemetryStreamer.getInstance();
47
+ const status = localStreamer.getStatus();
48
+ expect(status.enabled).toBe(true);
49
+ expect(status.serverUrl).toBe("");
50
+ expect(status.queueSize).toBe(0);
51
+ });
52
+ });
53
+ describe("Enqueue & Batching", () => {
54
+ it("should enqueue events and update queue size", () => {
55
+ streamer.enqueue({
56
+ type: "tool_call",
57
+ timestamp: new Date().toISOString(),
58
+ agent: "test-agent",
59
+ payload: { tool: "read_file", estimatedTokens: 100 },
60
+ });
61
+ const status = streamer.getStatus();
62
+ expect(status.queueSize).toBeGreaterThanOrEqual(1);
63
+ });
64
+ it("should automatically flush when batch size reached", () => {
65
+ // Mock sendBatch to return success
66
+ streamer.sendBatch = vi.fn().mockResolvedValue(true);
67
+ // Enqueue batch_size events
68
+ for (let i = 0; i < 5; i++) {
69
+ streamer.enqueue({
70
+ type: "tool_call",
71
+ timestamp: new Date().toISOString(),
72
+ agent: "test-agent",
73
+ payload: { tool: "read_file", tokens: i * 100 },
74
+ });
75
+ }
76
+ // Should have triggered flush
77
+ expect(streamer.sendBatch).toHaveBeenCalled();
78
+ });
79
+ it("should rate limit events per minute", async () => {
80
+ process.env.ATABEY_TELEMETRY_RATE_LIMIT = "2";
81
+ vi.resetModules();
82
+ const mod = await import("../../src/utils/telemetry-streamer.js");
83
+ const localStreamer = mod.TelemetryStreamer.getInstance();
84
+ localStreamer.enqueue({
85
+ type: "tool_call",
86
+ timestamp: new Date().toISOString(),
87
+ agent: "test-agent",
88
+ payload: { tool: "read_file" },
89
+ });
90
+ localStreamer.enqueue({
91
+ type: "tool_call",
92
+ timestamp: new Date().toISOString(),
93
+ agent: "test-agent",
94
+ payload: { tool: "read_file" },
95
+ });
96
+ // Third event should be dropped due to rate limit
97
+ localStreamer.enqueue({
98
+ type: "tool_call",
99
+ timestamp: new Date().toISOString(),
100
+ agent: "test-agent",
101
+ payload: { tool: "read_file" },
102
+ });
103
+ // Queue should have at most 2 events since 3rd was dropped
104
+ expect(localStreamer.getStatus().queueSize).toBeLessThanOrEqual(2);
105
+ });
106
+ });
107
+ describe("PII Masking Before Transmission", () => {
108
+ it("should mask PII in payload before queueing", () => {
109
+ streamer.enqueue({
110
+ type: "tool_call",
111
+ timestamp: new Date().toISOString(),
112
+ agent: "test-agent",
113
+ payload: {
114
+ tool: "read_file",
115
+ email: "user@example.com",
116
+ apiKey: "sk-12345678901234567890",
117
+ },
118
+ });
119
+ // Access internal queue to verify masking
120
+ const queue = streamer.queue;
121
+ expect(queue.length).toBeGreaterThan(0);
122
+ const event = queue[0].event;
123
+ expect(event.payload.email).not.toBe("user@example.com");
124
+ expect(event.payload.apiKey).not.toBe("sk-12345678901234567890");
125
+ });
126
+ it("should double-mask PII in sendBatch", async () => {
127
+ // Import maskObject to test double-masking in sendBatch flow
128
+ const { maskObject } = await import("../../../src/shared/pii.js");
129
+ const events = [
130
+ {
131
+ id: "test-1",
132
+ type: "tool_call",
133
+ timestamp: new Date().toISOString(),
134
+ agent: "test-agent",
135
+ machineId: "machine-test",
136
+ projectHash: "proj-test",
137
+ payload: {
138
+ tcKimlik: "12345678901",
139
+ email: "user@example.com",
140
+ },
141
+ },
142
+ ];
143
+ // Apply the same masking that sendBatch does
144
+ const sanitizedEvents = events.map(e => ({
145
+ ...e,
146
+ payload: maskObject(e.payload),
147
+ }));
148
+ // Verify that TC Kimlik No is masked (field name is in SENSITIVE_FIELDS)
149
+ expect(sanitizedEvents[0].payload.tcKimlik).toBe("***-REDACTED-***");
150
+ // Verify that email value is masked (field name "email" is in SENSITIVE_FIELDS)
151
+ expect(sanitizedEvents[0].payload.email).toBe("***-REDACTED-***");
152
+ });
153
+ });
154
+ describe("Convenience Methods", () => {
155
+ it("logToolCall should enqueue with correct type", () => {
156
+ const spy = vi.spyOn(streamer, "enqueue");
157
+ streamer.logToolCall("test-agent", "read_file", 100, "trace-1", 250);
158
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({
159
+ type: "tool_call",
160
+ agent: "test-agent",
161
+ }));
162
+ });
163
+ it("logGovernanceViolation should mask error message", () => {
164
+ const spy = vi.spyOn(streamer, "enqueue");
165
+ streamer.logGovernanceViolation("test-agent", "write_file", "Email user@test.com found");
166
+ expect(spy).toHaveBeenCalled();
167
+ const callArg = spy.mock.calls[0][0];
168
+ expect(callArg.payload.error).not.toContain("user@test.com");
169
+ });
170
+ it("logError should enqueue with correct type", () => {
171
+ const spy = vi.spyOn(streamer, "enqueue");
172
+ streamer.logError("test-agent", "write_file", "Something broke");
173
+ expect(spy).toHaveBeenCalledWith(expect.objectContaining({
174
+ type: "error",
175
+ agent: "test-agent",
176
+ }));
177
+ });
178
+ });
179
+ describe("Retry & Fallback", () => {
180
+ it("should retry failed batches", async () => {
181
+ // First attempt fails, second succeeds
182
+ streamer.sendBatch = vi.fn()
183
+ .mockRejectedValueOnce(new Error("Network error"))
184
+ .mockResolvedValueOnce(true);
185
+ // Enqueue enough events to trigger auto-flush (batch size = 5)
186
+ for (let i = 0; i < 5; i++) {
187
+ streamer.enqueue({
188
+ type: "tool_call",
189
+ timestamp: new Date().toISOString(),
190
+ agent: "test-agent",
191
+ payload: { tool: "read_file", index: i },
192
+ });
193
+ }
194
+ // Wait for flush attempt
195
+ await new Promise(r => setTimeout(r, 100));
196
+ // Should have been called at least once
197
+ expect(streamer.sendBatch).toHaveBeenCalled();
198
+ });
199
+ });
200
+ });
201
+ //# sourceMappingURL=telemetry-streamer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-streamer.test.js","sourceRoot":"","sources":["../../../../framework-mcp/tests/utils/telemetry-streamer.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,sBAAsB;AACtB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;AAE7B,iBAAiB;AACjB,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,EAAS,CAAC;AAEtC,8DAA8D;AAC9D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,IAAI,iBAAsB,CAAC;IAC3B,IAAI,QAAa,CAAC;IAElB,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,qBAAqB;QACrB,EAAE,CAAC,YAAY,EAAE,CAAC;QAElB,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,MAAM,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,iCAAiC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,GAAG,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,OAAO,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,KAAK,CAAC;QAEhD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;QAClE,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;QAC1C,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,EAAE,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACrC,EAAE,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,QAAQ,CAAC,OAAO,CAAC;gBACb,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE;aACvD,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,mCAAmC;YACnC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAErD,4BAA4B;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC;oBACb,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE;iBAClD,CAAC,CAAC;YACP,CAAC;YAED,8BAA8B;YAC9B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACjD,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,GAAG,CAAC;YAC9C,EAAE,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAE1D,aAAa,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACjC,CAAC,CAAC;YAEH,aAAa,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACjC,CAAC,CAAC;YAEH,kDAAkD;YAClD,aAAa,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACjC,CAAC,CAAC;YAEH,2DAA2D;YAC3D,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,QAAQ,CAAC,OAAO,CAAC;gBACb,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE;oBACL,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,yBAAyB;iBACpC;aACJ,CAAC,CAAC;YAEH,0CAA0C;YAC1C,MAAM,KAAK,GAAI,QAAgB,CAAC,KAAK,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACjD,6DAA6D;YAC7D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG;gBACX;oBACI,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,WAAoB;oBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE,cAAc;oBACzB,WAAW,EAAE,WAAW;oBACxB,OAAO,EAAE;wBACL,QAAQ,EAAE,aAAa;wBACvB,KAAK,EAAE,kBAAkB;qBAC5B;iBACJ;aACJ,CAAC;YAEF,6CAA6C;YAC7C,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrC,GAAG,CAAC;gBACJ,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAA4B;aAC5D,CAAC,CAAC,CAAC;YAEJ,yEAAyE;YACzE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrE,gFAAgF;YAChF,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YACrE,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAC5B,MAAM,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,YAAY;aACtB,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,QAAQ,CAAC,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;YACzF,MAAM,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAmC,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAC5B,MAAM,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,YAAY;aACtB,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YACzC,uCAAuC;YACvC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE;iBACvB,qBAAqB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;iBACjD,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAEjC,+DAA+D;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC;oBACb,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;iBAC3C,CAAC,CAAC;YACP,CAAC;YAED,yBAAyB;YACzB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAE3C,wCAAwC;YACxC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -110,7 +110,22 @@ export async function checkCommand() {
110
110
  const activeLayouts = detectActiveAgentLayouts(projectRoot);
111
111
  if (activeLayouts.length > 0) {
112
112
  UI.success(`Active agent layout(s): ${activeLayouts.join(", ")}`);
113
- ALL_AGENTS.forEach((agent) => {
113
+ // Read expected agents from config.json to filter ALL_AGENTS checklist
114
+ const configPath = path.join(frameworkDir, "config.json");
115
+ let configuredAgents = [];
116
+ if (fs.existsSync(configPath)) {
117
+ try {
118
+ const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
119
+ configuredAgents = config.agents || [];
120
+ }
121
+ catch {
122
+ // ignore read/parse errors
123
+ }
124
+ }
125
+ const targetAgents = configuredAgents.length > 0
126
+ ? ALL_AGENTS.filter(a => configuredAgents.includes(a.name))
127
+ : ALL_AGENTS;
128
+ targetAgents.forEach((agent) => {
114
129
  const found = findAgentInstruction(projectRoot, agent.name);
115
130
  if (found) {
116
131
  UI.success(`Instructions for @${agent.name} found at ${found}`);
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}