claude-flow 2.7.0-alpha.1 → 2.7.0-alpha.11
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/.claude/settings.reasoningbank-example.json +124 -0
- package/.claude/settings.reasoningbank-minimal.json +40 -0
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +166 -0
- package/.claude/skills/agentdb-vector-search/SKILL.md +126 -0
- package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/.claude/skills/github-code-review/SKILL.md +1140 -0
- package/.claude/skills/github-multi-repo/SKILL.md +874 -0
- package/.claude/skills/github-project-management/SKILL.md +1277 -0
- package/.claude/skills/github-release-management/SKILL.md +1081 -0
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
- package/.claude/skills/hooks-automation/SKILL.md +1201 -0
- package/.claude/skills/pair-programming/SKILL.md +1202 -0
- package/.claude/skills/performance-analysis/SKILL.md +563 -0
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/.claude/skills/skill-builder/SKILL.md +910 -0
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
- package/.claude/skills/stream-chain/SKILL.md +563 -0
- package/.claude/skills/swarm-advanced/SKILL.md +973 -0
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
- package/.claude/skills/verification-quality/SKILL.md +649 -0
- package/.claude/test-reasoningbank-hooks.sh +99 -0
- package/CHANGELOG.md +304 -0
- package/README.md +231 -221
- package/bin/claude-flow +8 -8
- 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/config.js +257 -115
- package/dist/src/cli/simple-commands/config.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 +64 -19
- 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 +260 -121
- 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 +29 -41
- package/dist/src/utils/metrics-reader.js.map +1 -1
- 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/COMMANDS_TO_SKILLS_MIGRATION.md +382 -0
- package/docs/FINAL_INIT_STRUCTURE.md +320 -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-STATUS.md +219 -0
- package/docs/reasoningbank/CLAUDE-CODE-INTEGRATION.md +563 -0
- package/docs/reasoningbank/EXAMPLES.md +611 -0
- package/docs/reasoningbank/README.md +1139 -0
- package/docs/reasoningbank/agentic-flow-integration.md +800 -0
- package/docs/reasoningbank/architecture.md +680 -0
- package/docs/reasoningbank/google-research.md +1017 -0
- package/docs/reasoningbank/models/.claude-flow/metrics/agent-metrics.json +1 -0
- package/docs/reasoningbank/models/.claude-flow/metrics/performance.json +87 -0
- package/docs/reasoningbank/models/.claude-flow/metrics/task-metrics.json +10 -0
- package/docs/reasoningbank/models/HOW-TO-TRAIN.md +537 -0
- package/docs/reasoningbank/models/HOW-TO-USE.md +655 -0
- package/docs/reasoningbank/models/INDEX.md +276 -0
- package/docs/reasoningbank/models/README.md +345 -0
- package/docs/reasoningbank/models/_docs/COMPATIBILITY.md +448 -0
- package/docs/reasoningbank/models/_docs/COMPLETION-SUMMARY.md +478 -0
- package/docs/reasoningbank/models/_docs/README.md +80 -0
- package/docs/reasoningbank/models/_docs/SCHEMA-UPDATE-SUMMARY.md +376 -0
- package/docs/reasoningbank/models/_docs/VERIFICATION-COMPLETE.md +370 -0
- package/docs/reasoningbank/models/_scripts/README.md +270 -0
- package/docs/reasoningbank/models/_scripts/benchmark-all.cjs +407 -0
- package/docs/reasoningbank/models/_scripts/fix-schema-compatibility.cjs +300 -0
- package/docs/reasoningbank/models/_scripts/schema-validator.cjs +360 -0
- package/docs/reasoningbank/models/_scripts/training-coordinator.cjs +85 -0
- package/docs/reasoningbank/models/_scripts/validation-suite.cjs +239 -0
- package/docs/reasoningbank/models/benchmark-output.log +41 -0
- package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/agent-metrics.json +1 -0
- package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/performance.json +87 -0
- package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/task-metrics.json +18 -0
- package/docs/reasoningbank/models/code-reasoning/.swarm/SCHEMA-FIX-REPORT.md +69 -0
- package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db +0 -0
- package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db.backup +0 -0
- package/docs/reasoningbank/models/code-reasoning/README.md +451 -0
- package/docs/reasoningbank/models/code-reasoning/TRAINING-SUMMARY.md +416 -0
- package/docs/reasoningbank/models/code-reasoning/train-code.js +2059 -0
- package/docs/reasoningbank/models/code-reasoning/training.log +18 -0
- package/docs/reasoningbank/models/code-reasoning/validation-report.md +349 -0
- package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/agent-metrics.json +1 -0
- package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/performance.json +87 -0
- package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/task-metrics.json +18 -0
- package/docs/reasoningbank/models/domain-expert/COMPLETION-REPORT.md +451 -0
- package/docs/reasoningbank/models/domain-expert/INDEX.md +182 -0
- package/docs/reasoningbank/models/domain-expert/README.md +215 -0
- package/docs/reasoningbank/models/domain-expert/SCHEMA-FIX-REPORT.md +65 -0
- package/docs/reasoningbank/models/domain-expert/SUMMARY.md +286 -0
- package/docs/reasoningbank/models/domain-expert/USAGE.md +394 -0
- package/docs/reasoningbank/models/domain-expert/demo-queries.sh +42 -0
- package/docs/reasoningbank/models/domain-expert/memory.db +0 -0
- package/docs/reasoningbank/models/domain-expert/train-domain.js +1324 -0
- package/docs/reasoningbank/models/domain-expert/validate.js +218 -0
- package/docs/reasoningbank/models/domain-expert/validation-report.md +89 -0
- package/docs/reasoningbank/models/google-research/README.md +455 -0
- package/docs/reasoningbank/models/google-research/SCHEMA-FIX-REPORT.md +65 -0
- package/docs/reasoningbank/models/google-research/memory.db +0 -0
- package/docs/reasoningbank/models/google-research/memory.db.backup +0 -0
- package/docs/reasoningbank/models/google-research/train-google.js +697 -0
- package/docs/reasoningbank/models/google-research/validation-report.md +99 -0
- package/docs/reasoningbank/models/google-research/validation-suite.js +323 -0
- package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/agent-metrics.json +1 -0
- package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/performance.json +87 -0
- package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/task-metrics.json +10 -0
- package/docs/reasoningbank/models/problem-solving/.swarm/memory.db +0 -0
- package/docs/reasoningbank/models/problem-solving/README.md +629 -0
- package/docs/reasoningbank/models/problem-solving/SCHEMA-FIX-REPORT.md +66 -0
- package/docs/reasoningbank/models/problem-solving/TRAINING_SUMMARY.md +524 -0
- package/docs/reasoningbank/models/problem-solving/memory.db +0 -0
- package/docs/reasoningbank/models/problem-solving/memory.db.backup +0 -0
- package/docs/reasoningbank/models/problem-solving/train-problem.js +1319 -0
- package/docs/reasoningbank/models/problem-solving/validation-report.md +300 -0
- package/docs/reasoningbank/models/safla/.claude-flow/metrics/agent-metrics.json +1 -0
- package/docs/reasoningbank/models/safla/.claude-flow/metrics/performance.json +87 -0
- package/docs/reasoningbank/models/safla/.claude-flow/metrics/task-metrics.json +10 -0
- package/docs/reasoningbank/models/safla/CHEATSHEET.md +277 -0
- package/docs/reasoningbank/models/safla/COMPLETION_REPORT.txt +108 -0
- package/docs/reasoningbank/models/safla/MANIFEST.txt +104 -0
- package/docs/reasoningbank/models/safla/QUICKSTART.md +349 -0
- package/docs/reasoningbank/models/safla/README.md +457 -0
- package/docs/reasoningbank/models/safla/SCHEMA-FIX-REPORT.md +68 -0
- package/docs/reasoningbank/models/safla/TRAINING_SUMMARY.md +383 -0
- package/docs/reasoningbank/models/safla/memory/memory-store.json +11 -0
- package/docs/reasoningbank/models/safla/memory.db +0 -0
- package/docs/reasoningbank/models/safla/memory.db.backup +0 -0
- package/docs/reasoningbank/models/safla/node_modules/.package-lock.json +456 -0
- package/docs/reasoningbank/models/safla/node_modules/base64-js/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/base64-js/README.md +34 -0
- package/docs/reasoningbank/models/safla/node_modules/base64-js/base64js.min.js +1 -0
- package/docs/reasoningbank/models/safla/node_modules/base64-js/index.d.ts +3 -0
- package/docs/reasoningbank/models/safla/node_modules/base64-js/index.js +150 -0
- package/docs/reasoningbank/models/safla/node_modules/base64-js/package.json +47 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/README.md +99 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/binding.gyp +38 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/common.gypi +68 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/copy.js +31 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/defines.gypi +41 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/download.sh +122 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +261480 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13715 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +719 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/test_extension.c +21 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/database.js +90 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/index.js +3 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/function.js +31 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/table.js +189 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/util.js +12 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/package.json +54 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.cpp +2186 -0
- package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
- package/docs/reasoningbank/models/safla/node_modules/bindings/LICENSE.md +22 -0
- package/docs/reasoningbank/models/safla/node_modules/bindings/README.md +98 -0
- package/docs/reasoningbank/models/safla/node_modules/bindings/bindings.js +221 -0
- package/docs/reasoningbank/models/safla/node_modules/bindings/package.json +28 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/.travis.yml +17 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/BufferList.js +396 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/LICENSE.md +13 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/README.md +247 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/bl.js +84 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/package.json +37 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/test/convert.js +21 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/test/indexOf.js +492 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/test/isBufferList.js +32 -0
- package/docs/reasoningbank/models/safla/node_modules/bl/test/test.js +869 -0
- package/docs/reasoningbank/models/safla/node_modules/buffer/AUTHORS.md +70 -0
- package/docs/reasoningbank/models/safla/node_modules/buffer/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/buffer/README.md +410 -0
- package/docs/reasoningbank/models/safla/node_modules/buffer/index.d.ts +186 -0
- package/docs/reasoningbank/models/safla/node_modules/buffer/index.js +1817 -0
- package/docs/reasoningbank/models/safla/node_modules/buffer/package.json +96 -0
- package/docs/reasoningbank/models/safla/node_modules/chownr/LICENSE +15 -0
- package/docs/reasoningbank/models/safla/node_modules/chownr/README.md +3 -0
- package/docs/reasoningbank/models/safla/node_modules/chownr/chownr.js +167 -0
- package/docs/reasoningbank/models/safla/node_modules/chownr/package.json +29 -0
- package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.d.ts +22 -0
- package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.js +58 -0
- package/docs/reasoningbank/models/safla/node_modules/decompress-response/license +9 -0
- package/docs/reasoningbank/models/safla/node_modules/decompress-response/package.json +56 -0
- package/docs/reasoningbank/models/safla/node_modules/decompress-response/readme.md +48 -0
- package/docs/reasoningbank/models/safla/node_modules/deep-extend/CHANGELOG.md +46 -0
- package/docs/reasoningbank/models/safla/node_modules/deep-extend/LICENSE +20 -0
- package/docs/reasoningbank/models/safla/node_modules/deep-extend/README.md +91 -0
- package/docs/reasoningbank/models/safla/node_modules/deep-extend/index.js +1 -0
- package/docs/reasoningbank/models/safla/node_modules/deep-extend/lib/deep-extend.js +150 -0
- package/docs/reasoningbank/models/safla/node_modules/deep-extend/package.json +62 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/LICENSE +201 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/README.md +163 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/index.d.ts +14 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/detect-libc.js +313 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/elf.js +39 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/filesystem.js +51 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/process.js +24 -0
- package/docs/reasoningbank/models/safla/node_modules/detect-libc/package.json +44 -0
- package/docs/reasoningbank/models/safla/node_modules/end-of-stream/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/end-of-stream/README.md +54 -0
- package/docs/reasoningbank/models/safla/node_modules/end-of-stream/index.js +96 -0
- package/docs/reasoningbank/models/safla/node_modules/end-of-stream/package.json +37 -0
- package/docs/reasoningbank/models/safla/node_modules/expand-template/.travis.yml +6 -0
- package/docs/reasoningbank/models/safla/node_modules/expand-template/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/expand-template/README.md +43 -0
- package/docs/reasoningbank/models/safla/node_modules/expand-template/index.js +26 -0
- package/docs/reasoningbank/models/safla/node_modules/expand-template/package.json +29 -0
- package/docs/reasoningbank/models/safla/node_modules/expand-template/test.js +67 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/.travis.yml +30 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/History.md +21 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/LICENSE +20 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/README.md +74 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.d.ts +2 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.js +66 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/package.json +32 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/test.js +24 -0
- package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/tests.json +13 -0
- package/docs/reasoningbank/models/safla/node_modules/fs-constants/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/fs-constants/README.md +26 -0
- package/docs/reasoningbank/models/safla/node_modules/fs-constants/browser.js +1 -0
- package/docs/reasoningbank/models/safla/node_modules/fs-constants/index.js +1 -0
- package/docs/reasoningbank/models/safla/node_modules/fs-constants/package.json +19 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/.travis.yml +4 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/LICENSE +18 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/package.json +8 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/url.js +3 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/index.js +17 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/package.json +30 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/readme.markdown +53 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/a.json +8 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/b.json +5 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/c.json +5 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/d.json +7 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/e.json +5 -0
- package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/url.js +19 -0
- package/docs/reasoningbank/models/safla/node_modules/ieee754/LICENSE +11 -0
- package/docs/reasoningbank/models/safla/node_modules/ieee754/README.md +51 -0
- package/docs/reasoningbank/models/safla/node_modules/ieee754/index.d.ts +10 -0
- package/docs/reasoningbank/models/safla/node_modules/ieee754/index.js +85 -0
- package/docs/reasoningbank/models/safla/node_modules/ieee754/package.json +52 -0
- package/docs/reasoningbank/models/safla/node_modules/inherits/LICENSE +16 -0
- package/docs/reasoningbank/models/safla/node_modules/inherits/README.md +42 -0
- package/docs/reasoningbank/models/safla/node_modules/inherits/inherits.js +9 -0
- package/docs/reasoningbank/models/safla/node_modules/inherits/inherits_browser.js +27 -0
- package/docs/reasoningbank/models/safla/node_modules/inherits/package.json +29 -0
- package/docs/reasoningbank/models/safla/node_modules/ini/LICENSE +15 -0
- package/docs/reasoningbank/models/safla/node_modules/ini/README.md +102 -0
- package/docs/reasoningbank/models/safla/node_modules/ini/ini.js +206 -0
- package/docs/reasoningbank/models/safla/node_modules/ini/package.json +33 -0
- package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.d.ts +17 -0
- package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.js +77 -0
- package/docs/reasoningbank/models/safla/node_modules/mimic-response/license +9 -0
- package/docs/reasoningbank/models/safla/node_modules/mimic-response/package.json +42 -0
- package/docs/reasoningbank/models/safla/node_modules/mimic-response/readme.md +78 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/.eslintrc +29 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/.github/FUNDING.yml +12 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/.nycrc +14 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/CHANGELOG.md +298 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/LICENSE +18 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/README.md +121 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/example/parse.js +4 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/index.js +263 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/package.json +75 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/all_bool.js +34 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/bool.js +177 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/dash.js +43 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/default_bool.js +37 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/dotted.js +24 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/kv_short.js +32 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/long.js +33 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/num.js +38 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse.js +209 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse_modified.js +11 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/proto.js +64 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/short.js +69 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/stop_early.js +17 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/unknown.js +104 -0
- package/docs/reasoningbank/models/safla/node_modules/minimist/test/whitespace.js +10 -0
- package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/README.md +18 -0
- package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/index.js +98 -0
- package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/package.json +18 -0
- package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
- package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/README.md +52 -0
- package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.js +214 -0
- package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.md +0 -0
- package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/package.json +42 -0
- package/docs/reasoningbank/models/safla/node_modules/node-abi/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/node-abi/README.md +54 -0
- package/docs/reasoningbank/models/safla/node_modules/node-abi/abi_registry.json +408 -0
- package/docs/reasoningbank/models/safla/node_modules/node-abi/index.js +179 -0
- package/docs/reasoningbank/models/safla/node_modules/node-abi/package.json +45 -0
- package/docs/reasoningbank/models/safla/node_modules/once/LICENSE +15 -0
- package/docs/reasoningbank/models/safla/node_modules/once/README.md +79 -0
- package/docs/reasoningbank/models/safla/node_modules/once/once.js +42 -0
- package/docs/reasoningbank/models/safla/node_modules/once/package.json +33 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CHANGELOG.md +131 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/README.md +163 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/asset.js +44 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/bin.js +78 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/download.js +142 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/error.js +14 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/help.txt +16 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/index.js +1 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/log.js +33 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/package.json +67 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/proxy.js +35 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/rc.js +64 -0
- package/docs/reasoningbank/models/safla/node_modules/prebuild-install/util.js +143 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/.github/FUNDING.yml +2 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/.travis.yml +5 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/README.md +74 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/SECURITY.md +5 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/index.js +86 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/package.json +24 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/test-browser.js +66 -0
- package/docs/reasoningbank/models/safla/node_modules/pump/test-node.js +53 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.APACHE2 +15 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.BSD +26 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.MIT +24 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/README.md +227 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/browser.js +7 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/cli.js +4 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/index.js +53 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/lib/utils.js +104 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/package.json +29 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/test/ini.js +16 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/test/nested-env-vars.js +50 -0
- package/docs/reasoningbank/models/safla/node_modules/rc/test/test.js +59 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/CONTRIBUTING.md +38 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/GOVERNANCE.md +136 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/LICENSE +47 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/README.md +106 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors-browser.js +127 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors.js +116 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/experimentalWarning.js +17 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_transform.js +190 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_writable.js +641 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/package.json +68 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable-browser.js +9 -0
- package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable.js +16 -0
- package/docs/reasoningbank/models/safla/node_modules/safe-buffer/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/safe-buffer/README.md +584 -0
- package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.d.ts +187 -0
- package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.js +65 -0
- package/docs/reasoningbank/models/safla/node_modules/safe-buffer/package.json +51 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/LICENSE +15 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/README.md +664 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/bin/semver.js +191 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/classes/comparator.js +143 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/classes/index.js +7 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/classes/range.js +557 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/classes/semver.js +333 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/clean.js +8 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/cmp.js +54 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/coerce.js +62 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-build.js +9 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-loose.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare.js +7 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/diff.js +60 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/eq.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/gt.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/gte.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/inc.js +21 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/lt.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/lte.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/major.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/minor.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/neq.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/parse.js +18 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/patch.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/prerelease.js +8 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/rcompare.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/rsort.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/satisfies.js +12 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/sort.js +5 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/functions/valid.js +8 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/index.js +91 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/internal/constants.js +37 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/internal/debug.js +11 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/internal/identifiers.js +29 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/internal/lrucache.js +42 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/internal/parse-options.js +17 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/internal/re.js +223 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/package.json +78 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/preload.js +4 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/range.bnf +16 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/gtr.js +6 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/intersects.js +9 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/ltr.js +6 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/max-satisfying.js +27 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-satisfying.js +26 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-version.js +63 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/outside.js +82 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/simplify.js +49 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/subset.js +249 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/to-comparators.js +10 -0
- package/docs/reasoningbank/models/safla/node_modules/semver/ranges/valid.js +13 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-concat/.travis.yml +3 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-concat/LICENSE +20 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-concat/README.md +44 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-concat/index.js +15 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-concat/package.json +47 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-concat/test/basic.js +41 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/dependabot.yml +15 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/workflows/ci.yml +23 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-get/LICENSE +20 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-get/README.md +333 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-get/index.js +108 -0
- package/docs/reasoningbank/models/safla/node_modules/simple-get/package.json +67 -0
- package/docs/reasoningbank/models/safla/node_modules/string_decoder/LICENSE +48 -0
- package/docs/reasoningbank/models/safla/node_modules/string_decoder/README.md +47 -0
- package/docs/reasoningbank/models/safla/node_modules/string_decoder/lib/string_decoder.js +296 -0
- package/docs/reasoningbank/models/safla/node_modules/string_decoder/package.json +34 -0
- package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/index.js +70 -0
- package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/license +21 -0
- package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/package.json +42 -0
- package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/readme.md +64 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/.travis.yml +6 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/README.md +165 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/index.js +363 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/package.json +41 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/file +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/index.js +346 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/LICENSE +21 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/README.md +168 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/extract.js +257 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/headers.js +295 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/index.js +2 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/pack.js +255 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/package.json +58 -0
- package/docs/reasoningbank/models/safla/node_modules/tar-stream/sandbox.js +11 -0
- package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/LICENSE +55 -0
- package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/README.md +4 -0
- package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/index.js +244 -0
- package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/package.json +22 -0
- package/docs/reasoningbank/models/safla/node_modules/util-deprecate/History.md +16 -0
- package/docs/reasoningbank/models/safla/node_modules/util-deprecate/LICENSE +24 -0
- package/docs/reasoningbank/models/safla/node_modules/util-deprecate/README.md +53 -0
- package/docs/reasoningbank/models/safla/node_modules/util-deprecate/browser.js +67 -0
- package/docs/reasoningbank/models/safla/node_modules/util-deprecate/node.js +6 -0
- package/docs/reasoningbank/models/safla/node_modules/util-deprecate/package.json +27 -0
- package/docs/reasoningbank/models/safla/node_modules/wrappy/LICENSE +15 -0
- package/docs/reasoningbank/models/safla/node_modules/wrappy/README.md +36 -0
- package/docs/reasoningbank/models/safla/node_modules/wrappy/package.json +29 -0
- package/docs/reasoningbank/models/safla/node_modules/wrappy/wrappy.js +33 -0
- package/docs/reasoningbank/models/safla/package-lock.json +463 -0
- package/docs/reasoningbank/models/safla/package.json +14 -0
- package/docs/reasoningbank/models/safla/train-safla.js +524 -0
- package/docs/reasoningbank/models/safla/training.log +64 -0
- package/docs/reasoningbank/models/safla/validate-safla.js +449 -0
- package/docs/reasoningbank/models/safla/validation-report.md +115 -0
- package/docs/reasoningbank/models/safla/validation-results.json +189 -0
- package/docs/reasoningbank/tutorial-advanced.md +869 -0
- package/docs/reasoningbank/tutorial-basic.md +626 -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/skills/skills-tutorial.md +2910 -0
- package/docs/technical/README.md +36 -0
- package/docs/technical/fixes/WASM-ESM-FIX-SUMMARY.md +114 -0
- package/package.json +7 -6
- package/src/cli/simple-commands/init/index.js +85 -0
- package/src/cli/simple-commands/init/skills-copier.js +197 -0
- package/src/cli/simple-commands/memory.js +89 -21
- package/src/cli/simple-commands/performance-metrics.js +268 -2
- package/src/reasoningbank/reasoningbank-adapter.js +360 -148
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/analysis/bottleneck-detect.md +0 -162
- package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
- package/.claude/commands/analysis/performance-report.md +0 -25
- package/.claude/commands/flow-nexus/app-store.md +0 -124
- package/.claude/commands/flow-nexus/challenges.md +0 -120
- package/.claude/commands/flow-nexus/login-registration.md +0 -65
- package/.claude/commands/flow-nexus/neural-network.md +0 -134
- package/.claude/commands/flow-nexus/payments.md +0 -116
- package/.claude/commands/flow-nexus/sandbox.md +0 -83
- package/.claude/commands/flow-nexus/swarm.md +0 -87
- package/.claude/commands/flow-nexus/user-tools.md +0 -152
- package/.claude/commands/flow-nexus/workflow.md +0 -115
- package/.claude/commands/github/code-review-swarm.md +0 -514
- package/.claude/commands/github/github-modes.md +0 -147
- package/.claude/commands/github/issue-tracker.md +0 -292
- package/.claude/commands/github/multi-repo-swarm.md +0 -519
- package/.claude/commands/github/pr-manager.md +0 -170
- package/.claude/commands/github/project-board-sync.md +0 -471
- package/.claude/commands/github/release-manager.md +0 -338
- package/.claude/commands/github/release-swarm.md +0 -544
- package/.claude/commands/github/repo-architect.md +0 -367
- package/.claude/commands/github/swarm-issue.md +0 -482
- package/.claude/commands/github/swarm-pr.md +0 -285
- package/.claude/commands/github/sync-coordinator.md +0 -301
- package/.claude/commands/github/workflow-automation.md +0 -442
- package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
- package/.claude/commands/hive-mind/hive-mind.md +0 -27
- package/.claude/commands/hooks/overview.md +0 -132
- package/.claude/commands/memory/usage.md +0 -46
- package/.claude/commands/pair/commands.md +0 -546
- package/.claude/commands/pair/config.md +0 -510
- package/.claude/commands/pair/examples.md +0 -512
- package/.claude/commands/pair/modes.md +0 -348
- package/.claude/commands/pair/session.md +0 -407
- package/.claude/commands/pair/start.md +0 -209
- package/.claude/commands/sparc/orchestrator.md +0 -132
- package/.claude/commands/sparc/sparc-modes.md +0 -174
- package/.claude/commands/stream-chain/pipeline.md +0 -121
- package/.claude/commands/stream-chain/run.md +0 -70
- package/.claude/commands/swarm/analysis.md +0 -95
- package/.claude/commands/swarm/development.md +0 -96
- package/.claude/commands/swarm/examples.md +0 -168
- package/.claude/commands/swarm/maintenance.md +0 -102
- package/.claude/commands/swarm/optimization.md +0 -117
- package/.claude/commands/swarm/research.md +0 -136
- package/.claude/commands/swarm/swarm-analysis.md +0 -8
- package/.claude/commands/swarm/swarm-spawn.md +0 -19
- package/.claude/commands/swarm/swarm-strategies.md +0 -8
- package/.claude/commands/swarm/testing.md +0 -131
- package/.claude/commands/truth/start.md +0 -143
- package/.claude/commands/verify/check.md +0 -50
- package/.claude/commands/verify/start.md +0 -128
- /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-INTEGRATION-STATUS.md → integrations/reasoningbank/REASONINGBANK-INTEGRATION-STATUS.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/{.claude/agents → docs}/reasoning/README.md +0 -0
- /package/{.claude/agents → docs}/reasoning/example-reasoning-agent-template.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/simple-commands/performance-metrics.js"],"sourcesContent":["/**\n * Real Performance Metrics Collection System\n * Tracks actual system performance, agent activity, and resource usage\n */\n\nimport { promises as fs } from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { performance } from 'perf_hooks';\n\n// Metrics storage path\nconst METRICS_DIR = path.join(process.cwd(), '.claude-flow', 'metrics');\nconst PERFORMANCE_FILE = path.join(METRICS_DIR, 'performance.json');\nconst AGENT_METRICS_FILE = path.join(METRICS_DIR, 'agent-metrics.json');\nconst TASK_METRICS_FILE = path.join(METRICS_DIR, 'task-metrics.json');\nconst SYSTEM_METRICS_FILE = path.join(METRICS_DIR, 'system-metrics.json');\n\n// In-memory metrics cache\nlet metricsCache = {\n tasks: [],\n agents: {},\n system: [],\n performance: {\n startTime: Date.now(),\n totalTasks: 0,\n successfulTasks: 0,\n failedTasks: 0,\n totalAgents: 0,\n activeAgents: 0,\n neuralEvents: 0\n }\n};\n\n// Store interval ID for cleanup\nlet systemMonitoringInterval = null;\n\n// Initialize metrics system\nexport async function initializeMetrics(startMonitoring = true) {\n try {\n await fs.mkdir(METRICS_DIR, { recursive: true });\n \n // Load existing metrics if available\n await loadMetricsFromDisk();\n \n // Start system monitoring only if requested\n if (startMonitoring) {\n startSystemMonitoring();\n }\n \n return true;\n } catch (err) {\n console.error('Failed to initialize metrics:', err);\n return false;\n }\n}\n\n// Load metrics from disk\nasync function loadMetricsFromDisk() {\n try {\n // Load performance metrics\n if (await fileExists(PERFORMANCE_FILE)) {\n const data = await fs.readFile(PERFORMANCE_FILE, 'utf8');\n const saved = JSON.parse(data);\n metricsCache.performance = { ...metricsCache.performance, ...saved };\n }\n \n // Load task metrics\n if (await fileExists(TASK_METRICS_FILE)) {\n const data = await fs.readFile(TASK_METRICS_FILE, 'utf8');\n metricsCache.tasks = JSON.parse(data);\n }\n \n // Load agent metrics\n if (await fileExists(AGENT_METRICS_FILE)) {\n const data = await fs.readFile(AGENT_METRICS_FILE, 'utf8');\n metricsCache.agents = JSON.parse(data);\n }\n } catch (err) {\n // Ignore errors, start fresh\n }\n}\n\n// Save metrics to disk\nasync function saveMetricsToDisk() {\n try {\n await fs.writeFile(PERFORMANCE_FILE, JSON.stringify(metricsCache.performance, null, 2));\n await fs.writeFile(TASK_METRICS_FILE, JSON.stringify(metricsCache.tasks, null, 2));\n await fs.writeFile(AGENT_METRICS_FILE, JSON.stringify(metricsCache.agents, null, 2));\n } catch (err) {\n // Ignore save errors\n }\n}\n\n// Track task execution\nexport async function trackTaskExecution(taskId, taskType, success, duration, metadata = {}) {\n const task = {\n id: taskId,\n type: taskType,\n success,\n duration,\n timestamp: Date.now(),\n metadata\n };\n \n metricsCache.tasks.push(task);\n metricsCache.performance.totalTasks++;\n \n if (success) {\n metricsCache.performance.successfulTasks++;\n } else {\n metricsCache.performance.failedTasks++;\n }\n \n // Keep only last 1000 tasks\n if (metricsCache.tasks.length > 1000) {\n metricsCache.tasks = metricsCache.tasks.slice(-1000);\n }\n \n await saveMetricsToDisk();\n}\n\n// Track agent activity\nexport async function trackAgentActivity(agentId, agentType, action, duration, success = true) {\n if (!metricsCache.agents[agentType]) {\n metricsCache.agents[agentType] = {\n total: 0,\n successful: 0,\n failed: 0,\n totalDuration: 0,\n actions: []\n };\n }\n \n const agent = metricsCache.agents[agentType];\n agent.total++;\n agent.totalDuration += duration;\n \n if (success) {\n agent.successful++;\n } else {\n agent.failed++;\n }\n \n agent.actions.push({\n id: agentId,\n action,\n duration,\n success,\n timestamp: Date.now()\n });\n \n // Keep only last 100 actions per agent type\n if (agent.actions.length > 100) {\n agent.actions = agent.actions.slice(-100);\n }\n \n metricsCache.performance.totalAgents = Object.keys(metricsCache.agents).length;\n \n await saveMetricsToDisk();\n}\n\n// Track neural events\nexport async function trackNeuralEvent(eventType, metadata = {}) {\n metricsCache.performance.neuralEvents++;\n \n await saveMetricsToDisk();\n}\n\n// Get performance report data\nexport async function getPerformanceReport(timeframe = '24h') {\n const now = Date.now();\n const timeframeMs = parseTimeframe(timeframe);\n const cutoff = now - timeframeMs;\n \n // Filter tasks within timeframe\n const recentTasks = metricsCache.tasks.filter(task => task.timestamp >= cutoff);\n \n // Calculate metrics\n const totalTasks = recentTasks.length;\n const successfulTasks = recentTasks.filter(t => t.success).length;\n const successRate = totalTasks > 0 ? (successfulTasks / totalTasks) * 100 : 0;\n const avgDuration = totalTasks > 0 \n ? recentTasks.reduce((sum, t) => sum + t.duration, 0) / totalTasks \n : 0;\n \n // Agent metrics\n const agentMetrics = {};\n Object.entries(metricsCache.agents).forEach(([type, data]) => {\n const recentActions = data.actions.filter(a => a.timestamp >= cutoff);\n if (recentActions.length > 0) {\n const successCount = recentActions.filter(a => a.success).length;\n const avgDur = recentActions.reduce((sum, a) => sum + a.duration, 0) / recentActions.length;\n \n agentMetrics[type] = {\n total: recentActions.length,\n successRate: (successCount / recentActions.length) * 100,\n avgDuration: avgDur\n };\n }\n });\n \n // System metrics\n const systemMetrics = await getSystemMetrics();\n \n // Calculate trends (compare to previous period)\n const prevCutoff = cutoff - timeframeMs;\n const prevTasks = metricsCache.tasks.filter(t => t.timestamp >= prevCutoff && t.timestamp < cutoff);\n const prevSuccessRate = prevTasks.length > 0 \n ? (prevTasks.filter(t => t.success).length / prevTasks.length) * 100 \n : 0;\n const prevAvgDuration = prevTasks.length > 0\n ? prevTasks.reduce((sum, t) => sum + t.duration, 0) / prevTasks.length\n : 0;\n \n const trends = {\n successRateChange: successRate - prevSuccessRate,\n durationChange: avgDuration - prevAvgDuration,\n taskVolumeChange: totalTasks - prevTasks.length\n };\n \n return {\n timeframe,\n summary: {\n totalTasks,\n successRate,\n avgDuration: avgDuration / 1000, // Convert to seconds\n agentsSpawned: Object.values(agentMetrics).reduce((sum, m) => sum + m.total, 0),\n memoryEfficiency: systemMetrics.memoryEfficiency,\n neuralEvents: metricsCache.performance.neuralEvents\n },\n agentMetrics,\n systemMetrics,\n trends,\n tasks: recentTasks.slice(-20) // Last 20 tasks\n };\n}\n\n// Get bottleneck analysis data\nexport async function getBottleneckAnalysis(scope = 'system', target = 'all') {\n const bottlenecks = [];\n const recommendations = [];\n \n // Analyze task performance\n if (scope === 'system' || scope === 'task') {\n const slowTasks = metricsCache.tasks\n .filter(t => t.duration > 10000) // Tasks taking more than 10s\n .sort((a, b) => b.duration - a.duration)\n .slice(0, 5);\n \n if (slowTasks.length > 0) {\n bottlenecks.push({\n severity: 'warning',\n component: 'Task execution',\n metric: `${slowTasks.length} slow tasks (>10s)`,\n details: slowTasks.map(t => ({\n id: t.id,\n type: t.type,\n duration: t.duration / 1000\n }))\n });\n recommendations.push('Optimize slow task types or break them into smaller subtasks');\n }\n }\n \n // Analyze agent performance\n if (scope === 'system' || scope === 'agent') {\n Object.entries(metricsCache.agents).forEach(([type, data]) => {\n const successRate = data.total > 0 ? (data.successful / data.total) * 100 : 100;\n const avgDuration = data.total > 0 ? data.totalDuration / data.total : 0;\n \n if (successRate < 80) {\n bottlenecks.push({\n severity: 'critical',\n component: `${type} agents`,\n metric: `${successRate.toFixed(1)}% success rate`,\n target: type\n });\n recommendations.push(`Investigate ${type} agent failures and improve error handling`);\n }\n \n if (avgDuration > 15000) {\n bottlenecks.push({\n severity: 'warning',\n component: `${type} agents`,\n metric: `${(avgDuration / 1000).toFixed(1)}s avg duration`,\n target: type\n });\n recommendations.push(`Optimize ${type} agent performance or increase parallelization`);\n }\n });\n }\n \n // Analyze system resources\n if (scope === 'system' || scope === 'memory') {\n const systemMetrics = await getSystemMetrics();\n \n if (systemMetrics.memoryUsagePercent > 80) {\n bottlenecks.push({\n severity: 'critical',\n component: 'Memory usage',\n metric: `${systemMetrics.memoryUsagePercent}% utilization`\n });\n recommendations.push('Implement memory optimization or increase system resources');\n }\n \n if (systemMetrics.cpuLoad > 0.8) {\n bottlenecks.push({\n severity: 'warning',\n component: 'CPU usage',\n metric: `${(systemMetrics.cpuLoad * 100).toFixed(1)}% load`\n });\n recommendations.push('Consider horizontal scaling or CPU optimization');\n }\n }\n \n // Add positive indicators\n if (bottlenecks.length === 0) {\n bottlenecks.push({\n severity: 'good',\n component: 'Overall system',\n metric: 'No bottlenecks detected'\n });\n }\n \n return {\n scope,\n target,\n bottlenecks,\n recommendations,\n analysisDuration: performance.now(),\n confidenceScore: 0.85,\n issuesDetected: bottlenecks.filter(b => b.severity !== 'good').length\n };\n}\n\n// System monitoring\nfunction startSystemMonitoring() {\n // Clear any existing interval\n if (systemMonitoringInterval) {\n clearInterval(systemMonitoringInterval);\n }\n \n // Collect system metrics every 30 seconds\n systemMonitoringInterval = setInterval(async () => {\n const metrics = await getSystemMetrics();\n \n // Store system metrics\n if (!metricsCache.system) {\n metricsCache.system = [];\n }\n \n metricsCache.system.push({\n timestamp: Date.now(),\n ...metrics\n });\n \n // Keep only last 24 hours of system metrics\n const dayAgo = Date.now() - (24 * 60 * 60 * 1000);\n metricsCache.system = metricsCache.system.filter(m => m.timestamp > dayAgo);\n \n // Save to disk\n try {\n await fs.writeFile(SYSTEM_METRICS_FILE, JSON.stringify(metricsCache.system, null, 2));\n } catch (err) {\n // Ignore save errors\n }\n }, 30000);\n \n // Allow process to exit even with active interval\n systemMonitoringInterval.unref();\n}\n\n// Stop system monitoring\nexport function stopSystemMonitoring() {\n if (systemMonitoringInterval) {\n clearInterval(systemMonitoringInterval);\n systemMonitoringInterval = null;\n }\n}\n\n// Get current system metrics\nasync function getSystemMetrics() {\n const totalMem = os.totalmem();\n const freeMem = os.freemem();\n const usedMem = totalMem - freeMem;\n const memoryUsagePercent = (usedMem / totalMem) * 100;\n \n const cpuLoad = os.loadavg()[0] / os.cpus().length; // 1-minute load average\n \n return {\n memoryTotal: totalMem,\n memoryUsed: usedMem,\n memoryFree: freeMem,\n memoryUsagePercent,\n memoryEfficiency: 100 - memoryUsagePercent,\n cpuCount: os.cpus().length,\n cpuLoad,\n platform: os.platform(),\n uptime: os.uptime()\n };\n}\n\n// Parse timeframe string to milliseconds\nfunction parseTimeframe(timeframe) {\n const units = {\n 'h': 60 * 60 * 1000,\n 'd': 24 * 60 * 60 * 1000\n };\n \n const match = timeframe.match(/^(\\d+)([hd])$/);\n if (match) {\n const value = parseInt(match[1]);\n const unit = match[2];\n return value * units[unit];\n }\n \n // Default to 24 hours\n return 24 * 60 * 60 * 1000;\n}\n\n// Check if file exists\nasync function fileExists(filepath) {\n try {\n await fs.access(filepath);\n return true;\n } catch {\n return false;\n }\n}\n\n// Cleanup function for graceful shutdown\nexport function cleanup() {\n stopSystemMonitoring();\n}\n\n// Export metrics for reporting\nexport async function exportMetrics(format = 'json') {\n const timestamp = Date.now();\n const reportsDir = path.join(process.cwd(), 'analysis-reports');\n \n await fs.mkdir(reportsDir, { recursive: true });\n \n if (format === 'json') {\n const reportPath = path.join(reportsDir, `performance-${timestamp}.json`);\n const data = {\n timestamp: new Date().toISOString(),\n performance: metricsCache.performance,\n tasks: metricsCache.tasks.slice(-100), // Last 100 tasks\n agents: metricsCache.agents,\n system: metricsCache.system.slice(-50) // Last 50 system snapshots\n };\n \n await fs.writeFile(reportPath, JSON.stringify(data, null, 2));\n return reportPath;\n }\n \n if (format === 'csv') {\n const reportPath = path.join(reportsDir, `performance-${timestamp}.csv`);\n let csv = 'Timestamp,Type,Metric,Value\\n';\n \n // Add performance metrics\n Object.entries(metricsCache.performance).forEach(([key, value]) => {\n csv += `${new Date().toISOString()},performance,${key},${value}\\n`;\n });\n \n // Add agent metrics\n Object.entries(metricsCache.agents).forEach(([type, data]) => {\n csv += `${new Date().toISOString()},agent,${type}_total,${data.total}\\n`;\n csv += `${new Date().toISOString()},agent,${type}_success_rate,${data.total > 0 ? (data.successful / data.total) * 100 : 0}\\n`;\n csv += `${new Date().toISOString()},agent,${type}_avg_duration,${data.total > 0 ? data.totalDuration / data.total : 0}\\n`;\n });\n \n await fs.writeFile(reportPath, csv);\n return reportPath;\n }\n \n if (format === 'html') {\n const reportPath = path.join(reportsDir, `performance-${timestamp}.html`);\n const report = await getPerformanceReport('24h');\n \n const html = generateHTMLReport(report);\n await fs.writeFile(reportPath, html);\n return reportPath;\n }\n \n throw new Error(`Unsupported format: ${format}`);\n}\n\n// Generate HTML report\nfunction generateHTMLReport(report) {\n return `<!DOCTYPE html>\n<html>\n<head>\n <title>Claude Flow Performance Report - ${new Date().toISOString()}</title>\n <style>\n body { font-family: Arial, sans-serif; margin: 20px; background: #f5f5f5; }\n .container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }\n h1, h2 { color: #333; }\n .metric { display: inline-block; margin: 10px 20px 10px 0; }\n .metric-label { color: #666; font-size: 14px; }\n .metric-value { font-size: 24px; font-weight: bold; color: #2196F3; }\n .trend { font-size: 14px; margin-left: 10px; }\n .trend.positive { color: #4CAF50; }\n .trend.negative { color: #F44336; }\n table { width: 100%; border-collapse: collapse; margin: 20px 0; }\n th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }\n th { background: #f5f5f5; font-weight: bold; }\n .chart { margin: 20px 0; height: 300px; background: #fafafa; border: 1px solid #ddd; border-radius: 4px; display: flex; align-items: center; justify-content: center; color: #999; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <h1>Claude Flow Performance Report</h1>\n <p>Generated: ${new Date().toISOString()} | Timeframe: ${report.timeframe}</p>\n \n <h2>Summary Metrics</h2>\n <div class=\"metrics\">\n <div class=\"metric\">\n <div class=\"metric-label\">Total Tasks</div>\n <div class=\"metric-value\">${report.summary.totalTasks}</div>\n ${report.trends.taskVolumeChange !== 0 ? `<span class=\"trend ${report.trends.taskVolumeChange > 0 ? 'positive' : 'negative'}\">${report.trends.taskVolumeChange > 0 ? '+' : ''}${report.trends.taskVolumeChange}</span>` : ''}\n </div>\n <div class=\"metric\">\n <div class=\"metric-label\">Success Rate</div>\n <div class=\"metric-value\">${report.summary.successRate.toFixed(1)}%</div>\n ${report.trends.successRateChange !== 0 ? `<span class=\"trend ${report.trends.successRateChange > 0 ? 'positive' : 'negative'}\">${report.trends.successRateChange > 0 ? '+' : ''}${report.trends.successRateChange.toFixed(1)}%</span>` : ''}\n </div>\n <div class=\"metric\">\n <div class=\"metric-label\">Avg Duration</div>\n <div class=\"metric-value\">${report.summary.avgDuration.toFixed(1)}s</div>\n ${report.trends.durationChange !== 0 ? `<span class=\"trend ${report.trends.durationChange < 0 ? 'positive' : 'negative'}\">${report.trends.durationChange > 0 ? '+' : ''}${(report.trends.durationChange / 1000).toFixed(1)}s</span>` : ''}\n </div>\n <div class=\"metric\">\n <div class=\"metric-label\">Memory Efficiency</div>\n <div class=\"metric-value\">${report.summary.memoryEfficiency.toFixed(0)}%</div>\n </div>\n </div>\n \n <h2>Agent Performance</h2>\n <table>\n <thead>\n <tr>\n <th>Agent Type</th>\n <th>Total Actions</th>\n <th>Success Rate</th>\n <th>Avg Duration</th>\n </tr>\n </thead>\n <tbody>\n ${Object.entries(report.agentMetrics).map(([type, metrics]) => `\n <tr>\n <td>${type}</td>\n <td>${metrics.total}</td>\n <td>${metrics.successRate.toFixed(1)}%</td>\n <td>${(metrics.avgDuration / 1000).toFixed(1)}s</td>\n </tr>\n `).join('')}\n </tbody>\n </table>\n \n <h2>Performance Trends</h2>\n <div class=\"chart\">\n <p>Interactive charts would be displayed here</p>\n </div>\n \n <h2>Recent Tasks</h2>\n <table>\n <thead>\n <tr>\n <th>Task ID</th>\n <th>Type</th>\n <th>Status</th>\n <th>Duration</th>\n <th>Timestamp</th>\n </tr>\n </thead>\n <tbody>\n ${report.tasks.slice(-10).reverse().map(task => `\n <tr>\n <td>${task.id}</td>\n <td>${task.type}</td>\n <td>${task.success ? '✅ Success' : '❌ Failed'}</td>\n <td>${(task.duration / 1000).toFixed(2)}s</td>\n <td>${new Date(task.timestamp).toLocaleString()}</td>\n </tr>\n `).join('')}\n </tbody>\n </table>\n </div>\n</body>\n</html>`;\n}"],"names":["promises","fs","path","os","performance","METRICS_DIR","join","process","cwd","PERFORMANCE_FILE","AGENT_METRICS_FILE","TASK_METRICS_FILE","SYSTEM_METRICS_FILE","metricsCache","tasks","agents","system","startTime","Date","now","totalTasks","successfulTasks","failedTasks","totalAgents","activeAgents","neuralEvents","systemMonitoringInterval","initializeMetrics","startMonitoring","mkdir","recursive","loadMetricsFromDisk","startSystemMonitoring","err","console","error","fileExists","data","readFile","saved","JSON","parse","saveMetricsToDisk","writeFile","stringify","trackTaskExecution","taskId","taskType","success","duration","metadata","task","id","type","timestamp","push","length","slice","trackAgentActivity","agentId","agentType","action","total","successful","failed","totalDuration","actions","agent","Object","keys","trackNeuralEvent","eventType","getPerformanceReport","timeframe","timeframeMs","parseTimeframe","cutoff","recentTasks","filter","t","successRate","avgDuration","reduce","sum","agentMetrics","entries","forEach","recentActions","a","successCount","avgDur","systemMetrics","getSystemMetrics","prevCutoff","prevTasks","prevSuccessRate","prevAvgDuration","trends","successRateChange","durationChange","taskVolumeChange","summary","agentsSpawned","values","m","memoryEfficiency","getBottleneckAnalysis","scope","target","bottlenecks","recommendations","slowTasks","sort","b","severity","component","metric","details","map","toFixed","memoryUsagePercent","cpuLoad","analysisDuration","confidenceScore","issuesDetected","clearInterval","setInterval","metrics","dayAgo","unref","stopSystemMonitoring","totalMem","totalmem","freeMem","freemem","usedMem","loadavg","cpus","memoryTotal","memoryUsed","memoryFree","cpuCount","platform","uptime","units","match","value","parseInt","unit","filepath","access","cleanup","exportMetrics","format","reportsDir","reportPath","toISOString","csv","key","report","html","generateHTMLReport","Error","reverse","toLocaleString"],"mappings":"AAKA,SAASA,YAAYC,EAAE,QAAQ,KAAK;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,QAAQ,KAAK;AACpB,SAASC,WAAW,QAAQ,aAAa;AAGzC,MAAMC,cAAcH,KAAKI,IAAI,CAACC,QAAQC,GAAG,IAAI,gBAAgB;AAC7D,MAAMC,mBAAmBP,KAAKI,IAAI,CAACD,aAAa;AAChD,MAAMK,qBAAqBR,KAAKI,IAAI,CAACD,aAAa;AAClD,MAAMM,oBAAoBT,KAAKI,IAAI,CAACD,aAAa;AACjD,MAAMO,sBAAsBV,KAAKI,IAAI,CAACD,aAAa;AAGnD,IAAIQ,eAAe;IACjBC,OAAO,EAAE;IACTC,QAAQ,CAAC;IACTC,QAAQ,EAAE;IACVZ,aAAa;QACXa,WAAWC,KAAKC,GAAG;QACnBC,YAAY;QACZC,iBAAiB;QACjBC,aAAa;QACbC,aAAa;QACbC,cAAc;QACdC,cAAc;IAChB;AACF;AAGA,IAAIC,2BAA2B;AAG/B,OAAO,eAAeC,kBAAkBC,kBAAkB,IAAI;IAC5D,IAAI;QACF,MAAM3B,GAAG4B,KAAK,CAACxB,aAAa;YAAEyB,WAAW;QAAK;QAG9C,MAAMC;QAGN,IAAIH,iBAAiB;YACnBI;QACF;QAEA,OAAO;IACT,EAAE,OAAOC,KAAK;QACZC,QAAQC,KAAK,CAAC,iCAAiCF;QAC/C,OAAO;IACT;AACF;AAGA,eAAeF;IACb,IAAI;QAEF,IAAI,MAAMK,WAAW3B,mBAAmB;YACtC,MAAM4B,OAAO,MAAMpC,GAAGqC,QAAQ,CAAC7B,kBAAkB;YACjD,MAAM8B,QAAQC,KAAKC,KAAK,CAACJ;YACzBxB,aAAaT,WAAW,GAAG;gBAAE,GAAGS,aAAaT,WAAW;gBAAE,GAAGmC,KAAK;YAAC;QACrE;QAGA,IAAI,MAAMH,WAAWzB,oBAAoB;YACvC,MAAM0B,OAAO,MAAMpC,GAAGqC,QAAQ,CAAC3B,mBAAmB;YAClDE,aAAaC,KAAK,GAAG0B,KAAKC,KAAK,CAACJ;QAClC;QAGA,IAAI,MAAMD,WAAW1B,qBAAqB;YACxC,MAAM2B,OAAO,MAAMpC,GAAGqC,QAAQ,CAAC5B,oBAAoB;YACnDG,aAAaE,MAAM,GAAGyB,KAAKC,KAAK,CAACJ;QACnC;IACF,EAAE,OAAOJ,KAAK,CAEd;AACF;AAGA,eAAeS;IACb,IAAI;QACF,MAAMzC,GAAG0C,SAAS,CAAClC,kBAAkB+B,KAAKI,SAAS,CAAC/B,aAAaT,WAAW,EAAE,MAAM;QACpF,MAAMH,GAAG0C,SAAS,CAAChC,mBAAmB6B,KAAKI,SAAS,CAAC/B,aAAaC,KAAK,EAAE,MAAM;QAC/E,MAAMb,GAAG0C,SAAS,CAACjC,oBAAoB8B,KAAKI,SAAS,CAAC/B,aAAaE,MAAM,EAAE,MAAM;IACnF,EAAE,OAAOkB,KAAK,CAEd;AACF;AAGA,OAAO,eAAeY,mBAAmBC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,CAAC,CAAC;IACzF,MAAMC,OAAO;QACXC,IAAIN;QACJO,MAAMN;QACNC;QACAC;QACAK,WAAWpC,KAAKC,GAAG;QACnB+B;IACF;IAEArC,aAAaC,KAAK,CAACyC,IAAI,CAACJ;IACxBtC,aAAaT,WAAW,CAACgB,UAAU;IAEnC,IAAI4B,SAAS;QACXnC,aAAaT,WAAW,CAACiB,eAAe;IAC1C,OAAO;QACLR,aAAaT,WAAW,CAACkB,WAAW;IACtC;IAGA,IAAIT,aAAaC,KAAK,CAAC0C,MAAM,GAAG,MAAM;QACpC3C,aAAaC,KAAK,GAAGD,aAAaC,KAAK,CAAC2C,KAAK,CAAC,CAAC;IACjD;IAEA,MAAMf;AACR;AAGA,OAAO,eAAegB,mBAAmBC,OAAO,EAAEC,SAAS,EAAEC,MAAM,EAAEZ,QAAQ,EAAED,UAAU,IAAI;IAC3F,IAAI,CAACnC,aAAaE,MAAM,CAAC6C,UAAU,EAAE;QACnC/C,aAAaE,MAAM,CAAC6C,UAAU,GAAG;YAC/BE,OAAO;YACPC,YAAY;YACZC,QAAQ;YACRC,eAAe;YACfC,SAAS,EAAE;QACb;IACF;IAEA,MAAMC,QAAQtD,aAAaE,MAAM,CAAC6C,UAAU;IAC5CO,MAAML,KAAK;IACXK,MAAMF,aAAa,IAAIhB;IAEvB,IAAID,SAAS;QACXmB,MAAMJ,UAAU;IAClB,OAAO;QACLI,MAAMH,MAAM;IACd;IAEAG,MAAMD,OAAO,CAACX,IAAI,CAAC;QACjBH,IAAIO;QACJE;QACAZ;QACAD;QACAM,WAAWpC,KAAKC,GAAG;IACrB;IAGA,IAAIgD,MAAMD,OAAO,CAACV,MAAM,GAAG,KAAK;QAC9BW,MAAMD,OAAO,GAAGC,MAAMD,OAAO,CAACT,KAAK,CAAC,CAAC;IACvC;IAEA5C,aAAaT,WAAW,CAACmB,WAAW,GAAG6C,OAAOC,IAAI,CAACxD,aAAaE,MAAM,EAAEyC,MAAM;IAE9E,MAAMd;AACR;AAGA,OAAO,eAAe4B,iBAAiBC,SAAS,EAAErB,WAAW,CAAC,CAAC;IAC7DrC,aAAaT,WAAW,CAACqB,YAAY;IAErC,MAAMiB;AACR;AAGA,OAAO,eAAe8B,qBAAqBC,YAAY,KAAK;IAC1D,MAAMtD,MAAMD,KAAKC,GAAG;IACpB,MAAMuD,cAAcC,eAAeF;IACnC,MAAMG,SAASzD,MAAMuD;IAGrB,MAAMG,cAAchE,aAAaC,KAAK,CAACgE,MAAM,CAAC3B,CAAAA,OAAQA,KAAKG,SAAS,IAAIsB;IAGxE,MAAMxD,aAAayD,YAAYrB,MAAM;IACrC,MAAMnC,kBAAkBwD,YAAYC,MAAM,CAACC,CAAAA,IAAKA,EAAE/B,OAAO,EAAEQ,MAAM;IACjE,MAAMwB,cAAc5D,aAAa,IAAI,AAACC,kBAAkBD,aAAc,MAAM;IAC5E,MAAM6D,cAAc7D,aAAa,IAC7ByD,YAAYK,MAAM,CAAC,CAACC,KAAKJ,IAAMI,MAAMJ,EAAE9B,QAAQ,EAAE,KAAK7B,aACtD;IAGJ,MAAMgE,eAAe,CAAC;IACtBhB,OAAOiB,OAAO,CAACxE,aAAaE,MAAM,EAAEuE,OAAO,CAAC,CAAC,CAACjC,MAAMhB,KAAK;QACvD,MAAMkD,gBAAgBlD,KAAK6B,OAAO,CAACY,MAAM,CAACU,CAAAA,IAAKA,EAAElC,SAAS,IAAIsB;QAC9D,IAAIW,cAAc/B,MAAM,GAAG,GAAG;YAC5B,MAAMiC,eAAeF,cAAcT,MAAM,CAACU,CAAAA,IAAKA,EAAExC,OAAO,EAAEQ,MAAM;YAChE,MAAMkC,SAASH,cAAcL,MAAM,CAAC,CAACC,KAAKK,IAAML,MAAMK,EAAEvC,QAAQ,EAAE,KAAKsC,cAAc/B,MAAM;YAE3F4B,YAAY,CAAC/B,KAAK,GAAG;gBACnBS,OAAOyB,cAAc/B,MAAM;gBAC3BwB,aAAa,AAACS,eAAeF,cAAc/B,MAAM,GAAI;gBACrDyB,aAAaS;YACf;QACF;IACF;IAGA,MAAMC,gBAAgB,MAAMC;IAG5B,MAAMC,aAAajB,SAASF;IAC5B,MAAMoB,YAAYjF,aAAaC,KAAK,CAACgE,MAAM,CAACC,CAAAA,IAAKA,EAAEzB,SAAS,IAAIuC,cAAcd,EAAEzB,SAAS,GAAGsB;IAC5F,MAAMmB,kBAAkBD,UAAUtC,MAAM,GAAG,IACvC,AAACsC,UAAUhB,MAAM,CAACC,CAAAA,IAAKA,EAAE/B,OAAO,EAAEQ,MAAM,GAAGsC,UAAUtC,MAAM,GAAI,MAC/D;IACJ,MAAMwC,kBAAkBF,UAAUtC,MAAM,GAAG,IACvCsC,UAAUZ,MAAM,CAAC,CAACC,KAAKJ,IAAMI,MAAMJ,EAAE9B,QAAQ,EAAE,KAAK6C,UAAUtC,MAAM,GACpE;IAEJ,MAAMyC,SAAS;QACbC,mBAAmBlB,cAAce;QACjCI,gBAAgBlB,cAAce;QAC9BI,kBAAkBhF,aAAa0E,UAAUtC,MAAM;IACjD;IAEA,OAAO;QACLiB;QACA4B,SAAS;YACPjF;YACA4D;YACAC,aAAaA,cAAc;YAC3BqB,eAAelC,OAAOmC,MAAM,CAACnB,cAAcF,MAAM,CAAC,CAACC,KAAKqB,IAAMrB,MAAMqB,EAAE1C,KAAK,EAAE;YAC7E2C,kBAAkBd,cAAcc,gBAAgB;YAChDhF,cAAcZ,aAAaT,WAAW,CAACqB,YAAY;QACrD;QACA2D;QACAO;QACAM;QACAnF,OAAO+D,YAAYpB,KAAK,CAAC,CAAC;IAC5B;AACF;AAGA,OAAO,eAAeiD,sBAAsBC,QAAQ,QAAQ,EAAEC,SAAS,KAAK;IAC1E,MAAMC,cAAc,EAAE;IACtB,MAAMC,kBAAkB,EAAE;IAG1B,IAAIH,UAAU,YAAYA,UAAU,QAAQ;QAC1C,MAAMI,YAAYlG,aAAaC,KAAK,CACjCgE,MAAM,CAACC,CAAAA,IAAKA,EAAE9B,QAAQ,GAAG,OACzB+D,IAAI,CAAC,CAACxB,GAAGyB,IAAMA,EAAEhE,QAAQ,GAAGuC,EAAEvC,QAAQ,EACtCQ,KAAK,CAAC,GAAG;QAEZ,IAAIsD,UAAUvD,MAAM,GAAG,GAAG;YACxBqD,YAAYtD,IAAI,CAAC;gBACf2D,UAAU;gBACVC,WAAW;gBACXC,QAAQ,GAAGL,UAAUvD,MAAM,CAAC,kBAAkB,CAAC;gBAC/C6D,SAASN,UAAUO,GAAG,CAACvC,CAAAA,IAAM,CAAA;wBAC3B3B,IAAI2B,EAAE3B,EAAE;wBACRC,MAAM0B,EAAE1B,IAAI;wBACZJ,UAAU8B,EAAE9B,QAAQ,GAAG;oBACzB,CAAA;YACF;YACA6D,gBAAgBvD,IAAI,CAAC;QACvB;IACF;IAGA,IAAIoD,UAAU,YAAYA,UAAU,SAAS;QAC3CvC,OAAOiB,OAAO,CAACxE,aAAaE,MAAM,EAAEuE,OAAO,CAAC,CAAC,CAACjC,MAAMhB,KAAK;YACvD,MAAM2C,cAAc3C,KAAKyB,KAAK,GAAG,IAAI,AAACzB,KAAK0B,UAAU,GAAG1B,KAAKyB,KAAK,GAAI,MAAM;YAC5E,MAAMmB,cAAc5C,KAAKyB,KAAK,GAAG,IAAIzB,KAAK4B,aAAa,GAAG5B,KAAKyB,KAAK,GAAG;YAEvE,IAAIkB,cAAc,IAAI;gBACpB6B,YAAYtD,IAAI,CAAC;oBACf2D,UAAU;oBACVC,WAAW,GAAG9D,KAAK,OAAO,CAAC;oBAC3B+D,QAAQ,GAAGpC,YAAYuC,OAAO,CAAC,GAAG,cAAc,CAAC;oBACjDX,QAAQvD;gBACV;gBACAyD,gBAAgBvD,IAAI,CAAC,CAAC,YAAY,EAAEF,KAAK,0CAA0C,CAAC;YACtF;YAEA,IAAI4B,cAAc,OAAO;gBACvB4B,YAAYtD,IAAI,CAAC;oBACf2D,UAAU;oBACVC,WAAW,GAAG9D,KAAK,OAAO,CAAC;oBAC3B+D,QAAQ,GAAG,AAACnC,CAAAA,cAAc,IAAG,EAAGsC,OAAO,CAAC,GAAG,cAAc,CAAC;oBAC1DX,QAAQvD;gBACV;gBACAyD,gBAAgBvD,IAAI,CAAC,CAAC,SAAS,EAAEF,KAAK,8CAA8C,CAAC;YACvF;QACF;IACF;IAGA,IAAIsD,UAAU,YAAYA,UAAU,UAAU;QAC5C,MAAMhB,gBAAgB,MAAMC;QAE5B,IAAID,cAAc6B,kBAAkB,GAAG,IAAI;YACzCX,YAAYtD,IAAI,CAAC;gBACf2D,UAAU;gBACVC,WAAW;gBACXC,QAAQ,GAAGzB,cAAc6B,kBAAkB,CAAC,aAAa,CAAC;YAC5D;YACAV,gBAAgBvD,IAAI,CAAC;QACvB;QAEA,IAAIoC,cAAc8B,OAAO,GAAG,KAAK;YAC/BZ,YAAYtD,IAAI,CAAC;gBACf2D,UAAU;gBACVC,WAAW;gBACXC,QAAQ,GAAG,AAACzB,CAAAA,cAAc8B,OAAO,GAAG,GAAE,EAAGF,OAAO,CAAC,GAAG,MAAM,CAAC;YAC7D;YACAT,gBAAgBvD,IAAI,CAAC;QACvB;IACF;IAGA,IAAIsD,YAAYrD,MAAM,KAAK,GAAG;QAC5BqD,YAAYtD,IAAI,CAAC;YACf2D,UAAU;YACVC,WAAW;YACXC,QAAQ;QACV;IACF;IAEA,OAAO;QACLT;QACAC;QACAC;QACAC;QACAY,kBAAkBtH,YAAYe,GAAG;QACjCwG,iBAAiB;QACjBC,gBAAgBf,YAAY/B,MAAM,CAACmC,CAAAA,IAAKA,EAAEC,QAAQ,KAAK,QAAQ1D,MAAM;IACvE;AACF;AAGA,SAASxB;IAEP,IAAIN,0BAA0B;QAC5BmG,cAAcnG;IAChB;IAGAA,2BAA2BoG,YAAY;QACrC,MAAMC,UAAU,MAAMnC;QAGtB,IAAI,CAAC/E,aAAaG,MAAM,EAAE;YACxBH,aAAaG,MAAM,GAAG,EAAE;QAC1B;QAEAH,aAAaG,MAAM,CAACuC,IAAI,CAAC;YACvBD,WAAWpC,KAAKC,GAAG;YACnB,GAAG4G,OAAO;QACZ;QAGA,MAAMC,SAAS9G,KAAKC,GAAG,KAAM,KAAK,KAAK,KAAK;QAC5CN,aAAaG,MAAM,GAAGH,aAAaG,MAAM,CAAC8D,MAAM,CAAC0B,CAAAA,IAAKA,EAAElD,SAAS,GAAG0E;QAGpE,IAAI;YACF,MAAM/H,GAAG0C,SAAS,CAAC/B,qBAAqB4B,KAAKI,SAAS,CAAC/B,aAAaG,MAAM,EAAE,MAAM;QACpF,EAAE,OAAOiB,KAAK,CAEd;IACF,GAAG;IAGHP,yBAAyBuG,KAAK;AAChC;AAGA,OAAO,SAASC;IACd,IAAIxG,0BAA0B;QAC5BmG,cAAcnG;QACdA,2BAA2B;IAC7B;AACF;AAGA,eAAekE;IACb,MAAMuC,WAAWhI,GAAGiI,QAAQ;IAC5B,MAAMC,UAAUlI,GAAGmI,OAAO;IAC1B,MAAMC,UAAUJ,WAAWE;IAC3B,MAAMb,qBAAqB,AAACe,UAAUJ,WAAY;IAElD,MAAMV,UAAUtH,GAAGqI,OAAO,EAAE,CAAC,EAAE,GAAGrI,GAAGsI,IAAI,GAAGjF,MAAM;IAElD,OAAO;QACLkF,aAAaP;QACbQ,YAAYJ;QACZK,YAAYP;QACZb;QACAf,kBAAkB,MAAMe;QACxBqB,UAAU1I,GAAGsI,IAAI,GAAGjF,MAAM;QAC1BiE;QACAqB,UAAU3I,GAAG2I,QAAQ;QACrBC,QAAQ5I,GAAG4I,MAAM;IACnB;AACF;AAGA,SAASpE,eAAeF,SAAS;IAC/B,MAAMuE,QAAQ;QACZ,KAAK,KAAK,KAAK;QACf,KAAK,KAAK,KAAK,KAAK;IACtB;IAEA,MAAMC,QAAQxE,UAAUwE,KAAK,CAAC;IAC9B,IAAIA,OAAO;QACT,MAAMC,QAAQC,SAASF,KAAK,CAAC,EAAE;QAC/B,MAAMG,OAAOH,KAAK,CAAC,EAAE;QACrB,OAAOC,QAAQF,KAAK,CAACI,KAAK;IAC5B;IAGA,OAAO,KAAK,KAAK,KAAK;AACxB;AAGA,eAAehH,WAAWiH,QAAQ;IAChC,IAAI;QACF,MAAMpJ,GAAGqJ,MAAM,CAACD;QAChB,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAGA,OAAO,SAASE;IACdrB;AACF;AAGA,OAAO,eAAesB,cAAcC,SAAS,MAAM;IACjD,MAAMnG,YAAYpC,KAAKC,GAAG;IAC1B,MAAMuI,aAAaxJ,KAAKI,IAAI,CAACC,QAAQC,GAAG,IAAI;IAE5C,MAAMP,GAAG4B,KAAK,CAAC6H,YAAY;QAAE5H,WAAW;IAAK;IAE7C,IAAI2H,WAAW,QAAQ;QACrB,MAAME,aAAazJ,KAAKI,IAAI,CAACoJ,YAAY,CAAC,YAAY,EAAEpG,UAAU,KAAK,CAAC;QACxE,MAAMjB,OAAO;YACXiB,WAAW,IAAIpC,OAAO0I,WAAW;YACjCxJ,aAAaS,aAAaT,WAAW;YACrCU,OAAOD,aAAaC,KAAK,CAAC2C,KAAK,CAAC,CAAC;YACjC1C,QAAQF,aAAaE,MAAM;YAC3BC,QAAQH,aAAaG,MAAM,CAACyC,KAAK,CAAC,CAAC;QACrC;QAEA,MAAMxD,GAAG0C,SAAS,CAACgH,YAAYnH,KAAKI,SAAS,CAACP,MAAM,MAAM;QAC1D,OAAOsH;IACT;IAEA,IAAIF,WAAW,OAAO;QACpB,MAAME,aAAazJ,KAAKI,IAAI,CAACoJ,YAAY,CAAC,YAAY,EAAEpG,UAAU,IAAI,CAAC;QACvE,IAAIuG,MAAM;QAGVzF,OAAOiB,OAAO,CAACxE,aAAaT,WAAW,EAAEkF,OAAO,CAAC,CAAC,CAACwE,KAAKZ,MAAM;YAC5DW,OAAO,GAAG,IAAI3I,OAAO0I,WAAW,GAAG,aAAa,EAAEE,IAAI,CAAC,EAAEZ,MAAM,EAAE,CAAC;QACpE;QAGA9E,OAAOiB,OAAO,CAACxE,aAAaE,MAAM,EAAEuE,OAAO,CAAC,CAAC,CAACjC,MAAMhB,KAAK;YACvDwH,OAAO,GAAG,IAAI3I,OAAO0I,WAAW,GAAG,OAAO,EAAEvG,KAAK,OAAO,EAAEhB,KAAKyB,KAAK,CAAC,EAAE,CAAC;YACxE+F,OAAO,GAAG,IAAI3I,OAAO0I,WAAW,GAAG,OAAO,EAAEvG,KAAK,cAAc,EAAEhB,KAAKyB,KAAK,GAAG,IAAI,AAACzB,KAAK0B,UAAU,GAAG1B,KAAKyB,KAAK,GAAI,MAAM,EAAE,EAAE,CAAC;YAC9H+F,OAAO,GAAG,IAAI3I,OAAO0I,WAAW,GAAG,OAAO,EAAEvG,KAAK,cAAc,EAAEhB,KAAKyB,KAAK,GAAG,IAAIzB,KAAK4B,aAAa,GAAG5B,KAAKyB,KAAK,GAAG,EAAE,EAAE,CAAC;QAC3H;QAEA,MAAM7D,GAAG0C,SAAS,CAACgH,YAAYE;QAC/B,OAAOF;IACT;IAEA,IAAIF,WAAW,QAAQ;QACrB,MAAME,aAAazJ,KAAKI,IAAI,CAACoJ,YAAY,CAAC,YAAY,EAAEpG,UAAU,KAAK,CAAC;QACxE,MAAMyG,SAAS,MAAMvF,qBAAqB;QAE1C,MAAMwF,OAAOC,mBAAmBF;QAChC,MAAM9J,GAAG0C,SAAS,CAACgH,YAAYK;QAC/B,OAAOL;IACT;IAEA,MAAM,IAAIO,MAAM,CAAC,oBAAoB,EAAET,QAAQ;AACjD;AAGA,SAASQ,mBAAmBF,MAAM;IAChC,OAAO,CAAC;;;0CAGgC,EAAE,IAAI7I,OAAO0I,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;kBAoBnD,EAAE,IAAI1I,OAAO0I,WAAW,GAAG,cAAc,EAAEG,OAAOtF,SAAS,CAAC;;;;;;kCAM5C,EAAEsF,OAAO1D,OAAO,CAACjF,UAAU,CAAC;QACtD,EAAE2I,OAAO9D,MAAM,CAACG,gBAAgB,KAAK,IAAI,CAAC,mBAAmB,EAAE2D,OAAO9D,MAAM,CAACG,gBAAgB,GAAG,IAAI,aAAa,WAAW,EAAE,EAAE2D,OAAO9D,MAAM,CAACG,gBAAgB,GAAG,IAAI,MAAM,KAAK2D,OAAO9D,MAAM,CAACG,gBAAgB,CAAC,OAAO,CAAC,GAAG,GAAG;;;;kCAInM,EAAE2D,OAAO1D,OAAO,CAACrB,WAAW,CAACuC,OAAO,CAAC,GAAG;QAClE,EAAEwC,OAAO9D,MAAM,CAACC,iBAAiB,KAAK,IAAI,CAAC,mBAAmB,EAAE6D,OAAO9D,MAAM,CAACC,iBAAiB,GAAG,IAAI,aAAa,WAAW,EAAE,EAAE6D,OAAO9D,MAAM,CAACC,iBAAiB,GAAG,IAAI,MAAM,KAAK6D,OAAO9D,MAAM,CAACC,iBAAiB,CAACqB,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG;;;;kCAInN,EAAEwC,OAAO1D,OAAO,CAACpB,WAAW,CAACsC,OAAO,CAAC,GAAG;QAClE,EAAEwC,OAAO9D,MAAM,CAACE,cAAc,KAAK,IAAI,CAAC,mBAAmB,EAAE4D,OAAO9D,MAAM,CAACE,cAAc,GAAG,IAAI,aAAa,WAAW,EAAE,EAAE4D,OAAO9D,MAAM,CAACE,cAAc,GAAG,IAAI,MAAM,KAAK,AAAC4D,CAAAA,OAAO9D,MAAM,CAACE,cAAc,GAAG,IAAG,EAAGoB,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG;;;;kCAIhN,EAAEwC,OAAO1D,OAAO,CAACI,gBAAgB,CAACc,OAAO,CAAC,GAAG;;;;;;;;;;;;;;;QAevE,EAAEnD,OAAOiB,OAAO,CAAC0E,OAAO3E,YAAY,EAAEkC,GAAG,CAAC,CAAC,CAACjE,MAAM0E,QAAQ,GAAK,CAAC;;gBAExD,EAAE1E,KAAK;gBACP,EAAE0E,QAAQjE,KAAK,CAAC;gBAChB,EAAEiE,QAAQ/C,WAAW,CAACuC,OAAO,CAAC,GAAG;gBACjC,EAAE,AAACQ,CAAAA,QAAQ9C,WAAW,GAAG,IAAG,EAAGsC,OAAO,CAAC,GAAG;;QAElD,CAAC,EAAEjH,IAAI,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;QAqBZ,EAAEyJ,OAAOjJ,KAAK,CAAC2C,KAAK,CAAC,CAAC,IAAI0G,OAAO,GAAG7C,GAAG,CAACnE,CAAAA,OAAQ,CAAC;;gBAEzC,EAAEA,KAAKC,EAAE,CAAC;gBACV,EAAED,KAAKE,IAAI,CAAC;gBACZ,EAAEF,KAAKH,OAAO,GAAG,cAAc,WAAW;gBAC1C,EAAE,AAACG,CAAAA,KAAKF,QAAQ,GAAG,IAAG,EAAGsE,OAAO,CAAC,GAAG;gBACpC,EAAE,IAAIrG,KAAKiC,KAAKG,SAAS,EAAE8G,cAAc,GAAG;;QAEpD,CAAC,EAAE9J,IAAI,CAAC,IAAI;;;;;OAKb,CAAC;AACR"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/simple-commands/performance-metrics.js"],"sourcesContent":["/**\n * Real Performance Metrics Collection System\n * Tracks actual system performance, agent activity, and resource usage\n */\n\nimport { promises as fs } from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { performance } from 'perf_hooks';\n\n// Metrics storage path\nconst METRICS_DIR = path.join(process.cwd(), '.claude-flow', 'metrics');\nconst PERFORMANCE_FILE = path.join(METRICS_DIR, 'performance.json');\nconst AGENT_METRICS_FILE = path.join(METRICS_DIR, 'agent-metrics.json');\nconst TASK_METRICS_FILE = path.join(METRICS_DIR, 'task-metrics.json');\nconst SYSTEM_METRICS_FILE = path.join(METRICS_DIR, 'system-metrics.json');\n\n// In-memory metrics cache\nlet metricsCache = {\n tasks: [],\n agents: {},\n system: [],\n performance: {\n // Session information\n startTime: Date.now(),\n sessionId: `session-${Date.now()}`,\n lastActivity: Date.now(),\n sessionDuration: 0,\n\n // General task metrics\n totalTasks: 0,\n successfulTasks: 0,\n failedTasks: 0,\n totalAgents: 0,\n activeAgents: 0,\n neuralEvents: 0,\n\n // Memory mode tracking\n memoryMode: {\n reasoningbankOperations: 0,\n basicOperations: 0,\n autoModeSelections: 0,\n modeOverrides: 0,\n currentMode: 'auto'\n },\n\n // Operation type breakdown\n operations: {\n store: { count: 0, totalDuration: 0, errors: 0 },\n retrieve: { count: 0, totalDuration: 0, errors: 0 },\n query: { count: 0, totalDuration: 0, errors: 0 },\n list: { count: 0, totalDuration: 0, errors: 0 },\n delete: { count: 0, totalDuration: 0, errors: 0 },\n search: { count: 0, totalDuration: 0, errors: 0 },\n init: { count: 0, totalDuration: 0, errors: 0 }\n },\n\n // Performance statistics\n performance: {\n avgOperationDuration: 0,\n minOperationDuration: null,\n maxOperationDuration: null,\n slowOperations: 0, // Count of operations > 5s\n fastOperations: 0, // Count of operations < 100ms\n totalOperationTime: 0\n },\n\n // Memory storage statistics\n storage: {\n totalEntries: 0,\n reasoningbankEntries: 0,\n basicEntries: 0,\n databaseSize: 0,\n lastBackup: null,\n growthRate: 0\n },\n\n // Error tracking\n errors: {\n total: 0,\n byType: {},\n byOperation: {},\n recent: []\n },\n\n // ReasoningBank specific metrics\n reasoningbank: {\n semanticSearches: 0,\n sqlFallbacks: 0,\n embeddingGenerated: 0,\n consolidations: 0,\n avgQueryTime: 0,\n cacheHits: 0,\n cacheMisses: 0\n }\n }\n};\n\n// Store interval ID for cleanup\nlet systemMonitoringInterval = null;\n\n// Initialize metrics system\nexport async function initializeMetrics(startMonitoring = true) {\n try {\n await fs.mkdir(METRICS_DIR, { recursive: true });\n \n // Load existing metrics if available\n await loadMetricsFromDisk();\n \n // Start system monitoring only if requested\n if (startMonitoring) {\n startSystemMonitoring();\n }\n \n return true;\n } catch (err) {\n console.error('Failed to initialize metrics:', err);\n return false;\n }\n}\n\n// Load metrics from disk\nasync function loadMetricsFromDisk() {\n try {\n // Load performance metrics\n if (await fileExists(PERFORMANCE_FILE)) {\n const data = await fs.readFile(PERFORMANCE_FILE, 'utf8');\n const saved = JSON.parse(data);\n metricsCache.performance = { ...metricsCache.performance, ...saved };\n }\n \n // Load task metrics\n if (await fileExists(TASK_METRICS_FILE)) {\n const data = await fs.readFile(TASK_METRICS_FILE, 'utf8');\n metricsCache.tasks = JSON.parse(data);\n }\n \n // Load agent metrics\n if (await fileExists(AGENT_METRICS_FILE)) {\n const data = await fs.readFile(AGENT_METRICS_FILE, 'utf8');\n metricsCache.agents = JSON.parse(data);\n }\n } catch (err) {\n // Ignore errors, start fresh\n }\n}\n\n// Save metrics to disk\nasync function saveMetricsToDisk() {\n try {\n await fs.writeFile(PERFORMANCE_FILE, JSON.stringify(metricsCache.performance, null, 2));\n await fs.writeFile(TASK_METRICS_FILE, JSON.stringify(metricsCache.tasks, null, 2));\n await fs.writeFile(AGENT_METRICS_FILE, JSON.stringify(metricsCache.agents, null, 2));\n } catch (err) {\n // Ignore save errors\n }\n}\n\n// Track task execution\nexport async function trackTaskExecution(taskId, taskType, success, duration, metadata = {}) {\n const task = {\n id: taskId,\n type: taskType,\n success,\n duration,\n timestamp: Date.now(),\n metadata\n };\n \n metricsCache.tasks.push(task);\n metricsCache.performance.totalTasks++;\n \n if (success) {\n metricsCache.performance.successfulTasks++;\n } else {\n metricsCache.performance.failedTasks++;\n }\n \n // Keep only last 1000 tasks\n if (metricsCache.tasks.length > 1000) {\n metricsCache.tasks = metricsCache.tasks.slice(-1000);\n }\n \n await saveMetricsToDisk();\n}\n\n// Track agent activity\nexport async function trackAgentActivity(agentId, agentType, action, duration, success = true) {\n if (!metricsCache.agents[agentType]) {\n metricsCache.agents[agentType] = {\n total: 0,\n successful: 0,\n failed: 0,\n totalDuration: 0,\n actions: []\n };\n }\n \n const agent = metricsCache.agents[agentType];\n agent.total++;\n agent.totalDuration += duration;\n \n if (success) {\n agent.successful++;\n } else {\n agent.failed++;\n }\n \n agent.actions.push({\n id: agentId,\n action,\n duration,\n success,\n timestamp: Date.now()\n });\n \n // Keep only last 100 actions per agent type\n if (agent.actions.length > 100) {\n agent.actions = agent.actions.slice(-100);\n }\n \n metricsCache.performance.totalAgents = Object.keys(metricsCache.agents).length;\n \n await saveMetricsToDisk();\n}\n\n// Track neural events\nexport async function trackNeuralEvent(eventType, metadata = {}) {\n metricsCache.performance.neuralEvents++;\n\n await saveMetricsToDisk();\n}\n\n// Track memory operations\nexport async function trackMemoryOperation(operationType, mode, duration, success = true, errorType = null) {\n // Update session activity\n metricsCache.performance.lastActivity = Date.now();\n metricsCache.performance.sessionDuration = Date.now() - metricsCache.performance.startTime;\n\n // Track mode usage\n if (mode === 'reasoningbank') {\n metricsCache.performance.memoryMode.reasoningbankOperations++;\n } else if (mode === 'basic') {\n metricsCache.performance.memoryMode.basicOperations++;\n }\n\n // Track operation type\n if (metricsCache.performance.operations[operationType]) {\n const op = metricsCache.performance.operations[operationType];\n op.count++;\n op.totalDuration += duration;\n\n if (!success) {\n op.errors++;\n }\n }\n\n // Update performance statistics\n const perf = metricsCache.performance.performance;\n perf.totalOperationTime += duration;\n\n const totalOps = Object.values(metricsCache.performance.operations)\n .reduce((sum, op) => sum + op.count, 0);\n\n if (totalOps > 0) {\n perf.avgOperationDuration = perf.totalOperationTime / totalOps;\n }\n\n if (perf.minOperationDuration === null || duration < perf.minOperationDuration) {\n perf.minOperationDuration = duration;\n }\n\n if (perf.maxOperationDuration === null || duration > perf.maxOperationDuration) {\n perf.maxOperationDuration = duration;\n }\n\n if (duration > 5000) {\n perf.slowOperations++;\n } else if (duration < 100) {\n perf.fastOperations++;\n }\n\n // Track errors\n if (!success && errorType) {\n metricsCache.performance.errors.total++;\n\n // Track by type\n if (!metricsCache.performance.errors.byType[errorType]) {\n metricsCache.performance.errors.byType[errorType] = 0;\n }\n metricsCache.performance.errors.byType[errorType]++;\n\n // Track by operation\n if (!metricsCache.performance.errors.byOperation[operationType]) {\n metricsCache.performance.errors.byOperation[operationType] = 0;\n }\n metricsCache.performance.errors.byOperation[operationType]++;\n\n // Add to recent errors (keep last 20)\n metricsCache.performance.errors.recent.push({\n operation: operationType,\n type: errorType,\n timestamp: Date.now(),\n mode\n });\n\n if (metricsCache.performance.errors.recent.length > 20) {\n metricsCache.performance.errors.recent = metricsCache.performance.errors.recent.slice(-20);\n }\n }\n\n await saveMetricsToDisk();\n}\n\n// Track mode selection (auto, override)\nexport async function trackModeSelection(selectedMode, wasAutomatic = true) {\n metricsCache.performance.memoryMode.currentMode = selectedMode;\n\n if (wasAutomatic) {\n metricsCache.performance.memoryMode.autoModeSelections++;\n } else {\n metricsCache.performance.memoryMode.modeOverrides++;\n }\n\n await saveMetricsToDisk();\n}\n\n// Track ReasoningBank specific operations\nexport async function trackReasoningBankOperation(operationType, duration, metadata = {}) {\n const rb = metricsCache.performance.reasoningbank;\n\n switch (operationType) {\n case 'semantic_search':\n rb.semanticSearches++;\n break;\n case 'sql_fallback':\n rb.sqlFallbacks++;\n break;\n case 'embedding_generated':\n rb.embeddingGenerated++;\n break;\n case 'consolidation':\n rb.consolidations++;\n break;\n case 'cache_hit':\n rb.cacheHits++;\n break;\n case 'cache_miss':\n rb.cacheMisses++;\n break;\n }\n\n // Update average query time\n const totalQueries = rb.semanticSearches + rb.sqlFallbacks;\n if (totalQueries > 0) {\n rb.avgQueryTime = ((rb.avgQueryTime * (totalQueries - 1)) + duration) / totalQueries;\n }\n\n await saveMetricsToDisk();\n}\n\n// Update storage statistics\nexport async function updateStorageStats(totalEntries, reasoningbankEntries, basicEntries, databaseSize = 0) {\n const storage = metricsCache.performance.storage;\n\n const previousTotal = storage.totalEntries;\n storage.totalEntries = totalEntries;\n storage.reasoningbankEntries = reasoningbankEntries;\n storage.basicEntries = basicEntries;\n storage.databaseSize = databaseSize;\n\n // Calculate growth rate (entries per hour)\n if (previousTotal > 0) {\n const sessionHours = metricsCache.performance.sessionDuration / (1000 * 60 * 60);\n if (sessionHours > 0) {\n storage.growthRate = (totalEntries - previousTotal) / sessionHours;\n }\n }\n\n await saveMetricsToDisk();\n}\n\n// Get memory performance summary\nexport async function getMemoryPerformanceSummary() {\n const perf = metricsCache.performance;\n const totalOps = Object.values(perf.operations).reduce((sum, op) => sum + op.count, 0);\n const totalErrors = Object.values(perf.operations).reduce((sum, op) => sum + op.errors, 0);\n\n return {\n session: {\n sessionId: perf.sessionId,\n duration: perf.sessionDuration,\n startTime: new Date(perf.startTime).toISOString(),\n lastActivity: new Date(perf.lastActivity).toISOString()\n },\n mode: {\n current: perf.memoryMode.currentMode,\n reasoningbankUsage: perf.memoryMode.reasoningbankOperations,\n basicUsage: perf.memoryMode.basicOperations,\n autoSelections: perf.memoryMode.autoModeSelections,\n manualOverrides: perf.memoryMode.modeOverrides\n },\n operations: {\n total: totalOps,\n breakdown: perf.operations,\n errors: totalErrors,\n errorRate: totalOps > 0 ? (totalErrors / totalOps) * 100 : 0\n },\n performance: {\n avgDuration: perf.performance.avgOperationDuration,\n minDuration: perf.performance.minOperationDuration,\n maxDuration: perf.performance.maxOperationDuration,\n slowOps: perf.performance.slowOperations,\n fastOps: perf.performance.fastOperations\n },\n storage: perf.storage,\n reasoningbank: {\n ...perf.reasoningbank,\n fallbackRate: perf.reasoningbank.semanticSearches > 0\n ? (perf.reasoningbank.sqlFallbacks / perf.reasoningbank.semanticSearches) * 100\n : 0,\n cacheHitRate: (perf.reasoningbank.cacheHits + perf.reasoningbank.cacheMisses) > 0\n ? (perf.reasoningbank.cacheHits / (perf.reasoningbank.cacheHits + perf.reasoningbank.cacheMisses)) * 100\n : 0\n },\n errors: {\n total: perf.errors.total,\n byType: perf.errors.byType,\n byOperation: perf.errors.byOperation,\n recent: perf.errors.recent.slice(-5)\n }\n };\n}\n\n// Get performance report data\nexport async function getPerformanceReport(timeframe = '24h') {\n const now = Date.now();\n const timeframeMs = parseTimeframe(timeframe);\n const cutoff = now - timeframeMs;\n \n // Filter tasks within timeframe\n const recentTasks = metricsCache.tasks.filter(task => task.timestamp >= cutoff);\n \n // Calculate metrics\n const totalTasks = recentTasks.length;\n const successfulTasks = recentTasks.filter(t => t.success).length;\n const successRate = totalTasks > 0 ? (successfulTasks / totalTasks) * 100 : 0;\n const avgDuration = totalTasks > 0 \n ? recentTasks.reduce((sum, t) => sum + t.duration, 0) / totalTasks \n : 0;\n \n // Agent metrics\n const agentMetrics = {};\n Object.entries(metricsCache.agents).forEach(([type, data]) => {\n const recentActions = data.actions.filter(a => a.timestamp >= cutoff);\n if (recentActions.length > 0) {\n const successCount = recentActions.filter(a => a.success).length;\n const avgDur = recentActions.reduce((sum, a) => sum + a.duration, 0) / recentActions.length;\n \n agentMetrics[type] = {\n total: recentActions.length,\n successRate: (successCount / recentActions.length) * 100,\n avgDuration: avgDur\n };\n }\n });\n \n // System metrics\n const systemMetrics = await getSystemMetrics();\n \n // Calculate trends (compare to previous period)\n const prevCutoff = cutoff - timeframeMs;\n const prevTasks = metricsCache.tasks.filter(t => t.timestamp >= prevCutoff && t.timestamp < cutoff);\n const prevSuccessRate = prevTasks.length > 0 \n ? (prevTasks.filter(t => t.success).length / prevTasks.length) * 100 \n : 0;\n const prevAvgDuration = prevTasks.length > 0\n ? prevTasks.reduce((sum, t) => sum + t.duration, 0) / prevTasks.length\n : 0;\n \n const trends = {\n successRateChange: successRate - prevSuccessRate,\n durationChange: avgDuration - prevAvgDuration,\n taskVolumeChange: totalTasks - prevTasks.length\n };\n \n return {\n timeframe,\n summary: {\n totalTasks,\n successRate,\n avgDuration: avgDuration / 1000, // Convert to seconds\n agentsSpawned: Object.values(agentMetrics).reduce((sum, m) => sum + m.total, 0),\n memoryEfficiency: systemMetrics.memoryEfficiency,\n neuralEvents: metricsCache.performance.neuralEvents\n },\n agentMetrics,\n systemMetrics,\n trends,\n tasks: recentTasks.slice(-20) // Last 20 tasks\n };\n}\n\n// Get bottleneck analysis data\nexport async function getBottleneckAnalysis(scope = 'system', target = 'all') {\n const bottlenecks = [];\n const recommendations = [];\n \n // Analyze task performance\n if (scope === 'system' || scope === 'task') {\n const slowTasks = metricsCache.tasks\n .filter(t => t.duration > 10000) // Tasks taking more than 10s\n .sort((a, b) => b.duration - a.duration)\n .slice(0, 5);\n \n if (slowTasks.length > 0) {\n bottlenecks.push({\n severity: 'warning',\n component: 'Task execution',\n metric: `${slowTasks.length} slow tasks (>10s)`,\n details: slowTasks.map(t => ({\n id: t.id,\n type: t.type,\n duration: t.duration / 1000\n }))\n });\n recommendations.push('Optimize slow task types or break them into smaller subtasks');\n }\n }\n \n // Analyze agent performance\n if (scope === 'system' || scope === 'agent') {\n Object.entries(metricsCache.agents).forEach(([type, data]) => {\n const successRate = data.total > 0 ? (data.successful / data.total) * 100 : 100;\n const avgDuration = data.total > 0 ? data.totalDuration / data.total : 0;\n \n if (successRate < 80) {\n bottlenecks.push({\n severity: 'critical',\n component: `${type} agents`,\n metric: `${successRate.toFixed(1)}% success rate`,\n target: type\n });\n recommendations.push(`Investigate ${type} agent failures and improve error handling`);\n }\n \n if (avgDuration > 15000) {\n bottlenecks.push({\n severity: 'warning',\n component: `${type} agents`,\n metric: `${(avgDuration / 1000).toFixed(1)}s avg duration`,\n target: type\n });\n recommendations.push(`Optimize ${type} agent performance or increase parallelization`);\n }\n });\n }\n \n // Analyze system resources\n if (scope === 'system' || scope === 'memory') {\n const systemMetrics = await getSystemMetrics();\n \n if (systemMetrics.memoryUsagePercent > 80) {\n bottlenecks.push({\n severity: 'critical',\n component: 'Memory usage',\n metric: `${systemMetrics.memoryUsagePercent}% utilization`\n });\n recommendations.push('Implement memory optimization or increase system resources');\n }\n \n if (systemMetrics.cpuLoad > 0.8) {\n bottlenecks.push({\n severity: 'warning',\n component: 'CPU usage',\n metric: `${(systemMetrics.cpuLoad * 100).toFixed(1)}% load`\n });\n recommendations.push('Consider horizontal scaling or CPU optimization');\n }\n }\n \n // Add positive indicators\n if (bottlenecks.length === 0) {\n bottlenecks.push({\n severity: 'good',\n component: 'Overall system',\n metric: 'No bottlenecks detected'\n });\n }\n \n return {\n scope,\n target,\n bottlenecks,\n recommendations,\n analysisDuration: performance.now(),\n confidenceScore: 0.85,\n issuesDetected: bottlenecks.filter(b => b.severity !== 'good').length\n };\n}\n\n// System monitoring\nfunction startSystemMonitoring() {\n // Clear any existing interval\n if (systemMonitoringInterval) {\n clearInterval(systemMonitoringInterval);\n }\n \n // Collect system metrics every 30 seconds\n systemMonitoringInterval = setInterval(async () => {\n const metrics = await getSystemMetrics();\n \n // Store system metrics\n if (!metricsCache.system) {\n metricsCache.system = [];\n }\n \n metricsCache.system.push({\n timestamp: Date.now(),\n ...metrics\n });\n \n // Keep only last 24 hours of system metrics\n const dayAgo = Date.now() - (24 * 60 * 60 * 1000);\n metricsCache.system = metricsCache.system.filter(m => m.timestamp > dayAgo);\n \n // Save to disk\n try {\n await fs.writeFile(SYSTEM_METRICS_FILE, JSON.stringify(metricsCache.system, null, 2));\n } catch (err) {\n // Ignore save errors\n }\n }, 30000);\n \n // Allow process to exit even with active interval\n systemMonitoringInterval.unref();\n}\n\n// Stop system monitoring\nexport function stopSystemMonitoring() {\n if (systemMonitoringInterval) {\n clearInterval(systemMonitoringInterval);\n systemMonitoringInterval = null;\n }\n}\n\n// Get current system metrics\nasync function getSystemMetrics() {\n const totalMem = os.totalmem();\n const freeMem = os.freemem();\n const usedMem = totalMem - freeMem;\n const memoryUsagePercent = (usedMem / totalMem) * 100;\n \n const cpuLoad = os.loadavg()[0] / os.cpus().length; // 1-minute load average\n \n return {\n memoryTotal: totalMem,\n memoryUsed: usedMem,\n memoryFree: freeMem,\n memoryUsagePercent,\n memoryEfficiency: 100 - memoryUsagePercent,\n cpuCount: os.cpus().length,\n cpuLoad,\n platform: os.platform(),\n uptime: os.uptime()\n };\n}\n\n// Parse timeframe string to milliseconds\nfunction parseTimeframe(timeframe) {\n const units = {\n 'h': 60 * 60 * 1000,\n 'd': 24 * 60 * 60 * 1000\n };\n \n const match = timeframe.match(/^(\\d+)([hd])$/);\n if (match) {\n const value = parseInt(match[1]);\n const unit = match[2];\n return value * units[unit];\n }\n \n // Default to 24 hours\n return 24 * 60 * 60 * 1000;\n}\n\n// Check if file exists\nasync function fileExists(filepath) {\n try {\n await fs.access(filepath);\n return true;\n } catch {\n return false;\n }\n}\n\n// Cleanup function for graceful shutdown\nexport function cleanup() {\n stopSystemMonitoring();\n}\n\n// Export metrics for reporting\nexport async function exportMetrics(format = 'json') {\n const timestamp = Date.now();\n const reportsDir = path.join(process.cwd(), 'analysis-reports');\n \n await fs.mkdir(reportsDir, { recursive: true });\n \n if (format === 'json') {\n const reportPath = path.join(reportsDir, `performance-${timestamp}.json`);\n const data = {\n timestamp: new Date().toISOString(),\n performance: metricsCache.performance,\n tasks: metricsCache.tasks.slice(-100), // Last 100 tasks\n agents: metricsCache.agents,\n system: metricsCache.system.slice(-50) // Last 50 system snapshots\n };\n \n await fs.writeFile(reportPath, JSON.stringify(data, null, 2));\n return reportPath;\n }\n \n if (format === 'csv') {\n const reportPath = path.join(reportsDir, `performance-${timestamp}.csv`);\n let csv = 'Timestamp,Type,Metric,Value\\n';\n \n // Add performance metrics\n Object.entries(metricsCache.performance).forEach(([key, value]) => {\n csv += `${new Date().toISOString()},performance,${key},${value}\\n`;\n });\n \n // Add agent metrics\n Object.entries(metricsCache.agents).forEach(([type, data]) => {\n csv += `${new Date().toISOString()},agent,${type}_total,${data.total}\\n`;\n csv += `${new Date().toISOString()},agent,${type}_success_rate,${data.total > 0 ? (data.successful / data.total) * 100 : 0}\\n`;\n csv += `${new Date().toISOString()},agent,${type}_avg_duration,${data.total > 0 ? data.totalDuration / data.total : 0}\\n`;\n });\n \n await fs.writeFile(reportPath, csv);\n return reportPath;\n }\n \n if (format === 'html') {\n const reportPath = path.join(reportsDir, `performance-${timestamp}.html`);\n const report = await getPerformanceReport('24h');\n \n const html = generateHTMLReport(report);\n await fs.writeFile(reportPath, html);\n return reportPath;\n }\n \n throw new Error(`Unsupported format: ${format}`);\n}\n\n// Generate HTML report\nfunction generateHTMLReport(report) {\n return `<!DOCTYPE html>\n<html>\n<head>\n <title>Claude Flow Performance Report - ${new Date().toISOString()}</title>\n <style>\n body { font-family: Arial, sans-serif; margin: 20px; background: #f5f5f5; }\n .container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }\n h1, h2 { color: #333; }\n .metric { display: inline-block; margin: 10px 20px 10px 0; }\n .metric-label { color: #666; font-size: 14px; }\n .metric-value { font-size: 24px; font-weight: bold; color: #2196F3; }\n .trend { font-size: 14px; margin-left: 10px; }\n .trend.positive { color: #4CAF50; }\n .trend.negative { color: #F44336; }\n table { width: 100%; border-collapse: collapse; margin: 20px 0; }\n th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }\n th { background: #f5f5f5; font-weight: bold; }\n .chart { margin: 20px 0; height: 300px; background: #fafafa; border: 1px solid #ddd; border-radius: 4px; display: flex; align-items: center; justify-content: center; color: #999; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <h1>Claude Flow Performance Report</h1>\n <p>Generated: ${new Date().toISOString()} | Timeframe: ${report.timeframe}</p>\n \n <h2>Summary Metrics</h2>\n <div class=\"metrics\">\n <div class=\"metric\">\n <div class=\"metric-label\">Total Tasks</div>\n <div class=\"metric-value\">${report.summary.totalTasks}</div>\n ${report.trends.taskVolumeChange !== 0 ? `<span class=\"trend ${report.trends.taskVolumeChange > 0 ? 'positive' : 'negative'}\">${report.trends.taskVolumeChange > 0 ? '+' : ''}${report.trends.taskVolumeChange}</span>` : ''}\n </div>\n <div class=\"metric\">\n <div class=\"metric-label\">Success Rate</div>\n <div class=\"metric-value\">${report.summary.successRate.toFixed(1)}%</div>\n ${report.trends.successRateChange !== 0 ? `<span class=\"trend ${report.trends.successRateChange > 0 ? 'positive' : 'negative'}\">${report.trends.successRateChange > 0 ? '+' : ''}${report.trends.successRateChange.toFixed(1)}%</span>` : ''}\n </div>\n <div class=\"metric\">\n <div class=\"metric-label\">Avg Duration</div>\n <div class=\"metric-value\">${report.summary.avgDuration.toFixed(1)}s</div>\n ${report.trends.durationChange !== 0 ? `<span class=\"trend ${report.trends.durationChange < 0 ? 'positive' : 'negative'}\">${report.trends.durationChange > 0 ? '+' : ''}${(report.trends.durationChange / 1000).toFixed(1)}s</span>` : ''}\n </div>\n <div class=\"metric\">\n <div class=\"metric-label\">Memory Efficiency</div>\n <div class=\"metric-value\">${report.summary.memoryEfficiency.toFixed(0)}%</div>\n </div>\n </div>\n \n <h2>Agent Performance</h2>\n <table>\n <thead>\n <tr>\n <th>Agent Type</th>\n <th>Total Actions</th>\n <th>Success Rate</th>\n <th>Avg Duration</th>\n </tr>\n </thead>\n <tbody>\n ${Object.entries(report.agentMetrics).map(([type, metrics]) => `\n <tr>\n <td>${type}</td>\n <td>${metrics.total}</td>\n <td>${metrics.successRate.toFixed(1)}%</td>\n <td>${(metrics.avgDuration / 1000).toFixed(1)}s</td>\n </tr>\n `).join('')}\n </tbody>\n </table>\n \n <h2>Performance Trends</h2>\n <div class=\"chart\">\n <p>Interactive charts would be displayed here</p>\n </div>\n \n <h2>Recent Tasks</h2>\n <table>\n <thead>\n <tr>\n <th>Task ID</th>\n <th>Type</th>\n <th>Status</th>\n <th>Duration</th>\n <th>Timestamp</th>\n </tr>\n </thead>\n <tbody>\n ${report.tasks.slice(-10).reverse().map(task => `\n <tr>\n <td>${task.id}</td>\n <td>${task.type}</td>\n <td>${task.success ? '✅ Success' : '❌ Failed'}</td>\n <td>${(task.duration / 1000).toFixed(2)}s</td>\n <td>${new Date(task.timestamp).toLocaleString()}</td>\n </tr>\n `).join('')}\n </tbody>\n </table>\n </div>\n</body>\n</html>`;\n}"],"names":["promises","fs","path","os","performance","METRICS_DIR","join","process","cwd","PERFORMANCE_FILE","AGENT_METRICS_FILE","TASK_METRICS_FILE","SYSTEM_METRICS_FILE","metricsCache","tasks","agents","system","startTime","Date","now","sessionId","lastActivity","sessionDuration","totalTasks","successfulTasks","failedTasks","totalAgents","activeAgents","neuralEvents","memoryMode","reasoningbankOperations","basicOperations","autoModeSelections","modeOverrides","currentMode","operations","store","count","totalDuration","errors","retrieve","query","list","delete","search","init","avgOperationDuration","minOperationDuration","maxOperationDuration","slowOperations","fastOperations","totalOperationTime","storage","totalEntries","reasoningbankEntries","basicEntries","databaseSize","lastBackup","growthRate","total","byType","byOperation","recent","reasoningbank","semanticSearches","sqlFallbacks","embeddingGenerated","consolidations","avgQueryTime","cacheHits","cacheMisses","systemMonitoringInterval","initializeMetrics","startMonitoring","mkdir","recursive","loadMetricsFromDisk","startSystemMonitoring","err","console","error","fileExists","data","readFile","saved","JSON","parse","saveMetricsToDisk","writeFile","stringify","trackTaskExecution","taskId","taskType","success","duration","metadata","task","id","type","timestamp","push","length","slice","trackAgentActivity","agentId","agentType","action","successful","failed","actions","agent","Object","keys","trackNeuralEvent","eventType","trackMemoryOperation","operationType","mode","errorType","op","perf","totalOps","values","reduce","sum","operation","trackModeSelection","selectedMode","wasAutomatic","trackReasoningBankOperation","rb","totalQueries","updateStorageStats","previousTotal","sessionHours","getMemoryPerformanceSummary","totalErrors","session","toISOString","current","reasoningbankUsage","basicUsage","autoSelections","manualOverrides","breakdown","errorRate","avgDuration","minDuration","maxDuration","slowOps","fastOps","fallbackRate","cacheHitRate","getPerformanceReport","timeframe","timeframeMs","parseTimeframe","cutoff","recentTasks","filter","t","successRate","agentMetrics","entries","forEach","recentActions","a","successCount","avgDur","systemMetrics","getSystemMetrics","prevCutoff","prevTasks","prevSuccessRate","prevAvgDuration","trends","successRateChange","durationChange","taskVolumeChange","summary","agentsSpawned","m","memoryEfficiency","getBottleneckAnalysis","scope","target","bottlenecks","recommendations","slowTasks","sort","b","severity","component","metric","details","map","toFixed","memoryUsagePercent","cpuLoad","analysisDuration","confidenceScore","issuesDetected","clearInterval","setInterval","metrics","dayAgo","unref","stopSystemMonitoring","totalMem","totalmem","freeMem","freemem","usedMem","loadavg","cpus","memoryTotal","memoryUsed","memoryFree","cpuCount","platform","uptime","units","match","value","parseInt","unit","filepath","access","cleanup","exportMetrics","format","reportsDir","reportPath","csv","key","report","html","generateHTMLReport","Error","reverse","toLocaleString"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/validation-helper.
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/validation-helper.ts"],"sourcesContent":["/**\n * CLI Parameter Validation Helper\n * Provides standardized error messages for invalid parameters\n */\n\nimport { HelpFormatter } from './help-formatter.js';\n\nexport class ValidationHelper {\n /**\n * Validate enum parameter\n */\n static validateEnum(\n value: string,\n paramName: string,\n validOptions: string[],\n commandPath: string,\n ): void {\n if (!validOptions.includes(value)) {\n console.error(\n HelpFormatter.formatValidationError(value, paramName, validOptions, commandPath),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate numeric parameter\n */\n static validateNumber(\n value: string,\n paramName: string,\n min?: number,\n max?: number,\n commandPath?: string,\n ): number {\n const num = parseInt(value, 10);\n\n if (isNaN(num)) {\n console.error(\n HelpFormatter.formatError(\n `'${value}' is not a valid number for ${paramName}.`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n if (min !== undefined && num < min) {\n console.error(\n HelpFormatter.formatError(\n `${paramName} must be at least ${min}. Got: ${num}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n if (max !== undefined && num > max) {\n console.error(\n HelpFormatter.formatError(\n `${paramName} must be at most ${max}. Got: ${num}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n return num;\n }\n\n /**\n * Validate required parameter\n */\n static validateRequired(value: any, paramName: string, commandPath?: string): void {\n if (!value || (typeof value === 'string' && value.trim() === '')) {\n console.error(\n HelpFormatter.formatError(\n `Missing required parameter: ${paramName}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate file path exists\n */\n static async validateFilePath(\n path: string,\n paramName: string,\n commandPath?: string,\n ): Promise<void> {\n try {\n const fs = await import('fs/promises');\n await fs.access(path);\n } catch (error) {\n console.error(\n HelpFormatter.formatError(\n `File not found for ${paramName}: ${path}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate boolean flag\n */\n static validateBoolean(value: string, paramName: string, commandPath?: string): boolean {\n const lowerValue = value.toLowerCase();\n if (lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes') {\n return true;\n }\n if (lowerValue === 'false' || lowerValue === '0' || lowerValue === 'no') {\n return false;\n }\n\n console.error(\n HelpFormatter.formatError(\n `'${value}' is not a valid boolean for ${paramName}. Use: true, false, yes, no, 1, or 0.`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n}\n"],"names":["HelpFormatter","ValidationHelper","validateEnum","value","paramName","validOptions","commandPath","includes","console","error","formatValidationError","process","exit","validateNumber","min","max","num","parseInt","isNaN","formatError","undefined","validateRequired","trim","validateFilePath","path","fs","access","validateBoolean","lowerValue","toLowerCase"],"mappings":"AAKA,SAASA,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC;IAIX,OAAOC,aACLC,KAAa,EACbC,SAAiB,EACjBC,YAAsB,EACtBC,WAAmB,EACb;QACN,IAAI,CAACD,aAAaE,QAAQ,CAACJ,QAAQ;YACjCK,QAAQC,KAAK,CACXT,cAAcU,qBAAqB,CAACP,OAAOC,WAAWC,cAAcC;YAEtEK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,OAAOC,eACLV,KAAa,EACbC,SAAiB,EACjBU,GAAY,EACZC,GAAY,EACZT,WAAoB,EACZ;QACR,MAAMU,MAAMC,SAASd,OAAO;QAE5B,IAAIe,MAAMF,MAAM;YACdR,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,CAAC,EAAEhB,MAAM,4BAA4B,EAAEC,UAAU,CAAC,CAAC,EACpDE,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,IAAIE,QAAQM,aAAaJ,MAAMF,KAAK;YAClCN,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,GAAGf,UAAU,kBAAkB,EAAEU,IAAI,OAAO,EAAEE,KAAK,EACnDV,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,IAAIG,QAAQK,aAAaJ,MAAMD,KAAK;YAClCP,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,GAAGf,UAAU,iBAAiB,EAAEW,IAAI,OAAO,EAAEC,KAAK,EAClDV,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,OAAOI;IACT;IAKA,OAAOK,iBAAiBlB,KAAU,EAAEC,SAAiB,EAAEE,WAAoB,EAAQ;QACjF,IAAI,CAACH,SAAU,OAAOA,UAAU,YAAYA,MAAMmB,IAAI,OAAO,IAAK;YAChEd,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,4BAA4B,EAAEf,WAAW,EAC1CE,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,aAAaW,iBACXC,IAAY,EACZpB,SAAiB,EACjBE,WAAoB,EACL;QACf,IAAI;YACF,MAAMmB,KAAK,MAAM,MAAM,CAAC;YACxB,MAAMA,GAAGC,MAAM,CAACF;QAClB,EAAE,OAAOf,OAAO;YACdD,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,mBAAmB,EAAEf,UAAU,EAAE,EAAEoB,MAAM,EAC1ClB,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,OAAOe,gBAAgBxB,KAAa,EAAEC,SAAiB,EAAEE,WAAoB,EAAW;QACtF,MAAMsB,aAAazB,MAAM0B,WAAW;QACpC,IAAID,eAAe,UAAUA,eAAe,OAAOA,eAAe,OAAO;YACvE,OAAO;QACT;QACA,IAAIA,eAAe,WAAWA,eAAe,OAAOA,eAAe,MAAM;YACvE,OAAO;QACT;QAEApB,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,CAAC,EAAEhB,MAAM,6BAA6B,EAAEC,UAAU,qCAAqC,CAAC,EACzFE,eAAe;QAGnBK,QAAQC,IAAI,CAAC;IACf;AACF"}
|
package/dist/src/core/version.js
CHANGED