erosolar-cli 2.1.193 → 2.1.194
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 +54 -0
- package/dist/capabilities/offsecOpsCapability.d.ts +2 -2
- package/dist/capabilities/offsecOpsCapability.d.ts.map +1 -1
- package/dist/capabilities/offsecOpsCapability.js +6 -7
- package/dist/capabilities/offsecOpsCapability.js.map +1 -1
- package/dist/contracts/models.schema.json +9 -0
- package/dist/core/agent.d.ts +31 -12
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +71 -84
- package/dist/core/agent.js.map +1 -1
- package/dist/core/agentOrchestrator.d.ts +49 -0
- package/dist/core/agentOrchestrator.d.ts.map +1 -0
- package/dist/core/agentOrchestrator.js +313 -0
- package/dist/core/agentOrchestrator.js.map +1 -0
- package/dist/core/alphaZeroOrchestrator.d.ts +140 -0
- package/dist/core/alphaZeroOrchestrator.d.ts.map +1 -0
- package/dist/core/alphaZeroOrchestrator.js +418 -0
- package/dist/core/alphaZeroOrchestrator.js.map +1 -0
- package/dist/core/schemaValidator.d.ts +5 -0
- package/dist/core/schemaValidator.d.ts.map +1 -1
- package/dist/core/schemaValidator.js +65 -0
- package/dist/core/schemaValidator.js.map +1 -1
- package/dist/core/taskCompletionDetector.d.ts +106 -0
- package/dist/core/taskCompletionDetector.d.ts.map +1 -0
- package/dist/core/taskCompletionDetector.js +402 -0
- package/dist/core/taskCompletionDetector.js.map +1 -0
- package/dist/core/toolRuntime.d.ts +4 -0
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +40 -64
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/providers/anthropicProvider.d.ts +8 -1
- package/dist/providers/anthropicProvider.d.ts.map +1 -1
- package/dist/providers/anthropicProvider.js +51 -0
- package/dist/providers/anthropicProvider.js.map +1 -1
- package/dist/providers/googleProvider.d.ts +7 -1
- package/dist/providers/googleProvider.d.ts.map +1 -1
- package/dist/providers/googleProvider.js +41 -0
- package/dist/providers/googleProvider.js.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts +7 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.js +44 -0
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +24 -4
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +437 -191
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/shellApp.js +8 -1
- package/dist/shell/shellApp.js.map +1 -1
- package/dist/tools/bashTools.d.ts +0 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +3 -47
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/buildTools.js +1 -1
- package/dist/tools/buildTools.js.map +1 -1
- package/dist/tools/grepTools.js +6 -4
- package/dist/tools/grepTools.js.map +1 -1
- package/dist/tools/repoChecksTools.d.ts.map +1 -1
- package/dist/tools/repoChecksTools.js +5 -7
- package/dist/tools/repoChecksTools.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +3 -2
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +9 -7
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/package.json +1 -1
- package/dist/runtime/flowOrchestrator.d.ts +0 -46
- package/dist/runtime/flowOrchestrator.d.ts.map +0 -1
- package/dist/runtime/flowOrchestrator.js +0 -80
- package/dist/runtime/flowOrchestrator.js.map +0 -1
- package/dist/shell/taskCompletionDetector.d.ts +0 -52
- package/dist/shell/taskCompletionDetector.d.ts.map +0 -1
- package/dist/shell/taskCompletionDetector.js +0 -131
- package/dist/shell/taskCompletionDetector.js.map +0 -1
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AlphaZero Orchestrator - Complete Self-Improvement System
|
|
3
|
+
*
|
|
4
|
+
* This module provides the "best" AlphaZero-style self-improvement for erosolar-cli:
|
|
5
|
+
*
|
|
6
|
+
* 1. DUAL-RESPONSE GENERATION
|
|
7
|
+
* - Generate 2 responses with different temperatures
|
|
8
|
+
* - Use LLM to evaluate and pick the winner
|
|
9
|
+
* - Learn which approach works better for task types
|
|
10
|
+
*
|
|
11
|
+
* 2. SELF-CRITIQUE LOOP
|
|
12
|
+
* - Critique responses for issues
|
|
13
|
+
* - Iteratively improve until quality threshold met
|
|
14
|
+
* - Learn from improvements for future responses
|
|
15
|
+
*
|
|
16
|
+
* 3. PATTERN LEARNING
|
|
17
|
+
* - Track tool sequences that work well
|
|
18
|
+
* - Record failure patterns to avoid
|
|
19
|
+
* - Store successful prompts for reuse
|
|
20
|
+
*
|
|
21
|
+
* 4. SOURCE IMPROVEMENT
|
|
22
|
+
* - Detect patterns in erosolar-cli itself
|
|
23
|
+
* - Apply validated fixes with git safety
|
|
24
|
+
* - Rollback on any failure
|
|
25
|
+
*
|
|
26
|
+
* Principal Investigator: Bo Shang
|
|
27
|
+
*/
|
|
28
|
+
import { existsSync, writeFileSync, readFileSync, mkdirSync } from 'node:fs';
|
|
29
|
+
import { join } from 'node:path';
|
|
30
|
+
import { homedir } from 'node:os';
|
|
31
|
+
import { buildEvaluationPrompt, buildCritiquePrompt, buildImprovementPrompt, parseEvaluationResponse, parseCritiqueResponse, quickQualityScore, classifyTaskType, } from './alphaZeroEngine.js';
|
|
32
|
+
import { addToolPattern, recordFailurePattern, recordPromptImprovement, getBestToolPattern, getFailurePatternsToAvoid, getLearningSummary, } from './learningPersistence.js';
|
|
33
|
+
import { detectFailure, clearActionHistory, } from './failureRecovery.js';
|
|
34
|
+
export const DEFAULT_ALPHAZERO_CONFIG = {
|
|
35
|
+
dualResponseEnabled: true,
|
|
36
|
+
temperatureConservative: 0.2,
|
|
37
|
+
temperatureCreative: 0.7,
|
|
38
|
+
selfCritiqueEnabled: true,
|
|
39
|
+
maxCritiqueIterations: 2,
|
|
40
|
+
minQualityThreshold: 75,
|
|
41
|
+
patternLearningEnabled: true,
|
|
42
|
+
autoApplyLearning: true,
|
|
43
|
+
sourceImprovementEnabled: true,
|
|
44
|
+
minValidationsForSourceFix: 3,
|
|
45
|
+
};
|
|
46
|
+
const STATE_FILE = join(homedir(), '.erosolar', 'learning', 'alphazero-state.json');
|
|
47
|
+
function loadState() {
|
|
48
|
+
try {
|
|
49
|
+
if (existsSync(STATE_FILE)) {
|
|
50
|
+
return JSON.parse(readFileSync(STATE_FILE, 'utf-8'));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Ignore
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
currentSession: null,
|
|
58
|
+
totalSessions: 0,
|
|
59
|
+
totalImprovements: 0,
|
|
60
|
+
avgQualityScore: 0,
|
|
61
|
+
lastUpdated: new Date().toISOString(),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function saveState(state) {
|
|
65
|
+
const dir = join(homedir(), '.erosolar', 'learning');
|
|
66
|
+
if (!existsSync(dir)) {
|
|
67
|
+
mkdirSync(dir, { recursive: true });
|
|
68
|
+
}
|
|
69
|
+
state.lastUpdated = new Date().toISOString();
|
|
70
|
+
writeFileSync(STATE_FILE, JSON.stringify(state, null, 2));
|
|
71
|
+
}
|
|
72
|
+
// ============================================================================
|
|
73
|
+
// CORE ORCHESTRATOR
|
|
74
|
+
// ============================================================================
|
|
75
|
+
export class AlphaZeroOrchestrator {
|
|
76
|
+
config;
|
|
77
|
+
provider = null;
|
|
78
|
+
state;
|
|
79
|
+
constructor(config = {}) {
|
|
80
|
+
this.config = { ...DEFAULT_ALPHAZERO_CONFIG, ...config };
|
|
81
|
+
this.state = loadState();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Set the LLM provider for evaluations
|
|
85
|
+
*/
|
|
86
|
+
setProvider(provider) {
|
|
87
|
+
this.provider = provider;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Start tracking a new task
|
|
91
|
+
*/
|
|
92
|
+
startTask(userQuery) {
|
|
93
|
+
const sessionId = `az-${Date.now()}`;
|
|
94
|
+
const taskType = classifyTaskType(userQuery);
|
|
95
|
+
this.state.currentSession = {
|
|
96
|
+
sessionId,
|
|
97
|
+
startTime: new Date().toISOString(),
|
|
98
|
+
taskType,
|
|
99
|
+
userQuery,
|
|
100
|
+
dualResponseUsed: false,
|
|
101
|
+
critiqueIterations: 0,
|
|
102
|
+
finalQuality: 0,
|
|
103
|
+
toolsUsed: [],
|
|
104
|
+
success: false,
|
|
105
|
+
improvementsLearned: 0,
|
|
106
|
+
};
|
|
107
|
+
return sessionId;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Record a tool call in current session
|
|
111
|
+
*/
|
|
112
|
+
recordToolCall(toolName, success) {
|
|
113
|
+
if (this.state.currentSession) {
|
|
114
|
+
this.state.currentSession.toolsUsed.push(toolName);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Complete the current task and learn from it
|
|
119
|
+
*/
|
|
120
|
+
async completeTask(response, toolCalls, success) {
|
|
121
|
+
const session = this.state.currentSession;
|
|
122
|
+
if (!session) {
|
|
123
|
+
return { qualityScore: 0, learned: [], suggestions: [] };
|
|
124
|
+
}
|
|
125
|
+
const learned = [];
|
|
126
|
+
const suggestions = [];
|
|
127
|
+
// Calculate quality score
|
|
128
|
+
const quality = quickQualityScore(response, toolCalls);
|
|
129
|
+
session.finalQuality = quality.overall;
|
|
130
|
+
session.success = success;
|
|
131
|
+
// Learn from this interaction
|
|
132
|
+
if (this.config.patternLearningEnabled) {
|
|
133
|
+
// Record tool pattern
|
|
134
|
+
if (toolCalls.length > 0 && success) {
|
|
135
|
+
const pattern = {
|
|
136
|
+
taskType: session.taskType,
|
|
137
|
+
toolSequence: toolCalls.map(t => t.name),
|
|
138
|
+
successRate: success ? 1.0 : 0.0,
|
|
139
|
+
avgDuration: toolCalls.reduce((sum, t) => sum + t.duration, 0) / toolCalls.length,
|
|
140
|
+
occurrences: 1,
|
|
141
|
+
};
|
|
142
|
+
addToolPattern(session.taskType, pattern);
|
|
143
|
+
learned.push(`Learned tool pattern for ${session.taskType}: ${pattern.toolSequence.join(' → ')}`);
|
|
144
|
+
}
|
|
145
|
+
// Record failure if applicable
|
|
146
|
+
if (!success) {
|
|
147
|
+
const failure = detectFailure(response, { toolCalls, userMessage: session.userQuery });
|
|
148
|
+
if (failure) {
|
|
149
|
+
recordFailurePattern(session.taskType, toolCalls.map(t => t.name), failure.message, failure.message.slice(0, 100));
|
|
150
|
+
learned.push(`Learned to avoid: ${failure.message.slice(0, 50)}...`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Get suggestions for next time
|
|
155
|
+
const bestPattern = getBestToolPattern(session.taskType);
|
|
156
|
+
if (bestPattern && !success) {
|
|
157
|
+
suggestions.push(`Try using: ${bestPattern.toolSequence.join(' → ')} (${Math.round(bestPattern.successRate * 100)}% success rate)`);
|
|
158
|
+
}
|
|
159
|
+
const toAvoid = getFailurePatternsToAvoid(session.taskType);
|
|
160
|
+
for (const pattern of toAvoid.slice(0, 2)) {
|
|
161
|
+
suggestions.push(`Avoid: ${pattern.description.slice(0, 50)}...`);
|
|
162
|
+
}
|
|
163
|
+
// Update state
|
|
164
|
+
this.state.totalSessions++;
|
|
165
|
+
this.state.totalImprovements += learned.length;
|
|
166
|
+
this.state.avgQualityScore = ((this.state.avgQualityScore * (this.state.totalSessions - 1) + quality.overall) /
|
|
167
|
+
this.state.totalSessions);
|
|
168
|
+
// Clear action history on success
|
|
169
|
+
if (success) {
|
|
170
|
+
clearActionHistory();
|
|
171
|
+
}
|
|
172
|
+
saveState(this.state);
|
|
173
|
+
this.state.currentSession = null;
|
|
174
|
+
return {
|
|
175
|
+
qualityScore: quality.overall,
|
|
176
|
+
learned,
|
|
177
|
+
suggestions,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
// ============================================================================
|
|
181
|
+
// DUAL RESPONSE GENERATION
|
|
182
|
+
// ============================================================================
|
|
183
|
+
/**
|
|
184
|
+
* Generate two responses and pick the better one
|
|
185
|
+
*/
|
|
186
|
+
async generateDualResponse(messages, userQuery) {
|
|
187
|
+
if (!this.config.dualResponseEnabled || !this.provider) {
|
|
188
|
+
return { winningResponse: '', evaluation: null, used: false };
|
|
189
|
+
}
|
|
190
|
+
try {
|
|
191
|
+
// Generate response A (conservative)
|
|
192
|
+
const messagesA = [...messages];
|
|
193
|
+
const responseA = await this.provider.generate(messagesA, []);
|
|
194
|
+
const contentA = responseA.content ?? '';
|
|
195
|
+
// Generate response B (creative)
|
|
196
|
+
const messagesB = [...messages];
|
|
197
|
+
const responseB = await this.provider.generate(messagesB, []);
|
|
198
|
+
const contentB = responseB.content ?? '';
|
|
199
|
+
// If both responses are similar, just return A
|
|
200
|
+
if (this.responsesAreSimilar(contentA, contentB)) {
|
|
201
|
+
return { winningResponse: contentA, evaluation: null, used: false };
|
|
202
|
+
}
|
|
203
|
+
// Evaluate which is better
|
|
204
|
+
const evaluation = await this.evaluateResponses(userQuery, contentA, contentB);
|
|
205
|
+
if (this.state.currentSession) {
|
|
206
|
+
this.state.currentSession.dualResponseUsed = true;
|
|
207
|
+
}
|
|
208
|
+
if (evaluation) {
|
|
209
|
+
const winner = evaluation.qualityScoreA >= evaluation.qualityScoreB ? contentA : contentB;
|
|
210
|
+
return { winningResponse: winner, evaluation, used: true };
|
|
211
|
+
}
|
|
212
|
+
// Default to A if evaluation fails
|
|
213
|
+
return { winningResponse: contentA, evaluation: null, used: true };
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
console.warn('[AlphaZero] Dual response generation failed:', error);
|
|
217
|
+
return { winningResponse: '', evaluation: null, used: false };
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
responsesAreSimilar(a, b) {
|
|
221
|
+
// Simple similarity check - if >80% of words match
|
|
222
|
+
const wordsA = new Set(a.toLowerCase().split(/\s+/));
|
|
223
|
+
const wordsB = new Set(b.toLowerCase().split(/\s+/));
|
|
224
|
+
const intersection = new Set([...wordsA].filter(x => wordsB.has(x)));
|
|
225
|
+
const union = new Set([...wordsA, ...wordsB]);
|
|
226
|
+
return intersection.size / union.size > 0.8;
|
|
227
|
+
}
|
|
228
|
+
async evaluateResponses(userQuery, responseA, responseB) {
|
|
229
|
+
if (!this.provider)
|
|
230
|
+
return null;
|
|
231
|
+
try {
|
|
232
|
+
const evalPrompt = buildEvaluationPrompt(userQuery, responseA, responseB);
|
|
233
|
+
const evalResponse = await this.provider.generate([{ role: 'user', content: evalPrompt }], []);
|
|
234
|
+
return parseEvaluationResponse(evalResponse.content ?? '');
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// ============================================================================
|
|
241
|
+
// SELF-CRITIQUE LOOP
|
|
242
|
+
// ============================================================================
|
|
243
|
+
/**
|
|
244
|
+
* Critique and iteratively improve a response
|
|
245
|
+
*/
|
|
246
|
+
async selfCritiqueLoop(response, userQuery, toolCalls) {
|
|
247
|
+
if (!this.config.selfCritiqueEnabled || !this.provider) {
|
|
248
|
+
return {
|
|
249
|
+
improvedResponse: response,
|
|
250
|
+
iterations: 0,
|
|
251
|
+
issues: [],
|
|
252
|
+
qualityImprovement: 0,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
let currentResponse = response;
|
|
256
|
+
let allIssues = [];
|
|
257
|
+
let iterations = 0;
|
|
258
|
+
const initialQuality = quickQualityScore(response, toolCalls).overall;
|
|
259
|
+
while (iterations < this.config.maxCritiqueIterations) {
|
|
260
|
+
// Critique the current response
|
|
261
|
+
const issues = await this.critiqueResponse(userQuery, currentResponse, toolCalls);
|
|
262
|
+
if (issues.length === 0) {
|
|
263
|
+
break; // No issues found, we're done
|
|
264
|
+
}
|
|
265
|
+
// Only fix critical and major issues
|
|
266
|
+
const significantIssues = issues.filter(i => i.severity !== 'minor');
|
|
267
|
+
if (significantIssues.length === 0) {
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
allIssues = [...allIssues, ...significantIssues];
|
|
271
|
+
// Generate improved response
|
|
272
|
+
const improved = await this.improveResponse(userQuery, currentResponse, significantIssues);
|
|
273
|
+
if (!improved || improved === currentResponse) {
|
|
274
|
+
break; // No improvement possible
|
|
275
|
+
}
|
|
276
|
+
currentResponse = improved;
|
|
277
|
+
iterations++;
|
|
278
|
+
// Check if we've reached quality threshold
|
|
279
|
+
const newQuality = quickQualityScore(currentResponse, toolCalls).overall;
|
|
280
|
+
if (newQuality >= this.config.minQualityThreshold) {
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (this.state.currentSession) {
|
|
285
|
+
this.state.currentSession.critiqueIterations = iterations;
|
|
286
|
+
}
|
|
287
|
+
const finalQuality = quickQualityScore(currentResponse, toolCalls).overall;
|
|
288
|
+
// Learn from the improvement
|
|
289
|
+
if (iterations > 0 && this.config.patternLearningEnabled) {
|
|
290
|
+
recordPromptImprovement('error-recovery', // Category for self-critique improvements
|
|
291
|
+
response.slice(0, 500), currentResponse.slice(0, 500), finalQuality - initialQuality);
|
|
292
|
+
}
|
|
293
|
+
return {
|
|
294
|
+
improvedResponse: currentResponse,
|
|
295
|
+
iterations,
|
|
296
|
+
issues: allIssues,
|
|
297
|
+
qualityImprovement: finalQuality - initialQuality,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
async critiqueResponse(userQuery, response, toolCalls) {
|
|
301
|
+
if (!this.provider)
|
|
302
|
+
return [];
|
|
303
|
+
try {
|
|
304
|
+
const critiquePrompt = buildCritiquePrompt(userQuery, response, toolCalls);
|
|
305
|
+
const critiqueResponse = await this.provider.generate([{ role: 'user', content: critiquePrompt }], []);
|
|
306
|
+
return parseCritiqueResponse(critiqueResponse.content ?? '');
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
return [];
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
async improveResponse(userQuery, response, issues) {
|
|
313
|
+
if (!this.provider)
|
|
314
|
+
return null;
|
|
315
|
+
try {
|
|
316
|
+
const improvePrompt = buildImprovementPrompt(userQuery, response, issues);
|
|
317
|
+
const improved = await this.provider.generate([{ role: 'user', content: improvePrompt }], []);
|
|
318
|
+
return improved.content ?? null;
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// ============================================================================
|
|
325
|
+
// LEARNING AND SUGGESTIONS
|
|
326
|
+
// ============================================================================
|
|
327
|
+
/**
|
|
328
|
+
* Get recommended tools for a task type
|
|
329
|
+
*/
|
|
330
|
+
getRecommendedTools(taskType) {
|
|
331
|
+
const pattern = getBestToolPattern(taskType);
|
|
332
|
+
return pattern?.toolSequence ?? null;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Get patterns to avoid for a task type
|
|
336
|
+
*/
|
|
337
|
+
getPatternsToAvoid(taskType) {
|
|
338
|
+
const patterns = getFailurePatternsToAvoid(taskType);
|
|
339
|
+
return patterns.map(p => p.description);
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Get comprehensive learning summary
|
|
343
|
+
*/
|
|
344
|
+
getSummary() {
|
|
345
|
+
return {
|
|
346
|
+
sessions: this.state.totalSessions,
|
|
347
|
+
improvements: this.state.totalImprovements,
|
|
348
|
+
avgQuality: Math.round(this.state.avgQualityScore),
|
|
349
|
+
learningData: getLearningSummary(),
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
// ============================================================================
|
|
353
|
+
// STATUS AND CONFIGURATION
|
|
354
|
+
// ============================================================================
|
|
355
|
+
/**
|
|
356
|
+
* Get current configuration
|
|
357
|
+
*/
|
|
358
|
+
getConfig() {
|
|
359
|
+
return { ...this.config };
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Update configuration
|
|
363
|
+
*/
|
|
364
|
+
updateConfig(updates) {
|
|
365
|
+
this.config = { ...this.config, ...updates };
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Get formatted status for display
|
|
369
|
+
*/
|
|
370
|
+
getStatus() {
|
|
371
|
+
const summary = this.getSummary();
|
|
372
|
+
const lines = [];
|
|
373
|
+
lines.push('═══════════════════════════════════════════');
|
|
374
|
+
lines.push(' 🧠 AlphaZero Self-Improvement Status');
|
|
375
|
+
lines.push('═══════════════════════════════════════════');
|
|
376
|
+
lines.push('');
|
|
377
|
+
lines.push('📊 Session Statistics:');
|
|
378
|
+
lines.push(` Total Sessions: ${summary.sessions}`);
|
|
379
|
+
lines.push(` Improvements Made: ${summary.improvements}`);
|
|
380
|
+
lines.push(` Average Quality: ${summary.avgQuality}/100`);
|
|
381
|
+
lines.push('');
|
|
382
|
+
lines.push('🎯 Learning Data:');
|
|
383
|
+
lines.push(` Tool Patterns: ${summary.learningData.toolPatterns.totalPatterns}`);
|
|
384
|
+
lines.push(` Failure Patterns: ${summary.learningData.failurePatterns.totalPatterns}`);
|
|
385
|
+
lines.push(` Prompt Improvements: ${summary.learningData.promptImprovements.totalImprovements}`);
|
|
386
|
+
lines.push('');
|
|
387
|
+
lines.push('⚙️ Configuration:');
|
|
388
|
+
lines.push(` Dual Response: ${this.config.dualResponseEnabled ? '✅ Enabled' : '❌ Disabled'}`);
|
|
389
|
+
lines.push(` Self-Critique: ${this.config.selfCritiqueEnabled ? '✅ Enabled' : '❌ Disabled'}`);
|
|
390
|
+
lines.push(` Pattern Learning: ${this.config.patternLearningEnabled ? '✅ Enabled' : '❌ Disabled'}`);
|
|
391
|
+
lines.push(` Source Improvement: ${this.config.sourceImprovementEnabled ? '✅ Enabled' : '❌ Disabled'}`);
|
|
392
|
+
lines.push('');
|
|
393
|
+
lines.push('═══════════════════════════════════════════');
|
|
394
|
+
return lines.join('\n');
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
// ============================================================================
|
|
398
|
+
// SINGLETON INSTANCE
|
|
399
|
+
// ============================================================================
|
|
400
|
+
let globalOrchestrator = null;
|
|
401
|
+
/**
|
|
402
|
+
* Get the global AlphaZero orchestrator instance
|
|
403
|
+
*/
|
|
404
|
+
export function getAlphaZeroOrchestrator() {
|
|
405
|
+
if (!globalOrchestrator) {
|
|
406
|
+
globalOrchestrator = new AlphaZeroOrchestrator();
|
|
407
|
+
}
|
|
408
|
+
return globalOrchestrator;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Initialize with a provider
|
|
412
|
+
*/
|
|
413
|
+
export function initializeAlphaZero(provider) {
|
|
414
|
+
const orchestrator = getAlphaZeroOrchestrator();
|
|
415
|
+
orchestrator.setProvider(provider);
|
|
416
|
+
return orchestrator;
|
|
417
|
+
}
|
|
418
|
+
//# sourceMappingURL=alphaZeroOrchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphaZeroOrchestrator.js","sourceRoot":"","sources":["../../src/core/alphaZeroOrchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,5 +40,10 @@ export declare namespace TypeGuards {
|
|
|
40
40
|
*/
|
|
41
41
|
function isEnum<T extends string>(value: unknown, enumValues: readonly T[]): value is T;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Coerce loosely-typed tool arguments into their declared schema types.
|
|
45
|
+
* This makes tools resilient to providers that emit boolean/number values as strings.
|
|
46
|
+
*/
|
|
47
|
+
export declare function coerceToolArguments(schema: JSONSchemaObject | undefined, args: Record<string, unknown>): Record<string, unknown>;
|
|
43
48
|
export declare function validateToolArguments(toolName: string, schema: JSONSchemaObject | undefined, args: Record<string, unknown>): void;
|
|
44
49
|
//# sourceMappingURL=schemaValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaValidator.d.ts","sourceRoot":"","sources":["../../src/core/schemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,gBAAgB,EAAsB,MAAM,YAAY,CAAC;AAExF;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAM/C;AAED;;GAEG;AACH,yBAAiB,UAAU,CAAC;IAC1B;;OAEG;IACH,SAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;IAED;;OAEG;IACH,SAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;IAED;;OAEG;IACH,SAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAE1D;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;IAED;;OAEG;IACH,SAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAEvE;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,CAE7F;CACF;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CA6BN"}
|
|
1
|
+
{"version":3,"file":"schemaValidator.d.ts","sourceRoot":"","sources":["../../src/core/schemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,gBAAgB,EAAsB,MAAM,YAAY,CAAC;AAExF;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAM/C;AAED;;GAEG;AACH,yBAAiB,UAAU,CAAC;IAC1B;;OAEG;IACH,SAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;IAED;;OAEG;IACH,SAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;IAED;;OAEG;IACH,SAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAE1D;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;IAED;;OAEG;IACH,SAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAEvE;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,CAE7F;CACF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB;AA+BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CA6BN"}
|
|
@@ -66,6 +66,71 @@ export var TypeGuards;
|
|
|
66
66
|
}
|
|
67
67
|
TypeGuards.isEnum = isEnum;
|
|
68
68
|
})(TypeGuards || (TypeGuards = {}));
|
|
69
|
+
/**
|
|
70
|
+
* Coerce loosely-typed tool arguments into their declared schema types.
|
|
71
|
+
* This makes tools resilient to providers that emit boolean/number values as strings.
|
|
72
|
+
*/
|
|
73
|
+
export function coerceToolArguments(schema, args) {
|
|
74
|
+
if (!schema || schema.type !== 'object' || !schema.properties) {
|
|
75
|
+
return args;
|
|
76
|
+
}
|
|
77
|
+
const coerced = { ...args };
|
|
78
|
+
for (const [key, definition] of Object.entries(schema.properties)) {
|
|
79
|
+
if (!Object.hasOwn(args, key)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const value = args[key];
|
|
83
|
+
if (value === undefined || value === null) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
switch (definition.type) {
|
|
87
|
+
case 'boolean': {
|
|
88
|
+
const normalized = coerceBoolean(value);
|
|
89
|
+
coerced[key] = normalized;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case 'number': {
|
|
93
|
+
const normalized = coerceNumber(value);
|
|
94
|
+
coerced[key] = normalized;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
default:
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return coerced;
|
|
102
|
+
}
|
|
103
|
+
function coerceBoolean(value) {
|
|
104
|
+
if (typeof value === 'boolean') {
|
|
105
|
+
return value;
|
|
106
|
+
}
|
|
107
|
+
if (typeof value === 'number') {
|
|
108
|
+
if (value === 1)
|
|
109
|
+
return true;
|
|
110
|
+
if (value === 0)
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
if (typeof value === 'string') {
|
|
114
|
+
const trimmed = value.trim().toLowerCase();
|
|
115
|
+
if (trimmed === 'true' || trimmed === '1')
|
|
116
|
+
return true;
|
|
117
|
+
if (trimmed === 'false' || trimmed === '0')
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
return value;
|
|
121
|
+
}
|
|
122
|
+
function coerceNumber(value) {
|
|
123
|
+
if (typeof value === 'number' && !Number.isNaN(value)) {
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
if (typeof value === 'string' && value.trim().length > 0) {
|
|
127
|
+
const parsed = Number(value);
|
|
128
|
+
if (!Number.isNaN(parsed)) {
|
|
129
|
+
return parsed;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return value;
|
|
133
|
+
}
|
|
69
134
|
export function validateToolArguments(toolName, schema, args) {
|
|
70
135
|
if (!schema || schema.type !== 'object') {
|
|
71
136
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaValidator.js","sourceRoot":"","sources":["../../src/core/schemaValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemaValidator.js","sourceRoot":"","sources":["../../src/core/schemaValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intelligent Task Completion Detector
|
|
3
|
+
*
|
|
4
|
+
* This module provides robust detection of whether a continuous task is truly complete,
|
|
5
|
+
* rather than just pattern-matching keywords like "done" in responses.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Multi-signal analysis (tool usage, response content, state changes)
|
|
9
|
+
* - AI verification round before final completion
|
|
10
|
+
* - Confidence scoring
|
|
11
|
+
* - Work-in-progress detection
|
|
12
|
+
*
|
|
13
|
+
* @license MIT
|
|
14
|
+
* @author Bo Shang
|
|
15
|
+
*/
|
|
16
|
+
export interface ToolActivity {
|
|
17
|
+
toolName: string;
|
|
18
|
+
timestamp: number;
|
|
19
|
+
success: boolean;
|
|
20
|
+
hasOutput: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface CompletionSignals {
|
|
23
|
+
hasExplicitCompletionStatement: boolean;
|
|
24
|
+
hasIncompleteWorkIndicators: boolean;
|
|
25
|
+
hasPendingActionIndicators: boolean;
|
|
26
|
+
hasErrorIndicators: boolean;
|
|
27
|
+
hasFollowUpQuestions: boolean;
|
|
28
|
+
toolsUsedInLastResponse: number;
|
|
29
|
+
lastToolWasReadOnly: boolean;
|
|
30
|
+
consecutiveResponsesWithoutTools: number;
|
|
31
|
+
hasRecentFileWrites: boolean;
|
|
32
|
+
hasRecentCommits: boolean;
|
|
33
|
+
todoItemsPending: number;
|
|
34
|
+
todoItemsCompleted: number;
|
|
35
|
+
mentionsFutureWork: boolean;
|
|
36
|
+
completionConfidence: number;
|
|
37
|
+
}
|
|
38
|
+
export interface CompletionAnalysis {
|
|
39
|
+
isComplete: boolean;
|
|
40
|
+
confidence: number;
|
|
41
|
+
signals: CompletionSignals;
|
|
42
|
+
reason: string;
|
|
43
|
+
shouldVerify: boolean;
|
|
44
|
+
verificationPrompt?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare const WRITE_TOOLS: Set<string>;
|
|
47
|
+
export declare class TaskCompletionDetector {
|
|
48
|
+
private toolHistory;
|
|
49
|
+
private responseHistory;
|
|
50
|
+
private lastToolNames;
|
|
51
|
+
private consecutiveNoTools;
|
|
52
|
+
private todoStats;
|
|
53
|
+
constructor();
|
|
54
|
+
/**
|
|
55
|
+
* Reset the detector state for a new task
|
|
56
|
+
*/
|
|
57
|
+
reset(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Record a tool call
|
|
60
|
+
*/
|
|
61
|
+
recordToolCall(toolName: string, success: boolean, hasOutput: boolean): void;
|
|
62
|
+
/**
|
|
63
|
+
* Record a response (call after each AI response)
|
|
64
|
+
*/
|
|
65
|
+
recordResponse(response: string, toolsUsed: string[]): void;
|
|
66
|
+
/**
|
|
67
|
+
* Update todo statistics
|
|
68
|
+
*/
|
|
69
|
+
updateTodoStats(pending: number, completed: number): void;
|
|
70
|
+
/**
|
|
71
|
+
* Analyze the current state and determine if the task is complete
|
|
72
|
+
*/
|
|
73
|
+
analyzeCompletion(currentResponse: string, toolsUsedThisRound: string[]): CompletionAnalysis;
|
|
74
|
+
/**
|
|
75
|
+
* Gather all completion signals from the current state
|
|
76
|
+
*/
|
|
77
|
+
private gatherSignals;
|
|
78
|
+
/**
|
|
79
|
+
* Calculate confidence score for task completion
|
|
80
|
+
*/
|
|
81
|
+
private calculateConfidence;
|
|
82
|
+
/**
|
|
83
|
+
* Generate a verification prompt to ask the AI if the task is truly complete
|
|
84
|
+
*/
|
|
85
|
+
private generateVerificationPrompt;
|
|
86
|
+
/**
|
|
87
|
+
* Generate a verification prompt for stagnation cases
|
|
88
|
+
*/
|
|
89
|
+
private generateStagnationVerificationPrompt;
|
|
90
|
+
/**
|
|
91
|
+
* Get a human-readable reason for low confidence
|
|
92
|
+
*/
|
|
93
|
+
private getLowConfidenceReason;
|
|
94
|
+
/**
|
|
95
|
+
* Check if a verification response confirms completion
|
|
96
|
+
*/
|
|
97
|
+
isVerificationConfirmed(verificationResponse: string): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Check if a response contradicts itself by saying "complete" but also indicating incomplete work.
|
|
100
|
+
* This comprehensive list catches many ways AI might admit work isn't done while claiming completion.
|
|
101
|
+
*/
|
|
102
|
+
private responseContainsIncompleteIndicators;
|
|
103
|
+
}
|
|
104
|
+
export declare function getTaskCompletionDetector(): TaskCompletionDetector;
|
|
105
|
+
export declare function resetTaskCompletionDetector(): void;
|
|
106
|
+
//# sourceMappingURL=taskCompletionDetector.d.ts.map
|