claude-flow 2.7.0-alpha → 2.7.0-alpha.10
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/README.md +2 -32
- package/bin/claude-flow +8 -8
- package/dist/src/cli/help-formatter.js +5 -0
- package/dist/src/cli/help-formatter.js.map +1 -1
- package/dist/src/cli/simple-cli.js +172 -182
- package/dist/src/cli/simple-cli.js.map +1 -1
- package/dist/src/cli/simple-commands/init/index.js +45 -0
- package/dist/src/cli/simple-commands/init/index.js.map +1 -1
- package/dist/src/cli/simple-commands/memory.js +183 -31
- package/dist/src/cli/simple-commands/memory.js.map +1 -1
- package/dist/src/cli/simple-commands/performance-metrics.js +231 -1
- package/dist/src/cli/simple-commands/performance-metrics.js.map +1 -1
- package/dist/src/cli/validation-helper.js.map +1 -1
- package/dist/src/core/version.js +1 -1
- package/dist/src/reasoningbank/reasoningbank-adapter.js +283 -0
- package/dist/src/reasoningbank/reasoningbank-adapter.js.map +1 -0
- package/dist/src/utils/metrics-reader.js +0 -10
- package/docker-test/.claude-flow/metrics/agent-metrics.json +1 -0
- package/docker-test/.claude-flow/metrics/performance.json +87 -0
- package/docker-test/.claude-flow/metrics/task-metrics.json +10 -0
- package/docker-test/Dockerfile.reasoningbank-test +21 -0
- package/docker-test/reasoningbank-validation.mjs +201 -0
- package/docs/.claude-flow/metrics/agent-metrics.json +1 -0
- package/docs/.claude-flow/metrics/performance.json +9 -0
- package/docs/.claude-flow/metrics/task-metrics.json +10 -0
- package/docs/CLI-MEMORY-COMMANDS-WORKING.md +150 -0
- package/docs/INDEX.md +36 -5
- package/docs/PERFORMANCE-JSON-IMPROVEMENTS.md +277 -0
- package/docs/PERFORMANCE-METRICS-GUIDE.md +259 -0
- package/docs/RELEASE-NOTES-v2.7.0-alpha.10.md +309 -0
- package/docs/RELEASE-NOTES-v2.7.0-alpha.9.md +208 -0
- package/docs/integrations/README.md +61 -0
- package/docs/{AGENTIC_FLOW_SECURITY_TEST_REPORT.md → integrations/agentic-flow/AGENTIC_FLOW_SECURITY_TEST_REPORT.md} +7 -7
- package/docs/integrations/reasoningbank/MIGRATION-v1.5.13.md +189 -0
- package/docs/integrations/reasoningbank/REASONINGBANK-INTEGRATION-STATUS.md +179 -0
- package/docs/integrations/reasoningbank/REASONINGBANK-STATUS.md +219 -0
- package/docs/reports/README.md +49 -0
- package/docs/reports/REASONINGBANK_STATUS_UPDATE_v2_7_0_alpha_7.md +366 -0
- package/docs/reports/validation/DOCKER-VALIDATION-REPORT-v2.7.0-alpha.7.md +361 -0
- package/docs/reports/validation/DOCKER_SQL_FALLBACK_VALIDATION.md +398 -0
- package/docs/{MEMORY_REDACTION_TEST_REPORT.md → reports/validation/MEMORY_REDACTION_TEST_REPORT.md} +7 -7
- package/docs/reports/validation/PROCESS-EXIT-FIX-v2.7.0-alpha.9.md +154 -0
- package/docs/reports/validation/REASONINGBANK-v1.5.13-VALIDATION.md +235 -0
- package/docs/reports/validation/SQL_FALLBACK_VALIDATION_REPORT.md +405 -0
- package/docs/reports/validation/VALIDATION-SUMMARY.md +192 -0
- package/docs/setup/MCP-SETUP-GUIDE.md +154 -0
- package/docs/technical/README.md +36 -0
- package/docs/technical/fixes/WASM-ESM-FIX-SUMMARY.md +114 -0
- package/package.json +6 -6
- package/src/cli/simple-commands/init/index.js +70 -0
- package/src/cli/simple-commands/memory.js +236 -34
- package/src/cli/simple-commands/performance-metrics.js +268 -2
- package/src/reasoningbank/reasoningbank-adapter.js +403 -0
- /package/docs/{AGENT-BOOSTER-INTEGRATION.md → integrations/agent-booster/AGENT-BOOSTER-INTEGRATION.md} +0 -0
- /package/docs/{AGENTIC-FLOW-INTEGRATION-GUIDE.md → integrations/agentic-flow/AGENTIC-FLOW-INTEGRATION-GUIDE.md} +0 -0
- /package/docs/{AGENTIC_FLOW_EXECUTION_FIX_REPORT.md → integrations/agentic-flow/AGENTIC_FLOW_EXECUTION_FIX_REPORT.md} +0 -0
- /package/docs/{AGENTIC_FLOW_INTEGRATION_STATUS.md → integrations/agentic-flow/AGENTIC_FLOW_INTEGRATION_STATUS.md} +0 -0
- /package/docs/{AGENTIC_FLOW_MVP_COMPLETE.md → integrations/agentic-flow/AGENTIC_FLOW_MVP_COMPLETE.md} +0 -0
- /package/docs/{epic-sdk-integration.md → integrations/epic-sdk/epic-sdk-integration.md} +0 -0
- /package/docs/{REASONING-AGENTS.md → integrations/reasoningbank/REASONING-AGENTS.md} +0 -0
- /package/docs/{REASONINGBANK-AGENT-CREATION-GUIDE.md → integrations/reasoningbank/REASONINGBANK-AGENT-CREATION-GUIDE.md} +0 -0
- /package/docs/{REASONINGBANK-ANALYSIS-COMPLETE.md → integrations/reasoningbank/REASONINGBANK-ANALYSIS-COMPLETE.md} +0 -0
- /package/docs/{REASONINGBANK-BENCHMARK-RESULTS.md → integrations/reasoningbank/REASONINGBANK-BENCHMARK-RESULTS.md} +0 -0
- /package/docs/{REASONINGBANK-BENCHMARK.md → integrations/reasoningbank/REASONINGBANK-BENCHMARK.md} +0 -0
- /package/docs/{REASONINGBANK-CLI-INTEGRATION.md → integrations/reasoningbank/REASONINGBANK-CLI-INTEGRATION.md} +0 -0
- /package/docs/{REASONINGBANK-CORE-INTEGRATION.md → integrations/reasoningbank/REASONINGBANK-CORE-INTEGRATION.md} +0 -0
- /package/docs/{REASONINGBANK-COST-OPTIMIZATION.md → integrations/reasoningbank/REASONINGBANK-COST-OPTIMIZATION.md} +0 -0
- /package/docs/{REASONINGBANK-DEMO.md → integrations/reasoningbank/REASONINGBANK-DEMO.md} +0 -0
- /package/docs/{REASONINGBANK-INTEGRATION-COMPLETE.md → integrations/reasoningbank/REASONINGBANK-INTEGRATION-COMPLETE.md} +0 -0
- /package/docs/{REASONINGBANK-VALIDATION.md → integrations/reasoningbank/REASONINGBANK-VALIDATION.md} +0 -0
- /package/docs/{REASONINGBANK_ARCHITECTURE.md → integrations/reasoningbank/REASONINGBANK_ARCHITECTURE.md} +0 -0
- /package/docs/{REASONINGBANK_INTEGRATION_COMPLETE.md → integrations/reasoningbank/REASONINGBANK_INTEGRATION_COMPLETE.md} +0 -0
- /package/docs/{REASONINGBANK_INTEGRATION_PLAN.md → integrations/reasoningbank/REASONINGBANK_INTEGRATION_PLAN.md} +0 -0
- /package/docs/{DEEP_REVIEW_COMPREHENSIVE_REPORT.md → reports/analysis/DEEP_REVIEW_COMPREHENSIVE_REPORT.md} +0 -0
- /package/docs/{REGRESSION-ANALYSIS-REPORT.md → reports/analysis/REGRESSION-ANALYSIS-REPORT.md} +0 -0
- /package/docs/{COMMIT_SUMMARY.md → reports/releases/COMMIT_SUMMARY.md} +0 -0
- /package/docs/{INTEGRATION_COMPLETE.md → reports/releases/INTEGRATION_COMPLETE.md} +0 -0
- /package/docs/{PRE_RELEASE_FIXES_REPORT.md → reports/releases/PRE_RELEASE_FIXES_REPORT.md} +0 -0
- /package/docs/{RELEASE_v2.6.0-alpha.2.md → reports/releases/RELEASE_v2.6.0-alpha.2.md} +0 -0
- /package/docs/{COMMAND-VERIFICATION-REPORT.md → reports/validation/COMMAND-VERIFICATION-REPORT.md} +0 -0
- /package/docs/{DOCKER-VALIDATION-REPORT.md → reports/validation/DOCKER-VALIDATION-REPORT.md} +0 -0
- /package/docs/{FINAL_PRE_PUBLISH_VALIDATION.md → reports/validation/FINAL_PRE_PUBLISH_VALIDATION.md} +0 -0
- /package/docs/{FINAL_VALIDATION_REPORT.md → reports/validation/FINAL_VALIDATION_REPORT.md} +0 -0
- /package/docs/{ENV-SETUP-GUIDE.md → setup/ENV-SETUP-GUIDE.md} +0 -0
- /package/docs/{HOOKS-V2-MODIFICATION.md → technical/fixes/HOOKS-V2-MODIFICATION.md} +0 -0
- /package/docs/{PERFORMANCE-SYSTEMS-STATUS.md → technical/performance/PERFORMANCE-SYSTEMS-STATUS.md} +0 -0
package/README.md
CHANGED
|
@@ -39,39 +39,9 @@
|
|
|
39
39
|
- 🛡️ **Safety**: Auto-adds `-i` to `rm` commands, detects sensitive keywords
|
|
40
40
|
- 📁 **Organization**: Auto-routes files (tests→`/tests/`, src→`/src/`)
|
|
41
41
|
- ⚡ **Productivity**: Alias expansion (`ll`→`ls -lah`), conventional commits
|
|
42
|
-
|
|
43
|
-
**Quick Start:**
|
|
44
|
-
|
|
45
|
-
**Option 1: Direct Plugin Installation** (Recommended)
|
|
46
|
-
```bash
|
|
47
|
-
# In Claude Code, run:
|
|
48
|
-
/plugin ruvnet/claude-flow
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**Option 2: Via NPM**
|
|
52
|
-
```bash
|
|
53
|
-
npx claude-flow@alpha init --force # Auto-configures .claude-plugin/hooks/hooks.json
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**Examples:**
|
|
57
|
-
```bash
|
|
58
|
-
rm test.txt → rm -i test.txt # Safety
|
|
59
|
-
test.js → src/test.js # Organization
|
|
60
|
-
git commit -m "fix" → [fix] fix + co-author # Commits
|
|
61
|
-
```
|
|
62
|
-
|
|
42
|
+
|
|
63
43
|
> 📚 **Docs**: [HOOKS-V2-MODIFICATION.md](./docs/HOOKS-V2-MODIFICATION.md) | **Plugin**: `.claude-plugin/` | **Composable** with `agent-booster`
|
|
64
|
-
|
|
65
|
-
## 🌐 **Flow Nexus Cloud Platform**
|
|
66
|
-
|
|
67
|
-
**NEW**: Claude-Flow v2.0.0 now includes **Flow Nexus integration** - a cloud-powered AI development platform featuring:
|
|
68
|
-
|
|
69
|
-
- **E2B Sandboxes**: Secure isolated environments for Node.js, Python, React, Next.js
|
|
70
|
-
- **AI Swarms**: Deploy multi-agent systems in cloud infrastructure
|
|
71
|
-
- **Neural Training**: Distributed machine learning with custom model deployment
|
|
72
|
-
- **Challenges & Marketplace**: Coding challenges with rUv credit rewards and template marketplace
|
|
73
|
-
- **Workflow Automation**: Event-driven automation with message queue processing
|
|
74
|
-
|
|
44
|
+
|
|
75
45
|
> 📚 **Complete documentation**: Visit [flow-nexus.ruv.io](https://flow-nexus.ruv.io) for comprehensive guides, tutorials, and API reference. Also see issue # https://github.com/ruvnet/claude-flow/issues/732
|
|
76
46
|
|
|
77
47
|
## ⚡ **Try v2.0.0 Alpha in 4 Commands**
|
package/bin/claude-flow
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# Claude-Flow Smart Dispatcher - Detects and uses the best available runtime
|
|
3
3
|
|
|
4
|
-
VERSION="2.7.0-alpha"
|
|
4
|
+
VERSION="2.7.0-alpha.10"
|
|
5
5
|
|
|
6
6
|
# Determine the correct path based on how the script is invoked
|
|
7
7
|
if [ -L "$0" ]; then
|
|
@@ -48,16 +48,16 @@ for arg in "$@"; do
|
|
|
48
48
|
fi
|
|
49
49
|
done
|
|
50
50
|
|
|
51
|
-
# Use Node.js with TypeScript support
|
|
51
|
+
# Use Node.js with TypeScript support and WASM modules enabled
|
|
52
52
|
if [ -f "$ROOT_DIR/src/cli/simple-cli.js" ]; then
|
|
53
|
-
# Use node for JavaScript version
|
|
54
|
-
exec node "$ROOT_DIR/src/cli/simple-cli.js" "$@"
|
|
53
|
+
# Use node for JavaScript version with WASM support
|
|
54
|
+
exec node --experimental-wasm-modules "$ROOT_DIR/src/cli/simple-cli.js" "$@"
|
|
55
55
|
elif command -v tsx >/dev/null 2>&1 && [ -f "$ROOT_DIR/src/cli/simple-cli.ts" ]; then
|
|
56
|
-
# Use tsx for TypeScript functionality
|
|
57
|
-
exec tsx "$ROOT_DIR/src/cli/simple-cli.ts" "$@"
|
|
56
|
+
# Use tsx for TypeScript functionality with WASM support
|
|
57
|
+
exec tsx --experimental-wasm-modules "$ROOT_DIR/src/cli/simple-cli.ts" "$@"
|
|
58
58
|
elif [ -f "$ROOT_DIR/src/cli/simple-cli.ts" ]; then
|
|
59
|
-
# Try to use npx tsx as fallback
|
|
60
|
-
exec npx tsx "$ROOT_DIR/src/cli/simple-cli.ts" "$@"
|
|
59
|
+
# Try to use npx tsx as fallback with WASM support
|
|
60
|
+
exec npx tsx --experimental-wasm-modules "$ROOT_DIR/src/cli/simple-cli.ts" "$@"
|
|
61
61
|
else
|
|
62
62
|
# No runtime available, show help
|
|
63
63
|
echo "🧠 Claude-Flow v$VERSION - Advanced AI Agent Orchestration System"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/help-formatter.
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/help-formatter.js"],"sourcesContent":["/**\n * Standardized CLI Help Formatter\n * Follows Unix/Linux conventions for help output\n */\n\nexport class HelpFormatter {\n static INDENT = ' ';\n static COLUMN_GAP = 2;\n static MIN_DESCRIPTION_COLUMN = 25;\n\n /**\n * Format main command help\n */\n static formatHelp(info) {\n const sections = [];\n\n // NAME section\n sections.push(this.formatSection('NAME', [`${info.name} - ${info.description}`]));\n\n // SYNOPSIS section\n if (info.usage) {\n sections.push(this.formatSection('SYNOPSIS', [info.usage]));\n }\n\n // COMMANDS section\n if (info.commands && info.commands.length > 0) {\n sections.push(this.formatSection('COMMANDS', this.formatCommands(info.commands)));\n }\n\n // OPTIONS section\n if (info.options && info.options.length > 0) {\n sections.push(this.formatSection('OPTIONS', this.formatOptions(info.options)));\n }\n\n // GLOBAL OPTIONS section\n if (info.globalOptions && info.globalOptions.length > 0) {\n sections.push(this.formatSection('GLOBAL OPTIONS', this.formatOptions(info.globalOptions)));\n }\n\n // EXAMPLES section\n if (info.examples && info.examples.length > 0) {\n sections.push(this.formatSection('EXAMPLES', info.examples));\n }\n\n // DETAILS section (additional information)\n if (info.details) {\n sections.push('\\n' + info.details);\n }\n\n // Footer\n if (info.commands && info.commands.length > 0) {\n sections.push(`Run '${info.name} <command> --help' for more information on a command.`);\n }\n\n return sections.join('\\n\\n');\n }\n\n /**\n * Format error message with usage hint\n */\n static formatError(error, command, usage) {\n const lines = [`Error: ${error}`, ''];\n\n if (usage) {\n lines.push(`Usage: ${usage}`);\n }\n\n lines.push(`Try '${command} --help' for more information.`);\n\n return lines.join('\\n');\n }\n\n /**\n * Format validation error with valid options\n */\n static formatValidationError(value, paramName, validOptions, command) {\n return this.formatError(\n `'${value}' is not a valid ${paramName}. Valid options are: ${validOptions.join(', ')}.`,\n command,\n );\n }\n\n static formatSection(title, content) {\n return `${title}\\n${content.map((line) => `${this.INDENT}${line}`).join('\\n')}`;\n }\n\n static formatCommands(commands) {\n const maxNameLength = Math.max(\n this.MIN_DESCRIPTION_COLUMN,\n ...commands.map((cmd) => {\n const nameLength = cmd.name.length;\n const aliasLength = cmd.aliases ? ` (${cmd.aliases.join(', ')})`.length : 0;\n return nameLength + aliasLength;\n }),\n );\n\n return commands.map((cmd) => {\n let name = cmd.name;\n if (cmd.aliases && cmd.aliases.length > 0) {\n name += ` (${cmd.aliases.join(', ')})`;\n }\n const padding = ' '.repeat(maxNameLength - name.length + this.COLUMN_GAP);\n return `${name}${padding}${cmd.description}`;\n });\n }\n\n static formatOptions(options) {\n const maxFlagsLength = Math.max(\n this.MIN_DESCRIPTION_COLUMN,\n ...options.map((opt) => opt.flags.length),\n );\n\n return options.map((opt) => {\n const padding = ' '.repeat(maxFlagsLength - opt.flags.length + this.COLUMN_GAP);\n let description = opt.description;\n\n // Add default value\n if (opt.defaultValue !== undefined) {\n description += ` [default: ${opt.defaultValue}]`;\n }\n\n // Add valid values on next line if present\n if (opt.validValues && opt.validValues.length > 0) {\n const validValuesLine =\n ' '.repeat(maxFlagsLength + this.COLUMN_GAP) + `Valid: ${opt.validValues.join(', ')}`;\n return `${opt.flags}${padding}${description}\\n${this.INDENT}${validValuesLine}`;\n }\n\n return `${opt.flags}${padding}${description}`;\n });\n }\n\n /**\n * Strip ANSI color codes and emojis from text\n */\n static stripFormatting(text) {\n // Remove ANSI color codes\n text = text.replace(/\\x1b\\[[0-9;]*m/g, '');\n\n // Remove common emojis used in the CLI\n const emojiPattern =\n /[\\u{1F300}-\\u{1F9FF}]|[\\u{2600}-\\u{27BF}]|[\\u{1F000}-\\u{1F6FF}]|[\\u{1F680}-\\u{1F6FF}]/gu;\n text = text.replace(emojiPattern, '').trim();\n\n // Remove multiple spaces\n text = text.replace(/\\s+/g, ' ');\n\n return text;\n }\n}\n"],"names":["HelpFormatter","INDENT","COLUMN_GAP","MIN_DESCRIPTION_COLUMN","formatHelp","info","sections","push","formatSection","name","description","usage","commands","length","formatCommands","options","formatOptions","globalOptions","examples","details","join","formatError","error","command","lines","formatValidationError","value","paramName","validOptions","title","content","map","line","maxNameLength","Math","max","cmd","nameLength","aliasLength","aliases","padding","repeat","maxFlagsLength","opt","flags","defaultValue","undefined","validValues","validValuesLine","stripFormatting","text","replace","emojiPattern","trim"],"mappings":"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"}AEgC,IAAIE,YAAY,CAAC,CAAC,CAAC;YAClD;YAGA,IAAIF,IAAII,WAAW,IAAIJ,IAAII,WAAW,CAACjC,MAAM,GAAG,GAAG;gBACjD,MAAMkC,kBACJ,IAAIP,MAAM,CAACC,iBAAiB,IAAI,CAACvC,UAAU,IAAI,CAAC,OAAO,EAAEwC,IAAII,WAAW,CAAC3B,IAAI,CAAC,OAAO;gBACvF,OAAO,GAAGuB,IAAIC,KAAK,GAAGJ,UAAU7B,YAAY,EAAE,EAAE,IAAI,CAACT,MAAM,GAAG8C,iBAAiB;YACjF;YAEA,OAAO,GAAGL,IAAIC,KAAK,GAAGJ,UAAU7B,aAAa;QAC/C;IACF;IAKA,OAAOsC,gBAAgBC,IAAY,EAAU;QAE3CA,OAAOA,KAAKC,OAAO,CAAC,mBAAmB;QAGvC,MAAMC,eACJ;QACFF,OAAOA,KAAKC,OAAO,CAACC,cAAc,IAAIC,IAAI;QAG1CH,OAAOA,KAAKC,OAAO,CAAC,QAAQ;QAE5B,OAAOD;IACT;AACF"}
|