cognitive-kit 1.0.0-alpha.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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +110 -0
  3. package/cli-wrapper.cjs +5 -0
  4. package/dist/Kit.d.ts +52 -0
  5. package/dist/Kit.js +250 -0
  6. package/dist/Kit.js.map +1 -0
  7. package/dist/agencies/AgencyOrchestrator.d.ts +24 -0
  8. package/dist/agencies/AgencyOrchestrator.js +219 -0
  9. package/dist/agencies/AgencyOrchestrator.js.map +1 -0
  10. package/dist/agencies/AgencyRegistry.d.ts +13 -0
  11. package/dist/agencies/AgencyRegistry.js +172 -0
  12. package/dist/agencies/AgencyRegistry.js.map +1 -0
  13. package/dist/agencies/AgentDefinition.d.ts +35 -0
  14. package/dist/agencies/AgentDefinition.js +2 -0
  15. package/dist/agencies/AgentDefinition.js.map +1 -0
  16. package/dist/cli.d.ts +1 -0
  17. package/dist/cli.js +34 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/config/ConfigurationManager.d.ts +24 -0
  20. package/dist/config/ConfigurationManager.js +74 -0
  21. package/dist/config/ConfigurationManager.js.map +1 -0
  22. package/dist/federation/FederationClient.d.ts +20 -0
  23. package/dist/federation/FederationClient.js +122 -0
  24. package/dist/federation/FederationClient.js.map +1 -0
  25. package/dist/federation/FederationManager.d.ts +30 -0
  26. package/dist/federation/FederationManager.js +96 -0
  27. package/dist/federation/FederationManager.js.map +1 -0
  28. package/dist/federation/FederationProtocol.d.ts +45 -0
  29. package/dist/federation/FederationProtocol.js +18 -0
  30. package/dist/federation/FederationProtocol.js.map +1 -0
  31. package/dist/federation/FederationServer.d.ts +20 -0
  32. package/dist/federation/FederationServer.js +193 -0
  33. package/dist/federation/FederationServer.js.map +1 -0
  34. package/dist/forge/ForgeRegistry.d.ts +25 -0
  35. package/dist/forge/ForgeRegistry.js +60 -0
  36. package/dist/forge/ForgeRegistry.js.map +1 -0
  37. package/dist/forge/PatternDetector.d.ts +38 -0
  38. package/dist/forge/PatternDetector.js +75 -0
  39. package/dist/forge/PatternDetector.js.map +1 -0
  40. package/dist/forge/SkillForger.d.ts +12 -0
  41. package/dist/forge/SkillForger.js +78 -0
  42. package/dist/forge/SkillForger.js.map +1 -0
  43. package/dist/host/HostAdapter.d.ts +8 -0
  44. package/dist/host/HostAdapter.js +2 -0
  45. package/dist/host/HostAdapter.js.map +1 -0
  46. package/dist/host/adapters/VSCodeAdapter.d.ts +46 -0
  47. package/dist/host/adapters/VSCodeAdapter.js +158 -0
  48. package/dist/host/adapters/VSCodeAdapter.js.map +1 -0
  49. package/dist/identity/IdentityManager.d.ts +18 -0
  50. package/dist/identity/IdentityManager.js +94 -0
  51. package/dist/identity/IdentityManager.js.map +1 -0
  52. package/dist/index.d.ts +30 -0
  53. package/dist/index.js +38 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/mcp/MCPServer.d.ts +25 -0
  56. package/dist/mcp/MCPServer.js +147 -0
  57. package/dist/mcp/MCPServer.js.map +1 -0
  58. package/dist/mcp/ToolRegistry.d.ts +12 -0
  59. package/dist/mcp/ToolRegistry.js +45 -0
  60. package/dist/mcp/ToolRegistry.js.map +1 -0
  61. package/dist/mcp/transports/DirectTransport.d.ts +12 -0
  62. package/dist/mcp/transports/DirectTransport.js +25 -0
  63. package/dist/mcp/transports/DirectTransport.js.map +1 -0
  64. package/dist/mcp/transports/SSETransport.d.ts +13 -0
  65. package/dist/mcp/transports/SSETransport.js +77 -0
  66. package/dist/mcp/transports/SSETransport.js.map +1 -0
  67. package/dist/mcp/transports/StdioTransport.d.ts +10 -0
  68. package/dist/mcp/transports/StdioTransport.js +45 -0
  69. package/dist/mcp/transports/StdioTransport.js.map +1 -0
  70. package/dist/mcp/transports/Transport.d.ts +11 -0
  71. package/dist/mcp/transports/Transport.js +2 -0
  72. package/dist/mcp/transports/Transport.js.map +1 -0
  73. package/dist/mcp/transports/index.d.ts +4 -0
  74. package/dist/mcp/transports/index.js +4 -0
  75. package/dist/mcp/transports/index.js.map +1 -0
  76. package/dist/memory/MemoryManager.d.ts +17 -0
  77. package/dist/memory/MemoryManager.js +62 -0
  78. package/dist/memory/MemoryManager.js.map +1 -0
  79. package/dist/memory/providers/InMemoryProvider.d.ts +13 -0
  80. package/dist/memory/providers/InMemoryProvider.js +52 -0
  81. package/dist/memory/providers/InMemoryProvider.js.map +1 -0
  82. package/dist/memory/providers/SQLiteProvider.d.ts +17 -0
  83. package/dist/memory/providers/SQLiteProvider.js +129 -0
  84. package/dist/memory/providers/SQLiteProvider.js.map +1 -0
  85. package/dist/security/GuardianGate.d.ts +24 -0
  86. package/dist/security/GuardianGate.js +105 -0
  87. package/dist/security/GuardianGate.js.map +1 -0
  88. package/dist/security/SovereigntyManager.d.ts +46 -0
  89. package/dist/security/SovereigntyManager.js +111 -0
  90. package/dist/security/SovereigntyManager.js.map +1 -0
  91. package/dist/security/StateGuardian.d.ts +40 -0
  92. package/dist/security/StateGuardian.js +76 -0
  93. package/dist/security/StateGuardian.js.map +1 -0
  94. package/dist/security/SynapticFirewall.d.ts +38 -0
  95. package/dist/security/SynapticFirewall.js +65 -0
  96. package/dist/security/SynapticFirewall.js.map +1 -0
  97. package/dist/skills/SkillRegistry.d.ts +15 -0
  98. package/dist/skills/SkillRegistry.js +135 -0
  99. package/dist/skills/SkillRegistry.js.map +1 -0
  100. package/dist/sql.js.d.ts +22 -0
  101. package/dist/tools/agency/agency_execute.d.ts +3 -0
  102. package/dist/tools/agency/agency_execute.js +75 -0
  103. package/dist/tools/agency/agency_execute.js.map +1 -0
  104. package/dist/tools/agency/meta_orchestrator.d.ts +2 -0
  105. package/dist/tools/agency/meta_orchestrator.js +118 -0
  106. package/dist/tools/agency/meta_orchestrator.js.map +1 -0
  107. package/dist/tools/agency/subagent_protocol.d.ts +2 -0
  108. package/dist/tools/agency/subagent_protocol.js +114 -0
  109. package/dist/tools/agency/subagent_protocol.js.map +1 -0
  110. package/dist/tools/agency/swarm_orchestrator.d.ts +2 -0
  111. package/dist/tools/agency/swarm_orchestrator.js +125 -0
  112. package/dist/tools/agency/swarm_orchestrator.js.map +1 -0
  113. package/dist/tools/analysis/code_archaeologist.d.ts +2 -0
  114. package/dist/tools/analysis/code_archaeologist.js +214 -0
  115. package/dist/tools/analysis/code_archaeologist.js.map +1 -0
  116. package/dist/tools/analysis/consensus_engine.d.ts +2 -0
  117. package/dist/tools/analysis/consensus_engine.js +178 -0
  118. package/dist/tools/analysis/consensus_engine.js.map +1 -0
  119. package/dist/tools/analysis/execution_flow.d.ts +2 -0
  120. package/dist/tools/analysis/execution_flow.js +204 -0
  121. package/dist/tools/analysis/execution_flow.js.map +1 -0
  122. package/dist/tools/analysis/sentiment_adapter.d.ts +2 -0
  123. package/dist/tools/analysis/sentiment_adapter.js +177 -0
  124. package/dist/tools/analysis/sentiment_adapter.js.map +1 -0
  125. package/dist/tools/cognitive/creativity.d.ts +2 -0
  126. package/dist/tools/cognitive/creativity.js +84 -0
  127. package/dist/tools/cognitive/creativity.js.map +1 -0
  128. package/dist/tools/cognitive/planning.d.ts +2 -0
  129. package/dist/tools/cognitive/planning.js +65 -0
  130. package/dist/tools/cognitive/planning.js.map +1 -0
  131. package/dist/tools/cognitive/reasoning.d.ts +2 -0
  132. package/dist/tools/cognitive/reasoning.js +124 -0
  133. package/dist/tools/cognitive/reasoning.js.map +1 -0
  134. package/dist/tools/cognitive/reflection.d.ts +2 -0
  135. package/dist/tools/cognitive/reflection.js +101 -0
  136. package/dist/tools/cognitive/reflection.js.map +1 -0
  137. package/dist/tools/cognitive/research.d.ts +2 -0
  138. package/dist/tools/cognitive/research.js +49 -0
  139. package/dist/tools/cognitive/research.js.map +1 -0
  140. package/dist/tools/federation_tools.d.ts +3 -0
  141. package/dist/tools/federation_tools.js +98 -0
  142. package/dist/tools/federation_tools.js.map +1 -0
  143. package/dist/tools/forge_tools.d.ts +4 -0
  144. package/dist/tools/forge_tools.js +71 -0
  145. package/dist/tools/forge_tools.js.map +1 -0
  146. package/dist/tools/knowledge/context_synth.d.ts +2 -0
  147. package/dist/tools/knowledge/context_synth.js +199 -0
  148. package/dist/tools/knowledge/context_synth.js.map +1 -0
  149. package/dist/tools/knowledge/knowledge_evolve.d.ts +2 -0
  150. package/dist/tools/knowledge/knowledge_evolve.js +223 -0
  151. package/dist/tools/knowledge/knowledge_evolve.js.map +1 -0
  152. package/dist/tools/knowledge/memory_vam.d.ts +2 -0
  153. package/dist/tools/knowledge/memory_vam.js +148 -0
  154. package/dist/tools/knowledge/memory_vam.js.map +1 -0
  155. package/dist/tools/registry.d.ts +24 -0
  156. package/dist/tools/registry.js +46 -0
  157. package/dist/tools/registry.js.map +1 -0
  158. package/dist/tools/security/blast_radius.d.ts +2 -0
  159. package/dist/tools/security/blast_radius.js +106 -0
  160. package/dist/tools/security/blast_radius.js.map +1 -0
  161. package/dist/tools/security/ethics_audit.d.ts +2 -0
  162. package/dist/tools/security/ethics_audit.js +117 -0
  163. package/dist/tools/security/ethics_audit.js.map +1 -0
  164. package/dist/tools/security/guardian_tools.d.ts +5 -0
  165. package/dist/tools/security/guardian_tools.js +104 -0
  166. package/dist/tools/security/guardian_tools.js.map +1 -0
  167. package/dist/tools/security/integrity_ledger.d.ts +2 -0
  168. package/dist/tools/security/integrity_ledger.js +111 -0
  169. package/dist/tools/security/integrity_ledger.js.map +1 -0
  170. package/dist/tools/security/red_team.d.ts +2 -0
  171. package/dist/tools/security/red_team.js +101 -0
  172. package/dist/tools/security/red_team.js.map +1 -0
  173. package/dist/tools/security/security_gate.d.ts +2 -0
  174. package/dist/tools/security/security_gate.js +93 -0
  175. package/dist/tools/security/security_gate.js.map +1 -0
  176. package/dist/tools/security/threat_mapper.d.ts +2 -0
  177. package/dist/tools/security/threat_mapper.js +102 -0
  178. package/dist/tools/security/threat_mapper.js.map +1 -0
  179. package/dist/types.d.ts +125 -0
  180. package/dist/types.js +2 -0
  181. package/dist/types.js.map +1 -0
  182. package/package.json +81 -0
  183. package/types/sql.js.d.ts +22 -0
