@sparkleideas/cli 3.1.0-alpha.20 → 3.1.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/src/commands/benchmark.js +2 -2
  2. package/dist/src/commands/claims.js +1 -1
  3. package/dist/src/commands/config.js +1 -1
  4. package/dist/src/commands/daemon.js +5 -5
  5. package/dist/src/commands/deployment.js +5 -5
  6. package/dist/src/commands/doctor.js +5 -5
  7. package/dist/src/commands/embeddings.js +3 -3
  8. package/dist/src/commands/guidance.js +1 -1
  9. package/dist/src/commands/hooks.js +11 -11
  10. package/dist/src/commands/init.js +11 -11
  11. package/dist/src/commands/migrate.js +7 -7
  12. package/dist/src/commands/neural.js +3 -3
  13. package/dist/src/commands/process.js +4 -4
  14. package/dist/src/commands/progress.js +1 -1
  15. package/dist/src/commands/start.js +4 -4
  16. package/dist/src/commands/status.js +1 -1
  17. package/dist/src/config-adapter.js +2 -2
  18. package/dist/src/init/executor.js +41 -41
  19. package/dist/src/init/helpers-generator.js +10 -10
  20. package/dist/src/init/statusline-generator.js +16 -16
  21. package/dist/src/init/types.d.ts +2 -2
  22. package/dist/src/mcp-tools/agent-tools.js +1 -1
  23. package/dist/src/mcp-tools/claims-tools.js +1 -1
  24. package/dist/src/mcp-tools/config-tools.js +1 -1
  25. package/dist/src/mcp-tools/coordination-tools.js +1 -1
  26. package/dist/src/mcp-tools/daa-tools.js +1 -1
  27. package/dist/src/mcp-tools/embeddings-tools.js +1 -1
  28. package/dist/src/mcp-tools/github-tools.js +1 -1
  29. package/dist/src/mcp-tools/hive-mind-tools.js +3 -3
  30. package/dist/src/mcp-tools/hooks-tools.js +1 -1
  31. package/dist/src/mcp-tools/memory-tools.js +1 -1
  32. package/dist/src/mcp-tools/neural-tools.js +1 -1
  33. package/dist/src/mcp-tools/performance-tools.js +1 -1
  34. package/dist/src/mcp-tools/progress-tools.js +1 -1
  35. package/dist/src/mcp-tools/session-tools.js +1 -1
  36. package/dist/src/mcp-tools/system-tools.js +2 -2
  37. package/dist/src/mcp-tools/task-tools.js +1 -1
  38. package/dist/src/mcp-tools/terminal-tools.js +1 -1
  39. package/dist/src/mcp-tools/workflow-tools.js +1 -1
  40. package/dist/src/memory/intelligence.js +5 -5
  41. package/dist/src/memory/memory-bridge.js +2 -2
  42. package/dist/src/memory/memory-initializer.js +1 -1
  43. package/dist/src/plugins/manager.js +2 -2
  44. package/dist/src/plugins/store/discovery.js +1 -1
  45. package/dist/src/services/claim-service.js +1 -1
  46. package/dist/src/services/container-worker-pool.js +2 -2
  47. package/dist/src/services/headless-worker-executor.js +2 -2
  48. package/dist/src/services/worker-daemon.js +14 -14
  49. package/dist/src/transfer/store/registry.js +1 -1
  50. package/dist/src/update/executor.js +1 -1
  51. package/dist/src/update/rate-limiter.js +1 -1
  52. package/package.json +1 -1
@@ -121,13 +121,13 @@ const DIRECTORIES = {
121
121
  '.claude/helpers',
122
122
  ],
123
123
  runtime: [
124
- '.@sparkleideas/claude-flow',
125
- '.@sparkleideas/claude-flow/data',
126
- '.@sparkleideas/claude-flow/logs',
127
- '.@sparkleideas/claude-flow/sessions',
128
- '.@sparkleideas/claude-flow/hooks',
129
- '.@sparkleideas/claude-flow/agents',
130
- '.@sparkleideas/claude-flow/workflows',
124
+ '.claude-flow',
125
+ '.claude-flow/data',
126
+ '.claude-flow/logs',
127
+ '.claude-flow/sessions',
128
+ '.claude-flow/hooks',
129
+ '.claude-flow/agents',
130
+ '.claude-flow/workflows',
131
131
  ],
132
132
  };
