@gotza02/seq-thinking 1.1.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.
- package/README.md +149 -0
- package/SYSTEM_INSTRUCTIONS.md +50 -0
- package/agents_test.log +15 -0
- package/dist/__tests__/agents.test.d.ts +2 -0
- package/dist/__tests__/agents.test.d.ts.map +1 -0
- package/dist/__tests__/agents.test.js +673 -0
- package/dist/__tests__/agents.test.js.map +1 -0
- package/dist/__tests__/mcp-server.test.d.ts +2 -0
- package/dist/__tests__/mcp-server.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-server.test.js +315 -0
- package/dist/__tests__/mcp-server.test.js.map +1 -0
- package/dist/__tests__/sequential-thinking.test.d.ts +2 -0
- package/dist/__tests__/sequential-thinking.test.d.ts.map +1 -0
- package/dist/__tests__/sequential-thinking.test.js +545 -0
- package/dist/__tests__/sequential-thinking.test.js.map +1 -0
- package/dist/__tests__/swarm-coordinator.test.d.ts +2 -0
- package/dist/__tests__/swarm-coordinator.test.d.ts.map +1 -0
- package/dist/__tests__/swarm-coordinator.test.js +606 -0
- package/dist/__tests__/swarm-coordinator.test.js.map +1 -0
- package/dist/__tests__/types.test.d.ts +2 -0
- package/dist/__tests__/types.test.d.ts.map +1 -0
- package/dist/__tests__/types.test.js +741 -0
- package/dist/__tests__/types.test.js.map +1 -0
- package/dist/__tests__/utils.test.d.ts +2 -0
- package/dist/__tests__/utils.test.d.ts.map +1 -0
- package/dist/__tests__/utils.test.js +264 -0
- package/dist/__tests__/utils.test.js.map +1 -0
- package/dist/agents/base-agent.d.ts +126 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +214 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/critic-agent.d.ts +134 -0
- package/dist/agents/critic-agent.d.ts.map +1 -0
- package/dist/agents/critic-agent.js +484 -0
- package/dist/agents/critic-agent.js.map +1 -0
- package/dist/agents/index.d.ts +11 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +11 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/meta-reasoning-agent.d.ts +143 -0
- package/dist/agents/meta-reasoning-agent.d.ts.map +1 -0
- package/dist/agents/meta-reasoning-agent.js +532 -0
- package/dist/agents/meta-reasoning-agent.js.map +1 -0
- package/dist/agents/reasoner-agent.d.ts +75 -0
- package/dist/agents/reasoner-agent.d.ts.map +1 -0
- package/dist/agents/reasoner-agent.js +226 -0
- package/dist/agents/reasoner-agent.js.map +1 -0
- package/dist/agents/synthesizer-agent.d.ts +174 -0
- package/dist/agents/synthesizer-agent.d.ts.map +1 -0
- package/dist/agents/synthesizer-agent.js +583 -0
- package/dist/agents/synthesizer-agent.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server.d.ts +823 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +377 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/sequential-thinking.d.ts +91 -0
- package/dist/sequential-thinking.d.ts.map +1 -0
- package/dist/sequential-thinking.js +540 -0
- package/dist/sequential-thinking.js.map +1 -0
- package/dist/swarm-coordinator.d.ts +188 -0
- package/dist/swarm-coordinator.d.ts.map +1 -0
- package/dist/swarm-coordinator.js +627 -0
- package/dist/swarm-coordinator.js.map +1 -0
- package/dist/types/index.d.ts +806 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +279 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +421 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +864 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/llm-adapter.d.ts +23 -0
- package/dist/utils/llm-adapter.d.ts.map +1 -0
- package/dist/utils/llm-adapter.js +68 -0
- package/dist/utils/llm-adapter.js.map +1 -0
- package/dist/utils/persistence.d.ts +33 -0
- package/dist/utils/persistence.d.ts.map +1 -0
- package/dist/utils/persistence.js +108 -0
- package/dist/utils/persistence.js.map +1 -0
- package/package.json +41 -0
- package/src/__tests__/agents.test.ts +858 -0
- package/src/__tests__/mcp-server.test.ts +380 -0
- package/src/__tests__/sequential-thinking.test.ts +687 -0
- package/src/__tests__/swarm-coordinator.test.ts +903 -0
- package/src/__tests__/types.test.ts +839 -0
- package/src/__tests__/utils.test.ts +322 -0
- package/src/agents/base-agent.ts +285 -0
- package/src/agents/critic-agent.ts +582 -0
- package/src/agents/index.ts +11 -0
- package/src/agents/meta-reasoning-agent.ts +672 -0
- package/src/agents/reasoner-agent.ts +312 -0
- package/src/agents/synthesizer-agent.ts +758 -0
- package/src/index.ts +118 -0
- package/src/mcp-server.ts +387 -0
- package/src/sequential-thinking.ts +560 -0
- package/src/swarm-coordinator.ts +744 -0
- package/src/types/index.ts +915 -0
- package/src/utils/index.ts +1004 -0
- package/src/utils/llm-adapter.ts +76 -0
- package/src/utils/persistence.ts +108 -0
- package/test_output.log +0 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reasoner Agent Implementation
|
|
3
|
+
* @module agents/reasoner-agent
|
|
4
|
+
* @version 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAgent } from './base-agent.js';
|
|
7
|
+
import { AgentType, ReasoningStrategy } from '../types/index.js';
|
|
8
|
+
import { LLMAdapter } from '../utils/llm-adapter.js';
|
|
9
|
+
/**
|
|
10
|
+
* Reasoner agent that performs various reasoning strategies
|
|
11
|
+
*/
|
|
12
|
+
export class ReasonerAgent extends BaseAgent {
|
|
13
|
+
/** Reasoning strategy */
|
|
14
|
+
strategy;
|
|
15
|
+
/** Maximum iterations */
|
|
16
|
+
maxIterations;
|
|
17
|
+
/** Confidence threshold */
|
|
18
|
+
confidenceThreshold;
|
|
19
|
+
/**
|
|
20
|
+
* Create a new reasoner agent
|
|
21
|
+
* @param config - Agent configuration
|
|
22
|
+
*/
|
|
23
|
+
constructor(config) {
|
|
24
|
+
const defaultCapabilities = [
|
|
25
|
+
{
|
|
26
|
+
name: 'chain_of_thought',
|
|
27
|
+
description: 'Step-by-step reasoning',
|
|
28
|
+
confidence: 0.9,
|
|
29
|
+
performanceMetrics: { tasksCompleted: 0, averageQuality: 0, averageTimeMs: 0 }
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'tree_of_thought',
|
|
33
|
+
description: 'Explore multiple reasoning paths',
|
|
34
|
+
confidence: 0.85,
|
|
35
|
+
performanceMetrics: { tasksCompleted: 0, averageQuality: 0, averageTimeMs: 0 }
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'analogical_reasoning',
|
|
39
|
+
description: 'Reason by analogy',
|
|
40
|
+
confidence: 0.8,
|
|
41
|
+
performanceMetrics: { tasksCompleted: 0, averageQuality: 0, averageTimeMs: 0 }
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'abductive_reasoning',
|
|
45
|
+
description: 'Inference to best explanation',
|
|
46
|
+
confidence: 0.75,
|
|
47
|
+
performanceMetrics: { tasksCompleted: 0, averageQuality: 0, averageTimeMs: 0 }
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'problem_solving',
|
|
51
|
+
description: 'General problem-solving',
|
|
52
|
+
confidence: 0.8,
|
|
53
|
+
performanceMetrics: { tasksCompleted: 0, averageQuality: 0, averageTimeMs: 0 }
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
super({
|
|
57
|
+
name: config.name,
|
|
58
|
+
type: AgentType.REASONER,
|
|
59
|
+
subtype: config.strategy || ReasoningStrategy.CHAIN_OF_THOUGHT,
|
|
60
|
+
capabilities: config.capabilities || defaultCapabilities,
|
|
61
|
+
maxConcurrentTasks: 3,
|
|
62
|
+
confidenceThreshold: config.confidenceThreshold || 0.7
|
|
63
|
+
});
|
|
64
|
+
this.strategy = config.strategy || ReasoningStrategy.CHAIN_OF_THOUGHT;
|
|
65
|
+
this.maxIterations = config.maxIterations || 10;
|
|
66
|
+
this.confidenceThreshold = config.confidenceThreshold || 0.7;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get agent type
|
|
70
|
+
* @returns Agent type
|
|
71
|
+
*/
|
|
72
|
+
getType() {
|
|
73
|
+
return AgentType.REASONER;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get agent capabilities
|
|
77
|
+
* @returns Array of capabilities
|
|
78
|
+
*/
|
|
79
|
+
getCapabilities() {
|
|
80
|
+
return this.config.capabilities;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Process a task using the configured reasoning strategy
|
|
84
|
+
* @param task - Task to process
|
|
85
|
+
* @returns Task result
|
|
86
|
+
*/
|
|
87
|
+
async process(task) {
|
|
88
|
+
const startTime = Date.now();
|
|
89
|
+
switch (this.strategy) {
|
|
90
|
+
case ReasoningStrategy.CHAIN_OF_THOUGHT:
|
|
91
|
+
return this.chainOfThought(task, startTime);
|
|
92
|
+
case ReasoningStrategy.TREE_OF_THOUGHT:
|
|
93
|
+
return this.treeOfThought(task, startTime);
|
|
94
|
+
case ReasoningStrategy.ANALOGICAL:
|
|
95
|
+
return this.analogicalReasoning(task, startTime);
|
|
96
|
+
case ReasoningStrategy.ABDUCTIVE:
|
|
97
|
+
return this.abductiveReasoning(task, startTime);
|
|
98
|
+
default:
|
|
99
|
+
return this.chainOfThought(task, startTime);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Chain of thought reasoning
|
|
104
|
+
* @param task - Task to process
|
|
105
|
+
* @param startTime - Start time
|
|
106
|
+
* @returns Task result
|
|
107
|
+
*/
|
|
108
|
+
async chainOfThought(task, startTime) {
|
|
109
|
+
const steps = [];
|
|
110
|
+
const input = task.input;
|
|
111
|
+
const problem = input.problem || input.question || String(task.input);
|
|
112
|
+
let iteration = 0;
|
|
113
|
+
let currentContext = problem;
|
|
114
|
+
while (iteration < this.maxIterations) {
|
|
115
|
+
iteration++;
|
|
116
|
+
const prompt = `Based on the current context, generate the next reasoning step.
|
|
117
|
+
Current Context: ${currentContext}
|
|
118
|
+
Iteration: ${iteration}
|
|
119
|
+
Problem: ${problem}`;
|
|
120
|
+
const response = await LLMAdapter.call(prompt, "You are a logical reasoner. Provide one clear reasoning step.");
|
|
121
|
+
const stepContent = response.content || `Error: ${response.error}`;
|
|
122
|
+
const stepConfidence = this.calculateStepConfidence(stepContent, iteration);
|
|
123
|
+
const step = {
|
|
124
|
+
step: iteration,
|
|
125
|
+
content: stepContent,
|
|
126
|
+
confidence: stepConfidence,
|
|
127
|
+
isFinal: iteration >= this.maxIterations - 1 || stepConfidence >= this.confidenceThreshold || !!response.error
|
|
128
|
+
};
|
|
129
|
+
steps.push(step);
|
|
130
|
+
if (step.isFinal) {
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
currentContext += `\n${stepContent}`;
|
|
134
|
+
}
|
|
135
|
+
const conclusionPrompt = `Based on these reasoning steps, provide a final conclusion for the problem: "${problem}"\n\nSteps:\n${steps.map(s => s.content).join('\n')}`;
|
|
136
|
+
const conclusionResponse = await LLMAdapter.call(conclusionPrompt);
|
|
137
|
+
const conclusion = conclusionResponse.content || "Failed to generate conclusion.";
|
|
138
|
+
const avgConfidence = steps.length > 0
|
|
139
|
+
? steps.reduce((sum, s) => sum + s.confidence, 0) / steps.length
|
|
140
|
+
: 0;
|
|
141
|
+
return this.createTaskResult(task.id, {
|
|
142
|
+
conclusion,
|
|
143
|
+
reasoningChain: steps,
|
|
144
|
+
iterations: iteration,
|
|
145
|
+
strategy: 'chain_of_thought',
|
|
146
|
+
problem
|
|
147
|
+
}, avgConfidence, Date.now() - startTime, {
|
|
148
|
+
reasoningSteps: steps.length,
|
|
149
|
+
intermediateResults: steps.map(s => s.content)
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Tree of thought reasoning
|
|
154
|
+
* @param task - Task to process
|
|
155
|
+
* @param startTime - Start time
|
|
156
|
+
* @returns Task result
|
|
157
|
+
*/
|
|
158
|
+
async treeOfThought(task, startTime) {
|
|
159
|
+
const input = task.input;
|
|
160
|
+
const problem = input.problem || input.question || String(task.input);
|
|
161
|
+
const numPaths = 3;
|
|
162
|
+
const candidates = [];
|
|
163
|
+
for (let i = 0; i < numPaths; i++) {
|
|
164
|
+
const prompt = `Solve this problem by exploring one specific reasoning path: "${problem}"\nPath #${i + 1}:`;
|
|
165
|
+
const response = await LLMAdapter.call(prompt, "You are a creative reasoner. Explore an alternative path.");
|
|
166
|
+
const step = {
|
|
167
|
+
step: 1,
|
|
168
|
+
content: response.content || "Failed to generate path.",
|
|
169
|
+
confidence: 0.7 + Math.random() * 0.2,
|
|
170
|
+
isFinal: true
|
|
171
|
+
};
|
|
172
|
+
candidates.push({ path: [step], confidence: step.confidence });
|
|
173
|
+
}
|
|
174
|
+
const best = candidates.reduce((max, c) => c.confidence > max.confidence ? c : max, candidates[0]);
|
|
175
|
+
return this.createTaskResult(task.id, {
|
|
176
|
+
conclusion: best.path[0].content,
|
|
177
|
+
bestPath: best.path,
|
|
178
|
+
pathsExplored: candidates.length,
|
|
179
|
+
strategy: 'tree_of_thought',
|
|
180
|
+
problem
|
|
181
|
+
}, best.confidence, Date.now() - startTime);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Analogical reasoning
|
|
185
|
+
* @param task - Task to process
|
|
186
|
+
* @param startTime - Start time
|
|
187
|
+
* @returns Task result
|
|
188
|
+
*/
|
|
189
|
+
async analogicalReasoning(task, startTime) {
|
|
190
|
+
const input = task.input;
|
|
191
|
+
const problem = input.problem || input.question || String(task.input);
|
|
192
|
+
const prompt = `Reason about this problem using analogies from other domains: "${problem}"`;
|
|
193
|
+
const response = await LLMAdapter.call(prompt, "You are an expert at analogical reasoning.");
|
|
194
|
+
const conclusion = response.content || "Failed to generate analogical reasoning.";
|
|
195
|
+
return this.createTaskResult(task.id, {
|
|
196
|
+
conclusion,
|
|
197
|
+
strategy: 'analogical',
|
|
198
|
+
problem
|
|
199
|
+
}, 0.85, Date.now() - startTime);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Abductive reasoning
|
|
203
|
+
* @param task - Task to process
|
|
204
|
+
* @param startTime - Start time
|
|
205
|
+
* @returns Task result
|
|
206
|
+
*/
|
|
207
|
+
async abductiveReasoning(task, startTime) {
|
|
208
|
+
const input = task.input;
|
|
209
|
+
const observation = input.observation || input.problem || String(task.input);
|
|
210
|
+
const prompt = `Provide the best possible explanation (abductive reasoning) for this observation: "${observation}"`;
|
|
211
|
+
const response = await LLMAdapter.call(prompt, "You are an expert at abductive reasoning.");
|
|
212
|
+
const conclusion = response.content || "Failed to generate explanation.";
|
|
213
|
+
return this.createTaskResult(task.id, {
|
|
214
|
+
conclusion,
|
|
215
|
+
strategy: 'abductive',
|
|
216
|
+
observation
|
|
217
|
+
}, 0.8, Date.now() - startTime);
|
|
218
|
+
}
|
|
219
|
+
calculateStepConfidence(content, step) {
|
|
220
|
+
const baseConfidence = 0.5;
|
|
221
|
+
const stepBonus = Math.min(0.3, step * 0.03);
|
|
222
|
+
const contentBonus = content.length > 50 ? 0.1 : 0;
|
|
223
|
+
return Math.min(0.95, baseConfidence + stepBonus + contentBonus);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=reasoner-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reasoner-agent.js","sourceRoot":"","sources":["../../src/agents/reasoner-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Synthesizer Agent Implementation
|
|
3
|
+
* @module agents/synthesizer-agent
|
|
4
|
+
* @version 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAgent } from './base-agent.js';
|
|
7
|
+
import { SynthesizerType, type Task, type TaskResult, type AgentCapability } from '../types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Synthesizer agent that combines multiple agent outputs
|
|
10
|
+
*/
|
|
11
|
+
export declare class SynthesizerAgent extends BaseAgent {
|
|
12
|
+
/** Synthesizer type */
|
|
13
|
+
private synthesizerType;
|
|
14
|
+
/**
|
|
15
|
+
* Create a new synthesizer agent
|
|
16
|
+
* @param config - Agent configuration
|
|
17
|
+
*/
|
|
18
|
+
constructor(config: {
|
|
19
|
+
name: string;
|
|
20
|
+
synthesizerType?: SynthesizerType;
|
|
21
|
+
capabilities?: AgentCapability[];
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Get agent type
|
|
25
|
+
* @returns Agent type
|
|
26
|
+
*/
|
|
27
|
+
getType(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get agent capabilities
|
|
30
|
+
* @returns Array of capabilities
|
|
31
|
+
*/
|
|
32
|
+
getCapabilities(): AgentCapability[];
|
|
33
|
+
/**
|
|
34
|
+
* Process a task - synthesize inputs
|
|
35
|
+
* @param task - Task to process
|
|
36
|
+
* @returns Task result
|
|
37
|
+
*/
|
|
38
|
+
process(task: Task): Promise<TaskResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Build consensus from multiple outputs
|
|
41
|
+
* @param input - Synthesis input
|
|
42
|
+
* @returns Synthesis result
|
|
43
|
+
*/
|
|
44
|
+
private buildConsensus;
|
|
45
|
+
/**
|
|
46
|
+
* Creative synthesis
|
|
47
|
+
* @param input - Synthesis input
|
|
48
|
+
* @returns Synthesis result
|
|
49
|
+
*/
|
|
50
|
+
private creativeSynthesis;
|
|
51
|
+
/**
|
|
52
|
+
* Resolve conflicts between outputs
|
|
53
|
+
* @param input - Synthesis input
|
|
54
|
+
* @returns Synthesis result
|
|
55
|
+
*/
|
|
56
|
+
private resolveConflicts;
|
|
57
|
+
/**
|
|
58
|
+
* Extract key points from output
|
|
59
|
+
* @param output - Output to extract from
|
|
60
|
+
* @returns Array of key points
|
|
61
|
+
*/
|
|
62
|
+
private extractKeyPoints;
|
|
63
|
+
/**
|
|
64
|
+
* Find consensus points
|
|
65
|
+
* @param keyPointsArray - Array of key points arrays
|
|
66
|
+
* @returns Consensus points
|
|
67
|
+
*/
|
|
68
|
+
private findConsensusPoints;
|
|
69
|
+
/**
|
|
70
|
+
* Find divergence points
|
|
71
|
+
* @param keyPointsArray - Array of key points arrays
|
|
72
|
+
* @returns Divergence points
|
|
73
|
+
*/
|
|
74
|
+
private findDivergencePoints;
|
|
75
|
+
/**
|
|
76
|
+
* Normalize a point for comparison
|
|
77
|
+
* @param point - Point to normalize
|
|
78
|
+
* @returns Normalized point
|
|
79
|
+
*/
|
|
80
|
+
private normalizePoint;
|
|
81
|
+
/**
|
|
82
|
+
* Check if two points are similar
|
|
83
|
+
* @param a - First point
|
|
84
|
+
* @param b - Second point
|
|
85
|
+
* @returns True if similar
|
|
86
|
+
*/
|
|
87
|
+
private pointsAreSimilar;
|
|
88
|
+
/**
|
|
89
|
+
* Apply confidence weights to points
|
|
90
|
+
* @param points - Points to weight
|
|
91
|
+
* @param outputs - Outputs with confidence
|
|
92
|
+
* @returns Weighted points
|
|
93
|
+
*/
|
|
94
|
+
private applyConfidenceWeights;
|
|
95
|
+
/**
|
|
96
|
+
* Generate unified output
|
|
97
|
+
* @param weightedPoints - Weighted points
|
|
98
|
+
* @param divergencePoints - Divergence points
|
|
99
|
+
* @returns Unified output
|
|
100
|
+
*/
|
|
101
|
+
private generateUnifiedOutput;
|
|
102
|
+
/**
|
|
103
|
+
* Extract creative elements
|
|
104
|
+
* @param output - Output to extract from
|
|
105
|
+
* @returns Creative elements
|
|
106
|
+
*/
|
|
107
|
+
private extractCreativeElements;
|
|
108
|
+
/**
|
|
109
|
+
* Find unexpected connections
|
|
110
|
+
* @param elementsArray - Array of element arrays
|
|
111
|
+
* @returns Connections
|
|
112
|
+
*/
|
|
113
|
+
private findUnexpectedConnections;
|
|
114
|
+
/**
|
|
115
|
+
* Find connection between two elements
|
|
116
|
+
* @param a - First element
|
|
117
|
+
* @param b - Second element
|
|
118
|
+
* @returns Connection description or null
|
|
119
|
+
*/
|
|
120
|
+
private findConnection;
|
|
121
|
+
/**
|
|
122
|
+
* Generate novel combinations
|
|
123
|
+
* @param elementsArray - Array of element arrays
|
|
124
|
+
* @param connections - Connections
|
|
125
|
+
* @returns Combinations
|
|
126
|
+
*/
|
|
127
|
+
private generateNovelCombinations;
|
|
128
|
+
/**
|
|
129
|
+
* Generate novel insights
|
|
130
|
+
* @param combinations - Combinations
|
|
131
|
+
* @returns Insights
|
|
132
|
+
*/
|
|
133
|
+
private generateNovelInsights;
|
|
134
|
+
/**
|
|
135
|
+
* Calculate diversity score
|
|
136
|
+
* @param elementsArray - Array of element arrays
|
|
137
|
+
* @returns Diversity score (0-1)
|
|
138
|
+
*/
|
|
139
|
+
private calculateDiversity;
|
|
140
|
+
/**
|
|
141
|
+
* Identify conflicts
|
|
142
|
+
* @param outputs - Outputs to analyze
|
|
143
|
+
* @returns Conflicts
|
|
144
|
+
*/
|
|
145
|
+
private identifyConflicts;
|
|
146
|
+
/**
|
|
147
|
+
* Extract conclusion from output
|
|
148
|
+
* @param output - Output to extract from
|
|
149
|
+
* @returns Conclusion string or null
|
|
150
|
+
*/
|
|
151
|
+
private extractConclusion;
|
|
152
|
+
/**
|
|
153
|
+
* Check if two conclusions are contradictory
|
|
154
|
+
* @param a - First conclusion
|
|
155
|
+
* @param b - Second conclusion
|
|
156
|
+
* @returns True if contradictory
|
|
157
|
+
*/
|
|
158
|
+
private areContradictory;
|
|
159
|
+
/**
|
|
160
|
+
* Resolve a conflict
|
|
161
|
+
* @param conflict - Conflict to resolve
|
|
162
|
+
* @param outputs - All outputs
|
|
163
|
+
* @returns Resolution
|
|
164
|
+
*/
|
|
165
|
+
private resolveConflict;
|
|
166
|
+
/**
|
|
167
|
+
* Merge resolutions with non-conflicting content
|
|
168
|
+
* @param outputs - All outputs
|
|
169
|
+
* @param resolutions - Resolutions
|
|
170
|
+
* @returns Merged output
|
|
171
|
+
*/
|
|
172
|
+
private mergeResolutions;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=synthesizer-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthesizer-agent.d.ts","sourceRoot":"","sources":["../../src/agents/synthesizer-agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAEL,eAAe,EACf,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AA0B3B;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,uBAAuB;IACvB,OAAO,CAAC,eAAe,CAAkB;IAEzC;;;OAGG;gBACS,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;KAClC;IAwCD;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,eAAe,IAAI,eAAe,EAAE;IAIpC;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAgC9C;;;;OAIG;YACW,cAAc;IAqD5B;;;;OAIG;YACW,iBAAiB;IA0C/B;;;;OAIG;YACW,gBAAgB;IAyD9B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IA6BjC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAyBvB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;CAsBzB"}
|