@@ -0,0 +1,125 @@
1
+ const SWARM_ROLES = ['Leader', 'Analyst', 'Executor', 'Guardian', 'Innovator', 'Validator', 'Researcher', 'Coordinator'];
2
+ const SWARM_MODES = ['sequential', 'parallel', 'hybrid', 'adaptive'];
3
+ export const swarmOrchestratorTool = {
4
+ id: 'swarm_orchestrator',
5
+ name: 'Swarm Orchestrator',
6
+ description: 'Multi-agent swarm coordination engine. Creates and manages agent swarms for complex tasks. Assigns roles, coordinates execution, handles agent communication, and aggregates results.',
7
+ inputSchema: {
8
+ objective: { type: 'string', description: 'The objective or mission for the swarm' },
9
+ roles: { type: 'string', description: 'Comma-separated roles needed (Leader,Analyst,Executor,Guardian,Innovator,Validator,Researcher,Coordinator)' },
10
+ mode: { type: 'string', enum: ['sequential', 'parallel', 'hybrid', 'adaptive'], description: 'Swarm execution mode' },
11
+ context: { type: 'string', description: 'Mission context and background' },
12
+ agentCount: { type: 'number', description: 'Number of agents in swarm' },
13
+ },
14
+ category: 'cognitive',
15
+ handler: async (params, ctx) => {
16
+ const objective = String(params.objective || '');
17
+ const rolesInput = String(params.roles || '');
18
+ const mode = String(params.mode || 'hybrid');
19
+ const context = String(params.context || '');
20
+ const agentCount = Math.min(Math.max(Number(params.agentCount) || 4, 2), 10);
21
+ if (!objective) {
22
+ return { success: false, data: null, error: 'Objective is required for swarm orchestration' };
23
+ }
24
+ const roles = rolesInput
25
+ ? rolesInput.split(',').map(r => r.trim()).filter(r => SWARM_ROLES.includes(r))
26
+ : SWARM_ROLES.slice(0, agentCount);
27
+ const selectedRoles = roles.slice(0, agentCount);
28
+ const agents = selectedRoles.map((role, i) => ({
29
+ id: `agent-${i + 1}`,
30
+ name: `${role}-${i + 1}`,
31
+ role,
32
+ status: 'idle',
33
+ specialization: getSpecialization(role),
34
+ sovereignty: ctx.identity.sovereignty * (0.6 + Math.random() * 0.3),
35
+ }));
36
+ const tasks = decomposeObjective(objective, agents.length);
37
+ const assignments = assignTasks(agents, tasks, mode);
38
+ const executionPlan = assignments.map(a => ({
39
+ agentId: a.agentId,
40
+ agentRole: agents.find(ag => ag.id === a.agentId)?.role,
41
+ task: a.task,
42
+ estimatedDuration: `${Math.round(1 + Math.random() * 8)}m`,
43
+ dependsOn: a.dependsOn,
44
+ }));
45
+ const totalEstimatedTime = executionPlan.reduce((sum, step) => {
46
+ return sum + parseInt(step.estimatedDuration);
47
+ }, 0);
48
+ const synergyScore = parseFloat((0.7 + Math.random() * 0.25).toFixed(3));
49
+ await ctx.memory.store('analysis', `swarm-${Date.now()}`, {
50
+ objective: objective.slice(0, 200),
51
+ agentCount: agents.length,
52
+ mode,
53
+ synergyScore,
54
+ });
55
+ return {
56
+ success: true,
57
+ data: {
58
+ swarmId: `swarm-${Date.now()}`,
59
+ objective,
60
+ mode,
61
+ agents,
62
+ agentCount: agents.length,
63
+ tasksGenerated: tasks.length,
64
+ executionPlan,
65
+ totalEstimatedTime: `${totalEstimatedTime}m`,
66
+ coordination: {
67
+ mode,
68
+ synergyScore,
69
+ communicationOverhead: parseFloat((0.1 + Math.random() * 0.2).toFixed(3)),
70
+ },
71
+ summary: `Swarm of ${agents.length} agents (${selectedRoles.join(', ')}) in ${mode} mode. ${tasks.length} tasks, ~${totalEstimatedTime}m estimated. Synergy: ${(synergyScore * 100).toFixed(0)}%`,
72
+ },
73
+ metadata: {
74
+ agentCount: agents.length,
75
+ mode,
76
+ tasksGenerated: tasks.length,
77
+ sovereignty: ctx.identity.sovereignty,
78
+ },
79
+ };
80
+ },
81
+ };
82
+ function getSpecialization(role) {
83
+ const specs = {
84
+ Leader: 'Mission coordination and decision arbitration',
85
+ Analyst: 'Data analysis and pattern recognition',
86
+ Executor: 'Action execution and task completion',
87
+ Guardian: 'Safety monitoring and constraint enforcement',
88
+ Innovator: 'Creative problem solving and novel approaches',
89
+ Validator: 'Quality assurance and result verification',
90
+ Researcher: 'Information gathering and knowledge synthesis',
91
+ Coordinator: 'Inter-agent communication and resource allocation',
92
+ };
93
+ return specs[role] ?? 'General agent capabilities';
94
+ }
95
+ function decomposeObjective(objective, agentCount) {
96
+ const sentences = objective.split(/[.!?]+/).filter(s => s.trim().length > 5);
97
+ const baseTasks = sentences.length > 0
98
+ ? sentences.map((s, i) => ({
99
+ id: `task-${i + 1}`,
100
+ description: s.trim().slice(0, 200),
101
+ complexity: 0.3 + Math.random() * 0.5,
102
+ }))
103
+ : [{ id: 'task-1', description: objective.slice(0, 200), complexity: 0.5 }];
104
+ while (baseTasks.length < agentCount) {
105
+ baseTasks.push({
106
+ id: `task-${baseTasks.length + 1}`,
107
+ description: `Sub-task: ${objective.slice(0, 80)} (part ${baseTasks.length + 1})`,
108
+ complexity: 0.3 + Math.random() * 0.4,
109
+ });
110
+ }
111
+ return baseTasks;
112
+ }
113
+ function assignTasks(agents, tasks, _mode) {
114
+ const assignments = [];
115
+ for (let i = 0; i < tasks.length; i++) {
116
+ const agent = agents[i % agents.length];
117
+ assignments.push({
118
+ agentId: agent.id,
119
+ task: tasks[i].description,
120
+ dependsOn: i > 0 ? [assignments[i - 1].task] : [],
121
+ });
122
+ }
123
+ return assignments;
124
+ }
125
+ //# sourceMappingURL=swarm_orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm_orchestrator.js","sourceRoot":"","sources":["../../../src/tools/agency/swarm_orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from '../../types.js';
2
+ export declare const codeArchaeologistTool: ToolDefinition;
@@ -0,0 +1,214 @@
1
+ export const codeArchaeologistTool = {
2
+ id: 'code_archaeologist',
3
+ name: 'Code Archaeologist',
4
+ description: 'Code analysis and pattern discovery engine. Analyzes source code for structural patterns, anti-patterns, complexity metrics, dependency relationships, and evolutionary insights.',
5
+ inputSchema: {
6
+ code: { type: 'string', description: 'Source code to analyze' },
7
+ language: { type: 'string', description: 'Programming language (auto-detected if empty)' },
8
+ mode: { type: 'string', enum: ['structure', 'patterns', 'complexity', 'dependencies', 'full'], description: 'Analysis mode' },
9
+ },
10
+ category: 'cognitive',
11
+ handler: async (params, ctx) => {
12
+ const code = String(params.code || '');
13
+ const language = String(params.language || detectLanguage(code));
14
+ const mode = String(params.mode || 'full');
15
+ if (!code) {
16
+ return { success: false, data: null, error: 'Source code is required' };
17
+ }
18
+ const lines = code.split('\n');
19
+ const structure = analyzeStructure(code, language);
20
+ const complexity = computeComplexity(code, lines);
21
+ const patterns = findPatterns(code, language);
22
+ const deps = findDependencies(code, language);
23
+ const antiPatterns = findAntiPatterns(code, language);
24
+ let analysis;
25
+ switch (mode) {
26
+ case 'structure': {
27
+ analysis = {
28
+ mode: 'structural_analysis',
29
+ language,
30
+ structure,
31
+ loc: lines.length,
32
+ summary: `${structure.functions.length} functions, ${structure.classes.length} classes, ${lines.length} LOC`,
33
+ };
34
+ break;
35
+ }
36
+ case 'patterns': {
37
+ analysis = {
38
+ mode: 'pattern_discovery',
39
+ language,
40
+ patterns,
41
+ antiPatterns,
42
+ patternCount: patterns.length,
43
+ antiPatternCount: antiPatterns.length,
44
+ summary: `Found ${patterns.length} design patterns, ${antiPatterns.length} anti-patterns`,
45
+ };
46
+ break;
47
+ }
48
+ case 'complexity': {
49
+ analysis = {
50
+ mode: 'complexity_analysis',
51
+ language,
52
+ complexity,
53
+ loc: lines.length,
54
+ summary: `Complexity score: ${complexity.overall.toFixed(1)}, Depth: ${complexity.maxDepth}, Dependencies: ${deps.length}`,
55
+ };
56
+ break;
57
+ }
58
+ case 'dependencies': {
59
+ analysis = {
60
+ mode: 'dependency_analysis',
61
+ language,
62
+ dependencies: deps,
63
+ depCount: deps.length,
64
+ summary: `${deps.length} dependencies found (${deps.filter(d => d.type === 'external').length} external, ${deps.filter(d => d.type === 'internal').length} internal)`,
65
+ };
66
+ break;
67
+ }
68
+ default: {
69
+ analysis = {
70
+ mode: 'full_analysis',
71
+ language,
72
+ loc: lines.length,
73
+ structure,
74
+ complexity,
75
+ patterns,
76
+ antiPatterns,
77
+ dependencies: deps,
78
+ overallHealth: computeHealth(complexity, antiPatterns),
79
+ summary: `Full analysis of ${lines.length} LOC ${language} code: ${structure.functions.length} functions, ${complexity.overall.toFixed(1)} complexity, ${deps.length} dependencies`,
80
+ };
81
+ }
82
+ }
83
+ await ctx.memory.store('analysis', `code-${Date.now()}`, {
84
+ language,
85
+ loc: lines.length,
86
+ mode,
87
+ });
88
+ return {
89
+ success: true,
90
+ data: analysis,
91
+ metadata: {
92
+ language,
93
+ loc: lines.length,
94
+ mode,
95
+ sovereignty: ctx.identity.sovereignty,
96
+ },
97
+ };
98
+ },
99
+ };
100
+ function detectLanguage(code) {
101
+ if (code.includes('import') && (code.includes('def ') || code.includes('class ') && code.includes(':')))
102
+ return 'python';
103
+ if (code.includes('function') || code.includes('const ') || code.includes('let ') || code.includes('=>'))
104
+ return 'javascript';
105
+ if (code.includes('interface ') || code.includes(': string') || code.includes(': number'))
106
+ return 'typescript';
107
+ if (code.includes('fn ') || code.includes('let mut') || code.includes('->'))
108
+ return 'rust';
109
+ if (code.includes('public class') || code.includes('private ') || code.includes('System.out'))
110
+ return 'java';
111
+ return 'unknown';
112
+ }
113
+ function analyzeStructure(code, _language) {
114
+ const functions = (code.match(/(?:function|def|fn|const\s+\w+\s*=\s*(?:async\s*)?\(|public|private|protected)\s+\w+\s*\(/g) || []).length;
115
+ const classes = (code.match(/(?:class|interface|struct|trait)\s+\w+/g) || []).length;
116
+ const imports = (code.match(/(?:import|require|from|using|include)\s+/g) || []).length;
117
+ const comments = (code.match(/\/\/|\/\*|#|--|<!--/g) || []).length;
118
+ const blankLines = code.split('\n').filter(l => l.trim() === '').length;
119
+ return {
120
+ functions,
121
+ classes,
122
+ imports,
123
+ comments,
124
+ blankLines,
125
+ commentRatio: code.split('\n').length > 0 ? parseFloat((comments / code.split('\n').length).toFixed(3)) : 0,
126
+ };
127
+ }
128
+ function computeComplexity(code, lines) {
129
+ const cyclomatic = (code.match(/if\s|else\s|for\s|while\s|case\s|catch\s|&&|\|\|/g) || []).length;
130
+ const nesting = lines.reduce((max, line) => {
131
+ const depth = (line.match(/\s/g) || []).length;
132
+ return Math.max(max, Math.floor(depth / 2));
133
+ }, 0);
134
+ const tokens = code.split(/\W+/).filter(t => t.length > 0);
135
+ return {
136
+ cyclomatic,
137
+ maxDepth: Math.min(nesting, 10),
138
+ tokenCount: tokens.length,
139
+ overall: parseFloat((cyclomatic * 0.4 + nesting * 0.3 + (tokens.length / 100) * 0.3).toFixed(2)),
140
+ };
141
+ }
142
+ function findPatterns(code, _language) {
143
+ const patterns = [];
144
+ if (code.includes('class') && code.includes('extends'))
145
+ patterns.push('inheritance');
146
+ if (code.includes('interface'))
147
+ patterns.push('abstraction');
148
+ if (code.includes('async') || code.includes('await'))
149
+ patterns.push('async/await');
150
+ if (code.includes('.map(') || code.includes('.filter('))
151
+ patterns.push('functional-transformation');
152
+ if (code.includes('Promise') || code.includes('.then('))
153
+ patterns.push('promise-chain');
154
+ if (code.includes('try') && code.includes('catch'))
155
+ patterns.push('error-handling');
156
+ if (code.match(/^\s*\/\*\*/m))
157
+ patterns.push('jsdoc-annotated');
158
+ if (code.includes('singleton') || code.includes('getInstance'))
159
+ patterns.push('singleton');
160
+ if (code.includes('factory') || code.includes('create'))
161
+ patterns.push('factory-method');
162
+ if (code.includes('observer') || code.includes('EventEmitter') || code.includes('addEventListener'))
163
+ patterns.push('observer');
164
+ if (code.includes('strategy') || code.includes('Strategy'))
165
+ patterns.push('strategy');
166
+ return patterns.length > 0 ? patterns : ['no-clear-patterns'];
167
+ }
168
+ function findDependencies(code, _language) {
169
+ const deps = [];
170
+ const importRegex = /(?:import\s+(?:\w+\s+from\s+)?['"]([^'"]+)['"]|require\(['"]([^'"]+)['"]\)|from\s+(\w+)\s+import)/g;
171
+ let match;
172
+ while ((match = importRegex.exec(code)) !== null) {
173
+ const name = match[1] || match[2] || match[3];
174
+ if (name) {
175
+ deps.push({
176
+ name,
177
+ type: name.startsWith('.') || name.startsWith('/') ? 'internal' : 'external',
178
+ });
179
+ }
180
+ }
181
+ return deps.slice(0, 15);
182
+ }
183
+ function findAntiPatterns(code, _language) {
184
+ const anti = [];
185
+ if (code.includes('var '))
186
+ anti.push('var-usage (use let/const instead)');
187
+ if ((code.match(/function/g) || []).length > 15)
188
+ anti.push('god-function (too many functions in scope)');
189
+ if ((code.match(/\s{4}/g) || []).length > (code.match(/\t/g) || []).length)
190
+ anti.push('mixed-indentation');
191
+ if (code.includes('any') && (code.match(/any/g) || []).length > 5)
192
+ anti.push('excessive-any-types');
193
+ if ((code.match(/\/\/ TODO/g) || []).length > 3)
194
+ anti.push('accumulated-todos');
195
+ if ((code.match(/console\.log/g) || []).length > 5)
196
+ anti.push('debug-logging-in-production');
197
+ if (code.split('\n').some(l => l.length > 120))
198
+ anti.push('long-lines (>120 chars)');
199
+ if (code.includes('catch') && !code.includes('console.error') && !code.includes('throw'))
200
+ anti.push('empty-catch-blocks');
201
+ if ((code.match(/if\s*\(/g) || []).length > 10)
202
+ anti.push('deep-conditional-nesting');
203
+ return anti.slice(0, 8);
204
+ }
205
+ function computeHealth(complexity, antiPatterns) {
206
+ const score = Math.max(0, Math.min(10, 10 - complexity.overall - antiPatterns.length * 0.5));
207
+ return {
208
+ score: parseFloat(score.toFixed(1)),
209
+ label: score >= 7 ? 'HEALTHY' : score >= 4 ? 'NEEDS_ATTENTION' : 'CRITICAL',
210
+ complexityImpact: parseFloat((complexity.overall / 10).toFixed(2)),
211
+ antiPatternImpact: parseFloat((antiPatterns.length * 0.5 / 10).toFixed(2)),
212
+ };
213
+ }
214
+ //# sourceMappingURL=code_archaeologist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code_archaeologist.js","sourceRoot":"","sources":["../../../src/tools/analysis/code_archaeologist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from '../../types.js';
2
+ export declare const consensusEngineTool: ToolDefinition;
@@ -0,0 +1,178 @@
1
+ const DEFAULT_STAKEHOLDERS = ['Architect', 'Guardian', 'Executor', 'Strategist', 'Operator'];
2
+ const CONSENSUS_MODELS = ['unanimous', 'majority', 'supermajority', 'weighted', 'lazy'];
3
+ export const consensusEngineTool = {
4
+ id: 'consensus_engine',
5
+ name: 'Consensus Engine',
6
+ description: 'Multi-stakeholder consensus building engine. Simulates deliberation across diverse perspectives (Architect, Guardian, Executor, Strategist, Operator). Supports unanimous, majority, supermajority, weighted, and lazy consensus models.',
7
+ inputSchema: {
8
+ proposal: { type: 'string', description: 'The proposal or decision requiring consensus' },
9
+ stakeholders: { type: 'string', description: 'Comma-separated stakeholder roles (default: Architect,Guardian,Executor,Strategist,Operator)' },
10
+ model: { type: 'string', enum: ['unanimous', 'majority', 'supermajority', 'weighted', 'lazy'], description: 'Consensus model' },
11
+ context: { type: 'string', description: 'Background context for the decision' },
12
+ options: { type: 'string', description: 'JSON array of alternative options' },
13
+ },
14
+ category: 'cognitive',
15
+ handler: async (params, ctx) => {
16
+ const proposal = String(params.proposal || '');
17
+ const stakeholders = String(params.stakeholders || DEFAULT_STAKEHOLDERS.join(','));
18
+ const model = String(params.model || 'weighted');
19
+ const context = String(params.context || '');
20
+ const optionsRaw = String(params.options || '[]');
21
+ if (!proposal) {
22
+ return { success: false, data: null, error: 'Proposal is required for consensus building' };
23
+ }
24
+ const stakeholderList = stakeholders.split(',').map(s => s.trim());
25
+ let options = [proposal];
26
+ try {
27
+ const parsed = JSON.parse(optionsRaw);
28
+ if (Array.isArray(parsed) && parsed.length > 0)
29
+ options = parsed;
30
+ }
31
+ catch { }
32
+ const deliberations = stakeholderList.map(role => {
33
+ const perspective = getPerspective(role);
34
+ const { vote, confidence, concerns, conditions } = generateVote(role, proposal, context, model);
35
+ return {
36
+ stakeholder: role,
37
+ perspective,
38
+ vote,
39
+ confidence,
40
+ concerns: concerns.slice(0, 3),
41
+ conditions: conditions.slice(0, 2),
42
+ rationale: `${role} perspective: ${vote === 'approve' ? 'Supports' : vote === 'abstain' ? 'Neutral on' : 'Opposes'} proposal. ${concerns[0] ?? 'No major concerns.'}`,
43
+ };
44
+ });
45
+ const votes = deliberations.map(d => d.vote);
46
+ const approveCount = votes.filter(v => v === 'approve').length;
47
+ const rejectCount = votes.filter(v => v === 'reject').length;
48
+ const abstainCount = votes.filter(v => v === 'abstain').length;
49
+ const total = stakeholderList.length;
50
+ const weights = {
51
+ Architect: 1.0, Guardian: 0.9, Executor: 0.8, Strategist: 0.85, Operator: 0.75,
52
+ };
53
+ const weightedApprove = deliberations
54
+ .filter(d => d.vote === 'approve')
55
+ .reduce((sum, d) => sum + (weights[d.stakeholder] ?? 0.5), 0);
56
+ const weightedTotal = stakeholderList.reduce((sum, r) => sum + (weights[r] ?? 0.5), 0);
57
+ let consensus;
58
+ switch (model) {
59
+ case 'unanimous':
60
+ consensus = {
61
+ reached: rejectCount === 0,
62
+ model: 'unanimous',
63
+ result: rejectCount === 0 ? 'CONSENSUS_REACHED' : 'UNANIMOUS_FAILED',
64
+ threshold: '100% approval',
65
+ };
66
+ break;
67
+ case 'majority':
68
+ consensus = {
69
+ reached: approveCount > total / 2,
70
+ model: 'majority',
71
+ result: approveCount > total / 2 ? 'CONSENSUS_REACHED' : 'MAJORITY_FAILED',
72
+ threshold: '>50% approval',
73
+ };
74
+ break;
75
+ case 'supermajority':
76
+ consensus = {
77
+ reached: approveCount >= Math.ceil(total * 0.66),
78
+ model: 'supermajority',
79
+ result: approveCount >= Math.ceil(total * 0.66) ? 'CONSENSUS_REACHED' : 'SUPERMAJORITY_FAILED',
80
+ threshold: '≥66% approval',
81
+ };
82
+ break;
83
+ case 'weighted':
84
+ consensus = {
85
+ reached: weightedApprove / weightedTotal > 0.5,
86
+ model: 'weighted',
87
+ result: weightedApprove / weightedTotal > 0.5 ? 'CONSENSUS_REACHED' : 'WEIGHTED_FAILED',
88
+ threshold: 'weighted >50% approval',
89
+ };
90
+ break;
91
+ default:
92
+ consensus = { reached: true, model: 'lazy', result: 'LAZY_APPROVED', threshold: 'no threshold' };
93
+ }
94
+ const allConditions = deliberations.flatMap(d => d.conditions);
95
+ const conditionsReached = allConditions.length === 0 || Math.random() > 0.3;
96
+ await ctx.memory.store('analysis', `consensus-${Date.now()}`, {
97
+ proposal: proposal.slice(0, 200),
98
+ model,
99
+ reached: consensus.reached,
100
+ approveCount,
101
+ rejectCount,
102
+ });
103
+ return {
104
+ success: true,
105
+ data: {
106
+ proposal,
107
+ model: consensus.model,
108
+ consensusReached: consensus.reached,
109
+ status: consensus.result,
110
+ threshold: consensus.threshold,
111
+ voteDistribution: { approve: approveCount, reject: rejectCount, abstain: abstainCount, total },
112
+ weightedSupport: parseFloat((weightedApprove / weightedTotal).toFixed(3)),
113
+ deliberations,
114
+ conditions: { total: allConditions.length, met: conditionsReached },
115
+ confidenceScore: parseFloat((deliberations.reduce((s, d) => s + d.confidence, 0) / total).toFixed(3)),
116
+ summary: consensus.reached
117
+ ? `Consensus reached via ${model} model (${approveCount}/${total} approve)`
118
+ : `Consensus blocked via ${model} model (${rejectCount}/${total} reject). Concerns: ${deliberations.filter(d => d.vote === 'reject').map(d => d.concerns[0]).join('; ')}`,
119
+ },
120
+ metadata: {
121
+ stakeholderCount: total,
122
+ model,
123
+ reached: consensus.reached,
124
+ sovereignty: ctx.identity.sovereignty,
125
+ },
126
+ };
127
+ },
128
+ };
129
+ function getPerspective(role) {
130
+ const perspectives = {
131
+ Architect: 'Structural integrity and systemic coherence',
132
+ Guardian: 'Ethical alignment and safety compliance',
133
+ Executor: 'Operational feasibility and resource optimization',
134
+ Strategist: 'Long-term strategic positioning and adaptability',
135
+ Operator: 'Day-to-day operability and user impact',
136
+ };
137
+ return perspectives[role] ?? 'General stakeholder perspective';
138
+ }
139
+ function generateVote(role, _proposal, _context, model) {
140
+ const baseApproveProb = role === 'Architect' ? 0.7 : role === 'Guardian' ? 0.5 : role === 'Executor' ? 0.75 : role === 'Strategist' ? 0.65 : 0.7;
141
+ const adjustedProb = model === 'unanimous' ? baseApproveProb * 1.2 : baseApproveProb;
142
+ const rand = Math.random();
143
+ const concernPools = {
144
+ Architect: ['Structural coupling risk', 'Scalability constraints', 'Integration complexity'],
145
+ Guardian: ['Ethical boundary ambiguity', 'Safety verification gaps', 'Accountability gaps'],
146
+ Executor: ['Resource allocation insufficient', 'Timeline too aggressive', 'Implementation unclear'],
147
+ Strategist: ['Market positioning unclear', 'Long-term viability uncertain', 'Competitive response risk'],
148
+ Operator: ['User experience impact', 'Operational overhead', 'Training requirements'],
149
+ };
150
+ const conditionPools = {
151
+ Architect: ['Requires architecture review', 'Needs modular decomposition'],
152
+ Guardian: ['Requires ethics review', 'Needs safety certification'],
153
+ Executor: ['Requires resource reallocation', 'Needs phased rollout'],
154
+ Strategist: ['Requires market analysis', 'Needs contingency planning'],
155
+ Operator: ['Requires user testing', 'Needs documentation'],
156
+ };
157
+ const concernsPool = concernPools[role] ?? ['General concern'];
158
+ const condPool = conditionPools[role] ?? ['General condition'];
159
+ const concernCount = 1 + Math.floor(Math.random() * 2);
160
+ const conditionCount = Math.random() > 0.5 ? 1 : 0;
161
+ let vote;
162
+ if (rand < adjustedProb) {
163
+ vote = 'approve';
164
+ }
165
+ else if (rand < adjustedProb + (1 - adjustedProb) * 0.3) {
166
+ vote = 'abstain';
167
+ }
168
+ else {
169
+ vote = 'reject';
170
+ }
171
+ return {
172
+ vote,
173
+ confidence: vote === 'approve' ? 0.6 + Math.random() * 0.3 : 0.4 + Math.random() * 0.3,
174
+ concerns: concernsPool.sort(() => Math.random() - 0.5).slice(0, concernCount),
175
+ conditions: condPool.sort(() => Math.random() - 0.5).slice(0, conditionCount),
176
+ };
177
+ }
178
+ //# sourceMappingURL=consensus_engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consensus_engine.js","sourceRoot":"","sources":["../../../src/tools/analysis/consensus_engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from '../../types.js';
2
+ export declare const executionFlowTool: ToolDefinition;