133
133
  /**
@@ -343,9 +343,9 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
343
343
  // Ensure required directories exist
344
344
  const dirs = [
345
345
  '.claude/helpers',
346
- '.@sparkleideas/claude-flow/metrics',
347
- '.@sparkleideas/claude-flow/security',
348
- '.@sparkleideas/claude-flow/learning',
346
+ '.claude-flow/metrics',
347
+ '.claude-flow/security',
348
+ '.claude-flow/learning',
349
349
  ];
350
350
  for (const dir of dirs) {
351
351
  const fullPath = path.join(targetDir, dir);
@@ -418,8 +418,8 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
418
418
  }
419
419
  fs.writeFileSync(statuslinePath, statuslineContent, 'utf-8');
420
420
  // 2. Create MISSING metrics files only (preserve existing data)
421
- const metricsDir = path.join(targetDir, '.@sparkleideas/claude-flow', 'metrics');
422
- const securityDir = path.join(targetDir, '.@sparkleideas/claude-flow', 'security');
421
+ const metricsDir = path.join(targetDir, '.claude-flow', 'metrics');
422
+ const securityDir = path.join(targetDir, '.claude-flow', 'security');
423
423
  // v3-progress.json
424
424
  const progressPath = path.join(metricsDir, 'v3-progress.json');
425
425
  if (!fs.existsSync(progressPath)) {
@@ -433,10 +433,10 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
433
433
  _note: 'Metrics will update as you use Claude Flow'
434
434
  };
435
435
  fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
436
- result.created.push('.@sparkleideas/claude-flow/metrics/v3-progress.json');
436
+ result.created.push('.claude-flow/metrics/v3-progress.json');
437
437
  }
438
438
  else {
439
- result.preserved.push('.@sparkleideas/claude-flow/metrics/v3-progress.json');
439
+ result.preserved.push('.claude-flow/metrics/v3-progress.json');
440
440
  }
441
441
  // swarm-activity.json
442
442
  const activityPath = path.join(metricsDir, 'swarm-activity.json');
@@ -449,10 +449,10 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
449
449
  _initialized: true
450
450
  };
451
451
  fs.writeFileSync(activityPath, JSON.stringify(activity, null, 2), 'utf-8');
452
- result.created.push('.@sparkleideas/claude-flow/metrics/swarm-activity.json');
452
+ result.created.push('.claude-flow/metrics/swarm-activity.json');
453
453
  }
454
454
  else {
455
- result.preserved.push('.@sparkleideas/claude-flow/metrics/swarm-activity.json');
455
+ result.preserved.push('.claude-flow/metrics/swarm-activity.json');
456
456
  }
457
457
  // learning.json
458
458
  const learningPath = path.join(metricsDir, 'learning.json');
@@ -465,10 +465,10 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
465
465
  _note: 'Intelligence grows as you use Claude Flow'
466
466
  };
467
467
  fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
468
- result.created.push('.@sparkleideas/claude-flow/metrics/learning.json');
468
+ result.created.push('.claude-flow/metrics/learning.json');
469
469
  }
470
470
  else {
471
- result.preserved.push('.@sparkleideas/claude-flow/metrics/learning.json');
471
+ result.preserved.push('.claude-flow/metrics/learning.json');
472
472
  }
473
473
  // audit-status.json
474
474
  const auditPath = path.join(securityDir, 'audit-status.json');
@@ -482,10 +482,10 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
482
482
  _note: 'Run: npx @sparkleideas/cli@latest security scan'
483
483
  };
484
484
  fs.writeFileSync(auditPath, JSON.stringify(audit, null, 2), 'utf-8');
485
- result.created.push('.@sparkleideas/claude-flow/security/audit-status.json');
485
+ result.created.push('.claude-flow/security/audit-status.json');
486
486
  }
487
487
  else {
488
- result.preserved.push('.@sparkleideas/claude-flow/security/audit-status.json');
488
+ result.preserved.push('.claude-flow/security/audit-status.json');
489
489
  }
490
490
  // 3. Merge settings if requested
491
491
  if (upgradeSettings) {
@@ -678,8 +678,8 @@ async function copySkills(targetDir, options, result) {
678
678
  else {
679
679
  if (skillsConfig.core)
680
680
  skillsToCopy.push(...SKILLS_MAP.core);
681
- if (skillsConfig.@sparkleideas/agentdb)
682
- skillsToCopy.push(...SKILLS_MAP.@sparkleideas/agentdb);
681
+ if (skillsConfig.agentdb)
682
+ skillsToCopy.push(...SKILLS_MAP.agentdb);
683
683
  if (skillsConfig.github)
684
684
  skillsToCopy.push(...SKILLS_MAP.github);
685
685
  if (skillsConfig.flowNexus)
@@ -1020,12 +1020,12 @@ async function writeStatusline(targetDir, options, result) {
1020
1020
  }
1021
1021
  }
1022
1022
  /**
1023
- * Write runtime configuration (.@sparkleideas/claude-flow/)
1023
+ * Write runtime configuration (.claude-flow/)
1024
1024
  */
