@cogitator-ai/self-modifying 0.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/LICENSE +21 -0
- package/README.md +714 -0
- package/dist/architecture-evolution/capability-analyzer.d.ts +32 -0
- package/dist/architecture-evolution/capability-analyzer.d.ts.map +1 -0
- package/dist/architecture-evolution/capability-analyzer.js +264 -0
- package/dist/architecture-evolution/capability-analyzer.js.map +1 -0
- package/dist/architecture-evolution/evolution-strategy.d.ts +29 -0
- package/dist/architecture-evolution/evolution-strategy.d.ts.map +1 -0
- package/dist/architecture-evolution/evolution-strategy.js +176 -0
- package/dist/architecture-evolution/evolution-strategy.js.map +1 -0
- package/dist/architecture-evolution/index.d.ts +5 -0
- package/dist/architecture-evolution/index.d.ts.map +1 -0
- package/dist/architecture-evolution/index.js +5 -0
- package/dist/architecture-evolution/index.js.map +1 -0
- package/dist/architecture-evolution/parameter-optimizer.d.ts +67 -0
- package/dist/architecture-evolution/parameter-optimizer.d.ts.map +1 -0
- package/dist/architecture-evolution/parameter-optimizer.js +341 -0
- package/dist/architecture-evolution/parameter-optimizer.js.map +1 -0
- package/dist/architecture-evolution/prompts.d.ts +33 -0
- package/dist/architecture-evolution/prompts.d.ts.map +1 -0
- package/dist/architecture-evolution/prompts.js +169 -0
- package/dist/architecture-evolution/prompts.js.map +1 -0
- package/dist/constraints/index.d.ts +4 -0
- package/dist/constraints/index.d.ts.map +1 -0
- package/dist/constraints/index.js +4 -0
- package/dist/constraints/index.js.map +1 -0
- package/dist/constraints/modification-validator.d.ts +26 -0
- package/dist/constraints/modification-validator.d.ts.map +1 -0
- package/dist/constraints/modification-validator.js +313 -0
- package/dist/constraints/modification-validator.js.map +1 -0
- package/dist/constraints/rollback-manager.d.ts +52 -0
- package/dist/constraints/rollback-manager.d.ts.map +1 -0
- package/dist/constraints/rollback-manager.js +113 -0
- package/dist/constraints/rollback-manager.js.map +1 -0
- package/dist/constraints/safety-constraints.d.ts +11 -0
- package/dist/constraints/safety-constraints.d.ts.map +1 -0
- package/dist/constraints/safety-constraints.js +78 -0
- package/dist/constraints/safety-constraints.js.map +1 -0
- package/dist/events/event-emitter.d.ts +12 -0
- package/dist/events/event-emitter.d.ts.map +1 -0
- package/dist/events/event-emitter.js +43 -0
- package/dist/events/event-emitter.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/meta-reasoning/index.d.ts +5 -0
- package/dist/meta-reasoning/index.d.ts.map +1 -0
- package/dist/meta-reasoning/index.js +5 -0
- package/dist/meta-reasoning/index.js.map +1 -0
- package/dist/meta-reasoning/meta-reasoner.d.ts +53 -0
- package/dist/meta-reasoning/meta-reasoner.d.ts.map +1 -0
- package/dist/meta-reasoning/meta-reasoner.js +261 -0
- package/dist/meta-reasoning/meta-reasoner.js.map +1 -0
- package/dist/meta-reasoning/observation-collector.d.ts +37 -0
- package/dist/meta-reasoning/observation-collector.d.ts.map +1 -0
- package/dist/meta-reasoning/observation-collector.js +123 -0
- package/dist/meta-reasoning/observation-collector.js.map +1 -0
- package/dist/meta-reasoning/prompts.d.ts +31 -0
- package/dist/meta-reasoning/prompts.d.ts.map +1 -0
- package/dist/meta-reasoning/prompts.js +96 -0
- package/dist/meta-reasoning/prompts.js.map +1 -0
- package/dist/meta-reasoning/strategy-selector.d.ts +27 -0
- package/dist/meta-reasoning/strategy-selector.d.ts.map +1 -0
- package/dist/meta-reasoning/strategy-selector.js +138 -0
- package/dist/meta-reasoning/strategy-selector.js.map +1 -0
- package/dist/self-modifying-agent.d.ts +61 -0
- package/dist/self-modifying-agent.d.ts.map +1 -0
- package/dist/self-modifying-agent.js +449 -0
- package/dist/self-modifying-agent.js.map +1 -0
- package/dist/tool-generation/gap-analyzer.d.ts +25 -0
- package/dist/tool-generation/gap-analyzer.d.ts.map +1 -0
- package/dist/tool-generation/gap-analyzer.js +153 -0
- package/dist/tool-generation/gap-analyzer.js.map +1 -0
- package/dist/tool-generation/generated-tool-store.d.ts +51 -0
- package/dist/tool-generation/generated-tool-store.d.ts.map +1 -0
- package/dist/tool-generation/generated-tool-store.js +195 -0
- package/dist/tool-generation/generated-tool-store.js.map +1 -0
- package/dist/tool-generation/index.d.ts +7 -0
- package/dist/tool-generation/index.d.ts.map +1 -0
- package/dist/tool-generation/index.js +7 -0
- package/dist/tool-generation/index.js.map +1 -0
- package/dist/tool-generation/prompts.d.ts +28 -0
- package/dist/tool-generation/prompts.d.ts.map +1 -0
- package/dist/tool-generation/prompts.js +269 -0
- package/dist/tool-generation/prompts.js.map +1 -0
- package/dist/tool-generation/tool-generator.d.ts +29 -0
- package/dist/tool-generation/tool-generator.d.ts.map +1 -0
- package/dist/tool-generation/tool-generator.js +169 -0
- package/dist/tool-generation/tool-generator.js.map +1 -0
- package/dist/tool-generation/tool-sandbox.d.ts +31 -0
- package/dist/tool-generation/tool-sandbox.d.ts.map +1 -0
- package/dist/tool-generation/tool-sandbox.js +240 -0
- package/dist/tool-generation/tool-sandbox.js.map +1 -0
- package/dist/tool-generation/tool-validator.d.ts +32 -0
- package/dist/tool-generation/tool-validator.d.ts.map +1 -0
- package/dist/tool-generation/tool-validator.js +304 -0
- package/dist/tool-generation/tool-validator.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/llm-helper.d.ts +6 -0
- package/dist/utils/llm-helper.d.ts.map +1 -0
- package/dist/utils/llm-helper.js +18 -0
- package/dist/utils/llm-helper.js.map +1 -0
- package/package.json +61 -0
- package/src/__tests__/architecture-evolution.test.ts +368 -0
- package/src/__tests__/constraints.test.ts +266 -0
- package/src/__tests__/index.test.ts +99 -0
- package/src/__tests__/meta-reasoning.test.ts +343 -0
- package/src/__tests__/tool-generation.test.ts +455 -0
- package/src/architecture-evolution/capability-analyzer.ts +337 -0
- package/src/architecture-evolution/evolution-strategy.ts +224 -0
- package/src/architecture-evolution/index.ts +26 -0
- package/src/architecture-evolution/parameter-optimizer.ts +489 -0
- package/src/architecture-evolution/prompts.ts +216 -0
- package/src/constraints/index.ts +23 -0
- package/src/constraints/modification-validator.ts +402 -0
- package/src/constraints/rollback-manager.ts +173 -0
- package/src/constraints/safety-constraints.ts +103 -0
- package/src/events/event-emitter.ts +62 -0
- package/src/events/index.ts +1 -0
- package/src/index.ts +112 -0
- package/src/meta-reasoning/index.ts +24 -0
- package/src/meta-reasoning/meta-reasoner.ts +381 -0
- package/src/meta-reasoning/observation-collector.ts +161 -0
- package/src/meta-reasoning/prompts.ts +131 -0
- package/src/meta-reasoning/strategy-selector.ts +179 -0
- package/src/self-modifying-agent.ts +585 -0
- package/src/tool-generation/gap-analyzer.ts +234 -0
- package/src/tool-generation/generated-tool-store.ts +268 -0
- package/src/tool-generation/index.ts +19 -0
- package/src/tool-generation/prompts.ts +308 -0
- package/src/tool-generation/tool-generator.ts +243 -0
- package/src/tool-generation/tool-sandbox.ts +332 -0
- package/src/tool-generation/tool-validator.ts +365 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/llm-helper.ts +24 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import { CapabilityAnalyzer } from './capability-analyzer';
|
|
2
|
+
import { EvolutionStrategy } from './evolution-strategy';
|
|
3
|
+
import { buildCandidateGenerationPrompt, buildPerformanceAnalysisPrompt, parseCandidateGenerationResponse, parsePerformanceAnalysisResponse, } from './prompts';
|
|
4
|
+
export class ParameterOptimizer {
|
|
5
|
+
llm;
|
|
6
|
+
config;
|
|
7
|
+
baseConfig;
|
|
8
|
+
capabilityAnalyzer;
|
|
9
|
+
evolutionStrategy;
|
|
10
|
+
candidates = [];
|
|
11
|
+
history = [];
|
|
12
|
+
currentGeneration = 0;
|
|
13
|
+
maxHistorySize = 100;
|
|
14
|
+
constructor(options) {
|
|
15
|
+
this.llm = options.llm;
|
|
16
|
+
this.config = options.config;
|
|
17
|
+
this.baseConfig = options.baseConfig;
|
|
18
|
+
this.capabilityAnalyzer = new CapabilityAnalyzer({
|
|
19
|
+
llm: options.llm,
|
|
20
|
+
enableLLMAnalysis: true,
|
|
21
|
+
});
|
|
22
|
+
this.evolutionStrategy = new EvolutionStrategy({
|
|
23
|
+
strategy: options.config.strategy,
|
|
24
|
+
explorationBonus: 2.0,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
async optimize(taskDescription) {
|
|
28
|
+
const profile = await this.capabilityAnalyzer.analyzeTask(taskDescription);
|
|
29
|
+
if (this.candidates.length === 0) {
|
|
30
|
+
await this.generateInitialCandidates(profile);
|
|
31
|
+
}
|
|
32
|
+
const selection = this.evolutionStrategy.select(this.candidates);
|
|
33
|
+
const mergedConfig = this.mergeConfigs(this.baseConfig, selection.candidate.config);
|
|
34
|
+
return {
|
|
35
|
+
recommendedConfig: mergedConfig,
|
|
36
|
+
candidate: selection.candidate,
|
|
37
|
+
metrics: this.calculateMetrics(),
|
|
38
|
+
shouldAdopt: true,
|
|
39
|
+
confidence: selection.score,
|
|
40
|
+
reasoning: selection.reasoning,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async recordOutcome(candidateId, taskProfile, metrics) {
|
|
44
|
+
const candidate = this.candidates.find((c) => c.id === candidateId);
|
|
45
|
+
if (!candidate)
|
|
46
|
+
return;
|
|
47
|
+
const reward = this.calculateReward(metrics);
|
|
48
|
+
this.evolutionStrategy.updateCandidate(candidate, reward);
|
|
49
|
+
this.history.push({
|
|
50
|
+
taskProfile,
|
|
51
|
+
config: candidate.config,
|
|
52
|
+
score: reward,
|
|
53
|
+
metrics: {
|
|
54
|
+
successRate: metrics.successRate,
|
|
55
|
+
latency: metrics.latency,
|
|
56
|
+
tokenUsage: metrics.tokenUsage,
|
|
57
|
+
qualityScore: metrics.qualityScore,
|
|
58
|
+
},
|
|
59
|
+
timestamp: Date.now(),
|
|
60
|
+
});
|
|
61
|
+
if (this.history.length > this.maxHistorySize) {
|
|
62
|
+
this.history = this.history.slice(-this.maxHistorySize);
|
|
63
|
+
}
|
|
64
|
+
if (this.shouldEvolve()) {
|
|
65
|
+
await this.evolve(taskProfile);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async generateInitialCandidates(profile) {
|
|
69
|
+
const prompt = buildCandidateGenerationPrompt(profile, this.baseConfig, this.getRelevantHistory(profile));
|
|
70
|
+
try {
|
|
71
|
+
const response = await this.callLLM([
|
|
72
|
+
{
|
|
73
|
+
role: 'system',
|
|
74
|
+
content: 'You are an AI architecture optimizer. Generate candidate configurations.',
|
|
75
|
+
},
|
|
76
|
+
{ role: 'user', content: prompt },
|
|
77
|
+
], 0.5);
|
|
78
|
+
const generated = parseCandidateGenerationResponse(response.content);
|
|
79
|
+
this.candidates = [
|
|
80
|
+
this.createBaselineCandidate(),
|
|
81
|
+
...generated.map((c) => ({
|
|
82
|
+
...c,
|
|
83
|
+
generation: this.currentGeneration,
|
|
84
|
+
})),
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
this.candidates = [this.createBaselineCandidate()];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
createBaselineCandidate() {
|
|
92
|
+
return {
|
|
93
|
+
id: 'baseline',
|
|
94
|
+
config: {},
|
|
95
|
+
reasoning: 'Baseline configuration with no modifications',
|
|
96
|
+
expectedImprovement: 0,
|
|
97
|
+
risk: 'low',
|
|
98
|
+
generation: 0,
|
|
99
|
+
score: 0.5,
|
|
100
|
+
evaluationCount: 0,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async evolve(currentProfile) {
|
|
104
|
+
this.currentGeneration++;
|
|
105
|
+
const topCandidates = [...this.candidates]
|
|
106
|
+
.filter((c) => c.evaluationCount > 0)
|
|
107
|
+
.sort((a, b) => b.score - a.score)
|
|
108
|
+
.slice(0, 3);
|
|
109
|
+
if (topCandidates.length === 0)
|
|
110
|
+
return;
|
|
111
|
+
const newCandidates = await this.generateOffspring(topCandidates, currentProfile);
|
|
112
|
+
const keepCount = Math.max(3, Math.floor(this.candidates.length * 0.5));
|
|
113
|
+
const survivingCandidates = [...this.candidates]
|
|
114
|
+
.sort((a, b) => {
|
|
115
|
+
const scoreA = a.score + (a.evaluationCount > 0 ? 0 : 0.1);
|
|
116
|
+
const scoreB = b.score + (b.evaluationCount > 0 ? 0 : 0.1);
|
|
117
|
+
return scoreB - scoreA;
|
|
118
|
+
})
|
|
119
|
+
.slice(0, keepCount);
|
|
120
|
+
this.candidates = [...survivingCandidates, ...newCandidates];
|
|
121
|
+
const maxCandidates = this.config.maxCandidates ?? 10;
|
|
122
|
+
if (this.candidates.length > maxCandidates) {
|
|
123
|
+
this.candidates = this.candidates.slice(0, maxCandidates);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async generateOffspring(parents, profile) {
|
|
127
|
+
const offspring = [];
|
|
128
|
+
for (const parent of parents) {
|
|
129
|
+
const mutated = this.mutateConfig(parent.config);
|
|
130
|
+
offspring.push({
|
|
131
|
+
id: `gen${this.currentGeneration}_${offspring.length}`,
|
|
132
|
+
config: mutated,
|
|
133
|
+
reasoning: `Mutation of ${parent.id}`,
|
|
134
|
+
expectedImprovement: parent.score * 0.9,
|
|
135
|
+
risk: 'medium',
|
|
136
|
+
generation: this.currentGeneration,
|
|
137
|
+
score: 0,
|
|
138
|
+
evaluationCount: 0,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (parents.length >= 2) {
|
|
142
|
+
const crossed = this.crossover(parents[0].config, parents[1].config);
|
|
143
|
+
offspring.push({
|
|
144
|
+
id: `gen${this.currentGeneration}_crossover`,
|
|
145
|
+
config: crossed,
|
|
146
|
+
reasoning: `Crossover of ${parents[0].id} and ${parents[1].id}`,
|
|
147
|
+
expectedImprovement: (parents[0].score + parents[1].score) / 2,
|
|
148
|
+
risk: 'medium',
|
|
149
|
+
generation: this.currentGeneration,
|
|
150
|
+
score: 0,
|
|
151
|
+
evaluationCount: 0,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
return offspring;
|
|
155
|
+
}
|
|
156
|
+
mutateConfig(config) {
|
|
157
|
+
const mutated = { ...config };
|
|
158
|
+
const mutationRate = 0.3;
|
|
159
|
+
if (Math.random() < mutationRate && mutated.temperature !== undefined) {
|
|
160
|
+
mutated.temperature = Math.max(0, Math.min(2, mutated.temperature + (Math.random() - 0.5) * 0.3));
|
|
161
|
+
}
|
|
162
|
+
if (Math.random() < mutationRate && mutated.maxTokens !== undefined) {
|
|
163
|
+
const delta = Math.floor((Math.random() - 0.5) * 1000);
|
|
164
|
+
mutated.maxTokens = Math.max(100, Math.min(32000, mutated.maxTokens + delta));
|
|
165
|
+
}
|
|
166
|
+
if (Math.random() < mutationRate && mutated.reflectionDepth !== undefined) {
|
|
167
|
+
mutated.reflectionDepth = Math.max(0, Math.min(5, mutated.reflectionDepth + Math.round(Math.random() * 2 - 1)));
|
|
168
|
+
}
|
|
169
|
+
return mutated;
|
|
170
|
+
}
|
|
171
|
+
crossover(configA, configB) {
|
|
172
|
+
const result = {};
|
|
173
|
+
const allKeys = new Set([...Object.keys(configA), ...Object.keys(configB)]);
|
|
174
|
+
for (const key of allKeys) {
|
|
175
|
+
const typedKey = key;
|
|
176
|
+
if (Math.random() < 0.5 && configA[typedKey] !== undefined) {
|
|
177
|
+
result[key] = configA[typedKey];
|
|
178
|
+
}
|
|
179
|
+
else if (configB[typedKey] !== undefined) {
|
|
180
|
+
result[key] = configB[typedKey];
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
calculateReward(metrics) {
|
|
186
|
+
const weights = {
|
|
187
|
+
success: 0.4,
|
|
188
|
+
quality: 0.3,
|
|
189
|
+
latency: 0.15,
|
|
190
|
+
tokens: 0.15,
|
|
191
|
+
};
|
|
192
|
+
const successScore = metrics.successRate;
|
|
193
|
+
const qualityScore = metrics.qualityScore;
|
|
194
|
+
const latencyScore = Math.max(0, 1 - metrics.latency / 30000);
|
|
195
|
+
const tokenScore = Math.max(0, 1 - metrics.tokenUsage / 10000);
|
|
196
|
+
return (weights.success * successScore +
|
|
197
|
+
weights.quality * qualityScore +
|
|
198
|
+
weights.latency * latencyScore +
|
|
199
|
+
weights.tokens * tokenScore);
|
|
200
|
+
}
|
|
201
|
+
shouldEvolve() {
|
|
202
|
+
const minEvaluations = this.candidates.reduce((min, c) => Math.min(min, c.evaluationCount), Infinity);
|
|
203
|
+
if (minEvaluations < 3)
|
|
204
|
+
return false;
|
|
205
|
+
const evaluationsSinceEvolution = this.history.filter((h) => h.timestamp > this.getLastEvolutionTime()).length;
|
|
206
|
+
return evaluationsSinceEvolution >= 5;
|
|
207
|
+
}
|
|
208
|
+
getLastEvolutionTime() {
|
|
209
|
+
const latestGenCandidate = this.candidates.find((c) => c.generation === this.currentGeneration && c.evaluationCount === 0);
|
|
210
|
+
return latestGenCandidate ? Date.now() - 300000 : 0;
|
|
211
|
+
}
|
|
212
|
+
getRelevantHistory(profile) {
|
|
213
|
+
return this.history
|
|
214
|
+
.filter((h) => h.taskProfile.domain === profile.domain || h.taskProfile.complexity === profile.complexity)
|
|
215
|
+
.slice(-10);
|
|
216
|
+
}
|
|
217
|
+
mergeConfigs(base, overrides) {
|
|
218
|
+
return {
|
|
219
|
+
...base,
|
|
220
|
+
...Object.fromEntries(Object.entries(overrides).filter(([, v]) => v !== undefined && v !== null)),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
calculateMetrics() {
|
|
224
|
+
const evaluatedCandidates = this.candidates.filter((c) => c.evaluationCount > 0);
|
|
225
|
+
if (evaluatedCandidates.length === 0) {
|
|
226
|
+
return {
|
|
227
|
+
generation: this.currentGeneration,
|
|
228
|
+
bestScore: 0,
|
|
229
|
+
averageScore: 0,
|
|
230
|
+
diversity: 1,
|
|
231
|
+
convergenceRate: 0,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
const scores = evaluatedCandidates.map((c) => c.score);
|
|
235
|
+
const bestScore = Math.max(...scores);
|
|
236
|
+
const averageScore = scores.reduce((a, b) => a + b, 0) / scores.length;
|
|
237
|
+
const diversity = this.calculateDiversity();
|
|
238
|
+
const convergenceRate = this.calculateConvergenceRate();
|
|
239
|
+
return {
|
|
240
|
+
generation: this.currentGeneration,
|
|
241
|
+
bestScore,
|
|
242
|
+
averageScore,
|
|
243
|
+
diversity,
|
|
244
|
+
convergenceRate,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
calculateDiversity() {
|
|
248
|
+
if (this.candidates.length < 2)
|
|
249
|
+
return 1;
|
|
250
|
+
let totalDiff = 0;
|
|
251
|
+
let comparisons = 0;
|
|
252
|
+
for (let i = 0; i < this.candidates.length; i++) {
|
|
253
|
+
for (let j = i + 1; j < this.candidates.length; j++) {
|
|
254
|
+
totalDiff += this.configDistance(this.candidates[i].config, this.candidates[j].config);
|
|
255
|
+
comparisons++;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return comparisons > 0 ? totalDiff / comparisons : 0;
|
|
259
|
+
}
|
|
260
|
+
configDistance(a, b) {
|
|
261
|
+
let distance = 0;
|
|
262
|
+
let fields = 0;
|
|
263
|
+
if (a.temperature !== undefined && b.temperature !== undefined) {
|
|
264
|
+
distance += Math.abs(a.temperature - b.temperature) / 2;
|
|
265
|
+
fields++;
|
|
266
|
+
}
|
|
267
|
+
if (a.maxTokens !== undefined && b.maxTokens !== undefined) {
|
|
268
|
+
distance += Math.abs(a.maxTokens - b.maxTokens) / 32000;
|
|
269
|
+
fields++;
|
|
270
|
+
}
|
|
271
|
+
if (a.model !== b.model) {
|
|
272
|
+
distance += 1;
|
|
273
|
+
fields++;
|
|
274
|
+
}
|
|
275
|
+
return fields > 0 ? distance / fields : 0;
|
|
276
|
+
}
|
|
277
|
+
calculateConvergenceRate() {
|
|
278
|
+
if (this.history.length < 10)
|
|
279
|
+
return 0;
|
|
280
|
+
const recentScores = this.history.slice(-10).map((h) => h.score);
|
|
281
|
+
const variance = this.calculateVariance(recentScores);
|
|
282
|
+
return Math.max(0, 1 - variance * 4);
|
|
283
|
+
}
|
|
284
|
+
calculateVariance(values) {
|
|
285
|
+
if (values.length === 0)
|
|
286
|
+
return 0;
|
|
287
|
+
const mean = values.reduce((a, b) => a + b, 0) / values.length;
|
|
288
|
+
const squaredDiffs = values.map((v) => Math.pow(v - mean, 2));
|
|
289
|
+
return squaredDiffs.reduce((a, b) => a + b, 0) / values.length;
|
|
290
|
+
}
|
|
291
|
+
async analyzePerformance() {
|
|
292
|
+
if (this.candidates.length === 0 || this.history.length < 5) {
|
|
293
|
+
return null;
|
|
294
|
+
}
|
|
295
|
+
const evaluatedCandidates = this.candidates.filter((c) => c.evaluationCount > 0);
|
|
296
|
+
if (evaluatedCandidates.length === 0)
|
|
297
|
+
return null;
|
|
298
|
+
const results = evaluatedCandidates.map((c) => {
|
|
299
|
+
const records = this.history.filter((h) => JSON.stringify(h.config) === JSON.stringify(c.config));
|
|
300
|
+
const avgMetrics = records.length > 0
|
|
301
|
+
? {
|
|
302
|
+
successRate: records.reduce((s, r) => s + r.metrics.successRate, 0) / records.length,
|
|
303
|
+
avgLatency: records.reduce((s, r) => s + r.metrics.latency, 0) / records.length,
|
|
304
|
+
avgTokens: records.reduce((s, r) => s + r.metrics.tokenUsage, 0) / records.length,
|
|
305
|
+
qualityScore: records.reduce((s, r) => s + r.metrics.qualityScore, 0) / records.length,
|
|
306
|
+
}
|
|
307
|
+
: { successRate: 0, avgLatency: 0, avgTokens: 0, qualityScore: 0 };
|
|
308
|
+
return { candidateId: c.id, metrics: avgMetrics };
|
|
309
|
+
});
|
|
310
|
+
const prompt = buildPerformanceAnalysisPrompt(evaluatedCandidates, results);
|
|
311
|
+
try {
|
|
312
|
+
const response = await this.callLLM([
|
|
313
|
+
{ role: 'system', content: 'You are an AI performance analyst.' },
|
|
314
|
+
{ role: 'user', content: prompt },
|
|
315
|
+
], 0.2);
|
|
316
|
+
return parsePerformanceAnalysisResponse(response.content);
|
|
317
|
+
}
|
|
318
|
+
catch {
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
async callLLM(messages, temperature) {
|
|
323
|
+
if (this.llm.complete) {
|
|
324
|
+
return this.llm.complete({ messages, temperature });
|
|
325
|
+
}
|
|
326
|
+
return this.llm.chat({ model: 'default', messages, temperature });
|
|
327
|
+
}
|
|
328
|
+
getCandidates() {
|
|
329
|
+
return [...this.candidates];
|
|
330
|
+
}
|
|
331
|
+
getHistory() {
|
|
332
|
+
return [...this.history];
|
|
333
|
+
}
|
|
334
|
+
reset() {
|
|
335
|
+
this.candidates = [];
|
|
336
|
+
this.history = [];
|
|
337
|
+
this.currentGeneration = 0;
|
|
338
|
+
this.evolutionStrategy.reset();
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=parameter-optimizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-optimizer.js","sourceRoot":"","sources":["../../src/architecture-evolution/parameter-optimizer.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAwB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,WAAW,CAAC;AAyBnB,MAAM,OAAO,kBAAkB;IACZ,GAAG,CAAa;IAChB,MAAM,CAA8B;IACpC,UAAU,CAAqB;IAC/B,kBAAkB,CAAqB;IACvC,iBAAiB,CAAoB;IAE9C,UAAU,GAAyB,EAAE,CAAC;IACtC,OAAO,GAAuB,EAAE,CAAC;IACjC,iBAAiB,GAAG,CAAC,CAAC;IACb,cAAc,GAAG,GAAG,CAAC;IAEtC,YAAY,OAAkC;QAC5C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAErC,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC/C,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC7C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;YACjC,gBAAgB,EAAE,GAAG;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,eAAuB;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEjE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpF,OAAO;YACL,iBAAiB,EAAE,YAAY;YAC/B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAChC,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,SAAS,CAAC,KAAK;YAC3B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAmB,EACnB,WAAwB,EACxB,OAKC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,WAAW;YACX,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE;gBACP,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,OAAoB;QAC1D,MAAM,MAAM,GAAG,8BAA8B,CAC3C,OAAO,EACP,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CACjC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClC;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,0EAA0E;iBACpF;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;aAClC,EAAE,GAAG,CAAC,CAAC;YAER,MAAM,SAAS,GAAG,gCAAgC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErE,IAAI,CAAC,UAAU,GAAG;gBAChB,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvB,GAAG,CAAC;oBACJ,UAAU,EAAE,IAAI,CAAC,iBAAiB;iBACnC,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,uBAAuB;QAC7B,OAAO;YACL,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,8CAA8C;YACzD,mBAAmB,EAAE,CAAC;YACtB,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,GAAG;YACV,eAAe,EAAE,CAAC;SACnB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,cAA2B;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;aACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAElF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;QACxE,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,aAAa,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,OAA6B,EAC7B,OAAoB;QAEpB,MAAM,SAAS,GAAyB,EAAE,CAAC;QAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,MAAM,IAAI,CAAC,iBAAiB,IAAI,SAAS,CAAC,MAAM,EAAE;gBACtD,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,eAAe,MAAM,CAAC,EAAE,EAAE;gBACrC,mBAAmB,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;gBACvC,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,IAAI,CAAC,iBAAiB;gBAClC,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACrE,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,MAAM,IAAI,CAAC,iBAAiB,YAAY;gBAC5C,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,gBAAgB,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/D,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC9D,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,IAAI,CAAC,iBAAiB;gBAClC,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,YAAY,CAAC,MAAmC;QACtD,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,GAAG,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACvD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1E,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,SAAS,CACf,OAAoC,EACpC,OAAoC;QAEpC,MAAM,MAAM,GAAgC,EAAE,CAAC;QAE/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5E,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,GAA+B,CAAC;YACjD,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,MAAkC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAkC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,OAKvB;QACC,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;QAE/D,OAAO,CACL,OAAO,CAAC,OAAO,GAAG,YAAY;YAC9B,OAAO,CAAC,OAAO,GAAG,YAAY;YAC9B,OAAO,CAAC,OAAO,GAAG,YAAY;YAC9B,OAAO,CAAC,MAAM,GAAG,UAAU,CAC5B,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,EAC5C,QAAQ,CACT,CAAC;QAEF,IAAI,cAAc,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAErC,MAAM,yBAAyB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,CACjD,CAAC,MAAM,CAAC;QAET,OAAO,yBAAyB,IAAI,CAAC,CAAC;IACxC,CAAC;IAEO,oBAAoB;QAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,eAAe,KAAK,CAAC,CAC1E,CAAC;QACF,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,kBAAkB,CAAC,OAAoB;QAC7C,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC;aACzG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAEO,YAAY,CAClB,IAAwB,EACxB,SAAsC;QAEtC,OAAO;YACL,GAAG,IAAI;YACP,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAC3E;SACoB,CAAC;IAC1B,CAAC;IAEO,gBAAgB;QACtB,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAEjF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,iBAAiB;gBAClC,SAAS,EAAE,CAAC;gBACZ,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,CAAC;gBACZ,eAAe,EAAE,CAAC;aACnB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAExD,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,iBAAiB;YAClC,SAAS;YACT,YAAY;YACZ,SAAS;YACT,eAAe;SAChB,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACvF,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,cAAc,CAAC,CAA8B,EAAE,CAA8B;QACnF,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC/D,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,EAAE,CAAC;QACX,CAAC;QAED,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC3D,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YACxD,MAAM,EAAE,CAAC;QACX,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,QAAQ,IAAI,CAAC,CAAC;YACd,MAAM,EAAE,CAAC;QACX,CAAC;QAED,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,iBAAiB,CAAC,MAAgB;QACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,kBAAkB;QAKtB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACjF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClG,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,CAAC;oBACE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;oBACpF,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;oBAC/E,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;oBACjF,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;iBACvF;gBACH,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAErE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,8BAA8B,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oCAAoC,EAAE;gBACjE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;aAClC,EAAE,GAAG,CAAC,CAAC;YAER,OAAO,gCAAgC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,QAA2E,EAC3E,WAAmB;QAEnB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { TaskProfile, ArchitectureConfig, EvolutionCandidate } from '@cogitator-ai/types';
|
|
2
|
+
export declare const ARCHITECTURE_ANALYSIS_SYSTEM_PROMPT = "You are an expert in AI agent architecture optimization.\nYour task is to analyze tasks and recommend optimal configurations.\n\nConsider these factors:\n1. Task complexity - simple tasks need lighter models, complex need stronger\n2. Domain requirements - some domains need specific capabilities\n3. Resource constraints - balance performance vs cost\n4. Historical performance - learn from past executions\n\nAlways provide structured JSON responses.";
|
|
3
|
+
export declare function buildTaskProfilePrompt(taskDescription: string, context?: {
|
|
4
|
+
previousTasks?: string[];
|
|
5
|
+
availableModels?: string[];
|
|
6
|
+
constraints?: {
|
|
7
|
+
maxCost?: number;
|
|
8
|
+
maxLatency?: number;
|
|
9
|
+
};
|
|
10
|
+
}): string;
|
|
11
|
+
export declare function buildCandidateGenerationPrompt(profile: TaskProfile, currentConfig: ArchitectureConfig, historicalPerformance?: Array<{
|
|
12
|
+
config: Partial<ArchitectureConfig>;
|
|
13
|
+
score: number;
|
|
14
|
+
metrics: Record<string, number>;
|
|
15
|
+
}>): string;
|
|
16
|
+
export declare function buildPerformanceAnalysisPrompt(candidates: EvolutionCandidate[], results: Array<{
|
|
17
|
+
candidateId: string;
|
|
18
|
+
metrics: {
|
|
19
|
+
successRate: number;
|
|
20
|
+
avgLatency: number;
|
|
21
|
+
avgTokens: number;
|
|
22
|
+
qualityScore: number;
|
|
23
|
+
};
|
|
24
|
+
}>): string;
|
|
25
|
+
export declare function parseTaskProfileResponse(response: string): TaskProfile | null;
|
|
26
|
+
export declare function parseCandidateGenerationResponse(response: string): EvolutionCandidate[];
|
|
27
|
+
export declare function parsePerformanceAnalysisResponse(response: string): {
|
|
28
|
+
recommendation: string;
|
|
29
|
+
confidence: number;
|
|
30
|
+
shouldAdopt: boolean;
|
|
31
|
+
analysis: string;
|
|
32
|
+
} | null;
|
|
33
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/architecture-evolution/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,eAAO,MAAM,mCAAmC,ycASN,CAAC;AAE3C,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;IACR,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,GACA,MAAM,CA8BR;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,kBAAkB,EACjC,qBAAqB,CAAC,EAAE,KAAK,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC,GACD,MAAM,CA0CR;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,kBAAkB,EAAE,EAChC,OAAO,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC,GACD,MAAM,CAwBR;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAqB7E;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,GACf,kBAAkB,EAAE,CA0BtB;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAgBP"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
export const ARCHITECTURE_ANALYSIS_SYSTEM_PROMPT = `You are an expert in AI agent architecture optimization.
|
|
2
|
+
Your task is to analyze tasks and recommend optimal configurations.
|
|
3
|
+
|
|
4
|
+
Consider these factors:
|
|
5
|
+
1. Task complexity - simple tasks need lighter models, complex need stronger
|
|
6
|
+
2. Domain requirements - some domains need specific capabilities
|
|
7
|
+
3. Resource constraints - balance performance vs cost
|
|
8
|
+
4. Historical performance - learn from past executions
|
|
9
|
+
|
|
10
|
+
Always provide structured JSON responses.`;
|
|
11
|
+
export function buildTaskProfilePrompt(taskDescription, context) {
|
|
12
|
+
const contextSection = context
|
|
13
|
+
? `
|
|
14
|
+
CONTEXT:
|
|
15
|
+
${context.previousTasks?.length ? `Previous tasks: ${context.previousTasks.slice(-3).join(', ')}` : ''}
|
|
16
|
+
${context.availableModels?.length ? `Available models: ${context.availableModels.join(', ')}` : ''}
|
|
17
|
+
${context.constraints?.maxCost ? `Max cost: $${context.constraints.maxCost}` : ''}
|
|
18
|
+
${context.constraints?.maxLatency ? `Max latency: ${context.constraints.maxLatency}ms` : ''}`
|
|
19
|
+
: '';
|
|
20
|
+
return `Analyze the following task and create a profile for architecture optimization.
|
|
21
|
+
|
|
22
|
+
TASK:
|
|
23
|
+
${taskDescription}
|
|
24
|
+
${contextSection}
|
|
25
|
+
|
|
26
|
+
Respond with a JSON object:
|
|
27
|
+
{
|
|
28
|
+
"complexity": "trivial" | "simple" | "moderate" | "complex" | "extreme",
|
|
29
|
+
"domain": "general" | "coding" | "reasoning" | "creative" | "factual" | "conversational",
|
|
30
|
+
"estimatedTokens": number,
|
|
31
|
+
"requiresTools": boolean,
|
|
32
|
+
"toolIntensity": "none" | "light" | "moderate" | "heavy",
|
|
33
|
+
"reasoningDepth": "shallow" | "moderate" | "deep" | "exhaustive",
|
|
34
|
+
"creativityLevel": "low" | "moderate" | "high",
|
|
35
|
+
"accuracyRequirement": "approximate" | "moderate" | "high" | "critical",
|
|
36
|
+
"timeConstraint": "none" | "relaxed" | "moderate" | "strict",
|
|
37
|
+
"suggestedApproach": "Brief description of recommended approach",
|
|
38
|
+
"riskFactors": ["List of potential challenges"]
|
|
39
|
+
}`;
|
|
40
|
+
}
|
|
41
|
+
export function buildCandidateGenerationPrompt(profile, currentConfig, historicalPerformance) {
|
|
42
|
+
const historySection = historicalPerformance?.length
|
|
43
|
+
? `
|
|
44
|
+
HISTORICAL PERFORMANCE:
|
|
45
|
+
${historicalPerformance
|
|
46
|
+
.slice(-5)
|
|
47
|
+
.map((h, i) => `${i + 1}. Config: ${JSON.stringify(h.config)} → Score: ${h.score.toFixed(2)}, Metrics: ${JSON.stringify(h.metrics)}`)
|
|
48
|
+
.join('\n')}`
|
|
49
|
+
: '';
|
|
50
|
+
return `Generate candidate configurations for architecture evolution.
|
|
51
|
+
|
|
52
|
+
TASK PROFILE:
|
|
53
|
+
${JSON.stringify(profile, null, 2)}
|
|
54
|
+
|
|
55
|
+
CURRENT CONFIG:
|
|
56
|
+
${JSON.stringify(currentConfig, null, 2)}
|
|
57
|
+
${historySection}
|
|
58
|
+
|
|
59
|
+
Generate 3-5 candidate configurations that might improve performance.
|
|
60
|
+
Each candidate should modify 1-3 parameters from current config.
|
|
61
|
+
|
|
62
|
+
Respond with a JSON array:
|
|
63
|
+
[
|
|
64
|
+
{
|
|
65
|
+
"id": "candidate_1",
|
|
66
|
+
"config": {
|
|
67
|
+
"model": "model name or null to keep current",
|
|
68
|
+
"temperature": number or null,
|
|
69
|
+
"maxTokens": number or null,
|
|
70
|
+
"systemPromptAdditions": "additional instructions or null",
|
|
71
|
+
"toolStrategy": "sequential" | "parallel" | "adaptive" | null,
|
|
72
|
+
"reflectionDepth": number or null
|
|
73
|
+
},
|
|
74
|
+
"reasoning": "Why this configuration might help",
|
|
75
|
+
"expectedImprovement": 0.0-1.0,
|
|
76
|
+
"risk": "low" | "medium" | "high"
|
|
77
|
+
}
|
|
78
|
+
]`;
|
|
79
|
+
}
|
|
80
|
+
export function buildPerformanceAnalysisPrompt(candidates, results) {
|
|
81
|
+
return `Analyze the performance of architecture candidates and recommend the best configuration.
|
|
82
|
+
|
|
83
|
+
CANDIDATES AND RESULTS:
|
|
84
|
+
${candidates
|
|
85
|
+
.map((c) => {
|
|
86
|
+
const result = results.find((r) => r.candidateId === c.id);
|
|
87
|
+
return `
|
|
88
|
+
${c.id}:
|
|
89
|
+
Config: ${JSON.stringify(c.config)}
|
|
90
|
+
Reasoning: ${c.reasoning}
|
|
91
|
+
${result ? `Results: ${JSON.stringify(result.metrics)}` : 'Not yet tested'}`;
|
|
92
|
+
})
|
|
93
|
+
.join('\n')}
|
|
94
|
+
|
|
95
|
+
Respond with:
|
|
96
|
+
{
|
|
97
|
+
"recommendation": "candidate_id of best candidate",
|
|
98
|
+
"confidence": 0.0-1.0,
|
|
99
|
+
"analysis": "Detailed analysis of results",
|
|
100
|
+
"suggestedNextExperiments": ["List of additional experiments to try"],
|
|
101
|
+
"shouldAdopt": boolean,
|
|
102
|
+
"adoptionReason": "Why to adopt or not adopt the recommendation"
|
|
103
|
+
}`;
|
|
104
|
+
}
|
|
105
|
+
export function parseTaskProfileResponse(response) {
|
|
106
|
+
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
107
|
+
if (!jsonMatch)
|
|
108
|
+
return null;
|
|
109
|
+
try {
|
|
110
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
111
|
+
return {
|
|
112
|
+
complexity: parsed.complexity || 'moderate',
|
|
113
|
+
domain: parsed.domain || 'general',
|
|
114
|
+
estimatedTokens: parsed.estimatedTokens || 1000,
|
|
115
|
+
requiresTools: Boolean(parsed.requiresTools),
|
|
116
|
+
toolIntensity: parsed.toolIntensity || 'none',
|
|
117
|
+
reasoningDepth: parsed.reasoningDepth || 'moderate',
|
|
118
|
+
creativityLevel: parsed.creativityLevel || 'moderate',
|
|
119
|
+
accuracyRequirement: parsed.accuracyRequirement || 'moderate',
|
|
120
|
+
timeConstraint: parsed.timeConstraint || 'none',
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
export function parseCandidateGenerationResponse(response) {
|
|
128
|
+
const jsonMatch = response.match(/\[[\s\S]*\]/);
|
|
129
|
+
if (!jsonMatch)
|
|
130
|
+
return [];
|
|
131
|
+
try {
|
|
132
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
133
|
+
if (!Array.isArray(parsed))
|
|
134
|
+
return [];
|
|
135
|
+
return parsed
|
|
136
|
+
.filter((c) => c && typeof c === 'object' && c.config)
|
|
137
|
+
.map((c, idx) => ({
|
|
138
|
+
id: String(c.id || `candidate_${idx}`),
|
|
139
|
+
config: c.config,
|
|
140
|
+
reasoning: String(c.reasoning || ''),
|
|
141
|
+
expectedImprovement: typeof c.expectedImprovement === 'number' ? c.expectedImprovement : 0.5,
|
|
142
|
+
risk: (['low', 'medium', 'high'].includes(String(c.risk)) ? c.risk : 'medium'),
|
|
143
|
+
generation: 0,
|
|
144
|
+
score: 0,
|
|
145
|
+
evaluationCount: 0,
|
|
146
|
+
}));
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
export function parsePerformanceAnalysisResponse(response) {
|
|
153
|
+
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
154
|
+
if (!jsonMatch)
|
|
155
|
+
return null;
|
|
156
|
+
try {
|
|
157
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
158
|
+
return {
|
|
159
|
+
recommendation: String(parsed.recommendation || ''),
|
|
160
|
+
confidence: typeof parsed.confidence === 'number' ? parsed.confidence : 0.5,
|
|
161
|
+
shouldAdopt: Boolean(parsed.shouldAdopt),
|
|
162
|
+
analysis: String(parsed.analysis || ''),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/architecture-evolution/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { DEFAULT_SAFETY_CONSTRAINTS, DEFAULT_CAPABILITY_CONSTRAINTS, DEFAULT_RESOURCE_CONSTRAINTS, createDefaultConstraints, mergeSafetyConstraints, mergeCapabilityConstraints, mergeResourceConstraints, mergeConstraints, } from './safety-constraints';
|
|
2
|
+
export { RollbackManager, InMemoryCheckpointStore, type CheckpointStore, type RollbackManagerOptions, type CheckpointDiff, } from './rollback-manager';
|
|
3
|
+
export { ModificationValidator, type ModificationValidatorOptions, } from './modification-validator';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constraints/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { DEFAULT_SAFETY_CONSTRAINTS, DEFAULT_CAPABILITY_CONSTRAINTS, DEFAULT_RESOURCE_CONSTRAINTS, createDefaultConstraints, mergeSafetyConstraints, mergeCapabilityConstraints, mergeResourceConstraints, mergeConstraints, } from './safety-constraints';
|
|
2
|
+
export { RollbackManager, InMemoryCheckpointStore, } from './rollback-manager';
|
|
3
|
+
export { ModificationValidator, } from './modification-validator';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constraints/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,uBAAuB,GAIxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,GAEtB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ModificationRequest, ModificationValidationResult, ModificationConstraints, SafetyConstraint, CapabilityConstraint, ResourceConstraint, CustomConstraint } from '@cogitator-ai/types';
|
|
2
|
+
export interface ModificationValidatorOptions {
|
|
3
|
+
constraints?: Partial<ModificationConstraints>;
|
|
4
|
+
strictMode?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class ModificationValidator {
|
|
7
|
+
private constraints;
|
|
8
|
+
private strictMode;
|
|
9
|
+
constructor(options?: ModificationValidatorOptions);
|
|
10
|
+
validate(request: ModificationRequest): Promise<ModificationValidationResult>;
|
|
11
|
+
private checkSafetyConstraints;
|
|
12
|
+
private evaluateSafetyRule;
|
|
13
|
+
private evaluateExpression;
|
|
14
|
+
private evaluateSimpleCondition;
|
|
15
|
+
private resolveValue;
|
|
16
|
+
private checkCapabilityConstraints;
|
|
17
|
+
private checkResourceConstraints;
|
|
18
|
+
private checkCustomConstraints;
|
|
19
|
+
addSafetyConstraint(constraint: SafetyConstraint): void;
|
|
20
|
+
addCapabilityConstraint(constraint: CapabilityConstraint): void;
|
|
21
|
+
addResourceConstraint(constraint: ResourceConstraint): void;
|
|
22
|
+
addCustomConstraint(constraint: CustomConstraint): void;
|
|
23
|
+
removeConstraint(id: string): boolean;
|
|
24
|
+
getConstraints(): ModificationConstraints;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=modification-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modification-validator.d.ts","sourceRoot":"","sources":["../../src/constraints/modification-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EAEvB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,UAAU,CAAU;gBAEhB,OAAO,GAAE,4BAAiC;IAQhD,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,4BAA4B,CAAC;YA+CrE,sBAAsB;IAmBpC,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,YAAY;YAiBN,0BAA0B;YAkD1B,wBAAwB;YAuDxB,sBAAsB;IAyBpC,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IASvD,uBAAuB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;IAS/D,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAS3D,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAYvD,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IA8BrC,cAAc,IAAI,uBAAuB;CAG1C"}
|