erosolar-cli 2.1.238 → 2.1.240

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 (142) hide show
  1. package/README.md +9 -0
  2. package/dist/contracts/tools.schema.json +3 -1
  3. package/dist/core/agent.d.ts.map +1 -1
  4. package/dist/core/agent.js +5 -1
  5. package/dist/core/agent.js.map +1 -1
  6. package/dist/core/agentOrchestrator.d.ts +4 -0
  7. package/dist/core/agentOrchestrator.d.ts.map +1 -1
  8. package/dist/core/agentOrchestrator.js +58 -6
  9. package/dist/core/agentOrchestrator.js.map +1 -1
  10. package/dist/core/autoExecutionOrchestrator.d.ts +172 -0
  11. package/dist/core/autoExecutionOrchestrator.d.ts.map +1 -0
  12. package/dist/core/autoExecutionOrchestrator.js +591 -0
  13. package/dist/core/autoExecutionOrchestrator.js.map +1 -0
  14. package/dist/core/contextManager.d.ts.map +1 -1
  15. package/dist/core/contextManager.js.map +1 -1
  16. package/dist/core/dualAgentOrchestrator.d.ts +34 -0
  17. package/dist/core/dualAgentOrchestrator.d.ts.map +1 -0
  18. package/dist/core/dualAgentOrchestrator.js +94 -0
  19. package/dist/core/dualAgentOrchestrator.js.map +1 -0
  20. package/dist/core/errors/safetyValidator.d.ts +25 -12
  21. package/dist/core/errors/safetyValidator.d.ts.map +1 -1
  22. package/dist/core/errors/safetyValidator.js +165 -17
  23. package/dist/core/errors/safetyValidator.js.map +1 -1
  24. package/dist/core/governmentProcedures.d.ts +118 -0
  25. package/dist/core/governmentProcedures.d.ts.map +1 -0
  26. package/dist/core/governmentProcedures.js +912 -0
  27. package/dist/core/governmentProcedures.js.map +1 -0
  28. package/dist/core/infrastructureTemplates.d.ts +123 -0
  29. package/dist/core/infrastructureTemplates.d.ts.map +1 -0
  30. package/dist/core/infrastructureTemplates.js +1326 -0
  31. package/dist/core/infrastructureTemplates.js.map +1 -0
  32. package/dist/core/integrityVerification.d.ts +250 -0
  33. package/dist/core/integrityVerification.d.ts.map +1 -0
  34. package/dist/core/integrityVerification.js +616 -0
  35. package/dist/core/integrityVerification.js.map +1 -0
  36. package/dist/core/orchestration.d.ts +534 -0
  37. package/dist/core/orchestration.d.ts.map +1 -0
  38. package/dist/core/orchestration.js +2009 -0
  39. package/dist/core/orchestration.js.map +1 -0
  40. package/dist/core/persistentObjectiveStore.d.ts +292 -0
  41. package/dist/core/persistentObjectiveStore.d.ts.map +1 -0
  42. package/dist/core/persistentObjectiveStore.js +613 -0
  43. package/dist/core/persistentObjectiveStore.js.map +1 -0
  44. package/dist/core/preferences.js +1 -1
  45. package/dist/core/preferences.js.map +1 -1
  46. package/dist/core/reliabilityPrompt.d.ts.map +1 -1
  47. package/dist/core/reliabilityPrompt.js +3 -0
  48. package/dist/core/reliabilityPrompt.js.map +1 -1
  49. package/dist/core/securityDeliverableGenerator.d.ts +292 -0
  50. package/dist/core/securityDeliverableGenerator.d.ts.map +1 -0
  51. package/dist/core/securityDeliverableGenerator.js +1590 -0
  52. package/dist/core/securityDeliverableGenerator.js.map +1 -0
  53. package/dist/core/taskCompletionDetector.d.ts.map +1 -1
  54. package/dist/core/taskCompletionDetector.js +4 -1
  55. package/dist/core/taskCompletionDetector.js.map +1 -1
  56. package/dist/shell/autoExecutor.d.ts.map +1 -1
  57. package/dist/shell/autoExecutor.js +32 -3
  58. package/dist/shell/autoExecutor.js.map +1 -1
  59. package/dist/shell/interactiveShell.d.ts +9 -0
  60. package/dist/shell/interactiveShell.d.ts.map +1 -1
  61. package/dist/shell/interactiveShell.js +282 -190
  62. package/dist/shell/interactiveShell.js.map +1 -1
  63. package/dist/tools/bashTools.d.ts +3 -5
  64. package/dist/tools/bashTools.d.ts.map +1 -1
  65. package/dist/tools/bashTools.js +259 -161
  66. package/dist/tools/bashTools.js.map +1 -1
  67. package/dist/tools/tao/index.d.ts +4 -4
  68. package/dist/tools/tao/index.d.ts.map +1 -1
  69. package/dist/tools/tao/index.js +15 -5
  70. package/dist/tools/tao/index.js.map +1 -1
  71. package/dist/tools/tao/rl.d.ts +164 -0
  72. package/dist/tools/tao/rl.d.ts.map +1 -0
  73. package/dist/tools/tao/rl.js +2998 -0
  74. package/dist/tools/tao/rl.js.map +1 -0
  75. package/dist/tools/taoTools.d.ts +2 -2
  76. package/dist/tools/taoTools.d.ts.map +1 -1
  77. package/dist/tools/taoTools.js +103 -20
  78. package/dist/tools/taoTools.js.map +1 -1
  79. package/dist/ui/PromptController.d.ts +3 -0
  80. package/dist/ui/PromptController.d.ts.map +1 -1
  81. package/dist/ui/PromptController.js +3 -0
  82. package/dist/ui/PromptController.js.map +1 -1
  83. package/dist/ui/UnifiedUIRenderer.d.ts +4 -0
  84. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  85. package/dist/ui/UnifiedUIRenderer.js +37 -6
  86. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  87. package/dist/ui/display.d.ts +9 -1
  88. package/dist/ui/display.d.ts.map +1 -1
  89. package/dist/ui/display.js +66 -9
  90. package/dist/ui/display.js.map +1 -1
  91. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  92. package/dist/ui/shortcutsHelp.js +1 -0
  93. package/dist/ui/shortcutsHelp.js.map +1 -1
  94. package/package.json +3 -2
  95. package/dist/capabilities/askUserCapability.d.ts +0 -14
  96. package/dist/capabilities/askUserCapability.d.ts.map +0 -1
  97. package/dist/capabilities/askUserCapability.js +0 -134
  98. package/dist/capabilities/askUserCapability.js.map +0 -1
  99. package/dist/capabilities/codeGenerationCapability.d.ts +0 -13
  100. package/dist/capabilities/codeGenerationCapability.d.ts.map +0 -1
  101. package/dist/capabilities/codeGenerationCapability.js +0 -25
  102. package/dist/capabilities/codeGenerationCapability.js.map +0 -1
  103. package/dist/capabilities/performanceMonitoringCapability.d.ts +0 -108
  104. package/dist/capabilities/performanceMonitoringCapability.d.ts.map +0 -1
  105. package/dist/capabilities/performanceMonitoringCapability.js +0 -176
  106. package/dist/capabilities/performanceMonitoringCapability.js.map +0 -1
  107. package/dist/capabilities/todoCapability.d.ts +0 -19
  108. package/dist/capabilities/todoCapability.d.ts.map +0 -1
  109. package/dist/capabilities/todoCapability.js +0 -170
  110. package/dist/capabilities/todoCapability.js.map +0 -1
  111. package/dist/core/baseToolFactory.d.ts +0 -187
  112. package/dist/core/baseToolFactory.d.ts.map +0 -1
  113. package/dist/core/baseToolFactory.js +0 -352
  114. package/dist/core/baseToolFactory.js.map +0 -1
  115. package/dist/core/intelligentSummarizer.d.ts +0 -79
  116. package/dist/core/intelligentSummarizer.d.ts.map +0 -1
  117. package/dist/core/intelligentSummarizer.js +0 -273
  118. package/dist/core/intelligentSummarizer.js.map +0 -1
  119. package/dist/core/memorySystem.d.ts +0 -67
  120. package/dist/core/memorySystem.d.ts.map +0 -1
  121. package/dist/core/memorySystem.js +0 -334
  122. package/dist/core/memorySystem.js.map +0 -1
  123. package/dist/core/outputStyles.d.ts +0 -48
  124. package/dist/core/outputStyles.d.ts.map +0 -1
  125. package/dist/core/outputStyles.js +0 -270
  126. package/dist/core/outputStyles.js.map +0 -1
  127. package/dist/core/toolPatternAnalyzer.d.ts +0 -87
  128. package/dist/core/toolPatternAnalyzer.d.ts.map +0 -1
  129. package/dist/core/toolPatternAnalyzer.js +0 -272
  130. package/dist/core/toolPatternAnalyzer.js.map +0 -1
  131. package/dist/tools/backgroundBashTools.d.ts +0 -21
  132. package/dist/tools/backgroundBashTools.d.ts.map +0 -1
  133. package/dist/tools/backgroundBashTools.js +0 -215
  134. package/dist/tools/backgroundBashTools.js.map +0 -1
  135. package/dist/tools/code-quality-dashboard.d.ts +0 -57
  136. package/dist/tools/code-quality-dashboard.d.ts.map +0 -1
  137. package/dist/tools/code-quality-dashboard.js +0 -218
  138. package/dist/tools/code-quality-dashboard.js.map +0 -1
  139. package/dist/tools/tao/rlEngine.d.ts +0 -40
  140. package/dist/tools/tao/rlEngine.d.ts.map +0 -1
  141. package/dist/tools/tao/rlEngine.js +0 -237
  142. package/dist/tools/tao/rlEngine.js.map +0 -1
