agentic-qe 1.8.3 → 1.9.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 (290) hide show
  1. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  2. package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +2 -2
  3. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -6
  4. package/CHANGELOG.md +595 -0
  5. package/README.md +117 -16
  6. package/config/constitution.schema.json +423 -0
  7. package/config/otel-collector.yaml +234 -0
  8. package/dist/App.d.ts +5 -0
  9. package/dist/App.d.ts.map +1 -0
  10. package/dist/App.js +15 -0
  11. package/dist/App.js.map +1 -0
  12. package/dist/cli/commands/constitution.d.ts +34 -0
  13. package/dist/cli/commands/constitution.d.ts.map +1 -0
  14. package/dist/cli/commands/constitution.js +679 -0
  15. package/dist/cli/commands/constitution.js.map +1 -0
  16. package/dist/cli/commands/init-claude-md-template.js +3 -3
  17. package/dist/cli/commands/init.d.ts +8 -75
  18. package/dist/cli/commands/init.d.ts.map +1 -1
  19. package/dist/cli/commands/init.js +22 -2292
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/telemetry.d.ts +36 -0
  22. package/dist/cli/commands/telemetry.d.ts.map +1 -0
  23. package/dist/cli/commands/telemetry.js +364 -0
  24. package/dist/cli/commands/telemetry.js.map +1 -0
  25. package/dist/cli/index.js +66 -0
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/init/agents.d.ts +22 -0
  28. package/dist/cli/init/agents.d.ts.map +1 -0
  29. package/dist/cli/init/agents.js +522 -0
  30. package/dist/cli/init/agents.js.map +1 -0
  31. package/dist/cli/init/bash-wrapper.d.ts +14 -0
  32. package/dist/cli/init/bash-wrapper.d.ts.map +1 -0
  33. package/dist/cli/init/bash-wrapper.js +47 -0
  34. package/dist/cli/init/bash-wrapper.js.map +1 -0
  35. package/dist/cli/init/claude-config.d.ts +24 -0
  36. package/dist/cli/init/claude-config.d.ts.map +1 -0
  37. package/dist/cli/init/claude-config.js +275 -0
  38. package/dist/cli/init/claude-config.js.map +1 -0
  39. package/dist/cli/init/claude-md.d.ts +19 -0
  40. package/dist/cli/init/claude-md.d.ts.map +1 -0
  41. package/dist/cli/init/claude-md.js +153 -0
  42. package/dist/cli/init/claude-md.js.map +1 -0
  43. package/dist/cli/init/commands.d.ts +6 -0
  44. package/dist/cli/init/commands.d.ts.map +1 -0
  45. package/dist/cli/init/commands.js +83 -0
  46. package/dist/cli/init/commands.js.map +1 -0
  47. package/dist/cli/init/database-init.d.ts +15 -0
  48. package/dist/cli/init/database-init.d.ts.map +1 -0
  49. package/dist/cli/init/database-init.js +203 -0
  50. package/dist/cli/init/database-init.js.map +1 -0
  51. package/dist/cli/init/directory-structure.d.ts +14 -0
  52. package/dist/cli/init/directory-structure.d.ts.map +1 -0
  53. package/dist/cli/init/directory-structure.js +107 -0
  54. package/dist/cli/init/directory-structure.js.map +1 -0
  55. package/dist/cli/init/documentation.d.ts +14 -0
  56. package/dist/cli/init/documentation.d.ts.map +1 -0
  57. package/dist/cli/init/documentation.js +195 -0
  58. package/dist/cli/init/documentation.js.map +1 -0
  59. package/dist/cli/init/fleet-config.d.ts +34 -0
  60. package/dist/cli/init/fleet-config.d.ts.map +1 -0
  61. package/dist/cli/init/fleet-config.js +269 -0
  62. package/dist/cli/init/fleet-config.js.map +1 -0
  63. package/dist/cli/init/helpers.d.ts +6 -0
  64. package/dist/cli/init/helpers.d.ts.map +1 -0
  65. package/dist/cli/init/helpers.js +94 -0
  66. package/dist/cli/init/helpers.js.map +1 -0
  67. package/dist/cli/init/index.d.ts +32 -0
  68. package/dist/cli/init/index.d.ts.map +1 -0
  69. package/dist/cli/init/index.js +294 -0
  70. package/dist/cli/init/index.js.map +1 -0
  71. package/dist/cli/init/skills.d.ts +6 -0
  72. package/dist/cli/init/skills.d.ts.map +1 -0
  73. package/dist/cli/init/skills.js +138 -0
  74. package/dist/cli/init/skills.js.map +1 -0
  75. package/dist/cli/init/utils/file-utils.d.ts +74 -0
  76. package/dist/cli/init/utils/file-utils.d.ts.map +1 -0
  77. package/dist/cli/init/utils/file-utils.js +187 -0
  78. package/dist/cli/init/utils/file-utils.js.map +1 -0
  79. package/dist/cli/init/utils/index.d.ts +18 -0
  80. package/dist/cli/init/utils/index.d.ts.map +1 -0
  81. package/dist/cli/init/utils/index.js +48 -0
  82. package/dist/cli/init/utils/index.js.map +1 -0
  83. package/dist/cli/init/utils/log-utils.d.ts +47 -0
  84. package/dist/cli/init/utils/log-utils.d.ts.map +1 -0
  85. package/dist/cli/init/utils/log-utils.js +68 -0
  86. package/dist/cli/init/utils/log-utils.js.map +1 -0
  87. package/dist/cli/init/utils/path-utils.d.ts +91 -0
  88. package/dist/cli/init/utils/path-utils.d.ts.map +1 -0
  89. package/dist/cli/init/utils/path-utils.js +208 -0
  90. package/dist/cli/init/utils/path-utils.js.map +1 -0
  91. package/dist/cli/init/utils/validation-utils.d.ts +44 -0
  92. package/dist/cli/init/utils/validation-utils.d.ts.map +1 -0
  93. package/dist/cli/init/utils/validation-utils.js +68 -0
  94. package/dist/cli/init/utils/validation-utils.js.map +1 -0
  95. package/dist/cli/init/utils.d.ts +183 -0
  96. package/dist/cli/init/utils.d.ts.map +1 -0
  97. package/dist/cli/init/utils.js +354 -0
  98. package/dist/cli/init/utils.js.map +1 -0
  99. package/dist/components/Dashboard/Dashboard.d.ts +4 -0
  100. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -0
  101. package/dist/components/Dashboard/Dashboard.js +148 -0
  102. package/dist/components/Dashboard/Dashboard.js.map +1 -0
  103. package/dist/components/Dashboard/DashboardHeader.d.ts +4 -0
  104. package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
  105. package/dist/components/Dashboard/DashboardHeader.js +138 -0
  106. package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
  107. package/dist/constitution/evaluators/ast-evaluator.d.ts +42 -0
  108. package/dist/constitution/evaluators/ast-evaluator.d.ts.map +1 -0
  109. package/dist/constitution/evaluators/ast-evaluator.js +303 -0
  110. package/dist/constitution/evaluators/ast-evaluator.js.map +1 -0
  111. package/dist/constitution/evaluators/base.d.ts +144 -0
  112. package/dist/constitution/evaluators/base.d.ts.map +1 -0
  113. package/dist/constitution/evaluators/base.js +144 -0
  114. package/dist/constitution/evaluators/base.js.map +1 -0
  115. package/dist/constitution/evaluators/index.d.ts +19 -0
  116. package/dist/constitution/evaluators/index.d.ts.map +1 -0
  117. package/dist/constitution/evaluators/index.js +56 -0
  118. package/dist/constitution/evaluators/index.js.map +1 -0
  119. package/dist/constitution/evaluators/metric-evaluator.d.ts +59 -0
  120. package/dist/constitution/evaluators/metric-evaluator.d.ts.map +1 -0
  121. package/dist/constitution/evaluators/metric-evaluator.js +195 -0
  122. package/dist/constitution/evaluators/metric-evaluator.js.map +1 -0
  123. package/dist/constitution/evaluators/pattern-evaluator.d.ts +66 -0
  124. package/dist/constitution/evaluators/pattern-evaluator.d.ts.map +1 -0
  125. package/dist/constitution/evaluators/pattern-evaluator.js +221 -0
  126. package/dist/constitution/evaluators/pattern-evaluator.js.map +1 -0
  127. package/dist/constitution/evaluators/semantic-evaluator.d.ts +68 -0
  128. package/dist/constitution/evaluators/semantic-evaluator.d.ts.map +1 -0
  129. package/dist/constitution/evaluators/semantic-evaluator.js +250 -0
  130. package/dist/constitution/evaluators/semantic-evaluator.js.map +1 -0
  131. package/dist/constitution/index.d.ts +105 -0
  132. package/dist/constitution/index.d.ts.map +1 -0
  133. package/dist/constitution/index.js +207 -0
  134. package/dist/constitution/index.js.map +1 -0
  135. package/dist/constitution/loader.d.ts +141 -0
  136. package/dist/constitution/loader.d.ts.map +1 -0
  137. package/dist/constitution/loader.js +515 -0
  138. package/dist/constitution/loader.js.map +1 -0
  139. package/dist/constitution/schema.d.ts +409 -0
  140. package/dist/constitution/schema.d.ts.map +1 -0
  141. package/dist/constitution/schema.js +71 -0
  142. package/dist/constitution/schema.js.map +1 -0
  143. package/dist/contexts/DashboardContext.d.ts +41 -0
  144. package/dist/contexts/DashboardContext.d.ts.map +1 -0
  145. package/dist/contexts/DashboardContext.js +187 -0
  146. package/dist/contexts/DashboardContext.js.map +1 -0
  147. package/dist/core/memory/MemoryManagerFactory.d.ts +77 -0
  148. package/dist/core/memory/MemoryManagerFactory.d.ts.map +1 -0
  149. package/dist/core/memory/MemoryManagerFactory.js +270 -0
  150. package/dist/core/memory/MemoryManagerFactory.js.map +1 -0
  151. package/dist/core/memory/SwarmMemoryManager.d.ts +58 -0
  152. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  153. package/dist/core/memory/SwarmMemoryManager.js +375 -131
  154. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  155. package/dist/core/memory/index.d.ts +1 -0
  156. package/dist/core/memory/index.d.ts.map +1 -1
  157. package/dist/core/memory/index.js +12 -1
  158. package/dist/core/memory/index.js.map +1 -1
  159. package/dist/hooks/useKeyboardShortcuts.d.ts +12 -0
  160. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  161. package/dist/hooks/useKeyboardShortcuts.js +69 -0
  162. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  163. package/dist/mcp/handlers/memory/memory-backup.js +6 -6
  164. package/dist/mcp/handlers/memory/memory-backup.js.map +1 -1
  165. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
  166. package/dist/mcp/handlers/phase2/Phase2Tools.js +4 -2
  167. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
  168. package/dist/mcp/server.d.ts.map +1 -1
  169. package/dist/mcp/server.js +4 -38
  170. package/dist/mcp/server.js.map +1 -1
  171. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  172. package/dist/mcp/services/AgentRegistry.js +4 -4
  173. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  174. package/dist/persistence/event-store.d.ts +162 -0
  175. package/dist/persistence/event-store.d.ts.map +1 -0
  176. package/dist/persistence/event-store.js +315 -0
  177. package/dist/persistence/event-store.js.map +1 -0
  178. package/dist/persistence/index.d.ts +145 -0
  179. package/dist/persistence/index.d.ts.map +1 -0
  180. package/dist/persistence/index.js +227 -0
  181. package/dist/persistence/index.js.map +1 -0
  182. package/dist/persistence/metrics-aggregator.d.ts +187 -0
  183. package/dist/persistence/metrics-aggregator.d.ts.map +1 -0
  184. package/dist/persistence/metrics-aggregator.js +495 -0
  185. package/dist/persistence/metrics-aggregator.js.map +1 -0
  186. package/dist/persistence/reasoning-store.d.ts +178 -0
  187. package/dist/persistence/reasoning-store.d.ts.map +1 -0
  188. package/dist/persistence/reasoning-store.js +440 -0
  189. package/dist/persistence/reasoning-store.js.map +1 -0
  190. package/dist/persistence/schema.d.ts +181 -0
  191. package/dist/persistence/schema.d.ts.map +1 -0
  192. package/dist/persistence/schema.js +186 -0
  193. package/dist/persistence/schema.js.map +1 -0
  194. package/dist/telemetry/bootstrap.d.ts +67 -0
  195. package/dist/telemetry/bootstrap.d.ts.map +1 -0
  196. package/dist/telemetry/bootstrap.js +320 -0
  197. package/dist/telemetry/bootstrap.js.map +1 -0
  198. package/dist/telemetry/index.d.ts +16 -0
  199. package/dist/telemetry/index.d.ts.map +1 -0
  200. package/dist/telemetry/index.js +84 -0
  201. package/dist/telemetry/index.js.map +1 -0
  202. package/dist/telemetry/instrumentation/agent.d.ts +158 -0
  203. package/dist/telemetry/instrumentation/agent.d.ts.map +1 -0
  204. package/dist/telemetry/instrumentation/agent.js +372 -0
  205. package/dist/telemetry/instrumentation/agent.js.map +1 -0
  206. package/dist/telemetry/instrumentation/index.d.ts +24 -0
  207. package/dist/telemetry/instrumentation/index.d.ts.map +1 -0
  208. package/dist/telemetry/instrumentation/index.js +54 -0
  209. package/dist/telemetry/instrumentation/index.js.map +1 -0
  210. package/dist/telemetry/instrumentation/memory.d.ts +313 -0
  211. package/dist/telemetry/instrumentation/memory.d.ts.map +1 -0
  212. package/dist/telemetry/instrumentation/memory.js +552 -0
  213. package/dist/telemetry/instrumentation/memory.js.map +1 -0
  214. package/dist/telemetry/instrumentation/task.d.ts +146 -0
  215. package/dist/telemetry/instrumentation/task.d.ts.map +1 -0
  216. package/dist/telemetry/instrumentation/task.js +305 -0
  217. package/dist/telemetry/instrumentation/task.js.map +1 -0
  218. package/dist/telemetry/metrics/agent-metrics.d.ts +109 -0
  219. package/dist/telemetry/metrics/agent-metrics.d.ts.map +1 -0
  220. package/dist/telemetry/metrics/agent-metrics.js +213 -0
  221. package/dist/telemetry/metrics/agent-metrics.js.map +1 -0
  222. package/dist/telemetry/metrics/collectors/cost.d.ts +246 -0
  223. package/dist/telemetry/metrics/collectors/cost.d.ts.map +1 -0
  224. package/dist/telemetry/metrics/collectors/cost.js +526 -0
  225. package/dist/telemetry/metrics/collectors/cost.js.map +1 -0
  226. package/dist/telemetry/metrics/collectors/pricing-config.d.ts +87 -0
  227. package/dist/telemetry/metrics/collectors/pricing-config.d.ts.map +1 -0
  228. package/dist/telemetry/metrics/collectors/pricing-config.js +207 -0
  229. package/dist/telemetry/metrics/collectors/pricing-config.js.map +1 -0
  230. package/dist/telemetry/metrics/index.d.ts +54 -0
  231. package/dist/telemetry/metrics/index.d.ts.map +1 -0
  232. package/dist/telemetry/metrics/index.js +116 -0
  233. package/dist/telemetry/metrics/index.js.map +1 -0
  234. package/dist/telemetry/metrics/quality-metrics.d.ts +171 -0
  235. package/dist/telemetry/metrics/quality-metrics.d.ts.map +1 -0
  236. package/dist/telemetry/metrics/quality-metrics.js +259 -0
  237. package/dist/telemetry/metrics/quality-metrics.js.map +1 -0
  238. package/dist/telemetry/metrics/system-metrics.d.ts +129 -0
  239. package/dist/telemetry/metrics/system-metrics.d.ts.map +1 -0
  240. package/dist/telemetry/metrics/system-metrics.js +380 -0
  241. package/dist/telemetry/metrics/system-metrics.js.map +1 -0
  242. package/dist/telemetry/types.d.ts +195 -0
  243. package/dist/telemetry/types.d.ts.map +1 -0
  244. package/dist/telemetry/types.js +90 -0
  245. package/dist/telemetry/types.js.map +1 -0
  246. package/dist/visualization/api/RestEndpoints.d.ts +136 -0
  247. package/dist/visualization/api/RestEndpoints.d.ts.map +1 -0
  248. package/dist/visualization/api/RestEndpoints.js +428 -0
  249. package/dist/visualization/api/RestEndpoints.js.map +1 -0
  250. package/dist/visualization/api/WebSocketServer.d.ts +165 -0
  251. package/dist/visualization/api/WebSocketServer.d.ts.map +1 -0
  252. package/dist/visualization/api/WebSocketServer.js +518 -0
  253. package/dist/visualization/api/WebSocketServer.js.map +1 -0
  254. package/dist/visualization/core/DataTransformer.d.ts +89 -0
  255. package/dist/visualization/core/DataTransformer.d.ts.map +1 -0
  256. package/dist/visualization/core/DataTransformer.js +478 -0
  257. package/dist/visualization/core/DataTransformer.js.map +1 -0
  258. package/dist/visualization/index.d.ts +92 -0
  259. package/dist/visualization/index.d.ts.map +1 -0
  260. package/dist/visualization/index.js +121 -0
  261. package/dist/visualization/index.js.map +1 -0
  262. package/dist/visualization/types.d.ts +148 -0
  263. package/dist/visualization/types.d.ts.map +1 -0
  264. package/dist/visualization/types.js +7 -0
  265. package/dist/visualization/types.js.map +1 -0
  266. package/dist/voting/consensus.d.ts +87 -0
  267. package/dist/voting/consensus.d.ts.map +1 -0
  268. package/dist/voting/consensus.js +568 -0
  269. package/dist/voting/consensus.js.map +1 -0
  270. package/dist/voting/index.d.ts +12 -0
  271. package/dist/voting/index.d.ts.map +1 -0
  272. package/dist/voting/index.js +36 -0
  273. package/dist/voting/index.js.map +1 -0
  274. package/dist/voting/orchestrator.d.ts +65 -0
  275. package/dist/voting/orchestrator.d.ts.map +1 -0
  276. package/dist/voting/orchestrator.js +306 -0
  277. package/dist/voting/orchestrator.js.map +1 -0
  278. package/dist/voting/panel-assembly.d.ts +54 -0
  279. package/dist/voting/panel-assembly.d.ts.map +1 -0
  280. package/dist/voting/panel-assembly.js +192 -0
  281. package/dist/voting/panel-assembly.js.map +1 -0
  282. package/dist/voting/protocol.d.ts +119 -0
  283. package/dist/voting/protocol.d.ts.map +1 -0
  284. package/dist/voting/protocol.js +18 -0
  285. package/dist/voting/protocol.js.map +1 -0
  286. package/dist/voting/types.d.ts +125 -0
  287. package/dist/voting/types.d.ts.map +1 -0
  288. package/dist/voting/types.js +7 -0
  289. package/dist/voting/types.js.map +1 -0
  290. package/package.json +43 -2
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Main entry point for AQE persistence layer
4
+ * @module persistence
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.MetricsAggregator = exports.ReasoningStore = exports.EventStore = exports.initializeSchema = exports.closeDatabase = exports.createDatabase = exports.CURRENT_SCHEMA_VERSION = exports.DEFAULT_PERSISTENCE_CONFIG = void 0;
41
+ exports.initPersistence = initPersistence;
42
+ exports.createEventStore = createEventStore;
43
+ exports.createReasoningStore = createReasoningStore;
44
+ exports.createMetricsAggregator = createMetricsAggregator;
45
+ exports.cleanupOldData = cleanupOldData;
46
+ exports.runAggregation = runAggregation;
47
+ const path = __importStar(require("path"));
48
+ const fs = __importStar(require("fs"));
49
+ // Export schema types and utilities
50
+ var schema_1 = require("./schema");
51
+ Object.defineProperty(exports, "DEFAULT_PERSISTENCE_CONFIG", { enumerable: true, get: function () { return schema_1.DEFAULT_PERSISTENCE_CONFIG; } });
52
+ Object.defineProperty(exports, "CURRENT_SCHEMA_VERSION", { enumerable: true, get: function () { return schema_1.CURRENT_SCHEMA_VERSION; } });
53
+ // Database utilities
54
+ Object.defineProperty(exports, "createDatabase", { enumerable: true, get: function () { return schema_1.createDatabase; } });
55
+ Object.defineProperty(exports, "closeDatabase", { enumerable: true, get: function () { return schema_1.closeDatabase; } });
56
+ Object.defineProperty(exports, "initializeSchema", { enumerable: true, get: function () { return schema_1.initializeSchema; } });
57
+ // Export store classes
58
+ var event_store_1 = require("./event-store");
59
+ Object.defineProperty(exports, "EventStore", { enumerable: true, get: function () { return event_store_1.EventStore; } });
60
+ var reasoning_store_1 = require("./reasoning-store");
61
+ Object.defineProperty(exports, "ReasoningStore", { enumerable: true, get: function () { return reasoning_store_1.ReasoningStore; } });
62
+ var metrics_aggregator_1 = require("./metrics-aggregator");
63
+ Object.defineProperty(exports, "MetricsAggregator", { enumerable: true, get: function () { return metrics_aggregator_1.MetricsAggregator; } });
64
+ // Import for initialization
65
+ const event_store_2 = require("./event-store");
66
+ const reasoning_store_2 = require("./reasoning-store");
67
+ const metrics_aggregator_2 = require("./metrics-aggregator");
68
+ /**
69
+ * Initialize the persistence layer
70
+ *
71
+ * @param options - Initialization options
72
+ * @returns Initialized persistence stores
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // Initialize with default settings
77
+ * const persistence = initPersistence();
78
+ *
79
+ * // Record an event
80
+ * persistence.eventStore.recordEvent({
81
+ * agent_id: 'test-gen',
82
+ * event_type: 'test_generated',
83
+ * payload: { count: 5 },
84
+ * session_id: 'session-123'
85
+ * });
86
+ *
87
+ * // Start a reasoning chain
88
+ * const chain = persistence.reasoningStore.startChain({
89
+ * session_id: 'session-123',
90
+ * agent_id: 'test-gen'
91
+ * });
92
+ *
93
+ * // Record a metric
94
+ * persistence.metricsAggregator.recordMetric({
95
+ * agent_id: 'test-gen',
96
+ * metric_name: 'coverage',
97
+ * metric_value: 85.5
98
+ * });
99
+ *
100
+ * // Clean up
101
+ * persistence.close();
102
+ * ```
103
+ */
104
+ function initPersistence(options = {}) {
105
+ const { baseDir = './data', enableWAL = true, busyTimeout = 5000, maxRetries = 3, separateDatabases = false, } = options;
106
+ // Ensure base directory exists
107
+ if (!fs.existsSync(baseDir)) {
108
+ fs.mkdirSync(baseDir, { recursive: true });
109
+ }
110
+ // Create configuration
111
+ const createConfig = (dbName) => ({
112
+ dbPath: path.join(baseDir, dbName),
113
+ enableWAL,
114
+ busyTimeout,
115
+ maxRetries,
116
+ });
117
+ // Initialize stores
118
+ let eventStore;
119
+ let reasoningStore;
120
+ let metricsAggregator;
121
+ if (separateDatabases) {
122
+ // Each store gets its own database
123
+ eventStore = new event_store_2.EventStore(createConfig('aqe-events.db'));
124
+ reasoningStore = new reasoning_store_2.ReasoningStore(createConfig('aqe-reasoning.db'));
125
+ metricsAggregator = new metrics_aggregator_2.MetricsAggregator(createConfig('aqe-metrics.db'));
126
+ }
127
+ else {
128
+ // All stores share a single database
129
+ const sharedConfig = createConfig('aqe-telemetry.db');
130
+ eventStore = new event_store_2.EventStore(sharedConfig);
131
+ reasoningStore = new reasoning_store_2.ReasoningStore(sharedConfig);
132
+ metricsAggregator = new metrics_aggregator_2.MetricsAggregator(sharedConfig);
133
+ }
134
+ return {
135
+ eventStore,
136
+ reasoningStore,
137
+ metricsAggregator,
138
+ close: () => {
139
+ eventStore.close();
140
+ reasoningStore.close();
141
+ metricsAggregator.close();
142
+ },
143
+ getStatistics: () => ({
144
+ events: eventStore.getStatistics(),
145
+ reasoning: reasoningStore.getStatistics(),
146
+ metrics: metricsAggregator.getStatistics(),
147
+ }),
148
+ };
149
+ }
150
+ /**
151
+ * Quick utility to create an event store with default settings
152
+ * @param dbPath - Optional database path
153
+ * @returns Configured EventStore instance
154
+ */
155
+ function createEventStore(dbPath) {
156
+ return new event_store_2.EventStore(dbPath ? { dbPath } : undefined);
157
+ }
158
+ /**
159
+ * Quick utility to create a reasoning store with default settings
160
+ * @param dbPath - Optional database path
161
+ * @returns Configured ReasoningStore instance
162
+ */
163
+ function createReasoningStore(dbPath) {
164
+ return new reasoning_store_2.ReasoningStore(dbPath ? { dbPath } : undefined);
165
+ }
166
+ /**
167
+ * Quick utility to create a metrics aggregator with default settings
168
+ * @param dbPath - Optional database path
169
+ * @returns Configured MetricsAggregator instance
170
+ */
171
+ function createMetricsAggregator(dbPath) {
172
+ return new metrics_aggregator_2.MetricsAggregator(dbPath ? { dbPath } : undefined);
173
+ }
174
+ /**
175
+ * Database cleanup utility
176
+ * @param baseDir - Directory containing database files
177
+ * @param olderThan - Delete data older than this ISO timestamp
178
+ * @returns Cleanup results
179
+ */
180
+ function cleanupOldData(baseDir = './data', olderThan) {
181
+ const persistence = initPersistence({ baseDir });
182
+ try {
183
+ const eventsDeleted = persistence.eventStore.deleteEventsOlderThan(olderThan);
184
+ const chainsDeleted = persistence.reasoningStore.deleteOldChains(olderThan);
185
+ const metricsDeleted = persistence.metricsAggregator.deleteMetricsOlderThan(olderThan);
186
+ const aggregatedDeleted = persistence.metricsAggregator.deleteAggregatedOlderThan(olderThan);
187
+ return {
188
+ eventsDeleted,
189
+ chainsDeleted,
190
+ metricsDeleted,
191
+ aggregatedDeleted,
192
+ };
193
+ }
194
+ finally {
195
+ persistence.close();
196
+ }
197
+ }
198
+ /**
199
+ * Run metric aggregation for all periods
200
+ * @param baseDir - Directory containing database files
201
+ * @param periods - Periods to aggregate
202
+ * @returns Aggregation results
203
+ */
204
+ function runAggregation(baseDir = './data', periods = ['1min', '5min', '1hour', '1day']) {
205
+ const persistence = initPersistence({ baseDir });
206
+ const results = {};
207
+ try {
208
+ for (const period of periods) {
209
+ const count = persistence.metricsAggregator.aggregateByPeriod({ period });
210
+ results[period] = count;
211
+ }
212
+ return results;
213
+ }
214
+ finally {
215
+ persistence.close();
216
+ }
217
+ }
218
+ // Default export for convenient usage
219
+ exports.default = {
220
+ initPersistence,
221
+ createEventStore,
222
+ createReasoningStore,
223
+ createMetricsAggregator,
224
+ cleanupOldData,
225
+ runAggregation,
226
+ };
227
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * @fileoverview Metrics aggregator for quality metrics collection and analysis
3
+ * @module persistence/metrics-aggregator
4
+ */
5
+ import { QualityMetric, AggregatedMetric, RecordMetricInput, MetricTrendPoint, AgentPerformance, AggregationPeriod, PersistenceConfig } from './schema';
6
+ /**
7
+ * Query options for metrics
8
+ */
9
+ export interface MetricQueryOptions {
10
+ limit?: number;
11
+ offset?: number;
12
+ dimensions?: Record<string, string>;
13
+ }
14
+ /**
15
+ * Aggregation configuration
16
+ */
17
+ export interface AggregationConfig {
18
+ period: AggregationPeriod;
19
+ agentId?: string;
20
+ metricName?: string;
21
+ }
22
+ /**
23
+ * MetricsAggregator collects and aggregates quality metrics
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const aggregator = new MetricsAggregator({ dbPath: './data/metrics.db' });
28
+ *
29
+ * // Record a metric
30
+ * aggregator.recordMetric({
31
+ * agent_id: 'test-generator',
32
+ * metric_name: 'test_coverage',
33
+ * metric_value: 85.5,
34
+ * dimensions: { suite: 'unit', language: 'typescript' }
35
+ * });
36
+ *
37
+ * // Aggregate by period
38
+ * aggregator.aggregateByPeriod({ period: '1hour' });
39
+ *
40
+ * // Get trends
41
+ * const trends = aggregator.getMetricTrends('test_coverage', '24h');
42
+ * ```
43
+ */
44
+ export declare class MetricsAggregator {
45
+ private db;
46
+ private config;
47
+ private statements;
48
+ /**
49
+ * Create a new MetricsAggregator instance
50
+ * @param config - Persistence configuration
51
+ */
52
+ constructor(config?: Partial<PersistenceConfig>);
53
+ /**
54
+ * Prepare SQL statements for performance
55
+ */
56
+ private prepareStatements;
57
+ /**
58
+ * Deserialize metric record from database row
59
+ */
60
+ private deserializeMetric;
61
+ /**
62
+ * Deserialize aggregated metric from database row
63
+ */
64
+ private deserializeAggregated;
65
+ /**
66
+ * Record a quality metric
67
+ * @param input - Metric recording input
68
+ * @returns Created metric record
69
+ */
70
+ recordMetric(input: RecordMetricInput): QualityMetric;
71
+ /**
72
+ * Record multiple metrics in a batch
73
+ * @param inputs - Array of metric inputs
74
+ * @returns Array of created metrics
75
+ */
76
+ recordMetricsBatch(inputs: RecordMetricInput[]): QualityMetric[];
77
+ /**
78
+ * Get metrics by agent ID
79
+ * @param agentId - Agent identifier
80
+ * @param options - Query options
81
+ * @returns Array of metrics
82
+ */
83
+ getMetricsByAgent(agentId: string, options?: MetricQueryOptions): QualityMetric[];
84
+ /**
85
+ * Get metrics by name
86
+ * @param metricName - Metric name
87
+ * @param options - Query options
88
+ * @returns Array of metrics
89
+ */
90
+ getMetricsByName(metricName: string, options?: MetricQueryOptions): QualityMetric[];
91
+ /**
92
+ * Get metrics within a time range
93
+ * @param start - Start timestamp
94
+ * @param end - End timestamp
95
+ * @param limit - Maximum results
96
+ * @returns Array of metrics
97
+ */
98
+ getMetricsByTimeRange(start: string, end: string, limit?: number): QualityMetric[];
99
+ /**
100
+ * Aggregate metrics by period
101
+ * @param config - Aggregation configuration
102
+ * @returns Number of aggregated periods
103
+ */
104
+ aggregateByPeriod(config: AggregationConfig): number;
105
+ /**
106
+ * Get aggregated metrics for a time period
107
+ * @param start - Period start
108
+ * @param end - Period end
109
+ * @returns Array of aggregated metrics
110
+ */
111
+ getAggregatedMetrics(start: string, end: string): AggregatedMetric[];
112
+ /**
113
+ * Get metric trends over time
114
+ * @param metricName - Metric to analyze
115
+ * @param timeframe - Timeframe (e.g., '24h', '7d', '30d')
116
+ * @param agentId - Optional agent filter
117
+ * @returns Array of trend data points
118
+ */
119
+ getMetricTrends(metricName: string, timeframe: string, agentId?: string): MetricTrendPoint[];
120
+ /**
121
+ * Get agent performance summary
122
+ * @param agentId - Agent identifier
123
+ * @param timeframe - Optional timeframe filter
124
+ * @returns Agent performance data
125
+ */
126
+ getAgentPerformance(agentId: string, timeframe?: string): AgentPerformance;
127
+ /**
128
+ * Get all unique metric names
129
+ * @returns Array of metric names
130
+ */
131
+ getMetricNames(): string[];
132
+ /**
133
+ * Get metric statistics
134
+ * @param metricName - Metric name
135
+ * @returns Statistics for the metric
136
+ */
137
+ getMetricStatistics(metricName: string): {
138
+ count: number;
139
+ min: number;
140
+ max: number;
141
+ avg: number;
142
+ stddev: number;
143
+ p50: number;
144
+ p90: number;
145
+ p99: number;
146
+ };
147
+ /**
148
+ * Compare metric across agents
149
+ * @param metricName - Metric to compare
150
+ * @param limit - Maximum agents to return
151
+ * @returns Agent comparison data
152
+ */
153
+ compareAgents(metricName: string, limit?: number): Array<{
154
+ agent_id: string;
155
+ avg: number;
156
+ count: number;
157
+ }>;
158
+ /**
159
+ * Delete metrics older than specified date
160
+ * @param olderThan - ISO timestamp cutoff
161
+ * @returns Number of deleted metrics
162
+ */
163
+ deleteMetricsOlderThan(olderThan: string): number;
164
+ /**
165
+ * Delete aggregated metrics older than specified date
166
+ * @param olderThan - ISO timestamp cutoff
167
+ * @returns Number of deleted records
168
+ */
169
+ deleteAggregatedOlderThan(olderThan: string): number;
170
+ /**
171
+ * Get overall statistics
172
+ * @returns Aggregator statistics
173
+ */
174
+ getStatistics(): {
175
+ totalMetrics: number;
176
+ totalAggregated: number;
177
+ uniqueAgents: number;
178
+ uniqueMetricNames: number;
179
+ oldestMetric: string | null;
180
+ newestMetric: string | null;
181
+ };
182
+ /**
183
+ * Close database connection
184
+ */
185
+ close(): void;
186
+ }
187
+ //# sourceMappingURL=metrics-aggregator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-aggregator.d.ts","sourceRoot":"","sources":["../../src/persistence/metrics-aggregator.ts"],"names":[],"mappings":"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"}