claude-flow-novice 1.3.0 ā 1.3.2
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/.claude-flow-novice/preferences/generation.json +147 -0
- package/.claude-flow-novice/preferences/language-configs/javascript.json +51 -0
- package/.claude-flow-novice/preferences/language-configs/python.json +50 -0
- package/.claude-flow-novice/preferences/language-configs/rust.json +237 -0
- package/.claude-flow-novice/preferences/language-configs/typescript.json +54 -0
- package/.claude-flow-novice/preferences/project-local.json +91 -0
- package/.claude-flow-novice/preferences/resource-delegation.json +120 -0
- package/.claude-flow-novice/preferences/team-shared.json +195 -0
- package/.claude-flow-novice/preferences/user-global.json +247 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-JAVASCRIPT.md +769 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-PYTHON.md +1214 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-RUST.md +475 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-TYPESCRIPT.md +851 -0
- package/.claude-flow-novice/templates/claude-md-templates/README.md +263 -0
- package/CLAUDE.md +81 -0
- package/README-NPM.md +0 -0
- package/package.json +11 -7
- package/scripts/build/README.md +167 -0
- package/scripts/build/build-config.js +27 -0
- package/scripts/build/build-prompt-copier.sh +30 -0
- package/scripts/build/performance-monitor.js +869 -0
- package/scripts/build/prepare-publish.js +150 -0
- package/scripts/build/typescript-fixer.js +621 -0
- package/scripts/build/unified-builder.sh +428 -0
- package/scripts/build/update-bin-version.js +32 -0
- package/scripts/dev/README.md +264 -0
- package/scripts/dev/claude-flow-wrapper.sh +35 -0
- package/scripts/dev/claude-monitor.py +419 -0
- package/scripts/dev/claude-sparc.sh +562 -0
- package/scripts/dev/claude-wrapper.sh +17 -0
- package/scripts/dev/demo-phase3-compliance.js +172 -0
- package/scripts/dev/demo-task-system.ts +224 -0
- package/scripts/dev/deployment-validator.js +315 -0
- package/scripts/dev/spawn-claude-terminal.sh +32 -0
- package/scripts/dev/start-portal.sh +506 -0
- package/scripts/dev/start-web-ui.js +15 -0
- package/scripts/dev/stop-portal.sh +311 -0
- package/scripts/dev/validate-examples.ts +288 -0
- package/scripts/dev/validate-phase2.cjs +451 -0
- package/scripts/dev/validate-phase2.js +785 -0
- package/scripts/dev/validate-phase3.cjs +208 -0
- package/scripts/dev/validate-security-remediation.js +1 -0
- package/scripts/legacy/README.md +272 -0
- package/scripts/legacy/batch-fix-ts.sh +54 -0
- package/scripts/legacy/build-migration.sh +105 -0
- package/scripts/legacy/build-monitor.js +209 -0
- package/scripts/legacy/build-with-filter.sh +84 -0
- package/scripts/legacy/build-workaround.sh +71 -0
- package/scripts/legacy/fix-ts-advanced.js +358 -0
- package/scripts/legacy/fix-ts-final.sh +50 -0
- package/scripts/legacy/fix-ts-targeted.sh +49 -0
- package/scripts/legacy/fix-typescript-errors.js +305 -0
- package/scripts/legacy/force-build.sh +63 -0
- package/scripts/legacy/optimize-performance.js +400 -0
- package/scripts/legacy/performance-monitor.js +263 -0
- package/scripts/legacy/performance-monitoring.js +532 -0
- package/scripts/legacy/performance-test-runner.js +645 -0
- package/scripts/legacy/quick-fix-ts.js +281 -0
- package/scripts/legacy/safe-build.sh +63 -0
- package/scripts/migration/README.md +434 -0
- package/scripts/migration/install-arm64.js +78 -0
- package/scripts/migration/install.js +83 -0
- package/scripts/migration/migrate-hooks.js +173 -0
- package/scripts/migration/migration-examples.ts +318 -0
- package/scripts/optimization/build-optimizer.js +438 -0
- package/scripts/optimization/config-validator.js +761 -0
- package/scripts/optimization/test-optimization.js +432 -0
- package/scripts/optimization/unified-activation.js +839 -0
- package/scripts/performance/ACTIVATION_COMMANDS.md +292 -0
- package/scripts/performance/sqlite-enhanced-activation.sh +583 -0
- package/scripts/performance/test-enhanced-backend.sh +504 -0
- package/scripts/performance-test-runner.js +698 -0
- package/scripts/security/README.md +339 -0
- package/scripts/security/install-git-hooks.sh +132 -0
- package/scripts/security/ruv-swarm-safe.js +74 -0
- package/scripts/test/README.md +236 -0
- package/scripts/test/check-links.ts +274 -0
- package/scripts/test/check-performance-regression.ts +168 -0
- package/scripts/test/coverage-report.ts +692 -0
- package/scripts/test/generate-swarm-tests.js +633 -0
- package/scripts/test/integration-test-validation.cjs +253 -0
- package/scripts/test/load-test-swarm.js +576 -0
- package/scripts/test/run-phase3-compliance-tests.js +427 -0
- package/scripts/test/test-batch-tasks.ts +29 -0
- package/scripts/test/test-byzantine-resolution.js +246 -0
- package/scripts/test/test-claude-spawn-options.sh +63 -0
- package/scripts/test/test-cli-wizard.js +331 -0
- package/scripts/test/test-comprehensive.js +401 -0
- package/scripts/test/test-coordination-features.ts +238 -0
- package/scripts/test/test-fallback-systems.js +276 -0
- package/scripts/test/test-init-command.ts +302 -0
- package/scripts/test/test-mcp.ts +251 -0
- package/scripts/test/test-runner.ts +568 -0
- package/scripts/test/test-swarm-integration.sh +92 -0
- package/scripts/test/test-swarm.ts +142 -0
- package/scripts/test/validation-summary.ts +408 -0
- package/scripts/utils/README.md +261 -0
- package/scripts/utils/clean-build-artifacts.sh +94 -0
- package/scripts/utils/cleanup-root.sh +69 -0
- package/scripts/utils/fix-cliffy-imports.js +307 -0
- package/scripts/utils/fix-duplicate-imports.js +114 -0
- package/scripts/utils/fix-error-handling.cjs +70 -0
- package/scripts/utils/fix-import-paths.js +104 -0
- package/scripts/utils/fix-imports.js +116 -0
- package/scripts/utils/fix-shebang.js +78 -0
- package/scripts/utils/fix-test-modules.js +27 -0
- package/scripts/utils/fix-timezone-issue-246.js +200 -0
- package/scripts/utils/fix-ts-comprehensive.py +182 -0
- package/scripts/utils/fix-ts-targeted-batch.js +250 -0
- package/scripts/utils/remove-benchmark-conflicts.sh +140 -0
- package/scripts/utils/simple-test-fixer.js +190 -0
- package/scripts/utils/validate-metrics-structure.cjs +144 -0
- package/scripts/verify-mcp-server.js +86 -0
- package/src/cli/simple-commands/__tests__/agent.test.js +291 -0
- package/src/cli/simple-commands/__tests__/memory.test.js +8 -0
- package/src/cli/simple-commands/__tests__/swarm.test.js +371 -0
- package/src/cli/simple-commands/__tests__/task.test.js +8 -0
- package/src/cli/simple-commands/agent.js +216 -0
- package/src/cli/simple-commands/analysis.js +570 -0
- package/src/cli/simple-commands/automation-executor.js +1603 -0
- package/src/cli/simple-commands/automation.js +627 -0
- package/src/cli/simple-commands/batch-manager.js +338 -0
- package/src/cli/simple-commands/claude-telemetry.js +311 -0
- package/src/cli/simple-commands/claude-track.js +102 -0
- package/src/cli/simple-commands/concurrent-display.js +348 -0
- package/src/cli/simple-commands/config.js +319 -0
- package/src/cli/simple-commands/coordination.js +307 -0
- package/src/cli/simple-commands/enhanced-ui-views.js +654 -0
- package/src/cli/simple-commands/enhanced-webui-complete.js +1038 -0
- package/src/cli/simple-commands/fix-hook-variables.js +363 -0
- package/src/cli/simple-commands/github/gh-coordinator.js +605 -0
- package/src/cli/simple-commands/github/github-api.js +624 -0
- package/src/cli/simple-commands/github/init.js +543 -0
- package/src/cli/simple-commands/github.js +377 -0
- package/src/cli/simple-commands/goal.js +145 -0
- package/src/cli/simple-commands/hive-mind/auto-save-middleware.js +311 -0
- package/src/cli/simple-commands/hive-mind/communication.js +740 -0
- package/src/cli/simple-commands/hive-mind/core.js +1031 -0
- package/src/cli/simple-commands/hive-mind/db-optimizer.js +872 -0
- package/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1364 -0
- package/src/cli/simple-commands/hive-mind/memory.js +1292 -0
- package/src/cli/simple-commands/hive-mind/performance-optimizer.js +618 -0
- package/src/cli/simple-commands/hive-mind/performance-test.js +373 -0
- package/src/cli/simple-commands/hive-mind/queen.js +809 -0
- package/src/cli/simple-commands/hive-mind/session-manager.js +1223 -0
- package/src/cli/simple-commands/hive-mind-optimize.js +361 -0
- package/src/cli/simple-commands/hive-mind-wizard.js +281 -0
- package/src/cli/simple-commands/hive-mind.js +3112 -0
- package/src/cli/simple-commands/hive.js +140 -0
- package/src/cli/simple-commands/hook-safety.js +671 -0
- package/src/cli/simple-commands/hooks.js +1268 -0
- package/src/cli/simple-commands/init/.claude/checkpoints/1756224542.json +7 -0
- package/src/cli/simple-commands/init/.claude/checkpoints/1756224544.json +8 -0
- package/src/cli/simple-commands/init/README.md +106 -0
- package/src/cli/simple-commands/init/VALIDATION_ROLLBACK.md +488 -0
- package/src/cli/simple-commands/init/agent-copier.js +347 -0
- package/src/cli/simple-commands/init/batch-init.js +663 -0
- package/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +438 -0
- package/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +876 -0
- package/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +356 -0
- package/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +501 -0
- package/src/cli/simple-commands/init/claude-commands/slash-commands.js +57 -0
- package/src/cli/simple-commands/init/claude-commands/sparc-commands.js +296 -0
- package/src/cli/simple-commands/init/copy-revised-templates.js +175 -0
- package/src/cli/simple-commands/init/executable-wrapper.js +122 -0
- package/src/cli/simple-commands/init/gitignore-updater.js +137 -0
- package/src/cli/simple-commands/init/help.js +110 -0
- package/src/cli/simple-commands/init/hive-mind-init.js +749 -0
- package/src/cli/simple-commands/init/index.js +1953 -0
- package/src/cli/simple-commands/init/performance-monitor.js +344 -0
- package/src/cli/simple-commands/init/rollback/backup-manager.js +542 -0
- package/src/cli/simple-commands/init/rollback/index.js +399 -0
- package/src/cli/simple-commands/init/rollback/recovery-manager.js +778 -0
- package/src/cli/simple-commands/init/rollback/rollback-executor.js +521 -0
- package/src/cli/simple-commands/init/rollback/state-tracker.js +486 -0
- package/src/cli/simple-commands/init/sparc/roo-readme.js +61 -0
- package/src/cli/simple-commands/init/sparc/roomodes-config.js +102 -0
- package/src/cli/simple-commands/init/sparc/workflows.js +40 -0
- package/src/cli/simple-commands/init/sparc-structure.js +68 -0
- package/src/cli/simple-commands/init/template-copier.js +640 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md +1185 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +265 -0
- package/src/cli/simple-commands/init/templates/claude-flow-universal +81 -0
- package/src/cli/simple-commands/init/templates/claude-flow.bat +18 -0
- package/src/cli/simple-commands/init/templates/claude-flow.ps1 +24 -0
- package/src/cli/simple-commands/init/templates/claude-md.js +1101 -0
- package/src/cli/simple-commands/init/templates/commands/analysis/bottleneck-detect.md +162 -0
- package/src/cli/simple-commands/init/templates/commands/automation/auto-agent.md +122 -0
- package/src/cli/simple-commands/init/templates/commands/coordination/swarm-init.md +85 -0
- package/src/cli/simple-commands/init/templates/commands/github/github-swarm.md +121 -0
- package/src/cli/simple-commands/init/templates/commands/helpers/standard-checkpoint-hooks.sh +179 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/notification.md +113 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/post-command.md +116 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/post-edit.md +117 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/post-task.md +112 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-command.md +113 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-edit.md +113 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-search.md +112 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-task.md +111 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/session-end.md +118 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/session-restore.md +118 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/session-start.md +117 -0
- package/src/cli/simple-commands/init/templates/coordination-md.js +340 -0
- package/src/cli/simple-commands/init/templates/coordination.md +16 -0
- package/src/cli/simple-commands/init/templates/enhanced-templates.js +2347 -0
- package/src/cli/simple-commands/init/templates/github-safe-enhanced.js +331 -0
- package/src/cli/simple-commands/init/templates/github-safe.js +106 -0
- package/src/cli/simple-commands/init/templates/memory-bank-md.js +259 -0
- package/src/cli/simple-commands/init/templates/memory-bank.md +16 -0
- package/src/cli/simple-commands/init/templates/readme-files.js +72 -0
- package/src/cli/simple-commands/init/templates/safe-hook-patterns.js +430 -0
- package/src/cli/simple-commands/init/templates/settings.json +109 -0
- package/src/cli/simple-commands/init/templates/settings.json.enhanced +35 -0
- package/src/cli/simple-commands/init/templates/sparc-modes.js +1401 -0
- package/src/cli/simple-commands/init/templates/verification-claude-md.js +432 -0
- package/src/cli/simple-commands/init/validation/config-validator.js +354 -0
- package/src/cli/simple-commands/init/validation/health-checker.js +599 -0
- package/src/cli/simple-commands/init/validation/index.js +388 -0
- package/src/cli/simple-commands/init/validation/mode-validator.js +387 -0
- package/src/cli/simple-commands/init/validation/post-init-validator.js +390 -0
- package/src/cli/simple-commands/init/validation/pre-init-validator.js +290 -0
- package/src/cli/simple-commands/init/validation/test-runner.js +488 -0
- package/src/cli/simple-commands/init.js +4 -0
- package/src/cli/simple-commands/mcp-health.js +163 -0
- package/src/cli/simple-commands/mcp-integration-layer.js +689 -0
- package/src/cli/simple-commands/mcp.js +420 -0
- package/src/cli/simple-commands/memory-consolidation.js +631 -0
- package/src/cli/simple-commands/memory.js +345 -0
- package/src/cli/simple-commands/migrate-hooks.js +63 -0
- package/src/cli/simple-commands/monitor.js +417 -0
- package/src/cli/simple-commands/neural.js +148 -0
- package/src/cli/simple-commands/pair-autofix-only.js +755 -0
- package/src/cli/simple-commands/pair-basic.js +751 -0
- package/src/cli/simple-commands/pair-old.js +623 -0
- package/src/cli/simple-commands/pair-working.js +849 -0
- package/src/cli/simple-commands/pair.js +849 -0
- package/src/cli/simple-commands/performance-hooks.js +149 -0
- package/src/cli/simple-commands/performance-metrics.js +601 -0
- package/src/cli/simple-commands/process-ui-enhanced.js +821 -0
- package/src/cli/simple-commands/process-ui.js +274 -0
- package/src/cli/simple-commands/realtime-update-system.js +659 -0
- package/src/cli/simple-commands/sparc/architecture.js +1750 -0
- package/src/cli/simple-commands/sparc/commands.js +575 -0
- package/src/cli/simple-commands/sparc/completion.js +1831 -0
- package/src/cli/simple-commands/sparc/coordinator.js +1045 -0
- package/src/cli/simple-commands/sparc/index.js +321 -0
- package/src/cli/simple-commands/sparc/phase-base.js +430 -0
- package/src/cli/simple-commands/sparc/pseudocode.js +984 -0
- package/src/cli/simple-commands/sparc/refinement.js +1856 -0
- package/src/cli/simple-commands/sparc/specification.js +736 -0
- package/src/cli/simple-commands/sparc-modes/architect.js +125 -0
- package/src/cli/simple-commands/sparc-modes/ask.js +126 -0
- package/src/cli/simple-commands/sparc-modes/code.js +148 -0
- package/src/cli/simple-commands/sparc-modes/debug.js +112 -0
- package/src/cli/simple-commands/sparc-modes/devops.js +137 -0
- package/src/cli/simple-commands/sparc-modes/docs-writer.js +38 -0
- package/src/cli/simple-commands/sparc-modes/generic.js +34 -0
- package/src/cli/simple-commands/sparc-modes/index.js +201 -0
- package/src/cli/simple-commands/sparc-modes/integration.js +55 -0
- package/src/cli/simple-commands/sparc-modes/mcp.js +38 -0
- package/src/cli/simple-commands/sparc-modes/monitoring.js +38 -0
- package/src/cli/simple-commands/sparc-modes/optimization.js +38 -0
- package/src/cli/simple-commands/sparc-modes/security-review.js +130 -0
- package/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +167 -0
- package/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +38 -0
- package/src/cli/simple-commands/sparc-modes/supabase-admin.js +149 -0
- package/src/cli/simple-commands/sparc-modes/swarm.js +436 -0
- package/src/cli/simple-commands/sparc-modes/tdd.js +112 -0
- package/src/cli/simple-commands/sparc-modes/tutorial.js +277 -0
- package/src/cli/simple-commands/sparc.js +530 -0
- package/src/cli/simple-commands/start-ui.js +147 -0
- package/src/cli/simple-commands/start-wrapper.js +285 -0
- package/src/cli/simple-commands/start.js +2 -0
- package/src/cli/simple-commands/status.js +303 -0
- package/src/cli/simple-commands/stream-chain-clean.js +221 -0
- package/src/cli/simple-commands/stream-chain-fixed.js +89 -0
- package/src/cli/simple-commands/stream-chain-real.js +408 -0
- package/src/cli/simple-commands/stream-chain-working.js +323 -0
- package/src/cli/simple-commands/stream-chain.js +491 -0
- package/src/cli/simple-commands/stream-processor.js +340 -0
- package/src/cli/simple-commands/swarm-executor.js +253 -0
- package/src/cli/simple-commands/swarm-metrics-integration.js +371 -0
- package/src/cli/simple-commands/swarm-ui.js +741 -0
- package/src/cli/simple-commands/swarm-webui-integration.js +311 -0
- package/src/cli/simple-commands/swarm.js +2277 -0
- package/src/cli/simple-commands/task.js +228 -0
- package/src/cli/simple-commands/templates/mle-star-workflow.json +294 -0
- package/src/cli/simple-commands/timestamp-fix.js +104 -0
- package/src/cli/simple-commands/token-tracker.js +372 -0
- package/src/cli/simple-commands/tool-execution-framework.js +555 -0
- package/src/cli/simple-commands/train-and-stream.js +354 -0
- package/src/cli/simple-commands/training-pipeline.js +874 -0
- package/src/cli/simple-commands/training.js +288 -0
- package/src/cli/simple-commands/verification-hooks.js +336 -0
- package/src/cli/simple-commands/verification-integration.js +464 -0
- package/src/cli/simple-commands/verification-training-integration.js +646 -0
- package/src/cli/simple-commands/verification.js +551 -0
- package/src/cli/simple-commands/web-server.js +929 -0
- package/src/cli/simple-commands/webui-validator.js +136 -0
- package/src/language/README.md +503 -0
- package/src/language/claude-md-generator.js +618 -0
- package/src/language/cli.js +422 -0
- package/src/language/example.js +347 -0
- package/src/language/integration-system.js +619 -0
- package/src/language/language-detector.js +581 -0
|
@@ -0,0 +1,646 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verification-Training Integration Module
|
|
3
|
+
* Connects verification results to the neural training system for continuous improvement
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import fs from 'fs/promises';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { execSync } from 'child_process';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Integration between Verification and Training Systems
|
|
12
|
+
* Feeds verification results into training to improve agent performance
|
|
13
|
+
*/
|
|
14
|
+
export class VerificationTrainingIntegration {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.trainingDataPath = '.claude-flow/training/verification-data.jsonl';
|
|
17
|
+
this.modelPath = '.claude-flow/models/verification-model.json';
|
|
18
|
+
this.metricsPath = '.claude-flow/metrics/agent-performance.json';
|
|
19
|
+
this.learningRate = 0.1;
|
|
20
|
+
this.initialized = false;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Initialize the integration
|
|
25
|
+
*/
|
|
26
|
+
async initialize() {
|
|
27
|
+
// Ensure directories exist
|
|
28
|
+
const dirs = ['.claude-flow/training', '.claude-flow/models', '.claude-flow/metrics'];
|
|
29
|
+
|
|
30
|
+
for (const dir of dirs) {
|
|
31
|
+
await fs.mkdir(dir, { recursive: true });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Load or create model
|
|
35
|
+
await this.loadModel();
|
|
36
|
+
this.initialized = true;
|
|
37
|
+
|
|
38
|
+
console.log('ā
Verification-Training integration initialized');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Feed verification results to training system
|
|
43
|
+
*/
|
|
44
|
+
async feedVerificationToTraining(verification) {
|
|
45
|
+
if (!this.initialized) await this.initialize();
|
|
46
|
+
|
|
47
|
+
// Extract training features from verification
|
|
48
|
+
const trainingData = {
|
|
49
|
+
input: {
|
|
50
|
+
taskId: verification.taskId,
|
|
51
|
+
agentType: verification.agentType,
|
|
52
|
+
timestamp: verification.timestamp,
|
|
53
|
+
mode: verification.mode || 'moderate',
|
|
54
|
+
checksPerformed: verification.results?.map((r) => r.name) || [],
|
|
55
|
+
},
|
|
56
|
+
output: {
|
|
57
|
+
score: verification.score,
|
|
58
|
+
passed: verification.passed,
|
|
59
|
+
threshold: verification.threshold,
|
|
60
|
+
},
|
|
61
|
+
metadata: {
|
|
62
|
+
sessionId: process.env.SESSION_ID || 'default',
|
|
63
|
+
timestamp: new Date().toISOString(),
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// Append to training data
|
|
68
|
+
await this.appendTrainingData(trainingData);
|
|
69
|
+
|
|
70
|
+
// Update agent-specific model
|
|
71
|
+
await this.updateAgentModel(verification.agentType, verification);
|
|
72
|
+
|
|
73
|
+
// Trigger incremental learning
|
|
74
|
+
await this.incrementalLearn(trainingData);
|
|
75
|
+
|
|
76
|
+
// Update performance metrics
|
|
77
|
+
await this.updatePerformanceMetrics(verification);
|
|
78
|
+
|
|
79
|
+
return trainingData;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Incremental learning from new verification data
|
|
84
|
+
*/
|
|
85
|
+
async incrementalLearn(trainingData) {
|
|
86
|
+
const model = await this.loadModel();
|
|
87
|
+
|
|
88
|
+
// Update agent reliability scores
|
|
89
|
+
const agentType = trainingData.input.agentType;
|
|
90
|
+
if (!model.agentReliability) model.agentReliability = {};
|
|
91
|
+
|
|
92
|
+
const currentReliability = model.agentReliability[agentType] || 0.5;
|
|
93
|
+
const newScore = trainingData.output.score;
|
|
94
|
+
|
|
95
|
+
// Exponential moving average for reliability
|
|
96
|
+
model.agentReliability[agentType] =
|
|
97
|
+
currentReliability * (1 - this.learningRate) + newScore * this.learningRate;
|
|
98
|
+
|
|
99
|
+
// Update verification patterns
|
|
100
|
+
if (!model.patterns) model.patterns = {};
|
|
101
|
+
const patternKey = `${agentType}_${trainingData.output.passed ? 'success' : 'failure'}`;
|
|
102
|
+
|
|
103
|
+
if (!model.patterns[patternKey]) {
|
|
104
|
+
model.patterns[patternKey] = {
|
|
105
|
+
count: 0,
|
|
106
|
+
avgScore: 0,
|
|
107
|
+
checks: {},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const pattern = model.patterns[patternKey];
|
|
112
|
+
pattern.count++;
|
|
113
|
+
pattern.avgScore = (pattern.avgScore * (pattern.count - 1) + newScore) / pattern.count;
|
|
114
|
+
|
|
115
|
+
// Track which checks lead to success/failure
|
|
116
|
+
for (const check of trainingData.input.checksPerformed) {
|
|
117
|
+
if (!pattern.checks[check]) {
|
|
118
|
+
pattern.checks[check] = { success: 0, failure: 0 };
|
|
119
|
+
}
|
|
120
|
+
pattern.checks[check][trainingData.output.passed ? 'success' : 'failure']++;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Save updated model
|
|
124
|
+
await this.saveModel(model);
|
|
125
|
+
|
|
126
|
+
// Log learning progress
|
|
127
|
+
console.log(
|
|
128
|
+
`š Learning update for ${agentType}: reliability ${model.agentReliability[agentType].toFixed(3)}`,
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Predict verification outcome based on historical data
|
|
134
|
+
*/
|
|
135
|
+
async predictVerificationOutcome(taskType, agentType) {
|
|
136
|
+
const model = await this.loadModel();
|
|
137
|
+
|
|
138
|
+
// Get agent reliability
|
|
139
|
+
const reliability = model.agentReliability?.[agentType] || 0.5;
|
|
140
|
+
|
|
141
|
+
// Get pattern statistics
|
|
142
|
+
const successPattern = model.patterns?.[`${agentType}_success`];
|
|
143
|
+
const failurePattern = model.patterns?.[`${agentType}_failure`];
|
|
144
|
+
|
|
145
|
+
if (!successPattern && !failurePattern) {
|
|
146
|
+
return {
|
|
147
|
+
predictedScore: reliability,
|
|
148
|
+
confidence: 0.1,
|
|
149
|
+
recommendation: 'insufficient_data',
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Calculate prediction
|
|
154
|
+
const totalCount = (successPattern?.count || 0) + (failurePattern?.count || 0);
|
|
155
|
+
const successRate = (successPattern?.count || 0) / totalCount;
|
|
156
|
+
|
|
157
|
+
const predictedScore = reliability * 0.7 + successRate * 0.3;
|
|
158
|
+
const confidence = Math.min(totalCount / 100, 1.0); // Confidence increases with data
|
|
159
|
+
|
|
160
|
+
// Generate recommendation
|
|
161
|
+
let recommendation = 'proceed';
|
|
162
|
+
if (predictedScore < 0.5) {
|
|
163
|
+
recommendation = 'use_different_agent';
|
|
164
|
+
} else if (predictedScore < 0.75) {
|
|
165
|
+
recommendation = 'add_additional_checks';
|
|
166
|
+
} else if (confidence < 0.3) {
|
|
167
|
+
recommendation = 'low_confidence_proceed_with_caution';
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
predictedScore,
|
|
172
|
+
confidence,
|
|
173
|
+
recommendation,
|
|
174
|
+
agentReliability: reliability,
|
|
175
|
+
historicalSuccessRate: successRate,
|
|
176
|
+
dataPoints: totalCount,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Get agent recommendations based on task type
|
|
182
|
+
*/
|
|
183
|
+
async recommendAgent(taskType) {
|
|
184
|
+
const model = await this.loadModel();
|
|
185
|
+
|
|
186
|
+
if (!model.agentReliability) {
|
|
187
|
+
return {
|
|
188
|
+
recommended: 'coder', // Default
|
|
189
|
+
reason: 'no_historical_data',
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Sort agents by reliability
|
|
194
|
+
const agents = Object.entries(model.agentReliability).sort(([, a], [, b]) => b - a);
|
|
195
|
+
|
|
196
|
+
if (agents.length === 0) {
|
|
197
|
+
return {
|
|
198
|
+
recommended: 'coder',
|
|
199
|
+
reason: 'no_agent_data',
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const [bestAgent, bestScore] = agents[0];
|
|
204
|
+
|
|
205
|
+
return {
|
|
206
|
+
recommended: bestAgent,
|
|
207
|
+
reliability: bestScore,
|
|
208
|
+
alternatives: agents.slice(1, 3).map(([agent, score]) => ({
|
|
209
|
+
agent,
|
|
210
|
+
reliability: score,
|
|
211
|
+
})),
|
|
212
|
+
reason: `highest_reliability_score`,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Update agent-specific model
|
|
218
|
+
*/
|
|
219
|
+
async updateAgentModel(agentType, verification) {
|
|
220
|
+
const modelFile = `.claude-flow/models/agent-${agentType}.json`;
|
|
221
|
+
|
|
222
|
+
let agentModel = {};
|
|
223
|
+
try {
|
|
224
|
+
const data = await fs.readFile(modelFile, 'utf8');
|
|
225
|
+
agentModel = JSON.parse(data);
|
|
226
|
+
} catch {
|
|
227
|
+
agentModel = {
|
|
228
|
+
agentType,
|
|
229
|
+
totalTasks: 0,
|
|
230
|
+
successfulTasks: 0,
|
|
231
|
+
averageScore: 0,
|
|
232
|
+
scoreHistory: [],
|
|
233
|
+
checkPerformance: {},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Update statistics
|
|
238
|
+
agentModel.totalTasks++;
|
|
239
|
+
if (verification.passed) agentModel.successfulTasks++;
|
|
240
|
+
|
|
241
|
+
// Update average score
|
|
242
|
+
agentModel.averageScore =
|
|
243
|
+
(agentModel.averageScore * (agentModel.totalTasks - 1) + verification.score) /
|
|
244
|
+
agentModel.totalTasks;
|
|
245
|
+
|
|
246
|
+
// Keep last 100 scores for trend analysis
|
|
247
|
+
agentModel.scoreHistory.push({
|
|
248
|
+
score: verification.score,
|
|
249
|
+
timestamp: verification.timestamp,
|
|
250
|
+
passed: verification.passed,
|
|
251
|
+
});
|
|
252
|
+
if (agentModel.scoreHistory.length > 100) {
|
|
253
|
+
agentModel.scoreHistory = agentModel.scoreHistory.slice(-100);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Track performance by check type
|
|
257
|
+
if (verification.results) {
|
|
258
|
+
for (const result of verification.results) {
|
|
259
|
+
if (!agentModel.checkPerformance[result.name]) {
|
|
260
|
+
agentModel.checkPerformance[result.name] = {
|
|
261
|
+
total: 0,
|
|
262
|
+
passed: 0,
|
|
263
|
+
avgScore: 0,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
const checkPerf = agentModel.checkPerformance[result.name];
|
|
268
|
+
checkPerf.total++;
|
|
269
|
+
if (result.passed) checkPerf.passed++;
|
|
270
|
+
checkPerf.avgScore =
|
|
271
|
+
(checkPerf.avgScore * (checkPerf.total - 1) + result.score) / checkPerf.total;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Calculate performance trend (last 10 vs previous 10)
|
|
276
|
+
if (agentModel.scoreHistory.length >= 20) {
|
|
277
|
+
const recent10 = agentModel.scoreHistory.slice(-10);
|
|
278
|
+
const previous10 = agentModel.scoreHistory.slice(-20, -10);
|
|
279
|
+
|
|
280
|
+
const recentAvg = recent10.reduce((sum, h) => sum + h.score, 0) / 10;
|
|
281
|
+
const previousAvg = previous10.reduce((sum, h) => sum + h.score, 0) / 10;
|
|
282
|
+
|
|
283
|
+
agentModel.trend = {
|
|
284
|
+
direction: recentAvg > previousAvg ? 'improving' : 'declining',
|
|
285
|
+
change: recentAvg - previousAvg,
|
|
286
|
+
recentAverage: recentAvg,
|
|
287
|
+
previousAverage: previousAvg,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Save agent model
|
|
292
|
+
await fs.writeFile(modelFile, JSON.stringify(agentModel, null, 2));
|
|
293
|
+
|
|
294
|
+
// Log if agent is improving or declining
|
|
295
|
+
if (agentModel.trend) {
|
|
296
|
+
const emoji = agentModel.trend.direction === 'improving' ? 'š' : 'š';
|
|
297
|
+
console.log(
|
|
298
|
+
`${emoji} Agent ${agentType} is ${agentModel.trend.direction} (${agentModel.trend.change > 0 ? '+' : ''}${agentModel.trend.change.toFixed(3)})`,
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return agentModel;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Generate training recommendations
|
|
307
|
+
*/
|
|
308
|
+
async generateTrainingRecommendations() {
|
|
309
|
+
const model = await this.loadModel();
|
|
310
|
+
const recommendations = [];
|
|
311
|
+
|
|
312
|
+
// Check agent reliability
|
|
313
|
+
if (model.agentReliability) {
|
|
314
|
+
for (const [agent, reliability] of Object.entries(model.agentReliability)) {
|
|
315
|
+
if (reliability < 0.7) {
|
|
316
|
+
recommendations.push({
|
|
317
|
+
type: 'retrain_agent',
|
|
318
|
+
agent,
|
|
319
|
+
currentReliability: reliability,
|
|
320
|
+
action: `Retrain ${agent} agent - reliability below 70%`,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// Check patterns
|
|
327
|
+
if (model.patterns) {
|
|
328
|
+
for (const [pattern, data] of Object.entries(model.patterns)) {
|
|
329
|
+
if (pattern.includes('failure') && data.count > 10) {
|
|
330
|
+
const [agentType] = pattern.split('_');
|
|
331
|
+
|
|
332
|
+
// Find most common failing checks
|
|
333
|
+
const failingChecks = Object.entries(data.checks || {})
|
|
334
|
+
.filter(([, stats]) => stats.failure > stats.success)
|
|
335
|
+
.map(([check]) => check);
|
|
336
|
+
|
|
337
|
+
if (failingChecks.length > 0) {
|
|
338
|
+
recommendations.push({
|
|
339
|
+
type: 'improve_checks',
|
|
340
|
+
agent: agentType,
|
|
341
|
+
checks: failingChecks,
|
|
342
|
+
action: `Focus training on ${failingChecks.join(', ')} for ${agentType}`,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// Check if we need more data
|
|
350
|
+
const totalDataPoints = Object.values(model.patterns || {}).reduce(
|
|
351
|
+
(sum, p) => sum + p.count,
|
|
352
|
+
0,
|
|
353
|
+
);
|
|
354
|
+
|
|
355
|
+
if (totalDataPoints < 50) {
|
|
356
|
+
recommendations.push({
|
|
357
|
+
type: 'collect_more_data',
|
|
358
|
+
currentDataPoints: totalDataPoints,
|
|
359
|
+
action: 'Run more verification cycles to improve training accuracy',
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
return recommendations;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Update performance metrics
|
|
368
|
+
*/
|
|
369
|
+
async updatePerformanceMetrics(verification) {
|
|
370
|
+
let metrics = {};
|
|
371
|
+
|
|
372
|
+
try {
|
|
373
|
+
const data = await fs.readFile(this.metricsPath, 'utf8');
|
|
374
|
+
metrics = JSON.parse(data);
|
|
375
|
+
} catch {
|
|
376
|
+
metrics = {
|
|
377
|
+
totalVerifications: 0,
|
|
378
|
+
passedVerifications: 0,
|
|
379
|
+
averageScore: 0,
|
|
380
|
+
byAgent: {},
|
|
381
|
+
byHour: {},
|
|
382
|
+
created: new Date().toISOString(),
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
// Update totals
|
|
387
|
+
metrics.totalVerifications++;
|
|
388
|
+
if (verification.passed) metrics.passedVerifications++;
|
|
389
|
+
metrics.averageScore =
|
|
390
|
+
(metrics.averageScore * (metrics.totalVerifications - 1) + verification.score) /
|
|
391
|
+
metrics.totalVerifications;
|
|
392
|
+
|
|
393
|
+
// Update by agent
|
|
394
|
+
if (!metrics.byAgent[verification.agentType]) {
|
|
395
|
+
metrics.byAgent[verification.agentType] = {
|
|
396
|
+
total: 0,
|
|
397
|
+
passed: 0,
|
|
398
|
+
avgScore: 0,
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
const agentMetrics = metrics.byAgent[verification.agentType];
|
|
403
|
+
agentMetrics.total++;
|
|
404
|
+
if (verification.passed) agentMetrics.passed++;
|
|
405
|
+
agentMetrics.avgScore =
|
|
406
|
+
(agentMetrics.avgScore * (agentMetrics.total - 1) + verification.score) / agentMetrics.total;
|
|
407
|
+
|
|
408
|
+
// Update by hour (for pattern detection)
|
|
409
|
+
const hour = new Date().getHours();
|
|
410
|
+
if (!metrics.byHour[hour]) {
|
|
411
|
+
metrics.byHour[hour] = {
|
|
412
|
+
total: 0,
|
|
413
|
+
avgScore: 0,
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
metrics.byHour[hour].total++;
|
|
418
|
+
metrics.byHour[hour].avgScore =
|
|
419
|
+
(metrics.byHour[hour].avgScore * (metrics.byHour[hour].total - 1) + verification.score) /
|
|
420
|
+
metrics.byHour[hour].total;
|
|
421
|
+
|
|
422
|
+
metrics.lastUpdated = new Date().toISOString();
|
|
423
|
+
|
|
424
|
+
await fs.writeFile(this.metricsPath, JSON.stringify(metrics, null, 2));
|
|
425
|
+
return metrics;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Train neural network for pattern recognition
|
|
430
|
+
*/
|
|
431
|
+
async trainNeuralPatterns() {
|
|
432
|
+
console.log('š§ Training neural patterns from verification data...');
|
|
433
|
+
|
|
434
|
+
try {
|
|
435
|
+
// Call the training command
|
|
436
|
+
const result = execSync(
|
|
437
|
+
'npx claude-flow training neural-train --data .claude-flow/training/verification-data.jsonl --model verification-predictor --epochs 100',
|
|
438
|
+
{ encoding: 'utf8', stdio: 'pipe' },
|
|
439
|
+
);
|
|
440
|
+
|
|
441
|
+
console.log('ā
Neural training completed');
|
|
442
|
+
return { success: true, output: result };
|
|
443
|
+
} catch (error) {
|
|
444
|
+
console.error('ā Neural training failed:', error.message);
|
|
445
|
+
return { success: false, error: error.message };
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
// Helper methods
|
|
450
|
+
|
|
451
|
+
async appendTrainingData(data) {
|
|
452
|
+
const line = JSON.stringify(data) + '\n';
|
|
453
|
+
await fs.appendFile(this.trainingDataPath, line);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
async loadModel() {
|
|
457
|
+
try {
|
|
458
|
+
const data = await fs.readFile(this.modelPath, 'utf8');
|
|
459
|
+
return JSON.parse(data);
|
|
460
|
+
} catch {
|
|
461
|
+
return {
|
|
462
|
+
version: '1.0.0',
|
|
463
|
+
created: new Date().toISOString(),
|
|
464
|
+
agentReliability: {},
|
|
465
|
+
patterns: {},
|
|
466
|
+
checkWeights: {},
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
async saveModel(model) {
|
|
472
|
+
model.lastUpdated = new Date().toISOString();
|
|
473
|
+
await fs.writeFile(this.modelPath, JSON.stringify(model, null, 2));
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Get training status and statistics
|
|
478
|
+
*/
|
|
479
|
+
async getTrainingStatus() {
|
|
480
|
+
const model = await this.loadModel();
|
|
481
|
+
const metrics = await this.loadMetrics();
|
|
482
|
+
|
|
483
|
+
// Count training data
|
|
484
|
+
let trainingDataCount = 0;
|
|
485
|
+
try {
|
|
486
|
+
const data = await fs.readFile(this.trainingDataPath, 'utf8');
|
|
487
|
+
trainingDataCount = data.split('\n').filter((line) => line.trim()).length;
|
|
488
|
+
} catch {
|
|
489
|
+
// File doesn't exist
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
return {
|
|
493
|
+
modelVersion: model.version,
|
|
494
|
+
lastUpdated: model.lastUpdated,
|
|
495
|
+
trainingDataPoints: trainingDataCount,
|
|
496
|
+
agentReliability: model.agentReliability,
|
|
497
|
+
totalVerifications: metrics.totalVerifications || 0,
|
|
498
|
+
averageScore: metrics.averageScore || 0,
|
|
499
|
+
passRate:
|
|
500
|
+
metrics.totalVerifications > 0
|
|
501
|
+
? metrics.passedVerifications / metrics.totalVerifications
|
|
502
|
+
: 0,
|
|
503
|
+
agentPerformance: metrics.byAgent || {},
|
|
504
|
+
recommendations: await this.generateTrainingRecommendations(),
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
async loadMetrics() {
|
|
509
|
+
try {
|
|
510
|
+
const data = await fs.readFile(this.metricsPath, 'utf8');
|
|
511
|
+
return JSON.parse(data);
|
|
512
|
+
} catch {
|
|
513
|
+
return {};
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
* CLI integration for verification-training
|
|
520
|
+
*/
|
|
521
|
+
export async function verificationTrainingCommand(args, flags) {
|
|
522
|
+
const integration = new VerificationTrainingIntegration();
|
|
523
|
+
await integration.initialize();
|
|
524
|
+
|
|
525
|
+
const subcommand = args[0] || 'status';
|
|
526
|
+
|
|
527
|
+
switch (subcommand) {
|
|
528
|
+
case 'feed':
|
|
529
|
+
// Feed current verification data to training
|
|
530
|
+
const verificationFile = '.swarm/verification-memory.json';
|
|
531
|
+
try {
|
|
532
|
+
const data = await fs.readFile(verificationFile, 'utf8');
|
|
533
|
+
const memory = JSON.parse(data);
|
|
534
|
+
|
|
535
|
+
if (memory.history && memory.history.length > 0) {
|
|
536
|
+
console.log(`š Feeding ${memory.history.length} verification records to training...`);
|
|
537
|
+
|
|
538
|
+
for (const verification of memory.history) {
|
|
539
|
+
await integration.feedVerificationToTraining(verification);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
console.log('ā
Training data updated');
|
|
543
|
+
} else {
|
|
544
|
+
console.log('No verification history to feed');
|
|
545
|
+
}
|
|
546
|
+
} catch (error) {
|
|
547
|
+
console.error('Error reading verification data:', error.message);
|
|
548
|
+
}
|
|
549
|
+
break;
|
|
550
|
+
|
|
551
|
+
case 'predict':
|
|
552
|
+
// Predict verification outcome
|
|
553
|
+
const taskType = args[1] || 'default';
|
|
554
|
+
const agentType = args[2] || 'coder';
|
|
555
|
+
|
|
556
|
+
const prediction = await integration.predictVerificationOutcome(taskType, agentType);
|
|
557
|
+
console.log('\nš® Verification Prediction:');
|
|
558
|
+
console.log(` Predicted Score: ${prediction.predictedScore.toFixed(3)}`);
|
|
559
|
+
console.log(` Confidence: ${(prediction.confidence * 100).toFixed(1)}%`);
|
|
560
|
+
console.log(` Recommendation: ${prediction.recommendation}`);
|
|
561
|
+
console.log(
|
|
562
|
+
` Historical Success Rate: ${(prediction.historicalSuccessRate * 100).toFixed(1)}%`,
|
|
563
|
+
);
|
|
564
|
+
console.log(` Data Points: ${prediction.dataPoints}`);
|
|
565
|
+
break;
|
|
566
|
+
|
|
567
|
+
case 'recommend':
|
|
568
|
+
// Get agent recommendation
|
|
569
|
+
const task = args[1] || 'default';
|
|
570
|
+
const recommendation = await integration.recommendAgent(task);
|
|
571
|
+
|
|
572
|
+
console.log('\nš¤ Agent Recommendation:');
|
|
573
|
+
console.log(` Recommended: ${recommendation.recommended}`);
|
|
574
|
+
console.log(` Reliability: ${(recommendation.reliability * 100).toFixed(1)}%`);
|
|
575
|
+
console.log(` Reason: ${recommendation.reason}`);
|
|
576
|
+
|
|
577
|
+
if (recommendation.alternatives && recommendation.alternatives.length > 0) {
|
|
578
|
+
console.log(' Alternatives:');
|
|
579
|
+
for (const alt of recommendation.alternatives) {
|
|
580
|
+
console.log(` ⢠${alt.agent}: ${(alt.reliability * 100).toFixed(1)}%`);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
break;
|
|
584
|
+
|
|
585
|
+
case 'train':
|
|
586
|
+
// Trigger neural training
|
|
587
|
+
await integration.trainNeuralPatterns();
|
|
588
|
+
break;
|
|
589
|
+
|
|
590
|
+
case 'recommendations':
|
|
591
|
+
// Get training recommendations
|
|
592
|
+
const recs = await integration.generateTrainingRecommendations();
|
|
593
|
+
|
|
594
|
+
console.log('\nš” Training Recommendations:');
|
|
595
|
+
if (recs.length === 0) {
|
|
596
|
+
console.log(' No recommendations at this time');
|
|
597
|
+
} else {
|
|
598
|
+
for (const rec of recs) {
|
|
599
|
+
console.log(` ⢠${rec.action}`);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
break;
|
|
603
|
+
|
|
604
|
+
case 'status':
|
|
605
|
+
default:
|
|
606
|
+
// Show training status
|
|
607
|
+
const status = await integration.getTrainingStatus();
|
|
608
|
+
|
|
609
|
+
console.log('\nš Verification-Training Status');
|
|
610
|
+
console.log('ā'.repeat(50));
|
|
611
|
+
console.log(`Model Version: ${status.modelVersion}`);
|
|
612
|
+
console.log(`Last Updated: ${status.lastUpdated || 'Never'}`);
|
|
613
|
+
console.log(`Training Data Points: ${status.trainingDataPoints}`);
|
|
614
|
+
console.log(`Total Verifications: ${status.totalVerifications}`);
|
|
615
|
+
console.log(`Average Score: ${status.averageScore.toFixed(3)}`);
|
|
616
|
+
console.log(`Pass Rate: ${(status.passRate * 100).toFixed(1)}%`);
|
|
617
|
+
|
|
618
|
+
if (Object.keys(status.agentReliability).length > 0) {
|
|
619
|
+
console.log('\nš¤ Agent Reliability:');
|
|
620
|
+
for (const [agent, reliability] of Object.entries(status.agentReliability)) {
|
|
621
|
+
console.log(` ${agent}: ${(reliability * 100).toFixed(1)}%`);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
if (status.recommendations.length > 0) {
|
|
626
|
+
console.log('\nš” Recommendations:');
|
|
627
|
+
for (const rec of status.recommendations) {
|
|
628
|
+
console.log(` ⢠${rec.action}`);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
console.log('\nš Commands:');
|
|
633
|
+
console.log(' feed - Feed verification data to training');
|
|
634
|
+
console.log(' predict - Predict verification outcome');
|
|
635
|
+
console.log(' recommend - Get agent recommendation');
|
|
636
|
+
console.log(' train - Trigger neural training');
|
|
637
|
+
console.log(' status - Show training status');
|
|
638
|
+
break;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
// Export for use in other modules
|
|
643
|
+
export default {
|
|
644
|
+
VerificationTrainingIntegration,
|
|
645
|
+
verificationTrainingCommand,
|
|
646
|
+
};
|