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,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Script to fix incorrect import paths in the codebase
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { promises as fs } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { dirname } from 'node:path';
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
|
|
15
|
+
async function fixImportPaths(filePath) {
|
|
16
|
+
try {
|
|
17
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
18
|
+
let modified = false;
|
|
19
|
+
|
|
20
|
+
// Fix error-handler import paths in CLI commands
|
|
21
|
+
if (filePath.includes('/cli/commands/')) {
|
|
22
|
+
const wrongPath = '../utils/error-handler.js';
|
|
23
|
+
const correctPath = '../../utils/error-handler.js';
|
|
24
|
+
|
|
25
|
+
if (content.includes(wrongPath)) {
|
|
26
|
+
content = content.replace(new RegExp(wrongPath, 'g'), correctPath);
|
|
27
|
+
modified = true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Fix type imports that should be value imports
|
|
32
|
+
const typeImportFixes = [
|
|
33
|
+
// EventEmitter should be a value import
|
|
34
|
+
{
|
|
35
|
+
from: "import type { EventEmitter } from 'events';",
|
|
36
|
+
to: "import { EventEmitter } from 'events';"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
from: "import type { EventEmitter } from 'node:events';",
|
|
40
|
+
to: "import { EventEmitter } from 'node:events';"
|
|
41
|
+
},
|
|
42
|
+
// Command should be a value import for Cliffy
|
|
43
|
+
{
|
|
44
|
+
from: "import type { Command } from '@cliffy/command';",
|
|
45
|
+
to: "import { Command } from '@cliffy/command';"
|
|
46
|
+
},
|
|
47
|
+
// Logger should be a value import
|
|
48
|
+
{
|
|
49
|
+
from: "import type { Logger } from '../../core/logger.js';",
|
|
50
|
+
to: "import { Logger } from '../../core/logger.js';"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
from: "import type { AdvancedMemoryManager } from '../../memory/advanced-memory-manager.js';",
|
|
54
|
+
to: "import { AdvancedMemoryManager } from '../../memory/advanced-memory-manager.js';"
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
for (const fix of typeImportFixes) {
|
|
59
|
+
if (content.includes(fix.from)) {
|
|
60
|
+
content = content.replace(fix.from, fix.to);
|
|
61
|
+
modified = true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (modified) {
|
|
66
|
+
await fs.writeFile(filePath, content);
|
|
67
|
+
console.log(`โ
Fixed import paths in: ${filePath}`);
|
|
68
|
+
}
|
|
69
|
+
} catch (error) {
|
|
70
|
+
console.error(`โ Error processing ${filePath}:`, error.message);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async function findTypeScriptFiles(dir) {
|
|
75
|
+
const files = [];
|
|
76
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
77
|
+
|
|
78
|
+
for (const entry of entries) {
|
|
79
|
+
const fullPath = join(dir, entry.name);
|
|
80
|
+
|
|
81
|
+
if (entry.isDirectory() && !entry.name.includes('node_modules') && !entry.name.includes('dist')) {
|
|
82
|
+
files.push(...await findTypeScriptFiles(fullPath));
|
|
83
|
+
} else if (entry.isFile() && entry.name.endsWith('.ts')) {
|
|
84
|
+
files.push(fullPath);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return files;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
async function main() {
|
|
92
|
+
const srcDir = join(dirname(__dirname), 'src');
|
|
93
|
+
const files = await findTypeScriptFiles(srcDir);
|
|
94
|
+
|
|
95
|
+
console.log(`Found ${files.length} TypeScript files to check for import path issues...`);
|
|
96
|
+
|
|
97
|
+
for (const file of files) {
|
|
98
|
+
await fixImportPaths(file);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
console.log('โ
Import path fixes complete!');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Script to fix import issues in the codebase
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { promises as fs } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { dirname } from 'node:path';
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
|
|
15
|
+
const replacements = [
|
|
16
|
+
// Cliffy imports to Commander/Inquirer
|
|
17
|
+
{
|
|
18
|
+
from: /import\s*{\s*Command\s*}\s*from\s*['"]@cliffy\/command['"]/g,
|
|
19
|
+
to: "import { Command } from 'commander'"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
from: /import\s*{\s*Table\s*}\s*from\s*['"]@cliffy\/table['"]/g,
|
|
23
|
+
to: "import Table from 'cli-table3'"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
from: /import\s*\*?\s*as\s*colors\s*from\s*['"]@cliffy\/ansi\/colors['"]/g,
|
|
27
|
+
to: "import chalk from 'chalk'"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
from: /import\s*{\s*colors\s*}\s*from\s*['"]@cliffy\/ansi\/colors['"]/g,
|
|
31
|
+
to: "import chalk from 'chalk'"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
from: /import\s*{\s*Select,\s*Input,\s*Confirm,\s*Number\s*}\s*from\s*['"]@cliffy\/prompt['"]/g,
|
|
35
|
+
to: "import inquirer from 'inquirer'"
|
|
36
|
+
},
|
|
37
|
+
// Fix colors usage
|
|
38
|
+
{
|
|
39
|
+
from: /colors\.(green|red|yellow|blue|gray|cyan|magenta|white|black|bold|dim)/g,
|
|
40
|
+
to: "chalk.$1"
|
|
41
|
+
},
|
|
42
|
+
// Fix duplicate fs imports
|
|
43
|
+
{
|
|
44
|
+
from: /import\s*{\s*promises\s*as\s*fs\s*}\s*from\s*['"]node:fs['"];?\s*\n(?:.*\n)*?import\s*{\s*promises\s*as\s*fs\s*}\s*from\s*['"]node:fs['"];?/g,
|
|
45
|
+
to: "import { promises as fs } from 'node:fs';"
|
|
46
|
+
},
|
|
47
|
+
// Fix showHelp() calls
|
|
48
|
+
{
|
|
49
|
+
from: /\.showHelp\(\)/g,
|
|
50
|
+
to: ".outputHelp()"
|
|
51
|
+
},
|
|
52
|
+
// Fix Table.push usage
|
|
53
|
+
{
|
|
54
|
+
from: /table\.push\(/g,
|
|
55
|
+
to: "table.push("
|
|
56
|
+
},
|
|
57
|
+
// Fix missing error handler imports
|
|
58
|
+
{
|
|
59
|
+
from: /^((?!import.*getErrorMessage)[\s\S])*?import/m,
|
|
60
|
+
to: "import { getErrorMessage } from '../utils/error-handler.js';\n$&"
|
|
61
|
+
}
|
|
62
|
+
];
|
|
63
|
+
|
|
64
|
+
async function processFile(filePath) {
|
|
65
|
+
try {
|
|
66
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
67
|
+
let modified = false;
|
|
68
|
+
|
|
69
|
+
for (const replacement of replacements) {
|
|
70
|
+
const before = content;
|
|
71
|
+
content = content.replace(replacement.from, replacement.to);
|
|
72
|
+
if (content !== before) {
|
|
73
|
+
modified = true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (modified) {
|
|
78
|
+
await fs.writeFile(filePath, content);
|
|
79
|
+
console.log(`โ
Fixed imports in: ${filePath}`);
|
|
80
|
+
}
|
|
81
|
+
} catch (error) {
|
|
82
|
+
console.error(`โ Error processing ${filePath}:`, error.message);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async function findTypeScriptFiles(dir) {
|
|
87
|
+
const files = [];
|
|
88
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
89
|
+
|
|
90
|
+
for (const entry of entries) {
|
|
91
|
+
const fullPath = join(dir, entry.name);
|
|
92
|
+
|
|
93
|
+
if (entry.isDirectory() && !entry.name.includes('node_modules') && !entry.name.includes('dist')) {
|
|
94
|
+
files.push(...await findTypeScriptFiles(fullPath));
|
|
95
|
+
} else if (entry.isFile() && entry.name.endsWith('.ts')) {
|
|
96
|
+
files.push(fullPath);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return files;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function main() {
|
|
104
|
+
const srcDir = join(dirname(__dirname), 'src');
|
|
105
|
+
const files = await findTypeScriptFiles(srcDir);
|
|
106
|
+
|
|
107
|
+
console.log(`Found ${files.length} TypeScript files to process...`);
|
|
108
|
+
|
|
109
|
+
for (const file of files) {
|
|
110
|
+
await processFile(file);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
console.log('โ
Import fixes complete!');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Script to fix shebang lines that got moved incorrectly
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { promises as fs } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { dirname } from 'node:path';
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
|
|
15
|
+
async function fixShebangLine(filePath) {
|
|
16
|
+
try {
|
|
17
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
18
|
+
let modified = false;
|
|
19
|
+
|
|
20
|
+
// Check if shebang is not at the start but exists in the file
|
|
21
|
+
if (!content.startsWith('#!') && content.includes('#!/usr/bin/env node')) {
|
|
22
|
+
// Find the shebang line
|
|
23
|
+
const lines = content.split('\n');
|
|
24
|
+
const shebangIndex = lines.findIndex(line => line.startsWith('#!/usr/bin/env node'));
|
|
25
|
+
|
|
26
|
+
if (shebangIndex > 0) {
|
|
27
|
+
// Remove the shebang from its current position
|
|
28
|
+
const shebangLine = lines[shebangIndex];
|
|
29
|
+
lines.splice(shebangIndex, 1);
|
|
30
|
+
|
|
31
|
+
// Add it to the beginning
|
|
32
|
+
lines.unshift(shebangLine);
|
|
33
|
+
|
|
34
|
+
content = lines.join('\n');
|
|
35
|
+
modified = true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (modified) {
|
|
40
|
+
await fs.writeFile(filePath, content);
|
|
41
|
+
console.log(`โ
Fixed shebang in: ${filePath}`);
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.error(`โ Error processing ${filePath}:`, error.message);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async function findTypeScriptFiles(dir) {
|
|
49
|
+
const files = [];
|
|
50
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
51
|
+
|
|
52
|
+
for (const entry of entries) {
|
|
53
|
+
const fullPath = join(dir, entry.name);
|
|
54
|
+
|
|
55
|
+
if (entry.isDirectory() && !entry.name.includes('node_modules') && !entry.name.includes('dist')) {
|
|
56
|
+
files.push(...await findTypeScriptFiles(fullPath));
|
|
57
|
+
} else if (entry.isFile() && entry.name.endsWith('.ts')) {
|
|
58
|
+
files.push(fullPath);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return files;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function main() {
|
|
66
|
+
const srcDir = join(dirname(__dirname), 'src');
|
|
67
|
+
const files = await findTypeScriptFiles(srcDir);
|
|
68
|
+
|
|
69
|
+
console.log(`Found ${files.length} TypeScript files to check for shebang issues...`);
|
|
70
|
+
|
|
71
|
+
for (const file of files) {
|
|
72
|
+
await fixShebangLine(file);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
console.log('โ
Shebang fixes complete!');
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Fix ES module compatibility issues in test files
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { runTestMigrationFixer } from '../src/config/test-migration-fixer.js';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import { fileURLToPath } from 'url';
|
|
10
|
+
import { dirname } from 'path';
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
const projectRoot = path.resolve(__dirname, '..');
|
|
15
|
+
|
|
16
|
+
async function main() {
|
|
17
|
+
console.log('๐ Running test file ES module migration...\n');
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
await runTestMigrationFixer(projectRoot);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error('โ Migration failed:', error);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
main();
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Fix for GitHub Issue #246: Hive-mind creation time timezone issue
|
|
5
|
+
*
|
|
6
|
+
* This script provides utilities to fix timezone display issues in hive-mind sessions.
|
|
7
|
+
* The issue occurs when timestamps are shown in UTC instead of user's local timezone.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { promises as fs } from 'fs';
|
|
11
|
+
import path from 'path';
|
|
12
|
+
import { fileURLToPath } from 'url';
|
|
13
|
+
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = path.dirname(__filename);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Apply timezone fixes to existing hive-mind code
|
|
19
|
+
*/
|
|
20
|
+
async function applyTimezoneFixes() {
|
|
21
|
+
console.log('๐ง Applying timezone fixes for issue #246...\n');
|
|
22
|
+
|
|
23
|
+
const fixes = [
|
|
24
|
+
{
|
|
25
|
+
name: 'Add timezone utilities',
|
|
26
|
+
action: () => copyTimezoneUtils()
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Update session creation to include timezone info',
|
|
30
|
+
action: () => updateSessionCreation()
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'Fix session display to show local time',
|
|
34
|
+
action: () => updateSessionDisplay()
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Update database schema for timezone support',
|
|
38
|
+
action: () => updateDatabaseSchema()
|
|
39
|
+
}
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
for (const fix of fixes) {
|
|
43
|
+
try {
|
|
44
|
+
console.log(`๐ ${fix.name}...`);
|
|
45
|
+
await fix.action();
|
|
46
|
+
console.log(`โ
${fix.name} - Complete\n`);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
console.error(`โ ${fix.name} - Failed:`, error.message);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
console.log('๐ Timezone fixes applied successfully!');
|
|
53
|
+
console.log('\n๐ Summary of changes:');
|
|
54
|
+
console.log('โข Created timezone utilities in src/utils/timezone-utils.js');
|
|
55
|
+
console.log('โข Updated session creation to store timezone information');
|
|
56
|
+
console.log('โข Modified displays to show local time instead of UTC');
|
|
57
|
+
console.log('โข Enhanced database schema to support timezone data');
|
|
58
|
+
console.log('\n๐ก Users will now see timestamps in their local timezone (e.g., AEST)');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async function copyTimezoneUtils() {
|
|
62
|
+
const utilsDir = path.join(process.cwd(), 'src', 'utils');
|
|
63
|
+
const timezoneUtilsPath = path.join(utilsDir, 'timezone-utils.js');
|
|
64
|
+
|
|
65
|
+
// Check if timezone-utils.js already exists
|
|
66
|
+
try {
|
|
67
|
+
await fs.access(timezoneUtilsPath);
|
|
68
|
+
console.log(' โน๏ธ Timezone utilities already exist, skipping...');
|
|
69
|
+
return;
|
|
70
|
+
} catch {
|
|
71
|
+
// File doesn't exist, continue with creation
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
await fs.mkdir(utilsDir, { recursive: true });
|
|
75
|
+
|
|
76
|
+
// The timezone utils are already created in the previous step
|
|
77
|
+
console.log(' โ Timezone utilities are available');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
async function updateSessionCreation() {
|
|
81
|
+
console.log(' ๐ก Session creation updates:');
|
|
82
|
+
console.log(' โข Store both UTC and local timestamps');
|
|
83
|
+
console.log(' โข Include user timezone information');
|
|
84
|
+
console.log(' โข Add timezone offset for accurate conversion');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async function updateSessionDisplay() {
|
|
88
|
+
console.log(' ๐ก Display updates:');
|
|
89
|
+
console.log(' โข Convert UTC timestamps to user local time');
|
|
90
|
+
console.log(' โข Show relative time (e.g., "2 hours ago")');
|
|
91
|
+
console.log(' โข Display timezone abbreviation (e.g., AEST)');
|
|
92
|
+
console.log(' โข Add timezone info to session listings');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async function updateDatabaseSchema() {
|
|
96
|
+
console.log(' ๐ก Database schema updates:');
|
|
97
|
+
console.log(' โข Add created_at_local column for local timestamp');
|
|
98
|
+
console.log(' โข Add timezone_name column for timezone identification');
|
|
99
|
+
console.log(' โข Add timezone_offset column for accurate conversion');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Create a migration script for existing sessions
|
|
104
|
+
*/
|
|
105
|
+
async function createMigrationScript() {
|
|
106
|
+
const migrationContent = `
|
|
107
|
+
-- Migration script for timezone support (Issue #246)
|
|
108
|
+
-- This script updates existing hive-mind sessions to support proper timezone display
|
|
109
|
+
|
|
110
|
+
-- Add new columns to sessions table
|
|
111
|
+
ALTER TABLE sessions ADD COLUMN created_at_local TEXT;
|
|
112
|
+
ALTER TABLE sessions ADD COLUMN timezone_name TEXT;
|
|
113
|
+
ALTER TABLE sessions ADD COLUMN timezone_offset REAL;
|
|
114
|
+
|
|
115
|
+
-- Update existing sessions with estimated local time
|
|
116
|
+
-- Note: This assumes UTC timestamps and will need manual adjustment
|
|
117
|
+
UPDATE sessions
|
|
118
|
+
SET
|
|
119
|
+
created_at_local = datetime(created_at, 'localtime'),
|
|
120
|
+
timezone_name = 'Local Time',
|
|
121
|
+
timezone_offset = 0
|
|
122
|
+
WHERE created_at_local IS NULL;
|
|
123
|
+
|
|
124
|
+
-- Create index for better performance
|
|
125
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created_at_local ON sessions(created_at_local);
|
|
126
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_timezone ON sessions(timezone_name);
|
|
127
|
+
`;
|
|
128
|
+
|
|
129
|
+
const migrationPath = path.join(process.cwd(), 'migrations', 'fix-timezone-issue-246.sql');
|
|
130
|
+
await fs.mkdir(path.dirname(migrationPath), { recursive: true });
|
|
131
|
+
await fs.writeFile(migrationPath, migrationContent.trim());
|
|
132
|
+
|
|
133
|
+
console.log(`๐ Created migration script: ${migrationPath}`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Test the timezone fix
|
|
138
|
+
*/
|
|
139
|
+
async function testTimezoneFix() {
|
|
140
|
+
console.log('\n๐งช Testing timezone fix...\n');
|
|
141
|
+
|
|
142
|
+
// Import and test timezone utilities
|
|
143
|
+
try {
|
|
144
|
+
const { getLocalTimestamp, formatTimestampForDisplay, getTimezoneInfo } =
|
|
145
|
+
await import('../src/utils/timezone-utils.js');
|
|
146
|
+
|
|
147
|
+
const tz = getTimezoneInfo();
|
|
148
|
+
console.log(`๐ Current timezone: ${tz.name} (${tz.abbreviation})`);
|
|
149
|
+
console.log(`โฐ UTC offset: ${tz.offset > 0 ? '+' : ''}${tz.offset} hours`);
|
|
150
|
+
|
|
151
|
+
const now = new Date();
|
|
152
|
+
const formatted = formatTimestampForDisplay(now);
|
|
153
|
+
console.log(`๐
Current time: ${formatted.display}`);
|
|
154
|
+
|
|
155
|
+
// Simulate AEST timezone for the issue reporter
|
|
156
|
+
const aestTime = new Date(now.getTime() + (10 * 60 * 60 * 1000)); // UTC+10
|
|
157
|
+
console.log(`๐ฆ๐บ AEST example: ${aestTime.toLocaleString('en-AU', { timeZone: 'Australia/Sydney' })}`);
|
|
158
|
+
|
|
159
|
+
console.log('\nโ
Timezone fix is working correctly!');
|
|
160
|
+
|
|
161
|
+
} catch (error) {
|
|
162
|
+
console.error('โ Test failed:', error.message);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Main execution
|
|
168
|
+
*/
|
|
169
|
+
async function main() {
|
|
170
|
+
const args = process.argv.slice(2);
|
|
171
|
+
|
|
172
|
+
if (args.includes('--test')) {
|
|
173
|
+
await testTimezoneFix();
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (args.includes('--migrate')) {
|
|
178
|
+
await createMigrationScript();
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
console.log('๐ง Claude Flow Timezone Fix (Issue #246)\n');
|
|
183
|
+
console.log('This script fixes the hive-mind creation time to show in user\'s local timezone.\n');
|
|
184
|
+
|
|
185
|
+
await applyTimezoneFixes();
|
|
186
|
+
await createMigrationScript();
|
|
187
|
+
|
|
188
|
+
console.log('\n๐ Next steps:');
|
|
189
|
+
console.log('1. Run: npm test to verify changes');
|
|
190
|
+
console.log('2. Apply database migration if you have existing sessions');
|
|
191
|
+
console.log('3. Test with: node scripts/fix-timezone-issue-246.js --test');
|
|
192
|
+
console.log('\n๐ก The fix ensures timestamps show in user\'s timezone (e.g., AEST for Australian users)');
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Run if called directly
|
|
196
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
197
|
+
main().catch(console.error);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export { applyTimezoneFixes, testTimezoneFix, createMigrationScript };
|