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,144 +1,283 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as ReasoningBank from 'agentic-flow/reasoningbank';
|
|
2
2
|
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
let backendInitialized = false;
|
|
4
|
+
let initPromise = null;
|
|
5
|
+
const queryCache = new Map();
|
|
6
|
+
const CACHE_SIZE = 100;
|
|
7
|
+
const CACHE_TTL = 60000;
|
|
8
|
+
async function ensureInitialized() {
|
|
9
|
+
if (backendInitialized) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (initPromise) {
|
|
13
|
+
return initPromise;
|
|
14
|
+
}
|
|
15
|
+
initPromise = (async ()=>{
|
|
16
|
+
try {
|
|
17
|
+
await ReasoningBank.initialize();
|
|
18
|
+
backendInitialized = true;
|
|
19
|
+
console.log('[ReasoningBank] Node.js backend initialized successfully');
|
|
20
|
+
return true;
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error('[ReasoningBank] Backend initialization failed:', error);
|
|
23
|
+
throw new Error(`Failed to initialize ReasoningBank: ${error.message}`);
|
|
24
|
+
}
|
|
25
|
+
})();
|
|
26
|
+
return initPromise;
|
|
27
|
+
}
|
|
3
28
|
export async function initializeReasoningBank() {
|
|
4
|
-
|
|
5
|
-
await initialize();
|
|
29
|
+
await ensureInitialized();
|
|
6
30
|
return true;
|
|
7
31
|
}
|
|
8
32
|
export async function storeMemory(key, value, options = {}) {
|
|
9
|
-
|
|
10
|
-
const memory = {
|
|
11
|
-
id: memoryId,
|
|
12
|
-
type: options.type || 'fact',
|
|
13
|
-
pattern_data: JSON.stringify({
|
|
14
|
-
key,
|
|
15
|
-
value,
|
|
16
|
-
namespace: options.namespace || 'default',
|
|
17
|
-
agent: options.agent || 'memory-agent',
|
|
18
|
-
domain: options.domain || 'general'
|
|
19
|
-
}),
|
|
20
|
-
confidence: options.confidence || 0.8,
|
|
21
|
-
usage_count: 0,
|
|
22
|
-
created_at: new Date().toISOString()
|
|
23
|
-
};
|
|
24
|
-
db.upsertMemory(memory);
|
|
33
|
+
await ensureInitialized();
|
|
25
34
|
try {
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const memoryId = options.id || uuidv4();
|
|
36
|
+
const memory = {
|
|
37
|
+
id: memoryId,
|
|
38
|
+
type: 'reasoning_memory',
|
|
39
|
+
pattern_data: {
|
|
40
|
+
title: key,
|
|
41
|
+
content: value,
|
|
42
|
+
domain: options.namespace || 'default',
|
|
43
|
+
agent: options.agent || 'memory-agent',
|
|
44
|
+
task_type: options.type || 'fact',
|
|
45
|
+
original_key: key,
|
|
46
|
+
original_value: value,
|
|
47
|
+
namespace: options.namespace || 'default'
|
|
48
|
+
},
|
|
49
|
+
confidence: options.confidence || 0.8,
|
|
50
|
+
usage_count: 0
|
|
51
|
+
};
|
|
52
|
+
ReasoningBank.db.upsertMemory(memory);
|
|
53
|
+
try {
|
|
54
|
+
const embedding = await ReasoningBank.computeEmbedding(value);
|
|
55
|
+
ReasoningBank.db.upsertEmbedding({
|
|
56
|
+
id: memoryId,
|
|
57
|
+
model: 'text-embedding-3-small',
|
|
58
|
+
dims: embedding.length,
|
|
59
|
+
vector: embedding
|
|
60
|
+
});
|
|
61
|
+
} catch (embeddingError) {
|
|
62
|
+
console.warn('[ReasoningBank] Failed to generate embedding:', embeddingError.message);
|
|
63
|
+
}
|
|
64
|
+
queryCache.clear();
|
|
65
|
+
return memoryId;
|
|
37
66
|
} catch (error) {
|
|
38
|
-
console.
|
|
67
|
+
console.error('[ReasoningBank] storeMemory failed:', error);
|
|
68
|
+
throw new Error(`Failed to store memory: ${error.message}`);
|
|
39
69
|
}
|
|
40
|
-
return memoryId;
|
|
41
70
|
}
|
|
42
71
|
export async function queryMemories(searchQuery, options = {}) {
|
|
72
|
+
const cached = getCachedQuery(searchQuery, options);
|
|
73
|
+
if (cached) {
|
|
74
|
+
return cached;
|
|
75
|
+
}
|
|
76
|
+
await ensureInitialized();
|
|
77
|
+
const limit = options.limit || 10;
|
|
78
|
+
const namespace = options.namespace || options.domain || 'default';
|
|
43
79
|
try {
|
|
44
|
-
const
|
|
45
|
-
domain:
|
|
46
|
-
agent: options.agent || '
|
|
47
|
-
k:
|
|
80
|
+
const results = await ReasoningBank.retrieveMemories(searchQuery, {
|
|
81
|
+
domain: namespace,
|
|
82
|
+
agent: options.agent || 'query-agent',
|
|
83
|
+
k: limit,
|
|
84
|
+
minConfidence: options.minConfidence || 0.3
|
|
48
85
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
const memories = results.map((memory)=>({
|
|
87
|
+
id: memory.id,
|
|
88
|
+
key: memory.title || 'unknown',
|
|
89
|
+
value: memory.content || memory.description || '',
|
|
90
|
+
namespace: namespace,
|
|
91
|
+
confidence: memory.components?.reliability || 0.8,
|
|
92
|
+
usage_count: memory.usage_count || 0,
|
|
93
|
+
created_at: memory.created_at || new Date().toISOString(),
|
|
94
|
+
score: memory.score || 0,
|
|
95
|
+
_pattern: memory
|
|
96
|
+
}));
|
|
97
|
+
if (memories.length === 0) {
|
|
98
|
+
console.warn('[ReasoningBank] Semantic search returned 0 results, trying database fallback');
|
|
99
|
+
const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({
|
|
100
|
+
domain: namespace,
|
|
101
|
+
minConfidence: options.minConfidence || 0.3
|
|
102
|
+
});
|
|
103
|
+
const fallbackMemories = fallbackResults.slice(0, limit).map((memory)=>({
|
|
104
|
+
id: memory.id,
|
|
105
|
+
key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',
|
|
106
|
+
value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',
|
|
107
|
+
namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',
|
|
108
|
+
confidence: memory.confidence || 0.8,
|
|
109
|
+
usage_count: memory.usage_count || 0,
|
|
110
|
+
created_at: memory.created_at || new Date().toISOString()
|
|
111
|
+
}));
|
|
112
|
+
setCachedQuery(searchQuery, options, fallbackMemories);
|
|
113
|
+
return fallbackMemories;
|
|
114
|
+
}
|
|
115
|
+
setCachedQuery(searchQuery, options, memories);
|
|
116
|
+
return memories;
|
|
66
117
|
} catch (error) {
|
|
67
|
-
console.warn('[ReasoningBank]
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
}).filter(Boolean);
|
|
118
|
+
console.warn('[ReasoningBank] Query failed, trying database fallback:', error.message);
|
|
119
|
+
try {
|
|
120
|
+
const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({
|
|
121
|
+
domain: namespace,
|
|
122
|
+
minConfidence: options.minConfidence || 0.3
|
|
123
|
+
});
|
|
124
|
+
const fallbackMemories = fallbackResults.slice(0, limit).map((memory)=>({
|
|
125
|
+
id: memory.id,
|
|
126
|
+
key: memory.pattern_data?.title || 'unknown',
|
|
127
|
+
value: memory.pattern_data?.content || '',
|
|
128
|
+
namespace: memory.pattern_data?.domain || 'default',
|
|
129
|
+
confidence: memory.confidence || 0.8,
|
|
130
|
+
usage_count: memory.usage_count || 0,
|
|
131
|
+
created_at: memory.created_at || new Date().toISOString()
|
|
132
|
+
}));
|
|
133
|
+
setCachedQuery(searchQuery, options, fallbackMemories);
|
|
134
|
+
return fallbackMemories;
|
|
135
|
+
} catch (fallbackError) {
|
|
136
|
+
console.error('[ReasoningBank] All query methods failed:', fallbackError);
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
91
139
|
}
|
|
92
140
|
}
|
|
93
141
|
export async function listMemories(options = {}) {
|
|
94
|
-
|
|
142
|
+
await ensureInitialized();
|
|
95
143
|
const limit = options.limit || 10;
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
try {
|
|
105
|
-
const data = JSON.parse(row.pattern_data);
|
|
106
|
-
return {
|
|
107
|
-
id: row.id,
|
|
108
|
-
key: data.key,
|
|
109
|
-
value: data.value,
|
|
110
|
-
namespace: data.namespace,
|
|
111
|
-
confidence: row.confidence,
|
|
112
|
-
usage_count: row.usage_count,
|
|
113
|
-
created_at: row.created_at
|
|
114
|
-
};
|
|
115
|
-
} catch {
|
|
116
|
-
return null;
|
|
144
|
+
const namespace = options.namespace;
|
|
145
|
+
try {
|
|
146
|
+
let memories;
|
|
147
|
+
if (namespace && namespace !== 'default') {
|
|
148
|
+
const allMemories = ReasoningBank.db.getAllActiveMemories();
|
|
149
|
+
memories = allMemories.filter((m)=>m.pattern_data?.domain === namespace).slice(0, limit);
|
|
150
|
+
} else {
|
|
151
|
+
memories = ReasoningBank.db.getAllActiveMemories().slice(0, limit);
|
|
117
152
|
}
|
|
118
|
-
|
|
153
|
+
return memories.map((memory)=>({
|
|
154
|
+
id: memory.id,
|
|
155
|
+
key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',
|
|
156
|
+
value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',
|
|
157
|
+
namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',
|
|
158
|
+
confidence: memory.confidence || 0.8,
|
|
159
|
+
usage_count: memory.usage_count || 0,
|
|
160
|
+
created_at: memory.created_at || new Date().toISOString()
|
|
161
|
+
}));
|
|
162
|
+
} catch (error) {
|
|
163
|
+
console.error('[ReasoningBank] listMemories failed:', error);
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
119
166
|
}
|
|
120
167
|
export async function getStatus() {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
168
|
+
await ensureInitialized();
|
|
169
|
+
try {
|
|
170
|
+
const db = ReasoningBank.db.getDb();
|
|
171
|
+
const patterns = db.prepare("SELECT COUNT(*) as count FROM patterns WHERE type = 'reasoning_memory'").get();
|
|
172
|
+
const embeddings = db.prepare("SELECT COUNT(*) as count FROM pattern_embeddings").get();
|
|
173
|
+
const trajectories = db.prepare("SELECT COUNT(*) as count FROM task_trajectories").get();
|
|
174
|
+
const links = db.prepare("SELECT COUNT(*) as count FROM pattern_links").get();
|
|
175
|
+
const avgConf = db.prepare("SELECT AVG(confidence) as avg FROM patterns WHERE type = 'reasoning_memory'").get();
|
|
176
|
+
const domains = db.prepare("SELECT COUNT(DISTINCT json_extract(pattern_data, '$.domain')) as count FROM patterns WHERE type = 'reasoning_memory'").get();
|
|
177
|
+
return {
|
|
178
|
+
total_memories: patterns.count || 0,
|
|
179
|
+
total_categories: domains.count || 0,
|
|
180
|
+
storage_backend: 'SQLite (Node.js)',
|
|
181
|
+
database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db',
|
|
182
|
+
performance: 'SQLite with persistent storage',
|
|
183
|
+
avg_confidence: avgConf.avg || 0.8,
|
|
184
|
+
total_embeddings: embeddings.count || 0,
|
|
185
|
+
total_trajectories: trajectories.count || 0,
|
|
186
|
+
total_links: links.count || 0
|
|
187
|
+
};
|
|
188
|
+
} catch (error) {
|
|
189
|
+
console.error('[ReasoningBank] getStatus failed:', error);
|
|
190
|
+
return {
|
|
191
|
+
total_memories: 0,
|
|
192
|
+
error: error.message
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
export async function checkReasoningBankTables() {
|
|
197
|
+
try {
|
|
198
|
+
await ensureInitialized();
|
|
199
|
+
const db = ReasoningBank.db.getDb();
|
|
200
|
+
const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'pattern%'").all();
|
|
201
|
+
const tableNames = tables.map((t)=>t.name);
|
|
202
|
+
const requiredTables = [
|
|
203
|
+
'patterns',
|
|
204
|
+
'pattern_embeddings',
|
|
205
|
+
'pattern_links',
|
|
206
|
+
'task_trajectories'
|
|
207
|
+
];
|
|
208
|
+
const missingTables = requiredTables.filter((t)=>!tableNames.includes(t));
|
|
209
|
+
return {
|
|
210
|
+
exists: true,
|
|
211
|
+
existingTables: tableNames,
|
|
212
|
+
missingTables: missingTables,
|
|
213
|
+
requiredTables: requiredTables,
|
|
214
|
+
backend: 'SQLite (Node.js)',
|
|
215
|
+
note: missingTables.length > 0 ? 'Some tables are missing - run migrations' : 'All tables present'
|
|
216
|
+
};
|
|
217
|
+
} catch (error) {
|
|
218
|
+
return {
|
|
219
|
+
exists: false,
|
|
220
|
+
existingTables: [],
|
|
221
|
+
missingTables: [],
|
|
222
|
+
requiredTables: [],
|
|
223
|
+
error: error.message
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
export async function migrateReasoningBank() {
|
|
228
|
+
try {
|
|
229
|
+
await ReasoningBank.db.runMigrations();
|
|
230
|
+
return {
|
|
231
|
+
success: true,
|
|
232
|
+
message: 'Database migrations completed successfully',
|
|
233
|
+
migrated: true,
|
|
234
|
+
database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db'
|
|
235
|
+
};
|
|
236
|
+
} catch (error) {
|
|
237
|
+
return {
|
|
238
|
+
success: false,
|
|
239
|
+
message: `Migration failed: ${error.message}`,
|
|
240
|
+
error: error.message
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function getCachedQuery(searchQuery, options) {
|
|
245
|
+
const cacheKey = JSON.stringify({
|
|
246
|
+
searchQuery,
|
|
247
|
+
options
|
|
248
|
+
});
|
|
249
|
+
const cached = queryCache.get(cacheKey);
|
|
250
|
+
if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
|
|
251
|
+
return cached.results;
|
|
252
|
+
}
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
function setCachedQuery(searchQuery, options, results) {
|
|
256
|
+
const cacheKey = JSON.stringify({
|
|
257
|
+
searchQuery,
|
|
258
|
+
options
|
|
259
|
+
});
|
|
260
|
+
if (queryCache.size >= CACHE_SIZE) {
|
|
261
|
+
const firstKey = queryCache.keys().next().value;
|
|
262
|
+
queryCache.delete(firstKey);
|
|
263
|
+
}
|
|
264
|
+
queryCache.set(cacheKey, {
|
|
265
|
+
results,
|
|
266
|
+
timestamp: Date.now()
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
export function cleanup() {
|
|
270
|
+
try {
|
|
271
|
+
if (backendInitialized) {
|
|
272
|
+
ReasoningBank.clearEmbeddingCache();
|
|
273
|
+
ReasoningBank.db.closeDb();
|
|
274
|
+
backendInitialized = false;
|
|
275
|
+
initPromise = null;
|
|
276
|
+
console.log('[ReasoningBank] Database connection closed');
|
|
277
|
+
}
|
|
278
|
+
} catch (error) {
|
|
279
|
+
console.error('[ReasoningBank] Cleanup failed:', error.message);
|
|
280
|
+
}
|
|
142
281
|
}
|
|
143
282
|
|
|
144
283
|
//# sourceMappingURL=reasoningbank-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/reasoningbank/reasoningbank-adapter.js"],"sourcesContent":["/**\n * ReasoningBank Adapter for Claude-Flow\n *\n * Wraps agentic-flow's ReasoningBank SDK for use in claude-flow memory commands\n */\n\nimport { db, initialize, retrieveMemories, computeEmbedding, loadConfig } from 'agentic-flow/dist/reasoningbank/index.js';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * Initialize ReasoningBank database\n */\nexport async function initializeReasoningBank() {\n // Set database path\n process.env.CLAUDE_FLOW_DB_PATH = '.swarm/memory.db';\n\n await initialize();\n return true;\n}\n\n/**\n * Store a memory in ReasoningBank\n */\nexport async function storeMemory(key, value, options = {}) {\n const memoryId = `mem_${uuidv4()}`;\n\n const memory = {\n id: memoryId,\n type: options.type || 'fact',\n pattern_data: JSON.stringify({\n key,\n value,\n namespace: options.namespace || 'default',\n agent: options.agent || 'memory-agent',\n domain: options.domain || 'general',\n }),\n confidence: options.confidence || 0.8,\n usage_count: 0,\n created_at: new Date().toISOString(),\n };\n\n // Store memory\n db.upsertMemory(memory);\n\n // Compute and store embedding for semantic search\n try {\n const config = loadConfig();\n const embeddingModel = config.embeddings.provider || 'claude';\n\n const embedding = await computeEmbedding(`${key}: ${value}`);\n const vectorArray = new Float32Array(embedding);\n\n db.upsertEmbedding({\n memory_id: memoryId,\n vector: vectorArray,\n model: embeddingModel, // Dynamic model from config\n dims: vectorArray.length, // Required: embedding dimensions\n created_at: new Date().toISOString(),\n });\n } catch (error) {\n console.warn('[ReasoningBank] Warning: Could not compute embedding:', error.message);\n // Continue without embedding - memory is still stored\n }\n\n return memoryId;\n}\n\n/**\n * Query memories from ReasoningBank\n */\nexport async function queryMemories(searchQuery, options = {}) {\n try {\n // Use ReasoningBank's semantic retrieval\n const memories = await retrieveMemories(searchQuery, {\n domain: options.domain || 'general',\n agent: options.agent || 'memory-agent',\n k: options.limit || 10,\n });\n\n return memories.map(mem => {\n try {\n const data = JSON.parse(mem.pattern_data);\n return {\n id: mem.id,\n key: data.key,\n value: data.value,\n namespace: data.namespace,\n confidence: mem.confidence,\n usage_count: mem.usage_count,\n created_at: mem.created_at,\n score: mem.score || 0,\n };\n } catch {\n return null;\n }\n }).filter(Boolean);\n } catch (error) {\n // Fallback to simple query if semantic search fails\n console.warn('[ReasoningBank] Semantic search failed, using simple query:', error.message);\n\n const dbInstance = db.getDb();\n const rows = dbInstance.prepare(`\n SELECT * FROM patterns\n WHERE pattern_data LIKE ?\n ORDER BY confidence DESC, usage_count DESC\n LIMIT ?\n `).all(`%${searchQuery}%`, options.limit || 10);\n\n return rows.map(row => {\n try {\n const data = JSON.parse(row.pattern_data);\n return {\n id: row.id,\n key: data.key,\n value: data.value,\n namespace: data.namespace,\n confidence: row.confidence,\n usage_count: row.usage_count,\n created_at: row.created_at,\n };\n } catch {\n return null;\n }\n }).filter(Boolean);\n }\n}\n\n/**\n * List all memories\n */\nexport async function listMemories(options = {}) {\n const dbInstance = db.getDb();\n\n const limit = options.limit || 10;\n const sortBy = options.sort || 'created_at';\n const sortOrder = options.order || 'DESC';\n\n const rows = dbInstance.prepare(`\n SELECT * FROM patterns\n ORDER BY ${sortBy} ${sortOrder}\n LIMIT ?\n `).all(limit);\n\n return rows.map(row => {\n try {\n const data = JSON.parse(row.pattern_data);\n return {\n id: row.id,\n key: data.key,\n value: data.value,\n namespace: data.namespace,\n confidence: row.confidence,\n usage_count: row.usage_count,\n created_at: row.created_at,\n };\n } catch {\n return null;\n }\n }).filter(Boolean);\n}\n\n/**\n * Get ReasoningBank statistics\n */\nexport async function getStatus() {\n const dbInstance = db.getDb();\n\n const stats = dbInstance.prepare(`\n SELECT\n COUNT(*) as total_memories,\n AVG(confidence) as avg_confidence,\n SUM(usage_count) as total_usage\n FROM patterns\n `).get();\n\n const embeddingCount = dbInstance.prepare(`\n SELECT COUNT(*) as count FROM pattern_embeddings\n `).get();\n\n const trajectoryCount = dbInstance.prepare(`\n SELECT COUNT(*) as count FROM task_trajectories\n `).get();\n\n return {\n total_memories: stats.total_memories || 0,\n avg_confidence: stats.avg_confidence || 0,\n total_usage: stats.total_usage || 0,\n total_embeddings: embeddingCount.count || 0,\n total_trajectories: trajectoryCount.count || 0,\n };\n}\n"],"names":["db","initialize","retrieveMemories","computeEmbedding","loadConfig","v4","uuidv4","initializeReasoningBank","process","env","CLAUDE_FLOW_DB_PATH","storeMemory","key","value","options","memoryId","memory","id","type","pattern_data","JSON","stringify","namespace","agent","domain","confidence","usage_count","created_at","Date","toISOString","upsertMemory","config","embeddingModel","embeddings","provider","embedding","vectorArray","Float32Array","upsertEmbedding","memory_id","vector","model","dims","length","error","console","warn","message","queryMemories","searchQuery","memories","k","limit","map","mem","data","parse","score","filter","Boolean","dbInstance","getDb","rows","prepare","all","row","listMemories","sortBy","sort","sortOrder","order","getStatus","stats","get","embeddingCount","trajectoryCount","total_memories","avg_confidence","total_usage","total_embeddings","count","total_trajectories"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/reasoningbank/reasoningbank-adapter.js"],"sourcesContent":["/**\n * ReasoningBank Adapter for Claude-Flow (Node.js Backend)\n *\n * Uses agentic-flow@1.5.13 Node.js backend with SQLite for persistent storage\n * Provides semantic search via embeddings and MMR ranking\n *\n * Backend: SQLite with better-sqlite3\n * Features: Persistent storage, semantic search, memory consolidation\n */\n\nimport * as ReasoningBank from 'agentic-flow/reasoningbank';\nimport { v4 as uuidv4 } from 'uuid';\n\n// Backend instance (singleton)\nlet backendInitialized = false;\nlet initPromise = null;\n\n// Query result cache (LRU)\nconst queryCache = new Map();\nconst CACHE_SIZE = 100;\nconst CACHE_TTL = 60000; // 60 seconds\n\n/**\n * Initialize ReasoningBank Node.js backend\n * @returns {Promise<boolean>}\n */\nasync function ensureInitialized() {\n if (backendInitialized) {\n return true;\n }\n\n if (initPromise) {\n return initPromise;\n }\n\n initPromise = (async () => {\n try {\n // Initialize Node.js backend with SQLite database\n await ReasoningBank.initialize();\n backendInitialized = true;\n console.log('[ReasoningBank] Node.js backend initialized successfully');\n return true;\n } catch (error) {\n console.error('[ReasoningBank] Backend initialization failed:', error);\n throw new Error(`Failed to initialize ReasoningBank: ${error.message}`);\n }\n })();\n\n return initPromise;\n}\n\n/**\n * Initialize ReasoningBank database (Node.js version)\n */\nexport async function initializeReasoningBank() {\n // Initialize the Node.js backend\n await ensureInitialized();\n return true;\n}\n\n/**\n * Store a memory in ReasoningBank (Node.js backend with SQLite)\n *\n * Maps claude-flow memory model to ReasoningBank pattern model:\n * - key -> title\n * - value -> content (searchable text)\n * - namespace -> domain\n * - confidence -> confidence score\n */\nexport async function storeMemory(key, value, options = {}) {\n await ensureInitialized();\n\n try {\n const memoryId = options.id || uuidv4();\n\n // Map our memory model to ReasoningBank pattern model\n const memory = {\n id: memoryId,\n type: 'reasoning_memory',\n pattern_data: {\n title: key,\n content: value,\n domain: options.namespace || 'default',\n agent: options.agent || 'memory-agent',\n task_type: options.type || 'fact',\n // Store original values for compatibility\n original_key: key,\n original_value: value,\n namespace: options.namespace || 'default'\n },\n confidence: options.confidence || 0.8,\n usage_count: 0\n };\n\n // Store memory using Node.js backend\n ReasoningBank.db.upsertMemory(memory);\n\n // Generate and store embedding for semantic search\n try {\n const embedding = await ReasoningBank.computeEmbedding(value);\n ReasoningBank.db.upsertEmbedding({\n id: memoryId,\n model: 'text-embedding-3-small', // Default model\n dims: embedding.length,\n vector: embedding\n });\n } catch (embeddingError) {\n console.warn('[ReasoningBank] Failed to generate embedding:', embeddingError.message);\n // Continue without embedding - memory is still stored\n }\n\n // Invalidate query cache when new memory is added\n queryCache.clear();\n\n return memoryId;\n } catch (error) {\n console.error('[ReasoningBank] storeMemory failed:', error);\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n}\n\n/**\n * Query memories from ReasoningBank (Node.js backend with semantic search)\n *\n * Uses retrieveMemories for semantic search via embeddings and MMR ranking\n * Fallback to database query if semantic search fails\n */\nexport async function queryMemories(searchQuery, options = {}) {\n // Check cache first\n const cached = getCachedQuery(searchQuery, options);\n if (cached) {\n return cached;\n }\n\n await ensureInitialized();\n const limit = options.limit || 10;\n // Accept both 'namespace' and 'domain' for compatibility\n const namespace = options.namespace || options.domain || 'default';\n\n try {\n // Try semantic search first using retrieveMemories\n const results = await ReasoningBank.retrieveMemories(searchQuery, {\n domain: namespace,\n agent: options.agent || 'query-agent',\n k: limit,\n minConfidence: options.minConfidence || 0.3\n });\n\n // Map backend results to our memory format\n // retrieveMemories returns: { id, title, content, description, score, components }\n const memories = results.map(memory => ({\n id: memory.id,\n key: memory.title || 'unknown',\n value: memory.content || memory.description || '',\n namespace: namespace, // Use the namespace from our query\n confidence: memory.components?.reliability || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString(),\n score: memory.score || 0,\n // Include original pattern for debugging\n _pattern: memory\n }));\n\n // If no results, try direct database query as fallback\n if (memories.length === 0) {\n console.warn('[ReasoningBank] Semantic search returned 0 results, trying database fallback');\n const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({\n domain: namespace,\n minConfidence: options.minConfidence || 0.3\n });\n\n const fallbackMemories = fallbackResults.slice(0, limit).map(memory => ({\n id: memory.id,\n key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',\n value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',\n namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',\n confidence: memory.confidence || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString()\n }));\n\n // Cache and return fallback results\n setCachedQuery(searchQuery, options, fallbackMemories);\n return fallbackMemories;\n }\n\n // Cache successful results\n setCachedQuery(searchQuery, options, memories);\n return memories;\n } catch (error) {\n console.warn('[ReasoningBank] Query failed, trying database fallback:', error.message);\n\n try {\n // Final fallback: direct database query\n const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({\n domain: namespace,\n minConfidence: options.minConfidence || 0.3\n });\n\n const fallbackMemories = fallbackResults.slice(0, limit).map(memory => ({\n id: memory.id,\n key: memory.pattern_data?.title || 'unknown',\n value: memory.pattern_data?.content || '',\n namespace: memory.pattern_data?.domain || 'default',\n confidence: memory.confidence || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString()\n }));\n\n setCachedQuery(searchQuery, options, fallbackMemories);\n return fallbackMemories;\n } catch (fallbackError) {\n console.error('[ReasoningBank] All query methods failed:', fallbackError);\n return [];\n }\n }\n}\n\n/**\n * List all memories (using Node.js backend database query)\n */\nexport async function listMemories(options = {}) {\n await ensureInitialized();\n const limit = options.limit || 10;\n const namespace = options.namespace;\n\n try {\n let memories;\n\n if (namespace && namespace !== 'default') {\n // Filter by namespace/domain\n const allMemories = ReasoningBank.db.getAllActiveMemories();\n memories = allMemories\n .filter(m => m.pattern_data?.domain === namespace)\n .slice(0, limit);\n } else {\n // Get all active memories\n memories = ReasoningBank.db.getAllActiveMemories().slice(0, limit);\n }\n\n return memories.map(memory => ({\n id: memory.id,\n key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',\n value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',\n namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',\n confidence: memory.confidence || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString()\n }));\n } catch (error) {\n console.error('[ReasoningBank] listMemories failed:', error);\n return [];\n }\n}\n\n/**\n * Get ReasoningBank statistics (Node.js backend)\n */\nexport async function getStatus() {\n await ensureInitialized();\n\n try {\n const db = ReasoningBank.db.getDb();\n\n // Count patterns\n const patterns = db.prepare(\"SELECT COUNT(*) as count FROM patterns WHERE type = 'reasoning_memory'\").get();\n const embeddings = db.prepare(\"SELECT COUNT(*) as count FROM pattern_embeddings\").get();\n const trajectories = db.prepare(\"SELECT COUNT(*) as count FROM task_trajectories\").get();\n const links = db.prepare(\"SELECT COUNT(*) as count FROM pattern_links\").get();\n\n // Get average confidence\n const avgConf = db.prepare(\"SELECT AVG(confidence) as avg FROM patterns WHERE type = 'reasoning_memory'\").get();\n\n // Count unique domains\n const domains = db.prepare(\"SELECT COUNT(DISTINCT json_extract(pattern_data, '$.domain')) as count FROM patterns WHERE type = 'reasoning_memory'\").get();\n\n return {\n total_memories: patterns.count || 0,\n total_categories: domains.count || 0,\n storage_backend: 'SQLite (Node.js)',\n database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db',\n performance: 'SQLite with persistent storage',\n avg_confidence: avgConf.avg || 0.8,\n total_embeddings: embeddings.count || 0,\n total_trajectories: trajectories.count || 0,\n total_links: links.count || 0\n };\n } catch (error) {\n console.error('[ReasoningBank] getStatus failed:', error);\n return {\n total_memories: 0,\n error: error.message\n };\n }\n}\n\n/**\n * Check which ReasoningBank tables are present (Node.js backend)\n */\nexport async function checkReasoningBankTables() {\n try {\n await ensureInitialized();\n const db = ReasoningBank.db.getDb();\n\n const tables = db.prepare(\"SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'pattern%'\").all();\n const tableNames = tables.map(t => t.name);\n\n const requiredTables = ['patterns', 'pattern_embeddings', 'pattern_links', 'task_trajectories'];\n const missingTables = requiredTables.filter(t => !tableNames.includes(t));\n\n return {\n exists: true,\n existingTables: tableNames,\n missingTables: missingTables,\n requiredTables: requiredTables,\n backend: 'SQLite (Node.js)',\n note: missingTables.length > 0 ? 'Some tables are missing - run migrations' : 'All tables present'\n };\n } catch (error) {\n return {\n exists: false,\n existingTables: [],\n missingTables: [],\n requiredTables: [],\n error: error.message\n };\n }\n}\n\n/**\n * Migrate existing database (Node.js backend - run migrations)\n */\nexport async function migrateReasoningBank() {\n try {\n await ReasoningBank.db.runMigrations();\n\n return {\n success: true,\n message: 'Database migrations completed successfully',\n migrated: true,\n database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db'\n };\n } catch (error) {\n return {\n success: false,\n message: `Migration failed: ${error.message}`,\n error: error.message\n };\n }\n}\n\n/**\n * Get cached query results\n */\nfunction getCachedQuery(searchQuery, options) {\n const cacheKey = JSON.stringify({ searchQuery, options });\n const cached = queryCache.get(cacheKey);\n\n if (cached && Date.now() - cached.timestamp < CACHE_TTL) {\n return cached.results;\n }\n\n return null;\n}\n\n/**\n * Set cached query results (LRU eviction)\n */\nfunction setCachedQuery(searchQuery, options, results) {\n const cacheKey = JSON.stringify({ searchQuery, options });\n\n // LRU eviction\n if (queryCache.size >= CACHE_SIZE) {\n const firstKey = queryCache.keys().next().value;\n queryCache.delete(firstKey);\n }\n\n queryCache.set(cacheKey, {\n results,\n timestamp: Date.now()\n });\n}\n\n/**\n * Close database connection and cleanup resources\n * Should be called when done with ReasoningBank operations\n */\nexport function cleanup() {\n try {\n if (backendInitialized) {\n // Clear embedding cache (prevents memory leaks)\n ReasoningBank.clearEmbeddingCache();\n\n // Close database connection\n ReasoningBank.db.closeDb();\n backendInitialized = false;\n initPromise = null;\n console.log('[ReasoningBank] Database connection closed');\n }\n } catch (error) {\n console.error('[ReasoningBank] Cleanup failed:', error.message);\n }\n}\n"],"names":["ReasoningBank","v4","uuidv4","backendInitialized","initPromise","queryCache","Map","CACHE_SIZE","CACHE_TTL","ensureInitialized","initialize","console","log","error","Error","message","initializeReasoningBank","storeMemory","key","value","options","memoryId","id","memory","type","pattern_data","title","content","domain","namespace","agent","task_type","original_key","original_value","confidence","usage_count","db","upsertMemory","embedding","computeEmbedding","upsertEmbedding","model","dims","length","vector","embeddingError","warn","clear","queryMemories","searchQuery","cached","getCachedQuery","limit","results","retrieveMemories","k","minConfidence","memories","map","description","components","reliability","created_at","Date","toISOString","score","_pattern","fallbackResults","fetchMemoryCandidates","fallbackMemories","slice","setCachedQuery","fallbackError","listMemories","allMemories","getAllActiveMemories","filter","m","getStatus","getDb","patterns","prepare","get","embeddings","trajectories","links","avgConf","domains","total_memories","count","total_categories","storage_backend","database_path","process","env","CLAUDE_FLOW_DB_PATH","performance","avg_confidence","avg","total_embeddings","total_trajectories","total_links","checkReasoningBankTables","tables","all","tableNames","t","name","requiredTables","missingTables","includes","exists","existingTables","backend","note","migrateReasoningBank","runMigrations","success","migrated","cacheKey","JSON","stringify","now","timestamp","size","firstKey","keys","next","delete","set","cleanup","clearEmbeddingCache","closeDb"],"mappings":"AAUA,YAAYA,mBAAmB,6BAA6B;AAC5D,SAASC,MAAMC,MAAM,QAAQ,OAAO;AAGpC,IAAIC,qBAAqB;AACzB,IAAIC,cAAc;AAGlB,MAAMC,aAAa,IAAIC;AACvB,MAAMC,aAAa;AACnB,MAAMC,YAAY;AAMlB,eAAeC;IACb,IAAIN,oBAAoB;QACtB,OAAO;IACT;IAEA,IAAIC,aAAa;QACf,OAAOA;IACT;IAEAA,cAAc,AAAC,CAAA;QACb,IAAI;YAEF,MAAMJ,cAAcU,UAAU;YAC9BP,qBAAqB;YACrBQ,QAAQC,GAAG,CAAC;YACZ,OAAO;QACT,EAAE,OAAOC,OAAO;YACdF,QAAQE,KAAK,CAAC,kDAAkDA;YAChE,MAAM,IAAIC,MAAM,CAAC,oCAAoC,EAAED,MAAME,OAAO,EAAE;QACxE;IACF,CAAA;IAEA,OAAOX;AACT;AAKA,OAAO,eAAeY;IAEpB,MAAMP;IACN,OAAO;AACT;AAWA,OAAO,eAAeQ,YAAYC,GAAG,EAAEC,KAAK,EAAEC,UAAU,CAAC,CAAC;IACxD,MAAMX;IAEN,IAAI;QACF,MAAMY,WAAWD,QAAQE,EAAE,IAAIpB;QAG/B,MAAMqB,SAAS;YACbD,IAAID;YACJG,MAAM;YACNC,cAAc;gBACZC,OAAOR;gBACPS,SAASR;gBACTS,QAAQR,QAAQS,SAAS,IAAI;gBAC7BC,OAAOV,QAAQU,KAAK,IAAI;gBACxBC,WAAWX,QAAQI,IAAI,IAAI;gBAE3BQ,cAAcd;gBACde,gBAAgBd;gBAChBU,WAAWT,QAAQS,SAAS,IAAI;YAClC;YACAK,YAAYd,QAAQc,UAAU,IAAI;YAClCC,aAAa;QACf;QAGAnC,cAAcoC,EAAE,CAACC,YAAY,CAACd;QAG9B,IAAI;YACF,MAAMe,YAAY,MAAMtC,cAAcuC,gBAAgB,CAACpB;YACvDnB,cAAcoC,EAAE,CAACI,eAAe,CAAC;gBAC/BlB,IAAID;gBACJoB,OAAO;gBACPC,MAAMJ,UAAUK,MAAM;gBACtBC,QAAQN;YACV;QACF,EAAE,OAAOO,gBAAgB;YACvBlC,QAAQmC,IAAI,CAAC,iDAAiDD,eAAe9B,OAAO;QAEtF;QAGAV,WAAW0C,KAAK;QAEhB,OAAO1B;IACT,EAAE,OAAOR,OAAO;QACdF,QAAQE,KAAK,CAAC,uCAAuCA;QACrD,MAAM,IAAIC,MAAM,CAAC,wBAAwB,EAAED,MAAME,OAAO,EAAE;IAC5D;AACF;AAQA,OAAO,eAAeiC,cAAcC,WAAW,EAAE7B,UAAU,CAAC,CAAC;IAE3D,MAAM8B,SAASC,eAAeF,aAAa7B;IAC3C,IAAI8B,QAAQ;QACV,OAAOA;IACT;IAEA,MAAMzC;IACN,MAAM2C,QAAQhC,QAAQgC,KAAK,IAAI;IAE/B,MAAMvB,YAAYT,QAAQS,SAAS,IAAIT,QAAQQ,MAAM,IAAI;IAEzD,IAAI;QAEF,MAAMyB,UAAU,MAAMrD,cAAcsD,gBAAgB,CAACL,aAAa;YAChErB,QAAQC;YACRC,OAAOV,QAAQU,KAAK,IAAI;YACxByB,GAAGH;YACHI,eAAepC,QAAQoC,aAAa,IAAI;QAC1C;QAIA,MAAMC,WAAWJ,QAAQK,GAAG,CAACnC,CAAAA,SAAW,CAAA;gBACtCD,IAAIC,OAAOD,EAAE;gBACbJ,KAAKK,OAAOG,KAAK,IAAI;gBACrBP,OAAOI,OAAOI,OAAO,IAAIJ,OAAOoC,WAAW,IAAI;gBAC/C9B,WAAWA;gBACXK,YAAYX,OAAOqC,UAAU,EAAEC,eAAe;gBAC9C1B,aAAaZ,OAAOY,WAAW,IAAI;gBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;gBACvDC,OAAO1C,OAAO0C,KAAK,IAAI;gBAEvBC,UAAU3C;YACZ,CAAA;QAGA,IAAIkC,SAASd,MAAM,KAAK,GAAG;YACzBhC,QAAQmC,IAAI,CAAC;YACb,MAAMqB,kBAAkBnE,cAAcoC,EAAE,CAACgC,qBAAqB,CAAC;gBAC7DxC,QAAQC;gBACR2B,eAAepC,QAAQoC,aAAa,IAAI;YAC1C;YAEA,MAAMa,mBAAmBF,gBAAgBG,KAAK,CAAC,GAAGlB,OAAOM,GAAG,CAACnC,CAAAA,SAAW,CAAA;oBACtED,IAAIC,OAAOD,EAAE;oBACbJ,KAAKK,OAAOE,YAAY,EAAEC,SAASH,OAAOE,YAAY,EAAEO,gBAAgB;oBACxEb,OAAOI,OAAOE,YAAY,EAAEE,WAAWJ,OAAOE,YAAY,EAAEQ,kBAAkB;oBAC9EJ,WAAWN,OAAOE,YAAY,EAAEG,UAAUL,OAAOE,YAAY,EAAEI,aAAa;oBAC5EK,YAAYX,OAAOW,UAAU,IAAI;oBACjCC,aAAaZ,OAAOY,WAAW,IAAI;oBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;gBACzD,CAAA;YAGAO,eAAetB,aAAa7B,SAASiD;YACrC,OAAOA;QACT;QAGAE,eAAetB,aAAa7B,SAASqC;QACrC,OAAOA;IACT,EAAE,OAAO5C,OAAO;QACdF,QAAQmC,IAAI,CAAC,2DAA2DjC,MAAME,OAAO;QAErF,IAAI;YAEF,MAAMoD,kBAAkBnE,cAAcoC,EAAE,CAACgC,qBAAqB,CAAC;gBAC7DxC,QAAQC;gBACR2B,eAAepC,QAAQoC,aAAa,IAAI;YAC1C;YAEA,MAAMa,mBAAmBF,gBAAgBG,KAAK,CAAC,GAAGlB,OAAOM,GAAG,CAACnC,CAAAA,SAAW,CAAA;oBACtED,IAAIC,OAAOD,EAAE;oBACbJ,KAAKK,OAAOE,YAAY,EAAEC,SAAS;oBACnCP,OAAOI,OAAOE,YAAY,EAAEE,WAAW;oBACvCE,WAAWN,OAAOE,YAAY,EAAEG,UAAU;oBAC1CM,YAAYX,OAAOW,UAAU,IAAI;oBACjCC,aAAaZ,OAAOY,WAAW,IAAI;oBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;gBACzD,CAAA;YAEAO,eAAetB,aAAa7B,SAASiD;YACrC,OAAOA;QACT,EAAE,OAAOG,eAAe;YACtB7D,QAAQE,KAAK,CAAC,6CAA6C2D;YAC3D,OAAO,EAAE;QACX;IACF;AACF;AAKA,OAAO,eAAeC,aAAarD,UAAU,CAAC,CAAC;IAC7C,MAAMX;IACN,MAAM2C,QAAQhC,QAAQgC,KAAK,IAAI;IAC/B,MAAMvB,YAAYT,QAAQS,SAAS;IAEnC,IAAI;QACF,IAAI4B;QAEJ,IAAI5B,aAAaA,cAAc,WAAW;YAExC,MAAM6C,cAAc1E,cAAcoC,EAAE,CAACuC,oBAAoB;YACzDlB,WAAWiB,YACRE,MAAM,CAACC,CAAAA,IAAKA,EAAEpD,YAAY,EAAEG,WAAWC,WACvCyC,KAAK,CAAC,GAAGlB;QACd,OAAO;YAELK,WAAWzD,cAAcoC,EAAE,CAACuC,oBAAoB,GAAGL,KAAK,CAAC,GAAGlB;QAC9D;QAEA,OAAOK,SAASC,GAAG,CAACnC,CAAAA,SAAW,CAAA;gBAC7BD,IAAIC,OAAOD,EAAE;gBACbJ,KAAKK,OAAOE,YAAY,EAAEC,SAASH,OAAOE,YAAY,EAAEO,gBAAgB;gBACxEb,OAAOI,OAAOE,YAAY,EAAEE,WAAWJ,OAAOE,YAAY,EAAEQ,kBAAkB;gBAC9EJ,WAAWN,OAAOE,YAAY,EAAEG,UAAUL,OAAOE,YAAY,EAAEI,aAAa;gBAC5EK,YAAYX,OAAOW,UAAU,IAAI;gBACjCC,aAAaZ,OAAOY,WAAW,IAAI;gBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;YACzD,CAAA;IACF,EAAE,OAAOnD,OAAO;QACdF,QAAQE,KAAK,CAAC,wCAAwCA;QACtD,OAAO,EAAE;IACX;AACF;AAKA,OAAO,eAAeiE;IACpB,MAAMrE;IAEN,IAAI;QACF,MAAM2B,KAAKpC,cAAcoC,EAAE,CAAC2C,KAAK;QAGjC,MAAMC,WAAW5C,GAAG6C,OAAO,CAAC,0EAA0EC,GAAG;QACzG,MAAMC,aAAa/C,GAAG6C,OAAO,CAAC,oDAAoDC,GAAG;QACrF,MAAME,eAAehD,GAAG6C,OAAO,CAAC,mDAAmDC,GAAG;QACtF,MAAMG,QAAQjD,GAAG6C,OAAO,CAAC,+CAA+CC,GAAG;QAG3E,MAAMI,UAAUlD,GAAG6C,OAAO,CAAC,+EAA+EC,GAAG;QAG7G,MAAMK,UAAUnD,GAAG6C,OAAO,CAAC,wHAAwHC,GAAG;QAEtJ,OAAO;YACLM,gBAAgBR,SAASS,KAAK,IAAI;YAClCC,kBAAkBH,QAAQE,KAAK,IAAI;YACnCE,iBAAiB;YACjBC,eAAeC,QAAQC,GAAG,CAACC,mBAAmB,IAAI;YAClDC,aAAa;YACbC,gBAAgBX,QAAQY,GAAG,IAAI;YAC/BC,kBAAkBhB,WAAWM,KAAK,IAAI;YACtCW,oBAAoBhB,aAAaK,KAAK,IAAI;YAC1CY,aAAahB,MAAMI,KAAK,IAAI;QAC9B;IACF,EAAE,OAAO5E,OAAO;QACdF,QAAQE,KAAK,CAAC,qCAAqCA;QACnD,OAAO;YACL2E,gBAAgB;YAChB3E,OAAOA,MAAME,OAAO;QACtB;IACF;AACF;AAKA,OAAO,eAAeuF;IACpB,IAAI;QACF,MAAM7F;QACN,MAAM2B,KAAKpC,cAAcoC,EAAE,CAAC2C,KAAK;QAEjC,MAAMwB,SAASnE,GAAG6C,OAAO,CAAC,8EAA8EuB,GAAG;QAC3G,MAAMC,aAAaF,OAAO7C,GAAG,CAACgD,CAAAA,IAAKA,EAAEC,IAAI;QAEzC,MAAMC,iBAAiB;YAAC;YAAY;YAAsB;YAAiB;SAAoB;QAC/F,MAAMC,gBAAgBD,eAAehC,MAAM,CAAC8B,CAAAA,IAAK,CAACD,WAAWK,QAAQ,CAACJ;QAEtE,OAAO;YACLK,QAAQ;YACRC,gBAAgBP;YAChBI,eAAeA;YACfD,gBAAgBA;YAChBK,SAAS;YACTC,MAAML,cAAclE,MAAM,GAAG,IAAI,6CAA6C;QAChF;IACF,EAAE,OAAO9B,OAAO;QACd,OAAO;YACLkG,QAAQ;YACRC,gBAAgB,EAAE;YAClBH,eAAe,EAAE;YACjBD,gBAAgB,EAAE;YAClB/F,OAAOA,MAAME,OAAO;QACtB;IACF;AACF;AAKA,OAAO,eAAeoG;IACpB,IAAI;QACF,MAAMnH,cAAcoC,EAAE,CAACgF,aAAa;QAEpC,OAAO;YACLC,SAAS;YACTtG,SAAS;YACTuG,UAAU;YACV1B,eAAeC,QAAQC,GAAG,CAACC,mBAAmB,IAAI;QACpD;IACF,EAAE,OAAOlF,OAAO;QACd,OAAO;YACLwG,SAAS;YACTtG,SAAS,CAAC,kBAAkB,EAAEF,MAAME,OAAO,EAAE;YAC7CF,OAAOA,MAAME,OAAO;QACtB;IACF;AACF;AAKA,SAASoC,eAAeF,WAAW,EAAE7B,OAAO;IAC1C,MAAMmG,WAAWC,KAAKC,SAAS,CAAC;QAAExE;QAAa7B;IAAQ;IACvD,MAAM8B,SAAS7C,WAAW6E,GAAG,CAACqC;IAE9B,IAAIrE,UAAUa,KAAK2D,GAAG,KAAKxE,OAAOyE,SAAS,GAAGnH,WAAW;QACvD,OAAO0C,OAAOG,OAAO;IACvB;IAEA,OAAO;AACT;AAKA,SAASkB,eAAetB,WAAW,EAAE7B,OAAO,EAAEiC,OAAO;IACnD,MAAMkE,WAAWC,KAAKC,SAAS,CAAC;QAAExE;QAAa7B;IAAQ;IAGvD,IAAIf,WAAWuH,IAAI,IAAIrH,YAAY;QACjC,MAAMsH,WAAWxH,WAAWyH,IAAI,GAAGC,IAAI,GAAG5G,KAAK;QAC/Cd,WAAW2H,MAAM,CAACH;IACpB;IAEAxH,WAAW4H,GAAG,CAACV,UAAU;QACvBlE;QACAsE,WAAW5D,KAAK2D,GAAG;IACrB;AACF;AAMA,OAAO,SAASQ;IACd,IAAI;QACF,IAAI/H,oBAAoB;YAEtBH,cAAcmI,mBAAmB;YAGjCnI,cAAcoC,EAAE,CAACgG,OAAO;YACxBjI,qBAAqB;YACrBC,cAAc;YACdO,QAAQC,GAAG,CAAC;QACd;IACF,EAAE,OAAOC,OAAO;QACdF,QAAQE,KAAK,CAAC,mCAAmCA,MAAME,OAAO;IAChE;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/key-redactor.
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/key-redactor.js"],"sourcesContent":["/**\n * API Key Redaction Utility\n * Prevents sensitive data from leaking into logs, memory, or git commits\n */\n\nexport class KeyRedactor {\n static API_KEY_PATTERNS = [\n // Anthropic API keys\n /sk-ant-[a-zA-Z0-9_-]{95,}/gi,\n\n // OpenRouter API keys\n /sk-or-[a-zA-Z0-9_-]{32,}/gi,\n\n // Google/Gemini API keys\n /AIza[a-zA-Z0-9_-]{35}/gi,\n\n // Generic API keys\n /[a-zA-Z0-9_-]{20,}API[a-zA-Z0-9_-]{20,}/gi,\n\n // Bearer tokens\n /Bearer\\s+[a-zA-Z0-9_\\-\\.]{20,}/gi,\n\n // Environment variable format\n /([A-Z_]+_API_KEY|[A-Z_]+_TOKEN|[A-Z_]+_SECRET)=[\"']?([^\"'\\s]+)[\"']?/gi,\n\n // Supabase keys\n /eyJ[a-zA-Z0-9_-]*\\.eyJ[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]*/gi,\n ];\n\n static SENSITIVE_FIELDS = [\n 'apiKey',\n 'api_key',\n 'token',\n 'secret',\n 'password',\n 'private_key',\n 'privateKey',\n 'accessToken',\n 'access_token',\n 'refreshToken',\n 'refresh_token',\n ];\n\n /**\n * Redact API keys and sensitive data from text\n */\n static redact(text, showPrefix = true) {\n if (!text) return text;\n\n let redacted = text;\n\n // Redact using patterns\n this.API_KEY_PATTERNS.forEach(pattern => {\n redacted = redacted.replace(pattern, (match) => {\n if (showPrefix && match.length > 8) {\n const prefix = match.substring(0, 8);\n return `${prefix}...[REDACTED]`;\n }\n return '[REDACTED_API_KEY]';\n });\n });\n\n return redacted;\n }\n\n /**\n * Redact sensitive fields in objects\n */\n static redactObject(obj, deep = true) {\n if (!obj || typeof obj !== 'object') return obj;\n\n const redacted = { ...obj };\n\n Object.keys(redacted).forEach(key => {\n const lowerKey = key.toLowerCase();\n\n // Check if field name is sensitive\n const isSensitive = this.SENSITIVE_FIELDS.some(field =>\n lowerKey.includes(field)\n );\n\n if (isSensitive && typeof redacted[key] === 'string') {\n const value = redacted[key];\n if (value && value.length > 8) {\n redacted[key] = `${value.substring(0, 4)}...[REDACTED]`;\n } else {\n redacted[key] = '[REDACTED]';\n }\n } else if (deep && typeof redacted[key] === 'object' && redacted[key] !== null) {\n redacted[key] = this.redactObject(redacted[key], deep);\n } else if (typeof redacted[key] === 'string') {\n // Redact any API keys in string values\n redacted[key] = this.redact(redacted[key]);\n }\n });\n\n return redacted;\n }\n\n /**\n * Sanitize text for safe logging\n */\n static sanitize(text) {\n return this.redact(text, true);\n }\n\n /**\n * Sanitize command arguments\n */\n static sanitizeArgs(args) {\n return args.map(arg => {\n // Check if arg is a flag value pair\n if (arg.includes('key') || arg.includes('token') || arg.includes('secret')) {\n return this.redact(arg);\n }\n return arg;\n });\n }\n\n /**\n * Check if text contains unredacted sensitive data\n */\n static containsSensitiveData(text) {\n return this.API_KEY_PATTERNS.some(pattern => pattern.test(text));\n }\n\n /**\n * Validate that text is safe for logging/storage\n */\n static validate(text) {\n const warnings = [];\n\n this.API_KEY_PATTERNS.forEach((pattern, index) => {\n if (pattern.test(text)) {\n warnings.push(`Potential API key detected (pattern ${index + 1})`);\n }\n });\n\n return {\n safe: warnings.length === 0,\n warnings,\n };\n }\n\n /**\n * Redact environment variables\n */\n static redactEnv(env) {\n const redacted = {};\n\n Object.keys(env).forEach(key => {\n const value = env[key];\n if (!value) {\n redacted[key] = '';\n return;\n }\n\n const lowerKey = key.toLowerCase();\n const isSensitive = lowerKey.includes('key') ||\n lowerKey.includes('token') ||\n lowerKey.includes('secret') ||\n lowerKey.includes('password');\n\n if (isSensitive) {\n redacted[key] = value.length > 8\n ? `${value.substring(0, 4)}...[REDACTED]`\n : '[REDACTED]';\n } else {\n redacted[key] = value;\n }\n });\n\n return redacted;\n }\n}\n\n// Export singleton instance\nexport const redactor = KeyRedactor;\n"],"names":["KeyRedactor","API_KEY_PATTERNS","SENSITIVE_FIELDS","redact","text","showPrefix","redacted","forEach","pattern","replace","match","length","prefix","substring","redactObject","obj","deep","Object","keys","key","lowerKey","toLowerCase","isSensitive","some","field","includes","value","sanitize","sanitizeArgs","args","map","arg","containsSensitiveData","test","validate","warnings","index","push","safe","redactEnv","env","redactor"],"mappings":"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"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import path from 'path';
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
3
|
import { exec } from 'child_process';
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
const execAsync = promisify(exec);
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.sessionsDir = '.claude-flow/sessions';
|
|
10
|
-
}
|
|
6
|
+
export class MetricsReader {
|
|
7
|
+
metricsDir = '.claude-flow/metrics';
|
|
8
|
+
sessionsDir = '.claude-flow/sessions';
|
|
11
9
|
async getSystemMetrics() {
|
|
12
10
|
try {
|
|
13
11
|
const filePath = path.join(this.metricsDir, 'system-metrics.json');
|
|
@@ -18,15 +16,6 @@ let MetricsReader = class MetricsReader {
|
|
|
18
16
|
return null;
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
|
-
async getTaskQueue() {
|
|
22
|
-
try {
|
|
23
|
-
const queueFile = '.claude-flow/tasks/queue.json';
|
|
24
|
-
const content = await fs.readFile(queueFile, 'utf8');
|
|
25
|
-
return JSON.parse(content);
|
|
26
|
-
} catch (error) {
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
19
|
async getTaskMetrics() {
|
|
31
20
|
try {
|
|
32
21
|
const filePath = path.join(this.metricsDir, 'task-metrics.json');
|
|
@@ -47,30 +36,30 @@ let MetricsReader = class MetricsReader {
|
|
|
47
36
|
}
|
|
48
37
|
async getActiveAgents() {
|
|
49
38
|
try {
|
|
39
|
+
const perfMetrics = await this.getPerformanceMetrics();
|
|
40
|
+
const sessionFiles = await this.getSessionFiles();
|
|
50
41
|
const agents = [];
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
const content = await fs.readFile(path.join(agentsDir, file), 'utf8');
|
|
58
|
-
const agent = JSON.parse(content);
|
|
59
|
-
agents.push(agent);
|
|
60
|
-
} catch {}
|
|
42
|
+
for (const file of sessionFiles){
|
|
43
|
+
try {
|
|
44
|
+
const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');
|
|
45
|
+
const sessionData = JSON.parse(content);
|
|
46
|
+
if (sessionData.agents && Array.isArray(sessionData.agents)) {
|
|
47
|
+
agents.push(...sessionData.agents);
|
|
61
48
|
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (agents.length === 0) {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
49
|
+
} catch {}
|
|
50
|
+
}
|
|
51
|
+
if (agents.length === 0 && perfMetrics) {
|
|
52
|
+
const activeCount = perfMetrics.activeAgents || 0;
|
|
53
|
+
const totalCount = perfMetrics.totalAgents || 0;
|
|
54
|
+
for(let i = 0; i < totalCount; i++){
|
|
55
|
+
agents.push({
|
|
56
|
+
id: `agent-${i + 1}`,
|
|
57
|
+
name: `Agent ${i + 1}`,
|
|
58
|
+
type: i === 0 ? 'orchestrator' : 'worker',
|
|
59
|
+
status: i < activeCount ? 'active' : 'idle',
|
|
60
|
+
activeTasks: i < activeCount ? 1 : 0,
|
|
61
|
+
lastActivity: Date.now() - i * 1000
|
|
62
|
+
});
|
|
74
63
|
}
|
|
75
64
|
}
|
|
76
65
|
return agents;
|
|
@@ -146,7 +135,7 @@ let MetricsReader = class MetricsReader {
|
|
|
146
135
|
}
|
|
147
136
|
async getMCPServerStatus() {
|
|
148
137
|
try {
|
|
149
|
-
const { stdout } = await execAsync('ps aux | grep -E "mcp" | grep -v grep | wc -l');
|
|
138
|
+
const { stdout } = await execAsync('ps aux | grep -E "mcp-server\\.js|claude-flow mcp start" | grep -v grep | wc -l');
|
|
150
139
|
const processCount = parseInt(stdout.trim(), 10);
|
|
151
140
|
const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E "claude-flow start" | grep -v grep | wc -l');
|
|
152
141
|
const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;
|
|
@@ -175,7 +164,6 @@ let MetricsReader = class MetricsReader {
|
|
|
175
164
|
};
|
|
176
165
|
}
|
|
177
166
|
}
|
|
178
|
-
}
|
|
179
|
-
export { MetricsReader };
|
|
167
|
+
}
|
|
180
168
|
|
|
181
169
|
//# sourceMappingURL=metrics-reader.js.map
|