1025
1025
  async function writeRuntimeConfig(targetDir, options, result) {
1026
- const configPath = path.join(targetDir, '.@sparkleideas/claude-flow', 'config.yaml');
1026
+ const configPath = path.join(targetDir, '.claude-flow', 'config.yaml');
1027
1027
  if (fs.existsSync(configPath) && !options.force) {
1028
- result.skipped.push('.@sparkleideas/claude-flow/config.yaml');
1028
+ result.skipped.push('.claude-flow/config.yaml');
1029
1029
  return;
1030
1030
  }
1031
1031
  const config = `# RuFlo V3 Runtime Configuration
@@ -1042,7 +1042,7 @@ swarm:
1042
1042
  memory:
1043
1043
  backend: ${options.runtime.memoryBackend}
1044
1044
  enableHNSW: ${options.runtime.enableHNSW}
1045
- persistPath: .@sparkleideas/claude-flow/data
1045
+ persistPath: .claude-flow/data
1046
1046
  cacheSize: 100
1047
1047
  # ADR-049: Self-Learning Memory
1048
1048
  learningBridge:
@@ -1062,7 +1062,7 @@ memory:
1062
1062
 
1063
1063
  neural:
1064
1064
  enabled: ${options.runtime.enableNeural}
1065
- modelPath: .@sparkleideas/claude-flow/neural
1065
+ modelPath: .claude-flow/neural
1066
1066
 
1067
1067
  hooks:
1068
1068
  enabled: true
@@ -1073,9 +1073,9 @@ mcp:
1073
1073
  port: ${options.mcp.port}
1074
1074
  `;
1075
1075
  fs.writeFileSync(configPath, config, 'utf-8');
1076
- result.created.files.push('.@sparkleideas/claude-flow/config.yaml');
1076
+ result.created.files.push('.claude-flow/config.yaml');
1077
1077
  // Write .gitignore
1078
- const gitignorePath = path.join(targetDir, '.@sparkleideas/claude-flow', '.gitignore');
1078
+ const gitignorePath = path.join(targetDir, '.claude-flow', '.gitignore');
1079
1079
  const gitignore = `# Claude Flow runtime files
1080
1080
  data/
1081
1081
  logs/
@@ -1086,7 +1086,7 @@ neural/
1086
1086
  `;
1087
1087
  if (!fs.existsSync(gitignorePath) || options.force) {
1088
1088
  fs.writeFileSync(gitignorePath, gitignore, 'utf-8');
1089
- result.created.files.push('.@sparkleideas/claude-flow/.gitignore');
1089
+ result.created.files.push('.claude-flow/.gitignore');
1090
1090
  }
1091
1091
  // Write CAPABILITIES.md with full system overview
1092
1092
  await writeCapabilitiesDoc(targetDir, options, result);
@@ -1096,9 +1096,9 @@ neural/
1096
1096
  * Creates baseline data so statusline shows meaningful state instead of all zeros
1097
1097
  */
1098
1098
  async function writeInitialMetrics(targetDir, options, result) {
1099
- const metricsDir = path.join(targetDir, '.@sparkleideas/claude-flow', 'metrics');
1100
- const learningDir = path.join(targetDir, '.@sparkleideas/claude-flow', 'learning');
1101
- const securityDir = path.join(targetDir, '.@sparkleideas/claude-flow', 'security');
1099
+ const metricsDir = path.join(targetDir, '.claude-flow', 'metrics');
1100
+ const learningDir = path.join(targetDir, '.claude-flow', 'learning');
1101
+ const securityDir = path.join(targetDir, '.claude-flow', 'security');
1102
1102
  // Ensure directories exist
1103
1103
  for (const dir of [metricsDir, learningDir, securityDir]) {
1104
1104
  if (!fs.existsSync(dir)) {
@@ -1135,7 +1135,7 @@ async function writeInitialMetrics(targetDir, options, result) {
1135
1135
  _note: 'Metrics will update as you use Claude Flow. Run: npx @sparkleideas/cli@latest daemon start'
1136
1136
  };
1137
1137
  fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
1138
- result.created.files.push('.@sparkleideas/claude-flow/metrics/v3-progress.json');
1138
+ result.created.files.push('.claude-flow/metrics/v3-progress.json');
1139
1139
  }
1140
1140
  // Create initial swarm-activity.json
1141
1141
  const activityPath = path.join(metricsDir, 'swarm-activity.json');
@@ -1159,7 +1159,7 @@ async function writeInitialMetrics(targetDir, options, result) {
1159
1159
  _initialized: true
1160
1160
  };
1161
1161
  fs.writeFileSync(activityPath, JSON.stringify(activity, null, 2), 'utf-8');
1162
- result.created.files.push('.@sparkleideas/claude-flow/metrics/swarm-activity.json');
1162
+ result.created.files.push('.claude-flow/metrics/swarm-activity.json');
1163
1163
  }
1164
1164
  // Create initial learning.json
1165
1165
  const learningPath = path.join(metricsDir, 'learning.json');
@@ -1182,7 +1182,7 @@ async function writeInitialMetrics(targetDir, options, result) {
1182
1182
  _note: 'Intelligence grows as you use Claude Flow'
1183
1183
  };
1184
1184
  fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
1185
- result.created.files.push('.@sparkleideas/claude-flow/metrics/learning.json');
1185
+ result.created.files.push('.claude-flow/metrics/learning.json');
1186
1186
  }
1187
1187
  // Create initial audit-status.json
1188
1188
  const auditPath = path.join(securityDir, 'audit-status.json');
@@ -1196,16 +1196,16 @@ async function writeInitialMetrics(targetDir, options, result) {
1196
1196
  _note: 'Run: npx @sparkleideas/cli@latest security scan'
1197
1197
  };
1198
1198
  fs.writeFileSync(auditPath, JSON.stringify(audit, null, 2), 'utf-8');
1199
- result.created.files.push('.@sparkleideas/claude-flow/security/audit-status.json');
1199
+ result.created.files.push('.claude-flow/security/audit-status.json');
1200
1200
  }
