@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.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +714 -0
  3. package/dist/architecture-evolution/capability-analyzer.d.ts +32 -0
  4. package/dist/architecture-evolution/capability-analyzer.d.ts.map +1 -0
  5. package/dist/architecture-evolution/capability-analyzer.js +264 -0
  6. package/dist/architecture-evolution/capability-analyzer.js.map +1 -0
  7. package/dist/architecture-evolution/evolution-strategy.d.ts +29 -0
  8. package/dist/architecture-evolution/evolution-strategy.d.ts.map +1 -0
  9. package/dist/architecture-evolution/evolution-strategy.js +176 -0
  10. package/dist/architecture-evolution/evolution-strategy.js.map +1 -0
  11. package/dist/architecture-evolution/index.d.ts +5 -0
  12. package/dist/architecture-evolution/index.d.ts.map +1 -0
  13. package/dist/architecture-evolution/index.js +5 -0
  14. package/dist/architecture-evolution/index.js.map +1 -0
  15. package/dist/architecture-evolution/parameter-optimizer.d.ts +67 -0
  16. package/dist/architecture-evolution/parameter-optimizer.d.ts.map +1 -0
  17. package/dist/architecture-evolution/parameter-optimizer.js +341 -0
  18. package/dist/architecture-evolution/parameter-optimizer.js.map +1 -0
  19. package/dist/architecture-evolution/prompts.d.ts +33 -0
  20. package/dist/architecture-evolution/prompts.d.ts.map +1 -0
  21. package/dist/architecture-evolution/prompts.js +169 -0
  22. package/dist/architecture-evolution/prompts.js.map +1 -0
  23. package/dist/constraints/index.d.ts +4 -0
  24. package/dist/constraints/index.d.ts.map +1 -0
  25. package/dist/constraints/index.js +4 -0
  26. package/dist/constraints/index.js.map +1 -0
  27. package/dist/constraints/modification-validator.d.ts +26 -0
  28. package/dist/constraints/modification-validator.d.ts.map +1 -0
  29. package/dist/constraints/modification-validator.js +313 -0
  30. package/dist/constraints/modification-validator.js.map +1 -0
  31. package/dist/constraints/rollback-manager.d.ts +52 -0
  32. package/dist/constraints/rollback-manager.d.ts.map +1 -0
  33. package/dist/constraints/rollback-manager.js +113 -0
  34. package/dist/constraints/rollback-manager.js.map +1 -0
  35. package/dist/constraints/safety-constraints.d.ts +11 -0
  36. package/dist/constraints/safety-constraints.d.ts.map +1 -0
  37. package/dist/constraints/safety-constraints.js +78 -0
  38. package/dist/constraints/safety-constraints.js.map +1 -0
  39. package/dist/events/event-emitter.d.ts +12 -0
  40. package/dist/events/event-emitter.d.ts.map +1 -0
  41. package/dist/events/event-emitter.js +43 -0
  42. package/dist/events/event-emitter.js.map +1 -0
  43. package/dist/events/index.d.ts +2 -0
  44. package/dist/events/index.d.ts.map +1 -0
  45. package/dist/events/index.js +2 -0
  46. package/dist/events/index.js.map +1 -0
  47. package/dist/index.d.ts +8 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +7 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/meta-reasoning/index.d.ts +5 -0
  52. package/dist/meta-reasoning/index.d.ts.map +1 -0
  53. package/dist/meta-reasoning/index.js +5 -0
  54. package/dist/meta-reasoning/index.js.map +1 -0
  55. package/dist/meta-reasoning/meta-reasoner.d.ts +53 -0
  56. package/dist/meta-reasoning/meta-reasoner.d.ts.map +1 -0
  57. package/dist/meta-reasoning/meta-reasoner.js +261 -0
  58. package/dist/meta-reasoning/meta-reasoner.js.map +1 -0
  59. package/dist/meta-reasoning/observation-collector.d.ts +37 -0
  60. package/dist/meta-reasoning/observation-collector.d.ts.map +1 -0
  61. package/dist/meta-reasoning/observation-collector.js +123 -0
  62. package/dist/meta-reasoning/observation-collector.js.map +1 -0
  63. package/dist/meta-reasoning/prompts.d.ts +31 -0
  64. package/dist/meta-reasoning/prompts.d.ts.map +1 -0
  65. package/dist/meta-reasoning/prompts.js +96 -0
  66. package/dist/meta-reasoning/prompts.js.map +1 -0
  67. package/dist/meta-reasoning/strategy-selector.d.ts +27 -0
  68. package/dist/meta-reasoning/strategy-selector.d.ts.map +1 -0
  69. package/dist/meta-reasoning/strategy-selector.js +138 -0
  70. package/dist/meta-reasoning/strategy-selector.js.map +1 -0
  71. package/dist/self-modifying-agent.d.ts +61 -0
  72. package/dist/self-modifying-agent.d.ts.map +1 -0
  73. package/dist/self-modifying-agent.js +449 -0
  74. package/dist/self-modifying-agent.js.map +1 -0
  75. package/dist/tool-generation/gap-analyzer.d.ts +25 -0
  76. package/dist/tool-generation/gap-analyzer.d.ts.map +1 -0
  77. package/dist/tool-generation/gap-analyzer.js +153 -0
  78. package/dist/tool-generation/gap-analyzer.js.map +1 -0
  79. package/dist/tool-generation/generated-tool-store.d.ts +51 -0
  80. package/dist/tool-generation/generated-tool-store.d.ts.map +1 -0
  81. package/dist/tool-generation/generated-tool-store.js +195 -0
  82. package/dist/tool-generation/generated-tool-store.js.map +1 -0
  83. package/dist/tool-generation/index.d.ts +7 -0
  84. package/dist/tool-generation/index.d.ts.map +1 -0
  85. package/dist/tool-generation/index.js +7 -0
  86. package/dist/tool-generation/index.js.map +1 -0
  87. package/dist/tool-generation/prompts.d.ts +28 -0
  88. package/dist/tool-generation/prompts.d.ts.map +1 -0
  89. package/dist/tool-generation/prompts.js +269 -0
  90. package/dist/tool-generation/prompts.js.map +1 -0
  91. package/dist/tool-generation/tool-generator.d.ts +29 -0
  92. package/dist/tool-generation/tool-generator.d.ts.map +1 -0
  93. package/dist/tool-generation/tool-generator.js +169 -0
  94. package/dist/tool-generation/tool-generator.js.map +1 -0
  95. package/dist/tool-generation/tool-sandbox.d.ts +31 -0
  96. package/dist/tool-generation/tool-sandbox.d.ts.map +1 -0
  97. package/dist/tool-generation/tool-sandbox.js +240 -0
  98. package/dist/tool-generation/tool-sandbox.js.map +1 -0
  99. package/dist/tool-generation/tool-validator.d.ts +32 -0
  100. package/dist/tool-generation/tool-validator.d.ts.map +1 -0
  101. package/dist/tool-generation/tool-validator.js +304 -0
  102. package/dist/tool-generation/tool-validator.js.map +1 -0
  103. package/dist/utils/index.d.ts +2 -0
  104. package/dist/utils/index.d.ts.map +1 -0
  105. package/dist/utils/index.js +2 -0
  106. package/dist/utils/index.js.map +1 -0
  107. package/dist/utils/llm-helper.d.ts +6 -0
  108. package/dist/utils/llm-helper.d.ts.map +1 -0
  109. package/dist/utils/llm-helper.js +18 -0
  110. package/dist/utils/llm-helper.js.map +1 -0
  111. package/package.json +61 -0
  112. package/src/__tests__/architecture-evolution.test.ts +368 -0
  113. package/src/__tests__/constraints.test.ts +266 -0
  114. package/src/__tests__/index.test.ts +99 -0
  115. package/src/__tests__/meta-reasoning.test.ts +343 -0
  116. package/src/__tests__/tool-generation.test.ts +455 -0
  117. package/src/architecture-evolution/capability-analyzer.ts +337 -0
  118. package/src/architecture-evolution/evolution-strategy.ts +224 -0
  119. package/src/architecture-evolution/index.ts +26 -0
  120. package/src/architecture-evolution/parameter-optimizer.ts +489 -0
  121. package/src/architecture-evolution/prompts.ts +216 -0
  122. package/src/constraints/index.ts +23 -0
  123. package/src/constraints/modification-validator.ts +402 -0
  124. package/src/constraints/rollback-manager.ts +173 -0
  125. package/src/constraints/safety-constraints.ts +103 -0
  126. package/src/events/event-emitter.ts +62 -0
  127. package/src/events/index.ts +1 -0
  128. package/src/index.ts +112 -0
  129. package/src/meta-reasoning/index.ts +24 -0
  130. package/src/meta-reasoning/meta-reasoner.ts +381 -0
  131. package/src/meta-reasoning/observation-collector.ts +161 -0
  132. package/src/meta-reasoning/prompts.ts +131 -0
  133. package/src/meta-reasoning/strategy-selector.ts +179 -0
  134. package/src/self-modifying-agent.ts +585 -0
  135. package/src/tool-generation/gap-analyzer.ts +234 -0
  136. package/src/tool-generation/generated-tool-store.ts +268 -0
  137. package/src/tool-generation/index.ts +19 -0
  138. package/src/tool-generation/prompts.ts +308 -0
  139. package/src/tool-generation/tool-generator.ts +243 -0
  140. package/src/tool-generation/tool-sandbox.ts +332 -0
  141. package/src/tool-generation/tool-validator.ts +365 -0
  142. package/src/utils/index.ts +1 -0
  143. 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":"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"}
@@ -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"}