agentic-qe 1.8.4 → 1.9.1

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 (215) hide show
  1. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  2. package/CHANGELOG.md +394 -0
  3. package/README.md +86 -18
  4. package/dist/App.d.ts +5 -0
  5. package/dist/App.d.ts.map +1 -0
  6. package/dist/App.js +15 -0
  7. package/dist/App.js.map +1 -0
  8. package/dist/cli/commands/constitution.d.ts +34 -0
  9. package/dist/cli/commands/constitution.d.ts.map +1 -0
  10. package/dist/cli/commands/constitution.js +679 -0
  11. package/dist/cli/commands/constitution.js.map +1 -0
  12. package/dist/cli/commands/init.d.ts +8 -75
  13. package/dist/cli/commands/init.d.ts.map +1 -1
  14. package/dist/cli/commands/init.js +22 -2292
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  17. package/dist/cli/commands/learn/index.js +3 -4
  18. package/dist/cli/commands/learn/index.js.map +1 -1
  19. package/dist/cli/commands/telemetry.d.ts +36 -0
  20. package/dist/cli/commands/telemetry.d.ts.map +1 -0
  21. package/dist/cli/commands/telemetry.js +364 -0
  22. package/dist/cli/commands/telemetry.js.map +1 -0
  23. package/dist/cli/index.js +66 -0
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/init/agents.d.ts +22 -0
  26. package/dist/cli/init/agents.d.ts.map +1 -0
  27. package/dist/cli/init/agents.js +522 -0
  28. package/dist/cli/init/agents.js.map +1 -0
  29. package/dist/cli/init/bash-wrapper.d.ts +14 -0
  30. package/dist/cli/init/bash-wrapper.d.ts.map +1 -0
  31. package/dist/cli/init/bash-wrapper.js +47 -0
  32. package/dist/cli/init/bash-wrapper.js.map +1 -0
  33. package/dist/cli/init/claude-config.d.ts +24 -0
  34. package/dist/cli/init/claude-config.d.ts.map +1 -0
  35. package/dist/cli/init/claude-config.js +275 -0
  36. package/dist/cli/init/claude-config.js.map +1 -0
  37. package/dist/cli/init/claude-md.d.ts +19 -0
  38. package/dist/cli/init/claude-md.d.ts.map +1 -0
  39. package/dist/cli/init/claude-md.js +153 -0
  40. package/dist/cli/init/claude-md.js.map +1 -0
  41. package/dist/cli/init/commands.d.ts +6 -0
  42. package/dist/cli/init/commands.d.ts.map +1 -0
  43. package/dist/cli/init/commands.js +83 -0
  44. package/dist/cli/init/commands.js.map +1 -0
  45. package/dist/cli/init/database-init.d.ts +15 -0
  46. package/dist/cli/init/database-init.d.ts.map +1 -0
  47. package/dist/cli/init/database-init.js +203 -0
  48. package/dist/cli/init/database-init.js.map +1 -0
  49. package/dist/cli/init/directory-structure.d.ts +14 -0
  50. package/dist/cli/init/directory-structure.d.ts.map +1 -0
  51. package/dist/cli/init/directory-structure.js +91 -0
  52. package/dist/cli/init/directory-structure.js.map +1 -0
  53. package/dist/cli/init/documentation.d.ts +14 -0
  54. package/dist/cli/init/documentation.d.ts.map +1 -0
  55. package/dist/cli/init/documentation.js +195 -0
  56. package/dist/cli/init/documentation.js.map +1 -0
  57. package/dist/cli/init/fleet-config.d.ts +34 -0
  58. package/dist/cli/init/fleet-config.d.ts.map +1 -0
  59. package/dist/cli/init/fleet-config.js +269 -0
  60. package/dist/cli/init/fleet-config.js.map +1 -0
  61. package/dist/cli/init/helpers.d.ts +6 -0
  62. package/dist/cli/init/helpers.d.ts.map +1 -0
  63. package/dist/cli/init/helpers.js +94 -0
  64. package/dist/cli/init/helpers.js.map +1 -0
  65. package/dist/cli/init/index.d.ts +32 -0
  66. package/dist/cli/init/index.d.ts.map +1 -0
  67. package/dist/cli/init/index.js +294 -0
  68. package/dist/cli/init/index.js.map +1 -0
  69. package/dist/cli/init/skills.d.ts +6 -0
  70. package/dist/cli/init/skills.d.ts.map +1 -0
  71. package/dist/cli/init/skills.js +138 -0
  72. package/dist/cli/init/skills.js.map +1 -0
  73. package/dist/cli/init/utils/file-utils.d.ts +74 -0
  74. package/dist/cli/init/utils/file-utils.d.ts.map +1 -0
  75. package/dist/cli/init/utils/file-utils.js +187 -0
  76. package/dist/cli/init/utils/file-utils.js.map +1 -0
  77. package/dist/cli/init/utils/index.d.ts +18 -0
  78. package/dist/cli/init/utils/index.d.ts.map +1 -0
  79. package/dist/cli/init/utils/index.js +48 -0
  80. package/dist/cli/init/utils/index.js.map +1 -0
  81. package/dist/cli/init/utils/log-utils.d.ts +47 -0
  82. package/dist/cli/init/utils/log-utils.d.ts.map +1 -0
  83. package/dist/cli/init/utils/log-utils.js +68 -0
  84. package/dist/cli/init/utils/log-utils.js.map +1 -0
  85. package/dist/cli/init/utils/path-utils.d.ts +91 -0
  86. package/dist/cli/init/utils/path-utils.d.ts.map +1 -0
  87. package/dist/cli/init/utils/path-utils.js +208 -0
  88. package/dist/cli/init/utils/path-utils.js.map +1 -0
  89. package/dist/cli/init/utils/validation-utils.d.ts +44 -0
  90. package/dist/cli/init/utils/validation-utils.d.ts.map +1 -0
  91. package/dist/cli/init/utils/validation-utils.js +68 -0
  92. package/dist/cli/init/utils/validation-utils.js.map +1 -0
  93. package/dist/cli/init/utils.d.ts +183 -0
  94. package/dist/cli/init/utils.d.ts.map +1 -0
  95. package/dist/cli/init/utils.js +354 -0
  96. package/dist/cli/init/utils.js.map +1 -0
  97. package/dist/components/Dashboard/Dashboard.d.ts +4 -0
  98. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -0
  99. package/dist/components/Dashboard/Dashboard.js +148 -0
  100. package/dist/components/Dashboard/Dashboard.js.map +1 -0
  101. package/dist/components/Dashboard/DashboardHeader.d.ts +4 -0
  102. package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
  103. package/dist/components/Dashboard/DashboardHeader.js +138 -0
  104. package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
  105. package/dist/constitution/evaluators/ast-evaluator.d.ts +42 -0
  106. package/dist/constitution/evaluators/ast-evaluator.d.ts.map +1 -0
  107. package/dist/constitution/evaluators/ast-evaluator.js +303 -0
  108. package/dist/constitution/evaluators/ast-evaluator.js.map +1 -0
  109. package/dist/constitution/evaluators/base.d.ts +144 -0
  110. package/dist/constitution/evaluators/base.d.ts.map +1 -0
  111. package/dist/constitution/evaluators/base.js +144 -0
  112. package/dist/constitution/evaluators/base.js.map +1 -0
  113. package/dist/constitution/evaluators/index.d.ts +19 -0
  114. package/dist/constitution/evaluators/index.d.ts.map +1 -0
  115. package/dist/constitution/evaluators/index.js +56 -0
  116. package/dist/constitution/evaluators/index.js.map +1 -0
  117. package/dist/constitution/evaluators/metric-evaluator.d.ts +59 -0
  118. package/dist/constitution/evaluators/metric-evaluator.d.ts.map +1 -0
  119. package/dist/constitution/evaluators/metric-evaluator.js +195 -0
  120. package/dist/constitution/evaluators/metric-evaluator.js.map +1 -0
  121. package/dist/constitution/evaluators/pattern-evaluator.d.ts +66 -0
  122. package/dist/constitution/evaluators/pattern-evaluator.d.ts.map +1 -0
  123. package/dist/constitution/evaluators/pattern-evaluator.js +221 -0
  124. package/dist/constitution/evaluators/pattern-evaluator.js.map +1 -0
  125. package/dist/constitution/evaluators/semantic-evaluator.d.ts +68 -0
  126. package/dist/constitution/evaluators/semantic-evaluator.d.ts.map +1 -0
  127. package/dist/constitution/evaluators/semantic-evaluator.js +250 -0
  128. package/dist/constitution/evaluators/semantic-evaluator.js.map +1 -0
  129. package/dist/contexts/DashboardContext.d.ts +41 -0
  130. package/dist/contexts/DashboardContext.d.ts.map +1 -0
  131. package/dist/contexts/DashboardContext.js +187 -0
  132. package/dist/contexts/DashboardContext.js.map +1 -0
  133. package/dist/core/memory/SwarmMemoryManager.d.ts +40 -0
  134. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  135. package/dist/core/memory/SwarmMemoryManager.js +291 -120
  136. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  137. package/dist/hooks/useKeyboardShortcuts.d.ts +12 -0
  138. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  139. package/dist/hooks/useKeyboardShortcuts.js +69 -0
  140. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  141. package/dist/telemetry/instrumentation/agent.d.ts +158 -0
  142. package/dist/telemetry/instrumentation/agent.d.ts.map +1 -0
  143. package/dist/telemetry/instrumentation/agent.js +372 -0
  144. package/dist/telemetry/instrumentation/agent.js.map +1 -0
  145. package/dist/telemetry/instrumentation/index.d.ts +24 -0
  146. package/dist/telemetry/instrumentation/index.d.ts.map +1 -0
  147. package/dist/telemetry/instrumentation/index.js +54 -0
  148. package/dist/telemetry/instrumentation/index.js.map +1 -0
  149. package/dist/telemetry/instrumentation/memory.d.ts +313 -0
  150. package/dist/telemetry/instrumentation/memory.d.ts.map +1 -0
  151. package/dist/telemetry/instrumentation/memory.js +552 -0
  152. package/dist/telemetry/instrumentation/memory.js.map +1 -0
  153. package/dist/telemetry/instrumentation/task.d.ts +146 -0
  154. package/dist/telemetry/instrumentation/task.d.ts.map +1 -0
  155. package/dist/telemetry/instrumentation/task.js +305 -0
  156. package/dist/telemetry/instrumentation/task.js.map +1 -0
  157. package/dist/telemetry/metrics/collectors/cost.d.ts +246 -0
  158. package/dist/telemetry/metrics/collectors/cost.d.ts.map +1 -0
  159. package/dist/telemetry/metrics/collectors/cost.js +526 -0
  160. package/dist/telemetry/metrics/collectors/cost.js.map +1 -0
  161. package/dist/telemetry/metrics/collectors/pricing-config.d.ts +87 -0
  162. package/dist/telemetry/metrics/collectors/pricing-config.d.ts.map +1 -0
  163. package/dist/telemetry/metrics/collectors/pricing-config.js +207 -0
  164. package/dist/telemetry/metrics/collectors/pricing-config.js.map +1 -0
  165. package/dist/telemetry/metrics/index.d.ts +4 -1
  166. package/dist/telemetry/metrics/index.d.ts.map +1 -1
  167. package/dist/telemetry/metrics/index.js +18 -2
  168. package/dist/telemetry/metrics/index.js.map +1 -1
  169. package/dist/telemetry/types.d.ts +1 -1
  170. package/dist/telemetry/types.d.ts.map +1 -1
  171. package/dist/visualization/api/RestEndpoints.d.ts +136 -0
  172. package/dist/visualization/api/RestEndpoints.d.ts.map +1 -0
  173. package/dist/visualization/api/RestEndpoints.js +428 -0
  174. package/dist/visualization/api/RestEndpoints.js.map +1 -0
  175. package/dist/visualization/api/WebSocketServer.d.ts +165 -0
  176. package/dist/visualization/api/WebSocketServer.d.ts.map +1 -0
  177. package/dist/visualization/api/WebSocketServer.js +518 -0
  178. package/dist/visualization/api/WebSocketServer.js.map +1 -0
  179. package/dist/visualization/core/DataTransformer.d.ts +89 -0
  180. package/dist/visualization/core/DataTransformer.d.ts.map +1 -0
  181. package/dist/visualization/core/DataTransformer.js +478 -0
  182. package/dist/visualization/core/DataTransformer.js.map +1 -0
  183. package/dist/visualization/index.d.ts +92 -0
  184. package/dist/visualization/index.d.ts.map +1 -0
  185. package/dist/visualization/index.js +121 -0
  186. package/dist/visualization/index.js.map +1 -0
  187. package/dist/visualization/types.d.ts +148 -0
  188. package/dist/visualization/types.d.ts.map +1 -0
  189. package/dist/visualization/types.js +7 -0
  190. package/dist/visualization/types.js.map +1 -0
  191. package/dist/voting/consensus.d.ts +87 -0
  192. package/dist/voting/consensus.d.ts.map +1 -0
  193. package/dist/voting/consensus.js +568 -0
  194. package/dist/voting/consensus.js.map +1 -0
  195. package/dist/voting/index.d.ts +12 -0
  196. package/dist/voting/index.d.ts.map +1 -0
  197. package/dist/voting/index.js +36 -0
  198. package/dist/voting/index.js.map +1 -0
  199. package/dist/voting/orchestrator.d.ts +65 -0
  200. package/dist/voting/orchestrator.d.ts.map +1 -0
  201. package/dist/voting/orchestrator.js +306 -0
  202. package/dist/voting/orchestrator.js.map +1 -0
  203. package/dist/voting/panel-assembly.d.ts +54 -0
  204. package/dist/voting/panel-assembly.d.ts.map +1 -0
  205. package/dist/voting/panel-assembly.js +192 -0
  206. package/dist/voting/panel-assembly.js.map +1 -0
  207. package/dist/voting/protocol.d.ts +119 -0
  208. package/dist/voting/protocol.d.ts.map +1 -0
  209. package/dist/voting/protocol.js +18 -0
  210. package/dist/voting/protocol.js.map +1 -0
  211. package/dist/voting/types.d.ts +125 -0
  212. package/dist/voting/types.d.ts.map +1 -0
  213. package/dist/voting/types.js +7 -0
  214. package/dist/voting/types.js.map +1 -0
  215. package/package.json +27 -2
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DashboardHeader = void 0;
37
+ const react_1 = __importStar(require("react"));
38
+ const DashboardContext_1 = require("../../contexts/DashboardContext");
39
+ require("./DashboardHeader.css");
40
+ const DashboardHeader = () => {
41
+ const { filters, updateFilters, resetFilters, wsConnected, exportData, refreshData, notifications, } = (0, DashboardContext_1.useDashboard)();
42
+ const [sessions, setSessions] = (0, react_1.useState)([]);
43
+ const [agents, setAgents] = (0, react_1.useState)([]);
44
+ const [showFilters, setShowFilters] = (0, react_1.useState)(false);
45
+ const [showNotifications, setShowNotifications] = (0, react_1.useState)(false);
46
+ // Mock data - in real app, fetch from API
47
+ (0, react_1.useEffect)(() => {
48
+ setSessions([
49
+ { id: 'session-1', name: 'Test Run #1', startTime: new Date('2025-11-21T10:00:00') },
50
+ { id: 'session-2', name: 'Test Run #2', startTime: new Date('2025-11-21T11:00:00') },
51
+ { id: 'session-3', name: 'Test Run #3', startTime: new Date('2025-11-21T12:00:00') },
52
+ ]);
53
+ setAgents(['test-generator', 'coverage-analyzer', 'performance-tester', 'security-scanner']);
54
+ }, []);
55
+ const unreadCount = notifications.filter((n) => !n.read).length;
56
+ const handleTimeRangeChange = (range) => {
57
+ const now = new Date();
58
+ let start = null;
59
+ switch (range) {
60
+ case 'today':
61
+ start = new Date(now.setHours(0, 0, 0, 0));
62
+ break;
63
+ case 'week':
64
+ start = new Date(now.setDate(now.getDate() - 7));
65
+ break;
66
+ case 'month':
67
+ start = new Date(now.setMonth(now.getMonth() - 1));
68
+ break;
69
+ }
70
+ updateFilters({
71
+ timeRange: { start, end: new Date() },
72
+ });
73
+ };
74
+ const toggleAgent = (agent) => {
75
+ const currentAgents = filters.agents;
76
+ const newAgents = currentAgents.includes(agent)
77
+ ? currentAgents.filter((a) => a !== agent)
78
+ : [...currentAgents, agent];
79
+ updateFilters({ agents: newAgents });
80
+ };
81
+ return (react_1.default.createElement("header", { className: "dashboard-header" },
82
+ react_1.default.createElement("div", { className: "header-left" },
83
+ react_1.default.createElement("h1", null, "AQE Dashboard"),
84
+ react_1.default.createElement("div", { className: `ws-status ${wsConnected ? 'connected' : 'disconnected'}` },
85
+ react_1.default.createElement("span", { className: "status-indicator" }),
86
+ react_1.default.createElement("span", { className: "status-text" }, wsConnected ? 'Connected' : 'Disconnected'))),
87
+ react_1.default.createElement("div", { className: "header-center" },
88
+ react_1.default.createElement("div", { className: "filter-group" },
89
+ react_1.default.createElement("label", null, "Session:"),
90
+ react_1.default.createElement("select", { value: filters.sessionId || '', onChange: (e) => updateFilters({ sessionId: e.target.value || null }), className: "filter-select" },
91
+ react_1.default.createElement("option", { value: "" }, "All Sessions"),
92
+ sessions.map((session) => (react_1.default.createElement("option", { key: session.id, value: session.id }, session.name))))),
93
+ react_1.default.createElement("div", { className: "filter-group" },
94
+ react_1.default.createElement("label", null, "Time Range:"),
95
+ react_1.default.createElement("select", { onChange: (e) => handleTimeRangeChange(e.target.value), className: "filter-select" },
96
+ react_1.default.createElement("option", { value: "" }, "All Time"),
97
+ react_1.default.createElement("option", { value: "today" }, "Today"),
98
+ react_1.default.createElement("option", { value: "week" }, "Last 7 Days"),
99
+ react_1.default.createElement("option", { value: "month" }, "Last 30 Days"),
100
+ react_1.default.createElement("option", { value: "custom" }, "Custom Range"))),
101
+ react_1.default.createElement("button", { className: "filter-toggle-btn", onClick: () => setShowFilters(!showFilters), title: "Toggle Filters (Ctrl+F)" },
102
+ react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor" },
103
+ react_1.default.createElement("path", { d: "M3 4h14M6 8h8M8 12h4M10 16h0", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" })),
104
+ "Filters")),
105
+ react_1.default.createElement("div", { className: "header-right" },
106
+ react_1.default.createElement("div", { className: "notification-container" },
107
+ react_1.default.createElement("button", { className: "notification-btn", onClick: () => setShowNotifications(!showNotifications) },
108
+ react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor" },
109
+ react_1.default.createElement("path", { d: "M10 2a6 6 0 016 6v3.586l1.707 1.707A1 1 0 0117 15h-4a3 3 0 01-6 0H3a1 1 0 01-.707-1.707L4 11.586V8a6 6 0 016-6z" })),
110
+ unreadCount > 0 && react_1.default.createElement("span", { className: "notification-badge" }, unreadCount)),
111
+ showNotifications && (react_1.default.createElement("div", { className: "notification-dropdown" },
112
+ react_1.default.createElement("div", { className: "notification-header" },
113
+ react_1.default.createElement("h3", null, "Notifications"),
114
+ react_1.default.createElement("button", { onClick: () => setShowNotifications(false) }, "\u2715")),
115
+ react_1.default.createElement("div", { className: "notification-list" }, notifications.length === 0 ? (react_1.default.createElement("div", { className: "notification-empty" }, "No notifications")) : (notifications.slice(0, 10).map((notif) => (react_1.default.createElement("div", { key: notif.id, className: `notification-item ${notif.type} ${notif.read ? 'read' : 'unread'}` },
116
+ react_1.default.createElement("div", { className: "notification-content" },
117
+ react_1.default.createElement("strong", null, notif.title),
118
+ react_1.default.createElement("p", null, notif.message),
119
+ react_1.default.createElement("span", { className: "notification-time" }, notif.timestamp.toLocaleTimeString())))))))))),
120
+ react_1.default.createElement("button", { className: "action-btn", onClick: refreshData, title: "Refresh Data (Ctrl+R)" },
121
+ react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor" },
122
+ react_1.default.createElement("path", { d: "M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z" })),
123
+ "Refresh"),
124
+ react_1.default.createElement("button", { className: "action-btn", onClick: exportData, title: "Export Data (Ctrl+E)" },
125
+ react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor" },
126
+ react_1.default.createElement("path", { d: "M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z" })),
127
+ "Export"),
128
+ react_1.default.createElement("button", { className: "action-btn secondary", onClick: resetFilters, title: "Reset Filters" }, "Reset")),
129
+ showFilters && (react_1.default.createElement("div", { className: "filters-panel" },
130
+ react_1.default.createElement("h3", null, "Agent Filter"),
131
+ react_1.default.createElement("div", { className: "agent-checkboxes" }, agents.map((agent) => (react_1.default.createElement("label", { key: agent, className: "agent-checkbox" },
132
+ react_1.default.createElement("input", { type: "checkbox", checked: filters.agents.includes(agent), onChange: () => toggleAgent(agent) }),
133
+ react_1.default.createElement("span", null, agent))))),
134
+ react_1.default.createElement("h3", null, "Search"),
135
+ react_1.default.createElement("input", { type: "text", placeholder: "Search events, metrics...", value: filters.searchTerm, onChange: (e) => updateFilters({ searchTerm: e.target.value }), className: "search-input" })))));
136
+ };
137
+ exports.DashboardHeader = DashboardHeader;
138
+ //# sourceMappingURL=DashboardHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardHeader.js","sourceRoot":"","sources":["../../../src/components/Dashboard/DashboardHeader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * AST Evaluator
3
+ *
4
+ * Analyzes code structure using Abstract Syntax Tree parsing.
5
+ * Calculates metrics like cyclomatic complexity, function length, cognitive complexity.
6
+ * Uses @babel/parser for JavaScript/TypeScript analysis.
7
+ *
8
+ * @module constitution/evaluators/ast-evaluator
9
+ * @version 1.0.0
10
+ */
11
+ import type { RuleCondition } from '../schema';
12
+ import { BaseEvaluator, type CheckResult, type EvaluationContext } from './base';
13
+ /**
14
+ * AST Evaluator for structural code analysis
15
+ */
16
+ export declare class ASTEvaluator extends BaseEvaluator {
17
+ readonly type: "ast";
18
+ canHandle(condition: RuleCondition): boolean;
19
+ evaluate(condition: RuleCondition, context: EvaluationContext): Promise<CheckResult>;
20
+ /**
21
+ * Parse source code to AST
22
+ * @param code - Source code
23
+ * @param language - Programming language
24
+ * @returns Parsed AST
25
+ */
26
+ private parseCode;
27
+ /**
28
+ * Calculate AST metrics
29
+ * @param ast - Parsed AST
30
+ * @param sourceCode - Original source code
31
+ * @returns Calculated metrics
32
+ */
33
+ private calculateMetrics;
34
+ /**
35
+ * Get metric value by field name
36
+ * @param field - Field name
37
+ * @param metrics - Calculated metrics
38
+ * @returns Metric value
39
+ */
40
+ private getMetricValue;
41
+ }
42
+ //# sourceMappingURL=ast-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-evaluator.d.ts","sourceRoot":"","sources":["../../../src/constitution/evaluators/ast-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAoCjF;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAE/B,SAAS,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO;IAItC,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4C1F;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAmBjB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAgExB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAqBvB"}
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ /**
3
+ * AST Evaluator
4
+ *
5
+ * Analyzes code structure using Abstract Syntax Tree parsing.
6
+ * Calculates metrics like cyclomatic complexity, function length, cognitive complexity.
7
+ * Uses @babel/parser for JavaScript/TypeScript analysis.
8
+ *
9
+ * @module constitution/evaluators/ast-evaluator
10
+ * @version 1.0.0
11
+ */
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ASTEvaluator = void 0;
17
+ const parser_1 = require("@babel/parser");
18
+ const traverse_1 = __importDefault(require("@babel/traverse"));
19
+ const base_1 = require("./base");
20
+ /**
21
+ * Fields that AST evaluator can check
22
+ */
23
+ const AST_FIELDS = new Set([
24
+ 'cyclomatic_complexity',
25
+ 'cognitive_complexity',
26
+ 'function_lines',
27
+ 'file_lines',
28
+ 'function_count',
29
+ 'max_nesting_depth',
30
+ 'parameter_count',
31
+ 'nesting_depth',
32
+ ]);
33
+ /**
34
+ * AST Evaluator for structural code analysis
35
+ */
36
+ class ASTEvaluator extends base_1.BaseEvaluator {
37
+ constructor() {
38
+ super(...arguments);
39
+ this.type = 'ast';
40
+ }
41
+ canHandle(condition) {
42
+ return AST_FIELDS.has(condition.field);
43
+ }
44
+ async evaluate(condition, context) {
45
+ if (!context.sourceCode) {
46
+ return this.createResult(false, condition.field, null, condition.value, condition.operator, 'No source code provided for AST analysis');
47
+ }
48
+ try {
49
+ // Parse source code to AST
50
+ const ast = this.parseCode(context.sourceCode, context.language);
51
+ // Calculate metrics
52
+ const metrics = this.calculateMetrics(ast, context.sourceCode);
53
+ // Get the requested metric value
54
+ const actualValue = this.getMetricValue(condition.field, metrics);
55
+ // Compare against expected value
56
+ const passed = this.compareValues(actualValue, condition.operator, condition.value);
57
+ return this.createResult(passed, condition.field, actualValue, condition.value, condition.operator);
58
+ }
59
+ catch (error) {
60
+ return this.createResult(false, condition.field, null, condition.value, condition.operator, `AST analysis failed: ${error instanceof Error ? error.message : String(error)}`);
61
+ }
62
+ }
63
+ /**
64
+ * Parse source code to AST
65
+ * @param code - Source code
66
+ * @param language - Programming language
67
+ * @returns Parsed AST
68
+ */
69
+ parseCode(code, language = 'typescript') {
70
+ const isTypeScript = language === 'typescript' || language === 'tsx';
71
+ return (0, parser_1.parse)(code, {
72
+ sourceType: 'module',
73
+ plugins: [
74
+ 'jsx',
75
+ ...(isTypeScript ? ['typescript'] : []),
76
+ 'decorators-legacy',
77
+ 'classProperties',
78
+ 'objectRestSpread',
79
+ 'asyncGenerators',
80
+ 'dynamicImport',
81
+ 'optionalChaining',
82
+ 'nullishCoalescingOperator',
83
+ ],
84
+ });
85
+ }
86
+ /**
87
+ * Calculate AST metrics
88
+ * @param ast - Parsed AST
89
+ * @param sourceCode - Original source code
90
+ * @returns Calculated metrics
91
+ */
92
+ calculateMetrics(ast, sourceCode) {
93
+ const metrics = {
94
+ cyclomaticComplexity: 1,
95
+ cognitiveComplexity: 0,
96
+ functionLines: 0,
97
+ fileLines: sourceCode.split('\n').length,
98
+ functionCount: 0,
99
+ maxNestingDepth: 0,
100
+ parameterCount: 0,
101
+ };
102
+ let currentNestingDepth = 0;
103
+ let maxFunctionLines = 0;
104
+ let maxCyclomaticComplexity = 1;
105
+ let maxCognitiveComplexity = 0;
106
+ let maxParameterCount = 0;
107
+ (0, traverse_1.default)(ast, {
108
+ Function: {
109
+ enter(path) {
110
+ metrics.functionCount++;
111
+ currentNestingDepth++;
112
+ // Calculate function length
113
+ const { start, end } = path.node.loc || { start: { line: 0 }, end: { line: 0 } };
114
+ const functionLines = end.line - start.line + 1;
115
+ maxFunctionLines = Math.max(maxFunctionLines, functionLines);
116
+ // Calculate cyclomatic complexity for this function
117
+ const complexity = calculateCyclomaticComplexity(path);
118
+ maxCyclomaticComplexity = Math.max(maxCyclomaticComplexity, complexity);
119
+ // Calculate cognitive complexity for this function
120
+ const cognitiveComplexity = calculateCognitiveComplexity(path);
121
+ maxCognitiveComplexity = Math.max(maxCognitiveComplexity, cognitiveComplexity);
122
+ // Count parameters
123
+ const paramCount = path.node.params.length;
124
+ maxParameterCount = Math.max(maxParameterCount, paramCount);
125
+ },
126
+ exit() {
127
+ currentNestingDepth--;
128
+ },
129
+ },
130
+ BlockStatement: {
131
+ enter() {
132
+ currentNestingDepth++;
133
+ metrics.maxNestingDepth = Math.max(metrics.maxNestingDepth, currentNestingDepth);
134
+ },
135
+ exit() {
136
+ currentNestingDepth--;
137
+ },
138
+ },
139
+ });
140
+ metrics.functionLines = maxFunctionLines;
141
+ metrics.cyclomaticComplexity = maxCyclomaticComplexity;
142
+ metrics.cognitiveComplexity = maxCognitiveComplexity;
143
+ metrics.parameterCount = maxParameterCount;
144
+ return metrics;
145
+ }
146
+ /**
147
+ * Get metric value by field name
148
+ * @param field - Field name
149
+ * @param metrics - Calculated metrics
150
+ * @returns Metric value
151
+ */
152
+ getMetricValue(field, metrics) {
153
+ switch (field) {
154
+ case 'cyclomatic_complexity':
155
+ return metrics.cyclomaticComplexity;
156
+ case 'cognitive_complexity':
157
+ return metrics.cognitiveComplexity;
158
+ case 'function_lines':
159
+ return metrics.functionLines;
160
+ case 'file_lines':
161
+ return metrics.fileLines;
162
+ case 'function_count':
163
+ return metrics.functionCount;
164
+ case 'max_nesting_depth':
165
+ case 'nesting_depth':
166
+ return metrics.maxNestingDepth;
167
+ case 'parameter_count':
168
+ return metrics.parameterCount;
169
+ default:
170
+ return 0;
171
+ }
172
+ }
173
+ }
174
+ exports.ASTEvaluator = ASTEvaluator;
175
+ /**
176
+ * Calculate cyclomatic complexity for a function
177
+ * @param path - Function AST path
178
+ * @returns Cyclomatic complexity
179
+ */
180
+ function calculateCyclomaticComplexity(path) {
181
+ let complexity = 1; // Start at 1
182
+ path.traverse({
183
+ IfStatement() { complexity++; },
184
+ ConditionalExpression() { complexity++; },
185
+ LogicalExpression(logicalPath) {
186
+ if (logicalPath.node.operator === '||' || logicalPath.node.operator === '&&') {
187
+ complexity++;
188
+ }
189
+ },
190
+ ForStatement() { complexity++; },
191
+ ForInStatement() { complexity++; },
192
+ ForOfStatement() { complexity++; },
193
+ WhileStatement() { complexity++; },
194
+ DoWhileStatement() { complexity++; },
195
+ SwitchCase(casePath) {
196
+ if (casePath.node.test !== null) { // Don't count default case
197
+ complexity++;
198
+ }
199
+ },
200
+ CatchClause() { complexity++; },
201
+ });
202
+ return complexity;
203
+ }
204
+ /**
205
+ * Calculate cognitive complexity for a function
206
+ * Cognitive complexity penalizes nested control structures more heavily
207
+ * @param path - Function AST path
208
+ * @returns Cognitive complexity
209
+ */
210
+ function calculateCognitiveComplexity(path) {
211
+ let complexity = 0;
212
+ let nestingLevel = 0;
213
+ path.traverse({
214
+ IfStatement: {
215
+ enter() {
216
+ complexity += 1 + nestingLevel;
217
+ nestingLevel++;
218
+ },
219
+ exit() {
220
+ nestingLevel--;
221
+ },
222
+ },
223
+ ConditionalExpression: {
224
+ enter() {
225
+ complexity += 1 + nestingLevel;
226
+ nestingLevel++;
227
+ },
228
+ exit() {
229
+ nestingLevel--;
230
+ },
231
+ },
232
+ SwitchStatement: {
233
+ enter() {
234
+ complexity += 1 + nestingLevel;
235
+ nestingLevel++;
236
+ },
237
+ exit() {
238
+ nestingLevel--;
239
+ },
240
+ },
241
+ ForStatement: {
242
+ enter() {
243
+ complexity += 1 + nestingLevel;
244
+ nestingLevel++;
245
+ },
246
+ exit() {
247
+ nestingLevel--;
248
+ },
249
+ },
250
+ ForInStatement: {
251
+ enter() {
252
+ complexity += 1 + nestingLevel;
253
+ nestingLevel++;
254
+ },
255
+ exit() {
256
+ nestingLevel--;
257
+ },
258
+ },
259
+ ForOfStatement: {
260
+ enter() {
261
+ complexity += 1 + nestingLevel;
262
+ nestingLevel++;
263
+ },
264
+ exit() {
265
+ nestingLevel--;
266
+ },
267
+ },
268
+ WhileStatement: {
269
+ enter() {
270
+ complexity += 1 + nestingLevel;
271
+ nestingLevel++;
272
+ },
273
+ exit() {
274
+ nestingLevel--;
275
+ },
276
+ },
277
+ DoWhileStatement: {
278
+ enter() {
279
+ complexity += 1 + nestingLevel;
280
+ nestingLevel++;
281
+ },
282
+ exit() {
283
+ nestingLevel--;
284
+ },
285
+ },
286
+ CatchClause: {
287
+ enter() {
288
+ complexity += 1 + nestingLevel;
289
+ nestingLevel++;
290
+ },
291
+ exit() {
292
+ nestingLevel--;
293
+ },
294
+ },
295
+ LogicalExpression(logicalPath) {
296
+ if (logicalPath.node.operator === '&&' || logicalPath.node.operator === '||') {
297
+ complexity += 1;
298
+ }
299
+ },
300
+ });
301
+ return complexity;
302
+ }
303
+ //# sourceMappingURL=ast-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-evaluator.js","sourceRoot":"","sources":["../../../src/constitution/evaluators/ast-evaluator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAEH,0CAAwD;AACxD,+DAA0D;AAG1D,iCAAiF;AAsBjF;;GAEG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,uBAAuB;IACvB,sBAAsB;IACtB,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,eAAe;CAChB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAa,YAAa,SAAQ,oBAAa;IAA/C;;QACW,SAAI,GAAG,KAAc,CAAC;IA4KjC,CAAC;IA1KC,SAAS,CAAC,SAAwB;QAChC,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAwB,EAAE,OAA0B;QACjE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,YAAY,CACtB,KAAK,EACL,SAAS,CAAC,KAAK,EACf,IAAI,EACJ,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,QAAQ,EAClB,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEjE,oBAAoB;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAE/D,iCAAiC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAElE,iCAAiC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAEpF,OAAO,IAAI,CAAC,YAAY,CACtB,MAAM,EACN,SAAS,CAAC,KAAK,EACf,WAAW,EACX,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,QAAQ,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,YAAY,CACtB,KAAK,EACL,SAAS,CAAC,KAAK,EACf,IAAI,EACJ,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,QAAQ,EAClB,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,IAAY,EAAE,WAAmB,YAAY;QAC7D,MAAM,YAAY,GAAG,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,KAAK,CAAC;QAErE,OAAO,IAAA,cAAK,EAAC,IAAI,EAAE;YACjB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE;gBACP,KAAK;gBACL,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,mBAAmB;gBACnB,iBAAiB;gBACjB,kBAAkB;gBAClB,iBAAiB;gBACjB,eAAe;gBACf,kBAAkB;gBAClB,2BAA2B;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,GAAwB,EAAE,UAAkB;QACnE,MAAM,OAAO,GAAe;YAC1B,oBAAoB,EAAE,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;YACxC,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,cAAc,EAAE,CAAC;SAClB,CAAC;QAEF,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAChC,IAAI,sBAAsB,GAAG,CAAC,CAAC;QAC/B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,IAAA,kBAAQ,EAAC,GAAG,EAAE;YACZ,QAAQ,EAAE;gBACR,KAAK,CAAC,IAA0B;oBAC9B,OAAO,CAAC,aAAa,EAAE,CAAC;oBACxB,mBAAmB,EAAE,CAAC;oBAEtB,4BAA4B;oBAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjF,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;oBAChD,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAE7D,oDAAoD;oBACpD,MAAM,UAAU,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;oBACvD,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;oBAExE,mDAAmD;oBACnD,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;oBAC/D,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;oBAE/E,mBAAmB;oBACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC3C,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI;oBACF,mBAAmB,EAAE,CAAC;gBACxB,CAAC;aACF;YAED,cAAc,EAAE;gBACd,KAAK;oBACH,mBAAmB,EAAE,CAAC;oBACtB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI;oBACF,mBAAmB,EAAE,CAAC;gBACxB,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,aAAa,GAAG,gBAAgB,CAAC;QACzC,OAAO,CAAC,oBAAoB,GAAG,uBAAuB,CAAC;QACvD,OAAO,CAAC,mBAAmB,GAAG,sBAAsB,CAAC;QACrD,OAAO,CAAC,cAAc,GAAG,iBAAiB,CAAC;QAE3C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,KAAa,EAAE,OAAmB;QACvD,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,uBAAuB;gBAC1B,OAAO,OAAO,CAAC,oBAAoB,CAAC;YACtC,KAAK,sBAAsB;gBACzB,OAAO,OAAO,CAAC,mBAAmB,CAAC;YACrC,KAAK,gBAAgB;gBACnB,OAAO,OAAO,CAAC,aAAa,CAAC;YAC/B,KAAK,YAAY;gBACf,OAAO,OAAO,CAAC,SAAS,CAAC;YAC3B,KAAK,gBAAgB;gBACnB,OAAO,OAAO,CAAC,aAAa,CAAC;YAC/B,KAAK,mBAAmB,CAAC;YACzB,KAAK,eAAe;gBAClB,OAAO,OAAO,CAAC,eAAe,CAAC;YACjC,KAAK,iBAAiB;gBACpB,OAAO,OAAO,CAAC,cAAc,CAAC;YAChC;gBACE,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;CACF;AA7KD,oCA6KC;AAED;;;;GAIG;AACH,SAAS,6BAA6B,CAAC,IAA0B;IAC/D,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,aAAa;IAEjC,IAAI,CAAC,QAAQ,CAAC;QACZ,WAAW,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QAC/B,qBAAqB,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QACzC,iBAAiB,CAAC,WAAW;YAC3B,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC7E,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QACD,YAAY,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QAChC,cAAc,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QAClC,cAAc,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QAClC,cAAc,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QAClC,gBAAgB,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QACpC,UAAU,CAAC,QAAQ;YACjB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,2BAA2B;gBAC5D,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QACD,WAAW,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,IAA0B;IAC9D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,CAAC,QAAQ,CAAC;QACZ,WAAW,EAAE;YACX,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,qBAAqB,EAAE;YACrB,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,eAAe,EAAE;YACf,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,YAAY,EAAE;YACZ,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,cAAc,EAAE;YACd,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,cAAc,EAAE;YACd,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,cAAc,EAAE;YACd,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,gBAAgB,EAAE;YAChB,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,WAAW,EAAE;YACX,KAAK;gBACH,UAAU,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC/B,YAAY,EAAE,CAAC;YACjB,CAAC;YACD,IAAI;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC;SACF;QAED,iBAAiB,CAAC,WAAW;YAC3B,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC7E,UAAU,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Base Evaluator Interface
3
+ *
4
+ * Defines the contract for all clause evaluators in the constitution framework.
5
+ * Evaluators analyze code/data against constitution rules and return evaluation results.
6
+ *
7
+ * @module constitution/evaluators/base
8
+ * @version 1.0.0
9
+ */
10
+ import type { RuleCondition, ConditionOperator } from '../schema';
11
+ /**
12
+ * Check types supported by evaluators
13
+ */
14
+ export type CheckType = 'ast' | 'metric' | 'pattern' | 'semantic';
15
+ /**
16
+ * Evaluation context providing data for checks
17
+ */
18
+ export interface EvaluationContext {
19
+ /** Source code to evaluate */
20
+ sourceCode?: string;
21
+ /** File path being evaluated */
22
+ filePath?: string;
23
+ /** Programming language */
24
+ language?: string;
25
+ /** Pre-calculated metrics */
26
+ metrics?: Record<string, number>;
27
+ /** Additional context data */
28
+ data?: Record<string, unknown>;
29
+ }
30
+ /**
31
+ * Result of a single check evaluation
32
+ */
33
+ export interface CheckResult {
34
+ /** Whether the check passed */
35
+ passed: boolean;
36
+ /** Actual value found */
37
+ actualValue: unknown;
38
+ /** Expected value from condition */
39
+ expectedValue: unknown;
40
+ /** Operator used for comparison */
41
+ operator: ConditionOperator;
42
+ /** Field that was checked */
43
+ field: string;
44
+ /** Optional message */
45
+ message?: string;
46
+ /** Additional metadata */
47
+ metadata?: Record<string, unknown>;
48
+ }
49
+ /**
50
+ * Configuration for an evaluator
51
+ */
52
+ export interface EvaluatorConfig {
53
+ /** Evaluator type */
54
+ type: CheckType;
55
+ /** Enabled state */
56
+ enabled?: boolean;
57
+ /** Timeout in milliseconds */
58
+ timeout?: number;
59
+ /** Custom configuration */
60
+ options?: Record<string, unknown>;
61
+ }
62
+ /**
63
+ * Base evaluator interface
64
+ */
65
+ export interface IEvaluator {
66
+ /** Evaluator type */
67
+ readonly type: CheckType;
68
+ /**
69
+ * Check if this evaluator can handle the given condition
70
+ * @param condition - Rule condition to check
71
+ * @returns True if evaluator can handle this condition
72
+ */
73
+ canHandle(condition: RuleCondition): boolean;
74
+ /**
75
+ * Evaluate a condition against the context
76
+ * @param condition - Rule condition to evaluate
77
+ * @param context - Evaluation context with source code/data
78
+ * @returns Check result
79
+ */
80
+ evaluate(condition: RuleCondition, context: EvaluationContext): Promise<CheckResult>;
81
+ /**
82
+ * Initialize the evaluator with configuration
83
+ * @param config - Evaluator configuration
84
+ */
85
+ initialize?(config: EvaluatorConfig): Promise<void>;
86
+ /**
87
+ * Clean up resources
88
+ */
89
+ dispose?(): Promise<void>;
90
+ }
91
+ /**
92
+ * Abstract base class for evaluators
93
+ */
94
+ export declare abstract class BaseEvaluator implements IEvaluator {
95
+ abstract readonly type: CheckType;
96
+ protected config?: EvaluatorConfig;
97
+ abstract canHandle(condition: RuleCondition): boolean;
98
+ abstract evaluate(condition: RuleCondition, context: EvaluationContext): Promise<CheckResult>;
99
+ initialize(config: EvaluatorConfig): Promise<void>;
100
+ dispose(): Promise<void>;
101
+ /**
102
+ * Helper to compare values using operator
103
+ * @param actual - Actual value
104
+ * @param operator - Comparison operator
105
+ * @param expected - Expected value
106
+ * @returns True if comparison passes
107
+ */
108
+ protected compareValues(actual: unknown, operator: ConditionOperator, expected: unknown): boolean;
109
+ /**
110
+ * Create a check result
111
+ * @param passed - Whether check passed
112
+ * @param field - Field checked
113
+ * @param actual - Actual value
114
+ * @param expected - Expected value
115
+ * @param operator - Operator used
116
+ * @param message - Optional message
117
+ * @returns Check result
118
+ */
119
+ protected createResult(passed: boolean, field: string, actual: unknown, expected: unknown, operator: ConditionOperator, message?: string): CheckResult;
120
+ }
121
+ /**
122
+ * Factory for creating evaluators
123
+ */
124
+ export declare class EvaluatorFactory {
125
+ private static evaluators;
126
+ /**
127
+ * Register an evaluator type
128
+ * @param type - Check type
129
+ * @param factory - Factory function to create evaluator
130
+ */
131
+ static register(type: CheckType, factory: () => IEvaluator): void;
132
+ /**
133
+ * Create an evaluator for the given type
134
+ * @param type - Check type
135
+ * @returns Evaluator instance or null if not found
136
+ */
137
+ static create(type: CheckType): IEvaluator | null;
138
+ /**
139
+ * Get all registered evaluator types
140
+ * @returns Array of check types
141
+ */
142
+ static getTypes(): CheckType[];
143
+ }
144
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/constitution/evaluators/base.ts"],"names":[],"mappings":"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"}