1201
1201
  }
1202
1202
  /**
1203
1203
  * Write CAPABILITIES.md - comprehensive overview of all Claude Flow features
1204
1204
  */
1205
1205
  async function writeCapabilitiesDoc(targetDir, options, result) {
1206
- const capabilitiesPath = path.join(targetDir, '.@sparkleideas/claude-flow', 'CAPABILITIES.md');
1206
+ const capabilitiesPath = path.join(targetDir, '.claude-flow', 'CAPABILITIES.md');
1207
1207
  if (fs.existsSync(capabilitiesPath) && !options.force) {
1208
- result.skipped.push('.@sparkleideas/claude-flow/CAPABILITIES.md');
1208
+ result.skipped.push('.claude-flow/CAPABILITIES.md');
1209
1209
  return;
1210
1210
  }
1211
1211
  const capabilities = `# RuFlo V3 - Complete Capabilities Reference
@@ -1596,7 +1596,7 @@ npx @sparkleideas/cli@latest hooks worker dispatch --trigger optimize
1596
1596
 
1597
1597
  ### File Structure
1598
1598
  \`\`\`
1599
- .@sparkleideas/claude-flow/
1599
+ .claude-flow/
1600
1600
  ├── config.yaml # Runtime configuration
1601
1601
  ├── CAPABILITIES.md # This file
1602
1602
  ├── data/ # Memory storage
@@ -1613,7 +1613,7 @@ npx @sparkleideas/cli@latest hooks worker dispatch --trigger optimize
1613
1613
  **Issues**: https://github.com/ruvnet/claude-flow/issues
1614
1614
  `;
1615
1615
  fs.writeFileSync(capabilitiesPath, capabilities, 'utf-8');
1616
- result.created.files.push('.@sparkleideas/claude-flow/CAPABILITIES.md');
1616
+ result.created.files.push('.claude-flow/CAPABILITIES.md');
1617
1617
  }
