claude-flow 2.7.14 → 2.7.16
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/bin/claude-flow +1 -1
- package/dist/src/cli/help-formatter.js.map +1 -1
- package/dist/src/cli/simple-cli.js +104 -0
- package/dist/src/cli/simple-cli.js.map +1 -1
- package/dist/src/cli/simple-commands/config.js +119 -137
- package/dist/src/cli/simple-commands/config.js.map +1 -1
- package/dist/src/cli/simple-commands/memory.js +9 -3
- package/dist/src/cli/simple-commands/memory.js.map +1 -1
- package/dist/src/cli/validation-helper.js.map +1 -1
- package/dist/src/memory/swarm-memory.js +340 -421
- package/dist/src/memory/swarm-memory.js.map +1 -1
- package/dist/src/reasoningbank/reasoningbank-adapter.js +15 -0
- package/dist/src/reasoningbank/reasoningbank-adapter.js.map +1 -1
- package/dist/src/utils/key-redactor.js.map +1 -1
- package/dist/src/utils/metrics-reader.js +41 -29
- package/dist/src/utils/metrics-reader.js.map +1 -1
- package/docs/AGENTIC_FLOW_INTEGRATION_REVIEW.md +593 -0
- package/docs/INTEGRATION_STATUS_FINAL.md +637 -0
- package/docs/LATEST_LIBRARIES_REVIEW.md +937 -0
- package/docs/MEMORY_COMMAND_FIX.md +289 -0
- package/docs/RELEASE_NOTES_v2.7.15.md +332 -0
- package/docs/SWARM_INITIALIZATION_GUIDE.md +302 -0
- package/docs/TOOL_VALIDATION_REPORT.md +666 -0
- package/docs/V2.7.14_RELEASE_NOTES.md +102 -0
- package/docs/VALIDATION_REPORT_v2.7.1.md +316 -0
- package/package.json +5 -8
- package/src/cli/simple-cli.js +5 -5
- package/src/cli/simple-commands/memory.js +13 -3
- package/src/reasoningbank/reasoningbank-adapter.js +21 -0
- /package/.claude/{null-settings.json → settings.json} +0 -0
package/bin/claude-flow
CHANGED
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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"}
|
|
@@ -2973,4 +2973,108 @@ if (import.meta.url === `file://${process.argv[1]}`) {
|
|
|
2973
2973
|
await main();
|
|
2974
2974
|
}
|
|
2975
2975
|
|
|
2976
|
+
//# sourceMappingURL=simple-cli.js.map sparc run spec-pseudocode "User profile management feature"
|
|
2977
|
+
|
|
2978
|
+
# 2. Design architecture
|
|
2979
|
+
npx claude-flow sparc run architect "Profile service architecture with data validation"
|
|
2980
|
+
|
|
2981
|
+
# 3. Implement with TDD
|
|
2982
|
+
npx claude-flow sparc tdd "user profile CRUD operations"
|
|
2983
|
+
|
|
2984
|
+
# 4. Security review
|
|
2985
|
+
npx claude-flow sparc run security-review "profile data access and validation"
|
|
2986
|
+
|
|
2987
|
+
# 5. Integration testing
|
|
2988
|
+
npx claude-flow sparc run integration "profile service with authentication system"
|
|
2989
|
+
|
|
2990
|
+
# 6. Documentation
|
|
2991
|
+
npx claude-flow sparc run docs-writer "profile service API documentation"
|
|
2992
|
+
\`\`\`
|
|
2993
|
+
|
|
2994
|
+
### Bug Fix Workflow
|
|
2995
|
+
\`\`\`bash
|
|
2996
|
+
# 1. Debug and analyze
|
|
2997
|
+
npx claude-flow sparc run debug "authentication token expiration issue"
|
|
2998
|
+
|
|
2999
|
+
# 2. Write regression tests
|
|
3000
|
+
npx claude-flow sparc run tdd "token refresh mechanism tests"
|
|
3001
|
+
|
|
3002
|
+
# 3. Implement fix
|
|
3003
|
+
npx claude-flow sparc run code "fix token refresh in authentication service"
|
|
3004
|
+
|
|
3005
|
+
# 4. Security review
|
|
3006
|
+
npx claude-flow sparc run security-review "token handling security implications"
|
|
3007
|
+
\`\`\`
|
|
3008
|
+
|
|
3009
|
+
## Configuration Files
|
|
3010
|
+
|
|
3011
|
+
### SPARC Configuration
|
|
3012
|
+
- **\`.roomodes\`**: SPARC mode definitions and configurations
|
|
3013
|
+
- **\`.roo/\`**: Templates, workflows, and mode-specific rules
|
|
3014
|
+
|
|
3015
|
+
### Claude-Flow Configuration
|
|
3016
|
+
- **\`memory/\`**: Persistent memory and session data
|
|
3017
|
+
- **\`coordination/\`**: Multi-agent coordination settings
|
|
3018
|
+
|
|
3019
|
+
## Git Workflow Integration
|
|
3020
|
+
|
|
3021
|
+
### Commit Strategy with SPARC
|
|
3022
|
+
- **Specification commits**: After completing requirements analysis
|
|
3023
|
+
- **Architecture commits**: After design phase completion
|
|
3024
|
+
- **TDD commits**: After each Red-Green-Refactor cycle
|
|
3025
|
+
- **Integration commits**: After successful component integration
|
|
3026
|
+
- **Documentation commits**: After completing documentation updates
|
|
3027
|
+
|
|
3028
|
+
### Branch Strategy
|
|
3029
|
+
- **\`feature/sparc-<feature-name>\`**: Feature development with SPARC methodology
|
|
3030
|
+
- **\`hotfix/sparc-<issue>\`**: Bug fixes using SPARC debugging workflow
|
|
3031
|
+
- **\`refactor/sparc-<component>\`**: Refactoring using optimization mode
|
|
3032
|
+
|
|
3033
|
+
## Troubleshooting
|
|
3034
|
+
|
|
3035
|
+
### Common SPARC Issues
|
|
3036
|
+
- **Mode not found**: Check \`.roomodes\` file exists and is valid JSON
|
|
3037
|
+
- **Memory persistence**: Ensure \`memory/\` directory has write permissions
|
|
3038
|
+
- **Tool access**: Verify required tools are available for the selected mode
|
|
3039
|
+
- **Namespace conflicts**: Use unique memory namespaces for different features
|
|
3040
|
+
|
|
3041
|
+
### Debug Commands
|
|
3042
|
+
\`\`\`bash
|
|
3043
|
+
# Check SPARC configuration
|
|
3044
|
+
npx claude-flow sparc modes
|
|
3045
|
+
|
|
3046
|
+
# Verify memory system
|
|
3047
|
+
npx claude-flow memory stats
|
|
3048
|
+
|
|
3049
|
+
# Check system status
|
|
3050
|
+
npx claude-flow status
|
|
3051
|
+
|
|
3052
|
+
# View detailed mode information
|
|
3053
|
+
npx claude-flow sparc info <mode-name>
|
|
3054
|
+
\`\`\`
|
|
3055
|
+
|
|
3056
|
+
## Project Architecture
|
|
3057
|
+
|
|
3058
|
+
This SPARC-enabled project follows a systematic development approach:
|
|
3059
|
+
- **Clear separation of concerns** through modular design
|
|
3060
|
+
- **Test-driven development** ensuring reliability and maintainability
|
|
3061
|
+
- **Iterative refinement** for continuous improvement
|
|
3062
|
+
- **Comprehensive documentation** for team collaboration
|
|
3063
|
+
- **AI-assisted development** through specialized SPARC modes
|
|
3064
|
+
|
|
3065
|
+
## Important Notes
|
|
3066
|
+
|
|
3067
|
+
- Always run tests before committing (\`npm run test\`)
|
|
3068
|
+
- Use SPARC memory system to maintain context across sessions
|
|
3069
|
+
- Follow the Red-Green-Refactor cycle during TDD phases
|
|
3070
|
+
- Document architectural decisions in memory for future reference
|
|
3071
|
+
- Regular security reviews for any authentication or data handling code
|
|
3072
|
+
|
|
3073
|
+
For more information about SPARC methodology, see: https://github.com/ruvnet/claude-code-flow/docs/sparc.md
|
|
3074
|
+
`;
|
|
3075
|
+
}
|
|
3076
|
+
if (isMainModule(import.meta.url)) {
|
|
3077
|
+
await main();
|
|
3078
|
+
}
|
|
3079
|
+
|
|
2976
3080
|
//# sourceMappingURL=simple-cli.js.map
|