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,568 @@
1
+ "use strict";
2
+ /**
3
+ * Consensus Algorithms for Agent Voting
4
+ *
5
+ * Implements three consensus mechanisms:
6
+ * 1. Majority Consensus - Simple majority voting
7
+ * 2. Weighted Consensus - Expertise-based weighting
8
+ * 3. Bayesian Consensus - Probabilistic inference
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ConsensusFactory = exports.ConsensusEngine = void 0;
12
+ exports.calculateVoteTally = calculateVoteTally;
13
+ exports.majorityConsensus = majorityConsensus;
14
+ exports.weightedConsensus = weightedConsensus;
15
+ exports.bayesianConsensus = bayesianConsensus;
16
+ exports.calculateAgreementMetrics = calculateAgreementMetrics;
17
+ const protocol_1 = require("./protocol");
18
+ /**
19
+ * Calculate vote tally from collected votes
20
+ */
21
+ function calculateVoteTally(votes, clause) {
22
+ const approvals = votes.filter(v => v.vote === protocol_1.VoteType.APPROVE).length;
23
+ const rejections = votes.filter(v => v.vote === protocol_1.VoteType.REJECT).length;
24
+ const abstentions = votes.filter(v => v.vote === protocol_1.VoteType.ABSTAIN).length;
25
+ return {
26
+ clauseId: clause.id,
27
+ approvals,
28
+ rejections,
29
+ abstentions,
30
+ totalVotes: votes.length,
31
+ requiredQuorum: clause.requiredQuorum,
32
+ votes
33
+ };
34
+ }
35
+ /**
36
+ * Majority Consensus Algorithm
37
+ *
38
+ * Simple majority voting with quorum requirements
39
+ * - Requires minimum quorum participation
40
+ * - Approves if >50% of votes are approvals
41
+ * - Handles ties with configurable tie-breaker
42
+ */
43
+ function majorityConsensus(tally, config) {
44
+ const { approvals, rejections, abstentions, totalVotes, requiredQuorum } = tally;
45
+ // Filter out low-confidence votes
46
+ const validVotes = tally.votes.filter(v => v.confidence >= config.confidenceThreshold);
47
+ const validApprovals = validVotes.filter(v => v.vote === protocol_1.VoteType.APPROVE).length;
48
+ const validRejections = validVotes.filter(v => v.vote === protocol_1.VoteType.REJECT).length;
49
+ const validTotal = validVotes.length;
50
+ // Check quorum
51
+ const quorumMet = validTotal >= Math.max(requiredQuorum, config.minimumQuorum);
52
+ if (!quorumMet) {
53
+ return {
54
+ clauseId: tally.clauseId,
55
+ decision: 'disputed',
56
+ confidence: 0,
57
+ agreement: 0,
58
+ algorithm: 'majority',
59
+ metadata: {
60
+ totalVotes,
61
+ approvals,
62
+ rejections,
63
+ abstentions,
64
+ quorumMet: false
65
+ }
66
+ };
67
+ }
68
+ // Calculate approval percentage (excluding abstentions)
69
+ const votingTotal = validApprovals + validRejections;
70
+ const approvalRate = votingTotal > 0 ? validApprovals / votingTotal : 0;
71
+ // Determine decision
72
+ let decision;
73
+ if (approvalRate > config.approvalThreshold) {
74
+ decision = 'approved';
75
+ }
76
+ else if (approvalRate < (1 - config.approvalThreshold)) {
77
+ decision = 'rejected';
78
+ }
79
+ else {
80
+ // Tie - use tie-breaker
81
+ decision = handleTieBreaker(config.tieBreaker, tally);
82
+ }
83
+ // Calculate confidence based on vote distribution
84
+ const confidence = calculateMajorityConfidence(validApprovals, validRejections, validTotal);
85
+ // Calculate agreement (how unified the vote is)
86
+ const agreement = calculateAgreement(validApprovals, validRejections, validTotal);
87
+ // Identify disputed agents (those who voted against the decision)
88
+ const disputedAgents = tally.votes
89
+ .filter(v => {
90
+ if (decision === 'approved')
91
+ return v.vote === protocol_1.VoteType.REJECT;
92
+ if (decision === 'rejected')
93
+ return v.vote === protocol_1.VoteType.APPROVE;
94
+ return false;
95
+ })
96
+ .map(v => v.agentId);
97
+ return {
98
+ clauseId: tally.clauseId,
99
+ decision,
100
+ confidence,
101
+ agreement,
102
+ algorithm: 'majority',
103
+ metadata: {
104
+ totalVotes,
105
+ approvals,
106
+ rejections,
107
+ abstentions,
108
+ quorumMet
109
+ },
110
+ disputedAgents: disputedAgents.length > 0 ? disputedAgents : undefined
111
+ };
112
+ }
113
+ /**
114
+ * Weighted Consensus Algorithm
115
+ *
116
+ * Uses agent expertise to weight votes
117
+ * - Agents with higher expertise have more influence
118
+ * - Historical accuracy affects weight
119
+ * - Supports multiple weighting strategies
120
+ */
121
+ function weightedConsensus(tally, expertiseMap, config) {
122
+ const { requiredQuorum, votes } = tally;
123
+ // Filter valid votes
124
+ const validVotes = votes.filter(v => v.confidence >= config.confidenceThreshold);
125
+ // Check quorum
126
+ const quorumMet = validVotes.length >= Math.max(requiredQuorum, config.minimumQuorum);
127
+ if (!quorumMet) {
128
+ return {
129
+ clauseId: tally.clauseId,
130
+ decision: 'disputed',
131
+ confidence: 0,
132
+ agreement: 0,
133
+ algorithm: 'weighted',
134
+ metadata: {
135
+ totalVotes: tally.totalVotes,
136
+ approvals: tally.approvals,
137
+ rejections: tally.rejections,
138
+ abstentions: tally.abstentions,
139
+ quorumMet: false
140
+ }
141
+ };
142
+ }
143
+ // Calculate weighted votes
144
+ let weightedApprovals = 0;
145
+ let weightedRejections = 0;
146
+ let totalWeight = 0;
147
+ const strategy = config.weightingStrategy || 'linear';
148
+ for (const vote of validVotes) {
149
+ if (vote.vote === protocol_1.VoteType.ABSTAIN)
150
+ continue;
151
+ const expertise = expertiseMap.get(vote.agentId);
152
+ const weight = calculateAgentWeight(expertise, vote, strategy);
153
+ totalWeight += weight;
154
+ if (vote.vote === protocol_1.VoteType.APPROVE) {
155
+ weightedApprovals += weight;
156
+ }
157
+ else if (vote.vote === protocol_1.VoteType.REJECT) {
158
+ weightedRejections += weight;
159
+ }
160
+ }
161
+ // Calculate weighted approval rate
162
+ const weightedApprovalRate = totalWeight > 0 ? weightedApprovals / totalWeight : 0;
163
+ // Determine decision
164
+ let decision;
165
+ if (weightedApprovalRate > config.approvalThreshold) {
166
+ decision = 'approved';
167
+ }
168
+ else if (weightedApprovalRate < (1 - config.approvalThreshold)) {
169
+ decision = 'rejected';
170
+ }
171
+ else {
172
+ decision = handleTieBreaker(config.tieBreaker, tally);
173
+ }
174
+ // Calculate confidence based on weighted distribution and vote confidence
175
+ const confidence = calculateWeightedConfidence(weightedApprovals, weightedRejections, totalWeight, validVotes);
176
+ // Calculate agreement
177
+ const agreement = calculateAgreement(weightedApprovals, weightedRejections, totalWeight);
178
+ // Identify disputed agents
179
+ const disputedAgents = votes
180
+ .filter(v => {
181
+ if (decision === 'approved')
182
+ return v.vote === protocol_1.VoteType.REJECT;
183
+ if (decision === 'rejected')
184
+ return v.vote === protocol_1.VoteType.APPROVE;
185
+ return false;
186
+ })
187
+ .map(v => v.agentId);
188
+ return {
189
+ clauseId: tally.clauseId,
190
+ decision,
191
+ confidence,
192
+ agreement,
193
+ algorithm: 'weighted',
194
+ metadata: {
195
+ totalVotes: tally.totalVotes,
196
+ approvals: tally.approvals,
197
+ rejections: tally.rejections,
198
+ abstentions: tally.abstentions,
199
+ quorumMet
200
+ },
201
+ disputedAgents: disputedAgents.length > 0 ? disputedAgents : undefined
202
+ };
203
+ }
204
+ /**
205
+ * Bayesian Consensus Algorithm
206
+ *
207
+ * Uses Bayesian inference to update beliefs based on votes
208
+ * - Incorporates prior beliefs about clause approval
209
+ * - Updates posterior probability with each vote
210
+ * - Accounts for vote confidence and agent expertise
211
+ */
212
+ function bayesianConsensus(tally, prior, expertiseMap, config) {
213
+ const { requiredQuorum, votes } = tally;
214
+ // Filter valid votes
215
+ const validVotes = votes.filter(v => v.confidence >= config.confidenceThreshold);
216
+ // Check quorum
217
+ const quorumMet = validVotes.length >= Math.max(requiredQuorum, config.minimumQuorum);
218
+ if (!quorumMet) {
219
+ return {
220
+ clauseId: tally.clauseId,
221
+ decision: 'disputed',
222
+ confidence: 0,
223
+ agreement: 0,
224
+ algorithm: 'bayesian',
225
+ metadata: {
226
+ totalVotes: tally.totalVotes,
227
+ approvals: tally.approvals,
228
+ rejections: tally.rejections,
229
+ abstentions: tally.abstentions,
230
+ quorumMet: false
231
+ }
232
+ };
233
+ }
234
+ // Start with prior probability
235
+ let posteriorApproval = prior.priorProbability;
236
+ let posteriorRejection = 1 - prior.priorProbability;
237
+ // Bayesian update with each vote
238
+ for (const vote of validVotes) {
239
+ if (vote.vote === protocol_1.VoteType.ABSTAIN)
240
+ continue;
241
+ const expertise = expertiseMap.get(vote.agentId);
242
+ // Likelihood: P(vote | true state)
243
+ // High expertise agents are more likely to be correct
244
+ const accuracy = expertise ? expertise.successRate : 0.5;
245
+ // Update based on vote
246
+ if (vote.vote === protocol_1.VoteType.APPROVE) {
247
+ // P(approve | should approve) = accuracy
248
+ // P(approve | should reject) = 1 - accuracy
249
+ const likelihood = accuracy * vote.confidence;
250
+ const falsePositive = (1 - accuracy) * vote.confidence;
251
+ // Bayesian update
252
+ const evidence = likelihood * posteriorApproval + falsePositive * posteriorRejection;
253
+ if (evidence > 0) {
254
+ posteriorApproval = (likelihood * posteriorApproval) / evidence;
255
+ posteriorRejection = 1 - posteriorApproval;
256
+ }
257
+ }
258
+ else if (vote.vote === protocol_1.VoteType.REJECT) {
259
+ // P(reject | should reject) = accuracy
260
+ // P(reject | should approve) = 1 - accuracy
261
+ const likelihood = accuracy * vote.confidence;
262
+ const falseNegative = (1 - accuracy) * vote.confidence;
263
+ // Bayesian update
264
+ const evidence = likelihood * posteriorRejection + falseNegative * posteriorApproval;
265
+ if (evidence > 0) {
266
+ posteriorRejection = (likelihood * posteriorRejection) / evidence;
267
+ posteriorApproval = 1 - posteriorRejection;
268
+ }
269
+ }
270
+ // Apply evidence weight to prevent over-updating
271
+ posteriorApproval = prior.priorProbability * (1 - prior.evidenceWeight) +
272
+ posteriorApproval * prior.evidenceWeight;
273
+ posteriorRejection = 1 - posteriorApproval;
274
+ }
275
+ // Determine decision based on posterior probability
276
+ let decision;
277
+ if (posteriorApproval > config.approvalThreshold) {
278
+ decision = 'approved';
279
+ }
280
+ else if (posteriorRejection > config.approvalThreshold) {
281
+ decision = 'rejected';
282
+ }
283
+ else {
284
+ decision = 'disputed';
285
+ }
286
+ // Confidence is the posterior probability of the decision
287
+ const confidence = decision === 'approved' ? posteriorApproval :
288
+ decision === 'rejected' ? posteriorRejection :
289
+ Math.max(posteriorApproval, posteriorRejection);
290
+ // Agreement based on how close votes align with posterior
291
+ const agreement = calculateBayesianAgreement(validVotes, posteriorApproval);
292
+ // Identify disputed agents
293
+ const disputedAgents = votes
294
+ .filter(v => {
295
+ if (decision === 'approved')
296
+ return v.vote === protocol_1.VoteType.REJECT;
297
+ if (decision === 'rejected')
298
+ return v.vote === protocol_1.VoteType.APPROVE;
299
+ return false;
300
+ })
301
+ .map(v => v.agentId);
302
+ return {
303
+ clauseId: tally.clauseId,
304
+ decision,
305
+ confidence,
306
+ agreement,
307
+ algorithm: 'bayesian',
308
+ metadata: {
309
+ totalVotes: tally.totalVotes,
310
+ approvals: tally.approvals,
311
+ rejections: tally.rejections,
312
+ abstentions: tally.abstentions,
313
+ quorumMet
314
+ },
315
+ disputedAgents: disputedAgents.length > 0 ? disputedAgents : undefined
316
+ };
317
+ }
318
+ /**
319
+ * Calculate agreement metrics between agents
320
+ */
321
+ function calculateAgreementMetrics(votes) {
322
+ const clauseId = votes[0]?.clauseId || '';
323
+ const agentVotes = new Map();
324
+ // Build agent vote map
325
+ for (const vote of votes) {
326
+ agentVotes.set(vote.agentId, vote.vote);
327
+ }
328
+ // Calculate pairwise agreement
329
+ const agentPairs = new Map();
330
+ const agents = Array.from(agentVotes.keys());
331
+ let totalPairs = 0;
332
+ let agreementSum = 0;
333
+ for (let i = 0; i < agents.length; i++) {
334
+ for (let j = i + 1; j < agents.length; j++) {
335
+ const agent1 = agents[i];
336
+ const agent2 = agents[j];
337
+ const vote1 = agentVotes.get(agent1);
338
+ const vote2 = agentVotes.get(agent2);
339
+ if (vote1 === protocol_1.VoteType.ABSTAIN || vote2 === protocol_1.VoteType.ABSTAIN)
340
+ continue;
341
+ const pairKey = `${agent1}:${agent2}`;
342
+ const agrees = vote1 === vote2 ? 1 : 0;
343
+ agentPairs.set(pairKey, agrees);
344
+ agreementSum += agrees;
345
+ totalPairs++;
346
+ }
347
+ }
348
+ const overallAgreement = totalPairs > 0 ? agreementSum / totalPairs : 0;
349
+ // Calculate polarization (variance from mean)
350
+ const approvals = votes.filter(v => v.vote === protocol_1.VoteType.APPROVE).length;
351
+ const rejections = votes.filter(v => v.vote === protocol_1.VoteType.REJECT).length;
352
+ const total = approvals + rejections;
353
+ const approvalRate = total > 0 ? approvals / total : 0.5;
354
+ // Polarization is high when approval rate is near 0.5
355
+ const polarization = 1 - Math.abs(approvalRate - 0.5) * 2;
356
+ // Average confidence
357
+ const avgConfidence = votes.reduce((sum, v) => sum + v.confidence, 0) / votes.length;
358
+ // Check unanimity
359
+ const firstVote = votes.find(v => v.vote !== protocol_1.VoteType.ABSTAIN)?.vote;
360
+ const unanimity = votes
361
+ .filter(v => v.vote !== protocol_1.VoteType.ABSTAIN)
362
+ .every(v => v.vote === firstVote);
363
+ return {
364
+ clauseId,
365
+ agentPairs,
366
+ overallAgreement,
367
+ polarization,
368
+ confidence: avgConfidence,
369
+ unanimity
370
+ };
371
+ }
372
+ // ========== Helper Functions ==========
373
+ /**
374
+ * Handle tie-breaking logic
375
+ */
376
+ function handleTieBreaker(tieBreaker, tally) {
377
+ if (tieBreaker === 'approve')
378
+ return 'approved';
379
+ if (tieBreaker === 'reject')
380
+ return 'rejected';
381
+ // For 'proposer' tie-breaker, we'd need the proposer's vote
382
+ // Default to disputed for now
383
+ return 'disputed';
384
+ }
385
+ /**
386
+ * Calculate confidence for majority consensus
387
+ */
388
+ function calculateMajorityConfidence(approvals, rejections, total) {
389
+ if (total === 0)
390
+ return 0;
391
+ const winningVotes = Math.max(approvals, rejections);
392
+ const losingVotes = Math.min(approvals, rejections);
393
+ // Confidence is higher when margin is larger
394
+ const margin = (winningVotes - losingVotes) / total;
395
+ const participation = total / (approvals + rejections);
396
+ return (margin * 0.7 + participation * 0.3);
397
+ }
398
+ /**
399
+ * Calculate confidence for weighted consensus
400
+ */
401
+ function calculateWeightedConfidence(weightedApprovals, weightedRejections, totalWeight, votes) {
402
+ if (totalWeight === 0)
403
+ return 0;
404
+ const weightedMargin = Math.abs(weightedApprovals - weightedRejections) / totalWeight;
405
+ const avgVoteConfidence = votes.reduce((sum, v) => sum + v.confidence, 0) / votes.length;
406
+ return (weightedMargin * 0.6 + avgVoteConfidence * 0.4);
407
+ }
408
+ /**
409
+ * Calculate agreement metric (how unified the vote is)
410
+ */
411
+ function calculateAgreement(approvals, rejections, total) {
412
+ if (total === 0)
413
+ return 0;
414
+ // Agreement is high when votes are unified
415
+ const majoritySize = Math.max(approvals, rejections);
416
+ return majoritySize / total;
417
+ }
418
+ /**
419
+ * Calculate Bayesian agreement (how well votes align with posterior)
420
+ */
421
+ function calculateBayesianAgreement(votes, posteriorApproval) {
422
+ if (votes.length === 0)
423
+ return 0;
424
+ let alignmentSum = 0;
425
+ let voteCount = 0;
426
+ for (const vote of votes) {
427
+ if (vote.vote === protocol_1.VoteType.ABSTAIN)
428
+ continue;
429
+ // How well does this vote align with the posterior?
430
+ const alignment = vote.vote === protocol_1.VoteType.APPROVE ?
431
+ posteriorApproval * vote.confidence :
432
+ (1 - posteriorApproval) * vote.confidence;
433
+ alignmentSum += alignment;
434
+ voteCount++;
435
+ }
436
+ return voteCount > 0 ? alignmentSum / voteCount : 0;
437
+ }
438
+ /**
439
+ * Calculate agent weight based on expertise and vote
440
+ */
441
+ function calculateAgentWeight(expertise, vote, strategy) {
442
+ if (!expertise) {
443
+ // Default weight for unknown agents
444
+ return vote.confidence * 0.5;
445
+ }
446
+ const baseWeight = expertise.expertiseLevel * expertise.successRate;
447
+ const confidenceWeight = vote.confidence;
448
+ let weight;
449
+ switch (strategy) {
450
+ case 'linear':
451
+ weight = baseWeight * confidenceWeight;
452
+ break;
453
+ case 'exponential':
454
+ // Exponential amplifies expertise differences
455
+ weight = Math.pow(baseWeight, 2) * confidenceWeight;
456
+ break;
457
+ case 'sigmoid':
458
+ // Sigmoid normalizes extreme values
459
+ weight = (1 / (1 + Math.exp(-5 * (baseWeight - 0.5)))) * confidenceWeight;
460
+ break;
461
+ default:
462
+ weight = baseWeight * confidenceWeight;
463
+ }
464
+ return Math.max(0, Math.min(1, weight)); // Clamp to [0, 1]
465
+ }
466
+ // ========== Engine & Factory Classes ==========
467
+ /**
468
+ * ConsensusEngine - Main consensus processing engine
469
+ *
470
+ * Provides a unified interface to all consensus algorithms
471
+ */
472
+ class ConsensusEngine {
473
+ constructor(config) {
474
+ this.config = config;
475
+ }
476
+ /**
477
+ * Execute consensus based on configured algorithm
478
+ */
479
+ execute(tally, expertiseMap, priors) {
480
+ switch (this.config.algorithm) {
481
+ case 'majority':
482
+ return majorityConsensus(tally, this.config);
483
+ case 'weighted':
484
+ if (!expertiseMap) {
485
+ throw new Error('Expertise map required for weighted consensus');
486
+ }
487
+ return weightedConsensus(tally, expertiseMap, this.config);
488
+ case 'bayesian':
489
+ if (!expertiseMap || !priors) {
490
+ throw new Error('Expertise map and priors required for Bayesian consensus');
491
+ }
492
+ const prior = priors.get(tally.clauseId);
493
+ if (!prior) {
494
+ throw new Error(`No prior found for clause ${tally.clauseId}`);
495
+ }
496
+ return bayesianConsensus(tally, prior, expertiseMap, this.config);
497
+ default:
498
+ throw new Error(`Unknown algorithm: ${this.config.algorithm}`);
499
+ }
500
+ }
501
+ /**
502
+ * Update configuration
503
+ */
504
+ updateConfig(config) {
505
+ this.config = { ...this.config, ...config };
506
+ }
507
+ /**
508
+ * Get current configuration
509
+ */
510
+ getConfig() {
511
+ return { ...this.config };
512
+ }
513
+ }
514
+ exports.ConsensusEngine = ConsensusEngine;
515
+ /**
516
+ * ConsensusFactory - Creates consensus engines with preset configurations
517
+ */
518
+ class ConsensusFactory {
519
+ /**
520
+ * Create a majority consensus engine with default settings
521
+ */
522
+ static createMajority(overrides) {
523
+ const defaultConfig = {
524
+ algorithm: 'majority',
525
+ minimumQuorum: 3,
526
+ approvalThreshold: 0.5,
527
+ confidenceThreshold: 0.3,
528
+ tieBreaker: 'reject'
529
+ };
530
+ return new ConsensusEngine({ ...defaultConfig, ...overrides });
531
+ }
532
+ /**
533
+ * Create a weighted consensus engine with default settings
534
+ */
535
+ static createWeighted(strategy = 'linear', overrides) {
536
+ const defaultConfig = {
537
+ algorithm: 'weighted',
538
+ minimumQuorum: 3,
539
+ approvalThreshold: 0.5,
540
+ confidenceThreshold: 0.3,
541
+ tieBreaker: 'reject',
542
+ weightingStrategy: strategy
543
+ };
544
+ return new ConsensusEngine({ ...defaultConfig, ...overrides });
545
+ }
546
+ /**
547
+ * Create a Bayesian consensus engine with default settings
548
+ */
549
+ static createBayesian(priors, overrides) {
550
+ const defaultConfig = {
551
+ algorithm: 'bayesian',
552
+ minimumQuorum: 3,
553
+ approvalThreshold: 0.6,
554
+ confidenceThreshold: 0.4,
555
+ tieBreaker: 'proposer',
556
+ bayesianPriors: priors
557
+ };
558
+ return new ConsensusEngine({ ...defaultConfig, ...overrides });
559
+ }
560
+ /**
561
+ * Create a custom consensus engine
562
+ */
563
+ static createCustom(config) {
564
+ return new ConsensusEngine(config);
565
+ }
566
+ }
567
+ exports.ConsensusFactory = ConsensusFactory;
568
+ //# sourceMappingURL=consensus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consensus.js","sourceRoot":"","sources":["../../src/voting/consensus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Voting orchestration module exports
3
+ * Phase 2 GOAP implementation - Action C8
4
+ */
5
+ export * from './types.js';
6
+ export * from './panel-assembly.js';
7
+ export * from './consensus.js';
8
+ export * from './orchestrator.js';
9
+ export { VotingOrchestrator } from './orchestrator.js';
10
+ export { PanelAssembler, DefaultVotingStrategy, DefaultAgentPool } from './panel-assembly.js';
11
+ export { ConsensusEngine, ConsensusFactory } from './consensus.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/voting/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,gBAAgB,EACjB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Voting orchestration module exports
4
+ * Phase 2 GOAP implementation - Action C8
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ConsensusFactory = exports.ConsensusEngine = exports.DefaultAgentPool = exports.DefaultVotingStrategy = exports.PanelAssembler = exports.VotingOrchestrator = void 0;
22
+ __exportStar(require("./types.js"), exports);
23
+ __exportStar(require("./panel-assembly.js"), exports);
24
+ __exportStar(require("./consensus.js"), exports);
25
+ __exportStar(require("./orchestrator.js"), exports);
26
+ // Re-export key classes for convenience
27
+ var orchestrator_js_1 = require("./orchestrator.js");
28
+ Object.defineProperty(exports, "VotingOrchestrator", { enumerable: true, get: function () { return orchestrator_js_1.VotingOrchestrator; } });
29
+ var panel_assembly_js_1 = require("./panel-assembly.js");
30
+ Object.defineProperty(exports, "PanelAssembler", { enumerable: true, get: function () { return panel_assembly_js_1.PanelAssembler; } });
31
+ Object.defineProperty(exports, "DefaultVotingStrategy", { enumerable: true, get: function () { return panel_assembly_js_1.DefaultVotingStrategy; } });
32
+ Object.defineProperty(exports, "DefaultAgentPool", { enumerable: true, get: function () { return panel_assembly_js_1.DefaultAgentPool; } });
33
+ var consensus_js_1 = require("./consensus.js");
34
+ Object.defineProperty(exports, "ConsensusEngine", { enumerable: true, get: function () { return consensus_js_1.ConsensusEngine; } });
35
+ Object.defineProperty(exports, "ConsensusFactory", { enumerable: true, get: function () { return consensus_js_1.ConsensusFactory; } });
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/voting/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,sDAAoC;AACpC,iDAA+B;AAC/B,oDAAkC;AAElC,wCAAwC;AACxC,qDAE2B;AADzB,qHAAA,kBAAkB,OAAA;AAGpB,yDAI6B;AAH3B,mHAAA,cAAc,OAAA;AACd,0HAAA,qBAAqB,OAAA;AACrB,qHAAA,gBAAgB,OAAA;AAGlB,+CAGwB;AAFtB,+GAAA,eAAe,OAAA;AACf,gHAAA,gBAAgB,OAAA"}