1618
1618
  /**
1619
1619
  * Write CLAUDE.md with swarm guidance
@@ -70,7 +70,7 @@ export function generateSessionManager() {
70
70
  const fs = require('fs');
71
71
  const path = require('path');
72
72
 
73
- const SESSION_DIR = path.join(process.cwd(), '.@sparkleideas/claude-flow', 'sessions');
73
+ const SESSION_DIR = path.join(process.cwd(), '.claude-flow', 'sessions');
74
74
  const SESSION_FILE = path.join(SESSION_DIR, 'current.json');
75
75
 
76
76
  const commands = {
@@ -275,7 +275,7 @@ export function generateMemoryHelper() {
275
275
  const fs = require('fs');
276
276
  const path = require('path');
277
277
 
278
- const MEMORY_DIR = path.join(process.cwd(), '.@sparkleideas/claude-flow', 'data');
278
+ const MEMORY_DIR = path.join(process.cwd(), '.claude-flow', 'data');
279
279
  const MEMORY_FILE = path.join(MEMORY_DIR, 'memory.json');
280
280
 
281
281
  function loadMemory() {
@@ -604,11 +604,11 @@ export function generateIntelligenceStub() {
604
604
  "const path = require('path');",
605
605
  "const os = require('os');",
606
606
  '',
607
- "const DATA_DIR = path.join(process.cwd(), '.@sparkleideas/claude-flow', 'data');",
607
+ "const DATA_DIR = path.join(process.cwd(), '.claude-flow', 'data');",
608
608
  "const STORE_PATH = path.join(DATA_DIR, 'auto-memory-store.json');",
609
609
  "const RANKED_PATH = path.join(DATA_DIR, 'ranked-context.json');",
610
610
  "const PENDING_PATH = path.join(DATA_DIR, 'pending-insights.jsonl');",
611
- "const SESSION_DIR = path.join(process.cwd(), '.@sparkleideas/claude-flow', 'sessions');",
611
+ "const SESSION_DIR = path.join(process.cwd(), '.claude-flow', 'sessions');",
612
612
  "const SESSION_FILE = path.join(SESSION_DIR, 'current.json');",
613
613
  '',
614
614
  'function ensureDir(dir) {',
@@ -652,7 +652,7 @@ export function generateIntelligenceStub() {
652
652
  ' var entries = [];',
653
653
  ' var candidates = [',
654
654
  ' path.join(os.homedir(), ".claude", "projects"),',
655
- ' path.join(process.cwd(), ".@sparkleideas/claude-flow", "memory"),',
655
+ ' path.join(process.cwd(), ".claude-flow", "memory"),',
656
656
  ' path.join(process.cwd(), ".claude", "memory"),',
657
657
  ' ];',
658
658
  ' for (var i = 0; i < candidates.length; i++) {',
@@ -816,7 +816,7 @@ import { fileURLToPath } from 'url';
816
816
  const __filename = fileURLToPath(import.meta.url);
817
817
  const __dirname = dirname(__filename);
818
818
  const PROJECT_ROOT = join(__dirname, '../..');
819
- const DATA_DIR = join(PROJECT_ROOT, '.@sparkleideas/claude-flow', 'data');
819
+ const DATA_DIR = join(PROJECT_ROOT, '.claude-flow', 'data');
820
820
  const STORE_PATH = join(DATA_DIR, 'auto-memory-store.json');
821
821
 
822
822
  const DIM = '\\x1b[2m';
@@ -918,7 +918,7 @@ param(
918
918
  )
919
919
 
920
920
  $ErrorActionPreference = 'SilentlyContinue'
921
- $ClaudeFlowDir = Join-Path $PWD '.@sparkleideas/claude-flow'
921
+ $ClaudeFlowDir = Join-Path $PWD '.claude-flow'
922
922
  $PidDir = Join-Path $ClaudeFlowDir 'pids'
923
923
 
924
924
  # Ensure directories exist
@@ -951,7 +951,7 @@ function Start-SwarmMonitor {
951
951
  Write-Host "Starting swarm monitor..." -ForegroundColor Cyan
952
952
  $process = Start-Process -FilePath 'node' -ArgumentList @(
953
953
  '-e',
954
- 'setInterval(() => { require("fs").writeFileSync(".@sparkleideas/claude-flow/metrics/swarm-activity.json", JSON.stringify({swarm:{active:true,agent_count:0},timestamp:Date.now()})) }, 5000)'
954
+ 'setInterval(() => { require("fs").writeFileSync(".claude-flow/metrics/swarm-activity.json", JSON.stringify({swarm:{active:true,agent_count:0},timestamp:Date.now()})) }, 5000)'
955
955
  ) -PassThru -WindowStyle Hidden
956
956
 
957
957
  $process.Id | Out-File $pidFile
@@ -1040,7 +1040,7 @@ const homeDir = os.homedir();
1040
1040
 
1041
1041
  // Get data directory based on platform
1042
1042
  function getDataDir() {
1043
- const localDir = path.join(process.cwd(), '.@sparkleideas/claude-flow', 'sessions');
1043
+ const localDir = path.join(process.cwd(), '.claude-flow', 'sessions');
1044
1044
  if (fs.existsSync(path.dirname(localDir))) {
1045
1045
  return localDir;
1046
1046
  }
@@ -1051,7 +1051,7 @@ function getDataDir() {
1051
1051
  case 'darwin':
1052
1052
  return path.join(homeDir, 'Library', 'Application Support', '@sparkleideas/claude-flow', 'sessions');
1053
1053
  default:
1054
- return path.join(homeDir, '.@sparkleideas/claude-flow', 'sessions');
1054
+ return path.join(homeDir, '.claude-flow', 'sessions');
1055
1055
  }
1056
1056
  }
1057
1057
 
@@ -202,10 +202,10 @@ function getModelName() {
202
202
  function getLearningStats() {
203
203
  const memoryPaths = [
204
204
  path.join(CWD, '.swarm', 'memory.db'),
205
- path.join(CWD, '.@sparkleideas/claude-flow', 'memory.db'),
205
+ path.join(CWD, '.claude-flow', 'memory.db'),
206
206
  path.join(CWD, '.claude', 'memory.db'),
207
207
  path.join(CWD, 'data', 'memory.db'),
208
- path.join(CWD, '.@sparkleideas/agentdb', 'memory.db'),
208
+ path.join(CWD, '.agentdb', 'memory.db'),
209
209
  ];
210
210
 
211
211
  for (const dbPath of memoryPaths) {
@@ -237,7 +237,7 @@ function getV3Progress() {
237
237
  const learning = getLearningStats();
238
238
  const totalDomains = 5;
239
239
 
240
- const dddData = readJSON(path.join(CWD, '.@sparkleideas/claude-flow', 'metrics', 'ddd-progress.json'));
240
+ const dddData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'ddd-progress.json'));
241
241
  let dddProgress = dddData ? (dddData.progress || 0) : 0;
242
242
  let domainsCompleted = Math.min(5, Math.floor(dddProgress / 20));
243
243
 
@@ -260,7 +260,7 @@ function getV3Progress() {
260
260
  // Security status (pure file reads)
261
261
  function getSecurityStatus() {
262
262
  const totalCves = 3;
263
- const auditData = readJSON(path.join(CWD, '.@sparkleideas/claude-flow', 'security', 'audit-status.json'));
263
+ const auditData = readJSON(path.join(CWD, '.claude-flow', 'security', 'audit-status.json'));
264
264
  if (auditData) {
265
265
  return {
266
266
  status: auditData.status || 'PENDING',
@@ -286,7 +286,7 @@ function getSecurityStatus() {
286
286
 
287
287
  // Swarm status (pure file reads, NO ps aux)
288
288
  function getSwarmStatus() {
289
- const activityData = readJSON(path.join(CWD, '.@sparkleideas/claude-flow', 'metrics', 'swarm-activity.json'));
289
+ const activityData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'swarm-activity.json'));
290
290
  if (activityData && activityData.swarm) {
291
291
  return {
292
292
  activeAgents: activityData.swarm.agent_count || 0,
@@ -295,7 +295,7 @@ function getSwarmStatus() {
295
295
  };
296
296
  }
297
297
 
298
- const progressData = readJSON(path.join(CWD, '.@sparkleideas/claude-flow', 'metrics', 'v3-progress.json'));
298
+ const progressData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'v3-progress.json'));
299
299
  if (progressData && progressData.swarm) {
300
300
  return {
301
301
  activeAgents: progressData.swarm.activeAgents || progressData.swarm.agent_count || 0,
@@ -314,7 +314,7 @@ function getSystemMetrics() {
314
314
  const @sparkleideas/agentdb = getAgentDBStats();
315
315
 
316
316
  // Intelligence from learning.json
317
- const learningData = readJSON(path.join(CWD, '.@sparkleideas/claude-flow', 'metrics', 'learning.json'));
317
+ const learningData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'learning.json'));
318
318
  let intelligencePct = 0;
319
319
  let contextPct = 0;
320
320
 
@@ -347,7 +347,7 @@ function getSystemMetrics() {
347
347
 
348
348
  // Sub-agents from file metrics (no ps aux)
349
349
  let subAgents = 0;
350
- const activityData = readJSON(path.join(CWD, '.@sparkleideas/claude-flow', 'metrics', 'swarm-activity.json'));
350
+ const activityData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'swarm-activity.json'));
351
351
  if (activityData && activityData.processes && activityData.processes.estimated_agents) {
352
352
  subAgents = activityData.processes.estimated_agents;
353
353
  }
@@ -357,7 +357,7 @@ function getSystemMetrics() {
357
357
 
358
358
  // ADR status (count files only — don't read contents)
359
359
  function getADRStatus() {
360
- const complianceData = readJSON(path.join(CWD, '.@sparkleideas/claude-flow', 'metrics', 'adr-compliance.json'));
360
+ const complianceData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'adr-compliance.json'));
361
361
  if (complianceData) {
362
362
  const checks = complianceData.checks || {};
363
363
  const total = Object.keys(checks).length;
@@ -369,7 +369,7 @@ function getADRStatus() {
369
369
  const adrPaths = [
370
370
  path.join(CWD, 'v3', 'implementation', 'adrs'),
371
371
  path.join(CWD, 'docs', 'adrs'),
372
- path.join(CWD, '.@sparkleideas/claude-flow', 'adrs'),
372
+ path.join(CWD, '.claude-flow', 'adrs'),
373
373
  ];
374
374
 
375
375
  for (const adrPath of adrPaths) {
@@ -421,7 +421,7 @@ function getAgentDBStats() {
421
421
 
422
422
  const dbFiles = [
423
423
  path.join(CWD, '.swarm', 'memory.db'),
424
- path.join(CWD, '.@sparkleideas/claude-flow', 'memory.db'),
424
+ path.join(CWD, '.claude-flow', 'memory.db'),
425
425
  path.join(CWD, '.claude', 'memory.db'),
426
426
  path.join(CWD, 'data', 'memory.db'),
427
427
  ];
@@ -438,9 +438,9 @@ function getAgentDBStats() {
438
438
 
439
439
  if (vectorCount === 0) {
440
440
  const dbDirs = [
441
- path.join(CWD, '.@sparkleideas/claude-flow', '@sparkleideas/agentdb'),
441
+ path.join(CWD, '.claude-flow', '@sparkleideas/agentdb'),
442
442
  path.join(CWD, '.swarm', '@sparkleideas/agentdb'),
443
- path.join(CWD, '.@sparkleideas/agentdb'),
443
+ path.join(CWD, '.agentdb'),
444
444
  ];
445
445
  for (const dir of dbDirs) {
446
446
  try {
@@ -460,7 +460,7 @@ function getAgentDBStats() {
460
460
 
461
461
  const hnswPaths = [
462
462
  path.join(CWD, '.swarm', 'hnsw.index'),
463
- path.join(CWD, '.@sparkleideas/claude-flow', 'hnsw.index'),
463
+ path.join(CWD, '.claude-flow', 'hnsw.index'),
464
464
  ];
465
465
  for (const p of hnswPaths) {
466
466
  const stat = safeStat(p);
@@ -529,7 +529,7 @@ function getIntegrationStatus() {
529
529
  }
530
530
  }
531
531
 
532
- const hasDatabase = ['.swarm/memory.db', '.@sparkleideas/claude-flow/memory.db', 'data/memory.db']
532
+ const hasDatabase = ['.swarm/memory.db', '.claude-flow/memory.db', 'data/memory.db']
533
533
  .some(p => fs.existsSync(path.join(CWD, p)));
534
534
  const hasApi = !!(process.env.ANTHROPIC_API_KEY || process.env.OPENAI_API_KEY);
535
535
 
@@ -538,7 +538,7 @@ function getIntegrationStatus() {
538
538
 
539
539
  // Session stats (pure file reads)
540
540
  function getSessionStats() {
541
- var sessionPaths = ['.@sparkleideas/claude-flow/session.json', '.claude/session.json'];
541
+ var sessionPaths = ['.claude-flow/session.json', '.claude/session.json'];
542
542
  for (var i = 0; i < sessionPaths.length; i++) {
543
543
  const data = readJSON(path.join(CWD, sessionPaths[i]));
544
544
  if (data && data.startTime) {
@@ -20,7 +20,7 @@ export interface InitComponents {
20
20
  statusline: boolean;
21
21
  /** Create MCP configuration */