@@ -1,57 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Erosolar Code Quality Dashboard
4
- *
5
- * Provides real-time insights into codebase health, quality metrics,
6
- * and actionable recommendations for improvement.
7
- *
8
- * Usage:
9
- * node src/tools/code-quality-dashboard.ts
10
- * npm run quality-dashboard
11
- */
12
- interface CodeQualityMetrics {
13
- buildStatus: 'success' | 'failed' | 'unknown';
14
- testStatus: 'success' | 'failed' | 'unknown';
15
- lintStatus: 'success' | 'failed' | 'unknown';
16
- typeCheckStatus: 'success' | 'failed' | 'unknown';
17
- complexityScore: number;
18
- fileCount: number;
19
- linesOfCode: number;
20
- dependencies: {
21
- total: number;
22
- dev: number;
23
- prod: number;
24
- };
25
- issues: {
26
- critical: number;
27
- warnings: number;
28
- suggestions: number;
29
- };
30
- }
31
- interface DashboardReport {
32
- timestamp: string;
33
- metrics: CodeQualityMetrics;
34
- recommendations: string[];
35
- nextSteps: string[];
36
- }
37
- declare class CodeQualityDashboard {
38
- private projectRoot;
39
- constructor();
40
- generateReport(): Promise<DashboardReport>;
41
- private collectMetrics;
42
- private checkBuildStatus;
43
- private checkTestStatus;
44
- private checkLintStatus;
45
- private checkTypeCheckStatus;
46
- private calculateComplexityScore;
47
- private countFiles;
48
- private countLinesOfCode;
49
- private analyzeDependencies;
50
- private analyzeIssues;
51
- private generateRecommendations;
52
- private generateNextSteps;
53
- displayReport(report: DashboardReport): void;
54
- private formatStatus;
55
- }
56
- export { CodeQualityDashboard };
57
- //# sourceMappingURL=code-quality-dashboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-quality-dashboard.d.ts","sourceRoot":"","sources":["../../src/tools/code-quality-dashboard.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AAMH,UAAU,kBAAkB;IAC1B,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7C,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7C,eAAe,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,cAAM,oBAAoB;IACxB,OAAO,CAAC,WAAW,CAAS;;IAMtB,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;YAelC,cAAc;YAcd,gBAAgB;YAShB,eAAe;YASf,eAAe;YASf,oBAAoB;YASpB,wBAAwB;YAaxB,UAAU;YASV,gBAAgB;YAUhB,mBAAmB;YAanB,aAAa;IAS3B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,iBAAiB;IAiBzB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IA6B5C,OAAO,CAAC,YAAY;CAOrB;AAoBD,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,218 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Erosolar Code Quality Dashboard
4
- *
5
- * Provides real-time insights into codebase health, quality metrics,
6
- * and actionable recommendations for improvement.
7
- *
8
- * Usage:
9
- * node src/tools/code-quality-dashboard.ts
10
- * npm run quality-dashboard
11
- */
12
- import { execSync } from 'child_process';
13
- import { readFileSync } from 'fs';
14
- import { join } from 'path';
15
- class CodeQualityDashboard {
16
- projectRoot;
17
- constructor() {
18
- this.projectRoot = process.cwd();
19
- }
20
- async generateReport() {
21
- console.log('🔍 Analyzing codebase quality...\n');
22
- const metrics = await this.collectMetrics();
23
- const recommendations = this.generateRecommendations(metrics);
24
- const nextSteps = this.generateNextSteps(metrics);
25
- return {
26
- timestamp: new Date().toISOString(),
27
- metrics,
28
- recommendations,
29
- nextSteps
30
- };
31
- }
32
- async collectMetrics() {
33
- return {
34
- buildStatus: await this.checkBuildStatus(),
35
- testStatus: await this.checkTestStatus(),
36
- lintStatus: await this.checkLintStatus(),
37
- typeCheckStatus: await this.checkTypeCheckStatus(),
38
- complexityScore: await this.calculateComplexityScore(),
39
- fileCount: await this.countFiles(),
40
- linesOfCode: await this.countLinesOfCode(),
41
- dependencies: await this.analyzeDependencies(),
42
- issues: await this.analyzeIssues()
43
- };
44
- }
45
- async checkBuildStatus() {
46
- try {
47
- execSync('npm run build --silent', { stdio: 'pipe' });
48
- return 'success';
49
- }
50
- catch {
51
- return 'failed';
52
- }
53
- }
54
- async checkTestStatus() {
55
- try {
56
- execSync('npm test --silent', { stdio: 'pipe' });
57
- return 'success';
58
- }
59
- catch {
60
- return 'failed';
61
- }
62
- }
63
- async checkLintStatus() {
64
- try {
65
- execSync('npm run lint --silent', { stdio: 'pipe' });
66
- return 'success';
67
- }
68
- catch {
69
- return 'failed';
70
- }
71
- }
72
- async checkTypeCheckStatus() {
73
- try {
74
- execSync('npm run type-check --silent', { stdio: 'pipe' });
75
- return 'success';
76
- }
77
- catch {
78
- return 'failed';
79
- }
80
- }
81
- async calculateComplexityScore() {
82
- try {
83
- const output = execSync('npm run complexity-check --silent', { encoding: 'utf8' });
84
- // Parse complexity score from output (simplified)
85
- if (output.includes('✅'))
86
- return 90;
87
- if (output.includes('⚠️'))
88
- return 70;
89
- if (output.includes('❌'))
90
- return 50;
91
- return 60;
92
- }
93
- catch {
94
- return 40;
95
- }
96
- }
97
- async countFiles() {
98
- try {
99
- const output = execSync('find src -name "*.ts" -type f | wc -l', { encoding: 'utf8' });
100
- return parseInt(output.trim(), 10);
101
- }
102
- catch {
103
- return 0;
104
- }
105
- }
106
- async countLinesOfCode() {
107
- try {
108
- const output = execSync('find src -name "*.ts" -type f | xargs wc -l | tail -1', { encoding: 'utf8' });
109
- const match = output.match(/(\d+)/);
110
- return match?.[1] ? parseInt(match[1], 10) : 0;
111
- }
112
- catch {
113
- return 0;
114
- }
115
- }
116
- async analyzeDependencies() {
117
- try {
118
- const packageJson = JSON.parse(readFileSync(join(this.projectRoot, 'package.json'), 'utf8'));
119
- return {
120
- total: Object.keys(packageJson.dependencies || {}).length + Object.keys(packageJson.devDependencies || {}).length,
121
- dev: Object.keys(packageJson.devDependencies || {}).length,
122
- prod: Object.keys(packageJson.dependencies || {}).length
123
- };
124
- }
125
- catch {
126
- return { total: 0, dev: 0, prod: 0 };
127
- }
128
- }
129
- async analyzeIssues() {
130
- // Simplified issue analysis
131
- return {
132
- critical: 0,
133
- warnings: 2,
134
- suggestions: 5
135
- };
136
- }
137
- generateRecommendations(metrics) {
138
- const recommendations = [];
139
- if (metrics.buildStatus === 'failed') {
140
- recommendations.push('Fix build errors before proceeding');
141
- }
142
- if (metrics.testStatus === 'failed') {
143
- recommendations.push('Address failing tests to ensure reliability');
144
- }
145
- if (metrics.lintStatus === 'failed') {
146
- recommendations.push('Run `npm run lint:fix` to automatically fix linting issues');
147
- }
148
- if (metrics.complexityScore < 70) {
149
- recommendations.push('Consider refactoring complex files to improve maintainability');
150
- }
151
- if (metrics.dependencies.total > 50) {
152
- recommendations.push('Review dependencies for potential bloat or security issues');
153
- }
154
- return recommendations;
155
- }
156
- generateNextSteps(metrics) {
157
- const nextSteps = [];
158
- nextSteps.push('Run `npm run quality-gate` for comprehensive validation');
159
- nextSteps.push('Check `npm run health-check` for system health');
160
- if (metrics.issues.warnings > 0) {
161
- nextSteps.push('Review warnings in the codebase');
162
- }
163
- if (metrics.complexityScore < 80) {
164
- nextSteps.push('Run complexity analysis with `npm run complexity-check`');
165
- }
166
- return nextSteps;
167
- }
168
- displayReport(report) {
169
- console.log('╔══════════════════════════════════════════════════════════════════════════════╗');
170
- console.log('║ CODE QUALITY DASHBOARD ║');
171
- console.log('╚══════════════════════════════════════════════════════════════════════════════╝\n');
172
- console.log('📊 METRICS OVERVIEW:');
173
- console.log(` • Build Status: ${this.formatStatus(report.metrics.buildStatus)}`);
174
- console.log(` • Test Status: ${this.formatStatus(report.metrics.testStatus)}`);
175
- console.log(` • Lint Status: ${this.formatStatus(report.metrics.lintStatus)}`);
176
- console.log(` • Type Check: ${this.formatStatus(report.metrics.typeCheckStatus)}`);
177
- console.log(` • Complexity Score: ${report.metrics.complexityScore}/100`);
178
- console.log(` • Files: ${report.metrics.fileCount} TypeScript files`);
179
- console.log(` • Lines of Code: ${report.metrics.linesOfCode}`);
180
- console.log(` • Dependencies: ${report.metrics.dependencies.total} (${report.metrics.dependencies.prod} prod, ${report.metrics.dependencies.dev} dev)`);
181
- console.log(` • Issues: ${report.metrics.issues.critical} critical, ${report.metrics.issues.warnings} warnings, ${report.metrics.issues.suggestions} suggestions`);
182
- console.log('\n🎯 RECOMMENDATIONS:');
183
- if (report.recommendations.length === 0) {
184
- console.log(' ✅ Codebase is in good shape!');
185
- }
186
- else {
187
- report.recommendations.forEach(rec => console.log(` • ${rec}`));
188
- }
189
- console.log('\n🚀 NEXT STEPS:');
190
- report.nextSteps.forEach(step => console.log(` • ${step}`));
191
- console.log(`\n⏰ Generated: ${new Date(report.timestamp).toLocaleString()}`);
192
- }
193
- formatStatus(status) {
194
- switch (status) {
195
- case 'success': return '✅ Success';
196
- case 'failed': return '❌ Failed';
197
- default: return '⚠️ Unknown';
198
- }
199
- }
200
- }
201
- // Main execution
202
- async function main() {
203
- const dashboard = new CodeQualityDashboard();
204
- try {
205
- const report = await dashboard.generateReport();
206
- dashboard.displayReport(report);
207
- }
208
- catch (error) {
209
- console.error('❌ Error generating dashboard:', error);
210
- process.exit(1);
211
- }
212
- }
213
- // Run if called directly
214
- if (import.meta.url === `file://${process.argv[1]}`) {
215
- main();
216
- }
217
- export { CodeQualityDashboard };
218
- //# sourceMappingURL=code-quality-dashboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-quality-dashboard.js","sourceRoot":"","sources":["../../src/tools/code-quality-dashboard.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Tao Tools - Dual-Agent Reinforcement Learning Engine
3
- *
4
- * Modular RL system for tool selection and optimization.
5
- */
6
- import type { RLReward, AgentPolicy, DualAgentState, RLToolContext } from './types.js';
7
- export declare const dualAgentRL: DualAgentState;
8
- export declare function ucb1Select(actions: string[], qValues: Map<string, number>, counts: Map<string, number>, totalCount: number, c?: number): string;
9
- export declare function softmaxPolicy(qValues: Record<string, number>, temperature: number): Record<string, number>;
10
- export declare function tdLambdaUpdate(agent: AgentPolicy, state: string, reward: number, nextState: string, valueEstimates: Map<string, number>, gamma?: number, lambda?: number): void;
11
- export declare function policyGradientUpdate(agent: AgentPolicy, action: string, reward: number, baseline?: number): void;
12
- export declare function createRLContext(toolName: string, action: string, params: Record<string, unknown>): RLToolContext;
13
- export declare function computeReward(context: RLToolContext, result: unknown, success: boolean): RLReward;
14
- export declare function updateDualAgents(context: RLToolContext, reward: RLReward): {
15
- redPolicy: Record<string, number>;
16
- bluePolicy: Record<string, number>;
17
- };
18
- export declare function executeWithRL<T>(toolName: string, action: string, params: Record<string, unknown>, executor: () => Promise<T>): Promise<{
19
- result: T;
20
- rl: {
21
- reward: RLReward;
22
- policies: {
23
- red: Record<string, number>;
24
- blue: Record<string, number>;
25
- };
26
- };
27
- }>;
28
- export declare function getRLState(): {
29
- episode: number;
30
- steps: number;
31
- avgReward: number;
32
- redTemperature: number;
33
- blueTemperature: number;
34
- topActions: Array<{
35
- action: string;
36
- redWeight: number;
37
- blueWeight: number;
38
- }>;
39
- };
40
- //# sourceMappingURL=rlEngine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rlEngine.d.ts","sourceRoot":"","sources":["../../../src/tools/tao/rlEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,WAAW,EAAE,cAkBzB,CAAC;AAOF,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,UAAU,EAAE,MAAM,EAClB,CAAC,GAAE,MAAmB,GACrB,MAAM,CAqBR;AAOD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAQD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,KAAK,GAAE,MAAa,EACpB,MAAM,GAAE,MAAY,GACnB,IAAI,CAaN;AAOD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAU,GACnB,IAAI,CAiBN;AAMD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,aAAa,CAOf;AAMD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,OAAO,GACf,QAAQ,CAyBV;AAMD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,QAAQ,GACf;IAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAgD3E;AAMD,wBAAsB,aAAa,CAAC,CAAC,EACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;IACV,EAAE,EAAE;QACF,MAAM,EAAE,QAAQ,CAAC;QACjB,QAAQ,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC;KACzE,CAAC;CACH,CAAC,CA0BD;AAMD,wBAAgB,UAAU,IAAI;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E,CAyBA"}
@@ -1,237 +0,0 @@
1
- /**
2
- * Tao Tools - Dual-Agent Reinforcement Learning Engine
3
- *
4
- * Modular RL system for tool selection and optimization.
5
- */
6
- // ═══════════════════════════════════════════════════════════════════════════════
7
- // Global RL State
8
- // ═══════════════════════════════════════════════════════════════════════════════
9
- export const dualAgentRL = {
10
- red: {
11
- weights: new Map(),
12
- bias: new Map(),
13
- temperature: 1.0,
14
- learningRate: 0.01,
15
- },
16
- blue: {
17
- weights: new Map(),
18
- bias: new Map(),
19
- temperature: 1.0,
20
- learningRate: 0.01,
21
- },
22
- sharedMemory: new Map(),
23
- episode: 0,
24
- stepCount: 0,
25
- rewardHistory: [],
26
- valueEstimates: new Map(),
27
- };
28
- // ═══════════════════════════════════════════════════════════════════════════════
29
- // UCB1 Multi-Armed Bandit
30
- // Formula: argmax[Q(a) + c * √(ln(N) / N(a))]
31
- // ═══════════════════════════════════════════════════════════════════════════════
32
- export function ucb1Select(actions, qValues, counts, totalCount, c = Math.SQRT2) {
33
- let bestAction = actions[0] || 'default';
34
- let bestUcb = -Infinity;
35
- for (const action of actions) {
36
- const q = qValues.get(action) || 0;
37
- const n = counts.get(action) || 0;
38
- if (n === 0)
39
- return action; // Explore unvisited
40
- const exploitation = q;
41
- const exploration = c * Math.sqrt(Math.log(totalCount) / n);
42
- const ucb = exploitation + exploration;
43
- if (ucb > bestUcb) {
44
- bestUcb = ucb;
45
- bestAction = action;
46
- }
47
- }
48
- return bestAction;
49
- }
50
- // ═══════════════════════════════════════════════════════════════════════════════
51
- // Softmax Policy with Temperature
52
- // π(a|s) = exp(Q(s,a)/τ) / Σ exp(Q(s,a')/τ)
53
- // ═══════════════════════════════════════════════════════════════════════════════
54
- export function softmaxPolicy(qValues, temperature) {
55
- const actions = Object.keys(qValues);
56
- const maxQ = Math.max(...Object.values(qValues), 0);
57
- const expValues = {};
58
- let sumExp = 0;
59
- for (const action of actions) {
60
- const expV = Math.exp(((qValues[action] || 0) - maxQ) / temperature);
61
- expValues[action] = expV;
62
- sumExp += expV;
63
- }
64
- const policy = {};
65
- for (const action of actions) {
66
- policy[action] = (expValues[action] || 0) / (sumExp || 1);
67
- }
68
- return policy;
69
- }
70
- // ═══════════════════════════════════════════════════════════════════════════════
71
- // TD(λ) Value Update with Eligibility Traces
72
- // V(s) ← V(s) + α * δ * e(s)
73
- // δ = r + γ * V(s') - V(s)
74
- // ═══════════════════════════════════════════════════════════════════════════════
75
- export function tdLambdaUpdate(agent, state, reward, nextState, valueEstimates, gamma = 0.99, lambda = 0.9) {
76
- const v = valueEstimates.get(state) || 0;
77
- const vNext = valueEstimates.get(nextState) || 0;
78
- const tdError = reward + gamma * vNext - v;
79
- // Update with eligibility trace decay
80
- const eligibility = agent.weights.get('_eligibility') || [];
81
- const newEligibility = eligibility.map(e => gamma * lambda * e);
82
- newEligibility.push(1.0); // Current state trace
83
- agent.weights.set('_eligibility', newEligibility.slice(-100));
84
- // Apply update
85
- valueEstimates.set(state, v + agent.learningRate * tdError);
86
- }
87
- // ═══════════════════════════════════════════════════════════════════════════════
88
- // Policy Gradient (REINFORCE)
89
- // ∇θ J(θ) = E[∇θ log π(a|s;θ) * R]
90
- // ═══════════════════════════════════════════════════════════════════════════════
91
- export function policyGradientUpdate(agent, action, reward, baseline = 0) {
92
- const weights = agent.weights.get(action) || [0];
93
- const advantage = reward - baseline;
94
- // Update weights in direction of gradient
95
- const updatedWeights = weights.map((w, _i) => {
96
- const grad = advantage * (1 - (agent.bias.get(action) || 0.5));
97
- return w + agent.learningRate * grad;
98
- });
99
- agent.weights.set(action, updatedWeights);
100
- // Update bias term
101
- const currentBias = agent.bias.get(action) || 0.5;
102
- agent.bias.set(action, Math.max(0.01, Math.min(0.99, currentBias + agent.learningRate * advantage * 0.1)));
103
- }
104
- // ═══════════════════════════════════════════════════════════════════════════════
105
- // RL Context Creation
106
- // ═══════════════════════════════════════════════════════════════════════════════
107
- export function createRLContext(toolName, action, params) {
108
- return {
109
- toolName,
110
- action,
111
- params,
112
- startTime: Date.now(),
113
- };
114
- }
115
- // ═══════════════════════════════════════════════════════════════════════════════
116
- // Reward Computation
117
- // ═══════════════════════════════════════════════════════════════════════════════
118
- export function computeReward(context, result, success) {
119
- const elapsed = Date.now() - context.startTime;
120
- // Reward components
121
- const components = {
122
- success: success ? 0.5 : -0.3,
123
- efficiency: Math.max(0, 1 - elapsed / 10000) * 0.2, // Faster = better
124
- novelty: Math.random() * 0.1, // Exploration bonus
125
- depth: (context.params['depth'] || 1) * 0.05,
126
- };
127
- // Add result-based rewards
128
- if (typeof result === 'string') {
129
- components['richness'] = Math.min(result.length / 1000, 0.3);
130
- }
131
- else if (typeof result === 'object' && result !== null) {
132
- components['structure'] = Object.keys(result).length * 0.02;
133
- }
134
- const value = Object.values(components).reduce((a, b) => a + b, 0);
135
- return {
136
- value: Math.max(-1, Math.min(1, value)),
137
- components,
138
- sparse: success && elapsed < 1000,
139
- };
140
- }
141
- // ═══════════════════════════════════════════════════════════════════════════════
142
- // Dual Agent Update
143
- // ═══════════════════════════════════════════════════════════════════════════════
144
- export function updateDualAgents(context, reward) {
145
- dualAgentRL.stepCount++;
146
- dualAgentRL.rewardHistory.push(reward.value);
147
- // Keep last 1000 rewards
148
- if (dualAgentRL.rewardHistory.length > 1000) {
149
- dualAgentRL.rewardHistory.shift();
150
- }
151
- // Compute baseline (moving average)
152
- const baseline = dualAgentRL.rewardHistory.reduce((a, b) => a + b, 0) /
153
- dualAgentRL.rewardHistory.length;
154
- // Update RED agent (offensive - seeks high reward)
155
- policyGradientUpdate(dualAgentRL.red, context.action, reward.value, baseline);
156
- // Update BLUE agent (defensive - penalizes risky actions)
157
- const blueReward = (reward.components['success'] || 0) - (reward.components['novelty'] || 0) * 2;
158
- policyGradientUpdate(dualAgentRL.blue, context.action, blueReward, baseline);
159
- // TD update for value estimation
160
- const stateKey = `${context.toolName}:${context.action}`;
161
- const nextStateKey = `${context.toolName}:next`;
162
- tdLambdaUpdate(dualAgentRL.red, stateKey, reward.value, nextStateKey, dualAgentRL.valueEstimates);
163
- // Temperature annealing
164
- dualAgentRL.red.temperature = Math.max(0.1, dualAgentRL.red.temperature * 0.999);
165
- dualAgentRL.blue.temperature = Math.max(0.1, dualAgentRL.blue.temperature * 0.999);
166
- // Compute current policies
167
- const redQ = {};
168
- const blueQ = {};
169
- for (const [action, weights] of dualAgentRL.red.weights) {
170
- if (!action.startsWith('_')) {
171
- redQ[action] = weights.reduce((a, b) => a + b, 0);
172
- }
173
- }
174
- for (const [action, weights] of dualAgentRL.blue.weights) {
175
- if (!action.startsWith('_')) {
176
- blueQ[action] = weights.reduce((a, b) => a + b, 0);
177
- }
178
- }
179
- return {
180
- redPolicy: softmaxPolicy(redQ, dualAgentRL.red.temperature),
181
- bluePolicy: softmaxPolicy(blueQ, dualAgentRL.blue.temperature),
182
- };
183
- }
184
- // ═══════════════════════════════════════════════════════════════════════════════
185
- // RL-Enhanced Tool Executor
186
- // ═══════════════════════════════════════════════════════════════════════════════
187
- export async function executeWithRL(toolName, action, params, executor) {
188
- const context = createRLContext(toolName, action, params);
189
- let result;
190
- let success = true;
191
- try {
192
- result = await executor();
193
- }
194
- catch (e) {
195
- success = false;
196
- result = { error: String(e) };
197
- }
198
- const reward = computeReward(context, result, success);
199
- const policies = updateDualAgents(context, reward);
200
- return {
201
- result,
202
- rl: {
203
- reward,
204
- policies: {
205
- red: policies.redPolicy,
206
- blue: policies.bluePolicy,
207
- },
208
- },
209
- };
210
- }
211
- // ═══════════════════════════════════════════════════════════════════════════════
212
- // Get RL State for Visualization
213
- // ═══════════════════════════════════════════════════════════════════════════════
214
- export function getRLState() {
215
- const avgReward = dualAgentRL.rewardHistory.length > 0
216
- ? dualAgentRL.rewardHistory.reduce((a, b) => a + b, 0) / dualAgentRL.rewardHistory.length
217
- : 0;
218
- const topActions = [];
219
- const allActions = new Set([...dualAgentRL.red.weights.keys(), ...dualAgentRL.blue.weights.keys()]);
220
- for (const action of allActions) {
221
- if (action.startsWith('_'))
222
- continue;
223
- const redW = (dualAgentRL.red.weights.get(action) || [0]).reduce((a, b) => a + b, 0);
224
- const blueW = (dualAgentRL.blue.weights.get(action) || [0]).reduce((a, b) => a + b, 0);
225
- topActions.push({ action, redWeight: redW, blueWeight: blueW });
226
- }
227
- topActions.sort((a, b) => Math.abs(b.redWeight) - Math.abs(a.redWeight));
228
- return {
229
- episode: dualAgentRL.episode,
230
- steps: dualAgentRL.stepCount,
231
- avgReward,
232
- redTemperature: dualAgentRL.red.temperature,
233
- blueTemperature: dualAgentRL.blue.temperature,
234
- topActions: topActions.slice(0, 10),
235
- };
236
- }
237
- //# sourceMappingURL=rlEngine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rlEngine.js","sourceRoot":"","sources":["../../../src/tools/tao/rlEngine.ts"],"names":[],"mappings":"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"}