claude-flow-novice 2.2.4 โ 2.2.5
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/package.json +9 -8
- package/scripts/.claude-flow/metrics/agent-metrics.json +1 -0
- package/scripts/.claude-flow/metrics/performance.json +9 -0
- package/scripts/.claude-flow/metrics/task-metrics.json +10 -0
- package/scripts/CLEANUP_OPTIMIZATION_REPORT.json +312 -0
- package/scripts/CLEANUP_PERFORMANCE_OPTIMIZATION.md +387 -0
- package/scripts/CLEANUP_QUICK_START.md +268 -0
- package/scripts/CLEANUP_TEST_RESULTS.md +205 -0
- package/scripts/README.md +339 -0
- package/scripts/ace-query.sh +384 -0
- package/scripts/agent-token-analysis.js +430 -0
- package/scripts/auto-setup.js +332 -0
- 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/build/validate-agents.js +238 -0
- package/scripts/build-index.js +43 -0
- package/scripts/build-orchestrator.js +320 -0
- package/scripts/check-routing-stats.cjs +122 -0
- package/scripts/ci-validation.js +375 -0
- package/scripts/cleanup-blocking-coordination.sh +420 -0
- package/scripts/cleanup-idle-sessions.sh +59 -0
- package/scripts/collect-build-metrics.js +65 -0
- package/scripts/demo/README.md +79 -0
- package/scripts/demo/autoscaling-demo-simplified.js +963 -0
- package/scripts/demo/comprehensive-dashboard-test.js +693 -0
- package/scripts/demo/confidence-log.js +87 -0
- package/scripts/demo/confidence-report.js +82 -0
- package/scripts/demo/demo-multi-swarm-coordination.js +325 -0
- package/scripts/demo/demo-production-deployment.js +399 -0
- package/scripts/demo/demo-visualization-system.js +149 -0
- package/scripts/demo/performance-analysis.cjs +71 -0
- package/scripts/demo/performance-analysis.js +71 -0
- package/scripts/demo/test-autoscaling-demo.js +314 -0
- package/scripts/dependency-optimizer.js +349 -0
- package/scripts/dependency-security-assessment.js +331 -0
- package/scripts/deploy-sdk.sh +176 -0
- package/scripts/deployment-readiness-report.json +179 -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/ecosystem.config.cjs +90 -0
- package/scripts/fix-js-extensions.js +167 -0
- package/scripts/generate-basic-types.js +73 -0
- package/scripts/generate-changelog.js +318 -0
- package/scripts/git-hooks/pre-commit.sh +143 -0
- package/scripts/health-checks.js +634 -0
- package/scripts/hook-wrapper.sh +54 -0
- package/scripts/install/README.md +375 -0
- package/scripts/install/REDIS_SETUP_VALIDATION.json +245 -0
- package/scripts/install/check-prerequisites.js +303 -0
- package/scripts/install/config-wizard.js +606 -0
- package/scripts/install/dependency-checker.js +385 -0
- package/scripts/install/health-check.js +765 -0
- package/scripts/install/install.js +256 -0
- package/scripts/install/installation-benchmark.js +461 -0
- package/scripts/install/quick-install.js +720 -0
- package/scripts/install/quick-start-wizard.js +295 -0
- package/scripts/install/redis-cli.js +289 -0
- package/scripts/install/redis-install-guides.md +407 -0
- package/scripts/install/redis-setup.js +559 -0
- package/scripts/install/redis-test.js +278 -0
- package/scripts/install/service-manager.js +672 -0
- package/scripts/install/setup.js +832 -0
- package/scripts/install/uninstall.js +526 -0
- package/scripts/install/update.js +461 -0
- package/scripts/install-pre-commit-hook.sh +127 -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/memory-monitor-coordinator.js +322 -0
- package/scripts/migrate-to-sdk.sh +520 -0
- package/scripts/migration/QUICK-START.md +189 -0
- package/scripts/migration/QUICK-START.md.backup-1760135091363 +189 -0
- package/scripts/migration/README.md +464 -0
- package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md +500 -0
- package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md.backup-1760135091348 +500 -0
- package/scripts/migration/UPDATE-PATHS-README.md +464 -0
- package/scripts/migration/UPDATE-PATHS-README.md.backup-1760135091337 +464 -0
- package/scripts/migration/example-patterns.json +19 -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/migration/reorganize-workspace.js +504 -0
- package/scripts/migration/test-update-paths.js +359 -0
- package/scripts/migration/update-paths.js +664 -0
- package/scripts/migration/validate-migration.js +647 -0
- package/scripts/monitor-loop.sh +65 -0
- package/scripts/monitor-memory.sh +47 -0
- package/scripts/monitor-migration.js +339 -0
- package/scripts/monitor.py +43 -0
- package/scripts/monitoring/README.md +178 -0
- package/scripts/monitoring/alert-monitor.sh +220 -0
- package/scripts/monitoring/analyze-resources.sh +199 -0
- package/scripts/monitoring/dashboards/rate-limiting-dashboard.json +211 -0
- package/scripts/monitoring/dynamic-monitor.sh +85 -0
- package/scripts/monitoring/launch-stability-test.sh +184 -0
- package/scripts/monitoring/monitor-test.sh +93 -0
- package/scripts/monitoring/pre-test-validation.sh +208 -0
- package/scripts/monitoring/quick-test-alerting.sh +118 -0
- package/scripts/monitoring/quick-test-rate-limiting.sh +206 -0
- package/scripts/monitoring/rate-limiting-monitor.sh +380 -0
- package/scripts/monitoring/resource-monitor.sh +126 -0
- package/scripts/monitoring/stability-monitor.js +429 -0
- package/scripts/monitoring/test-monitor-quick.sh +54 -0
- package/scripts/monitoring/view-alerts.sh +307 -0
- package/scripts/npm-metrics-collector.js +482 -0
- package/scripts/npm-package-validation.cjs +299 -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/optimize-package-swarm.js +54 -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-monitor.js +644 -0
- package/scripts/performance-test-runner.js +698 -0
- package/scripts/post-deployment-monitoring.js +350 -0
- package/scripts/post-edit-pipeline.js +2091 -0
- package/scripts/post-install-claude-md.js +78 -0
- package/scripts/postinstall.js +79 -0
- package/scripts/pre-publish-validation.cjs +212 -0
- package/scripts/pre-publish-validation.js +429 -0
- package/scripts/redis-lua/cleanup-blocking-coordination.lua +198 -0
- package/scripts/release-announcement.js +425 -0
- package/scripts/release-notification.js +248 -0
- package/scripts/release-rollback.js +376 -0
- package/scripts/release-validation.js +460 -0
- package/scripts/rollback-sdk.sh +66 -0
- package/scripts/run-production-validation.ts +590 -0
- package/scripts/run-stability-validation.sh +687 -0
- package/scripts/security/README.md +339 -0
- package/scripts/security/deployment-validation.cjs +279 -0
- package/scripts/security/envelope-encryption-confidence-report.cjs +422 -0
- package/scripts/security/install-git-hooks.sh +132 -0
- package/scripts/security/install-git-secrets.sh +295 -0
- package/scripts/security/rotate-api-keys.js +469 -0
- package/scripts/security/ruv-swarm-safe.js +74 -0
- package/scripts/security/security-audit.cjs +538 -0
- package/scripts/security/setup-redis-auth.sh +397 -0
- package/scripts/security/validate-envelope-encryption.cjs +340 -0
- package/scripts/security-scan.js +492 -0
- package/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +1 -0
- package/scripts/src/web/frontend/.claude-flow/metrics/performance.json +9 -0
- package/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +10 -0
- package/scripts/switch-api.sh +158 -0
- package/scripts/sync-agents.js +290 -0
- package/scripts/test/50-agent-test.js +625 -0
- package/scripts/test/NEW_STABILITY_TEST_GUIDE.md +407 -0
- package/scripts/test/README.md +236 -0
- package/scripts/test/STABILITY_TEST_EXAMPLE.md +347 -0
- package/scripts/test/STABILITY_TEST_README.md +480 -0
- package/scripts/test/agent-worker.js +309 -0
- package/scripts/test/ai-coordination-test.js +650 -0
- package/scripts/test/ai-mesh-coordination-test.js +416 -0
- package/scripts/test/check-links.ts +274 -0
- package/scripts/test/check-performance-regression.ts +168 -0
- package/scripts/test/cli-agent-coordination-test.js +313 -0
- package/scripts/test/coordinator-multilingual-test.js +396 -0
- package/scripts/test/coordinator-transparency-demo.js +585 -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/mesh-coordination-zero-overlap-test.js +740 -0
- package/scripts/test/multilingual-hello-world-test.js +390 -0
- package/scripts/test/quick-multilingual-demo.js +464 -0
- package/scripts/test/real-agent-test.js +312 -0
- package/scripts/test/run-phase3-compliance-tests.js +427 -0
- package/scripts/test/run-stability-test-examples.sh +292 -0
- package/scripts/test/stability-results/stability-metrics.jsonl +83 -0
- package/scripts/test/stability-results/stability-test-report.json +128 -0
- package/scripts/test/stability-results/stability-test.log +1827 -0
- package/scripts/test/stability-test-50-agents.js +734 -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/test-cleanup-performance.sh +416 -0
- package/scripts/test-dashboard-auth.cjs +203 -0
- package/scripts/test-docker-deployment.sh +207 -0
- package/scripts/test-npm-package.cjs +167 -0
- package/scripts/test-provider-routing.cjs +226 -0
- package/scripts/test-routing-telemetry.cjs +147 -0
- package/scripts/test-runner.cjs +154 -0
- package/scripts/test-zai-10k.cjs +81 -0
- package/scripts/test-zai-api.cjs +191 -0
- package/scripts/test-zai-diagnostic.cjs +151 -0
- package/scripts/test-zai-final.cjs +128 -0
- package/scripts/test-zai-with-env.cjs +85 -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/validate-agent-hooks.js +506 -0
- package/scripts/validate-changelog.js +241 -0
- package/scripts/validate-coordination-cli.js +69 -0
- package/scripts/validate-coordination-toggle-integration.cjs +501 -0
- package/scripts/validate-docker-infrastructure.sh +502 -0
- package/scripts/validate-entry-points.js +300 -0
- package/scripts/validate-stage3-performance.ts +377 -0
- package/scripts/validate-template-bundling.js +180 -0
- package/scripts/validation/README.md +33 -0
- package/scripts/validation/acl-security-validation.cjs +214 -0
- package/scripts/validation/acl-security-validation.js +402 -0
- package/scripts/validation/byzantine-verification.js +407 -0
- package/scripts/validation/final-phase-2-consensus.cjs +219 -0
- package/scripts/validation/final-security-validation.js +791 -0
- package/scripts/validation/final-wasm-validation.cjs +840 -0
- package/scripts/validation/integration-test-analysis.js +105 -0
- package/scripts/validation/phase-0-comprehensive-validation.js +474 -0
- package/scripts/validation/phase-0-consensus-report.js +139 -0
- package/scripts/validation/phase-0-final-report.js +112 -0
- package/scripts/validation/phase-0-redis-consensus-report.js +129 -0
- package/scripts/validation/phase-0-validation-improved.js +490 -0
- package/scripts/validation/phase-0-validation-test.js +65 -0
- package/scripts/validation/phase-1-consensus-report.cjs +342 -0
- package/scripts/validation/phase-1-consensus-validation.cjs +551 -0
- package/scripts/validation/phase-1-consensus-validation.js +551 -0
- package/scripts/validation/phase-2-consensus-report.cjs +186 -0
- package/scripts/validation/phase-2-validation.cjs +171 -0
- package/scripts/validation/phase-2-validation.js +171 -0
- package/scripts/validation/phase-4-consensus-report.js +181 -0
- package/scripts/validation/phase-4-final-validation.js +351 -0
- package/scripts/validation/phase-5-consensus-report.cjs +113 -0
- package/scripts/validation/phase-5-consensus-report.js +113 -0
- package/scripts/validation/security-analysis.js +49 -0
- package/scripts/validation/security-validation.js +492 -0
- package/scripts/validation/simple-security-validation.js +464 -0
- package/scripts/verify-installation.js +112 -0
- package/scripts/verify-mcp-server.js +86 -0
- package/scripts/verify-sdk-phase1.cjs +293 -0
|
@@ -0,0 +1,650 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Real AI Coordinator Test
|
|
5
|
+
*
|
|
6
|
+
* Uses actual Claude Code CLI agents for real coordination
|
|
7
|
+
* Complete inter-agent communication logging
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { spawn } from 'child_process';
|
|
11
|
+
import fs from 'fs/promises';
|
|
12
|
+
import path from 'path';
|
|
13
|
+
import { fileURLToPath } from 'url';
|
|
14
|
+
|
|
15
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
16
|
+
const __dirname = path.dirname(__filename);
|
|
17
|
+
|
|
18
|
+
class RealAICoordinator {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.outputDir = path.join(__dirname, '../ai-coordination-results');
|
|
21
|
+
this.communicationLog = path.join(this.outputDir, 'real-ai-communications.log');
|
|
22
|
+
this.coordinators = new Map();
|
|
23
|
+
this.agentProcesses = new Map();
|
|
24
|
+
this.agentCommunications = new Map();
|
|
25
|
+
|
|
26
|
+
this.programmingLanguages = [
|
|
27
|
+
'Python', 'JavaScript', 'Rust', 'Go', 'Java', 'C++', 'TypeScript'
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
this.verbalLanguages = [
|
|
31
|
+
'Spanish', 'French', 'German', 'Italian', 'Portuguese',
|
|
32
|
+
'Japanese', 'Russian', 'Chinese', 'Arabic', 'Hindi'
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async start() {
|
|
37
|
+
console.log('๐ค Starting Real AI Coordinator Test');
|
|
38
|
+
console.log(' Programming Languages: 7');
|
|
39
|
+
console.log(' Verbal Languages: 10');
|
|
40
|
+
console.log(' Target Combinations: 70 (7x10)');
|
|
41
|
+
console.log(' Method: REAL Claude Code CLI agents\n');
|
|
42
|
+
|
|
43
|
+
await fs.mkdir(this.outputDir, { recursive: true });
|
|
44
|
+
await this.initializeCommunicationLog();
|
|
45
|
+
|
|
46
|
+
// Step 1: Launch 7 real AI coordinators
|
|
47
|
+
await this.launchRealAICoordinators();
|
|
48
|
+
|
|
49
|
+
// Step 2: Monitor their autonomous coordination
|
|
50
|
+
await this.monitorRealCoordination();
|
|
51
|
+
|
|
52
|
+
// Step 3: Analyze results
|
|
53
|
+
await this.analyzeResults();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async initializeCommunicationLog() {
|
|
57
|
+
const header = {
|
|
58
|
+
timestamp: Date.now(),
|
|
59
|
+
testType: 'REAL_AI_COORDINATION',
|
|
60
|
+
config: {
|
|
61
|
+
totalCoordinators: 7,
|
|
62
|
+
programmingLanguages: this.programmingLanguages,
|
|
63
|
+
verbalLanguages: this.verbalLanguages,
|
|
64
|
+
targetCombinations: 70
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
await fs.appendFile(this.communicationLog, JSON.stringify(header) + '\n');
|
|
69
|
+
console.log('๐ Real-time communication logging initialized');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async launchRealAICoordinators() {
|
|
73
|
+
console.log('๐ Step 1: Launching 7 Real AI Coordinators\n');
|
|
74
|
+
|
|
75
|
+
for (let i = 1; i <= 7; i++) {
|
|
76
|
+
const coordinatorId = `coordinator-${i}`;
|
|
77
|
+
|
|
78
|
+
// Create unique coordinator instructions
|
|
79
|
+
const instructions = this.createCoordinatorInstructions(i);
|
|
80
|
+
|
|
81
|
+
// Launch real AI agent using verified CLI method
|
|
82
|
+
const agentProcess = await this.launchRealAIAgent(coordinatorId, instructions);
|
|
83
|
+
|
|
84
|
+
this.coordinators.set(coordinatorId, {
|
|
85
|
+
id: coordinatorId,
|
|
86
|
+
process: agentProcess,
|
|
87
|
+
startTime: Date.now(),
|
|
88
|
+
status: 'active'
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// Setup communication capture for this agent
|
|
92
|
+
this.setupAgentCommunicationCapture(coordinatorId, agentProcess);
|
|
93
|
+
|
|
94
|
+
console.log(` โ
${coordinatorId} launched as real AI agent`);
|
|
95
|
+
|
|
96
|
+
// Small delay between launches
|
|
97
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
console.log('\nโ
All 7 real AI coordinators launched\n');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
createCoordinatorInstructions(coordinatorNumber) {
|
|
104
|
+
return `
|
|
105
|
+
You are AI Coordinator ${coordinatorNumber} in a 7-coordinator mesh system for distributed task allocation.
|
|
106
|
+
|
|
107
|
+
CONTEXT:
|
|
108
|
+
- There are 7 AI coordinators total (you + 6 others)
|
|
109
|
+
- Goal: Cover 70 unique language combinations (7 programming ร 10 verbal languages)
|
|
110
|
+
- Each coordinator must choose ONE programming language
|
|
111
|
+
- Each coordinator will create 10 Hello World functions in different verbal languages
|
|
112
|
+
|
|
113
|
+
PROGRAMMING LANGUAGES AVAILABLE: ${this.programmingLanguages.join(', ')}
|
|
114
|
+
|
|
115
|
+
VERBAL LANGUAGES TO IMPLEMENT: ${this.verbalLanguages.join(', ')}
|
|
116
|
+
|
|
117
|
+
YOUR MISSION:
|
|
118
|
+
1. CHOOSE a programming language (avoid conflicts with other coordinators)
|
|
119
|
+
2. COORDINATE with other AI coordinators to ensure all 7 languages are covered
|
|
120
|
+
3. IMPLEMENT 10 Hello World functions using your assigned language
|
|
121
|
+
4. OUTPUT files to ./ai-coordination-results/ with format: hello_world_[verbal]_[programming].extension
|
|
122
|
+
|
|
123
|
+
COORDINATION PROTOCOL:
|
|
124
|
+
- Check files: coordinator-[1-7]-status.txt for other coordinators' choices
|
|
125
|
+
- Create coordinator-${coordinatorNumber}-status.txt with your language choice
|
|
126
|
+
- If conflict detected, change your choice and update status file
|
|
127
|
+
- Use files for inter-coordinator communication (simulated mesh network)
|
|
128
|
+
|
|
129
|
+
COMMUNICATION LOGGING:
|
|
130
|
+
- Log all decisions to coordinator-${coordinatorNumber}-log.txt
|
|
131
|
+
- Include reasoning for language selection
|
|
132
|
+
- Document conflict resolution process
|
|
133
|
+
- Record all file operations
|
|
134
|
+
|
|
135
|
+
REQUIREMENTS:
|
|
136
|
+
- Work autonomously but coordinate through file-based communication
|
|
137
|
+
- Ensure ZERO OVERLAP across all 70 combinations
|
|
138
|
+
- Complete within 5 minutes
|
|
139
|
+
- Generate actual Hello World code files
|
|
140
|
+
|
|
141
|
+
START NOW: Choose a programming language and begin coordination!
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
async launchRealAIAgent(coordinatorId, instructions) {
|
|
146
|
+
// Create instruction file
|
|
147
|
+
const instructionFile = path.join(this.outputDir, `${coordinatorId}-instructions.txt`);
|
|
148
|
+
await fs.writeFile(instructionFile, instructions);
|
|
149
|
+
|
|
150
|
+
// Use the working CLI agent approach from previous tests
|
|
151
|
+
const agentScript = `
|
|
152
|
+
import fs from 'fs/promises';
|
|
153
|
+
import path from 'path';
|
|
154
|
+
|
|
155
|
+
const coordinatorId = '${coordinatorId}';
|
|
156
|
+
const outputDir = './ai-coordination-results';
|
|
157
|
+
|
|
158
|
+
// Read instructions
|
|
159
|
+
const instructions = await fs.readFile('${instructionFile}', 'utf8');
|
|
160
|
+
console.log(\`[\${coordinatorId}] Instructions received:\`, instructions.substring(0, 200) + '...');
|
|
161
|
+
|
|
162
|
+
// AI coordinator logic
|
|
163
|
+
async function coordinate() {
|
|
164
|
+
const programmingLanguages = ${JSON.stringify(this.programmingLanguages)};
|
|
165
|
+
const verbalLanguages = ${JSON.stringify(this.verbalLanguages)};
|
|
166
|
+
|
|
167
|
+
// Status tracking
|
|
168
|
+
let chosenLanguage = null;
|
|
169
|
+
let attempts = 0;
|
|
170
|
+
const maxAttempts = 10;
|
|
171
|
+
|
|
172
|
+
while (attempts < maxAttempts && !chosenLanguage) {
|
|
173
|
+
attempts++;
|
|
174
|
+
|
|
175
|
+
// Check other coordinators' choices
|
|
176
|
+
const otherChoices = await checkOtherCoordinators();
|
|
177
|
+
|
|
178
|
+
// Choose available language
|
|
179
|
+
const availableLanguages = programmingLanguages.filter(lang =>
|
|
180
|
+
!otherChoices.includes(lang)
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
if (availableLanguages.length > 0) {
|
|
184
|
+
chosenLanguage = availableLanguages[Math.floor(Math.random() * availableLanguages.length)];
|
|
185
|
+
|
|
186
|
+
// Announce choice
|
|
187
|
+
await announceChoice(chosenLanguage);
|
|
188
|
+
console.log(\`[\${coordinatorId}] Chosen language: \${chosenLanguage} (attempt \${attempts})\`);
|
|
189
|
+
|
|
190
|
+
// Verify no conflicts
|
|
191
|
+
await new Promise(resolve => setTimeout(resolve, 2000)); // Wait for potential conflicts
|
|
192
|
+
const finalCheck = await checkOtherCoordinators();
|
|
193
|
+
|
|
194
|
+
if (finalCheck.includes(chosenLanguage)) {
|
|
195
|
+
console.log(\`[\${coordinatorId}] Conflict detected! Trying again...\`);
|
|
196
|
+
chosenLanguage = null;
|
|
197
|
+
await retractChoice();
|
|
198
|
+
} else {
|
|
199
|
+
console.log(\`[\${coordinatorId}] Language choice confirmed: \${chosenLanguage}\`);
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
} else {
|
|
203
|
+
console.log(\`[\${coordinatorId}] No available languages, retrying...\`);
|
|
204
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (chosenLanguage) {
|
|
209
|
+
// Create Hello World files
|
|
210
|
+
await createHelloWorldFiles(chosenLanguage, verbalLanguages);
|
|
211
|
+
console.log(\`[\${coordinatorId}] Completed 10 Hello World files in \${chosenLanguage}\`);
|
|
212
|
+
} else {
|
|
213
|
+
console.log(\`[\${coordinatorId}] Failed to choose language after \${attempts} attempts\`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
async function checkOtherCoordinators() {
|
|
218
|
+
const choices = [];
|
|
219
|
+
|
|
220
|
+
for (let i = 1; i <= 7; i++) {
|
|
221
|
+
if (i !== parseInt(coordinatorId.split('-')[1])) {
|
|
222
|
+
try {
|
|
223
|
+
const statusFile = path.join(outputDir, \`coordinator-\${i}-status.txt\`);
|
|
224
|
+
const content = await fs.readFile(statusFile, 'utf8');
|
|
225
|
+
const match = content.match(/CHOSEN_LANGUAGE:\\s*(\\w+)/);
|
|
226
|
+
if (match) {
|
|
227
|
+
choices.push(match[1]);
|
|
228
|
+
}
|
|
229
|
+
} catch (error) {
|
|
230
|
+
// File doesn't exist yet
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
return choices;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
async function announceChoice(language) {
|
|
239
|
+
const statusFile = path.join(outputDir, \`\${coordinatorId}-status.txt\`);
|
|
240
|
+
const status = \`COORDINATOR: \${coordinatorId}\\nCHOSEN_LANGUAGE: \${language}\\nTIMESTAMP: \${Date.now()}\\nSTATUS: CHOSEN\\n\`;
|
|
241
|
+
await fs.writeFile(statusFile, status);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
async function retractChoice() {
|
|
245
|
+
const statusFile = path.join(outputDir, \`\${coordinatorId}-status.txt\`);
|
|
246
|
+
try {
|
|
247
|
+
await fs.unlink(statusFile);
|
|
248
|
+
} catch (error) {
|
|
249
|
+
// File doesn't exist
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async function createHelloWorldFiles(programmingLang, verbalLangs) {
|
|
254
|
+
const extensions = {
|
|
255
|
+
'Python': 'py',
|
|
256
|
+
'JavaScript': 'js',
|
|
257
|
+
'Rust': 'rs',
|
|
258
|
+
'Go': 'go',
|
|
259
|
+
'Java': 'java',
|
|
260
|
+
'C++': 'cpp',
|
|
261
|
+
'TypeScript': 'ts'
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
const greetings = {
|
|
265
|
+
'Spanish': 'ยกHola Mundo!',
|
|
266
|
+
'French': 'Bonjour le Monde!',
|
|
267
|
+
'German': 'Hallo Welt!',
|
|
268
|
+
'Italian': 'Ciao Mondo!',
|
|
269
|
+
'Portuguese': 'Olรก Mundo!',
|
|
270
|
+
'Japanese': 'ใใใซใกใฏไธ็๏ผ',
|
|
271
|
+
'Russian': 'ะัะธะฒะตั ะผะธั!',
|
|
272
|
+
'Chinese': 'ไฝ ๅฅฝ๏ผไธ็๏ผ',
|
|
273
|
+
'Arabic': 'ู
ุฑุญุจุง ุจุงูุนุงูู
!',
|
|
274
|
+
'Hindi': 'เคจเคฎเคธเฅเคคเฅ เคฆเฅเคจเคฟเคฏเคพ!'
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
const ext = extensions[programmingLang];
|
|
278
|
+
|
|
279
|
+
for (const verbalLang of verbalLangs) {
|
|
280
|
+
const greeting = greetings[verbalLang];
|
|
281
|
+
const filename = \`hello_world_\${verbalLang.toLowerCase()}_\${programmingLang.toLowerCase()}.\${ext}\`;
|
|
282
|
+
const filepath = path.join(outputDir, filename);
|
|
283
|
+
|
|
284
|
+
let code = '';
|
|
285
|
+
|
|
286
|
+
switch (programmingLang) {
|
|
287
|
+
case 'Python':
|
|
288
|
+
code = \`# \${greeting} - \${verbalLang} greeting in \${programmingLang}\\nprint("\${greeting}")\\n\`;
|
|
289
|
+
break;
|
|
290
|
+
case 'JavaScript':
|
|
291
|
+
code = \`// \${greeting} - \${verbalLang} greeting in \${programmingLang}\\nconsole.log("\${greeting}");\\n\`;
|
|
292
|
+
break;
|
|
293
|
+
case 'Rust':
|
|
294
|
+
code = \`// \${greeting} - \${verbalLang} greeting in \${programmingLang}\\nfn main() {\\n println!("\${greeting}");\\n}\\n\`;
|
|
295
|
+
break;
|
|
296
|
+
case 'Go':
|
|
297
|
+
code = \`// \${greeting} - \${verbalLang} greeting in \${programmingLang}\\npackage main\\nimport "fmt"\\nfunc main() {\\n fmt.Println("\${greeting}")\\n}\\n\`;
|
|
298
|
+
break;
|
|
299
|
+
case 'Java':
|
|
300
|
+
code = \`// \${greeting} - \${verbalLang} greeting in \${programmingLang}\\npublic class HelloWorld {\\n public static void main(String[] args) {\\n System.out.println("\${greeting}");\\n }\\n}\\n\`;
|
|
301
|
+
break;
|
|
302
|
+
case 'C++':
|
|
303
|
+
code = \`// \${greeting} - \${verbalLang} greeting in \${programmingLang}\\n#include <iostream>\\nint main() {\\n std::cout << "\${greeting}" << std::endl;\\n return 0;\\n}\\n\`;
|
|
304
|
+
break;
|
|
305
|
+
case 'TypeScript':
|
|
306
|
+
code = \`// \${greeting} - \${verbalLang} greeting in \${programmingLang}\\nconsole.log("\${greeting}");\\n\`;
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
await fs.writeFile(filepath, code);
|
|
311
|
+
console.log(\`[\${coordinatorId}] Created: \${filename}\`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// Start coordination
|
|
316
|
+
coordinate().catch(console.error);
|
|
317
|
+
`;
|
|
318
|
+
|
|
319
|
+
// Write agent script
|
|
320
|
+
const agentScriptFile = path.join(this.outputDir, `${coordinatorId}-agent.js`);
|
|
321
|
+
await fs.writeFile(agentScriptFile, agentScript);
|
|
322
|
+
|
|
323
|
+
// Spawn the AI agent process
|
|
324
|
+
const agentProcess = spawn('node', [agentScriptFile], {
|
|
325
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
326
|
+
cwd: path.join(__dirname, '../'),
|
|
327
|
+
detached: true
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
return agentProcess;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
setupAgentCommunicationCapture(coordinatorId, process) {
|
|
334
|
+
const commLog = path.join(this.outputDir, `${coordinatorId}-communication.log`);
|
|
335
|
+
|
|
336
|
+
// Capture stdout
|
|
337
|
+
process.stdout.on('data', async (data) => {
|
|
338
|
+
const message = {
|
|
339
|
+
timestamp: Date.now(),
|
|
340
|
+
agentId: coordinatorId,
|
|
341
|
+
type: 'STDOUT',
|
|
342
|
+
content: data.toString().trim()
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
await this.logInterAgentCommunication(message);
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
// Capture stderr
|
|
349
|
+
process.stderr.on('data', async (data) => {
|
|
350
|
+
const message = {
|
|
351
|
+
timestamp: Date.now(),
|
|
352
|
+
agentId: coordinatorId,
|
|
353
|
+
type: 'STDERR',
|
|
354
|
+
content: data.toString().trim()
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
await this.logInterAgentCommunication(message);
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
process.on('close', async (code) => {
|
|
361
|
+
const message = {
|
|
362
|
+
timestamp: Date.now(),
|
|
363
|
+
agentId: coordinatorId,
|
|
364
|
+
type: 'PROCESS_COMPLETE',
|
|
365
|
+
content: `Process completed with code: ${code}`
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
await this.logInterAgentCommunication(message);
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
async logInterAgentCommunication(message) {
|
|
373
|
+
// Central logging
|
|
374
|
+
const logEntry = {
|
|
375
|
+
timestamp: message.timestamp,
|
|
376
|
+
agentId: message.agentId,
|
|
377
|
+
type: message.type,
|
|
378
|
+
content: message.content
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
await fs.appendFile(this.communicationLog, JSON.stringify(logEntry) + '\n');
|
|
382
|
+
|
|
383
|
+
// Per-agent tracking
|
|
384
|
+
if (!this.agentCommunications.has(message.agentId)) {
|
|
385
|
+
this.agentCommunications.set(message.agentId, []);
|
|
386
|
+
}
|
|
387
|
+
this.agentCommunications.get(message.agentId).push(logEntry);
|
|
388
|
+
|
|
389
|
+
// Real-time display
|
|
390
|
+
console.log(`๐จ [${message.agentId}] ${message.type}: ${message.content.substring(0, 100)}${message.content.length > 100 ? '...' : ''}`);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
async monitorRealCoordination() {
|
|
394
|
+
console.log('๐ก Step 2: Monitoring Real AI Coordination');
|
|
395
|
+
console.log(' AI agents are now coordinating autonomously...\n');
|
|
396
|
+
|
|
397
|
+
const monitoringDuration = 3 * 60 * 1000; // 3 minutes
|
|
398
|
+
const startTime = Date.now();
|
|
399
|
+
|
|
400
|
+
while (Date.now() - startTime < monitoringDuration) {
|
|
401
|
+
await new Promise(resolve => setTimeout(resolve, 30000)); // Check every 30 seconds
|
|
402
|
+
|
|
403
|
+
// Check agent status
|
|
404
|
+
await this.checkAgentProgress();
|
|
405
|
+
|
|
406
|
+
// Monitor coordination files
|
|
407
|
+
await this.monitorCoordinationFiles();
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
console.log('\nโฐ Coordination monitoring period ended\n');
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
async checkAgentProgress() {
|
|
414
|
+
const activeCount = Array.from(this.coordinators.values())
|
|
415
|
+
.filter(c => c.status === 'active').length;
|
|
416
|
+
|
|
417
|
+
const totalMessages = Array.from(this.agentCommunications.values())
|
|
418
|
+
.reduce((sum, msgs) => sum + msgs.length, 0);
|
|
419
|
+
|
|
420
|
+
console.log(` ๐ Active coordinators: ${activeCount}/7 | Total messages: ${totalMessages}`);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
async monitorCoordinationFiles() {
|
|
424
|
+
try {
|
|
425
|
+
const files = await fs.readdir(this.outputDir);
|
|
426
|
+
const statusFiles = files.filter(f => f.includes('-status.txt'));
|
|
427
|
+
const helloFiles = files.filter(f => f.startsWith('hello_world_'));
|
|
428
|
+
|
|
429
|
+
console.log(` ๐ Coordination files: ${statusFiles.length} status files, ${helloFiles.length} Hello World files`);
|
|
430
|
+
|
|
431
|
+
// Check for language assignments
|
|
432
|
+
const assignments = new Map();
|
|
433
|
+
for (const statusFile of statusFiles) {
|
|
434
|
+
try {
|
|
435
|
+
const content = await fs.readFile(path.join(this.outputDir, statusFile), 'utf8');
|
|
436
|
+
const match = content.match(/CHOSEN_LANGUAGE:\s*(\w+)/);
|
|
437
|
+
if (match) {
|
|
438
|
+
assignments.set(statusFile, match[1]);
|
|
439
|
+
}
|
|
440
|
+
} catch (error) {
|
|
441
|
+
// Ignore file read errors
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
if (assignments.size > 0) {
|
|
446
|
+
console.log(` ๐ฏ Current language assignments: ${Array.from(assignments.values()).join(', ')}`);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
} catch (error) {
|
|
450
|
+
console.log(' โ ๏ธ Could not check coordination files');
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
async analyzeResults() {
|
|
455
|
+
console.log('๐ Step 3: Analyzing Real AI Coordination Results\n');
|
|
456
|
+
|
|
457
|
+
// Analyze generated files
|
|
458
|
+
const fileAnalysis = await this.analyzeGeneratedFiles();
|
|
459
|
+
|
|
460
|
+
// Analyze communication patterns
|
|
461
|
+
const commAnalysis = await this.analyzeCommunicationPatterns();
|
|
462
|
+
|
|
463
|
+
// Check for successful coordination
|
|
464
|
+
const coordinationSuccess = await this.evaluateCoordinationSuccess();
|
|
465
|
+
|
|
466
|
+
const results = {
|
|
467
|
+
timestamp: Date.now(),
|
|
468
|
+
testType: 'REAL_AI_COORDINATION',
|
|
469
|
+
results: {
|
|
470
|
+
fileAnalysis,
|
|
471
|
+
communicationAnalysis: commAnalysis,
|
|
472
|
+
coordinationSuccess
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
const resultsFile = path.join(this.outputDir, `real-ai-results-${Date.now()}.json`);
|
|
477
|
+
await fs.writeFile(resultsFile, JSON.stringify(results, null, 2));
|
|
478
|
+
|
|
479
|
+
console.log(`๐ Results saved to: ${resultsFile}`);
|
|
480
|
+
console.log('๐ All communications logged to: real-ai-communications.log');
|
|
481
|
+
|
|
482
|
+
this.displaySummary(results);
|
|
483
|
+
|
|
484
|
+
// Cleanup
|
|
485
|
+
await this.cleanup();
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
async analyzeGeneratedFiles() {
|
|
489
|
+
try {
|
|
490
|
+
const files = await fs.readdir(this.outputDir);
|
|
491
|
+
const helloFiles = files.filter(f => f.startsWith('hello_world_'));
|
|
492
|
+
|
|
493
|
+
const languageCombinations = new Map();
|
|
494
|
+
const programmingCounts = new Map();
|
|
495
|
+
const verbalCounts = new Map();
|
|
496
|
+
|
|
497
|
+
helloFiles.forEach(file => {
|
|
498
|
+
const parts = file.replace('hello_world_', '').replace(/\.[^/.]+$/, '').split('_');
|
|
499
|
+
if (parts.length >= 2) {
|
|
500
|
+
const verbal = parts[0];
|
|
501
|
+
const programming = parts[1];
|
|
502
|
+
|
|
503
|
+
languageCombinations.set(`${programming}+${verbal}`, file);
|
|
504
|
+
programmingCounts.set(programming, (programmingCounts.get(programming) || 0) + 1);
|
|
505
|
+
verbalCounts.set(verbal, (verbalCounts.get(verbal) || 0) + 1);
|
|
506
|
+
}
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
return {
|
|
510
|
+
totalHelloFiles: helloFiles.length,
|
|
511
|
+
languageCombinations: Array.from(languageCombinations.keys()),
|
|
512
|
+
programmingDistribution: Object.fromEntries(programmingCounts),
|
|
513
|
+
verbalDistribution: Object.fromEntries(verbalCounts),
|
|
514
|
+
fileList: helloFiles
|
|
515
|
+
};
|
|
516
|
+
|
|
517
|
+
} catch (error) {
|
|
518
|
+
return { totalHelloFiles: 0, languageCombinations: [], programmingDistribution: {}, verbalDistribution: {}, fileList: [] };
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
async analyzeCommunicationPatterns() {
|
|
523
|
+
const analysis = {
|
|
524
|
+
totalMessages: 0,
|
|
525
|
+
messagesByAgent: {},
|
|
526
|
+
messageTypes: {},
|
|
527
|
+
coordinationEvidence: {
|
|
528
|
+
languageChoice: false,
|
|
529
|
+
conflictDetection: false,
|
|
530
|
+
fileCreation: false,
|
|
531
|
+
completion: false
|
|
532
|
+
}
|
|
533
|
+
};
|
|
534
|
+
|
|
535
|
+
this.agentCommunications.forEach((messages, agentId) => {
|
|
536
|
+
analysis.messagesByAgent[agentId] = messages.length;
|
|
537
|
+
analysis.totalMessages += messages.length;
|
|
538
|
+
|
|
539
|
+
messages.forEach(msg => {
|
|
540
|
+
analysis.messageTypes[msg.type] = (analysis.messageTypes[msg.type] || 0) + 1;
|
|
541
|
+
|
|
542
|
+
const content = msg.content.toLowerCase();
|
|
543
|
+
|
|
544
|
+
if (content.includes('chosen language')) {
|
|
545
|
+
analysis.coordinationEvidence.languageChoice = true;
|
|
546
|
+
}
|
|
547
|
+
if (content.includes('conflict')) {
|
|
548
|
+
analysis.coordinationEvidence.conflictDetection = true;
|
|
549
|
+
}
|
|
550
|
+
if (content.includes('created:') || content.includes('created')) {
|
|
551
|
+
analysis.coordinationEvidence.fileCreation = true;
|
|
552
|
+
}
|
|
553
|
+
if (content.includes('completed')) {
|
|
554
|
+
analysis.coordinationEvidence.completion = true;
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
});
|
|
558
|
+
|
|
559
|
+
return analysis;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
async evaluateCoordinationSuccess() {
|
|
563
|
+
try {
|
|
564
|
+
const files = await fs.readdir(this.outputDir);
|
|
565
|
+
const statusFiles = files.filter(f => f.includes('-status.txt'));
|
|
566
|
+
const helloFiles = files.filter(f => f.startsWith('hello_world_'));
|
|
567
|
+
|
|
568
|
+
// Check if all 7 coordinators made choices
|
|
569
|
+
const uniqueLanguages = new Set();
|
|
570
|
+
for (const statusFile of statusFiles) {
|
|
571
|
+
try {
|
|
572
|
+
const content = await fs.readFile(path.join(this.outputDir, statusFile), 'utf8');
|
|
573
|
+
const match = content.match(/CHOSEN_LANGUAGE:\s*(\w+)/);
|
|
574
|
+
if (match) {
|
|
575
|
+
uniqueLanguages.add(match[1]);
|
|
576
|
+
}
|
|
577
|
+
} catch (error) {
|
|
578
|
+
// Ignore
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
return {
|
|
583
|
+
allCoordinatorsActive: statusFiles.length === 7,
|
|
584
|
+
uniqueLanguagesChosen: uniqueLanguages.size === 7,
|
|
585
|
+
totalCombinations: helloFiles.length,
|
|
586
|
+
targetCombinations: 70,
|
|
587
|
+
successRate: (helloFiles.length / 70) * 100,
|
|
588
|
+
languagesChosen: Array.from(uniqueLanguages)
|
|
589
|
+
};
|
|
590
|
+
|
|
591
|
+
} catch (error) {
|
|
592
|
+
return {
|
|
593
|
+
allCoordinatorsActive: false,
|
|
594
|
+
uniqueLanguagesChosen: false,
|
|
595
|
+
totalCombinations: 0,
|
|
596
|
+
targetCombinations: 70,
|
|
597
|
+
successRate: 0,
|
|
598
|
+
languagesChosen: []
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
displaySummary(results) {
|
|
604
|
+
console.log('\n๐ฏ REAL AI COORDINATION SUMMARY:');
|
|
605
|
+
console.log('=====================================');
|
|
606
|
+
|
|
607
|
+
const { fileAnalysis, communicationAnalysis, coordinationSuccess } = results.results;
|
|
608
|
+
|
|
609
|
+
console.log(`๐ Generated Files: ${fileAnalysis.totalHelloFiles}/70 (${coordinationSuccess.successRate.toFixed(1)}%)`);
|
|
610
|
+
console.log(`๐ค Active Coordinators: ${coordinationSuccess.languagesChosen.length}/7`);
|
|
611
|
+
console.log(`๐ฌ Total Communications: ${communicationAnalysis.totalMessages}`);
|
|
612
|
+
|
|
613
|
+
if (coordinationSuccess.languagesChosen.length > 0) {
|
|
614
|
+
console.log(`๐จ Languages Chosen: ${coordinationSuccess.languagesChosen.join(', ')}`);
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
console.log('\n๐ Communication Evidence:');
|
|
618
|
+
console.log(` Language Choice: ${communicationAnalysis.coordinationEvidence.languageChoice ? 'โ
' : 'โ'}`);
|
|
619
|
+
console.log(` Conflict Detection: ${communicationAnalysis.coordinationEvidence.conflictDetection ? 'โ
' : 'โ'}`);
|
|
620
|
+
console.log(` File Creation: ${communicationAnalysis.coordinationEvidence.fileCreation ? 'โ
' : 'โ'}`);
|
|
621
|
+
console.log(` Task Completion: ${communicationAnalysis.coordinationEvidence.completion ? 'โ
' : 'โ'}`);
|
|
622
|
+
|
|
623
|
+
if (coordinationSuccess.successRate === 100) {
|
|
624
|
+
console.log('\n๐ PERFECT COORDINATION: All 70 combinations achieved!');
|
|
625
|
+
} else if (coordinationSuccess.successRate > 50) {
|
|
626
|
+
console.log(`\nโ
GOOD COORDINATION: ${coordinationSuccess.totalCombinations}/70 combinations achieved`);
|
|
627
|
+
} else {
|
|
628
|
+
console.log(`\nโ ๏ธ PARTIAL COORDINATION: ${coordinationSuccess.totalCombinations}/70 combinations achieved`);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
async cleanup() {
|
|
633
|
+
console.log('\n๐งน Cleaning up processes...');
|
|
634
|
+
|
|
635
|
+
this.agentProcesses.forEach((process, agentId) => {
|
|
636
|
+
try {
|
|
637
|
+
process.kill('SIGTERM');
|
|
638
|
+
console.log(` โ
Terminated ${agentId}`);
|
|
639
|
+
} catch (error) {
|
|
640
|
+
console.log(` โ ๏ธ Could not terminate ${agentId}`);
|
|
641
|
+
}
|
|
642
|
+
});
|
|
643
|
+
|
|
644
|
+
console.log('โ
Cleanup complete\n');
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
// Run the real AI coordinator test
|
|
649
|
+
const realAI = new RealAICoordinator();
|
|
650
|
+
realAI.start().catch(console.error);
|