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,78 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Post-Install Script for CLAUDE.md Protection
|
|
5
|
+
*
|
|
6
|
+
* This script runs after NPX install to safely handle CLAUDE.md generation
|
|
7
|
+
* without overwriting user customizations
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { NpxClaudeMdProtection } from '../src/npx/claude-md-protection.js';
|
|
11
|
+
import { execSync } from 'child_process';
|
|
12
|
+
import path from 'path';
|
|
13
|
+
|
|
14
|
+
async function postInstall() {
|
|
15
|
+
try {
|
|
16
|
+
// Determine the target project path
|
|
17
|
+
// When running via NPX, we want to affect the user's current directory
|
|
18
|
+
const targetPath = process.env.INIT_CWD || process.cwd();
|
|
19
|
+
|
|
20
|
+
console.log('🚀 Claude Flow Novice post-install...');
|
|
21
|
+
console.log(`📁 Target directory: ${targetPath}`);
|
|
22
|
+
|
|
23
|
+
// Run the protection system
|
|
24
|
+
const protection = new NpxClaudeMdProtection(targetPath);
|
|
25
|
+
const result = await protection.protectAndGenerate();
|
|
26
|
+
|
|
27
|
+
if (result.success) {
|
|
28
|
+
console.log('✅ CLAUDE.md setup completed successfully');
|
|
29
|
+
|
|
30
|
+
if (result.action === 'npx-protection') {
|
|
31
|
+
console.log('🛡️ Protection mode: Your existing CLAUDE.md is safe');
|
|
32
|
+
} else {
|
|
33
|
+
console.log('📄 New CLAUDE.md created for your project');
|
|
34
|
+
}
|
|
35
|
+
} else {
|
|
36
|
+
console.warn('⚠️ CLAUDE.md setup encountered issues:', result.error);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Auto-setup MCP server if Claude Code is installed
|
|
40
|
+
await setupMcpIfAvailable();
|
|
41
|
+
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.error('❌ Post-install failed:', error.message);
|
|
44
|
+
// Don't fail the entire install if this fails
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async function setupMcpIfAvailable() {
|
|
50
|
+
try {
|
|
51
|
+
// Check if Claude Code CLI is available
|
|
52
|
+
execSync('which claude', { stdio: 'ignore' });
|
|
53
|
+
|
|
54
|
+
console.log('\n🔧 Claude Code detected - setting up MCP server...');
|
|
55
|
+
|
|
56
|
+
// Add claude-flow-novice MCP server
|
|
57
|
+
execSync('claude mcp add claude-flow-novice npx claude-flow-novice mcp start', {
|
|
58
|
+
stdio: 'inherit'
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
console.log('✅ MCP server added successfully!');
|
|
62
|
+
console.log('🎯 You can now use claude-flow-novice tools in Claude Code');
|
|
63
|
+
|
|
64
|
+
} catch (error) {
|
|
65
|
+
// Claude Code not installed or MCP add failed - that's fine
|
|
66
|
+
console.log('\n💡 To use claude-flow-novice with Claude Code:');
|
|
67
|
+
console.log(' 1. Install Claude Code if you haven\'t: npm install -g @anthropic-ai/claude-code');
|
|
68
|
+
console.log(' 2. Add MCP server: claude mcp add claude-flow-novice npx claude-flow-novice mcp start');
|
|
69
|
+
console.log(' 3. Or run: npx claude-flow-novice init');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Execute if called directly
|
|
74
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
75
|
+
postInstall();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default postInstall;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Post-installation script for claude-flow-novice
|
|
5
|
+
* Copies .claude directory from node_modules to project root
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { existsSync, copySync, mkdirSync } from 'fs';
|
|
9
|
+
import { dirname, join } from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Copy .claude directory from node_modules to project root
|
|
17
|
+
*/
|
|
18
|
+
function copyClaudeDirectory() {
|
|
19
|
+
try {
|
|
20
|
+
const projectRoot = process.cwd();
|
|
21
|
+
const sourceDir = join(__dirname, '../dist/.claude');
|
|
22
|
+
const targetDir = join(projectRoot, '.claude');
|
|
23
|
+
|
|
24
|
+
console.log('🚀 claude-flow-novice post-install: Setting up .claude directory...');
|
|
25
|
+
|
|
26
|
+
// Check if source directory exists
|
|
27
|
+
if (!existsSync(sourceDir)) {
|
|
28
|
+
console.error('❌ Source .claude directory not found at:', sourceDir);
|
|
29
|
+
console.log(' This indicates a broken npm package installation.');
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Create target directory if it doesn't exist
|
|
34
|
+
if (!existsSync(targetDir)) {
|
|
35
|
+
mkdirSync(targetDir, { recursive: true });
|
|
36
|
+
console.log('✅ Created .claude directory in project root');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Copy all contents from source to target
|
|
40
|
+
copySync(sourceDir, targetDir, {
|
|
41
|
+
overwrite: true,
|
|
42
|
+
recursive: true
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
console.log('✅ Successfully copied .claude directory to project root');
|
|
46
|
+
console.log('📁 Location:', targetDir);
|
|
47
|
+
console.log('🎯 Ready to use: npx claude-flow-novice --help');
|
|
48
|
+
|
|
49
|
+
// Verify key components were copied
|
|
50
|
+
const agentsDir = join(targetDir, 'agents');
|
|
51
|
+
const commandsDir = join(targetDir, 'commands');
|
|
52
|
+
const coreDir = join(targetDir, 'core');
|
|
53
|
+
|
|
54
|
+
if (existsSync(agentsDir)) {
|
|
55
|
+
const agentFiles = require('fs').readdirSync(agentsDir).length;
|
|
56
|
+
console.log(`📋 Agents: ${agentFiles} files copied`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (existsSync(commandsDir)) {
|
|
60
|
+
const commandFiles = require('fs').readdirSync(commandsDir).length;
|
|
61
|
+
console.log(`⚡ Commands: ${commandFiles} files copied`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (existsSync(coreDir)) {
|
|
65
|
+
const coreFiles = require('fs').readdirSync(coreDir).length;
|
|
66
|
+
console.log(`🔧 Core: ${coreFiles} files copied`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
console.log('🎉 Installation complete! claude-flow-novice is ready to use.');
|
|
70
|
+
|
|
71
|
+
} catch (error) {
|
|
72
|
+
console.error('❌ Post-install script failed:', error.message);
|
|
73
|
+
console.error(' Please run manually: cp -r node_modules/.claude-flow-novice/dist/.claude .claude');
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Run the installation
|
|
79
|
+
copyClaudeDirectory();
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Pre-Publish Validation Suite
|
|
5
|
+
* Validates all critical functionality before npm package publication
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const { execSync } = require('child_process');
|
|
9
|
+
const fs = require('fs');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
|
|
12
|
+
const TIMEOUT = 60000; // 60 seconds per test suite
|
|
13
|
+
|
|
14
|
+
const TEST_SUITES = [
|
|
15
|
+
{
|
|
16
|
+
name: '1. Post-Edit Pipeline Functionality',
|
|
17
|
+
type: 'manual',
|
|
18
|
+
validate: () => {
|
|
19
|
+
const pipelinePath = 'config/hooks/post-edit-pipeline.js';
|
|
20
|
+
if (!fs.existsSync(pipelinePath)) {
|
|
21
|
+
throw new Error(`Post-edit pipeline not found at ${pipelinePath}`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Test basic execution (create test file first)
|
|
25
|
+
const testFile = 'test-validation-temp.js';
|
|
26
|
+
fs.writeFileSync(testFile, 'console.log("test");');
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
execSync(`node ${pipelinePath} ${testFile}`, {
|
|
30
|
+
timeout: 30000,
|
|
31
|
+
stdio: 'pipe'
|
|
32
|
+
});
|
|
33
|
+
fs.unlinkSync(testFile);
|
|
34
|
+
return { status: 'PASS', message: 'Pipeline executable and functional' };
|
|
35
|
+
} catch (error) {
|
|
36
|
+
if (fs.existsSync(testFile)) fs.unlinkSync(testFile);
|
|
37
|
+
return { status: 'WARN', message: `Pipeline execution failed: ${error.message.substring(0, 100)}` };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: '2. Full-Stack Swarm Tests',
|
|
43
|
+
type: 'jest',
|
|
44
|
+
tests: [
|
|
45
|
+
'tests/swarm-fullstack/backend-integration.test.ts',
|
|
46
|
+
'tests/swarm-fullstack/frontend-integration.test.ts',
|
|
47
|
+
'tests/swarm-fullstack/workflows/iterative-workflow.test.ts'
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: '3. CFN Loop Core Tests',
|
|
52
|
+
type: 'jest',
|
|
53
|
+
tests: [
|
|
54
|
+
'tests/unit/cfn-loop/epic-iteration-limits.test.ts',
|
|
55
|
+
'tests/unit/cfn-loop/retry-todo-manager.test.ts',
|
|
56
|
+
'tests/integration/cfn-loop/cfn-loop-orchestrator.test.ts'
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: '4. CFN Loop Slash Commands',
|
|
61
|
+
type: 'jest',
|
|
62
|
+
tests: [
|
|
63
|
+
'tests/integration/slash-commands/cfn-loop-commands.test.ts',
|
|
64
|
+
'tests/integration/slash-commands/cfn-loop-integration.test.js'
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: '5. Tiered Structure with z.ai',
|
|
69
|
+
type: 'manual',
|
|
70
|
+
validate: () => {
|
|
71
|
+
const required = [
|
|
72
|
+
'src/providers/tiered-router.ts',
|
|
73
|
+
'src/providers/zai-provider.ts'
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
const missing = required.filter(file => !fs.existsSync(file));
|
|
77
|
+
if (missing.length > 0) {
|
|
78
|
+
return { status: 'FAIL', message: `Missing files: ${missing.join(', ')}` };
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Check test file exists
|
|
82
|
+
const testFile = 'tests/providers/tiered-routing.test.ts';
|
|
83
|
+
if (!fs.existsSync(testFile)) {
|
|
84
|
+
return { status: 'WARN', message: `Test file not found: ${testFile}` };
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return { status: 'PASS', message: 'Tiered routing files present' };
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: '6. SDK Process with Agents',
|
|
92
|
+
type: 'manual',
|
|
93
|
+
validate: () => {
|
|
94
|
+
const sdkTests = 'tests/coordination/v2/unit/sdk';
|
|
95
|
+
if (!fs.existsSync(sdkTests)) {
|
|
96
|
+
return { status: 'WARN', message: 'SDK tests directory not found (still in development)' };
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const testFiles = fs.readdirSync(sdkTests, { recursive: true })
|
|
100
|
+
.filter(file => file.endsWith('.test.ts') || file.endsWith('.test.js'));
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
status: 'INFO',
|
|
104
|
+
message: `SDK in development - ${testFiles.length} test files found`
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
];
|
|
109
|
+
|
|
110
|
+
function runJestTest(testPath) {
|
|
111
|
+
if (!fs.existsSync(testPath)) {
|
|
112
|
+
return { status: 'SKIP', message: 'Test file not found' };
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
try {
|
|
116
|
+
execSync(
|
|
117
|
+
`NODE_OPTIONS='--experimental-vm-modules' npm test -- ${testPath} --bail --maxWorkers=1 --forceExit --testTimeout=30000`,
|
|
118
|
+
{
|
|
119
|
+
timeout: TIMEOUT,
|
|
120
|
+
stdio: 'pipe'
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
return { status: 'PASS', message: 'All tests passed' };
|
|
124
|
+
} catch (error) {
|
|
125
|
+
const output = error.stdout?.toString() || error.stderr?.toString() || error.message;
|
|
126
|
+
const hasTests = output.includes('Test Suites:') || output.includes('Tests:');
|
|
127
|
+
|
|
128
|
+
if (!hasTests) {
|
|
129
|
+
return { status: 'SKIP', message: 'No executable tests found' };
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return { status: 'FAIL', message: output.substring(0, 200) };
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function formatResult(status) {
|
|
137
|
+
const colors = {
|
|
138
|
+
PASS: '\x1b[32m✓\x1b[0m',
|
|
139
|
+
FAIL: '\x1b[31m✗\x1b[0m',
|
|
140
|
+
WARN: '\x1b[33m⚠\x1b[0m',
|
|
141
|
+
INFO: '\x1b[36mℹ\x1b[0m',
|
|
142
|
+
SKIP: '\x1b[90m−\x1b[0m'
|
|
143
|
+
};
|
|
144
|
+
return colors[status] || status;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
async function main() {
|
|
148
|
+
console.log('\n🚀 Pre-Publish Validation Suite\n');
|
|
149
|
+
console.log('=' .repeat(80) + '\n');
|
|
150
|
+
|
|
151
|
+
const results = [];
|
|
152
|
+
|
|
153
|
+
for (const suite of TEST_SUITES) {
|
|
154
|
+
console.log(`\n${suite.name}`);
|
|
155
|
+
console.log('-'.repeat(80));
|
|
156
|
+
|
|
157
|
+
if (suite.type === 'manual') {
|
|
158
|
+
const result = suite.validate();
|
|
159
|
+
console.log(`${formatResult(result.status)} ${result.message}`);
|
|
160
|
+
results.push({ suite: suite.name, ...result });
|
|
161
|
+
} else if (suite.type === 'jest') {
|
|
162
|
+
for (const testPath of suite.tests) {
|
|
163
|
+
const filename = path.basename(testPath);
|
|
164
|
+
const result = runJestTest(testPath);
|
|
165
|
+
console.log(` ${formatResult(result.status)} ${filename}`);
|
|
166
|
+
if (result.message && result.status !== 'PASS') {
|
|
167
|
+
console.log(` ${result.message.split('\n')[0]}`);
|
|
168
|
+
}
|
|
169
|
+
results.push({ suite: suite.name, test: filename, ...result });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Summary
|
|
175
|
+
console.log('\n' + '='.repeat(80));
|
|
176
|
+
console.log('\n📊 SUMMARY\n');
|
|
177
|
+
|
|
178
|
+
const summary = {
|
|
179
|
+
PASS: results.filter(r => r.status === 'PASS').length,
|
|
180
|
+
FAIL: results.filter(r => r.status === 'FAIL').length,
|
|
181
|
+
WARN: results.filter(r => r.status === 'WARN').length,
|
|
182
|
+
INFO: results.filter(r => r.status === 'INFO').length,
|
|
183
|
+
SKIP: results.filter(r => r.status === 'SKIP').length
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
console.log(`${formatResult('PASS')} Passed: ${summary.PASS}`);
|
|
187
|
+
console.log(`${formatResult('FAIL')} Failed: ${summary.FAIL}`);
|
|
188
|
+
console.log(`${formatResult('WARN')} Warnings: ${summary.WARN}`);
|
|
189
|
+
console.log(`${formatResult('INFO')} Info: ${summary.INFO}`);
|
|
190
|
+
console.log(`${formatResult('SKIP')} Skipped: ${summary.SKIP}`);
|
|
191
|
+
|
|
192
|
+
console.log('\n' + '='.repeat(80));
|
|
193
|
+
|
|
194
|
+
// Critical failures block publication
|
|
195
|
+
if (summary.FAIL > 0) {
|
|
196
|
+
console.log('\n❌ CRITICAL: Tests failed. Fix before publishing.\n');
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (summary.PASS === 0 && summary.WARN > 0) {
|
|
201
|
+
console.log('\n⚠️ WARNING: No tests passed, only warnings. Review before publishing.\n');
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
console.log('\n✅ Validation complete. Ready for publication.\n');
|
|
206
|
+
process.exit(0);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
main().catch(error => {
|
|
210
|
+
console.error('\n❌ Validation suite failed:', error.message);
|
|
211
|
+
process.exit(1);
|
|
212
|
+
});
|