22
22
  mcp: boolean;
23
- /** Create .@sparkleideas/claude-flow/ directory (V3 runtime) */
23
+ /** Create .claude-flow/ directory (V3 runtime) */
24
24
  runtime: boolean;
25
25
  /** Create CLAUDE.md with swarm guidance */
26
26
  claudeMd: boolean;
@@ -158,7 +158,7 @@ export interface MCPConfig {
158
158
  port: number;
159
159
  }
160
160
  /**
161
- * Runtime configuration (.@sparkleideas/claude-flow/)
161
+ * Runtime configuration (.claude-flow/)
162
162
  */
163
163
  export interface RuntimeConfig {
164
164
  /** Swarm topology */
@@ -7,7 +7,7 @@
7
7
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
8
8
  import { join } from 'node:path';
9
9
  // Storage paths
10
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
10
+ const STORAGE_DIR = '.claude-flow';
11
11
  const AGENT_DIR = 'agents';
12
12
  const AGENT_FILE = 'store.json';
13
13
  function getAgentDir() {
@@ -9,7 +9,7 @@
9
9
  // File-based persistence
10
10
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
11
11
  import { join, resolve } from 'path';
12
- const CLAIMS_DIR = '.@sparkleideas/claude-flow/claims';
12
+ const CLAIMS_DIR = '.claude-flow/claims';
13
13
  const CLAIMS_FILE = 'claims.json';
14
14
  function getClaimsPath() {
15
15
  return resolve(join(CLAIMS_DIR, CLAIMS_FILE));
@@ -6,7 +6,7 @@
6
6
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
8
  // Storage paths
9
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
9
+ const STORAGE_DIR = '.claude-flow';
10
10
  const CONFIG_FILE = 'config.json';
11
11
  const DEFAULT_CONFIG = {
12
12
  'swarm.topology': 'mesh',
@@ -11,7 +11,7 @@
11
11
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
12
12
  import { join } from 'node:path';
13
13
  // Storage paths
14
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
14
+ const STORAGE_DIR = '.claude-flow';
15
15
  const COORD_DIR = 'coordination';
16
16
  const COORD_FILE = 'store.json';
17
17
  function getCoordDir() {
@@ -11,7 +11,7 @@
11
11
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
12
12
  import { join } from 'node:path';
13
13
  // Storage paths
14
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
14
+ const STORAGE_DIR = '.claude-flow';
15
15
  const DAA_DIR = 'daa';
16
16
  const DAA_FILE = 'store.json';
17
17
  function getDAADir() {
@@ -7,7 +7,7 @@
7
7
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
8
8
  import { join, resolve } from 'path';
9
9
  // Configuration paths
10
- const CONFIG_DIR = '.@sparkleideas/claude-flow';
10
+ const CONFIG_DIR = '.claude-flow';
11
11
  const EMBEDDINGS_CONFIG = 'embeddings.json';
12
12
  const MODELS_DIR = 'models';
13
13
  function getConfigPath() {
@@ -11,7 +11,7 @@
11
11
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
12
12
  import { join } from 'node:path';
13
13
  // Storage paths
14
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
14
+ const STORAGE_DIR = '.claude-flow';
15
15
  const GITHUB_DIR = 'github';
16
16
  const GITHUB_FILE = 'store.json';
17
17
  function getGitHubDir() {
@@ -6,7 +6,7 @@
6
6
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
8
  // Storage paths
9
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
9
+ const STORAGE_DIR = '.claude-flow';
10
10
  const HIVE_DIR = 'hive-mind';
11
11
  const HIVE_FILE = 'state.json';
12
12
  function getHiveDir() {
@@ -50,7 +50,7 @@ function saveHiveState(state) {
50
50
  // Import agent store helpers for spawn functionality
51
51
  import { existsSync as agentStoreExists, readFileSync as readAgentStore, writeFileSync as writeAgentStore, mkdirSync as mkdirAgentStore } from 'node:fs';
52
52
  function loadAgentStore() {
53
- const storePath = join(process.cwd(), '.@sparkleideas/claude-flow', 'agents.json');
53
+ const storePath = join(process.cwd(), '.claude-flow', 'agents.json');
54
54
  try {
55
55
  if (agentStoreExists(storePath)) {
56
56
  return JSON.parse(readAgentStore(storePath, 'utf-8'));
@@ -60,7 +60,7 @@ function loadAgentStore() {
60
60
  return { agents: {} };
61
61
  }
62
62
  function saveAgentStore(store) {
63
- const storeDir = join(process.cwd(), '.@sparkleideas/claude-flow');
63
+ const storeDir = join(process.cwd(), '.claude-flow');
64
64
  if (!agentStoreExists(storeDir)) {
65
65
  mkdirAgentStore(storeDir, { recursive: true });
66
66
  }
@@ -279,7 +279,7 @@ async function getLoRAAdapter() {
279
279
  }
280
280
  // In-memory trajectory tracking (persisted on end)
281
281
  const activeTrajectories = new Map();
282
- const MEMORY_DIR = '.@sparkleideas/claude-flow/memory';
282
+ const MEMORY_DIR = '.claude-flow/memory';
283
283
  const MEMORY_FILE = 'store.json';
284
284
  function getMemoryPath() {
285
285
  return resolve(join(MEMORY_DIR, MEMORY_FILE));
@@ -12,7 +12,7 @@
12
12
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'fs';
13
13
  import { join, resolve } from 'path';
14
14
  // Paths
15
- const MEMORY_DIR = '.@sparkleideas/claude-flow/memory';
15
+ const MEMORY_DIR = '.claude-flow/memory';
16
16
  const LEGACY_MEMORY_FILE = 'store.json';
17
17
  const MIGRATION_MARKER = '.migrated-to-sqlite';
18
18
  function getMemoryDir() {
@@ -54,7 +54,7 @@ catch {
54
54
  // No embedding provider available, will use fallback
55
55
  }
56
56
  // Storage paths
57
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
57
+ const STORAGE_DIR = '.claude-flow';
58
58
  const NEURAL_DIR = 'neural';
59
59
  const MODELS_FILE = 'models.json';
60
60
  const PATTERNS_FILE = 'patterns.json';
@@ -15,7 +15,7 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
15
15
  import { join } from 'node:path';
16
16
  import * as os from 'node:os';
17
17
  // Storage paths
18
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
18
+ const STORAGE_DIR = '.claude-flow';
19
19
  const PERF_DIR = 'performance';
20
20
  const METRICS_FILE = 'metrics.json';
21
21
  const BENCHMARKS_FILE = 'benchmarks.json';
@@ -186,7 +186,7 @@ async function calculateProgress() {
186
186
  async function syncProgress() {
187
187
  const metrics = await calculateProgress();
188
188
  // Persist to file
189
- const metricsDir = join(PROJECT_ROOT, '.@sparkleideas/claude-flow/metrics');
189
+ const metricsDir = join(PROJECT_ROOT, '.claude-flow/metrics');
190
190
  if (!existsSync(metricsDir)) {
191
191
  mkdirSync(metricsDir, { recursive: true });
192
192
  }
@@ -6,7 +6,7 @@
6
6
  import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, unlinkSync, statSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
8
  // Storage paths
9
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
9
+ const STORAGE_DIR = '.claude-flow';
10
10
  const SESSION_DIR = 'sessions';
11
11
  function getSessionDir() {
12
12
  return join(process.cwd(), STORAGE_DIR, SESSION_DIR);
@@ -27,7 +27,7 @@ function getPackageVersion() {
27
27
  }
28
28
  const PKG_VERSION = getPackageVersion();
29
29
  // Storage paths
30
- const STORAGE_DIR = '.@sparkleideas/claude-flow';
30
+ const STORAGE_DIR = '.claude-flow';
31
31
  const SYSTEM_DIR = 'system';
32
32
  const METRICS_FILE = 'metrics.json';
33
33
  function getSystemDir() {
@@ -392,7 +392,7 @@ export const systemTools = [
392
392
  },
393
393
  handler: async () => {
394
394
  // Read from the task store file
395
- const storePath = join(process.cwd(), '.@sparkleideas/claude-flow', 'tasks', 'store.json');
395
+ const storePath = join(process.cwd(), '.claude-flow', 'tasks', 'store.json');
396
396
  let tasks = [];
397
397
  try {
398
398
  if (existsSync(storePath)) {